Twee2::build_config.story_ifid = '76585E15-C0E7-4404-A55B-BEFC4CDF112B'<<include StoryInit_UI>>
<<run console.log("started")>>
<<if $Version < 10104>>
<<set $Version to 10104>>
<<set $VersionStr to '0.1.4'>>
<<include Ability_AppetiteForGrowth>>
<<include Ability_DemonicCorruption>>
<<include Ability_HerculeanBuild>>
<<include Ability_Masochism>>
<<include Ability_VigorOfTheEndowed>>
<<include Ability_WideAttacks>>
<<include StoryInit_FightMoves>>
<<include Modifiers_Size_Diff>>
<<include StoryInit_StateDrivenModifiers>>
<<set $Debug = false>>
<<set setup.Comparators =
{
MICRO_TO: 1,
MUCH_SMALLER: 2,
SMALLER: 3,
EQUAL: 4,
BIGGER: 5,
MUCH_BIGGER: 5,
REACHES_WAIST: 6,
REACHES_KNEES: 7,
FITS_ON_HAND: 8,
FITS_ON_FINGER: 9,
}>>
<<set $Debug = false>>
<<set $FighterSheet_Imp =
{
hp: 18,
stamina: 6,
strength: 6,
critChance: 45,
arousalGain: 20,
staminaRecovery: 2,
variables: $FightVariables,
fightMoves: [setup.FightMove_Basic_Attack],
abilities: [],
onMaxArousal: function(character)
{
//todo
},
fightReward: setup.RewardTier.LOW,
encounterIntroText: "<<include Encounter_Intro_Imp>>",
encounterStartText: "<<include Encounter_Start_Imp>>",
outcomePlayerWins: "<<include Encounter_Win_Imp>>",
outcomePlayerLoses: "<<include Encounter_Loss_Imp>>"
}>>
<<set $InfoSheet_Imp =
{
name: "Imp",
gender: "male",
corruption: 0,
muscles: 0,
height: 50,
cock: 10,
alive: true
}>>
<<set $QuestSheet_Ethrex =
{
beatenOnce: false,
}>>
<<set $CharacterSheet_Ethrex =
{
id:"CharacterSheet_Ethrex",
info: $InfoSheet_Ethrex,
fight: $CharacterSheet_Ethrex.fight,
quest: $QuestSheet_Ethrex,
}>>
<<set $QuestSheet_Lost_Werewolf =
{
beatenOnce: false,
}>>
<<set $CharacterSheet_Lost_Werewolf =
{
id:"CharacterSheet_Lost_Werewolf",
info: $InfoSheet_Lost_Werewolf,
fight: $FighterSheet_Lost_Werewolf,
quest: $QuestSheet_Lost_Werewolf,
}>>
<</if>>
<<if $Version < 10105>>
<<set $Version to 10105>>
<<set $VersionStr to '0.1.5'>>
<</if>>
<<if $Version < 10200>>
<<set $Version to 10200>>
<<set $VersionStr to '0.2.0'>>
<<set setup.Comparators =
{
MICRO_TO: 1,
MUCH_SMALLER: 2,
SMALLER: 3,
SLIGHTLY_SMALLER: 4,
EQUAL: 5,
SLIGHTLY_BIGGER: 6,
BIGGER: 7,
MUCH_BIGGER: 8,
REACHES_WAIST: 9,
REACHES_KNEES: 10,
FITS_ON_HAND: 11,
FITS_ON_FINGER: 12,
}>>
<<include StoryInit_RandomEncounters>>
<<include StoryInit_Abilities>>
<<include StoryInit_FightMoves>>
<<include StoryInit_FightVariables>>
<<include Sheets_Elder>>
<<include Sheets_Lost_Naga>>
<<set $QuestSheet_Player =
{
curseOfTheNagaStatDrain:
{
muscles: 0,
height: 0,
cock: 0,
},
}>>
<<set $CharacterSheet_Player.quest = $QuestSheet_Player>>
<</if>>
<<if $Version < 10201>>
<<set $Version to 10201>>
<<set $VersionStr to '0.2.1'>>
<<include StoryInit_Abilities>>
<<include StoryInit_FightMoves>>
<<include StoryInit_FightVariables>>
<<include Modifiers_Player_Symbiote>>
<<include Modifiers_Size_Diff>>
<<set $CharacterSheet_Player.fight.critChance = $CharacterSheet_Player.fight.accuracy>>
<<set $CharacterSheet_Player.fight.variables = $FightVariables>>
<<script>>
let i;
for(i = 0; i < State.variables.CharacterSheet_Player.fight.fightMoveIDs.length; i++)
{
let j;
for(j = 0; j < setup.FightMoveIDs.length; j++)
{
if(State.variables.CharacterSheet_Player.fight.fightMoveIDs[i].name == setup[setup.FightMoveIDs[j]].name)
{
State.variables.CharacterSheet_Player.fight.fightMoveIDs[i] = setup[setup.FightMoveIDs[j]];
}
}
}
<</script>>
<<include Sheets_Imp>>
<<include Sheets_Ethrex>>
<<include Sheets_Lost_Werewolf>>
<<include Sheets_Lost_Naga>>
<<include Sheets_Elder>>
<<include Sheets_MQ002_Guard>>
<<set setup.LevelUpTable =
[
180,
500,
900,
2200,
4000,
5600,
7000,
8300,
10000,
15000,
]>>
<</if>>
<<if $Version < 10202>>
<<set $Version to 10202>>
<<set $VersionStr to '0.2.2'>>
<<set setup.RewardTier =
{
NONE: 0,
VERY_LOW: 1,
LOW: 2,
MEDIUM: 3,
HIGH: 4,
VERY_HIGH: 5,
}>>
<<include StoryInit_FightMoves>>
<<set $CharacterSheet_Imp.fight =
{
hp: 34,
stamina: 6,
strength: 6,
critChance: 20,
arousalGain: 20,
staminaRecovery: 4,
variables: $FightVariables,
fightMoves: [setup.FightMove_Basic_Attack],
abilities: [setup.Ability_AppetiteForGrowth_2],
onMaxArousal: function(character)
{
//todo
},
fightReward: setup.RewardTier.LOW,
encounterIntroText: "<<include Encounter_Intro_Imp>>",
encounterStartText: "<<include Encounter_Start_Imp>>",
outcomePlayerWins: "<<include Encounter_Win_Imp>>",
outcomePlayerLoses: "<<include Encounter_Loss_Imp>>"
}>>
<<set $CharacterSheet_Tok.fight =
{
hp: 72,
stamina: 20,
strength: 10,
critChance: 20,
arousalGain: 20,
staminaRecovery: 4,
variables: $FightVariables,
fightMoves: [setup.FightMove_Lunge,setup.FightMove_Goo_Stun],
abilities: [],
onMaxArousal: function(character)
{
//todo
},
fightReward: setup.RewardTier.HIGH,
encounterIntroText: "<<include Tok_Fight_Intro>>",
encounterStartText: "His immense stature is intimidating, he looks powerful enough to break you in half. Yet you feel an alien instinct warp your reason.\n The sight of his massive muscles and cock nearly drives you mad with excitement. \n Your own cock throbs as you ready your weapon."
+ "\n The fear is all gone, all you think of is to make this beast yours.",
outcomePlayerWins:
"<<include Tok_Fight_Won>>",
outcomePlayerLoses:
"Tok brings you down to your knees. \n \n[[Continue->Tok Fight Lost]]"
}>>
<<set $CharacterSheet_Ethrex.fight =
{
hp: 50,
stamina: 25,
strength: 9,
critChance: 20,
arousalGain: 20,
staminaRecovery: 14,
variables: $FightVariables,
fightMoves: [setup.FightMove_Basic_Attack, setup.FightMove_IncubusCall, setup.FightMove_IncubusStrike],
abilities: [setup.Ability_VigorOfTheEndowed_2],
onMaxArousal: function(character)
{
//todo
},
fightReward: setup.RewardTier.MEDIUM,
encounterIntroText: "<<include Encounter_Intro_Ethrex>>",
encounterStartText: "<<include Encounter_Start_Ethrex>>",
outcomePlayerWins: "<<include Encounter_Win_Ethrex>>",
outcomePlayerLoses: "<<include Encounter_Loss_Ethrex_0>>"
}>>
<<set $CharacterSheet_Lost_Werewolf.fight =
{
hp: 30,
stamina: 12,
strength: 9,
critChance: 20,
arousalGain: 20,
staminaRecovery: 8,
variables: $FightVariables,
fightMoves: [setup.FightMove_Basic_Attack, setup.FightMove_Infest],
abilities: [setup.Ability_HerculeanBuild],
onMaxArousal: function(character)
{
//todo
},
fightReward: setup.RewardTier.MEDIUM,
encounterIntroText: "<<include Encounter_Intro_Lost_Werewolf>>",
encounterStartText: "<<include Encounter_Start_Lost_Werewolf>>",
outcomePlayerWins: "<<include Encounter_Win_Lost_Werewolf>>",
outcomePlayerLoses: "<<include Encounter_Loss_Lost_Werewolf>>"
}>>
<<set $CharacterSheet_Lost_Naga.fight =
{
hp: 90,
stamina: 22,
strength: 15,
critChance: 20,
arousalGain: 20,
staminaRecovery: 14,
variables: $FightVariables,
fightMoves: [setup.FightMove_Basic_Attack, setup.FightMove_Infest, setup.FightMove_Hypnotize],
abilities: [setup.Ability_AppetiteForGrowth],
onMaxArousal: function(character)
{
//todo
},
fightReward: setup.RewardTier.HIGH,
encounterIntroText: "<<include Encounter_Intro_Lost_Naga>>",
encounterStartText: "<<include Encounter_Start_Lost_Naga>>",
outcomePlayerWins: "<<include Encounter_Win_Lost_Naga>>",
outcomePlayerLoses: "<<include Encounter_Loss_Lost_Naga_1>>"
}>>
<<set $CharacterSheet_MQ002_Guard.fight =
{
hp: 130,
stamina: 35,
strength: 40,
critChance: 0,
arousalGain: 10,
staminaRecovery: 8,
variables: $FightVariables,
fightMoves: [setup.FightMove_Basic_Attack, setup.FightMove_ChargedStrike],
abilities: [setup.Ability_Masochism_2],
onMaxArousal: function(character)
{
//todo
},
fightReward: setup.RewardTier.HIGH,
encounterIntroText: "",
encounterStartText: "Minotaur Guard readies his weapon",
outcomePlayerWins: "<<include Quest_MQ002_Entrance_PlayerWins>>",
outcomePlayerLoses: "<<include Quest_MQ002_Entrance_PlayerLoses>>"
}>>
<<script>>
State.variables.CharacterSheet_Player.fight.fightMoveIDs.push(setup.FightMove_Inspect);
<</script>>
<</if>>
<<if $Version >= 10300 && $Version < 10301>>
<<set $Version = 10301>>
<<set $VersionStr = '0.3.1'>>
<<include FightMove_Sigil_Vitality>>
<<include FightMove_Sigil_Pain>>
<<include FightMove_Sigil_Perception>>
<<include FightMove_Sigil_Growth>>
<<include FightMove_WitheringVenom>>
<<set setup.FightHotkeys = ["1","2","3","4","5","6","7","8","9","0","Q","W","E","R","T","Y","U","I","O","P"]>>
<</if>>
<<if $Version >= 10301 && $Version < 10302>>
<<set $Version = 10302>>
<<set $VersionStr = '0.3.2\n Cannot upgrade save file. Play at your own risk.'>>
<</if>>
<<if $Version >= 10302 && $Version < 10303>>
<<set $Version = 10303>>
<<set $VersionStr = '0.3.3\n SAVE FILE NOT COMPATIBLE WITH THIS VERSION! PLAY AT YOUR OWN RISKS!'>>
<</if>>
<<if $Version >= 10303 && $Version < 10304>>
<<set $Version = 10304>>
<<set $VersionStr = '0.3.4\n SAVE FILE NOT COMPATIBLE WITH THIS VERSION! PLAY AT YOUR OWN RISKS!'>>
<</if>>
<<if $Version >= 10303 && $Version < 10304>>
<<set $Version = 10305>>
<<set $VersionStr = '0.3.5\n SAVE FILE NOT COMPATIBLE WITH THIS VERSION! PLAY AT YOUR OWN RISKS!'>>
<</if>>
<<if $Version >= 10304 && $Version < 10400>>
<<set $Version = 10400>>
<<set $VersionStr = '0.4.0\n SAVE FILE NOT COMPATIBLE WITH THIS VERSION! PLAY AT YOUR OWN RISKS!'>>
<</if>>
<<if $Version >= 10400 && $Version < 10401>>
<<set $Version = 10401>>
<<set $VersionStr = '0.4.1\n SAVE FILE NOT COMPATIBLE WITH THIS VERSION! PLAY AT YOUR OWN RISKS!'>>
<</if>>
<<if $Version >= 10401 && $Version < 10402>>
<<set $Version = 10402>>
<<set $VersionStr = '0.4.2\n SAVE FILE NOT COMPATIBLE WITH THIS VERSION! PLAY AT YOUR OWN RISKS!'>>
<</if>>
<<if $Version >= 10402 && $Version < 10403>>
<<set $Version = 10403>>
<<set $VersionStr = '0.4.3\n SAVE FILE NOT COMPATIBLE WITH THIS VERSION! PLAY AT YOUR OWN RISKS!'>>
<</if>>
<<if $Version >= 10403 && $Version < 10404>>
<<set $Version = 10404>>
<<set $VersionStr = '0.4.4'>>
<<include StoryInit_Abilities>>
<<include Ending_OneWithNyx>>
<<run $EndingSheet.push($Ending_OneWithNyx)>>
<<set $DisplayStatWindow = true>>
<<set $SecretCheat = 0>>
<</if>>
<<if $Version >= 10404 && $Version < 10405>>
<<set $Version = 10405>>
<<set $VersionStr = '0.4.5'>>
<<include StoryInit_Abilities>>
<<include StoryInit_FightMoves>>
<<set $CharacterSheet_Player.quest.exploration.villageGateEast =
{
eastFirstTime:
{
available: true,
condition: function()
{
return true;
},
passage: "Explore_EastFirstTime",
},
eastGrownMacro:
{
available: true,
condition: function()
{
return setup.getStatValue(State.variables.CharacterSheet_Player, "muscles") > (50 * 12);
},
passage: "Explore_EastGrownMacro",
},
eastGrownDemonic:
{
available: true,
condition: function()
{
return setup.getRace(State.variables.CharacterSheet_Player.info.anatomy).toUpperCase() == "DEMON";
},
passage: "Explore_EastGrownDemonic",
},
eastGrownParasites:
{
available: true,
condition: function()
{
return State.variables.CharacterSheet_Player.quest.nyxParasiteInfections >= 10;
},
passage: "Explore_EastGrownParasites",
},
eastGrownLordOfLust:
{
available: true,
condition: function()
{
return setup.getRace(State.variables.CharacterSheet_Player.info.anatomy).toUpperCase() == "LORD OF LUST";
},
passage: "Explore_EastGrownLordOfLust",
},
} >>
<<set $CharacterSheet_Player.quest.exploration.villageGateNorth =
{
northFirstTime:
{
available: true,
condition: function()
{
return true;
},
passage: "Explore_NorthFirstTime",
},
northGrownMuscular:
{
available: true,
condition: function()
{
return setup.getStatValue(State.variables.CharacterSheet_Player, "muscles") > 30;
},
passage: "Explore_NorthGrownMuscular",
},
northVisibleCorruption:
{
available: true,
condition: function()
{
return setup.getStatValue(State.variables.CharacterSheet_Player, "corruption") > 25;
},
passage: "Explore_NorthVisibleCorruption",
},
northGrownHeight:
{
available: true,
condition: function()
{
var height = setup.getStatValue(State.variables.CharacterSheet_Player, "height");
return height > (25 * 12) && height < (50 * 12);
},
passage: "Explore_NorthGrownHeight",
},
}>>
<<set $CharacterSheet_Player.quest.exploration.easternFirstTime = undefined>>
<<run setup.updateStaticCorruptionUI(State.variables.CharacterSheet_Player)>>
<</if>>
<<if $Version >= 10405 && $Version < 10406>>
<<set $Version = 10406>>
<<set $VersionStr = '0.4.6'>>
<<set $CharacterSheet_Lost_Naga.quest.fuckedByPlayer = false>>
<<set $CharacterSheet_Lost_Naga.quest.hasBeenVored = false>>
<<set $CharacterSheet_Player.text.jormFirstMeeting =
{
heightFlavour:
{
small: [
"Jorm_FirstMeeting_PlayerSmall"
],
medium: [
"Jorm_FirstMeeting_PlayerSmall"
],
large: [
"Jorm_FirstMeeting_PlayerBig"
],
huge: [
"Jorm_FirstMeeting_PlayerBig"
],
}
}>>
<<include Sheets_Jorm>>
<</if>>
<<if $Version >= 10406 && $Version < 10407>>
<<set $Version = 10407>>
<<set $VersionStr = '0.4.7\n SAVE FILE NOT COMPATIBLE WITH THIS VERSION! PLAY AT YOUR OWN RISKS!'>>
<</if>>
<<if $Version >= 10407 && $Version < 10408>>
<<set $Version = 10408>>
<<set $VersionStr = '0.4.8'>>
<<include Ability_MinorCorruption>>
<<include Ability_MajorCorruption>>
<<include Ability_OverwhelmingCorruption>>
<<include Ability_LordOfCorruption>>
<<include Ability_BuriedInCum>>
<<include Ability_CorruptedStrength>>
<<include Ability_Focused>>
<<include FightMove_LustfulInstincts>>
<<include FightMove_CorruptedUrges>>
<<include FightMove_InfectiousLust>>
<<include FightMove_CorruptedRemedy>>
<<set setup.FightMoveIDs = [setup.FightMove_Basic_Attack.id,
setup.FightMove_Do_Nothing.id,
setup.FightMove_Submit_Completely.id,
setup.FightMove_Goo_Stun.id,
setup.FightMove_IncubusCall.id,
setup.FightMove_IncubusStrike.id,
setup.FightMove_Lunge.id,
setup.FightMove_Infest.id,
setup.FightMove_Inspect.id,
setup.FightMove_Masturbate.id,
setup.FightMove_Sigil_Vitality.id,
setup.FightMove_Sigil_Pain.id,
setup.FightMove_Sigil_Perception.id,
setup.FightMove_Sigil_Growth.id,
setup.FightMove_ChargedStrike.id,
setup.FightMove_Stomp.id,
setup.FightMove_Hypnotize.id,
setup.FightMove_Worship.id,
setup.FightMove_WitheringVenom.id,
setup.FightMove_Parry.id,
setup.FightMove_DragonStrike.id,
setup.FightMove_ParasiteLunge.id,
setup.FightMove_SummonParasite.id,
setup.FightMove_ConsumeLost.id,
setup.FightMove_SeedOfRuin.id,
setup.FightMove_SlimeLunge.id,
setup.FightMove_Slash.id,
setup.FightMove_Bash.id,
setup.FightMove_Focus.id,
setup.FightMove_CumDeluge.id,
setup.FightMove_LustfulInstincts.id,
setup.FightMove_CorruptedUrges.id,
setup.FightMove_InfectiousLust.id,
setup.FightMove_CorruptedRemedy.id,
]>>
<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_MinorCorruption);>>
<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_MajorCorruption);>>
<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_OverwhelmingCorruption);>>
<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_LostInCorruption);>>
<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_LordOfCorruption);>>
<<set setup.FightMove_Stunned.skillTheme = "special">>
<<set setup.FightMove_Bash.skillTheme = "offensive">>
<<set setup.FightMove_BasicAttack.skillTheme = "offensive">>
<<set setup.FightMove_ChargedStrike.skillTheme = "offensive">>
<<set setup.FightMove_ConsumeLost.skillTheme = "offensive">>
<<set setup.FightMove_DoNothing.skillTheme = "special">>
<<set setup.FightMove_Submit_Completely.skillTheme = "special">>
<<set setup.FightMove_DragonStrike.skillTheme = "offensive">>
<<set setup.FightMove_Goo_Stun.skillTheme = "symbiote">>
<<set setup.FightMove_Hypnotize.skillTheme = "offensive">>
<<set setup.FightMove_IncubusCall.skillTheme = "demon">>
<<set setup.FightMove_IncubusStrike.skillTheme = "demon">>
<<set setup.FightMove_Infest.skillTheme = "offensive">>
<<set setup.FightMove_Inspect.skillTheme = "special">>
<<set setup.FightMove_Masturbate.skillTheme = "buff">>
<<set setup.FightMove_Parry.skillTheme = "offensive">>
<<set setup.FightMove_SeedOfRuin.skillTheme = "offensive">>
<<set setup.FightMove_Sigil_Growth.skillTheme = "sigil">>
<<set setup.FightMove_Sigil_Pain.skillTheme = "sigil">>
<<set setup.FightMove_Sigil_Perception.skillTheme = "sigil">>
<<set setup.FightMove_Sigil_Vitality.skillTheme = "sigil">>
<<set setup.FightMove_Sigil_Slash.skillTheme = "offensive">>
<<set setup.FightMove_Sigil_SlimeLunge.skillTheme = "offensive">>
<<set setup.FightMove_Sigil_Stomp.skillTheme = "offensive">>
<<set setup.FightMove_Sigil_SummonParasite.skillTheme = "demon">>
<<set setup.FightMove_Sigil_WitheringVenom.skillTheme = "offensive">>
<<set setup.FightMove_Sigil_Worship.skillTheme = "special">>
<<set setup.FightMove_Focus.skillDescription = "Gain an additional action slot.">>
<<set setup.FightMove_Focus.skillTheme = "buff">>
<<run setup.updateStaticCorruptionUI(State.variables.CharacterSheet_Player)>>
<</if>>
<<if $Version >= 10408 && $Version < 10409>>
<<set $Version = 10409>>
<<set $VersionStr = '0.4.9'>>
<<include Ability_Focused>>
<<include Ability_Momentum>>
<<include Ability_Incorruptible>>
<<include Ability_ServantOfKanathar>>
<<include Ability_ValiantRush>>
<<include FightMove_Focus>>
<<set setup.StorylineProgress_Imp =
{
FIRST_MEETING: 0,
LOW_RELATIONSHIP: 1000,
MID_RELATIONSHIP: 2000,
SERVANT: 3000,
MASTER: 4000,
}>>
<<set setup.QuestSheet_Imp =
{
met: false,
storylineProgress: setup.StorylineProgress_Imp.FIRST_MEETING,
relationshipScoring: 0,
servantScoring: 0,
servantWins: 3,
servantLosses: 3,
masterScoring: 0,
lostScoring: 0,
encounterPassages:
{
servant:
{
available: true,
condition: function()
{
return State.variables.CharacterSheet_Imp.quest.storylineProgress == setup.StorylineProgress_Imp.SERVANT;
},
passage: "Imp_Servant_EncounterStart",
},
midRela:
{
available: true,
condition: function()
{
return State.variables.CharacterSheet_Imp.quest.relationshipScoring >= 3;
},
passage: "Imp_Mid_Rela_EncounterStart",
},
lowRela:
{
available: true,
condition: function()
{
return State.variables.CharacterSheet_Imp.quest.relationshipScoring >= 1;
},
passage: "Imp_Low_Rela_EncounterStart",
},
firstTime:
{
available: true,
condition: function()
{
return true;
},
passage: "Imp_FirstMeeting_Intro",
},
},
postFightPassagesWin:
{
servantPath:
{
available: true,
condition: function()
{
return State.variables.CharacterSheet_Imp.quest.storylineProgress == setup.StorylineProgress_Imp.SERVANT;
},
passage: "Imp_Win_ServantPath",
},
masterChoice:
{
available: true,
condition: function()
{
return State.variables.CharacterSheet_Imp.quest.relationshipScoring >= 8 && State.variables.CharacterSheet_Imp.quest.masterScoring >= 3;
},
passage: "Imp_MasterChoice",
},
lowRelaEnterMidRela:
{
available: true,
condition: function()
{
return State.variables.CharacterSheet_Imp.quest.relationshipScoring >= 3;
},
passage: "Imp_Low_Rela_Win_EnterMidRela",
},
midRelaIdle:
{
available: true,
condition: function()
{
return State.variables.CharacterSheet_Imp.quest.relationshipScoring >= 3;
},
passage: "Imp_Mid_Rela_Win_Idle",
},
lowRelaIdle:
{
available: true,
condition: function()
{
return true;
},
passage: "Imp_Low_Rela_Win_Idle",
},
},
postFightPassagesLoss:
{
servantPath:
{
available: true,
condition: function()
{
return State.variables.CharacterSheet_Imp.quest.storylineProgress == setup.StorylineProgress_Imp.SERVANT;
},
passage: "Imp_Loss_ServantPath",
},
servantChoice:
{
available: true,
condition: function()
{
return State.variables.CharacterSheet_Imp.quest.relationshipScoring >= 6 && State.variables.CharacterSheet_Imp.quest.servantScoring >= 3;
},
passage: "Imp_Loss_ServantChoice",
},
midRelaIdle:
{
available: true,
condition: function()
{
return State.variables.CharacterSheet_Imp.quest.relationshipScoring >= 3;
},
passage: "Imp_Mid_Rela_Loss_Idle",
},
lowRelaIdle:
{
available: true,
condition: function()
{
return true;
},
passage: "Imp_Low_Rela_Loss_Idle",
},
},
}>>
<<set $CharacterSheet_Imp.quest = setup.QuestSheet_Imp>>
<</if>>
<<if $Version >= 10409 && $Version < 10409.1>>
<<set $Version = 10409.1>>
<<set $VersionStr = '0.4.9'>>
<<set $EasyRandomEncounters = ["CharacterSheet_Imp", "CharacterSheet_Slime"]>>
<</if>>
<<if $Version >= 10409.1 && $Version < 10500>>
<<set $Version = 10500>>
<<set $VersionStr = '0.5.0'>>
<<include Ability_Global_HeightSizeTier_1>>
<<include Ability_Global_HeightSizeTier_2>>
<<include Ability_Global_HeightSizeTier_3>>
<<include Ability_Global_HeightSizeTier_4>>
<<include Ability_Global_HeightSizeTier_5>>
<<include Ability_Global_HeightSizeTier_6>>
<<include FightMove_PridefulAscent>>
<<include "_imp_body_visual">>
<<set $CharacterSheet_Player.fight.teammate = undefined>>
<<set setup.FightMoveIDs = [setup.FightMove_Basic_Attack.id,
setup.FightMove_Do_Nothing.id,
setup.FightMove_Submit_Completely.id,
setup.FightMove_Goo_Stun.id,
setup.FightMove_IncubusCall.id,
setup.FightMove_IncubusStrike.id,
setup.FightMove_Lunge.id,
setup.FightMove_Infest.id,
setup.FightMove_Inspect.id,
setup.FightMove_Masturbate.id,
setup.FightMove_Sigil_Vitality.id,
setup.FightMove_Sigil_Pain.id,
setup.FightMove_Sigil_Perception.id,
setup.FightMove_Sigil_Growth.id,
setup.FightMove_ChargedStrike.id,
setup.FightMove_Stomp.id,
setup.FightMove_Hypnotize.id,
setup.FightMove_Worship.id,
setup.FightMove_WitheringVenom.id,
setup.FightMove_Parry.id,
setup.FightMove_DragonStrike.id,
setup.FightMove_ParasiteLunge.id,
setup.FightMove_SummonParasite.id,
setup.FightMove_ConsumeLost.id,
setup.FightMove_SeedOfRuin.id,
setup.FightMove_SlimeLunge.id,
setup.FightMove_Slash.id,
setup.FightMove_Bash.id,
setup.FightMove_Focus.id,
setup.FightMove_CumDeluge.id,
setup.FightMove_LustfulInstincts.id,
setup.FightMove_CorruptedUrges.id,
setup.FightMove_InfectiousLust.id,
setup.FightMove_CorruptedRemedy.id,
setup.FightMove_PridefulAscent.id,
]>>
<<set $LevelUpParams =
{
point : 2,
hp: {name: "Health", value: $CharacterSheet_Player.fight.hp},
stamina: {name: "Stamina", value: $CharacterSheet_Player.fight.stamina},
strength: {name: "Strength", value: $CharacterSheet_Player.fight.strength},
arousalGain: {name: "Arousal Gain per turn", value: $CharacterSheet_Player.fight.arousalGain},
staminaRecovery: {name: "Stamina Recovery per turn", value: $CharacterSheet_Player.fight.staminaRecovery},
scaling: {
hp: 6,
stamina: 4,
strength: 3,
arousalGain: 2,
staminaRecovery: 1,
},
}>>
<<set $CharacterSheet_Imp.fight.fightMoveIDs = [setup.FightMove_Basic_Attack.id, setup.FightMove_PridefulAscent.id]>>
<<set $CharacterSheet_Imp.info.bodyVisual = "BodyVisualSheet_Imp">>
<<set setup.QuestSheet_Imp.encounterPassages.growthBodySmallToMedium =
{
available: true,
condition: function()
{
return setup.getCurrentBodyVisual(State.variables.CharacterSheet_Imp) == "medium"
},
passage: "Imp_EncounterStart_Growth_Body_SmallToMedium",
}>>
<<set setup.QuestSheet_Imp.encounterPassages.growthBodyMediumToLarge =
{
available: true,
condition: function()
{
return setup.getCurrentBodyVisual(State.variables.CharacterSheet_Imp) == "big"
},
passage: "Imp_EncounterStart_Growth_Body_MediumToLarge",
}>>
<<set setup.QuestSheet_Imp.encounterPassages.growthCock1to2 =
{
available: true,
condition: function()
{
return setup.getCurrentBodyVisual(State.variables.CharacterSheet_Imp) == "small" && setup.getCurrentCockVisual(State.variables.CharacterSheet_Imp) == "small";
},
passage: "Imp_EncounterStart_Growth_Cock_1To2",
}>>
<<set setup.QuestSheet_Imp.encounterPassages.growthCock2to3 =
{
available: true,
condition: function()
{
return setup.getCurrentBodyVisual(State.variables.CharacterSheet_Imp) == "medium" && setup.getCurrentCockVisual(State.variables.CharacterSheet_Imp) == "medium";
},
passage: "Imp_EncounterStart_Growth_Cock_2To3",
}>>
<<set setup.QuestSheet_Imp.encounterPassages.growthCock3to4 =
{
available: true,
condition: function()
{
return setup.getCurrentBodyVisual(State.variables.CharacterSheet_Imp) == "medium" && setup.getCurrentCockVisual(State.variables.CharacterSheet_Imp) == "big";
},
passage: "Imp_EncounterStart_Growth_Cock_3To4",
}>>
<<set setup.QuestSheet_Imp.encounterPassages.growthCock4to5 =
{
available: true,
condition: function()
{
return setup.getCurrentBodyVisual(State.variables.CharacterSheet_Imp) == "big" && setup.getCurrentCockVisual(State.variables.CharacterSheet_Imp) == "biggest";
},
passage: "Imp_EncounterStart_Growth_Cock_4To5",
}>>
<<set setup.QuestSheet_Imp.encounterPassages.growthCock5to6 =
{
available: true,
condition: function()
{
return setup.getCurrentBodyVisual(State.variables.CharacterSheet_Imp) == "big" && setup.getCurrentCockVisual(State.variables.CharacterSheet_Imp) == "biggestHyperBalls";
},
passage: "Imp_EncounterStart_Growth_Cock_5To6",
}>>
<</if>>
<<if $Version >= 10500 && $Version < 10500.1>>
<<set $Version = 10500.1>>
<<set $VersionStr = '0.5.0*'>>
<<if $CharacterSheet_Player.fight.teammate != undefined>>
<<set $EasyRandomEncounters = ["CharacterSheet_Imp", "CharacterSheet_Slime"]>>
<<else>>
<<set $EasyRandomEncounters = ["CharacterSheet_Slime"]>>
<</if>>
<</if>>
<<if $Version >= 10500.1 && $Version < 10500.2>>
<<set $Version = 10500.2>>
<<set $VersionStr = '0.5.0*'>>
<<if $CharacterSheet_Player.fight.teammate == undefined>>
<<set $EasyRandomEncounters = ["CharacterSheet_Imp", "CharacterSheet_Slime"]>>
<<else>>
<<set $EasyRandomEncounters = ["CharacterSheet_Slime"]>>
<</if>>
<</if>>
<<if $Version >= 10500.2 && $Version < 10500.3>>
<<set $Version = 10500.3>>
<<set $VersionStr = '0.5.0*'>>
<<run console.log("upgrading 10500.2 to 10500.3")>>
<<if $CharacterSheet_Player.fight.teammate == undefined>>
<<set $EasyRandomEncounters = ["CharacterSheet_Imp", "CharacterSheet_Slime"]>>
<<else>>
<<set $EasyRandomEncounters = ["CharacterSheet_Slime"]>>
<</if>>
<</if>>
<<if $Version >= 10500.3 && $Version < 10500.4>>
<<set $Version = 10500.4>>
<<set $VersionStr = '0.5.0*'>>
<<run console.log("upgrading 10500.3 to 10500.4")>>
<<if $CharacterSheet_Player.fight.teammate == undefined>>
<<set $EasyRandomEncounters = ["CharacterSheet_Imp", "CharacterSheet_Slime"]>>
<<else>>
<<set $EasyRandomEncounters = ["CharacterSheet_Slime"]>>
<</if>>
<</if>>
<<if $Version >= 10500.4 && $Version < 10501>>
<<set $Version = 10501>>
<<set $VersionStr = '0.5.1'>>
<<set setup.AttackTiming =
{
BEFORE_PLAYER: 1,
BETWEEN_PLAYER_AND_ENEMY: 2,
AFTER_ENEMY: 3,
}>>
<<widget "PlayerHeight">><<print setup.getLength(setup.getStatValue($CharacterSheet_Player, "height"))>><</widget>>
<<widget "PlayerCock">><<print setup.getLength(setup.getStatValue($CharacterSheet_Player, "cock"))>><</widget>>
<<widget "PlayerBalls">><<print setup.getLength(setup.getStatValue($CharacterSheet_Player, "balls"))>><</widget>>
<<widget "PlayerRace">><<print setup.getRace(State.variables.CharacterSheet_Player.info.anatomy)>><</widget>>
<<widget "PlayerName">><<print setup.getRace(State.variables.CharacterSheet_Player.info.name)>><</widget>>
<<widget "PlayerArmsNoVerb">><<print setup.processFlavours($CharacterSheet_Player, "@[all|arms|noverb]")>> \<</widget>>
<<widget "PlayerHandsNoVerb">><<print setup.processFlavours($CharacterSheet_Player, "@[all|hands|noverb]")>> \<</widget>>
<<widget "PlayerBallsNoVerb">><<print setup.processFlavours($CharacterSheet_Player, "@[all|balls|noverb]")>> \<</widget>>
<<widget "SymbioteRace">><<print setup.getRace(State.variables.CharacterSheet_Player.symbiote.anatomy)>><</widget>>
<<widget "SymbioteColor">><<print State.variables.CharacterSheet_Player.symbiote.color>><</widget>>
<<widget "SymbioteName">><<print State.variables.CharacterSheet_Player.symbiote.name>><</widget>>
<<widget "ImpHeight">><<print setup.getLength(setup.getStatValue($CharacterSheet_Imp, "height"))>><</widget>>
<<widget "ImpCockLength">><<print setup.getLength(setup.getStatValue($CharacterSheet_Imp, "cock"))>><</widget>>
<<widget "ImpBallsSize">><<print setup.getLength(setup.getStatValue($CharacterSheet_Imp, "balls"))>><</widget>>
<<set $CharacterSheet_Imp.fight.teammateSettings = {
attackTiming: setup.AttackTiming.BEFORE_PLAYER,
}>>
<<set $CharacterSheet_Imp.quest.encounterPassages.growthCock5to6 =
{
available: true,
condition: function()
{
return setup.getCurrentBodyVisual(State.variables.CharacterSheet_Imp) == "big" && setup.getCurrentCockVisual(State.variables.CharacterSheet_Imp) == "biggestHyperBalls";
},
passage: "Imp_EncounterStart_Growth_Cock_5To6",
}>>
<<set $CharacterSheet_Imp.quest.postFightPassagesWin.masterPath =
{
available: true,
condition: function()
{
return State.variables.CharacterSheet_Imp.quest.storylineProgress == setup.StorylineProgress_Imp.MASTER;
},
passage: "Imp_Win_MasterPath",
}>>
<<set $CharacterSheet_Imp.quest.postFightPassagesLoss.masterPath =
{
available: true,
condition: function()
{
return State.variables.CharacterSheet_Imp.quest.storylineProgress == setup.StorylineProgress_Imp.MASTER;
},
passage: "Imp_Loss_MasterPath",
}>>
<<set $CharacterSheet_Imp.quest.growthMultiplier = 1>>
<<set $CharacterSheet_Imp.text =
{
Village_goMeetImp_Intro :{
heightFlavour: {
small: [
"Village_GoMeetImp_heightFlavour_small",
],
medium: [
"Village_GoMeetImp_heightFlavour_small",
],
large: [
"Village_GoMeetImp_heightFlavour_large",
],
huge: [
"Village_GoMeetImp_heightFlavour_huge",
],
},
},
goMeetImp_Height :{
heightFlavour: {
small: [
"Teammate_Imp_Examine_Size_Small",
],
medium: [
"Teammate_Imp_Examine_Size_Small",
],
large: [
"Teammate_Imp_Examine_Size_Large",
],
huge: [
"Teammate_Imp_Examine_Size_Huge",
],
},
},
goMeetImp_Muscles :{
heightFlavour: {
small: [
"Teammate_Imp_Examine_Muscles_Small",
],
medium: [
"Teammate_Imp_Examine_Muscles_Small",
],
large: [
"Teammate_Imp_Examine_Muscles_Large",
],
huge: [
"Teammate_Imp_Examine_Muscles_Huge",
],
},
},
goMeetImp_Genitals :{
heightFlavour: {
small: [
"Teammate_Imp_Examine_Genitals_Small",
],
medium: [
"Teammate_Imp_Examine_Genitals_Small",
],
large: [
"Teammate_Imp_Examine_Genitals_Large",
],
huge: [
"Teammate_Imp_Examine_Genitals_Huge",
],
},
},
leaveImp :{
heightFlavour: {
small: [
"Teammate_Imp_Leave_Small",
],
medium: [
"Teammate_Imp_Leave_Small",
],
large: [
"Teammate_Imp_Leave_Large",
],
huge: [
"Teammate_Imp_Leave_Huge",
],
},
},
goMeetImp_GrowImp :{
heightFlavour: {
small: [
"Teammate_Imp_GrowHim_Large",
],
medium: [
"Teammate_Imp_GrowHim_Large",
],
large: [
"Teammate_Imp_GrowHim_Large",
],
huge: [
"Teammate_Imp_GrowHim_Huge",
],
},
},
basicAttackPrepFlavour :{
heightFlavour: {
small: [
"_imp_text_sheet_basicAttackPrepFlavour_heightFlavour_small_1",
"_imp_text_sheet_basicAttackPrepFlavour_heightFlavour_small_2",
"_imp_text_sheet_basicAttackPrepFlavour_heightFlavour_small_3",
"_imp_text_sheet_basicAttackPrepFlavour_heightFlavour_small_4",
],
medium: [
"_imp_text_sheet_basicAttackPrepFlavour_heightFlavour_medium_1",
"_imp_text_sheet_basicAttackPrepFlavour_heightFlavour_medium_2",
"_imp_text_sheet_basicAttackPrepFlavour_heightFlavour_medium_3",
],
large: [
"_imp_text_sheet_basicAttackPrepFlavour_heightFlavour_large_1",
"_imp_text_sheet_basicAttackPrepFlavour_heightFlavour_large_2",
"_imp_text_sheet_basicAttackPrepFlavour_heightFlavour_large_3",
],
huge: [
"_imp_text_sheet_basicAttackPrepFlavour_heightFlavour_huge_1",
"_imp_text_sheet_basicAttackPrepFlavour_heightFlavour_huge_2",
"_imp_text_sheet_basicAttackPrepFlavour_heightFlavour_huge_3",
],
},
},
encounterStartFlavour :{
heightFlavour: {
small: [
"_imp_text_sheet_encounterStartFlavour_heightFlavour_small_1",
"_imp_text_sheet_encounterStartFlavour_heightFlavour_small_2",
"_imp_text_sheet_encounterStartFlavour_heightFlavour_small_3",
"_imp_text_sheet_encounterStartFlavour_heightFlavour_small_4",
],
medium: [
"_imp_text_sheet_encounterStartFlavour_heightFlavour_medium_1",
"_imp_text_sheet_encounterStartFlavour_heightFlavour_medium_2",
"_imp_text_sheet_encounterStartFlavour_heightFlavour_medium_3",
],
large: [
"_imp_text_sheet_encounterStartFlavour_heightFlavour_large_1",
"_imp_text_sheet_encounterStartFlavour_heightFlavour_large_2",
"_imp_text_sheet_encounterStartFlavour_heightFlavour_large_3",
],
huge: [
"_imp_text_sheet_encounterStartFlavour_heightFlavour_huge_1",
"_imp_text_sheet_encounterStartFlavour_heightFlavour_huge_2",
"_imp_text_sheet_encounterStartFlavour_heightFlavour_huge_3",
],
},
}
}>>
<<set $CharacterSheet_Player.quest.exploration.villageGateNorth.northGrownHeightMassive =
{
available: true,
condition: function()
{
var height = setup.getStatValue(State.variables.CharacterSheet_Player, "height");
return height > (50 * 12);
},
passage: "Explore_NorthGrownHeightMassive",
}>>
<<set $CharacterSheet_Player.quest.exploration.villageGateEast.eastGrownMegaMacro =
{
available: true,
condition: function()
{
return setup.getStatValue(State.variables.CharacterSheet_Player, "muscles") > (200 * 12);
},
passage: "Explore_EastGrownMegaMacro",
}>>
<</if>>
<<if $Version >= 10501 && $Version < 10501.1>>
<<run console.log("deprecate 10501")>>
<<set $Version = 10501.1>>
<<set $VersionStr = '0.5.1'>>
<<if $CharacterSheet_Player.fight.teammate == undefined>>
<<set $EasyRandomEncounters = ["CharacterSheet_Imp", "CharacterSheet_Slime"]>>
<<else>>
<<set $EasyRandomEncounters = ["CharacterSheet_Slime"]>>
<</if>>
<</if>>
<<if $Version >= 10501.1 && $Version < 10502>>
<<run console.log("deprecate 10502")>>
<<set $Version = 10502>>
<<set $VersionStr = '0.5.2\n [[SAVE FILE NOT COMPATIBLE WITH THIS VERSION! CLICK HERE TO RESTART WHILE KEEPING YOUR ESSENCE AND EXP!->Reload_Unsupported_Enter]]'>>
<</if>>
<<if $Version >= 10502 && $Version < 10503>>
<<set $CharacterSheet_Player.info.corruptionPerDay = 0>>
<<include Ability_Uncorrupted>>
<<include Ability_MinorCorruption>>
<<include Ability_MajorCorruption>>
<<include Ability_OverwhelmingCorruption>>
<<include Ability_LordOfCorruption>>
<<run console.log("deprecate 10503")>>
<<set $Version = 10503>>
<<set $VersionStr = '0.5.3\n [[SAVE FILE NOT COMPATIBLE WITH THIS VERSION! CLICK HERE TO RESTART WHILE KEEPING YOUR ESSENCE AND EXP!->Reload_Unsupported_Enter]]'>>
<</if>>
<<if $Version >= 10503 && $Version < 10600>>
<<include Ending_OneWithApothus>>
<<include Ending_OneWithNyx>>
<<include Ending_MemoriesOfCray>>
<<include Ending_NyxChosenAscension>>
<<include StoryInit_Abilities>>
<<include StoryInit_FightMoves>>
<<include Sheets_Wounded_Lost>>
<<run console.log("deprecate 10600")>>
<<set $Version = 10600>>
<<set $VersionStr = '0.6.0\n "[[SAVE FILE NOT COMPATIBLE WITH THIS VERSION! CLICK HERE TO RESTART WHILE KEEPING YOUR ESSENCE AND EXP!->Reload_Unsupported_Enter]]'>>
<</if>>
<<if $Version >= 10600 && $Version < 10601>>
<<run console.log("deprecate 10601")>>
<<set $Version = 10601>>
<<set $VersionStr = '0.6.1\n "[[SAVE FILE NOT COMPATIBLE WITH THIS VERSION! CLICK HERE TO RESTART WHILE KEEPING YOUR ESSENCE, ACHIEVEMENTS AND EXP!->Reload_Unsupported_Enter]]'>>
<</if>>
<<if $Version >= 10601 && $Version < 10602>>
<<run console.log("deprecate 10602")>>
<<set $Version = 10602>>
<<set $VersionStr = '0.6.2\n "[[SAVE FILE NOT COMPATIBLE WITH THIS VERSION! CLICK HERE TO RESTART WHILE KEEPING YOUR ESSENCE, ACHIEVEMENTS AND EXP!->Reload_Unsupported_Enter]]'>>
<</if>>
<<if $Version >= 10602 && $Version < 10603>>
<<run console.log("deprecate 10603")>>
<<set $Version = 10603>>
<<set $VersionStr = '0.6.3\n "[[SAVE FILE NOT COMPATIBLE WITH THIS VERSION! CLICK HERE TO RESTART WHILE KEEPING YOUR ESSENCE, ACHIEVEMENTS AND EXP!->Reload_Unsupported_Enter]]'>>
<</if>>
<<if $Version >= 10603 && $Version < 10604>>
<<run console.log("deprecate 10604")>>
<<set $Version = 10604>>
<<set $VersionStr = '0.6.4\n "[[SAVE FILE NOT COMPATIBLE WITH THIS VERSION! CLICK HERE TO RESTART WHILE KEEPING YOUR ESSENCE, ACHIEVEMENTS AND EXP!->Reload_Unsupported_Enter]]'>>
<</if>>
<<if $Version >= 10604 && $Version < 10605>>
<<run console.log("deprecate 10605")>>
<<set $Version = 10605>>
<<set $VersionStr = '0.6.5\n "[[SAVE FILE NOT COMPATIBLE WITH THIS VERSION! CLICK HERE TO RESTART WHILE KEEPING YOUR ESSENCE, ACHIEVEMENTS AND EXP!->Reload_Unsupported_Enter]]'>>
<</if>>
<<if $Version >= 10605 && $Version < 10700>>
<<run console.log("deprecate 10700")>>
<<set $Version = 10700>>
<<set $VersionStr = '0.7.0\n "[[SAVE FILE NOT COMPATIBLE WITH THIS VERSION! CLICK HERE TO RESTART WHILE KEEPING YOUR ESSENCE, ACHIEVEMENTS AND EXP!->Reload_Unsupported_Enter]]'>>
<<set $VolumeControls =
{
master:
{
volume: 0.2,
},
music:
{
volume: 0.2,
list: [],
},
voices:
{
volume: 0.8,
list: [],
},
sfx:
{
volume: 1,
list: [],
},
}>>
<<run console.log("set controls")>>
<<run console.log($VolumeControls)>>
<</if>>
<<if $Version >= 10700 && $Version < 10701>>
<<run console.log("deprecate 10701")>>
<<set $Version = 10701>>
<<set $VersionStr = '0.7.1\n "[[SAVE FILE NOT COMPATIBLE WITH THIS VERSION! CLICK HERE TO RESTART WHILE KEEPING YOUR ESSENCE, ACHIEVEMENTS AND EXP!->Reload_Unsupported_Enter]]'>>
<</if>>
<<if $Version >= 10701 && $Version < 10702>>
<<run console.log("deprecate 10702")>>
<<set $Version = 10702>>
<<set $VersionStr = '0.7.2\n "[[SAVE FILE NOT COMPATIBLE WITH THIS VERSION! CLICK HERE TO RESTART WHILE KEEPING YOUR ESSENCE, ACHIEVEMENTS AND EXP!->Reload_Unsupported_Enter]]'>>
<</if>>
<<if $Version >= 10702 && $Version < 10703>>
<<run console.log("deprecate 10703")>>
<<set $Version = 10703>>
<<set $VersionStr = '0.7.3\n "[[SAVE FILE NOT COMPATIBLE WITH THIS VERSION! CLICK HERE TO RESTART WHILE KEEPING YOUR ESSENCE, ACHIEVEMENTS AND EXP!->Reload_Unsupported_Enter]]'>>
<</if>>
<<if $Version >= 10703 && $Version < 10704>>
<<run console.log("deprecate 10704")>>
<<script>>
for(let i = 0; i < State.variables.CharacterSheet_Player.abilityHandler.abilityRuntimeDatas.length; ++i)
{
State.variables.CharacterSheet_Player.abilityHandler.abilityRuntimeDatas[i].abilityDataIndex = setup.AbilityIndexCache[State.variables.CharacterSheet_Player.abilityHandler.abilityRuntimeDatas[i].abilityDataID];
}
<</script>>
<<set $Version = 10704>>
<<set $VersionStr = '0.7.4\n [[SAVE FILE NOT COMPATIBLE WITH THIS VERSION! CLICK HERE TO RESTART WHILE KEEPING YOUR ESSENCE, ACHIEVEMENTS AND EXP!->Reload_Unsupported_Enter]]'>>
<</if>>
<<if $Version >= 10704 && $Version < 10704.1>>
<<run console.log("deprecate 10704.1")>>
<<script>>
for(let i = 0; i < State.variables.CharacterSheet_Player.abilityHandler.abilityRuntimeDatas.length; ++i)
{
State.variables.CharacterSheet_Player.abilityHandler.abilityRuntimeDatas[i].abilityDataIndex = setup.AbilityIndexCache[State.variables.CharacterSheet_Player.abilityHandler.abilityRuntimeDatas[i].abilityDataID];
}
<</script>>
<<set $Version = 10704.1>>
<<set $VersionStr = '0.7.4.1\n [[SAVE FILE NOT COMPATIBLE WITH THIS VERSION! CLICK HERE TO RESTART WHILE KEEPING YOUR ESSENCE, ACHIEVEMENTS AND EXP!->Reload_Unsupported_Enter]]'>>
<</if>>
<<if $Version >= 10704.1 && $Version < 10705>>
<<run console.log("deprecate 10705")>>
<<set $Version = 10705>>
<<set $VersionStr = '0.7.5'>>
<</if>>
<<if $Version >= 10705 && $Version < 10706>>
<<run console.log("deprecate 10706")>>
<<set $Version = 10706>>
<<set $VersionStr = '0.7.6'>>
<</if>>
<<if $Version >= 10706 && $Version < 10707>>
<<run console.log("deprecate 10707")>>
<<set $Version = 10707>>
<<set $VersionStr = '0.7.7'>>
<</if>>
<<if $Version >= 10707 && $Version < 10708>>
<<run console.log("deprecate 10708")>>
<<set $Version = 10708>>
<<set $VersionStr = '0.7.8'>>
<</if>>
<<if $Version >= 10708 && $Version < 10709>>
<<run console.log("deprecate 10709")>>
<<set $Version = 10709>>
<<set $VersionStr = '0.7.9'>>
<</if>>
<<if $Version >= 10709 && $Version < 10710>>
<<run console.log("deprecate 10710")>>
<<set $Version = 10710>>
<<set $VersionStr = '0.7.10'>>
<</if>>
<<if $Version >= 10710 && $Version < 10711>>
<<run console.log("deprecate 10711")>>
<<set $Version = 10711>>
<<set $VersionStr = '0.7.11'>>
<</if>>
<<if $Version >= 10711 && $Version < 10800>>
<<run console.log("deprecate 10800")>>
<<set $Version = 10800>>
<<set $VersionStr = '0.8.0'>>
<</if>>
<<if $Version >= 10800 && $Version < 10801>>
<<run console.log("deprecate 10801")>>
<<set $Version = 10801>>
<<set $VersionStr = '0.8.1'>>
<</if>>
<<if $Version >= 10801 && $Version < 10802>>
<<run console.log("deprecate 10802")>>
<<set $Version = 10802>>
<<set $VersionStr = '0.8.2'>>
<<script>>
Dialog.setup("Upgrade save file");
Dialog.wiki(Story.get("UpgradeSave").processText());
Dialog.open();
<</script>>
<</if>>
<<if $Version >= 10802 && $Version < 10803>>
<<run console.log("deprecate 10803")>>
<<set $Version = 10803>>
<<set $VersionStr = '0.8.3'>>
<</if>>
<</if>>
<<if $Version >= 10803 && $Version < 10804>>
<<run console.log("deprecate 10804")>>
<<set $Version = 10804>>
<<set $VersionStr = '0.8.4'>>
<<set $CharacterSheet_Player.info.tags = {partnerRecentSex: false,partnerSparExhaustion: false}>>
<<set $CharacterSheet_Player.info.choiceHighlight = {limitBreakAvail: false,overgrowthAvail: false,mutationAvail: false,newCardAvail: false}>>
<</if>>
<<if $Version >= 10804 && $Version < 10804.1>>
<<run console.log("deprecate 10804.1")>>
<<set $Version = 10804.1>>
<<set $VersionStr = '0.8.4.1'>>
<</if>>
<<if $Version >= 10804.1 && $Version < 10804.2>>
<<run console.log("deprecate 10804.2")>>
<<set $Version = 10804.2>>
<<set $VersionStr = '0.8.4.2'>>
<</if>>
<<if $Version >= 10804.2 && $Version < 10805>>
<<run console.log("deprecate 10805")>>
<<set $Version = 10805>>
<<set $VersionStr = '0.8.5'>>
<</if>>
<<if $Version >= 10805 && $Version < 10806>>
<<run console.log("deprecate 10806")>>
<<include Achievement_BearerOfTheEye>>
<<set $Version = 10806>>
<<set $VersionStr = '0.8.6'>>
<<script>>
Dialog.setup("Upgrade save file");
Dialog.wiki(Story.get("UpgradeSave").processText());
Dialog.open();
<</script>>
<</if>>
<<if $Version >= 10806 && $Version < 10806.1>>
<<run console.log("deprecate 10806")>>
<<set $Version = 10806.1>>
<<set $VersionStr = '0.8.6.1'>>
<<set $CharacterSheet_Player.abilityHandler.applyAbilityRuntimeData = setup.FixedapplyAbilityRuntimeData0861>>
<</if>>
<<if $Version >= 10806.1 && $Version < 10806.4>>
<<run console.log("deprecate 10806.4")>>
<<set $CharacterSheet_Player.abilityHandler.applyAbilityRuntimeData = setup.FixedapplyAbilityRuntimeData0861>>
<<if State.variables.AchievementBackup.length == 0>>
<<run setup.backupEndingAbilities()>>
<</if>>
<<run setup.loadBackedUpAchievements()>>
<<set $Version = 10806.4>>
<<set $VersionStr = '0.8.6.4'>>
<</if>><<include StoryReInit>><<include StoryInit_Base>>
<<include StoryInit_Widgets>>
<<include StoryInit_UniversalFlavour>>
<<include StoryInit_FightVariables>>
<<include StoryInit_FightMoves>>
<<include Quest_MQ001_EchoFirstEncounter>>
<<include Quest_MQ002>>
<<include StoryInit_QuestVariables>>
<<include StoryInit_Abilities>>
<<include StoryInit_ExplorationData>>
<<include Sheets_Anatomy>>
<<include Sheets_Races>> /* Must be after Anatomy */
<<include Sheets_Characters>> /* Must be after Races */
<<include StoryInit_StateDrivenModifiers>>
<<include StoryInit_WorldState>>
<<include StoryInit_EndingSheet>>
<<include StoryInit_UI>>
<<include StoryInit_Music>><<include StoryInit_AbilityTrigger>>
<<set setup.UnlockableAbilityList = []>>
<<set setup.GlobalAbilities = []>>
<<include Ability_Tank>>
<<include Ability_Berserking>>
<<include Ability_DeadlyAim>>
<<include Ability_Mutant_2>>
<<include Ability_Mutant>>
<<include Ability_Global_HeightSizeTier_1>>
<<include Ability_Global_HeightSizeTier_2>>
<<include Ability_Global_HeightSizeTier_3>>
<<include Ability_Global_HeightSizeTier_4>>
<<include Ability_Global_HeightSizeTier_5>>
<<include Ability_Global_HeightSizeTier_6>>
<<include Ability_Global_MuscleTier_First>>
<<include Ability_Global_MuscleTier_Second>>
<<include Ability_Global_MuscleTier_Third>>
<<include Ability_Global_MuscleTier_Fourth>>
<<include Ability_Global_MuscleTier_Fifth>>
<<include Ability_Global_MuscleTier_Sixth>>
<<include Ability_Global_CockTier_First>>
<<include Ability_Global_CockTier_Second>>
<<include Ability_Global_CockTier_Third>>
<<include Ability_Global_CockTier_Fourth>>
<<include Ability_Global_CockTier_Fifth>>
<<include Ability_Global_CockTier_Sixth>>
<<include Ability_Global_BallsTier_First>>
<<include Ability_Global_BallsTier_Second>>
<<include Ability_Global_BallsTier_Third>>
<<include Ability_Global_BallsTier_Fourth>>
<<include Ability_Global_BallsTier_Fifth>>
<<include Ability_Global_BallsTier_Sixth>>
<<include Ability_Global_Bigger_Than_Target_1>>
<<include Ability_Global_Bigger_Than_Target_2>>
<<include Ability_Global_Bigger_Than_Target_3>>
<<include Ability_Global_Overwhelming_Balls>>
<<include Ability_Global_All_Consuming_Balls>>
<<include Ability_ProcessingCorruption>>
<<include Ability_Uncorrupted>>
<<include Ability_MinorCorruption>>
<<include Ability_MajorCorruption>>
<<include Ability_OverwhelmingCorruption>>
<<include Ability_LostInCorruption>>
<<include Ability_LordOfCorruption>>
<<include Achievement_OffTheDeepEnd>>
<<include Achievement_BaptismInCorruption>>
<<include Achievement_HostOfTheSpawns>>
<<include Achievement_LordOfTheSpawns>>
<<include Achievement_SubmissiveFighter>>
<<include Achievement_MightOfAugwult>>
<<include Achievement_DamnatoryKnowledge>>
<<include Achievement_WordOfPower>>
<<include Achievement_MemoriesOfKanathar>>
<<include Achievement_MemoriesOfDemonicAscent>>
<<include Achievement_MemoriesOfTheLost>>
<<include Achievement_IncompleteMemories>>
<<include Achievement_MemoriesOfTheMinotaur>>
<<include Achievement_Resolute>>
<<include Achievement_Redemption>>
<<include Achievement_MasterOfTheBarrens>>
<<include Achievement_GodAmongstMen>>
<<include Achievement_CockRingOfTheBind>>
<<include Achievement_CollarOfTheBind>>
<<include Achievement_SafePassage>>
<<include Achievement_ExplorerOfCorruptedDepths>>
<<include Achievement_ShiftingIdeals>>
<<include Achievement_AscendedPrisoner>>
<<include Achievement_EndlessStruggle>>
<<include Achievement_MemoriesOfEthrex>>
<<include Achievement_MemoriesOfFerro>>
<<include Achievement_Abomination>>
<<include Achievement_PureOfHeart>>
<<include Achievement_BearerOfTheEye>>
<<include Ability_DayBuffs_Main>>
<<include Ability_Form>>
<<include Ability_RacialBonus>>
<<include Ability_EchoForm>>
<<include Ability_Masochism>>
<<include Ability_HerculeanBuild>>
<<include Ability_DemonicCorruption_3>>
<<include Ability_DemonicCorruption_2>>
<<include Ability_DemonicCorruption>>
<<include Ability_StolenMass>>
<<include Ability_CurseOfTheNaga>>
<<include Ability_VigorOfTheEndowed_2>>
<<include Ability_VigorOfTheEndowed>>
<<include Ability_AppetiteForGrowth_2>>
<<include Ability_AppetiteForGrowth>>
<<include Ability_NyxParasiteInfection_2>>
<<include Ability_NyxParasiteInfection>>
<<include Ability_TouchedByNyxsLight>>
<<include Ability_EmbracedByNyxsLight>>
<<include Ability_Oath_Containment>>
<<include Ability_Oath_Nyx>>
<<include Ability_UnstoppableExpansion>>
<<include Ability_Oathbreaker>>
<<include Ability_NeverendingGrowth>>
<<include Ability_OrgasmicGrowth>>
<<include Ability_LastStand>>
<<include Ability_ToLiveForEcho>>
<<include Ability_WarriorOfDuality>>
<<include Ability_WitheringVenom>>
<<include Ability_CodexPassion>>
<<include Ability_FaithsReward>>
<<include Ability_EssenceHoarder>>
<<include Ability_SombrevesWhisper>>
<<include Ability_VampiricLust>>
<<include Ability_KalethsFervour>>
<<include Ability_ActiveParry>>
<<include Ability_ParryEnergy>>
<<include Ability_BrinkOfMadness>>
<<include Ability_PiercingPrecision>>
<<include Ability_ChannelTheAstralSoul>>
<<include Ability_SigilOfPerception>>
<<include Ability_TaintedByTheLost>>
<<include Ability_SurvivorOfTheFirstEclipse>>
<<include Ability_MemoriesOfTheChosen>>
<<include Ability_MemoriesOfCray>>
<<include Ability_MemoriesOfApothus>>
<<include Ability_MemoriesOfNyx>>
<<include Ability_HostOfEcho>>
<<include Ability_DracosOmnipotence>>
<<include Ability_BuriedInCum>>
<<include Ability_CorruptedStrength>>
<<include Ability_Focused>>
<<include Ability_Momentum>>
<<include Ability_Incorruptible>>
<<include Ability_ServantOfKanathar>>
<<include Ability_EmpoweringDrink>>
<<include Ability_TorgarsBond>>
<<include Ability_TonicOfStillness>>
<<include Ability_EssenceSurge>>
<<include Ability_CollarOfTheBind>>
<<include Ability_CockRingOfTheBind>>
<<include Ability_PromiseOfServitude>>
<<include Ability_NyxInducedWorkout>>
<<include Ability_Disciplined>>
<<include Ability_Defiler>>
<<include Ability_LustIncarnate>>
<<include Ability_LukkasBox>>
<<include Ability_DemonicEssenceShard>>
<<include Ability_UnnaturalGrowth>>
<<include Ability_ApexPredator>>
<<include Ability_Stunned>>
<<include Ability_UntappedPotential>>
<<include Ability_CorruptionInhibitor>>
<<include Ability_PromiseOfCorruption>>
<<include Ability_TimelessBond>>
<<include Ability_Mimic>>
<<include Ability_EyeOfTheVoid>><<script>>
setup.AbilityTrigger =
{
ON_ACQUIRE: 1 << 0,
ON_FIGHT_START: 1 << 1,
ON_FIGHT_TURN_START: 1 << 2,
ON_FIGHT_DAMAGING_HIT: 1 << 3,
ON_FIGHT_PRE_RECEIVE_DAMAGE: 1 << 5,
ON_FIGHT_POST_RECEIVE_DAMAGE: 1 << 4,
ON_FIGHT_END: 1 << 6,
ON_MAX_LUST: 1 << 7,
ON_MIN_LUST: 1 << 8,
ON_APPLY_GROWTH: 1 << 9,
ON_ENTER_MID_HEALTH: 1 << 10,
ON_EXIT_MID_HEALTH: 1 << 11,
ON_ENTER_LOW_HEALTH: 1 << 12,
ON_EXIT_LOW_HEALTH: 1 << 13,
ON_LEVEL_UP: 1 << 14,
ON_FIGHT_DO_DAMAGELESS_ATTACK: 1 << 15,
ON_FIGHT_BATTLE_WON: 1 << 16,
ON_FIGHT_BATTLE_LOST: 1 << 17,
ON_GAIN_CORRUPTION: 1 << 18,
ON_GAIN_ESSENCE: 1 << 19,
ON_DAY_CHANGE: 1 << 20,
ON_STAT_CHANGE: 1 << 21,
ON_NEW_GAME_PLUS: 1 << 22,
ON_COMPLETE_GAME: 1 << 23,
ON_ANATOMY_CHANGE: 1 << 24,
}
<</script>><<include StoryReInit_Base>><<run $DOMQueue = [];>>
<<script>>
Config.history.maxStates = 1;
Config.history.controls = false;
Config.ui.stowBarInitially = false;
Config.saves.version = 10806.4;
<</script>>
<<set $Version = 10806.4>>
<<set $VersionStr = '0.8.6.4'>>
<<if $ChoicesWindow == undefined>>
<<set $ChoicesWindow = window.innerWidth > 1080 && window.screen.width > 1080>>
<</if>>
<<set setup.RedrawCosts = [10,15,20,30,40,50,60]>>
<<set setup.LimitBreakEssenceCosts = [60,60,100,100,150,150,200,200,250,250,300,300,350,350,400,400,450,450,500,500]>>
<<set setup.AddSlotCosts = [10,15,20,30,40,50,60]>>
<<set setup.AbilityIDCache = []>>
<<set setup.AbilityIndexCache = {}>>
<<set $Volume = 0.7>>
<<set $VolumeControls =
{
master:
{
volume: 0.2,
},
music:
{
volume: 0.2,
list: [],
},
voices:
{
volume: 0.8,
list: [],
},
sfx:
{
volume: 1,
list: [],
},
}>>
<<set $SelectedAbilityFilter = 0>>
<<set setup.AbilityFilter = {
POWER: 0,
ALTERATION: 1,
STATUSEFFECT: 2,
GLOBAL: 3,
}>>
<<set setup.RewardTier =
{
VERY_LOW: 1,
LOW: 2,
MEDIUM: 3,
HIGH: 4,
VERY_HIGH: 5,
}>>
<<set setup.FightHotkeys = ["1","2","3","4","5","6","7","8","9","0","Q","W","E","R","T","Y","U","I","O","P"]>>
<<set setup.DeathTextEnum =
{
NORMAL: 1,
POST_APOTHUS: 2,
}>>
<<set setup.TestVoices = ["Test_Voice1", "Test_Voice2"]>>
<<set setup.AttackTiming =
{
BEFORE_PLAYER: 1,
BETWEEN_PLAYER_AND_ENEMY: 2,
AFTER_ENEMY: 3,
}>>
<<set $SecretCheat = 0>>
<<set $InNyxDungeon = false>>
<<set $DisplayStatWindow = true>>
<<set $LastExplorationEnemyEncounter = 0>>
<<set $NoTimePasses = false>>
<<set $DeathText = setup.DeathTextEnum.NORMAL>>
<<set setup.RewardTier =
{
VERY_LOW: 1,
LOW: 2,
MEDIUM: 3,
HIGH: 4,
VERY_HIGH: 5,
}>>
<<set setup.Units =
{
IMPERIAL: 1,
METRIC: 2
}>>
<<set setup.Oath =
{
NONE: 1,
ACTIVE: 2,
BROKEN: 3,
}>>
<<set setup.Comparators =
{
MICRO_TO: 1,
MUCH_SMALLER: 2,
SMALLER: 3,
SLIGHTLY_SMALLER: 4,
EQUAL: 5,
SLIGHTLY_BIGGER: 6,
BIGGER: 7,
MUCH_BIGGER: 8,
REACHES_WAIST: 9,
REACHES_KNEES: 10,
FITS_ON_HAND: 11,
FITS_ON_FINGER: 12,
}>>
<<set setup.CockComparators =
{
MICRO_TO: 1,
MUCH_SMALLER: 2,
SMALLER: 3,
SLIGHTLY_SMALLER: 4,
EQUAL: 5,
SLIGHTLY_BIGGER: 6,
BIGGER: 7,
MUCH_BIGGER: 8,
MASSIVE: 9,
HYPER: 10,
MACRO: 11,
GIGA: 12,
}>>
<<set setup.CorruptionComparators =
{
UNTOUCHED: 0,
PURE: 50,
DECENT: 100,
NEUTRAL: 200,
TAINTED: 500,
CORRUPT: 1000
}>>
<<set setup.corruptionTiers =
[setup.CorruptionComparators.UNTOUCHED,
setup.CorruptionComparators.PURE,
setup.CorruptionComparators.NEUTRAL,
setup.CorruptionComparators.TAINTED,
setup.CorruptionComparators.CORRUPT]
>>
<<set setup.ColourPool =
{
DEFAULT: undefined,
RED: "red",
ORANGE: "orange",
YELLOW: "yellow",
GREEN: "green",
BLUE: "blue",
INDIGO: "indigo",
VIOLET: "violet",
PURPLE: "purple",
WHITE: "white",
GREY: "grey",
BLACK: "black",
OBSIDIAN: "obsidian",
AMBER: "amber",
PINK: "pink",
BROWN: "brown",
TAN: "tan",
BEIGE: "beige",
EMERALD: "emerald",
SAPPHIRE: "sapphire",
CRIMSON: "crimson",
GOLDEN: "golden"
}>>
<<set setup.MuscleComparators =
{
MICRO_TO: 1,
MUCH_SMALLER: 2,
SMALLER: 3,
SLIGHTLY_SMALLER: 4,
EQUAL: 5,
SLIGHTLY_BIGGER: 6,
BIGGER: 7,
MUCH_BIGGER: 8,
DWARFING: 9,
GIANT: 10,
MACRO: 11,
GIGA: 12,
}>>
<<set setup.englishNumbers =
{
1: "",
2: "two",
3: "three",
4: "four",
5: "five",
6: "six",
7: "seven",
8: "eight",
9: "nine",
10: "ten",
11: "eleven",
12: "twelve",
13: "thirteen",
14: "fourteen",
15: "fifteen",
16: "sixteen",
17: "seventeen",
18: "eighteen",
19: "nineteen",
20: "twenty",
21: "twenty one",
22: "twenty two",
23: "twenty three",
24: "twenty four",
25: "twenty five",
26: "twenty six",
27: "twenty seven",
28: "twenty eight",
29: "twenty nine",
30: "thirty",
31: "thirty one",
32: "thirty two",
33: "thirty three",
34: "thirty four",
35: "thirty five",
36: "thirty six",
37: "thirty seven",
38: "thirty eight",
39: "thirty nine",
40: "forty"
}>>
<<set $Debug = $SpecialBuild>>
<<set setup.Colors = ["orange", "blue", "grey"]>>
<<set $BoughtFightMoves = 0>>
<<set $FightTurn = 0>>
<<set setup.LevelUpTable =
[
180,
500,
1300,
2400,
3700,
5600,
7000,
8300,
10000,
15000,
]>>
<<set setup.AbilityCategory =
{
NONE: 0,
WARRIOR: 1,
FORM: 2,
GROWTH: 3,
SOMBREVE: 4,
PURITY: 5,
LUST: 6,
}>>
/*always order from best to worst*/
<<set setup.AbilityGrade =
{
VERYHIGH: 4,
HIGH: 3,
MEDIUM: 2,
LOW: 1,
VERYLOW: 0,
}>>
/*Stats -BEGIN*/
<<set $Expedition = 0>>
<<if $Cycle == undefined>>
<<set $Cycle = 1>>
<</if>>
<<set $Essence = 0>>
<<set $Exp = 0>>
<<set $Level = 1>>
/*Stats -END*/
/*Descriptors*/
<<set setup.Fight_HealthDescriptor = function(maxHP, curHP)
{
if(curHP / maxHP > 0.7)
{
return "<span style='color:#46c546;'>" + "healthy" + "</span>";
}
else if(curHP / maxHP > 0.5)
{
return "<span style='color:#c5bb46;'>" + "out of breath" + "</span>";
}
else if(curHP / maxHP > 0.3)
{
return "<span style='color:#ff9840;'>" + "exhausted" + "</span>";
}
else
{
return "<span style='color:#ff0000;'>" + "nearly dead" + "</span>";
}
};
>><<set setup.LOCATIONS = {
NONE: -99,
VILLAGE: -1,
ANY: 0,
NORTH: 1,
EAST: 2,
CASTLE: 3,
}>>
<<set setup.ExplorationData =
{
findChasm:
{
id: 0,
highPriority: true,
passage: "Quest_MQ002_Entrance_FirstTime",
condition: function(exploreDifficulty)
{
return (State.variables.CharacterSheet_Player.hasAbility("Ability_GoldenStar") && exploreDifficulty == setup.LOCATIONS.EAST) || State.variables.CharacterSheet_Lost_Prisoner.quest.toldNyxEntrance;
},
},
}
>>
<<set State.variables.Explore_Destinations = [setup.ExplorationData.findChasm.id];>><<include FightMove_BasicAttack>>
<<include FightMove_Lunge>>
<<include FightMove_Infest>>
<<include FightMove_Inspect>>
<<include FightMove_Goo_Stun>>
<<include FightMove_Masturbate>>
<<include FightMove_IncubusStrike>>
<<include FightMove_IncubusCall>>
<<include FightMove_Hypnotize>>
<<include FightMove_Worship>>
<<include FightMove_DoNothing>>
<<include FightMove_Sigil_Vitality>>
<<include FightMove_Sigil_Pain>>
<<include FightMove_Sigil_Perception>>
<<include FightMove_Sigil_Growth>>
<<include FightMove_ChargedStrike>>
<<include FightMove_Stomp>>
<<include FightMove_WitheringVenom>>
<<include FightMove_Parry>>
<<include FightMove_DragonStrike>>
<<include FightMove_ParasiteLunge>>
<<include FightMove_SummonParasite>>
<<include FightMove_ConsumeLost>>
<<include FightMove_SeedOfRuin>>
<<include FightMove_SlimeLunge>>
<<include FightMove_Slash>>
<<include FightMove_Bash>>
<<include FightMove_Focus>>
<<include FightMove_CumDeluge>>
<<include FightMove_LustfulInstincts>>
<<include FightMove_CorruptedUrges>>
<<include FightMove_InfectiousLust>>
<<include FightMove_CorruptedRemedy>>
<<include FightMove_PridefulAscent>>
<<include FightMove_Sigil_Triad>>
<<include FightMove_Tutorial1>>
<<include FightMove_Tutorial2>>
<<include FightMove_Tutorial3>>
<<include FightMove_HeraldsDevotion>>
<<include FightMove_TonicOfStillness>>
<<include FightMove_AbsorbEssence>>
<<include FightMove_FirstStrike>>
<<include FightMove_UnnaturalGrowth>>
<<include FightMove_Mutate>>
<<include FightMove_Mimic>>
<<include StoryInit_SpecialMoves>>
<<set setup.FightMoveIDs = [setup.FightMove_Basic_Attack.id,
setup.FightMove_Do_Nothing.id,
setup.FightMove_Submit_Completely.id,
setup.FightMove_Goo_Stun.id,
setup.FightMove_IncubusCall.id,
setup.FightMove_IncubusStrike.id,
setup.FightMove_Lunge.id,
setup.FightMove_Infest.id,
setup.FightMove_Inspect.id,
setup.FightMove_Masturbate.id,
setup.FightMove_Sigil_Vitality.id,
setup.FightMove_Sigil_Pain.id,
setup.FightMove_Sigil_Perception.id,
setup.FightMove_Sigil_Growth.id,
setup.FightMove_ChargedStrike.id,
setup.FightMove_Stomp.id,
setup.FightMove_Hypnotize.id,
setup.FightMove_Worship.id,
setup.FightMove_WitheringVenom.id,
setup.FightMove_Parry.id,
setup.FightMove_DragonStrike.id,
setup.FightMove_ParasiteLunge.id,
setup.FightMove_SummonParasite.id,
setup.FightMove_ConsumeLost.id,
setup.FightMove_SeedOfRuin.id,
setup.FightMove_SlimeLunge.id,
setup.FightMove_Slash.id,
setup.FightMove_Bash.id,
setup.FightMove_Focus.id,
setup.FightMove_CumDeluge.id,
setup.FightMove_LustfulInstincts.id,
setup.FightMove_CorruptedUrges.id,
setup.FightMove_InfectiousLust.id,
setup.FightMove_CorruptedRemedy.id,
setup.FightMove_PridefulAscent.id,
setup.FightMove_Sigil_Triad.id,
setup.FightMove_Tutorial1.id,
setup.FightMove_Tutorial2.id,
setup.FightMove_Tutorial3.id,
setup.FightMove_HeraldsDevotion.id,
setup.FightMove_AbsorbEssence.id,
setup.FightMove_FirstStrike.id,
setup.FightMove_UnnaturalGrowth.id,
]>><<set $FightVariables =
{
currentHP: undefined,
currentStamina: undefined,
currentArousal: undefined,
currentFightMove: undefined,
stunnedDuration: undefined,
hypnotizedMoveIDsList: [],
cooldowns: [],
surrender: false,
fightModifiers: [],
currentFightMoveOutcome: undefined,
currentTurnAbilityText: undefined,
persistentEffects: []
}>><<cacheaudio "manor" "https://sombreve.github.io/Dawn-of-Corruption-Site/Music/manor_theme.mp3">>
<<cacheaudio "SFX_heartbeat" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/heartbeat.mp3">>
<<cacheaudio "village1" "https://sombreve.github.io/Dawn-of-Corruption-Site/Music/village_bgm1.mp3">>
<<cacheaudio "village2" "https://sombreve.github.io/Dawn-of-Corruption-Site/Music/village_bgm2.mp3">>
<<cacheaudio "village3" "https://sombreve.github.io/Dawn-of-Corruption-Site/Music/village_bgm3.mp3">>
<<cacheaudio "village4" "https://sombreve.github.io/Dawn-of-Corruption-Site/Music/village_bgm4.mp3">>
<<createplaylist "village_bgm1">>
<<track "village1">>
<</createplaylist>>
<<createplaylist "village_bgm2">>
<<track "village2">>
<</createplaylist>>
<<createplaylist "village_bgm3">>
<<track "village3">>
<</createplaylist>>
<<createplaylist "village_bgm4">>
<<track "village4">>
<</createplaylist>>
<<cacheaudio "battle_bgm" "https://sombreve.github.io/Dawn-of-Corruption-Site/Music/battle_bgm.mp3">>
<<createplaylist "battle_bgm">>
<<track "battle_bgm">>
<</createplaylist>>
<<cacheaudio "battle_bgm_hard" "https://sombreve.github.io/Dawn-of-Corruption-Site/Music/battle_bgm_hard.mp3">>
<<createplaylist "battle_bgm_hard">>
<<track "battle_bgm_hard">>
<</createplaylist>>
<<cacheaudio "nyx_dungeon_battle" "https://sombreve.github.io/Dawn-of-Corruption-Site/Music/nyx_dungeon_battle.mp3">>
<<createplaylist "nyx_dungeon_battle">>
<<track "nyx_dungeon_battle">>
<</createplaylist>>
<<cacheaudio "nyx_dungeon_theme" "https://sombreve.github.io/Dawn-of-Corruption-Site/Music/nyx_dungeon_theme.mp3">>
<<createplaylist "nyx_dungeon_theme">>
<<track "nyx_dungeon_theme">>
<</createplaylist>>
<<cacheaudio "final_boss_bgm" "https://sombreve.github.io/Dawn-of-Corruption-Site/Music/final_boss_bgm.mp3">>
<<createplaylist "final_boss_bgm">>
<<track "final_boss_bgm">>
<</createplaylist>>
<<set setup.AllSoundActions = [
"action_Suck",
]>>>
<<cacheaudio "action_Suck_1" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/Actions/Suck/Suck_01.mp3">>
<<cacheaudio "action_Suck_2" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/Actions/Suck/Suck_02.mp3">>
<<cacheaudio "action_Suck_3" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/Actions/Suck/Suck_03.mp3">>
<<createplaylist "action_Suck">>
<<track "action_Suck_1">>
<<track "action_Suck_2">>
<<track "action_Suck_3">>
<</createplaylist>>
<<include StoryInit_Voice1>>
<<include StoryInit_Voice2>>
<<include StoryInit_VoiceImp>>
<<include StoryInit_VoiceTorgar>>
<<include StoryInit_VoiceShardRing>>
<<include StoryInit_VoiceLostNaga>>/*debug*/
/*<<set $Quest_CanExplore = true>>*/
<<set $Quest_CanExplore = true>>
/*debug*/
/*<<set $Quest_InProgress = [$Quest_MQ002]>>*/
<<set $Quest_InProgress = []>><<set setup.FightMove_Stunned =
{
id: "FightMove_Stunned",
name: "Stunned",
preparation: function(character, target)
{
return character.info.name + " is stunned and cannot move!"
},
attackAttemptDesc: function(character, target)
{
if(character.fight.variables.stunnedDuration > 0)
{
return character.info.name + " tries to snap out of it."
}
else
{
return character.info.name + " came back to their senses and is readying their next attack!"
}
},
activationCondition: function(character, target)
{
return true;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 0,
addon: 0,
}
return damageParam;
},
staminaCost: 0,
critMod: 100,
skillStatsToDescriptionSpacing: 1,
skillDescription: "Try to regain your senses.",
skillType: "special",
skillTheme: "special",
additionalEffects: []
}>><<set $FightStateDrivenModifiers = [$Bigger_Than_Target_1, $Bigger_Than_Target_2, $Bigger_Than_Target_3]>><<run setup.choices = [];>>
<<run $DOMQueue = [];>>
<<run setup.updateStaticCorruptionUI(State.variables.CharacterSheet_Player)>>The enemy rushes in and attacks.The enemy barrels forward toward you, throwing his weight behind his attack.The enemy stomps forward and swings a massive fist.The enemy's @[all|huge|arms|noverb] hurtle down toward you.A trail of purple energy flows from his knuckles.Each vein in his hand and arm burns with a tainted purple hue, energy rolls off of his skin as tendrils of dark power.hops between each foot, ready to feint and strike at any moment.braces himself for the battle.rolls his boulder like shoulders, ready to strike.is stretching his limbs, ready to wrestle.rakes his large feet across the ground, ready to charge.tenses his muscles. His bulky form creaks with strength, with the anticipation of battle.flexes gargantuan muscles, ready to put each rolling mountain to use.stomps his massive feet as he readies himself for combat. The earth quivers.cracks his massive knuckles, they sound like thunder across the battlefield.The air feels wrong around this creature.A terrible darkness spreads across the ground from this creature's feet.Purple and black tendrils of energy are breaking out from the ground around this creature's feet.tinysmallminutelittlelargesizeableheftyburlyhugemassivetoweringhumongousimmensetitaniccolossalgiganticmuscles harden and pulse with increasing strength. His biceps form fair peaks above well defined forearms.
Veins begin peeking through his skin as they spread across his growing shoulders and neck.
His pecs push outwards, his nipples harden and a moan escapes his mouth as the growth tumbles downward like a fresh breath of air through his six pack abs, thighs and calves.athletic form hardens as each muscle contracts into picturesque beauty. Every line and crease deepens as the power flowing through him forces his body to adapt.
His laterals spread wider, his abdominal wall pushes outward and his upper body swells with growing, physical pride.body convulses as a tingling feeling spreads outwards from his core and to each limb. His body freezes momentarily before a wellspring of growth overtakes him.
Calves bulge, quads expand and the upper body surges with strength to keep up.expression shifts into a pleasurable smile. Looking down at his hands, he watches a bubble of growth move from his fingertips across his bulging arms and into his pecs.
Momentarily, it stops. A worried look overtakes his otherwise calm expression.
Suddenly, his cock fires an unattural amount of cum. Every pulse of white, every convulsion of his body propels his body upwards and outwards.body shudders and he doubles over. His knees hit the ground as he is assaulted by a wave of intense pleasure.
Every burgeoning muscle flexes, each crest and trough grows into mounds that could only be crafted with years of dedication.
His arms become pillars of strength, his back becomes an atlas of muscles - his pecs begin pushing his growing nipples earthbound and his abdominal wall starts shifting from six to eight bricks of power.mouth spreads into a wide grin as a surreal purple glow spins across the edges of his irises as his veins swell over his body. Not moments later, his cock rises as his limbs pack on weight and size.
What was once ample, is now in excess. What was once well chiselled is now barelling. He flexes his bicep, watching it rise higher and higher.
A sinister smile spreads wide across his face - this was only the beginning.cock jumps to full mast as a sudden growth spurt overtakes his body. He quickly wraps his arms around his chest to feel his pecs compete with his biceps.
Wave after wave, his arms pushes away from his chest from the sheer size being compressed into them. His legs adopt a wider stance as the war continues below with his quads, expanding glutes and growing calves.body spasms as his powerful muscles all flex at once. His bull like neck pulses larger and begins to threaten the sides of his head.
His pecs swell outwards in leaps and bounds over a growing and impressive set of eight abs.
His hands rove across each expanding inch of flesh, feeling the skin stretch tighter against chords of steel that thicken with each passing second.body shudders. Every boulder contained within him rumbles with an ominous wave of incoming growth.
It didn't matter who or what was watching the world stood in stunned silence as his biceps exploded from raw, uncontained power.
They barreled outwards until their pulsing peaks began to reach sizes that were clearly unnatural.
Each pectoral was large enough to be a shelf, and they bounced eagerly as they consumed more and more space in front of him.
Large nipples were forced further sideways and downwards as more and more space was claimed by their hosts.
Thick thighs and glutes became even thicker, pillars that would easily host houses were increasing in size before his very eyes.bones cracked audibly. Growth was upon him yet again, and this wave was even stronger than the last. With a booming thud, his muscles exploded with new size - too much and too fast for his body to contend with.
The growth began running rampant; each second packed on more and more until limbs began to lock and grind against each other from the lack of any space at all.
With a primal roar, he flexes - a beastly mountain of mass - and wills it all to compact inwards.
Control was regained but his body had far from relented his new incredible atlassian size.mouth opens wide as a primordial roar bellows from his growing form.
Bending down, he slams his fist into the ground and a wave of size propells itself upwards from the cracked earth; up his forearm, bicep and into his bullish neck.
His pectorals push further outwards, forcing his center of gravity forward before his waist expands into a pillar of pure power to support his new torso.
Sliding outwards from the ground behind him; his legs push each other apart, massaging and grinding against his immense cock.
The pleasure is too much. With another ear-splitting roar, he arches his back and unleashes a torrential geyser of white.jaw lowers into abrupt maniacal laughter as he feels the power within him erupt.
Like waves from the surface of disturbed water, his entire body groans, creaks and shifts as mucles begin to pack onto muscles - chords thicken and roadworks of veins the size of heavy duty pipes spiral across his expanding form.
With a mighty stomp his growing foot hits the ground, forcing a monstrous wave of size upwards through his calves, into his thighs and finally into his bulging muscular rear.
Finally, bringing both of his hands together in a mighty clap, his upper body doubles in strength and pure muscle mass.movements halt. A deadly silence overtakes the land that he towers over. A rumbling. The sound of war drums, the sound of the Earth roaring its protest against the impending change.
Then it happened. Mountains that were biceps doubled in size.
Pectorals that quake with every minor shift billow outwards. Nipples - hard, large and sensitive are exiled into the deepening valley between them and an entire canyon of ten inumanely thick abdominal muscles.
Laterals that were wings, were forced wider. Back muscles that rippled with pure power expanded and arms that could crush villages grew into monstrosities that the world could never contend with.
His cock, large and heavy with muscle slowly swings into the air, its growing mass keeping each move sensual to all who would watch.
Another rumble. Another catastrophe. Rivers of white explode from its tip into a deluge that coats you, the ground and every object close enough to suffer the titanic load unleashed from his apocalyptic sized balls.gigantic arms fall limp at his side. A loud rumbling, akin to the mighty growl of a beast in heat begins to echo across the land. A dark shadow - the silhouette of this monstrous behemoth begins to shudder.
The Golden Bastion. Those around it will all bear witness as the colossal titan suddenly shivers. A crack, as loud as thunder rockets through the air as the giant grows.
Thunderous booms echo around the land; every one heralding the titan's bones shifting to create more space. The ground shudders as the shadow in the \
distance grows larger. Higher. Wider. There are no human words to describe the sheer size being displayed to the world, no words that exist to describe the mass being compacted into that singular point.cock suddenly stiffens. An unfathomably large spurt of pre jettisons from his cock slit and pools in the lands far below him.
The air suddenly becomes hot as a thick umistakeable aura of power coats the very fabric of reality.
Reality's will could never stand a chance. To the world's surprise, the giant shudders and balloons outwards in every direction.
His forearms are perfect spheres of unadulterad power, pushing against growing biceps and triceps that have long since dwarfed their owner's head.
Their towering masses flex upwards and expand outwards, packing on new muscle groups that are not known to mankind.
His neck surges outward, practically ungulfing what driving force exists behind such a titanic body. His laterals surge outwards, forming an incredibly powerful yet impossible Y-shape.
Legs, as built as the foundations of the world, quickly explode into sizes which put those natural foundations to shame.His @[all|cocks|one=throbs~more=throb], harder than it ever has. He looks down, feeling each vein engorge with unnatural thickness.
Then it hits him, a wave of pleasure grows from the base of his loin. His shaft pulsates wildly as it expands thicker and longer.
His eyes widen as the growth progresses further up his @[all|cocks|noverb].
It's so long, so thick. And it keeps growing, pushing his fingers wider apart.A familiar feeling rushes over him. He grins, looking down at his @[all|cocks|noverb], welcoming a wave of incoming growth.
It suddenly hits him, like a rush of adrenaline. His @[all|cocks|one=jolts~more=jolt] forward, hard enough to make him lose his balance.
Suddenly, it comes. He screams in pleasure as his loin grows thicker and longer.
Every beat of his heart, every flex of his muscles and every breath feed it with more heavy, throbbing flesh.
He tries to grasp at his @[all|cocks|noverb] with both hands, failing to fully handle his monster as it grows uncontrollably.
He throws his head back, moaning deeply enough to cut his breath short.Suddenly, his @[all|cocks|one=throbs~more=throb]. The sheer need for attention of his monster overwhelms him.
He tries to grasp the base; he can only tremble in anticipation.
His @[all|cocks|one=is~more=are] so hot, so full and thick. He shivers at the thought of growing even bigger.
Jolts of pleasure pulsates from his @[all|cocks|noverb] as it starts growing. He desperately tries to grasp and pleasure the throbbing flesh, but it is too massive for his hands to contain.
He pushes down and thrust his hips along the ground. The sheer mass of his @[all|cocks|noverb] is still incredibly sensitive; he moans in pleasure as it pushes outward, bigger and bigger.
He slides his fingers along his slit and moans passionately. Bolts of pleasure pierce him with every contact,
precum leaks out of his monstrous cock like a damaged dam. His @[all|cocks|one=grows~more=grow] bigger than he thought possible.
His loin is gigantic, monstrous even; finding anything that can handle him will be a challenge.He feels something coming, something tremendous... A familiar warmth rushes over him; his loin burns with anticipation.
It keeps building, tingles of pleasure spread from his @[all|cocks|noverb].
This wave of incoming growth is greater than a roaring sea, and it keeps building, threatening to swallow him in its eternal pleasure.
But he welcomes it... He grins madly at his monstrous @[all|cocks|noverb] with an unatural eagerness. And then it happens.
His @[all|cocks|one=explodes~more=explode] in size, mountains of sensitive flesh burst upwards along his pecs.
He rubs it passionately, each touch bringing him close to the edge.
His veins grow massive, feeding his @[all|cocks|noverb] with untold power. A roar of triumph bursts out of his as his @[all|cocks|noverb] takes over the scenery.
Everything and everyone gets exposed to the glorious beast he's packing. They can only stare in awe as the ground rumbles;
his @[all|cocks|one=strains~more=strain], the land braces. His roars resound throughout the land as an ocean of potent cum rains down on this world once again.<<set setup.UniversalFlavour =
{
basicAttackAttemptFlavour: {
heightFlavour: {
small:[
"StoryInit_UniversalFlavour_basicAttackAttemptFlavour_heightFlavour_small"
],
medium:[
"StoryInit_UniversalFlavour_basicAttackAttemptFlavour_heightFlavour_medium"
],
large:[
"StoryInit_UniversalFlavour_basicAttackAttemptFlavour_heightFlavour_large"
],
huge:[
"StoryInit_UniversalFlavour_basicAttackAttemptFlavour_heightFlavour_huge"
],
},
corruptionFlavour: {
corrupt75: [
"StoryInit_UniversalFlavour_basicAttackAttemptFlavour_corruptionFlavour_corrupt75"
],
corrupt100: [
"StoryInit_UniversalFlavour_basicAttackAttemptFlavour_corruptionFlavour_corrupt100"
],
},
},
basicAttackPrepFlavour :{
heightFlavour:
{
small: [
"StoryInit_UniversalFlavour_basicAttackPrepFlavour_heightFlavour_small_1",
"StoryInit_UniversalFlavour_basicAttackPrepFlavour_heightFlavour_small_2",
],
medium: [
"StoryInit_UniversalFlavour_basicAttackPrepFlavour_heightFlavour_medium_1",
"StoryInit_UniversalFlavour_basicAttackPrepFlavour_heightFlavour_medium_2",
],
large: [
"StoryInit_UniversalFlavour_basicAttackPrepFlavour_heightFlavour_large_1",
"StoryInit_UniversalFlavour_basicAttackPrepFlavour_heightFlavour_large_2",
],
huge: [
"StoryInit_UniversalFlavour_basicAttackPrepFlavour_heightFlavour_huge_1",
"StoryInit_UniversalFlavour_basicAttackPrepFlavour_heightFlavour_huge_2",
"StoryInit_UniversalFlavour_basicAttackPrepFlavour_heightFlavour_huge_3",
],
},
corruptionFlavour: {
corrupt50: [
"StoryInit_UniversalFlavour_basicAttackPrepFlavour_corruptionFlavour_corrupt50"
],
corrupt75: [
"StoryInit_UniversalFlavour_basicAttackPrepFlavour_corruptionFlavour_corrupt75"
],
corrupt100: [
"StoryInit_UniversalFlavour_basicAttackPrepFlavour_corruptionFlavour_corrupt100"
],
},
},
sizeDescriptionFlavour :{
heightFlavour: {
small: [
"StoryInit_UniversalFlavour_sizeDescriptionFlavour_heightFlavour_small_1",
"StoryInit_UniversalFlavour_sizeDescriptionFlavour_heightFlavour_small_2",
"StoryInit_UniversalFlavour_sizeDescriptionFlavour_heightFlavour_small_3",
"StoryInit_UniversalFlavour_sizeDescriptionFlavour_heightFlavour_small_4"
],
medium: [
"StoryInit_UniversalFlavour_sizeDescriptionFlavour_heightFlavour_medium_1",
"StoryInit_UniversalFlavour_sizeDescriptionFlavour_heightFlavour_medium_2",
"StoryInit_UniversalFlavour_sizeDescriptionFlavour_heightFlavour_medium_3",
"StoryInit_UniversalFlavour_sizeDescriptionFlavour_heightFlavour_medium_4"
],
large: [
"StoryInit_UniversalFlavour_sizeDescriptionFlavour_heightFlavour_large_1",
"StoryInit_UniversalFlavour_sizeDescriptionFlavour_heightFlavour_large_2",
"StoryInit_UniversalFlavour_sizeDescriptionFlavour_heightFlavour_large_3",
"StoryInit_UniversalFlavour_sizeDescriptionFlavour_heightFlavour_large_4"
],
huge: [
"StoryInit_UniversalFlavour_sizeDescriptionFlavour_heightFlavour_huge_1",
"StoryInit_UniversalFlavour_sizeDescriptionFlavour_heightFlavour_huge_2",
"StoryInit_UniversalFlavour_sizeDescriptionFlavour_heightFlavour_huge_3",
"StoryInit_UniversalFlavour_sizeDescriptionFlavour_heightFlavour_huge_4"
],
},
},
MuscleGrowthFlavourText :{
musclesFlavour: {
small: [
"StoryInit_UniversalFlavour_MuscleGrowthFlavourText_musclesFlavour_small_1",
"StoryInit_UniversalFlavour_MuscleGrowthFlavourText_musclesFlavour_small_2",
"StoryInit_UniversalFlavour_MuscleGrowthFlavourText_musclesFlavour_small_3",
"StoryInit_UniversalFlavour_MuscleGrowthFlavourText_musclesFlavour_small_4",
],
medium: [
"StoryInit_UniversalFlavour_MuscleGrowthFlavourText_musclesFlavour_medium_1",
"StoryInit_UniversalFlavour_MuscleGrowthFlavourText_musclesFlavour_medium_2",
"StoryInit_UniversalFlavour_MuscleGrowthFlavourText_musclesFlavour_medium_3",
"StoryInit_UniversalFlavour_MuscleGrowthFlavourText_musclesFlavour_medium_4",
],
large: [
"StoryInit_UniversalFlavour_MuscleGrowthFlavourText_musclesFlavour_large_1",
"StoryInit_UniversalFlavour_MuscleGrowthFlavourText_musclesFlavour_large_2",
"StoryInit_UniversalFlavour_MuscleGrowthFlavourText_musclesFlavour_large_3",
"StoryInit_UniversalFlavour_MuscleGrowthFlavourText_musclesFlavour_large_4",
],
huge: [
"StoryInit_UniversalFlavour_MuscleGrowthFlavourText_musclesFlavour_huge_1",
"StoryInit_UniversalFlavour_MuscleGrowthFlavourText_musclesFlavour_huge_2",
"StoryInit_UniversalFlavour_MuscleGrowthFlavourText_musclesFlavour_huge_3",
],
},
},
CockGrowthFlavourText :{
cockSizeFlavour:
{
small: [
"StoryInit_UniversalFlavour_CockGrowthFlavourText_cockSizeFlavour_small",
],
medium: [
"StoryInit_UniversalFlavour_CockGrowthFlavourText_cockSizeFlavour_medium",
],
large: [
"StoryInit_UniversalFlavour_CockGrowthFlavourText_cockSizeFlavour_large",
],
huge: [
"StoryInit_UniversalFlavour_CockGrowthFlavourText_cockSizeFlavour_huge",
]
},
}
}>><<widget "PlayerHeight">><<print setup.getLength(setup.getStatValue($CharacterSheet_Player, "height"))>><</widget>>
<<widget "PlayerCock">><<print setup.getLength(setup.getStatValue($CharacterSheet_Player, "cock"))>><</widget>>
<<widget "PlayerBalls">><<print setup.getLength(setup.getStatValue($CharacterSheet_Player, "balls"))>><</widget>>
<<widget "PlayerRace">><<print setup.getRaceName(State.variables.CharacterSheet_Player)>><</widget>>
<<widget "PlayerName">><<print $CharacterSheet_Player.info.name>><</widget>>
<<widget "Arms">><<print setup.processFlavours($CharacterSheet_Player, "@[all|arms|noverb]")>> \<</widget>>
<<widget "Hands">><<print setup.processFlavours($CharacterSheet_Player, "@[all|hands|noverb]")>> \<</widget>>
<<widget "Balls">><<print setup.processFlavours($CharacterSheet_Player, "@[all|balls|noverb]")>> \<</widget>>
<<widget "SymbioteRace">><<print setup.getRaceName(State.variables.CharacterSheet_Player.symbiote)>><</widget>>
<<widget "SymbioteColor">><<print State.variables.CharacterSheet_Player.symbiote.info.colour>><</widget>>
<<widget "SymbioteName">><<print State.variables.CharacterSheet_Player.symbiote.info.name>><</widget>>
<<widget "ImpHeight">><<print setup.getLength(setup.getStatValue($CharacterSheet_Imp, "height"))>><</widget>>
<<widget "ImpCockLength">><<print setup.getLength(setup.getStatValue($CharacterSheet_Imp, "cock"))>><</widget>>
<<widget "ImpBallsSize">><<print setup.getLength(setup.getStatValue($CharacterSheet_Imp, "balls"))>><</widget>><<set $WorldState =
{
cultManor:
{
mainHall:
{
isBroken: false,
},
eastWing:
{
isBroken: false,
},
westWingHallway:
{
isBroken: false,
},
dragonRoom:
{
isBroken: false,
},
monolithBroken: false,
westWing_LastDestination: "",
westWing_ClearedRooms: [],
},
apothusChosen:
{
essenceLevel: 0,
},
apothusTransformed: false,
minoWords: "",
}>>/*Voice1/Arousal1*/
<<cacheaudio "Idle_Voice1_A1_S1_C1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level1/Size1/Corrupt1/Idle_Voice1_A1_S1_C1_01.mp3">>
<<cacheaudio "Idle_Voice1_A1_S1_C1_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level1/Size1/Corrupt1/Idle_Voice1_A1_S1_C1_02.mp3">>
<<cacheaudio "Idle_Voice1_A1_S1_C1_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level1/Size1/Corrupt1/Idle_Voice1_A1_S1_C1_03.mp3">>
<<cacheaudio "Idle_Voice1_A1_S1_C1_04" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level1/Size1/Corrupt1/Idle_Voice1_A1_S1_C1_04.mp3">>
<<createplaylist "Idle_Voice1_A1_S1_C1">>
<<track "Idle_Voice1_A1_S1_C1_01">>
<<track "Idle_Voice1_A1_S1_C1_02">>
<<track "Idle_Voice1_A1_S1_C1_03">>
<<track "Idle_Voice1_A1_S1_C1_04">>
<</createplaylist>>
<<cacheaudio "Idle_Voice1_A1_S2_C1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level1/Size2/Corrupt1/Idle_Voice1_A1_S2_C1_01.mp3">>
<<cacheaudio "Idle_Voice1_A1_S2_C1_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level1/Size2/Corrupt1/Idle_Voice1_A1_S2_C1_02.mp3">>
<<cacheaudio "Idle_Voice1_A1_S2_C1_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level1/Size2/Corrupt1/Idle_Voice1_A1_S2_C1_03.mp3">>
<<cacheaudio "Idle_Voice1_A1_S2_C1_04" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level1/Size2/Corrupt1/Idle_Voice1_A1_S2_C1_04.mp3">>
<<createplaylist "Idle_Voice1_A1_S2_C1">>
<<track "Idle_Voice1_A1_S2_C1_01">>
<<track "Idle_Voice1_A1_S2_C1_02">>
<<track "Idle_Voice1_A1_S2_C1_03">>
<<track "Idle_Voice1_A1_S2_C1_04">>
<</createplaylist>>
<<cacheaudio "Idle_Voice1_A1_S3_C1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level1/Size3/Corrupt1/Idle_Voice1_A1_S3_C1_01.mp3">>
<<cacheaudio "Idle_Voice1_A1_S3_C1_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level1/Size3/Corrupt1/Idle_Voice1_A1_S3_C1_02.mp3">>
<<cacheaudio "Idle_Voice1_A1_S3_C1_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level1/Size3/Corrupt1/Idle_Voice1_A1_S3_C1_03.mp3">>
<<cacheaudio "Idle_Voice1_A1_S3_C1_04" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level1/Size3/Corrupt1/Idle_Voice1_A1_S3_C1_04.mp3">>
<<createplaylist "Idle_Voice1_A1_S3_C1">>
<<track "Idle_Voice1_A1_S3_C1_01">>
<<track "Idle_Voice1_A1_S3_C1_02">>
<<track "Idle_Voice1_A1_S3_C1_03">>
<<track "Idle_Voice1_A1_S3_C1_04">>
<</createplaylist>>
<<cacheaudio "Idle_Voice1_A1_S4_C1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level1/Size4/Corrupt1/Idle_Voice1_A1_S4_C1_01.mp3">>
<<cacheaudio "Idle_Voice1_A1_S4_C1_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level1/Size4/Corrupt1/Idle_Voice1_A1_S4_C1_02.mp3">>
<<cacheaudio "Idle_Voice1_A1_S4_C1_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level1/Size4/Corrupt1/Idle_Voice1_A1_S4_C1_03.mp3">>
<<cacheaudio "Idle_Voice1_A1_S4_C1_04" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level1/Size4/Corrupt1/Idle_Voice1_A1_S4_C1_04.mp3">>
<<createplaylist "Idle_Voice1_A1_S4_C1">>
<<track "Idle_Voice1_A1_S4_C1_01">>
<<track "Idle_Voice1_A1_S4_C1_02">>
<<track "Idle_Voice1_A1_S4_C1_03">>
<<track "Idle_Voice1_A1_S4_C1_04">>
<</createplaylist>>
/*Voice1/Arousal2*/
<<cacheaudio "Idle_Voice1_A2_S1_C1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level2/Size1/Corrupt1/Idle_Voice1_A2_S1_C1_01.mp3">>
<<cacheaudio "Idle_Voice1_A2_S1_C1_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level2/Size1/Corrupt1/Idle_Voice1_A2_S1_C1_02.mp3">>
<<cacheaudio "Idle_Voice1_A2_S1_C1_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level2/Size1/Corrupt1/Idle_Voice1_A2_S1_C1_03.mp3">>
<<createplaylist "Idle_Voice1_A2_S1_C1">>
<<track "Idle_Voice1_A2_S1_C1_01">>
<<track "Idle_Voice1_A2_S1_C1_02">>
<<track "Idle_Voice1_A2_S1_C1_03">>
<</createplaylist>>
<<cacheaudio "Idle_Voice1_A2_S2_C1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level2/Size2/Corrupt1/Idle_Voice1_A2_S2_C1_01.mp3">>
<<cacheaudio "Idle_Voice1_A2_S2_C1_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level2/Size2/Corrupt1/Idle_Voice1_A2_S2_C1_02.mp3">>
<<cacheaudio "Idle_Voice1_A2_S2_C1_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level2/Size2/Corrupt1/Idle_Voice1_A2_S2_C1_03.mp3">>
<<createplaylist "Idle_Voice1_A2_S2_C1">>
<<track "Idle_Voice1_A2_S2_C1_01">>
<<track "Idle_Voice1_A2_S2_C1_02">>
<<track "Idle_Voice1_A2_S2_C1_03">>
<</createplaylist>>
<<cacheaudio "Idle_Voice1_A2_S3_C1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level2/Size3/Corrupt1/Idle_Voice1_A2_S3_C1_01.mp3">>
<<cacheaudio "Idle_Voice1_A2_S3_C1_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level2/Size3/Corrupt1/Idle_Voice1_A2_S3_C1_02.mp3">>
<<cacheaudio "Idle_Voice1_A2_S3_C1_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level2/Size3/Corrupt1/Idle_Voice1_A2_S3_C1_03.mp3">>
<<createplaylist "Idle_Voice1_A2_S3_C1">>
<<track "Idle_Voice1_A2_S3_C1_01">>
<<track "Idle_Voice1_A2_S3_C1_02">>
<<track "Idle_Voice1_A2_S3_C1_03">>
<</createplaylist>>
<<cacheaudio "Idle_Voice1_A2_S4_C1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level2/Size4/Corrupt1/Idle_Voice1_A2_S4_C1_01.mp3">>
<<cacheaudio "Idle_Voice1_A2_S4_C1_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level2/Size4/Corrupt1/Idle_Voice1_A2_S4_C1_02.mp3">>
<<cacheaudio "Idle_Voice1_A2_S4_C1_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level2/Size4/Corrupt1/Idle_Voice1_A2_S4_C1_03.mp3">>
<<createplaylist "Idle_Voice1_A2_S4_C1">>
<<track "Idle_Voice1_A2_S4_C1_01">>
<<track "Idle_Voice1_A2_S4_C1_02">>
<<track "Idle_Voice1_A2_S4_C1_03">>
<</createplaylist>>
/*Voice1/Arousal3*/
<<cacheaudio "Idle_Voice1_A3_S1_C1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level3/Size1/Corrupt1/Idle_Voice1_A3_S1_C1_01.mp3">>
<<cacheaudio "Idle_Voice1_A3_S1_C1_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level3/Size1/Corrupt1/Idle_Voice1_A3_S1_C1_02.mp3">>
<<createplaylist "Idle_Voice1_A3_S1_C1">>
<<track "Idle_Voice1_A3_S1_C1_01">>
<<track "Idle_Voice1_A3_S1_C1_02">>
<</createplaylist>>
<<cacheaudio "Idle_Voice1_A3_S2_C1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level3/Size2/Corrupt1/Idle_Voice1_A3_S2_C1_01.mp3">>
<<cacheaudio "Idle_Voice1_A3_S2_C1_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level3/Size2/Corrupt1/Idle_Voice1_A3_S2_C1_02.mp3">>
<<createplaylist "Idle_Voice1_A3_S2_C1">>
<<track "Idle_Voice1_A3_S2_C1_01">>
<<track "Idle_Voice1_A3_S2_C1_02">>
<</createplaylist>>
<<cacheaudio "Idle_Voice1_A3_S3_C1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level3/Size3/Corrupt1/Idle_Voice1_A3_S3_C1_01.mp3">>
<<cacheaudio "Idle_Voice1_A3_S3_C1_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level3/Size3/Corrupt1/Idle_Voice1_A3_S3_C1_02.mp3">>
<<createplaylist "Idle_Voice1_A3_S3_C1">>
<<track "Idle_Voice1_A3_S3_C1_01">>
<<track "Idle_Voice1_A3_S3_C1_02">>
<</createplaylist>>
<<cacheaudio "Idle_Voice1_A3_S4_C1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level3/Size4/Corrupt1/Idle_Voice1_A3_S4_C1_01.mp3">>
<<cacheaudio "Idle_Voice1_A3_S4_C1_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level3/Size4/Corrupt1/Idle_Voice1_A3_S4_C1_02.mp3">>
<<createplaylist "Idle_Voice1_A3_S4_C1">>
<<track "Idle_Voice1_A3_S4_C1_01">>
<<track "Idle_Voice1_A3_S4_C1_02">>
<</createplaylist>>
/*Voice1/Arousal4*/
<<cacheaudio "Idle_Voice1_A4_S1_C1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level4/Size1/Corrupt1/Idle_Voice1_A4_S1_C1_01.mp3">>
<<cacheaudio "Idle_Voice1_A4_S1_C1_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level4/Size1/Corrupt1/Idle_Voice1_A4_S1_C1_02.mp3">>
<<createplaylist "Idle_Voice1_A4_S1_C1">>
<<track "Idle_Voice1_A4_S1_C1_01">>
<<track "Idle_Voice1_A4_S1_C1_02">>
<</createplaylist>>
<<cacheaudio "Idle_Voice1_A4_S2_C1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level4/Size2/Corrupt1/Idle_Voice1_A4_S2_C1_01.mp3">>
<<cacheaudio "Idle_Voice1_A4_S2_C1_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level4/Size2/Corrupt1/Idle_Voice1_A4_S2_C1_02.mp3">>
<<createplaylist "Idle_Voice1_A4_S2_C1">>
<<track "Idle_Voice1_A4_S2_C1_01">>
<<track "Idle_Voice1_A4_S2_C1_02">>
<</createplaylist>>
<<cacheaudio "Idle_Voice1_A4_S3_C1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level4/Size3/Corrupt1/Idle_Voice1_A4_S3_C1_01.mp3">>
<<cacheaudio "Idle_Voice1_A4_S3_C1_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level4/Size3/Corrupt1/Idle_Voice1_A4_S3_C1_02.mp3">>
<<createplaylist "Idle_Voice1_A4_S3_C1">>
<<track "Idle_Voice1_A4_S3_C1_01">>
<<track "Idle_Voice1_A4_S3_C1_02">>
<</createplaylist>>
<<cacheaudio "Idle_Voice1_A4_S4_C1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level4/Size4/Corrupt1/Idle_Voice1_A4_S4_C1_01.mp3">>
<<cacheaudio "Idle_Voice1_A4_S4_C1_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice1/Arousal-Idle/Level4/Size4/Corrupt1/Idle_Voice1_A4_S4_C1_02.mp3">>
<<createplaylist "Idle_Voice1_A4_S4_C1">>
<<track "Idle_Voice1_A4_S4_C1_01">>
<<track "Idle_Voice1_A4_S4_C1_02">>
<</createplaylist>>
<<createplaylist "Test_Voice1">>
<<track "Idle_Voice1_A1_S1_C1_01">>
<<track "Idle_Voice1_A1_S1_C1_02">>
<<track "Idle_Voice1_A1_S1_C1_03">>
<<track "Idle_Voice1_A1_S1_C1_04">>
<<track "Idle_Voice1_A2_S1_C1_01">>
<<track "Idle_Voice1_A2_S1_C1_02">>
<<track "Idle_Voice1_A2_S1_C1_03">>
<<track "Idle_Voice1_A3_S1_C1_01">>
<<track "Idle_Voice1_A3_S1_C1_02">>
<</createplaylist>>/*Voice2/Arousal1*/
<<cacheaudio "Idle_Voice2_A1_S1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level1/Size1/Idle_Voice2_A1_S1_01.mp3">>
<<cacheaudio "Idle_Voice2_A1_S1_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level1/Size1/Idle_Voice2_A1_S1_02.mp3">>
<<cacheaudio "Idle_Voice2_A1_S1_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level1/Size1/Idle_Voice2_A1_S1_03.mp3">>
<<createplaylist "Idle_Voice2_A1_S1">>
<<track "Idle_Voice2_A1_S1_01">>
<<track "Idle_Voice2_A1_S1_02">>
<<track "Idle_Voice2_A1_S1_03">>
<</createplaylist>>
<<cacheaudio "Idle_Voice2_A1_S2_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level1/Size2/Idle_Voice2_A1_S2_01.mp3">>
<<cacheaudio "Idle_Voice2_A1_S2_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level1/Size2/Idle_Voice2_A1_S2_02.mp3">>
<<cacheaudio "Idle_Voice2_A1_S2_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level1/Size2/Idle_Voice2_A1_S2_03.mp3">>
<<createplaylist "Idle_Voice2_A1_S2">>
<<track "Idle_Voice2_A1_S2_01">>
<<track "Idle_Voice2_A1_S2_02">>
<<track "Idle_Voice2_A1_S2_03">>
<</createplaylist>>
<<cacheaudio "Idle_Voice2_A1_S3_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level1/Size3/Idle_Voice2_A1_S3_01.mp3">>
<<cacheaudio "Idle_Voice2_A1_S3_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level1/Size3/Idle_Voice2_A1_S3_02.mp3">>
<<cacheaudio "Idle_Voice2_A1_S3_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level1/Size3/Idle_Voice2_A1_S3_03.mp3">>
<<createplaylist "Idle_Voice2_A1_S3">>
<<track "Idle_Voice2_A1_S3_01">>
<<track "Idle_Voice2_A1_S3_02">>
<<track "Idle_Voice2_A1_S3_03">>
<</createplaylist>>
<<cacheaudio "Idle_Voice2_A1_S4_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level1/Size4/Idle_Voice2_A1_S4_01.mp3">>
<<cacheaudio "Idle_Voice2_A1_S4_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level1/Size4/Idle_Voice2_A1_S4_02.mp3">>
<<cacheaudio "Idle_Voice2_A1_S4_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level1/Size4/Idle_Voice2_A1_S4_03.mp3">>
<<createplaylist "Idle_Voice2_A1_S4">>
<<track "Idle_Voice2_A1_S4_01">>
<<track "Idle_Voice2_A1_S4_02">>
<<track "Idle_Voice2_A1_S4_03">>
<</createplaylist>>
/*Voice2/Arousal2*/
<<cacheaudio "Idle_Voice2_A2_S1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level2/Size1/Idle_Voice2_A2_S1_01.mp3">>
<<cacheaudio "Idle_Voice2_A2_S1_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level2/Size1/Idle_Voice2_A2_S1_02.mp3">>
<<cacheaudio "Idle_Voice2_A2_S1_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level2/Size1/Idle_Voice2_A2_S1_03.mp3">>
<<createplaylist "Idle_Voice2_A2_S1">>
<<track "Idle_Voice2_A2_S1_01">>
<<track "Idle_Voice2_A2_S1_02">>
<<track "Idle_Voice2_A2_S1_03">>
<</createplaylist>>
<<cacheaudio "Idle_Voice2_A2_S2_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level2/Size2/Idle_Voice2_A2_S2_01.mp3">>
<<cacheaudio "Idle_Voice2_A2_S2_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level2/Size2/Idle_Voice2_A2_S2_02.mp3">>
<<cacheaudio "Idle_Voice2_A2_S2_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level2/Size2/Idle_Voice2_A2_S2_03.mp3">>
<<createplaylist "Idle_Voice2_A2_S2">>
<<track "Idle_Voice2_A2_S2_01">>
<<track "Idle_Voice2_A2_S2_02">>
<<track "Idle_Voice2_A2_S2_03">>
<</createplaylist>>
<<cacheaudio "Idle_Voice2_A2_S3_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level2/Size3/Idle_Voice2_A2_S3_01.mp3">>
<<cacheaudio "Idle_Voice2_A2_S3_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level2/Size3/Idle_Voice2_A2_S3_02.mp3">>
<<cacheaudio "Idle_Voice2_A2_S3_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level2/Size3/Idle_Voice2_A2_S3_03.mp3">>
<<createplaylist "Idle_Voice2_A2_S3">>
<<track "Idle_Voice2_A2_S3_01">>
<<track "Idle_Voice2_A2_S3_02">>
<<track "Idle_Voice2_A2_S3_03">>
<</createplaylist>>
<<cacheaudio "Idle_Voice2_A2_S4_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level2/Size4/Idle_Voice2_A2_S4_01.mp3">>
<<cacheaudio "Idle_Voice2_A2_S4_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level2/Size4/Idle_Voice2_A2_S4_02.mp3">>
<<cacheaudio "Idle_Voice2_A2_S4_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level2/Size4/Idle_Voice2_A2_S4_03.mp3">>
<<createplaylist "Idle_Voice2_A2_S4">>
<<track "Idle_Voice2_A2_S4_01">>
<<track "Idle_Voice2_A2_S4_02">>
<<track "Idle_Voice2_A2_S4_03">>
<</createplaylist>>
/*Voice2/Arousal3*/
<<cacheaudio "Idle_Voice2_A3_S1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level3/Size1/Idle_Voice2_A3_S1_01.mp3">>
<<cacheaudio "Idle_Voice2_A3_S1_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level3/Size1/Idle_Voice2_A3_S1_02.mp3">>
<<cacheaudio "Idle_Voice2_A3_S1_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level3/Size1/Idle_Voice2_A3_S1_03.mp3">>
<<createplaylist "Idle_Voice2_A3_S1">>
<<track "Idle_Voice2_A3_S1_01">>
<<track "Idle_Voice2_A3_S1_02">>
<<track "Idle_Voice2_A3_S1_03">>
<</createplaylist>>
<<cacheaudio "Idle_Voice2_A3_S2_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level3/Size2/Idle_Voice2_A3_S2_01.mp3">>
<<cacheaudio "Idle_Voice2_A3_S2_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level3/Size2/Idle_Voice2_A3_S2_02.mp3">>
<<cacheaudio "Idle_Voice2_A3_S2_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level3/Size2/Idle_Voice2_A3_S2_03.mp3">>
<<createplaylist "Idle_Voice2_A3_S2">>
<<track "Idle_Voice2_A3_S2_01">>
<<track "Idle_Voice2_A3_S2_02">>
<<track "Idle_Voice2_A3_S2_03">>
<</createplaylist>>
<<cacheaudio "Idle_Voice2_A3_S3_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level3/Size3/Idle_Voice2_A3_S3_01.mp3">>
<<cacheaudio "Idle_Voice2_A3_S3_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level3/Size3/Idle_Voice2_A3_S3_02.mp3">>
<<cacheaudio "Idle_Voice2_A3_S3_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level3/Size3/Idle_Voice2_A3_S3_03.mp3">>
<<createplaylist "Idle_Voice2_A3_S3">>
<<track "Idle_Voice2_A3_S3_01">>
<<track "Idle_Voice2_A3_S3_02">>
<<track "Idle_Voice2_A3_S3_03">>
<</createplaylist>>
<<cacheaudio "Idle_Voice2_A3_S4_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level3/Size4/Idle_Voice2_A3_S4_01.mp3">>
<<cacheaudio "Idle_Voice2_A3_S4_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level3/Size4/Idle_Voice2_A3_S4_02.mp3">>
<<cacheaudio "Idle_Voice2_A3_S4_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level3/Size4/Idle_Voice2_A3_S4_03.mp3">>
<<createplaylist "Idle_Voice2_A3_S4">>
<<track "Idle_Voice2_A3_S4_01">>
<<track "Idle_Voice2_A3_S4_02">>
<<track "Idle_Voice2_A3_S4_03">>
<</createplaylist>>
/*Voice2/Arousal4*/
<<cacheaudio "Idle_Voice2_A4_S1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level4/Size1/Idle_Voice2_A4_S1_01.mp3">>
<<cacheaudio "Idle_Voice2_A4_S1_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level4/Size1/Idle_Voice2_A4_S1_02.mp3">>
<<createplaylist "Idle_Voice2_A4_S1">>
<<track "Idle_Voice2_A4_S1_01">>
<<track "Idle_Voice2_A4_S1_02">>
<</createplaylist>>
<<cacheaudio "Idle_Voice2_A4_S2_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level4/Size2/Idle_Voice2_A4_S2_01.mp3">>
<<cacheaudio "Idle_Voice2_A4_S2_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level4/Size2/Idle_Voice2_A4_S2_02.mp3">>
<<createplaylist "Idle_Voice2_A4_S2">>
<<track "Idle_Voice2_A4_S2_01">>
<<track "Idle_Voice2_A4_S2_02">>
<</createplaylist>>
<<cacheaudio "Idle_Voice2_A4_S3_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level4/Size3/Idle_Voice2_A4_S3_01.mp3">>
<<cacheaudio "Idle_Voice2_A4_S3_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level4/Size3/Idle_Voice2_A4_S3_02.mp3">>
<<createplaylist "Idle_Voice2_A4_S3">>
<<track "Idle_Voice2_A4_S3_01">>
<<track "Idle_Voice2_A4_S3_02">>
<</createplaylist>>
<<cacheaudio "Idle_Voice2_A4_S4_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level4/Size4/Idle_Voice2_A4_S4_01.mp3">>
<<cacheaudio "Idle_Voice2_A4_S4_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level4/Size4/Idle_Voice2_A4_S4_02.mp3">>
<<createplaylist "Idle_Voice2_A4_S4">>
<<track "Idle_Voice2_A4_S4_01">>
<<track "Idle_Voice2_A4_S4_02">>
<</createplaylist>>
/*Voice2/Arousal5*/
<<cacheaudio "Idle_Voice2_A5_S1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level5/Size1/Idle_Voice2_A5_S1_01.mp3">>
<<cacheaudio "Idle_Voice2_A5_S1_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level5/Size1/Idle_Voice2_A5_S1_02.mp3">>
<<createplaylist "Idle_Voice2_A5_S1">>
<<track "Idle_Voice2_A5_S1_01">>
<<track "Idle_Voice2_A5_S1_02">>
<</createplaylist>>
<<cacheaudio "Idle_Voice2_A5_S2_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level5/Size2/Idle_Voice2_A5_S2_01.mp3">>
<<cacheaudio "Idle_Voice2_A5_S2_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level5/Size2/Idle_Voice2_A5_S2_02.mp3">>
<<createplaylist "Idle_Voice2_A5_S2">>
<<track "Idle_Voice2_A5_S2_01">>
<<track "Idle_Voice2_A5_S2_02">>
<</createplaylist>>
<<cacheaudio "Idle_Voice2_A5_S3_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level5/Size3/Idle_Voice2_A5_S3_01.mp3">>
<<cacheaudio "Idle_Voice2_A5_S3_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level5/Size3/Idle_Voice2_A5_S3_02.mp3">>
<<createplaylist "Idle_Voice2_A5_S3">>
<<track "Idle_Voice2_A5_S3_01">>
<<track "Idle_Voice2_A5_S3_02">>
<</createplaylist>>
<<cacheaudio "Idle_Voice2_A5_S4_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level5/Size4/Idle_Voice2_A5_S4_01.mp3">>
<<cacheaudio "Idle_Voice2_A5_S4_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Player/Voice2/Arousal-Idle/Level5/Size4/Idle_Voice2_A5_S4_02.mp3">>
<<createplaylist "Idle_Voice2_A5_S4">>
<<track "Idle_Voice2_A5_S4_01">>
<<track "Idle_Voice2_A5_S4_02">>
<</createplaylist>>
<<createplaylist "Test_Voice2">>
<<track "Idle_Voice2_A1_S1_01">>
<<track "Idle_Voice2_A1_S1_02">>
<<track "Idle_Voice2_A1_S1_03">>
<<track "Idle_Voice2_A2_S1_01">>
<<track "Idle_Voice2_A2_S1_02">>
<<track "Idle_Voice2_A2_S1_03">>
<<track "Idle_Voice2_A3_S1_01">>
<<track "Idle_Voice2_A3_S1_02">>
<<track "Idle_Voice2_A3_S1_03">>
<</createplaylist>>/*Voice2/Arousal1*/
<<cacheaudio "Idle_Imp_A1_S1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level1/Size1/Idle_Imp_A1_S1_01.mp3">>
<<cacheaudio "Idle_Imp_A1_S1_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level1/Size1/Idle_Imp_A1_S1_02.mp3">>
<<cacheaudio "Idle_Imp_A1_S1_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level1/Size1/Idle_Imp_A1_S1_03.mp3">>
<<createplaylist "Idle_Imp_A1_S1">>
<<track "Idle_Imp_A1_S1_01">>
<<track "Idle_Imp_A1_S1_02">>
<<track "Idle_Imp_A1_S1_03">>
<</createplaylist>>
<<cacheaudio "Idle_Imp_A1_S2_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level1/Size2/Idle_Imp_A1_S2_01.mp3">>
<<cacheaudio "Idle_Imp_A1_S2_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level1/Size2/Idle_Imp_A1_S2_02.mp3">>
<<cacheaudio "Idle_Imp_A1_S2_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level1/Size2/Idle_Imp_A1_S2_03.mp3">>
<<createplaylist "Idle_Imp_A1_S2">>
<<track "Idle_Imp_A1_S2_01">>
<<track "Idle_Imp_A1_S2_02">>
<<track "Idle_Imp_A1_S2_03">>
<</createplaylist>>
<<cacheaudio "Idle_Imp_A1_S3_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level1/Size3/Idle_Imp_A1_S3_01.mp3">>
<<cacheaudio "Idle_Imp_A1_S3_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level1/Size3/Idle_Imp_A1_S3_02.mp3">>
<<cacheaudio "Idle_Imp_A1_S3_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level1/Size3/Idle_Imp_A1_S3_03.mp3">>
<<createplaylist "Idle_Imp_A1_S3">>
<<track "Idle_Imp_A1_S3_01">>
<<track "Idle_Imp_A1_S3_02">>
<<track "Idle_Imp_A1_S3_03">>
<</createplaylist>>
/*Voice2/Arousal2*/
<<cacheaudio "Idle_Imp_A2_S1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level2/Size1/Idle_Imp_A2_S1_01.mp3">>
<<cacheaudio "Idle_Imp_A2_S1_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level2/Size1/Idle_Imp_A2_S1_02.mp3">>
<<cacheaudio "Idle_Imp_A2_S1_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level2/Size1/Idle_Imp_A2_S1_03.mp3">>
<<createplaylist "Idle_Imp_A2_S1">>
<<track "Idle_Imp_A2_S1_01">>
<<track "Idle_Imp_A2_S1_02">>
<<track "Idle_Imp_A2_S1_03">>
<</createplaylist>>
<<cacheaudio "Idle_Imp_A2_S2_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level2/Size2/Idle_Imp_A2_S2_01.mp3">>
<<cacheaudio "Idle_Imp_A2_S2_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level2/Size2/Idle_Imp_A2_S2_02.mp3">>
<<cacheaudio "Idle_Imp_A2_S2_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level2/Size2/Idle_Imp_A2_S2_03.mp3">>
<<createplaylist "Idle_Imp_A2_S2">>
<<track "Idle_Imp_A2_S2_01">>
<<track "Idle_Imp_A2_S2_02">>
<<track "Idle_Imp_A2_S2_03">>
<</createplaylist>>
<<cacheaudio "Idle_Imp_A2_S3_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level2/Size3/Idle_Imp_A2_S3_01.mp3">>
<<cacheaudio "Idle_Imp_A2_S3_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level2/Size3/Idle_Imp_A2_S3_02.mp3">>
<<cacheaudio "Idle_Imp_A2_S3_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level2/Size3/Idle_Imp_A2_S3_03.mp3">>
<<createplaylist "Idle_Imp_A2_S3">>
<<track "Idle_Imp_A2_S3_01">>
<<track "Idle_Imp_A2_S3_02">>
<<track "Idle_Imp_A2_S3_03">>
<</createplaylist>>
/*Voice2/Arousal3*/
<<cacheaudio "Idle_Imp_A3_S1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level3/Size1/Idle_Imp_A3_S1_01.mp3">>
<<cacheaudio "Idle_Imp_A3_S1_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level3/Size1/Idle_Imp_A3_S1_02.mp3">>
<<cacheaudio "Idle_Imp_A3_S1_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level3/Size1/Idle_Imp_A3_S1_03.mp3">>
<<createplaylist "Idle_Imp_A3_S1">>
<<track "Idle_Imp_A3_S1_01">>
<<track "Idle_Imp_A3_S1_02">>
<<track "Idle_Imp_A3_S1_03">>
<</createplaylist>>
<<cacheaudio "Idle_Imp_A3_S2_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level3/Size2/Idle_Imp_A3_S2_01.mp3">>
<<cacheaudio "Idle_Imp_A3_S2_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level3/Size2/Idle_Imp_A3_S2_02.mp3">>
<<cacheaudio "Idle_Imp_A3_S2_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level3/Size2/Idle_Imp_A3_S2_03.mp3">>
<<createplaylist "Idle_Imp_A3_S2">>
<<track "Idle_Imp_A3_S2_01">>
<<track "Idle_Imp_A3_S2_02">>
<<track "Idle_Imp_A3_S2_03">>
<</createplaylist>>
<<cacheaudio "Idle_Imp_A3_S3_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level3/Size3/Idle_Imp_A3_S3_01.mp3">>
<<cacheaudio "Idle_Imp_A3_S3_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level3/Size3/Idle_Imp_A3_S3_02.mp3">>
<<cacheaudio "Idle_Imp_A3_S3_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level3/Size3/Idle_Imp_A3_S3_03.mp3">>
<<createplaylist "Idle_Imp_A3_S3">>
<<track "Idle_Imp_A3_S3_01">>
<<track "Idle_Imp_A3_S3_02">>
<<track "Idle_Imp_A3_S3_03">>
<</createplaylist>>
/*Voice2/Arousal4*/
<<cacheaudio "Idle_Imp_A4_S1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level4/Size1/Idle_Imp_A4_S1_01.mp3">>
<<cacheaudio "Idle_Imp_A4_S1_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level4/Size1/Idle_Imp_A4_S1_02.mp3">>
<<createplaylist "Idle_Imp_A4_S1">>
<<track "Idle_Imp_A4_S1_01">>
<<track "Idle_Imp_A4_S1_02">>
<</createplaylist>>
<<cacheaudio "Idle_Imp_A4_S2_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level4/Size2/Idle_Imp_A4_S2_01.mp3">>
<<cacheaudio "Idle_Imp_A4_S2_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level4/Size2/Idle_Imp_A4_S2_02.mp3">>
<<createplaylist "Idle_Imp_A4_S2">>
<<track "Idle_Imp_A4_S2_01">>
<<track "Idle_Imp_A4_S2_02">>
<</createplaylist>>
<<cacheaudio "Idle_Imp_A4_S3_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level4/Size3/Idle_Imp_A4_S3_01.mp3">>
<<cacheaudio "Idle_Imp_A4_S3_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level4/Size3/Idle_Imp_A4_S3_02.mp3">>
<<createplaylist "Idle_Imp_A4_S3">>
<<track "Idle_Imp_A4_S3_01">>
<<track "Idle_Imp_A4_S3_02">>
<</createplaylist>>
/*Voice2/Arousal5*/
<<cacheaudio "Idle_Imp_A5_S1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level5/Size1/Idle_Imp_A5_S1_01.mp3">>
<<createplaylist "Idle_Imp_A5_S1">>
<<track "Idle_Imp_A5_S1_01">>
<</createplaylist>>
<<cacheaudio "Idle_Imp_A5_S2_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level5/Size2/Idle_Imp_A5_S2_01.mp3">>
<<createplaylist "Idle_Imp_A5_S2">>
<<track "Idle_Imp_A5_S2_01">>
<</createplaylist>>
<<cacheaudio "Idle_Imp_A5_S3_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Imp/Arousal-Idle/Level5/Size3/Idle_Imp_A5_S3_01.mp3">>
<<createplaylist "Idle_Imp_A5_S3">>
<<track "Idle_Imp_A5_S3_01">>
<</createplaylist>><<cacheaudio "Lost_Naga_Idle_S1_A0_0" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size1/Level0/LostNaga_Idle_S1_A0_0.mp3">>
<<cacheaudio "Lost_Naga_Idle_S1_A0_1" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size1/Level0/LostNaga_Idle_S1_A0_1.mp3">>
<<cacheaudio "Lost_Naga_Idle_S1_A0_2" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size1/Level0/LostNaga_Idle_S1_A0_2.mp3">>
<<createplaylist "Lost_Naga_Idle_S1_A0">>
<<track "Lost_Naga_Idle_S1_A0_0">>
<<track "Lost_Naga_Idle_S1_A0_1">>
<<track "Lost_Naga_Idle_S1_A0_2">>
<</createplaylist>>
<<cacheaudio "Lost_Naga_Idle_S1_A1_0" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size1/Level1/LostNaga_Idle_S1_A1_0.mp3">>
<<cacheaudio "Lost_Naga_Idle_S1_A1_1" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size1/Level1/LostNaga_Idle_S1_A1_1.mp3">>
<<cacheaudio "Lost_Naga_Idle_S1_A1_2" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size1/Level1/LostNaga_Idle_S1_A1_2.mp3">>
<<createplaylist "Lost_Naga_Idle_S1_A1">>
<<track "Lost_Naga_Idle_S1_A1_0">>
<<track "Lost_Naga_Idle_S1_A1_1">>
<<track "Lost_Naga_Idle_S1_A1_2">>
<</createplaylist>>
<<cacheaudio "Lost_Naga_Idle_S1_A2_0" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size1/Level2/LostNaga_Idle_S1_A2_0.mp3">>
<<cacheaudio "Lost_Naga_Idle_S1_A2_1" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size1/Level2/LostNaga_Idle_S1_A2_1.mp3">>
<<cacheaudio "Lost_Naga_Idle_S1_A2_2" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size1/Level2/LostNaga_Idle_S1_A2_2.mp3">>
<<createplaylist "Lost_Naga_Idle_S1_A2">>
<<track "Lost_Naga_Idle_S1_A2_0">>
<<track "Lost_Naga_Idle_S1_A2_1">>
<<track "Lost_Naga_Idle_S1_A2_2">>
<</createplaylist>>
<<cacheaudio "Lost_Naga_Idle_S1_A3_0" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size1/Level3/LostNaga_Idle_S1_A3_0.mp3">>
<<cacheaudio "Lost_Naga_Idle_S1_A3_1" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size1/Level3/LostNaga_Idle_S1_A3_1.mp3">>
<<cacheaudio "Lost_Naga_Idle_S1_A3_2" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size1/Level3/LostNaga_Idle_S1_A3_2.mp3">>
<<createplaylist "Lost_Naga_Idle_S1_A3">>
<<track "Lost_Naga_Idle_S1_A3_0">>
<<track "Lost_Naga_Idle_S1_A3_1">>
<<track "Lost_Naga_Idle_S1_A3_2">>
<</createplaylist>>
<<cacheaudio "Lost_Naga_Idle_S2_A0_0" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size2/Level0/LostNaga_Idle_S2_A0_0.mp3">>
<<cacheaudio "Lost_Naga_Idle_S2_A0_1" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size2/Level0/LostNaga_Idle_S2_A0_1.mp3">>
<<cacheaudio "Lost_Naga_Idle_S2_A0_2" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size2/Level0/LostNaga_Idle_S2_A0_2.mp3">>
<<createplaylist "Lost_Naga_Idle_S2_A0">>
<<track "Lost_Naga_Idle_S2_A0_0">>
<<track "Lost_Naga_Idle_S2_A0_1">>
<<track "Lost_Naga_Idle_S2_A0_2">>
<</createplaylist>>
<<cacheaudio "Lost_Naga_Idle_S2_A1_0" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size2/Level1/LostNaga_Idle_S2_A1_0.mp3">>
<<cacheaudio "Lost_Naga_Idle_S2_A1_1" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size2/Level1/LostNaga_Idle_S2_A1_1.mp3">>
<<cacheaudio "Lost_Naga_Idle_S2_A1_2" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size2/Level1/LostNaga_Idle_S2_A1_2.mp3">>
<<createplaylist "Lost_Naga_Idle_S2_A1">>
<<track "Lost_Naga_Idle_S2_A1_0">>
<<track "Lost_Naga_Idle_S2_A1_1">>
<<track "Lost_Naga_Idle_S2_A1_2">>
<</createplaylist>>
<<cacheaudio "Lost_Naga_Idle_S2_A2_0" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size2/Level2/LostNaga_Idle_S2_A2_0.mp3">>
<<cacheaudio "Lost_Naga_Idle_S2_A2_1" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size2/Level2/LostNaga_Idle_S2_A2_1.mp3">>
<<cacheaudio "Lost_Naga_Idle_S2_A2_2" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size2/Level2/LostNaga_Idle_S2_A2_2.mp3">>
<<createplaylist "Lost_Naga_Idle_S2_A2">>
<<track "Lost_Naga_Idle_S2_A2_0">>
<<track "Lost_Naga_Idle_S2_A2_1">>
<<track "Lost_Naga_Idle_S2_A2_2">>
<</createplaylist>>
<<cacheaudio "Lost_Naga_Idle_S2_A3_0" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size2/Level3/LostNaga_Idle_S2_A3_0.mp3">>
<<cacheaudio "Lost_Naga_Idle_S2_A3_1" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size2/Level3/LostNaga_Idle_S2_A3_1.mp3">>
<<cacheaudio "Lost_Naga_Idle_S2_A3_2" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size2/Level3/LostNaga_Idle_S2_A3_2.mp3">>
<<createplaylist "Lost_Naga_Idle_S2_A3">>
<<track "Lost_Naga_Idle_S2_A3_0">>
<<track "Lost_Naga_Idle_S2_A3_1">>
<<track "Lost_Naga_Idle_S2_A3_2">>
<</createplaylist>>
<<cacheaudio "Lost_Naga_Idle_S3_A0_0" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size3/Level0/LostNaga_Idle_S3_A0_0.mp3">>
<<cacheaudio "Lost_Naga_Idle_S3_A0_1" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size3/Level0/LostNaga_Idle_S3_A0_1.mp3">>
<<cacheaudio "Lost_Naga_Idle_S3_A0_2" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size3/Level0/LostNaga_Idle_S3_A0_2.mp3">>
<<createplaylist "Lost_Naga_Idle_S3_A0">>
<<track "Lost_Naga_Idle_S3_A0_0">>
<<track "Lost_Naga_Idle_S3_A0_1">>
<<track "Lost_Naga_Idle_S3_A0_2">>
<</createplaylist>>
<<cacheaudio "Lost_Naga_Idle_S3_A1_0" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size3/Level1/LostNaga_Idle_S3_A1_0.mp3">>
<<cacheaudio "Lost_Naga_Idle_S3_A1_1" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size3/Level1/LostNaga_Idle_S3_A1_1.mp3">>
<<cacheaudio "Lost_Naga_Idle_S3_A1_2" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size3/Level1/LostNaga_Idle_S3_A1_2.mp3">>
<<createplaylist "Lost_Naga_Idle_S3_A1">>
<<track "Lost_Naga_Idle_S3_A1_0">>
<<track "Lost_Naga_Idle_S3_A1_1">>
<<track "Lost_Naga_Idle_S3_A1_2">>
<</createplaylist>>
<<cacheaudio "Lost_Naga_Idle_S3_A2_0" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size3/Level2/LostNaga_Idle_S3_A2_0.mp3">>
<<cacheaudio "Lost_Naga_Idle_S3_A2_1" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size3/Level2/LostNaga_Idle_S3_A2_1.mp3">>
<<cacheaudio "Lost_Naga_Idle_S3_A2_2" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size3/Level2/LostNaga_Idle_S3_A2_2.mp3">>
<<createplaylist "Lost_Naga_Idle_S3_A2">>
<<track "Lost_Naga_Idle_S3_A2_0">>
<<track "Lost_Naga_Idle_S3_A2_1">>
<<track "Lost_Naga_Idle_S3_A2_2">>
<</createplaylist>>
<<cacheaudio "Lost_Naga_Idle_S3_A3_0" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size3/Level3/LostNaga_Idle_S3_A3_0.mp3">>
<<cacheaudio "Lost_Naga_Idle_S3_A3_1" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size3/Level3/LostNaga_Idle_S3_A3_1.mp3">>
<<cacheaudio "Lost_Naga_Idle_S3_A3_2" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/LostNaga/Arousal-Idle/Size3/Level3/LostNaga_Idle_S3_A3_2.mp3">>
<<createplaylist "Lost_Naga_Idle_S3_A3">>
<<track "Lost_Naga_Idle_S3_A3_0">>
<<track "Lost_Naga_Idle_S3_A3_1">>
<<track "Lost_Naga_Idle_S3_A3_2">>
<</createplaylist>><<cacheaudio "Bind_Idle_S3_A0_0" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size3/Level0/Bind_Idle_S3_A0_0.mp3">>
<<cacheaudio "Bind_Idle_S3_A0_1" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size3/Level0/Bind_Idle_S3_A0_1.mp3">>
<<cacheaudio "Bind_Idle_S3_A0_2" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size3/Level0/Bind_Idle_S3_A0_2.mp3">>
<<createplaylist "Bind_Idle_S3_A0">>
<<track "Bind_Idle_S3_A0_0">>
<<track "Bind_Idle_S3_A0_1">>
<<track "Bind_Idle_S3_A0_2">>
<</createplaylist>>
<<cacheaudio "Bind_Idle_S3_A1_0" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size3/Level1/Bind_Idle_S3_A1_0.mp3">>
<<cacheaudio "Bind_Idle_S3_A1_1" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size3/Level1/Bind_Idle_S3_A1_1.mp3">>
<<cacheaudio "Bind_Idle_S3_A1_2" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size3/Level1/Bind_Idle_S3_A1_2.mp3">>
<<createplaylist "Bind_Idle_S3_A1">>
<<track "Bind_Idle_S3_A1_0">>
<<track "Bind_Idle_S3_A1_1">>
<<track "Bind_Idle_S3_A1_2">>
<</createplaylist>>
<<cacheaudio "Bind_Idle_S3_A2_0" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size3/Level2/Bind_Idle_S3_A2_0.mp3">>
<<cacheaudio "Bind_Idle_S3_A2_1" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size3/Level2/Bind_Idle_S3_A2_1.mp3">>
<<cacheaudio "Bind_Idle_S3_A2_2" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size3/Level2/Bind_Idle_S3_A2_2.mp3">>
<<createplaylist "Bind_Idle_S3_A2">>
<<track "Bind_Idle_S3_A2_0">>
<<track "Bind_Idle_S3_A2_1">>
<<track "Bind_Idle_S3_A2_2">>
<</createplaylist>>
<<cacheaudio "Bind_Idle_S3_A3_0" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size3/Level3/Bind_Idle_S3_A3_0.mp3">>
<<cacheaudio "Bind_Idle_S3_A3_1" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size3/Level3/Bind_Idle_S3_A3_1.mp3">>
<<cacheaudio "Bind_Idle_S3_A3_2" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size3/Level3/Bind_Idle_S3_A3_2.mp3">>
<<createplaylist "Bind_Idle_S3_A3">>
<<track "Bind_Idle_S3_A3_0">>
<<track "Bind_Idle_S3_A3_1">>
<<track "Bind_Idle_S3_A3_2">>
<</createplaylist>>
<<cacheaudio "Bind_Idle_S2_A0_0" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size2/Level0/Bind_Idle_S2_A0_0.mp3">>
<<cacheaudio "Bind_Idle_S2_A0_1" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size2/Level0/Bind_Idle_S2_A0_1.mp3">>
<<cacheaudio "Bind_Idle_S2_A0_2" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size2/Level0/Bind_Idle_S2_A0_2.mp3">>
<<createplaylist "Bind_Idle_S2_A0">>
<<track "Bind_Idle_S2_A0_0">>
<<track "Bind_Idle_S2_A0_1">>
<<track "Bind_Idle_S2_A0_2">>
<</createplaylist>>
<<cacheaudio "Bind_Idle_S2_A1_0" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size2/Level1/Bind_Idle_S2_A1_0.mp3">>
<<cacheaudio "Bind_Idle_S2_A1_1" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size2/Level1/Bind_Idle_S2_A1_1.mp3">>
<<cacheaudio "Bind_Idle_S2_A1_2" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size2/Level1/Bind_Idle_S2_A1_2.mp3">>
<<createplaylist "Bind_Idle_S2_A1">>
<<track "Bind_Idle_S2_A1_0">>
<<track "Bind_Idle_S2_A1_1">>
<<track "Bind_Idle_S2_A1_2">>
<</createplaylist>>
<<cacheaudio "Bind_Idle_S2_A2_0" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size2/Level2/Bind_Idle_S2_A2_0.mp3">>
<<cacheaudio "Bind_Idle_S2_A2_1" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size2/Level2/Bind_Idle_S2_A2_1.mp3">>
<<cacheaudio "Bind_Idle_S2_A2_2" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size2/Level2/Bind_Idle_S2_A2_2.mp3">>
<<createplaylist "Bind_Idle_S2_A2">>
<<track "Bind_Idle_S2_A2_0">>
<<track "Bind_Idle_S2_A2_1">>
<<track "Bind_Idle_S2_A2_2">>
<</createplaylist>>
<<cacheaudio "Bind_Idle_S2_A3_0" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size2/Level3/Bind_Idle_S2_A3_0.mp3">>
<<cacheaudio "Bind_Idle_S2_A3_1" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size2/Level3/Bind_Idle_S2_A3_1.mp3">>
<<cacheaudio "Bind_Idle_S2_A3_2" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size2/Level3/Bind_Idle_S2_A3_2.mp3">>
<<createplaylist "Bind_Idle_S2_A3">>
<<track "Bind_Idle_S2_A3_0">>
<<track "Bind_Idle_S2_A3_1">>
<<track "Bind_Idle_S2_A3_2">>
<</createplaylist>>
<<cacheaudio "Bind_Idle_S1_A0_0" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size1/Level0/Bind_Idle_S1_A0_0.mp3">>
<<cacheaudio "Bind_Idle_S1_A0_1" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size1/Level0/Bind_Idle_S1_A0_1.mp3">>
<<cacheaudio "Bind_Idle_S1_A0_2" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size1/Level0/Bind_Idle_S1_A0_2.mp3">>
<<createplaylist "Bind_Idle_S1_A0">>
<<track "Bind_Idle_S1_A0_0">>
<<track "Bind_Idle_S1_A0_1">>
<<track "Bind_Idle_S1_A0_2">>
<</createplaylist>>
<<cacheaudio "Bind_Idle_S1_A1_0" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size1/Level1/Bind_Idle_S1_A1_0.mp3">>
<<cacheaudio "Bind_Idle_S1_A1_1" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size1/Level1/Bind_Idle_S1_A1_1.mp3">>
<<cacheaudio "Bind_Idle_S1_A1_2" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size1/Level1/Bind_Idle_S1_A1_2.mp3">>
<<createplaylist "Bind_Idle_S1_A1">>
<<track "Bind_Idle_S1_A1_0">>
<<track "Bind_Idle_S1_A1_1">>
<<track "Bind_Idle_S1_A1_2">>
<</createplaylist>>
<<cacheaudio "Bind_Idle_S1_A2_0" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size1/Level2/Bind_Idle_S1_A2_0.mp3">>
<<cacheaudio "Bind_Idle_S1_A2_1" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size1/Level2/Bind_Idle_S1_A2_1.mp3">>
<<cacheaudio "Bind_Idle_S1_A2_2" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size1/Level2/Bind_Idle_S1_A2_2.mp3">>
<<createplaylist "Bind_Idle_S1_A2">>
<<track "Bind_Idle_S1_A2_0">>
<<track "Bind_Idle_S1_A2_1">>
<<track "Bind_Idle_S1_A2_2">>
<</createplaylist>>
<<cacheaudio "Bind_Idle_S1_A3_0" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size1/Level3/Bind_Idle_S1_A3_0.mp3">>
<<cacheaudio "Bind_Idle_S1_A3_1" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size1/Level3/Bind_Idle_S1_A3_1.mp3">>
<<cacheaudio "Bind_Idle_S1_A3_2" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Bind/Arousal-Idle/Size1/Level3/Bind_Idle_S1_A3_2.mp3">>
<<createplaylist "Bind_Idle_S1_A3">>
<<track "Bind_Idle_S1_A3_0">>
<<track "Bind_Idle_S1_A3_1">>
<<track "Bind_Idle_S1_A3_2">>
<</createplaylist>>/*Voice2/Arousal1*/
<<cacheaudio "Torgar_Idle_S1_A1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size1/Level1/Torgar_Idle_S1_A1_1.mp3">>
<<cacheaudio "Torgar_Idle_S1_A1_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size1/Level1/Torgar_Idle_S1_A1_2.mp3">>
<<cacheaudio "Torgar_Idle_S1_A1_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size1/Level1/Torgar_Idle_S1_A1_3.mp3">>
<<createplaylist "Torgar_Idle_S1_A1">>
<<track "Torgar_Idle_S1_A1_01">>
<<track "Torgar_Idle_S1_A1_02">>
<<track "Torgar_Idle_S1_A1_03">>
<</createplaylist>>
<<cacheaudio "Torgar_Idle_S2_A1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size2/Level1/Torgar_Idle_S2_A1_1.mp3">>
<<cacheaudio "Torgar_Idle_S2_A1_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size2/Level1/Torgar_Idle_S2_A1_2.mp3">>
<<cacheaudio "Torgar_Idle_S2_A1_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size2/Level1/Torgar_Idle_S2_A1_3.mp3">>
<<createplaylist "Torgar_Idle_S2_A1">>
<<track "Torgar_Idle_S2_A1_01">>
<<track "Torgar_Idle_S2_A1_02">>
<<track "Torgar_Idle_S2_A1_03">>
<</createplaylist>>
<<cacheaudio "Torgar_Idle_S3_A1_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size3/Level1/Torgar_Idle_S3_A1_1.mp3">>
<<cacheaudio "Torgar_Idle_S3_A1_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size3/Level1/Torgar_Idle_S3_A1_2.mp3">>
<<cacheaudio "Torgar_Idle_S3_A1_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size3/Level1/Torgar_Idle_S3_A1_3.mp3">>
<<createplaylist "Torgar_Idle_S3_A1">>
<<track "Torgar_Idle_S3_A1_01">>
<<track "Torgar_Idle_S3_A1_02">>
<<track "Torgar_Idle_S3_A1_03">>
<</createplaylist>>
/*Voice2/Arousal2*/
<<cacheaudio "Torgar_Idle_S1_A2_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size1/Level2/Torgar_Idle_S1_A2_1.mp3">>
<<cacheaudio "Torgar_Idle_S1_A2_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size1/Level2/Torgar_Idle_S1_A2_2.mp3">>
<<cacheaudio "Torgar_Idle_S1_A2_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size1/Level2/Torgar_Idle_S1_A2_3.mp3">>
<<createplaylist "Torgar_Idle_S1_A2">>
<<track "Torgar_Idle_S1_A2_01">>
<<track "Torgar_Idle_S1_A2_02">>
<<track "Torgar_Idle_S1_A2_03">>
<</createplaylist>>
<<cacheaudio "Torgar_Idle_S2_A2_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size2/Level2/Torgar_Idle_S2_A2_1.mp3">>
<<cacheaudio "Torgar_Idle_S2_A2_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size2/Level2/Torgar_Idle_S2_A2_2.mp3">>
<<cacheaudio "Torgar_Idle_S2_A2_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size2/Level2/Torgar_Idle_S2_A2_3.mp3">>
<<createplaylist "Torgar_Idle_S2_A2">>
<<track "Torgar_Idle_S2_A2_01">>
<<track "Torgar_Idle_S2_A2_02">>
<<track "Torgar_Idle_S2_A2_03">>
<</createplaylist>>
<<cacheaudio "Torgar_Idle_S3_A2_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size3/Level2/Torgar_Idle_S3_A2_1.mp3">>
<<cacheaudio "Torgar_Idle_S3_A2_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size3/Level2/Torgar_Idle_S3_A2_2.mp3">>
<<cacheaudio "Torgar_Idle_S3_A2_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size3/Level2/Torgar_Idle_S3_A2_3.mp3">>
<<createplaylist "Torgar_Idle_S3_A2">>
<<track "Torgar_Idle_S3_A2_01">>
<<track "Torgar_Idle_S3_A2_02">>
<<track "Torgar_Idle_S3_A2_03">>
<</createplaylist>>
/*Voice2/Arousal3*/
<<cacheaudio "Torgar_Idle_S1_A3_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size1/Level3/Torgar_Idle_S1_A3_1.mp3">>
<<cacheaudio "Torgar_Idle_S1_A3_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size1/Level3/Torgar_Idle_S1_A3_2.mp3">>
<<cacheaudio "Torgar_Idle_S1_A3_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size1/Level3/Torgar_Idle_S1_A3_3.mp3">>
<<createplaylist "Torgar_Idle_S1_A3">>
<<track "Torgar_Idle_S1_A3_01">>
<<track "Torgar_Idle_S1_A3_02">>
<<track "Torgar_Idle_S1_A3_03">>
<</createplaylist>>
<<cacheaudio "Torgar_Idle_S2_A3_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size2/Level3/Torgar_Idle_S2_A3_1.mp3">>
<<cacheaudio "Torgar_Idle_S2_A3_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size2/Level3/Torgar_Idle_S2_A3_2.mp3">>
<<cacheaudio "Torgar_Idle_S2_A3_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size2/Level3/Torgar_Idle_S2_A3_3.mp3">>
<<createplaylist "Torgar_Idle_S2_A3">>
<<track "Torgar_Idle_S2_A3_01">>
<<track "Torgar_Idle_S2_A3_02">>
<<track "Torgar_Idle_S2_A3_03">>
<</createplaylist>>
<<cacheaudio "Torgar_Idle_S3_A3_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size3/Level3/Torgar_Idle_S3_A3_1.mp3">>
<<cacheaudio "Torgar_Idle_S3_A3_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size3/Level3/Torgar_Idle_S3_A3_2.mp3">>
<<cacheaudio "Torgar_Idle_S3_A3_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size3/Level3/Torgar_Idle_S3_A3_3.mp3">>
<<createplaylist "Torgar_Idle_S3_A3">>
<<track "Torgar_Idle_S3_A3_01">>
<<track "Torgar_Idle_S3_A3_02">>
<<track "Torgar_Idle_S3_A3_03">>
<</createplaylist>>
/*Voice2/Arousal4*/
<<cacheaudio "Torgar_Idle_S1_A4_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size1/Level4/Torgar_Idle_S1_A4_1.mp3">>
<<cacheaudio "Torgar_Idle_S1_A4_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size1/Level4/Torgar_Idle_S1_A4_2.mp3">>
<<cacheaudio "Torgar_Idle_S1_A4_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size1/Level4/Torgar_Idle_S1_A4_3.mp3">>
<<createplaylist "Torgar_Idle_S1_A4">>
<<track "Torgar_Idle_S1_A4_01">>
<<track "Torgar_Idle_S1_A4_02">>
<<track "Torgar_Idle_S1_A4_03">>
<</createplaylist>>
<<cacheaudio "Torgar_Idle_S2_A4_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size2/Level4/Torgar_Idle_S2_A4_1.mp3">>
<<cacheaudio "Torgar_Idle_S2_A4_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size2/Level4/Torgar_Idle_S2_A4_2.mp3">>
<<cacheaudio "Torgar_Idle_S2_A4_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size2/Level4/Torgar_Idle_S2_A4_3.mp3">>
<<createplaylist "Torgar_Idle_S2_A4">>
<<track "Torgar_Idle_S2_A4_01">>
<<track "Torgar_Idle_S2_A4_02">>
<<track "Torgar_Idle_S2_A4_03">>
<</createplaylist>>
<<cacheaudio "Torgar_Idle_S3_A4_01" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size3/Level4/Torgar_Idle_S3_A4_1.mp3">>
<<cacheaudio "Torgar_Idle_S3_A4_02" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size3/Level4/Torgar_Idle_S3_A4_2.mp3">>
<<cacheaudio "Torgar_Idle_S3_A4_03" "https://sombreve.github.io/Dawn-of-Corruption-Site/Sounds/voices/Torgar/Arousal-Idle/Size3/Level4/Torgar_Idle_S3_A4_3.mp3">>
<<createplaylist "Torgar_Idle_S3_A4">>
<<track "Torgar_Idle_S3_A4_01">>
<<track "Torgar_Idle_S3_A4_02">>
<<track "Torgar_Idle_S3_A4_03">>
<</createplaylist>><<run setup.addLimbToRef("abdominals", {
name: "ab",
namePlural: "abs",
defaultNumber: 6,
naturalPair : true,
adjectives : {
small: ["pack", "chiselled", "defined", "washboard"],
medium: ["pack", "rock-hard", "strong", "rippling"],
large: ["pack", "brick-like", "huge", "wall of", "cinderblock"],
huge: ["pack", "impossibly huge", "colossal", "titanic", "vehicle sized"],
pure: ["veiny"],
corrupt: ["pulsating", "veiny"]
},
mutant: {
pointCost: 1,
unpairLevel: 6,
limits: [
// Limits of how many you can have:
// [Total Willing Cap, Total Actual Cap]
// Note that this does not override race, only gain of limbs
[10,12],
[10,12],
[12,14],
[14,16],
[16,18],
[18,22],
[50,100],
],
},
status: [
{type: "heightMods", mod: setup.mod.ADD, value: 2.5, max_value: 60},
{type: "maxHPMods", mod: setup.mod.ADD, value: 2.5, round_type: Math.floor},
]
})
>><<set setup.Anatomy = {
LIMB_REF: {},
LIMB_ORDERED_KV: [],
}
>>
/* Note: the order they are shown here is the order they will be presented to user */
<<include "_heads_anatomy_sheet">>
<<include "_ears_anatomy_sheet">>
<<include "_horns_anatomy_sheet">>
<<include "_eyes_anatomy_sheet">>
<<include "_jaws_anatomy_sheet">>
<<include "_tongues_anatomy_sheet">>
<<include "_teeths_anatomy_sheet">>
<<include "_wings_anatomy_sheet">>
<<include "_pecs_anatomy_sheet">>
<<include "_arms_anatomy_sheet">>
<<include "_hands_anatomy_sheet">>
<<include "_tentacles_anatomy_sheet">>
<<include "_abdominals_anatomy_sheet">>
<<include "_cocks_anatomy_sheet">>
<<include "_balls_anatomy_sheet">>
<<include "_legs_anatomy_sheet">>
<<include "_tails_anatomy_sheet">><<run setup.addLimbToRef("arms", {
name: "arm",
namePlural: "arms",
defaultNumber: 2,
naturalPair : true,
adjectives : {
small: ["athletic", "chiselled", "defined"],
medium: ["large", "bulky", "brawny"],
large: ["sizeable", "huge", "boulder-like", "skin-straining", "heavily muscled"],
huge: ["colossal", "titanic", "world ending", "building sized", "impossibly huge", "huge", "movement limiting"],
pure: ["vein-riddled", "strong", "beefy", "pumped"],
corrupt: ["pulsating", "vein-riddled", "ever growing", "strong", "beefy", "mutated"]
},
mutant: {
pointCost: 1,
unpairLevel: 4,
limits: [
// Limits of how many you can have:
// [Total Willing Cap, Total Actual Cap]
// Note that this does not override race, only gain of limbs
[2,4],
[2,4],
[4,8],
[6,10],
[6,12],
[10,16],
[20,40],
],
},
status: [
{type: "musclesMods", mod: setup.mod.ADD, value: 5, max_value: 40},
{type: "strengthMods", mod: setup.mod.ADD, value: 5, max_value: 50},
]
})
>><<run setup.addLimbToRef("balls", {
name: "ball",
namePlural: "balls",
defaultNumber: 2,
naturalPair : true,
adjectives : {
medium: ["large", "thigh-knocking", "grapefruit sized"],
large: ["floor dragging", "bloated"],
huge: ["massive", "huge", "building sized", "mountainous"],
pure: ["virile", "sloshing", "bloated"],
corrupt: ["pulsating", "vein-riddled", "over full", "egregious", "rumbling", "powerful", "corrupt"]
},
mutant: {
pointCost: 1,
unpairLevel: 3,
limits: [
// Limits of how many you can have:
// [Total Willing Cap, Total Actual Cap]
// Note that this does not override race, only gain of limbs
[4,6],
[4,8],
[6,10],
[8,12],
[10,14],
[14,18],
[40,80],
],
},
status: [
{type: "ballsMods", mod: setup.mod.MULTIPLYPOS, value: 0.025, max_value: 0.1},
{type: "arousalGainMods", mod: setup.mod.ADD, value: 2.5, max_value: 10},
]
})
>><<run setup.addLimbToRef("cocks", {
name: "penis",
namePlural: "penises",
defaultNumber: 1,
adjectives : {
small: ["fair", "impressive"],
medium: ["horse-sized", "arm-sized", "awe-inspiring", "incredibly big"],
large: ["huge", "hyper", "bloated", "vehicle sized", "wall breaking", "impossibly huge", "mammoth", "floor dragging", "cannon"],
huge: ["massive", "huge", "mountain sized", "world breaking", "ground-carving", "earth shaking", "god like", "village sized"],
pure: ["vein-riddled", "rigid", "leaking"],
corrupt: ["pulsating", "vein-riddled", "glowing", "leaking"]
},
mutant: {
pointCost: 2,
limits: [
// Limits of how many you can have:
// [Total Willing Cap, Total Actual Cap]
// Note that this does not override race, only gain of limbs
[2,3],
[2,3],
[3,6],
[5,7],
[9,11],
[15,27],
[50,100],
],
},
status: [
{type: "cockMods", mod: setup.mod.MULTIPLYPOS, value: 0.025, max_value: 0.1},
{type: "cockMods", mod: setup.mod.ADD, value: 5, max_value: 100},
]
})>><<run setup.addLimbToRef("ears", {
name: "ear",
namePlural: "ears",
defaultNumber: 2,
naturalPair : true,
perParent: "heads",
mutant: {
pointCost: 1,
unpairLevel: 3,
limits: [
// Limits of how many you can have:
// [Total Willing Cap, Total Actual Cap]
// Note that this does not override race, only gain of limbs
[2,4],
[4,6],
[4,8],
[6,10],
[8,12],
[10,14],
[20,60],
],
},
status: [
{type: "critChanceMods", mod: setup.mod.ADD, value: 0.025, max_value: 0.2},
]
})
>><<run setup.addLimbToRef("eyes", {
name: "eye",
namePlural: "eyes",
defaultNumber: 2,
naturalPair : true,
perParent: "heads",
adjectives: {
corrupt: ["glowing", "demonic", "fiery", "burning", "blazing"]
},
mutant: {
pointCost: 1,
unpairLevel: 2,
limits: [
// Limits of how many you can have:
// [Total Willing Cap, Total Actual Cap]
// Note that this does not override race, only gain of limbs
[2,4],
[2,6],
[4,8],
[6,8],
[6,10],
[8,12],
[20,40],
],
},
status: [
{type: "critChanceMods", mod: setup.mod.ADD, value: 0.025, max_value: 0.2},
]
})
>><<run setup.addLimbToRef("hands", {
name: "hand",
namePlural: "hands",
defaultNumber: 2,
naturalPair : true,
perParent: "arms",
descriptors : {
small: ["average"],
medium: ["meaty"],
large: ["huge"],
huge: ["massive"],
},
mutant: {
pointCost:1,
unlockLevel: 2,
unpairLevel: 6,
limits: [
// Limits of how many you can have:
// [Total Willing Cap, Total Actual Cap]
// Note that this does not override race, only gain of limbs
[2,2],
[2,2],
[2,2],
[2,2],
[2,2],
[2,2],
[20,40],
],
},
status: [
// Add "Quickness" = stamina
{type: "maxStaminaMods", mod: setup.mod.ADD, value: 5, max_value: 20},
]
})
>><<run setup.addLimbToRef("heads", {
name: "head",
namePlural: "heads",
defaultNumber: 1,
descriptors : {
medium: ["large"],
large: ["sizeable"],
huge: ["massive", "huge"],
},
adjectives: {
pure: ["rugged", "square-jawed"],
corrupt: ["rugged", "square-jawed"]
},
mutant: {
pointCost: 4,
limits: [
// Limits of how many you can have:
// [Total Willing Cap, Total Actual Cap]
// Note that this does not override race, only gain of limbs
[1,3],
[1,3],
[1,3],
[3,3],
[5,7],
[6,9],
[10,20],
],
},
status: [
{type: "maxHPMods", mod: setup.mod.ADD, value: 20},
{type: "essenceMultiplierMods", mod: setup.mod.ADD, value: 0.1},
]
})
>><<run setup.addLimbToRef("horns", {
name: "horn",
namePlural: "horns",
defaultNumber: 0,
naturalPair : true,
perParent: "heads",
adjectives: {
small: ["bulky"],
medium: ["heavy", "dangerous"],
large: ["massive", "incredibly heavy", "bulldozing"],
huge: ["colossal", "earth gouging"],
corrupt: ["cracked", "purple runed", "glowing"]
},
mutant: {
pointCost: 1,
unpairLevel: 2,
limits: [
// Limits of how many you can have:
// [Total Willing Cap, Total Actual Cap]
// Note that this does not override race, only gain of limbs
[2,6],
[2,6],
[4,8],
[6,10],
[8,12],
[10,20],
[50,100],
],
},
status: [
{type: "critChanceMods", mod: setup.mod.ADD, value: 0.025},
]
})
>><<run setup.addLimbToRef("jaws", {
name: "jaw",
namePlural: "jaws",
perParent: "heads",
defaultNumber: 1,
descriptors : {
small: ["defined"],
medium: ["square"],
large: ["powerful"],
huge: ["massive"],
},
mutant: {
pointCost: 2,
limits: [
// Limits of how many you can have:
// [Total Willing Cap, Total Actual Cap]
// Note that this does not override race, only gain of limbs
[1,1],
[1,1],
[1,1],
[1,1],
[1,1],
[2,3],
[4,10],
],
},
status: [
{type: "critChanceMods", mod: setup.mod.ADD, value: 0.05},
]
})
>><<run setup.addLimbToRef("legs", {
name: "leg",
namePlural: "legs",
defaultNumber: 2,
naturalPair : true,
adjectives : {
small: ["athletic", "chiselled", "defined"],
medium: ["large", "bulky", "brawny"],
large: ["sizeable", "huge", "thick", "skin-straining", "heavily muscled"],
huge: ["colossal", "titanic", "world ending", "building sized", "impossibly huge", "huge"],
pure: ["vein-riddled", "strong", "beefy"],
corrupt: ["pulsating", "vein-riddled"]
},
mutant: {
pointCost: 1,
unpairLevel: 5,
limits: [
// Limits of how many you can have:
// [Total Willing Cap, Total Actual Cap]
// Note that this does not override race, only gain of limbs
[2,2],
[2,2],
[2,2],
[2,2],
[2,2],
[2,4],
[10,20],
],
},
status: [
{type: "maxHPMods", mod: setup.mod.ADD, value: 5},
{type: "maxStaminaMods", mod: setup.mod.ADD, value: 5},
]
})
>><<run setup.addLimbToRef("pecs", {
name: "pec",
namePlural: "pecs",
defaultNumber: 2,
naturalPair : true,
adjectives : {
small: ["athletic", "chiselled", "defined", "square"],
medium: ["large", "bulky", "brawny", "well-built"],
large: ["sizeable", "shelf-like", "boulder sized", "vision limiting", "huge", "massive"],
huge: ["chin scraping", "mountain-like", "titanic", "heavily muscled"],
pure: ["vein-riddled", "strong", "beefy", "pumped"],
corrupt: ["pulsating", "vein-riddled", "ever growing", "strong", "beefy"]
},
mutant: {
pointCost: 1,
unpairLevel: 6,
limits: [
// Limits of how many you can have:
// [Total Willing Cap, Total Actual Cap]
// Note that this does not override race, only gain of limbs
[2,4],
[2,4],
[4,8],
[6,10],
[6,12],
[10,16],
[20,40],
],
},
status: [
{type: "musclesMods", mod: setup.mod.ADD, value: 5, max_value: 40},
{type: "maxHPMods", mod: setup.mod.ADD, value: 5},
]
})
>><<run setup.addLimbToRef("tails", {
name: "tail",
namePlural: "tails",
defaultNumber: 0,
adjectives : {
medium: ["large"],
large: ["sizeable", "sizable"],
huge: ["massive", "huge"],
corrupt: ["vein-riddled"]
},
mutant: {
pointCost: 2,
limits: [
// Limits of how many you can have:
// [Total Willing Cap, Total Actual Cap]
// Note that this does not override race, only gain of limbs
[1,3],
[1,3],
[3,6],
[6,9],
[9,12],
[10,15],
[20,100],
],
},
status: [
{type: "maxStaminaMods", mod: setup.mod.ADD, value: 5},
]
})
>><<run setup.addLimbToRef("teeths", {
name: "teeth",
namePlural: "rows of teeth",
perParent: "jaws",
defaultNumber: 1,
mutant: {
pointCost: 2,
limits: [
// Limits of how many you can have:
// [Total Willing Cap, Total Actual Cap]
// Note that this does not override race, only gain of limbs
[1,1],
[1,1],
[1,1],
[1,1],
[1,1],
[3,6],
[10,20],
],
},
status: [
{type: "critChanceMods", mod: setup.mod.ADD, value: 0.05},
]
})
>><<run setup.addLimbToRef("tentacles", {
name: "tentacle",
namePlural: "tentacles",
defaultNumber: 0,
mutant: {
pointCost: 1,
unpairLevel: 3,
limits: [
// Limits of how many you can have:
// [Total Willing Cap, Total Actual Cap]
// Note that this does not override race, only gain of limbs
[0,0],
[0,0],
[0,0],
[2,4],
[4,6],
[8,12],
[50,100],
],
},
status: [
{type: "corruptionMods", mod: setup.mod.ADD, value: 5},
{type: "corruptionPerDayMods", mod: setup.mod.ADD, value: 0.5, round_type: Math.floor},
]
})
>><<run setup.addLimbToRef("tongues", {
name: "tongue",
namePlural: "tongues",
defaultNumber: 1,
perParent: "jaws",
adjectives: {
small: ["normal sized"],
medium: ["long"],
large: ["elongated"],
huge: ["extensive", "huge"],
corrupt: ["slobbering", "dripping", "slimy"]
},
mutant: {
pointCost: 2,
limits: [
// Limits of how many you can have:
// [Total Willing Cap, Total Actual Cap]
// Note that this does not override race, only gain of limbs
[1,1],
[1,1],
[1,2],
[1,2],
[1,3],
[1,3],
[10,20],
],
},
status: [
{type: "arousalGainMods", mod: setup.mod.ADD, value: 5, max_value: 20},
]
})
>><<run setup.addLimbToRef("wings", {
name: "wing",
namePlural: "wings",
defaultNumber: 0,
naturalPair : true,
adjectives : {
small: ["magnificent"],
medium: ["monumental"],
large: ["massive"],
huge: ["titanic", "land eclipsing"],
},
mutant: {
pointCost: 2,
unpairLevel: 4,
limits: [
// Limits of how many you can have:
// [Total Willing Cap, Total Actual Cap]
// Note that this does not override race, only gain of limbs
[2,4],
[2,4],
[4,6],
[6,8],
[8,10],
[12,20],
[50,100],
],
},
status: [
{type: "maxStaminaMods", mod: setup.mod.ADD, value: 2.5, max_value: 20},
{type: "comboMovesPerTurnMods", mod: setup.mod.ADD, value: 0.1, round_type: Math.floor, max_value: 5}
]
})
>><<set setup.BodyVisualSheet_Abel =
{
emoteList:
{
normal:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Abel/Winty/Abel_Emote_Confident.png",
},
happy:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Abel/Winty/Abel_Emote_Smile.png",
},
angry:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Abel/Winty/Abel_Emote_Pissed.png",
},
blushing:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Abel/Winty/Abel_Emote_Blush.png",
},
worried:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Abel/Winty/Abel_Emote_Disappointed.png",
},
mad:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Abel/Winty/Abel_Corrupted_Expression_Mad.png",
},
},
cockList :
{
corrupted:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Abel/Winty/Abel_Corrupted_Penis.png",
},
},
bodyList :
{
apprentice:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Abel/Winty/Abel_Body.png",
condition: function(character)
{
return character.quest.naked == false && character.quest.deepCorruption == false;
},
headClass: "AbelHead",
permittedAccessories: [
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Abel/Winty/Abel_Arm_Fighter.png",
accessoryClass: "AbelStaff",
condition: function(character)
{
return true;
},
},
],
permittedCocks: [],
},
naked:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Abel/Winty/Abel_Lewd_Body.png",
condition: function(character)
{
return character.quest.naked == true && character.quest.deepCorruption == false;
},
headClass: "AbelHead",
permittedAccessories: [
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Abel/Winty/Abel_Lewd_Arm.png",
accessoryClass: "AbelStaff",
condition: function(character)
{
return true;
},
},
],
permittedCocks: [],
},
corrupted:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Abel/Winty/Abel_Corrupted_Body.png",
condition: function(character)
{
return character.quest.deepCorruption == true;
},
headClass: "AbelCorruptedHead",
permittedAccessories: [],
permittedCocks: [
{
cock: "corrupted",
cockClass: "AbelCorruptedCock",
condition: function(character)
{
return true;
},
},],
},
},
}>><<set setup.FighterSheet_Abel =
{
hp: 60,
stamina: 0,
strength: 70,
critChance: 70,
critDamage: 2.50,
arousalGain: 0,
minArousal: 0,
growthMultiplier: 1,
bonusGrowth: {
height: 0,
cock: 0,
muscles: 0,
balls: 0,
},
staminaRecovery: 12,
variables: $FightVariables,
fightMoveIDs: [setup.FightMove_DragonStrike.id, setup.FightMove_Basic_Attack.id],
fightReward: setup.RewardTier.VERY_HIGH,
canMimic: true,
encounterIntroText: "",
encounterStartText: "",
outcomePlayerWins: "",
outcomePlayerLoses: "",
teammateSettings:
{
attackTiming: setup.AttackTiming.BEFORE_PLAYER,
},
}>><<set setup.InfoSheet_Abel =
{
name: "Abel",
gender: "male",
bodyVisual: "BodyVisualSheet_Abel",
corruption: 0,
muscles: 20,
height: 74,
cock: 6,
balls: 2,
known: setup.EncounterKnownState.UNKNOWN,
location: setup.LOCATIONS.VILLAGE,
raceId: setup.RacePool.FELINE.id,
anatomy: {
eyes: {
colour: setup.ColourPool.PURPLE
},
tongues: {
colour: setup.ColourPool.RED
},
},
// NPCs ignore certain racial mods,
// typically relating to size, since that is already specified.
ignoreRacials: [
"ballsMods",
"cockMods",
"heightMods"
],
alive: true
}>><<include "_abel_body_visual">>
<<include "_abel_text_sheet">>
<<include "_abel_fight_sheet">>
<<include "_abel_info_sheet">>
<<include "_abel_quest_sheet">>
<<include "_abel_story_sheet">>
<<set $CharacterSheet_Abel = setup.CharacterFactory.createCharacter({id: "CharacterSheet_Abel",
info: setup.InfoSheet_Abel,
fight: setup.FighterSheet_Abel,
quest: setup.QuestSheet_Abel,
text: "TextSheet_Abel"})>>
<<run $CharacterSheet_Abel.applyAbilityRuntimeData(setup.Ability_Disciplined)>>
<<run $CharacterSheet_Abel.applyAbilityRuntimeData(setup.Ability_Disciplined)>>
<<run $CharacterSheet_Abel.applyAbilityRuntimeData(setup.Ability_Disciplined)>>
<<run $CharacterSheet_Abel.applyAbilityRuntimeData(setup.Ability_Disciplined)>>
<<run $CharacterSheet_Abel.applyAbilityRuntimeData(setup.Ability_Disciplined)>>
<<run $CharacterSheet_Abel.applyAbilityRuntimeData(setup.Ability_Disciplined)>>
<<run $CharacterSheet_Abel.applyAbilityRuntimeData(setup.Ability_Disciplined)>>
<<run $CharacterSheet_Abel.applyAbilityRuntimeData(setup.Ability_Disciplined)>>
<<run $CharacterSheet_Abel.applyAbilityRuntimeData(setup.Ability_Disciplined)>>
<<run $CharacterSheet_Abel.applyAbilityRuntimeData(setup.Ability_Disciplined)>>
<<run $CharacterSheet_Abel.applyAbilityRuntimeData(setup.Ability_PiercingPrecision)>>
<<run $CharacterSheet_Abel.applyAbilityRuntimeData(setup.Ability_PiercingPrecision)>>
<<run $CharacterSheet_Abel.applyAbilityRuntimeData(setup.Ability_PiercingPrecision)>>
<<run $CharacterSheet_Abel.applyAbilityRuntimeData(setup.Ability_PiercingPrecision)>>
<<run $CharacterSheet_Abel.applyAbilityRuntimeData(setup.Ability_PiercingPrecision)>><<set setup.QuestSheet_Abel =
{
playedHouseIntro: false,
corrupted: false,
deepCorruption: false,
relationship: 0,
naked: false,
available_houseIntro_attackGuard: true,
available_houseIntro_baseFirstDialogue: true,
available_flavourDialogue_introTellAll: true,
available_flavourDialogue_talkAboutCray: true,
available_flavourDialogue_talkAboutEldest: true,
available_flavourDialogue_talkAboutTheBind: true,
available_flavourDialogue_firstCorruption: true,
available_flavourDialogue_deepCorruption: true,
available_flavourDialogue_inspectMaxRela: true,
available_flavourDialogue_sexMaxRela: false,
available_flavourDialogue_sexMaxRela_daily: true,
available_flavourDialogue_talisman: true,
available_nyxDialogue_mentionNyx: true,
available_nyxDialogue_lastMissingShard: true,
available_nyxDialogue_firstMissingShard: true,
available_crayDialogue_dayLeft: true,
available_crayDialogue_whereabouts: true,
available_crayDialogue_motives: true,
available_crayDialogue_villageLife: true,
available_crayDialogue_achievements: true,
available_heraldDialogue_duty: true,
available_heraldDialogue_eldest: true,
}>><<set setup.StorySheet_Abel =
{
houseIntro:
{
attackGuard:
{
available: function()
{
return State.variables.CharacterSheet_Abel.quest.available_houseIntro_attackGuard;
},
condition: function()
{
return State.variables.CharacterSheet_town_guard.quest.beatenOnce && !State.variables.CharacterSheet_Abel.quest.playedHouseIntro && State.variables.CharacterSheet_Player.hasAbility("Ability_HostOfEcho");
},
passage: "abelHouseIntro_firstDialogueAttackedGuard_link",
},
baseFirstDialogue:
{
available: function()
{
return State.variables.CharacterSheet_Abel.quest.available_houseIntro_baseFirstDialogue;
},
condition: function()
{
return !State.variables.CharacterSheet_Abel.quest.playedHouseIntro && State.variables.CharacterSheet_Player.hasAbility("Ability_HostOfEcho");
},
passage: "abelHouseIntro_firstDialogue_link",
},
},
flavourDialogue:
{
introTellAll:
{
available: function()
{
return State.variables.CharacterSheet_Abel.quest.available_flavourDialogue_introTellAll;
},
condition: function()
{
return State.variables.CharacterSheet_Abel.quest.playedHouseIntro;
},
passage: "abelHouseIntro_tellAll_link",
},
talkAboutCray:
{
available: function()
{
return true;
},
condition: function()
{
return setup.hasAvailableNarativeEvent(setup.StorySheet_Abel.crayDialogue);
},
inactive: function()
{
return false;
},
passage: "abelHouseDialogue_aboutCray_link",
inactiveReason: "The reason it is inactive",
},
talkAboutEldest:
{
available: function()
{
return true;
},
condition: function()
{
return setup.hasAvailableNarativeEvent(setup.StorySheet_Abel.heraldDialogue);
},
passage: "abelHouseDialogue_Herald_link",
},
talkAboutTheBind:
{
available: function()
{
return State.variables.CharacterSheet_Abel.quest.available_flavourDialogue_talkAboutTheBind;
},
condition: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.met == true;
},
passage: "abelHouseDialogue_aboutTheBind_link",
},
firstCorruption:
{
available: function()
{
return State.variables.CharacterSheet_Abel.quest.available_flavourDialogue_firstCorruption;
},
condition: function()
{
return setup.getStatValue(State.variables.CharacterSheet_Player, "corruption") > 0;
},
passage: "abelHouseDialogue_OfferCure_Link",
},
deepCorruption:
{
available: function()
{
return State.variables.CharacterSheet_Abel.quest.available_flavourDialogue_deepCorruption;
},
condition: function()
{
return setup.getStatValue(State.variables.CharacterSheet_Abel, "corruption") > 150;
},
passage: "abelHouseDialogue_DeepCorruption_Link",
},
inspectMaxRela:
{
available: function()
{
return State.variables.CharacterSheet_Abel.quest.available_flavourDialogue_inspectMaxRela;
},
condition: function()
{
return State.variables.CharacterSheet_Abel.quest.relationship >= 2 && State.variables.Expedition >= 10;
},
passage: "abelHouseDialogue_InspectMaxRela_Link",
},
sexMaxRela:
{
available: function()
{
return State.variables.CharacterSheet_Abel.quest.available_flavourDialogue_sexMaxRela;
},
condition: function()
{
return State.variables.CharacterSheet_Abel.quest.available_flavourDialogue_sexMaxRela_daily;
},
passage: "abelHouseDialogue_InspectMaxRela_Sex_Link",
},
},
crayDialogue:
{
whereabouts:
{
available: function()
{
return State.variables.CharacterSheet_Abel.quest.available_crayDialogue_whereabouts;
},
condition: function()
{
return true;
},
passage: "abelHouseDialogue_aboutCray_whereabouts_link",
},
dayLeft:
{
available: function()
{
return State.variables.CharacterSheet_Abel.quest.available_crayDialogue_dayLeft;
},
condition: function()
{
return true;
},
passage: "abelHouseDialogue_aboutCray_dayLeft_link",
},
motives:
{
available: function()
{
return State.variables.CharacterSheet_Abel.quest.available_crayDialogue_motives;
},
condition: function()
{
return true;
},
passage: "abelHouseDialogue_aboutCray_motives_link",
},
villageLife:
{
available: function()
{
return State.variables.CharacterSheet_Abel.quest.available_crayDialogue_villageLife;
},
condition: function()
{
return true;
},
passage: "abelHouseDialogue_aboutCray_villageLife_link",
},
achievements:
{
available: function()
{
return State.variables.CharacterSheet_Abel.quest.available_crayDialogue_achievements;
},
condition: function()
{
return true;
},
passage: "abelHouseDialogue_aboutCray_achievements_link",
},
},
heraldDialogue:
{
duty:
{
available: function()
{
return State.variables.CharacterSheet_Abel.quest.available_heraldDialogue_duty;
},
condition: function()
{
return true;
},
passage: "abelHouseDialogue_Herald_duty_link",
},
eldest:
{
available: function()
{
return State.variables.CharacterSheet_Abel.quest.available_heraldDialogue_eldest;
},
condition: function()
{
return true;
},
passage: "abelHouseDialogue_Herald_eldest_link",
},
},
nyxDialogue:
{
mentionNyx:
{
available: function()
{
return State.variables.CharacterSheet_Abel.quest.available_nyxDialogue_mentionNyx == true;
},
condition: function()
{
return State.variables.CharacterSheet_Player.quest.knowsAboutNyx == true;
},
passage: "abelNyxDialogue_MentionNyx_link",
},
whoHoldShards:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Player.quest.hasIncompleteEyeOfTheVoid == true;
},
passage: "abelNyxDialogue_MissingShards_Link",
},
firstMissingShard:
{
available: function()
{
return State.variables.CharacterSheet_Abel.quest.available_nyxDialogue_firstMissingShard == true;
},
condition: function()
{
return State.variables.CharacterSheet_Player.quest.hasIncompleteEyeOfTheVoid == true && State.variables.CharacterSheet_Player.quest.gatheredShard > 0 && State.variables.CharacterSheet_Player.quest.givenShards == 0;
},
passage: "abelNyxDialogue_GiveFirstShard_Link",
},
lastMissingShard:
{
available: function()
{
return State.variables.CharacterSheet_Abel.quest.available_nyxDialogue_lastMissingShard == true;
},
condition: function()
{
return State.variables.CharacterSheet_Player.quest.hasIncompleteEyeOfTheVoid == true && State.variables.CharacterSheet_Player.quest.gatheredShard > 0 && State.variables.CharacterSheet_Player.quest.givenShards == 1;
},
passage: "abelNyxDialogue_GiveLastShard_Link",
},
},
}>><<set setup.TextSheet_Abel =
{
}>><<set setup.BodyVisualSheet_Apothus =
{
emoteList:
{
normal:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Apothus/V2/Apothus_V2_emote_smile.png",
},
blushing:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Apothus/V2/Apothus_V2_emote_blush.png",
},
angry:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Apothus/V2/Apothus_V2_emote_mad.png",
},
grumpy:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Apothus/V2/Apothus_V2_emote_grump.png",
},
licky:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Apothus/V2/Apothus_V2_emote_tongue.png",
},
mischievious:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Apothus/V2/Apothus_V2_emote_grin.png",
},
},
cockList :
{
robed:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Apothus/V2/Apothus_V2_clothing.png",
},
naked:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Apothus/V2/Apothus_V2_cock.png",
},
},
bodyList :
{
normal:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Apothus/V2/Apothus_V2_body.png",
condition: function(character)
{
return true;
},
headClass: "ApothusHead",
permittedCocks: [
{
cock: "robed",
cockClass: "ApothusBody",
condition: function(character)
{
return character.quest.arousalProgress == setup.Apothus_Arousal.NORMAL;
},
},
{
cock: "naked",
cockClass: "ApothusBody",
condition: function(character)
{
return character.quest.arousalProgress != setup.Apothus_Arousal.NORMAL;
},
},
],
},
},
}>><<set setup.FighterSheet_Apothus =
{
hp: 700,
stamina: 0,
strength: 100,
critChance: 40,
critDamage: 1.50,
arousalGain: 60,
minArousal: 0,
growthMultiplier: 1,
bonusGrowth: {
height: 0,
cock: 0,
muscles: 0,
balls: 0,
},
staminaRecovery: 12,
variables: $FightVariables,
fightMoveIDs: [setup.FightMove_Basic_Attack.id, setup.FightMove_SummonParasite.id],
fightReward: setup.RewardTier.VERY_HIGH,
canMimic: false,
encounterIntroText: "<<include Quest_MQ002_ApothusEncounter_FightIntro>>",
encounterStartText: "<<include Quest_MQ002_ApothusEncounter_FightStart>>",
outcomePlayerWins: "<<include Quest_MQ002_ApothusEncounter_PlayerWins>>",
outcomePlayerLoses: "<<include Quest_MQ002_ApothusEncounter_PlayerLoses>>"
}>><<set setup.InfoSheet_Apothus =
{
name: "Apothus",
gender: "male",
bodyVisual: "BodyVisualSheet_Apothus",
corruption: 700,
muscles: 80,
height: 156,
cock: 19,
balls: 7,
known: setup.EncounterKnownState.UNKNOWN,
location: setup.LOCATIONS.CASTLE,
raceId: setup.RacePool.DEFAULT.id,
anatomy: {
eyes: {
colour: setup.ColourPool.PURPLE
},
horns: {
number: 2,
},
tongues:{
colour: setup.ColourPool.RED
},
},
// NPCs ignore certain racial mods,
// typically relating to size, since that is already specified.
ignoreRacials: [
"ballsMods",
"cockMods",
"heightMods"
],
alive: true
}>><<include "_apothus_text_sheet">>
<<include "_apothus_body_visual">>
<<include "_apothus_fight_sheet">>
<<include "_apothus_info_sheet">>
<<include "_apothus_quest_sheet">>
<<set $CharacterSheet_Apothus = setup.CharacterFactory.createCharacter({id: "CharacterSheet_Apothus",
info: setup.InfoSheet_Apothus,
fight: setup.FighterSheet_Apothus,
quest: setup.QuestSheet_Apothus,
text: "TextSheet_Apothus"})>>
<<run $CharacterSheet_Apothus.applyAbilityRuntimeData(setup.Ability_Masochism)>>
<<run $CharacterSheet_Apothus.applyAbilityRuntimeData(setup.Ability_AppetiteForGrowth_2)>>
<<run $CharacterSheet_Apothus.applyAbilityRuntimeData(setup.Ability_BrinkOfMadness)>><<set setup.Apothus_Arousal =
{
NORMAL: 0,
REVEALING: 1,
NAKED: 1,
}>>
<<set setup.QuestSheet_Apothus =
{
met: false,
askedAboutHim: false,
arousalProgress: setup.Apothus_Arousal.NORMAL,
}>><<set setup.TextSheet_Apothus =
{
}>><<set setup.FighterSheet_Apothus_2nd_Form =
{
hp: 1200,
stamina: 0,
strength: 100,
critChance: 0,
critDamage: 1.50,
arousalGain: 60,
minArousal: 0,
growthMultiplier: 1,
bonusGrowth: {
height: 0,
cock: 0,
muscles: 0,
balls: 0,
},
staminaRecovery: 30,
variables: $FightVariables,
fightMoveIDs: [setup.FightMove_Infest.id, setup.FightMove_ConsumeLost.id, setup.FightMove_SeedOfRuin.id],
fightReward: setup.RewardTier.VERY_HIGH,
canMimic: false,
encounterIntroText: "<<include Quest_MQ002_Apothus_2nd_Form_Encounter_FightIntro>>",
encounterStartText: "<<include Quest_MQ002_Apothus_2nd_Form_Encounter_FightStart>>",
outcomePlayerWins: "<<include Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerWins>>",
outcomePlayerLoses: "<<include Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerLoses>>"
}>><<set setup.InfoSheet_Apothus_2nd_Form =
{
name: "Apothus",
gender: "male",
picture: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Apothus/V2/Boss/Apothus_Corruptor_BG.png",
corruption: 1200,
muscles: 80,
height: 156,
cock: 19,
balls: 7,
raceId: setup.RacePool.DEFAULT.id,
anatomy: {
eyes: {
colour: setup.ColourPool.PURPLE
},
horns: {
number: 2,
},
tongues:{
colour: setup.ColourPool.RED
},
},
// NPCs ignore certain racial mods,
// typically relating to size, since that is already specified.
ignoreRacials: [
"ballsMods",
"cockMods",
"heightMods"
],
alive: true
}>><<include "_apothus_2nd_form_text_sheet">>
<<include "_apothus_2nd_form_fight_sheet">>
<<include "_apothus_2nd_form_info_sheet">>
<<include "_apothus_2nd_form_quest_sheet">>
<<set $CharacterSheet_Apothus_2nd_Form = setup.CharacterFactory.createCharacter({id: "CharacterSheet_Apothus_2nd_Form",
info: setup.InfoSheet_Apothus_2nd_Form,
fight: setup.FighterSheet_Apothus_2nd_Form,
quest: setup.QuestSheet_Apothus_2nd_Form,
text: "TextSheet_Apothus_2nd_Form"})>>
<<run $CharacterSheet_Apothus_2nd_Form.applyAbilityRuntimeData(setup.Ability_AppetiteForGrowth_2)>>
<<run $CharacterSheet_Apothus_2nd_Form.applyAbilityRuntimeData(setup.Ability_HerculeanBuild)>>
<<run $CharacterSheet_Apothus_2nd_Form.applyAbilityRuntimeData(setup.Ability_NeverendingGrowth)>>
<<run $CharacterSheet_Apothus_2nd_Form.applyAbilityRuntimeData(setup.Ability_VigorOfTheEndowed_2)>>
<<run $CharacterSheet_Apothus_2nd_Form.applyAbilityRuntimeData(setup.Ability_KalethsFervour)>>
<<run $CharacterSheet_Apothus_2nd_Form.applyAbilityRuntimeData(setup.Ability_LastStand)>>
<<run $CharacterSheet_Apothus_2nd_Form.applyAbilityRuntimeData(setup.Ability_SombrevesWhisper)>>
<<run $CharacterSheet_Apothus_2nd_Form.applyAbilityRuntimeData(setup.Ability_Masochism)>>
<<run $CharacterSheet_Apothus_2nd_Form.applyAbilityRuntimeData(setup.Ability_UnstoppableExpansion)>><<set setup.QuestSheet_Apothus_2nd_Form =
{
met: false,
askedAboutHim: false,
}>><<set setup.TextSheet_Apothus_2nd_Form =
{
}>>/* Dependant on Sheets_Races */
<<set $characterList = [];>>
<<include Sheets_Player>>
<<include Sheets_Imp>>
<<include Sheets_Ethrex>>
<<include Sheets_Lost_Entity>>
<<include Sheets_Lost_Harbinger>>
<<include Sheets_Swarm>>
<<include Sheets_Lost_Naga>>
<<include Sheets_town_guard>>
<<include Sheets_MQ002_Guard>>
<<include Sheets_MQ002_NyxParasite>>
<<include Sheets_MQ002_DragonMonk>>
<<include Sheets_Doppleganger>>
<<include Sheets_Apothus>>
<<include Sheets_Apothus_2nd_Form>>
<<include Sheets_God_Beast>>
<<include Sheets_Slime>>
<<include Sheets_Wounded_Lost>>
<<include Sheets_Jorm>>
<<include Sheets_Abel>>
<<include Sheets_Torgar>>
<<include Sheets_Herald>>
<<include Sheets_Shard_Ring>>
<<include Sheets_Lukka>>
<<include Sheets_Lost_Prisoner>><<set setup.AudioSheet_Doppleganger =
{
}>><<set setup.FighterSheet_Doppleganger =
{
hp: 64,
stamina: 8,
strength: 10,
critChance: 0,
critDamage: 1.50,
arousalGain: 20,
growthMultiplier: 1,
bonusGrowth: {
height: 0,
cock: 0,
muscles: 0,
balls: 0,
},
minArousal: 0,
staminaRecovery: 4,
variables: $FightVariables,
fightMoveIDs: [],
fightReward: setup.RewardTier.VERY_HIGH,
canMimic: true,
encounterIntroText: "<<include Encounter_Intro_Doppleganger>>",
encounterStartText: "<<include Encounter_Start_Doppleganger>>",
outcomePlayerWins: "<<include Encounter_Win_Doppleganger>>",
outcomePlayerLoses: "<<include Encounter_Loss_Doppleganger>>",
}>><<set setup.InfoSheet_Doppleganger =
{
name: "Doppleganger",
gender: "male",
audioSheet: "AudioSheet_Doppleganger",
corruption: 50,
muscles: 0,
height: 48,
cock: 10,
balls: 3,
alive: true,
known: setup.EncounterKnownState.UNKNOWN,
location: setup.LOCATIONS.CASTLE,
raceId: setup.RacePool.INCUBUS.id,
anatomy: {
horns: {
number: 2,
},
wings: {
number: 2,
raceId: setup.RacePool.INCUBUS.id,
},
},
ignoreRacials: [],
}>><<include "_doppleganger_audio">>
<<include "_doppleganger_text_sheet">>
<<include "_doppleganger_fight_sheet">>
<<include "_doppleganger_info_sheet">>
<<include "_doppleganger_quest_sheet">>
<<include "_doppleganger_story_sheet">>
<<set $CharacterSheet_Doppleganger = setup.CharacterFactory.createCharacter({id: "CharacterSheet_Doppleganger",
info: setup.InfoSheet_Doppleganger,
fight: setup.FighterSheet_Doppleganger,
quest: setup.QuestSheet_Doppleganger,
text: "TextSheet_Doppleganger"})>><<set setup.Doppleganger_CorruptionState =
{
PURE: 0,
CORRUPTED: 1,
}>>
<<set setup.QuestSheet_Doppleganger =
{
met: false,
corruptionState: setup.Doppleganger_CorruptionState.PURE,
available_encounterPassages_pure: true,
available_encounterPassages_corrupted: true,
available_postFightPassagesWin_pure: true,
available_postFightPassagesWin_corrupted: true,
available_postFightPassagesLoss_pure: true,
available_postFightPassagesLoss_corrupted: true,
}>><<set setup.StorySheet_Doppleganger =
{
encounterPassages:
{
pure:
{
available: function()
{
return State.variables.CharacterSheet_Doppleganger.quest.available_encounterPassages_pure;
},
condition: function()
{
return State.variables.CharacterSheet_Doppleganger.quest.corruptionState == setup.Doppleganger_CorruptionState.PURE;
},
passage: "Doppleganger_Intro_Pure",
},
corrupted:
{
available: function()
{
return State.variables.CharacterSheet_Doppleganger.quest.available_encounterPassages_corrupted;
},
condition: function()
{
return State.variables.CharacterSheet_Doppleganger.quest.corruptionState == setup.Doppleganger_CorruptionState.CORRUPTED;
},
passage: "Doppleganger_Intro_Corrupted",
},
},
postFightPassagesWin:
{
pure:
{
available: function()
{
return State.variables.CharacterSheet_Doppleganger.quest.available_postFightPassagesWin_pure;
},
condition: function()
{
return State.variables.CharacterSheet_Doppleganger.quest.corruptionState == setup.Doppleganger_CorruptionState.PURE;
},
passage: "Doppleganger_Win_Pure",
},
corrupted:
{
available: function()
{
return State.variables.CharacterSheet_Doppleganger.quest.available_postFightPassagesWin_corrupted;
},
condition: function()
{
return State.variables.CharacterSheet_Doppleganger.quest.corruptionState == setup.Doppleganger_CorruptionState.CORRUPTED;
},
passage: "Doppleganger_Win_Corrupted",
},
},
postFightPassagesLoss:
{
pure:
{
available: function()
{
return State.variables.CharacterSheet_Doppleganger.quest.available_postFightPassagesLoss_pure;
},
condition: function()
{
return State.variables.CharacterSheet_Doppleganger.quest.corruptionState == setup.Doppleganger_CorruptionState.PURE;
},
passage: "Doppleganger_Loss_Pure",
},
corrupted:
{
available: function()
{
return State.variables.CharacterSheet_Doppleganger.quest.available_postFightPassagesLoss_corrupted;
},
condition: function()
{
return State.variables.CharacterSheet_Doppleganger.quest.corruptionState == setup.Doppleganger_CorruptionState.CORRUPTED;
},
passage: "Doppleganger_Loss_Corrupted",
},
},
}>><<set setup.TextSheet_Doppleganger =
{
}>><<set setup.BodyVisualSheet_MQ002_DragonMonk =
{
emoteList:
{
playful:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Drenth/Dragonborn_Emote_Playful.png",
},
angry:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Drenth/Dragonborn_Emote_Angy.png",
},
blushing:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Drenth/Dragonborn_Emote_Aroused.png",
},
almostCumming:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Drenth/Dragonborn_Emote_Getting_There.png",
},
cumming:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Drenth/Dragonborn_Emote_Got_There.png",
},
happy:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Drenth/Dragonborn_Emote_Happy.png",
},
},
cockList :
{
},
bodyList :
{
normal:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Drenth/Dragonborn_Base.png",
condition: function(character)
{
return true;
},
headClass: "DrenthHead",
permittedAccessories:
[
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Drenth/Dragonborn_Chain.png",
accessoryClass: "DrenthChains",
condition: function(character)
{
return character.quest.naked == false;
},
},
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Drenth/Dragonborn_Hand_and_Gold.png",
accessoryClass: "DrenthGold",
condition: function(character)
{
return true;
},
},
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Drenth/Dragonborn_Clothing.png",
accessoryClass: "DrenthClothes",
condition: function(character)
{
return character.quest.naked == false;
},
},
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Drenth/Dragonborn_Cock.png",
accessoryClass: "DrenthCock",
condition: function(character)
{
return character.quest.naked == true;
},
},
],
permittedCocks: [],
},
},
}>><<set setup.FighterSheet_MQ002_DragonMonk =
{
hp: 700,
stamina: 0,
strength: 70,
critChance: 10,
critDamage: 1.50,
arousalGain: 60,
minArousal: 20,
growthMultiplier: 1,
bonusGrowth: {
height: 0,
cock: 0,
muscles: 0,
balls: 0,
},
staminaRecovery: 12,
variables: $FightVariables,
fightMoveIDs: [setup.FightMove_Basic_Attack.id, setup.FightMove_Parry.id, setup.FightMove_DragonStrike.id],
fightReward: setup.RewardTier.VERY_HIGH,
canMimic: true,
encounterIntroText: "<<include Quest_MQ002_DragonMonkEncounter_FightIntro>>",
encounterStartText: "<<include Quest_MQ002_DragonMonkEncounter_FightStart>>",
outcomePlayerWins: "<<include Quest_MQ002_DragonMonkEncounter_PlayerWins>>",
outcomePlayerLoses: "<<include Quest_MQ002_DragonMonkEncounter_PlayerLoses>>"
}>><<set setup.InfoSheet_MQ002_DragonMonk =
{
name: "Drenth",
gender: "male",
bodyVisual: "BodyVisualSheet_MQ002_DragonMonk",
pictureCorrupt: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Drenth/Dragonborn_Corrupted.png",
corruption: 300,
muscles: 60,
height: 96,
cock: 13,
balls: 5,
raceId: setup.RacePool.DRAGONBORN.id,
known: setup.EncounterKnownState.UNKNOWN,
location: setup.LOCATIONS.CASTLE,
anatomy: {
heads: {
colour: setup.ColourPool.BLUE,
},
eyes: {
colour: setup.ColourPool.GREEN,
},
hands: {
colour: setup.ColourPool.BLUE,
},
wings: {
colour: setup.ColourPool.BLUE,
},
tongues:{
colour: setup.ColourPool.RED,
},
arms: {
colour: setup.ColourPool.BLUE,
},
pecs: {
colour: setup.ColourPool.BLUE,
},
abdominals: {
colour: setup.ColourPool.BLUE,
},
balls: {
colour: setup.ColourPool.BLUE,
},
legs: {
colour: setup.ColourPool.BLUE,
},
tails: {
colour: setup.ColourPool.BLUE,
},
},
// NPCs ignore certain racial mods,
// typically relating to size, since that is already specified.
ignoreRacials: [
"ballsMods",
"cockMods",
"heightMods"
],
alive: true
}>><<include "_dragon_monk_body_visual">>
<<include "_dragon_monk_text_sheet">>
<<include "_dragon_monk_fight_sheet">>
<<include "_dragon_monk_info_sheet">>
<<include "_dragon_monk_quest_sheet">>
<<include "_dragon_monk_story_sheet">>
<<set $CharacterSheet_MQ002_DragonMonk = setup.CharacterFactory.createCharacter({id: "CharacterSheet_MQ002_DragonMonk",
info: setup.InfoSheet_MQ002_DragonMonk,
fight: setup.FighterSheet_MQ002_DragonMonk,
quest: setup.QuestSheet_MQ002_DragonMonk,
text: "TextSheet_MQ002_DragonMonk"})>><<set setup.QuestSheet_MQ002_DragonMonk =
{
met: false,
threatened: false,
askedWhoAreYou: false,
askedWhyAreYouHere: false,
askedLookingForSomeone: false,
infected: false,
infected_GloryRoom: false,
came_GloryRoom: false,
naked: false,
beaten: false,
beatenCycle: 0,
available_encounterPassages_firstTime: true,
available_encounterPassages_main: true,
}>><<set setup.StorySheet_MQ002_DragonMonk =
{
encounterPassages:
{
firstTime_infected:
{
available: function()
{
return State.variables.CharacterSheet_MQ002_DragonMonk.quest.available_encounterPassages_firstTime;
},
condition: function()
{
return State.variables.CharacterSheet_MQ002_DragonMonk.quest.infected_GloryRoom;
},
passage: "WestWing_DrenthRoom_FirstTime_Infected",
},
firstTime_came:
{
available: function()
{
return State.variables.CharacterSheet_MQ002_DragonMonk.quest.available_encounterPassages_firstTime;
},
condition: function()
{
return State.variables.CharacterSheet_MQ002_DragonMonk.quest.came_GloryRoom;
},
passage: "WestWing_DrenthRoom_FirstTime_Came",
},
firstTime:
{
available: function()
{
return State.variables.CharacterSheet_MQ002_DragonMonk.quest.available_encounterPassages_firstTime;
},
condition: function()
{
return true;
},
passage: "WestWing_DrenthRoom_FirstTime",
},
main:
{
available: function()
{
return State.variables.CharacterSheet_MQ002_DragonMonk.quest.available_encounterPassages_main;
},
condition: function()
{
return true;
},
passage: "Quest_MQ002_Manor_DragonRoom_Enter",
},
},
gloryHoleStartPassage:
{
absent:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_MQ002_DragonMonk.quest.beaten == true || State.variables.CharacterSheet_MQ002_DragonMonk.quest.infected == true;
},
passage: "WestWing_GloryHole_Absent",
},
present:
{
available: function()
{
return true;
},
condition: function()
{
return true;
},
passage: "WestWing_GloryHole_Present",
},
},
gloryHoleCumPassages:
{
infest:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Player.quest.nyxParasiteInfections > 0;
},
passage: "WestWing_GloryHole_Infect",
},
clean_gigantic:
{
available: function()
{
return true;
},
condition: function()
{
return setup.MQ002_Manor_IsCockGiganticInManor(State.variables.CharacterSheet_Player);
},
passage: "WestWing_GloryHole_11_Gigantic_Cum",
},
clean_massive:
{
available: function()
{
return true;
},
condition: function()
{
return setup.MQ002_Manor_IsCockMassiveInManor(State.variables.CharacterSheet_Player);
},
passage: "WestWing_GloryHole_11_Massive_Cum",
},
clean_normal:
{
available: function()
{
return true;
},
condition: function()
{
return true;
},
passage: "WestWing_GloryHole_11_Normal_Cum",
},
},
}>><<set setup.TextSheet_MQ002_DragonMonk =
{
}>><<set setup.FighterSheet_Ethrex =
{
hp: 200,
stamina: 0,
strength: 50,
critChance: 20,
critDamage: 1.50,
arousalGain: 20,
minArousal: 0,
growthMultiplier: 1,
bonusGrowth: {
height: 0,
cock: 0,
muscles: 0,
balls: 0,
},
staminaRecovery: 14,
variables: $FightVariables,
fightMoveIDs: [setup.FightMove_Basic_Attack.id, setup.FightMove_IncubusCall.id, setup.FightMove_IncubusStrike.id],
fightReward: setup.RewardTier.MEDIUM,
canMimic: true,
encounterIntroText: "<<include Encounter_Intro_Ethrex_Container>>",
encounterStartText: "<<include Encounter_Start_Ethrex>>",
outcomePlayerWins: "<<include Encounter_Win_Ethrex_Container>>",
outcomePlayerLoses: "<<include Encounter_Loss_Ethrex_Container>>",
teammateSettings:
{
attackTiming: setup.AttackTiming.BEFORE_PLAYER,
},
}>><<set setup.InfoSheet_Ethrex =
{
name: "Ethrex",
gender: "male",
corruption: 400,
muscles: 0,
height: 68,
cock: 9,
balls: 4,
alive: true,
known: setup.EncounterKnownState.UNKNOWN,
location: setup.LOCATIONS.EAST,
raceId: setup.RacePool.INCUBUS.id,
// NPCs ignore certain racial mods,
// typically relating to size, since that is already specified.
ignoreRacials: [
"ballsMods",
"cockMods",
"heightMods"
],
}>><<include "_ethrex_fight_sheet">>
<<include "_ethrex_info_sheet">>
<<include "_ethrex_quest_sheet">>
<<include "_ethrex_story_sheet">>
<<set $CharacterSheet_Ethrex = setup.CharacterFactory.createCharacter({id: "CharacterSheet_Ethrex",
info: setup.InfoSheet_Ethrex,
fight: setup.FighterSheet_Ethrex,
quest: setup.QuestSheet_Ethrex,
text: undefined})>>
<<run $CharacterSheet_Ethrex.applyAbilityRuntimeData(setup.Ability_VigorOfTheEndowed_2)>><<set setup.QuestSheet_Ethrex =
{
met: false,
beatenOnce: false,
minorDemon: false,
majorDemon: false,
lordOfLust: false,
joinedTeam: false,
givenShard: false,
available_LukkaReservoir_QuestHint: true,
}>><<set setup.StorySheet_Ethrex =
{
encounterPassages:
{
joinedTeam:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Ethrex.quest.joinedTeam == true;
},
passage: "Encounter_Intro_Ethrex_Teammate",
},
lordOfLust:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Ethrex.quest.lordOfLust == true;
},
passage: "Encounter_Intro_Ethrex_FinalRela",
},
majorDemon:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Ethrex.quest.majorDemon == true;
},
passage: "Encounter_Intro_Ethrex_HighRela",
},
minorDemon:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Ethrex.quest.minorDemon == true;
},
passage: "Encounter_Intro_Ethrex_MidRela",
},
lowRela:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Ethrex.quest.met == true;
},
passage: "Encounter_Intro_Ethrex_LowRela",
},
firstTime:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Ethrex.quest.met == false;
},
passage: "Encounter_Intro_Ethrex",
},
},
postFightPassagesWin:
{
nyxEnding:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Ethrex.quest.nyxEnding == true;
},
passage: "Encounter_Ethrex_Win_NyxEnding",
},
joinedTeam:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Ethrex.quest.joinedTeam == true;
},
passage: "Encounter_Ethrex_FinalRela_Win_Teammate",
},
shardFight:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Player.quest.hasIncompleteEyeOfTheVoid == true && State.variables.CharacterSheet_Ethrex.quest.givenShard == false;
},
passage: "Encounter_Ethrex_Shard_Fight_Win",
},
lukkaReservoirHint:
{
available: function()
{
return State.variables.CharacterSheet_Ethrex.quest.available_LukkaReservoir_QuestHint;
},
condition: function()
{
return State.variables.CharacterSheet_Player.hasAbility("Ability_LukkasBox");
},
passage: "Ethrex_LukkaReservoir_QuestHint",
},
lordOfLust:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Ethrex.quest.lordOfLust == true;
},
passage: "Encounter_Ethrex_FinalRela_Win",
},
majorDemon:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Ethrex.quest.majorDemon == true;
},
passage: "Encounter_Ethrex_HighRela_Win",
},
minorDemon:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Ethrex.quest.minorDemon == true;
},
passage: "Encounter_Ethrex_MidRela_Win",
},
lowRela:
{
available: function()
{
return true;
},
condition: function()
{
return true;
},
passage: "Encounter_Intro_Ethrex_LowRela_Win",
},
},
postFightPassagesLoss:
{
nyxEnding:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Ethrex.quest.nyxEnding == true;
},
passage: "Encounter_Ethrex_Loss_NyxEnding",
},
lowRela:
{
available: function()
{
return true;
},
condition: function()
{
return true;
},
passage: "Encounter_Loss_Ethrex_0",
},
},
encounterLossFlavour:
{
lordOfLust:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Ethrex.quest.lordOfLust == true;
},
passage: "Encounter_Loss_Ethrex_0_Flavour_LordOfLust",
},
majorDemon:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Ethrex.quest.majorDemon == true;
},
passage: "Encounter_Loss_Ethrex_0_Flavour_MajorDemon",
},
minorDemon:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Ethrex.quest.minorDemon == true;
},
passage: "Encounter_Loss_Ethrex_0_Flavour_MinorDemon",
},
lowRela:
{
available: function()
{
return true;
},
condition: function()
{
return true;
},
passage: "Encounter_Loss_Ethrex_0_Flavour_LowRela",
},
},
encounterIntroFirstTimeFlavour:
{
giant:
{
available: function()
{
return true;
},
condition: function()
{
return setup.getStatValue(State.variables.CharacterSheet_Player, "height") > 12 * 12;
},
passage: "Encounter_Intro_Ethrex_Giant",
},
corrupt:
{
available: function()
{
return true;
},
condition: function()
{
return (setup.getStatValue(State.variables.CharacterSheet_Player, "corruption") >= 75);
},
passage: "Encounter_Intro_Ethrex_Corrupt",
},
normal:
{
available: function()
{
return true;
},
condition: function()
{
return true;
},
passage: "Encounter_Intro_Ethrex_Default",
},
},
encounterFinalTeammateJoin:
{
solo:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Ethrex.quest.joinedTeam == false;
},
passage: "Encounter_Ethrex_FinalRela_Win_Solo",
},
teammate:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Ethrex.quest.joinedTeam == true;
},
passage: "Encounter_Ethrex_FinalRela_Win_Teammate",
},
},
}>><<set setup.FighterSheet_God_Beast =
{
hp: 50000,
stamina: 420,
strength: 34000,
critChance: 69,
critDamage: 3,
arousalGain: 40,
minArousal: 50,
growthMultiplier: 99,
bonusGrowth: {
height: 0,
cock: 0,
muscles: 0,
balls: 0,
},
staminaRecovery: 80,
variables: $FightVariables,
fightMoveIDs: [setup.FightMove_Basic_Attack.id, setup.FightMove_DragonStrike.id],
fightReward: setup.RewardTier.VERY_HIGH,
canMimic: false,
encounterIntroText: "<<include Encounter_Intro_God_Beast>>",
encounterStartText: "<<include Encounter_Start_God_Beast>>",
outcomePlayerWins: "<<include Encounter_Win_God_Beast>>",
outcomePlayerLoses: "<<include Encounter_Loss_God_Beast>>"
}>><<set setup.InfoSheet_God_Beast =
{
name: "God-Beast",
gender: "male",
corruption: 0,
muscles: 35000,
height: 680000000,
cock: 90000000,
balls: 40000000,
alive: true,
known: setup.EncounterKnownState.UNKNOWN,
location: setup.LOCATIONS.NONE,
raceId: setup.RacePool.BEHEMOTH.id,
// NPCs ignore certain racial mods,
// typically relating to size, since that is already specified.
ignoreRacials: [
"ballsMods",
"cockMods",
"heightMods"
],
}>><<include "_god_beast_fight_sheet">>
<<include "_god_beast_info_sheet">>
<<include "_god_beast_quest_sheet">>
<<set $CharacterSheet_God_Beast = setup.CharacterFactory.createCharacter({id: "CharacterSheet_God_Beast",
info: setup.InfoSheet_God_Beast,
fight: setup.FighterSheet_God_Beast,
quest: setup.QuestSheet_God_Beast,
text: undefined})>>
<<run $CharacterSheet_God_Beast.applyAbilityRuntimeData(setup.Ability_VigorOfTheEndowed_2)>>
<<run $CharacterSheet_God_Beast.applyAbilityRuntimeData(setup.Ability_AppetiteForGrowth_2)>>
<<run $CharacterSheet_God_Beast.applyAbilityRuntimeData(setup.Ability_CodexPassion)>>
<<run $CharacterSheet_God_Beast.applyAbilityRuntimeData(setup.Ability_UnstoppableExpansion)>>
<<run $CharacterSheet_God_Beast.applyAbilityRuntimeData(setup.Ability_FaithsReward)>>
<<run $CharacterSheet_God_Beast.applyAbilityRuntimeData(setup.Ability_OrgasmicGrowth)>>
<<run $CharacterSheet_God_Beast.applyAbilityRuntimeData(setup.Ability_Oath_Containment)>>
<<run $CharacterSheet_God_Beast.applyAbilityRuntimeData(setup.Ability_NeverendingGrowth)>>
<<run $CharacterSheet_God_Beast.applyAbilityRuntimeData(setup.Ability_LastStand)>>
<<run $CharacterSheet_God_Beast.applyAbilityRuntimeData(setup.Ability_HerculeanBuild)>><<set setup.QuestSheet_God_Beast =
{
beatenOnce: false,
}>><<set setup.FighterSheet_Herald =
{
hp: 500,
stamina: 0,
strength: 90,
critChance: 0,
critDamage: 1.50,
arousalGain: 0,
growthMultiplier: 1,
bonusGrowth: {
height: 0,
cock: 0,
muscles: 0,
balls: 0,
},
minArousal: 0,
staminaRecovery: 20,
variables: $FightVariables,
fightMoveIDs: [setup.FightMove_DragonStrike.id, setup.FightMove_Basic_Attack.id, setup.FightMove_HeraldsDevotion.id],
fightReward: setup.RewardTier.VERY_LOW,
canMimic: false,
encounterIntroText: "",
encounterStartText: "",
outcomePlayerWins: "<<include Village_Herald_Win>>",
outcomePlayerLoses: "<<include Village_Herald_Loss>>",
teammateSettings:
{
attackTiming: setup.AttackTiming.BEFORE_PLAYER,
},
}>><<set setup.InfoSheet_Herald =
{
name: "The Herald",
gender: "male",
corruption: 0,
muscles: 60,
height: 98,
cock: 12,
balls: 6,
alive: true,
known: setup.EncounterKnownState.UNKNOWN,
location: setup.LOCATIONS.VILLAGE,
raceId: setup.RacePool.WOLF.id,
// NPCs ignore certain racial mods,
// typically relating to size, since that is already specified.
ignoreRacials: [
"ballsMods",
"cockMods",
"heightMods"
],
}>><<include "_herald_text_sheet">>
<<include "_herald_fight_sheet">>
<<include "_herald_info_sheet">>
<<include "_herald_quest_sheet">>
<<set $CharacterSheet_Herald = setup.CharacterFactory.createCharacter({id: "CharacterSheet_Herald",
info: setup.InfoSheet_Herald,
fight: setup.FighterSheet_Herald,
quest: setup.QuestSheet_Herald,
text: "TextSheet_Herald"})>><<set setup.QuestSheet_Herald =
{
met: false,
}>><<set setup.TextSheet_Herald =
{
}>><<set setup.AudioSheet_Imp =
{
voice:
{
playlist:
{
title: "characterVoice_Imp",
tracks:
{
arousal_1_Size_1:
{
tags: ["arousal_1", "Size_1"],
track: "Idle_Imp_A1_S1"
},
arousal_2_Size_1:
{
tags: ["arousal_2", "Size_1"],
track: "Idle_Imp_A2_S1"
},
arousal_3_Size_1:
{
tags: ["arousal_3", "Size_1"],
track: "Idle_Imp_A3_S1"
},
arousal_4_Size_1:
{
tags: ["arousal_4", "Size_1"],
track: "Idle_Imp_A4_S1"
},
arousal_5_Size_1:
{
tags: ["arousal_5", "Size_1"],
track: "Idle_Imp_A5_S1"
},
arousal_1_Size_2:
{
tags: ["arousal_1", "Size_2"],
track: "Idle_Imp_A1_S2"
},
arousal_2_Size_2:
{
tags: ["arousal_2", "Size_2"],
track: "Idle_Imp_A2_S2"
},
arousal_3_Size_2:
{
tags: ["arousal_3", "Size_2"],
track: "Idle_Imp_A3_S2"
},
arousal_4_Size_2:
{
tags: ["arousal_4", "Size_2"],
track: "Idle_Imp_A4_S2"
},
arousal_5_Size_2:
{
tags: ["arousal_5", "Size_2"],
track: "Idle_Imp_A5_S2"
},
arousal_1_Size_3:
{
tags: ["arousal_1", "Size_3", "Size_4"],
track: "Idle_Imp_A1_S3"
},
arousal_2_Size_3:
{
tags: ["arousal_2", "Size_3", "Size_4"],
track: "Idle_Imp_A2_S3"
},
arousal_3_Size_3:
{
tags: ["arousal_3", "Size_3", "Size_4"],
track: "Idle_Imp_A3_S3"
},
arousal_4_Size_3:
{
tags: ["arousal_4", "Size_3", "Size_4"],
track: "Idle_Imp_A4_S3"
},
arousal_5_Size_3:
{
tags: ["arousal_5", "Size_3", "Size_4"],
track: "Idle_Imp_A5_S3"
},
},
},
},
}>><<set setup.BodyVisualSheet_Imp =
{
emoteList:
{
normal:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Imp/Wint/Imp_Emote_Grin.png",
},
angry:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Imp/Wint/Imp_Emote_Annoyed.png",
},
cumming:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Imp/Wint/Imp_Emote_Flustered.png",
},
},
cockList :
{
small:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Imp/Wint/Imp_Cock.png",
},
medium:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Imp/Wint/Imp_Cock_Medium.png",
},
},
bodyList :
{
small:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Imp/Wint/Imp_Base.png",
condition: function(character)
{
var size = setup.getStatValue(character, "height");
return size < 12 * 7;
},
headClass: "ImpSmallBodyHead",
permittedCocks: [
{
cock: "small",
cockClass: "ImpSmallBody2Cock",
condition: function(character)
{
return true;
},
},
],
},
medium:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Imp/Wint/Imp_Medium.png",
condition: function(character)
{
var size = setup.getStatValue(character, "height");
return size >= 12 * 7;
},
headClass: "ImpMediumBodyHead",
permittedCocks: [
{
cock: "medium",
cockClass: "ImpMediumBody3Cock",
condition: function(character)
{
return true;
},
},
],
},
},
}>>
<<set setup.BodyVisualSheet_Final_Imp =
{
emoteList:
{
normal:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Imp/Wint/Large_Imp_Emote_Grin.png",
},
angry:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Imp/Wint/Large_Imp_Emote_Worried.png",
},
cumming:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Imp/Wint/Large_Imp_Emote_Horny.png",
},
},
cockList :
{
small:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Imp/Wint/Large_Imp_Med_Penis.png",
},
medium:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Imp/Wint/Large_Imp_Large_Penis.png",
},
},
bodyList :
{
final:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Imp/Wint/Large_Imp_Body.png",
condition: function(character)
{
return true;
},
headClass: "ImpSmallBodyHead",
permittedCocks: [
{
cock: "small",
cockClass: "ImpSmallBody2Cock",
condition: function(character)
{
let ratio = setup.getcockToBodyRatio(character);
return ratio < 0.9;
},
},
{
cock: "medium",
cockClass: "ImpMediumBody3Cock",
condition: function(character)
{
let ratio = setup.getcockToBodyRatio(character);
return ratio >= 0.9;
},
},
],
},
},
}>><<set setup.FighterSheet_Imp =
{
hp: 64,
stamina: 0,
strength: 20,
critChance: 0,
critDamage: 1.50,
arousalGain: 20,
growthMultiplier: 1,
bonusGrowth: {
height: 0,
cock: 0,
muscles: 0,
balls: 0,
},
minArousal: 0,
staminaRecovery: 4,
variables: $FightVariables,
fightMoveIDs: [setup.FightMove_Basic_Attack.id, setup.FightMove_PridefulAscent.id],
fightReward: setup.RewardTier.VERY_LOW,
canMimic: true,
encounterIntroText: "<<include Encounter_Intro_Imp>>",
encounterStartText: "<<include Encounter_Start_Imp>>",
outcomePlayerWins: "<<include Encounter_Win_Imp>>",
outcomePlayerLoses: "<<include Encounter_Loss_Imp>>",
teammateSettings:
{
attackTiming: setup.AttackTiming.BEFORE_PLAYER,
},
}>><<set setup.InfoSheet_Imp =
{
name: "Imp",
gender: "male",
bodyVisual: "BodyVisualSheet_Imp",
audioSheet: "AudioSheet_Imp",
corruption: 100,
muscles: 0,
height: 48,
cock: 10,
balls: 3,
alive: true,
known: setup.EncounterKnownState.UNKNOWN,
location: setup.LOCATIONS.NORTH,
raceId: setup.RacePool.INCUBUS.id,
// NPCs ignore certain racial mods,
// typically relating to size, since that is already specified.
ignoreRacials: [
"ballsMods",
"cockMods",
"heightMods"
],
}>><<include "_imp_body_visual">>
<<include "_imp_audio">>
<<include "_imp_text_sheet">>
<<include "_imp_fight_sheet">>
<<include "_imp_info_sheet">>
<<include "_imp_quest_sheet">>
<<include "_imp_story_sheet">>
<<set $CharacterSheet_Imp = setup.CharacterFactory.createCharacter({id: "CharacterSheet_Imp",
info: setup.InfoSheet_Imp,
fight: setup.FighterSheet_Imp,
quest: setup.QuestSheet_Imp,
text: "TextSheet_Imp"})>>
<<run $CharacterSheet_Imp.applyAbilityRuntimeData(setup.Ability_UntappedPotential)>><<set setup.StorylineProgress_Imp =
{
FIRST_MEETING: 0,
LOW_RELATIONSHIP: 1000,
MID_RELATIONSHIP: 2000,
SERVANT: 3000,
MASTER: 4000,
}>>
<<set setup.QuestSheet_Imp =
{
met: false,
storylineProgress: setup.StorylineProgress_Imp.FIRST_MEETING,
relationshipScoring: 0,
servantScoring: 0,
servantWins: 3,
servantLosses: 3,
masterScoring: 0,
lostScoring: 0,
growthMultiplier: 1,
knowsAboutNyx: false,
ascended: false,
available_encounterPassages_teammate: true,
available_encounterPassages_nyxHint: true,
available_encounterPassages_servant: true,
available_encounterPassages_growthBodyMediumToLarge: true,
available_encounterPassages_growthCock1to2: true,
available_encounterPassages_growthCock2to3: true,
available_encounterPassages_growthCock3to4: true,
available_encounterPassages_growthCock4to5: true,
available_encounterPassages_growthCock5to6: true,
available_encounterPassages_midRela: true,
available_encounterPassages_lowRela: true,
available_encounterPassages_firstTime: true,
available_postFightPassagesLoss_lowRelaIdle: true,
available_postFightPassagesLoss_midRelaIdle: true,
available_postFightPassagesLoss_servantChoice: true,
available_postFightPassagesLoss_masterPath: true,
available_postFightPassagesLoss_servantPath: true,
available_postFightPassagesLoss_ascended: true,
available_postFightPassagesWin_lowRelaIdle: true,
available_postFightPassagesWin_midRelaIdle: true,
available_postFightPassagesWin_lowRelaEnterMidRela: true,
available_postFightPassagesWin_masterChoice: true,
available_postFightPassagesWin_masterPath: true,
available_postFightPassagesWin_servantPath: true,
available_postFightPassagesWin_ascended: true,
available_LukkaReservoir_QuestHint: true,
}>><<set setup.StorySheet_Imp =
{
encounterPassages:
{
firstTime:
{
available: function()
{
return State.variables.CharacterSheet_Imp.quest.available_encounterPassages_firstTime;
},
condition: function()
{
return true;
},
passage: "Imp_FirstMeeting_Intro",
},
teammate_exiled:
{
available: function()
{
return State.variables.CharacterSheet_Imp.quest.available_encounterPassages_teammate && State.variables.CharacterSheet_Player.quest.corruptionVillageExiled;
},
condition: function()
{
return State.variables.CharacterSheet_Player.fight.unlockedTeammates.includes("CharacterSheet_Imp");
},
passage: "Exiled_GoMeetImp",
},
teammate:
{
available: function()
{
return State.variables.CharacterSheet_Imp.quest.available_encounterPassages_teammate && !State.variables.CharacterSheet_Player.quest.corruptionVillageExiled;
},
condition: function()
{
return State.variables.CharacterSheet_Player.fight.unlockedTeammates.includes("CharacterSheet_Imp");
},
passage: "Village_GoMeetImp",
},
nyxHint:
{
available: function()
{
return State.variables.CharacterSheet_Imp.quest.available_encounterPassages_nyxHint;
},
condition: function()
{
return State.variables.CharacterSheet_Player.quest.knowsAboutNyx && !State.variables.CharacterSheet_Imp.quest.knowsAboutNyx && State.variables.CharacterSheet_Imp.quest.storylineProgress == setup.StorylineProgress_Imp.SERVANT;
},
passage: "Imp_ServantPath_NyxHint",
},
servant:
{
available: function()
{
return State.variables.CharacterSheet_Imp.quest.available_encounterPassages_servant;
},
condition: function()
{
return State.variables.CharacterSheet_Imp.quest.storylineProgress == setup.StorylineProgress_Imp.SERVANT;
},
passage: "Imp_Servant_EncounterStart",
},
growthBodyMediumToLarge:
{
available: function()
{
return State.variables.CharacterSheet_Imp.quest.available_encounterPassages_growthBodyMediumToLarge;
},
condition: function()
{
return setup.getStatValue(State.variables.CharacterSheet_Imp, "height") >= 12 * 7;
},
passage: "Imp_EncounterStart_Growth_Body_MediumToLarge",
},
growthCock1to2:
{
available: function()
{
return State.variables.CharacterSheet_Imp.quest.available_encounterPassages_growthCock1to2;
},
condition: function()
{
return setup.getStatValue(State.variables.CharacterSheet_Imp, "cock") > 12 * 2;
},
passage: "Imp_EncounterStart_Growth_Cock_1To2",
},
growthCock2to3:
{
available: function()
{
return State.variables.CharacterSheet_Imp.quest.available_encounterPassages_growthCock2to3;
},
condition: function()
{
return setup.getStatValue(State.variables.CharacterSheet_Imp, "cock") > 12 * 5;
},
passage: "Imp_EncounterStart_Growth_Cock_2To3",
},
growthCock3to4:
{
available: function()
{
return State.variables.CharacterSheet_Imp.quest.available_encounterPassages_growthCock3to4;
},
condition: function()
{
return setup.getStatValue(State.variables.CharacterSheet_Imp, "cock") > 12 * 12;
},
passage: "Imp_EncounterStart_Growth_Cock_3To4",
},
growthCock4to5:
{
available: function()
{
return State.variables.CharacterSheet_Imp.quest.available_encounterPassages_growthCock4to5;
},
condition: function()
{
return setup.getStatValue(State.variables.CharacterSheet_Imp, "cock") > 12 * 25;
},
passage: "Imp_EncounterStart_Growth_Cock_4To5",
},
growthCock5to6:
{
available: function()
{
return State.variables.CharacterSheet_Imp.quest.available_encounterPassages_growthCock5to6;
},
condition: function()
{
return setup.getStatValue(State.variables.CharacterSheet_Imp, "cock") > 12 * 50 && setup.getcockToBodyRatio(character) >= 0.9;
},
passage: "Imp_EncounterStart_Growth_Cock_5To6",
},
midRela:
{
available: function()
{
return State.variables.CharacterSheet_Imp.quest.available_encounterPassages_midRela;
},
condition: function()
{
return State.variables.CharacterSheet_Imp.quest.relationshipScoring >= 3;
},
passage: "Imp_Mid_Rela_EncounterStart",
},
lowRela:
{
available: function()
{
return State.variables.CharacterSheet_Imp.quest.available_encounterPassages_lowRela;
},
condition: function()
{
return true;
},
passage: "Imp_Low_Rela_EncounterStart",
},
},
postFightPassagesWin:
{
lukkaReservoirHint:
{
available: function()
{
return State.variables.CharacterSheet_Imp.quest.available_LukkaReservoir_QuestHint;
},
condition: function()
{
return State.variables.CharacterSheet_Player.hasAbility("Ability_LukkasBox");
},
passage: "Imp_LukkaReservoir_QuestHint",
},
ascended:
{
available: function()
{
return State.variables.CharacterSheet_Imp.quest.available_postFightPassagesWin_ascended;
},
condition: function()
{
return State.variables.CharacterSheet_Imp.quest.ascended == true;
},
passage: "Quest_MQ002_ApothusRealm_ImpInvasion_Win",
},
servantPath:
{
available: function()
{
return State.variables.CharacterSheet_Imp.quest.available_postFightPassagesWin_servantPath;
},
condition: function()
{
return State.variables.CharacterSheet_Imp.quest.storylineProgress == setup.StorylineProgress_Imp.SERVANT;
},
passage: "Imp_Win_ServantPath",
},
masterPath:
{
available: function()
{
return State.variables.CharacterSheet_Imp.quest.available_postFightPassagesWin_masterPath;
},
condition: function()
{
return State.variables.CharacterSheet_Imp.quest.storylineProgress == setup.StorylineProgress_Imp.MASTER;
},
passage: "Imp_Win_MasterPath",
},
masterChoice:
{
available: function()
{
return State.variables.CharacterSheet_Imp.quest.available_postFightPassagesWin_masterChoice;
},
condition: function()
{
return State.variables.CharacterSheet_Imp.quest.relationshipScoring >= 8 && (State.variables.CharacterSheet_Imp.quest.servantScoring >= 3 || State.variables.CharacterSheet_Imp.quest.masterScoring >= 3);
},
passage: "Imp_MasterChoice",
},
lowRelaEnterMidRela:
{
available: function()
{
return State.variables.CharacterSheet_Imp.quest.available_postFightPassagesWin_lowRelaEnterMidRela;
},
condition: function()
{
return State.variables.CharacterSheet_Imp.quest.relationshipScoring >= 3;
},
passage: "Imp_Low_Rela_Win_EnterMidRela",
},
midRelaIdle:
{
available: function()
{
return State.variables.CharacterSheet_Imp.quest.available_postFightPassagesWin_midRelaIdle;
},
condition: function()
{
return State.variables.CharacterSheet_Imp.quest.relationshipScoring >= 3;
},
passage: "Imp_Mid_Rela_Win_Idle",
},
lowRelaIdle:
{
available: function()
{
return State.variables.CharacterSheet_Imp.quest.available_postFightPassagesWin_lowRelaIdle;
},
condition: function()
{
return true;
},
passage: "Imp_Low_Rela_Win_Idle",
},
},
postFightPassagesLoss:
{
ascended:
{
available: function()
{
return State.variables.CharacterSheet_Imp.quest.available_postFightPassagesLoss_ascended;
},
condition: function()
{
return State.variables.CharacterSheet_Imp.quest.ascended == true;
},
passage: "Quest_MQ002_ApothusRealm_ImpInvasion_Loss",
},
servantPath:
{
available: function()
{
return State.variables.CharacterSheet_Imp.quest.available_postFightPassagesLoss_servantPath;
},
condition: function()
{
return State.variables.CharacterSheet_Imp.quest.storylineProgress == setup.StorylineProgress_Imp.SERVANT;
},
passage: "Imp_Loss_ServantPath",
},
masterPath:
{
available: function()
{
return State.variables.CharacterSheet_Imp.quest.available_postFightPassagesLoss_masterPath;
},
condition: function()
{
return State.variables.CharacterSheet_Imp.quest.storylineProgress == setup.StorylineProgress_Imp.MASTER;
},
passage: "Imp_Loss_MasterPath",
},
servantChoice:
{
available: function()
{
return State.variables.CharacterSheet_Imp.quest.available_postFightPassagesLoss_servantChoice;
},
condition: function()
{
return State.variables.CharacterSheet_Imp.quest.relationshipScoring >= 6 && (State.variables.CharacterSheet_Imp.quest.servantScoring >= 3 || State.variables.CharacterSheet_Imp.quest.masterScoring >= 3);
},
passage: "Imp_Loss_ServantChoice",
},
midRelaIdle:
{
available: function()
{
return State.variables.CharacterSheet_Imp.quest.available_postFightPassagesLoss_midRelaIdle;
},
condition: function()
{
return State.variables.CharacterSheet_Imp.quest.relationshipScoring >= 3;
},
passage: "Imp_Mid_Rela_Loss_Idle",
},
lowRelaIdle:
{
available: function()
{
return State.variables.CharacterSheet_Imp.quest.available_postFightPassagesLoss_lowRelaIdle;
},
condition: function()
{
return true;
},
passage: "Imp_Low_Rela_Loss_Idle",
},
},
}>>is grining mischieviously, looking for an opportunity to attack.flutters about in the air, waiting to strike.is licking its lips, staring at you like you're his next meal.runs a finger down his chest, taunting you.
/* Medium */rolls his boulder like shoulders, ready to strike.is stretching his limbs, ready to wrestle with you.lets his tongue slither over his pecs as he stares you down.
/* Large */growls with powerful brassy tones. He is itching to tussle with you.slurps up cascading rivulets of drool. His powerful form bends in anticipation of your next move.rakes his large feet across the ground, ready to charge.
/* Huge */flexes gargantuan muscles, letting you know exactly where you stand.stomps his massive feet as he readies himself for combat. The earth quivers.cracks his massive knuckles, they sound like thunder across the battlefield.
/*----------------Encounter Star Flavour--------------------*/
/* Small */The small wily imp seems to have a trick or two planned for you.The small demon looks at your body, hungrily.The tiny demon looks you up and down, sizing you up.The small imp zips around in wild loops, clearly excited for its next meal.
/* Medium */rolls his boulder like shoulders, ready to strike.is stretching his limbs, ready to wrestle with you.lets his tongue slither over his pecs as he stares you down.
/* Large */growls with powerful brassy tones. He is itching to tussle with you.slurps up cascading rivulets of drool. His powerful form bends in anticipation of your next move.rakes his large feet across the ground, ready to charge.
/* Huge */flexes gargantuan muscles, letting you know exactly where you stand.stomps his massive feet as he readies himself for combat. The earth quivers.cracks his massive knuckles, they sound like thunder across the battlefield./*---------------------Flavour Decision Tree-----------------------*/
<<set setup.TextSheet_Imp =
{
Village_GoMeetImp_Intro :{
heightFlavour: {
small: [
"Village_GoMeetImp_heightFlavour_small",
],
medium: [
"Village_GoMeetImp_heightFlavour_small",
],
large: [
"Village_GoMeetImp_heightFlavour_large",
],
huge: [
"Village_GoMeetImp_heightFlavour_huge",
],
},
},
goMeetImp_Height :{
heightFlavour: {
small: [
"Teammate_Imp_Examine_Size_Small",
],
medium: [
"Teammate_Imp_Examine_Size_Small",
],
large: [
"Teammate_Imp_Examine_Size_Large",
],
huge: [
"Teammate_Imp_Examine_Size_Huge",
],
},
},
goMeetImp_Muscles :{
heightFlavour: {
small: [
"Teammate_Imp_Examine_Muscles_Small",
],
medium: [
"Teammate_Imp_Examine_Muscles_Small",
],
large: [
"Teammate_Imp_Examine_Muscles_Large",
],
huge: [
"Teammate_Imp_Examine_Muscles_Huge",
],
},
},
goMeetImp_Genitals :{
heightFlavour: {
small: [
"Teammate_Imp_Examine_Genitals_Small",
],
medium: [
"Teammate_Imp_Examine_Genitals_Small",
],
large: [
"Teammate_Imp_Examine_Genitals_Large",
],
huge: [
"Teammate_Imp_Examine_Genitals_Huge",
],
},
},
leaveImp :{
heightFlavour: {
small: [
"Teammate_Imp_Leave_Small",
],
medium: [
"Teammate_Imp_Leave_Small",
],
large: [
"Teammate_Imp_Leave_Large",
],
huge: [
"Teammate_Imp_Leave_Huge",
],
},
},
goMeetImp_GrowImp :{
heightFlavour: {
small: [
"Teammate_Imp_GrowHim_Large",
],
medium: [
"Teammate_Imp_GrowHim_Large",
],
large: [
"Teammate_Imp_GrowHim_Large",
],
huge: [
"Teammate_Imp_GrowHim_Huge",
],
},
},
basicAttackPrepFlavour :{
heightFlavour: {
small: [
"_imp_text_sheet_basicAttackPrepFlavour_heightFlavour_small_1",
"_imp_text_sheet_basicAttackPrepFlavour_heightFlavour_small_2",
"_imp_text_sheet_basicAttackPrepFlavour_heightFlavour_small_3",
"_imp_text_sheet_basicAttackPrepFlavour_heightFlavour_small_4",
],
medium: [
"_imp_text_sheet_basicAttackPrepFlavour_heightFlavour_medium_1",
"_imp_text_sheet_basicAttackPrepFlavour_heightFlavour_medium_2",
"_imp_text_sheet_basicAttackPrepFlavour_heightFlavour_medium_3",
],
large: [
"_imp_text_sheet_basicAttackPrepFlavour_heightFlavour_large_1",
"_imp_text_sheet_basicAttackPrepFlavour_heightFlavour_large_2",
"_imp_text_sheet_basicAttackPrepFlavour_heightFlavour_large_3",
],
huge: [
"_imp_text_sheet_basicAttackPrepFlavour_heightFlavour_huge_1",
"_imp_text_sheet_basicAttackPrepFlavour_heightFlavour_huge_2",
"_imp_text_sheet_basicAttackPrepFlavour_heightFlavour_huge_3",
],
},
},
encounterStartFlavour :{
heightFlavour: {
small: [
"_imp_text_sheet_encounterStartFlavour_heightFlavour_small_1",
"_imp_text_sheet_encounterStartFlavour_heightFlavour_small_2",
"_imp_text_sheet_encounterStartFlavour_heightFlavour_small_3",
"_imp_text_sheet_encounterStartFlavour_heightFlavour_small_4",
],
medium: [
"_imp_text_sheet_encounterStartFlavour_heightFlavour_medium_1",
"_imp_text_sheet_encounterStartFlavour_heightFlavour_medium_2",
"_imp_text_sheet_encounterStartFlavour_heightFlavour_medium_3",
],
large: [
"_imp_text_sheet_encounterStartFlavour_heightFlavour_large_1",
"_imp_text_sheet_encounterStartFlavour_heightFlavour_large_2",
"_imp_text_sheet_encounterStartFlavour_heightFlavour_large_3",
],
huge: [
"_imp_text_sheet_encounterStartFlavour_heightFlavour_huge_1",
"_imp_text_sheet_encounterStartFlavour_heightFlavour_huge_2",
"_imp_text_sheet_encounterStartFlavour_heightFlavour_huge_3",
],
},
}
}>><<set setup.FightSheet_Jorm =
{
hp: 180,
stamina: 0,
strength: 45,
critChance: 20,
critDamage: 1.50,
arousalGain: 20,
minArousal: 0,
growthMultiplier: 1,
bonusGrowth: {
height: 0,
cock: 0,
muscles: 0,
balls: 0,
},
staminaRecovery: 14,
variables: $FightVariables,
fightMoveIDs: [setup.FightMove_Basic_Attack.id],
fightReward: setup.RewardTier.HIGH,
canMimic: true,
encounterIntroText: "<<include Encounter_Jorm>>",
encounterStartText: "<<include Encounter_Start_Lost_Naga>>",
outcomePlayerWins: "<<include Encounter_Win_Lost_Naga>>",
outcomePlayerLoses: "<<include Encounter_Loss_Lost_Naga_1>>"
}>><<set setup.InfoSheet_Jorm =
{
name: "Jorm",
gender: "male",
corruption: 1000,
muscles: 80,
height: 1260,
cock: 300,
balls: 100,
known: setup.EncounterKnownState.UNKNOWN,
location: setup.LOCATIONS.NONE, /* TODO: REINTRODUCE JORM */
raceId: setup.RacePool.NAGA.id,
// NPCs ignore certain racial mods,
// typically relating to size, since that is already specified.
ignoreRacials: [
"ballsMods",
"cockMods",
"heightMods"
],
alive: true,
}>><<include "_jorm_text_sheet">>
<<include "_jorm_fight_sheet">>
<<include "_jorm_info_sheet">>
<<include "_jorm_quest_sheet">>
<<include "_jorm_story_sheet">>
<<set $CharacterSheet_Jorm = setup.CharacterFactory.createCharacter({id: "CharacterSheet_Jorm",
info: setup.InfoSheet_Jorm,
fight: setup.FightSheet_Jorm,
quest: setup.QuestSheet_Jorm,
text: "TextSheet_Jorm"})>><<set setup.QuestSheet_Jorm =
{
available_encounterPassages_firstTime: true,
available_encounterPassages_jormPostNameSetup: true,
}>><<set setup.StorySheet_Jorm =
{
encounterPassages:
{
firstTime:
{
available: function()
{
return State.variables.CharacterSheet_Jorm.quest.available_encounterPassages_firstTime;
},
condition: function()
{
return true;
},
passage: "Jorm_FirstMeeting_Intro",
},
jormPostNameSetup:
{
available: function()
{
return State.variables.CharacterSheet_Jorm.quest.available_encounterPassages_jormPostNameSetup;
},
condition: function()
{
return true;
},
passage: "Jorm_PostNamingPrompt",
},
}
}>><<set setup.TextSheet_Jorm =
{
}>><<set setup.FighterSheet_Lost_Entity =
{
hp: 164,
stamina: 0,
strength: 35,
critChance: 20,
critDamage: 1.50,
arousalGain: 20,
minArousal: 0,
growthMultiplier: 1,
bonusGrowth: {
height: 0,
cock: 0,
muscles: 0,
balls: 0,
},
staminaRecovery: 8,
variables: $FightVariables,
fightMoveIDs: [setup.FightMove_Basic_Attack.id, setup.FightMove_Infest.id],
fightReward: setup.RewardTier.HIGH,
canMimic: true,
encounterIntroText: "<<include Encounter_Intro_Lost_Entity>>",
encounterStartText: "<<include Encounter_Start_Lost_Entity>>",
outcomePlayerWins: "<<include Encounter_Win_Lost_Entity>>",
outcomePlayerLoses: "<<include Encounter_Loss_Lost_Entity>>"
}>><<set setup.InfoSheet_Lost_Entity =
{
name: "Lost Entity",
gender: "male",
corruption: 700,
muscles: 30,
height: 90,
cock: 23,
balls: 8,
alive: true,
known: setup.EncounterKnownState.UNKNOWN,
location: setup.LOCATIONS.EAST,
raceId: setup.RacePool.DEFAULT.id,
// NPCs ignore certain racial mods,
// typically relating to size, since that is already specified.
ignoreRacials: [
"ballsMods",
"cockMods",
"heightMods"
],
}>><<include "_lost_entity_text_sheet">>
<<include "_lost_entity_fight_sheet">>
<<include "_lost_entity_info_sheet">>
<<include "_lost_entity_quest_sheet">>
<<set $CharacterSheet_Lost_Entity = setup.CharacterFactory.createCharacter({id: "CharacterSheet_Lost_Entity",
info: setup.InfoSheet_Lost_Entity,
fight: setup.FighterSheet_Lost_Entity,
quest: setup.QuestSheet_Lost_Entity,
text: "TextSheet_Lost_Entity"})>>
<<run $CharacterSheet_Lost_Entity.applyAbilityRuntimeData(setup.Ability_HerculeanBuild)>>
<<run $CharacterSheet_Lost_Entity.applyAbilityRuntimeData(setup.Ability_NeverendingGrowth)>><<set setup.QuestSheet_Lost_Entity =
{
met: false,
beatenOnce: false
}>><<set setup.TextSheet_Lost_Entity =
{
}>><<set setup.FightSheet_Lost_Harbinger =
{
hp: 80,
stamina: 0,
strength: 10,
critChance: 30,
critDamage: 1.50,
arousalGain: 10,
minArousal: 0,
growthMultiplier: 1,
bonusGrowth: {
height: 0,
cock: 0,
muscles: 0,
balls: 0,
},
staminaRecovery: 2,
variables: $FightVariables,
fightMoveIDs: [setup.FightMove_Basic_Attack.id, setup.FightMove_Infest.id],
canMimic: true,
encounterIntroText: "<<include Encounter_Intro_Harbinger>>"
}>><<set setup.InfoSheet_Lost_Harbinger =
{
name: "Lost Harbinger",
gender: "male",
corruption: 1000,
muscles: 30,
height: 90,
cock: 23,
alive: false,
raceId: setup.RacePool.DEFAULT.id,
location: setup.LOCATIONS.NONE,
anatomy: {
heads: {
number: 1,
colour: setup.ColourPool.DEFAULT
},
tongues:{
number: 2,
colour: setup.ColourPool.VIOLET
},
arms: {
number: 4,
},
abdominals: {
number: 10,
},
cocks: {
number: 2,
},
balls: {
number: 4,
},
tails: {
number: 2,
},
},
// NPCs ignore certain racial mods,
// typically relating to size, since that is already specified.
ignoreRacials: [
"ballsMods",
"cockMods",
"heightMods"
],
}>><<include "_lost_harbinger_fight_sheet">>
<<include "_lost_harbinger_text_sheet">>
<<include "_lost_harbinger_info_sheet">>
<<include "_lost_harbinger_quest_sheet">>
<<set $CharacterSheet_Lost_Harbinger = setup.CharacterFactory.createCharacter({id: "CharacterSheet_Lost_Harbinger",
info: setup.InfoSheet_Lost_Harbinger,
fight: setup.FightSheet_Lost_Harbinger,
quest: setup.QuestSheet_Lost_Harbinger,
text: "TextSheet_Lost_Harbinger"})>><<set setup.QuestSheet_Lost_Harbinger =
{
met: false,
harbingerName: undefined,
harbingerRace: undefined
}>><<set setup.TextSheet_Lost_Harbinger =
{
}>><<set setup.AudioSheet_Lost_Naga =
{
voice:
{
playlist:
{
title: "characterVoice_Lost_Naga",
tracks:
{
arousal_1_Size_1:
{
tags: ["arousal_2", "Size_1"],
track: "Lost_Naga_Idle_S1_A1"
},
arousal_2_Size_1:
{
tags: ["arousal_3", "Size_1"],
track: "Lost_Naga_Idle_S1_A2"
},
arousal_3_Size_1:
{
tags: ["arousal_4", "Size_1"],
track: "Lost_Naga_Idle_S1_A3"
},
arousal_0_Size_1:
{
tags: ["arousal_1", "Size_1"],
track: "Lost_Naga_Idle_S1_A0"
},
arousal_1_Size_2:
{
tags: ["arousal_2", "Size_2"],
track: "Lost_Naga_Idle_S2_A1"
},
arousal_2_Size_2:
{
tags: ["arousal_3", "Size_2"],
track: "Lost_Naga_Idle_S2_A2"
},
arousal_3_Size_2:
{
tags: ["arousal_4", "Size_2"],
track: "Lost_Naga_Idle_S2_A3"
},
arousal_0_Size_2:
{
tags: ["arousal_1", "Size_2"],
track: "Lost_Naga_Idle_S2_A0"
},
arousal_1_Size_3:
{
tags: ["arousal_2", "Size_3", "Size_4"],
track: "Lost_Naga_Idle_S3_A1"
},
arousal_2_Size_3:
{
tags: ["arousal_3", "Size_3", "Size_4"],
track: "Lost_Naga_Idle_S3_A2"
},
arousal_3_Size_3:
{
tags: ["arousal_4", "Size_3", "Size_4"],
track: "Lost_Naga_Idle_S3_A3"
},
arousal_0_Size_3:
{
tags: ["arousal_1", "Size_3", "Size_4"],
track: "Lost_Naga_Idle_S3_A0"
},
},
},
},
}>><<set setup.BodyVisualSheet_Lost_Naga =
{
emoteList:
{
normal:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/LostNaga/Lost_Naga_Smile.png",
},
happy:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/LostNaga/Lost_Naga_Open_Mouth.png",
},
worried:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/LostNaga/Lost_Naga_Huh.png",
},
tongue:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/LostNaga/Lost_Naga_Tongue.png",
},
},
cockList :
{
normal:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/LostNaga/Lost_Naga_Cock.png",
},
},
bodyList :
{
normal:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/LostNaga/Lost_Naga_Base.png",
condition: function(character)
{
return true;
},
headClass: "LostNagaHead",
permittedCocks: [
{
cock: "normal",
cockClass: "LostNagaBody",
condition: function(character)
{
return character.quest.cockOut == true;
},
},
],
},
},
}>><<set setup.FighterSheet_Lost_Naga =
{
hp: 500,
stamina: 0,
strength: 70,
critChance: 20,
critDamage: 1.50,
arousalGain: 20,
minArousal: 0,
growthMultiplier: 1,
bonusGrowth: {
height: 0,
cock: 0,
muscles: 0,
balls: 0,
},
staminaRecovery: 14,
variables: $FightVariables,
fightMoveIDs: [setup.FightMove_Basic_Attack.id, setup.FightMove_Infest.id, setup.FightMove_PridefulAscent.id],
fightReward: setup.RewardTier.HIGH,
canMimic: false,
encounterIntroText: "<<include Encounter_Intro_Lost_Naga>>",
encounterStartText: "<<include Encounter_Start_Lost_Naga>>",
outcomePlayerWins: "<<include Encounter_Win_Lost_Naga>>",
outcomePlayerLoses: "<<include Encounter_Loss_Lost_Naga_1>>"
}>><<set setup.InfoSheet_Lost_Naga =
{
name: "Lost Naga",
gender: "male",
bodyVisual: "BodyVisualSheet_Lost_Naga",
audioSheet: "AudioSheet_Lost_Naga",
corruption: 800,
muscles: 30,
height: 126,
cock: 30,
balls: 10,
known: setup.EncounterKnownState.UNKNOWN,
location: setup.LOCATIONS.EAST,
raceId: setup.RacePool.NAGA.id,
alive: true,
// NPCs ignore certain racial mods,
// typically relating to size, since that is already specified.
ignoreRacials: [
"ballsMods",
"cockMods",
"heightMods"
],
}>><<include "_lost_naga_fight_sheet">>
<<include "_lost_naga_info_sheet">>
<<include "_lost_naga_quest_sheet">>
<<include "_lost_naga_story_sheet">>
<<include "_lost_naga_body_visual">>
<<include "_lost_naga_audio">>
<<set $CharacterSheet_Lost_Naga = setup.CharacterFactory.createCharacter({id: "CharacterSheet_Lost_Naga",
info: setup.InfoSheet_Lost_Naga,
fight: setup.FighterSheet_Lost_Naga,
quest: setup.QuestSheet_Lost_Naga,
text: undefined})>>
<<run $CharacterSheet_Lost_Naga.applyAbilityRuntimeData(setup.Ability_AppetiteForGrowth)>><<set setup.QuestSheet_Lost_Naga =
{
met: false,
beatenOnce: false,
fuckedByPlayer: false,
hasBeenVored: false,
givenShard: false,
saidWantSpawn: false,
cockOut: false,
}>><<set setup.StorySheet_Lost_Naga =
{
bringSpawnOptions:
{
noSpawn:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.nyxParasiteInfections == 0 && State.variables.CharacterSheet_Player.quest.capturedNyxSpawn == false;
},
condition: function()
{
return true;
},
passage: "Encounter_Win_Lost_Naga_NoSpawn",
},
bringSpawnCaptured:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.nyxParasiteInfections <= 0 && State.variables.CharacterSheet_Player.quest.capturedNyxSpawn == true;
},
condition: function()
{
return true;
},
passage: "Encounter_Win_Lost_Naga_BringSpawnCaptured_Link",
},
bringSpawnAlive:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.nyxParasiteInfections > 0;
},
condition: function()
{
return true;
},
passage: "Encounter_Win_Lost_Naga_BringSpawnAlive_Link",
},
},
encounterPassages:
{
lowRela:
{
available: function()
{
return true;
},
condition: function()
{
return true;
},
passage: "Encounter_Intro_Lost_Naga_LowRela",
},
},
postFightPassagesWin:
{
shardFightFirstTime:
{
available: function()
{
return State.variables.CharacterSheet_Lost_Naga.quest.saidWantSpawn == false;
},
condition: function()
{
return State.variables.CharacterSheet_Player.quest.hasIncompleteEyeOfTheVoid == true && State.variables.CharacterSheet_Lost_Naga.quest.givenShard == false;
},
passage: "Encounter_Win_Lost_Naga_ShardFight_FirstTime",
},
shardFightReturn:
{
available: function()
{
return State.variables.CharacterSheet_Lost_Naga.quest.saidWantSpawn == true;
},
condition: function()
{
return State.variables.CharacterSheet_Player.quest.hasIncompleteEyeOfTheVoid == true && State.variables.CharacterSheet_Lost_Naga.quest.givenShard == false;
},
passage: "Encounter_Win_Lost_Naga_ShardFight_Return",
},
lowRela:
{
available: function()
{
return true;
},
condition: function()
{
return true;
},
passage: "Encounter_Win_Lost_Naga_LowRela",
},
},
postFightPassagesLoss:
{
lowRela:
{
available: function()
{
return true;
},
condition: function()
{
return true;
},
passage: "Encounter_Loss_Lost_Naga_1_LowRela",
},
},
}>><<set setup.BodyVisualSheet_Lost_Prisoner =
{
emoteList:
{
normal:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/LostPrisoner/Ferro_Mischief.png",
},
angry:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/LostPrisoner/Ferro_Angry.png",
},
happy:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/LostPrisoner/Ferro_Happy.png",
},
ohFace:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/LostPrisoner/Ferro_OhFace.png",
},
},
cockList :
{
normal:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/LostPrisoner/Ferro_Cock.png",
cumVisual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/LostPrisoner/Ferro_Fluid.png",
},
},
bodyList :
{
normal:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/LostPrisoner/Ferro_Base.png",
condition: function(character)
{
return true;
},
permittedAccessories: [
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/LostPrisoner/Ferro_Tentacles.png",
accessoryClass: "FerroTentacles",
condition: function(character)
{
return character.quest.tentaclesOut == true;
},
},
],
headClass: "FerroHead",
permittedCocks: [
{
cock: "normal",
cockClass: "FerroBody",
condition: function(character)
{
return true;
},
},
],
},
},
}>>
<<set setup.BodyVisualSheet_Lost_Prisoner_Ascended =
{
emoteList:
{
normal:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Ferro/Ascended/Ferro_Fighter_Face_Normal.png",
},
angry:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Ferro/Ascended/Ferro_Fighter_Face_Angry.png",
},
ohFace:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Ferro/Ascended/Ferro_Fighter_Face_OhFace.png",
},
},
cockList :
{
normal:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Ferro/Ascended/Ferro_Fighter_Cock.png",
},
},
bodyList :
{
normal:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Ferro/Ascended/Ferro_Fighter_Body.png",
condition: function(character)
{
return true;
},
permittedAccessories: [
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Ferro/Ascended/Ferro_Fighter_Tentacles.png",
accessoryClass: "FerroTentacles",
condition: function(character)
{
return character.quest.tentaclesOut == true;
},
},
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Ferro/Ascended/Ferro_Fighter_ExtraArms.png",
accessoryClass: "FerroExtraArms",
condition: function(character)
{
return character.quest.extraArms == true;
},
},
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Ferro/Ascended/Ferro_Fighter_NyxSpawns.png",
accessoryClass: "FerroNyxSpawns",
condition: function(character)
{
return character.quest.infested == true;
},
},
],
headClass: "FerroAscendedHead",
permittedCocks: [
{
cock: "normal",
cockClass: "FerroAscendedBody",
condition: function(character)
{
return true;
},
},
],
},
},
}>><<set setup.FighterSheet_Lost_Prisoner =
{
hp: 500,
stamina: 0,
strength: 50,
critChance: 0,
critDamage: 1.50,
arousalGain: 10,
growthMultiplier: 1,
bonusGrowth: {
height: 0,
cock: 0,
muscles: 0,
balls: 0,
},
minArousal: 0,
staminaRecovery: 8,
variables: $FightVariables,
fightMoveIDs: [setup.FightMove_Basic_Attack.id, setup.FightMove_UnnaturalGrowth.id],
fightReward: setup.RewardTier.HIGH,
canMimic: true,
encounterIntroText: "<<include Encounter_Intro_Lost_Prisoner>>",
encounterStartText: "<<include Encounter_Start_Lost_Prisoner>>",
outcomePlayerWins: "<<include Encounter_Win_Lost_Prisoner>>",
outcomePlayerLoses: "<<include Encounter_Loss_Lost_Prisoner>>",
teammateSettings:
{
attackTiming: setup.AttackTiming.BEFORE_PLAYER,
},
}>><<set setup.InfoSheet_Lost_Prisoner =
{
name: "Lost Prisoner",
gender: "male",
bodyVisual: "BodyVisualSheet_Lost_Prisoner",
corruption: 600,
muscles: 40,
height: 95,
cock: 13,
balls: 6,
alive: true,
known: setup.EncounterKnownState.UNKNOWN,
location: [setup.LOCATIONS.NORTH, setup.LOCATIONS.EAST],
raceId: setup.RacePool.WOLF.id,
anatomy: {
eyes: {
colour: setup.ColourPool.GREEN,
},
},
// NPCs ignore certain racial mods,
// typically relating to size, since that is already specified.
ignoreRacials: [
"ballsMods",
"cockMods",
"heightMods"
],
}>><<include "_lost_prisoner_body_visual">>
<<include "_lost_prisoner_text_sheet">>
<<include "_lost_prisoner_fight_sheet">>
<<include "_lost_prisoner_info_sheet">>
<<include "_lost_prisoner_quest_sheet">>
<<include "_lost_prisoner_story_sheet">>
<<set $CharacterSheet_Lost_Prisoner = setup.CharacterFactory.createCharacter({id: "CharacterSheet_Lost_Prisoner",
info: setup.InfoSheet_Lost_Prisoner,
fight: setup.FighterSheet_Lost_Prisoner,
quest: setup.QuestSheet_Lost_Prisoner,
text: "TextSheet_Lost_Prisoner"})>><<set setup.QuestSheet_Lost_Prisoner =
{
met: false,
locked: true,
relationshipScoring: 0,
tentaclesOut: false,
ascended: false,
extraArms: false,
infested: false,
toldNyxEntrance: false,
available_partnerMenuChoices_discussApothus: true,
available_partnerMenuChoices_findApothus: false,
}>><<set setup.StorySheet_Lost_Prisoner =
{
encounterIntro:
{
partner:
{
available: function()
{
return State.variables.CharacterSheet_Lost_Prisoner.quest.ascended == true;
},
condition: function()
{
return true;
},
passage: "Lost_Prisoner_Partner_Intro",
},
firstTime:
{
available: function()
{
return State.variables.CharacterSheet_Lost_Prisoner.quest.met;
},
condition: function()
{
return State.variables.CharacterSheet_Lost_Prisoner.quest.met == false;
},
passage: "Lost_Prisoner_FirstMeeting_Intro",
},
midRela:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Lost_Prisoner.quest.relationshipScoring >= 2;
},
passage: "Lost_Prisoner_MidRela_Intro",
},
lowRela:
{
available: function()
{
return true;
},
condition: function()
{
return true;
},
passage: "Lost_Prisoner_LowRela_Intro",
},
},
postFightPassagesWin:
{
partner:
{
available: function()
{
return State.variables.CharacterSheet_Lost_Prisoner.quest.ascended == true;
},
condition: function()
{
return true;
},
passage: "Lost_Prisoner_Partner_Win",
},
midRelaIdle:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Lost_Prisoner.quest.relationshipScoring >= 2;
},
passage: "Lost_Prisoner_Mid_Rela_Win_Idle",
},
lowRelaIdle:
{
available: function()
{
return true;
},
condition: function()
{
return true;
},
passage: "Lost_Prisoner_Low_Rela_Win_Idle",
},
},
postFightPassagesLoss:
{
partner:
{
available: function()
{
return State.variables.CharacterSheet_Lost_Prisoner.quest.ascended == true;
},
condition: function()
{
return true;
},
passage: "Lost_Prisoner_Partner_Loss",
},
lowRelaIdle:
{
available: function()
{
return true;
},
condition: function()
{
return true;
},
passage: "Lost_Prisoner_Low_Rela_Loss",
},
},
partnerMenuFlavour:
{
infested:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Lost_Prisoner.quest.infested;
},
passage: "Lost_Prisoner_Partner_Menu_Infested",
},
macroCorrupted:
{
available: function()
{
return true;
},
condition: function()
{
return setup.MQ002_Manor_IsMassiveInManor(State.variables.CharacterSheet_Player) && setup.getStatValue(State.variables.CharacterSheet_Player, "corruption") > 300;
},
passage: "Lost_Prisoner_Partner_Menu_MacroCorrupted",
},
macro:
{
available: function()
{
return true;
},
condition: function()
{
return setup.MQ002_Manor_IsMassiveInManor(State.variables.CharacterSheet_Player);
},
passage: "Lost_Prisoner_Partner_Menu_Macro",
},
normal:
{
available: function()
{
return true;
},
condition: function()
{
return true;
},
passage: "Lost_Prisoner_Partner_Menu_Normal",
},
},
partnerMenuChoices:
{
inactive_infest:
{
available: function()
{
return !State.variables.CharacterSheet_Lost_Prisoner.quest.infested;
},
condition: function()
{
return State.variables.CharacterSheet_Player.quest.nyxParasiteInfections <= 0;
},
passage: "Lost_Prisoner_Partner_Infest_Inactive_Link",
},
infest:
{
available: function()
{
return !State.variables.CharacterSheet_Lost_Prisoner.quest.infested;
},
condition: function()
{
return State.variables.CharacterSheet_Player.quest.nyxParasiteInfections > 0;
},
passage: "Lost_Prisoner_Partner_Infest_Link",
},
discussApothus:
{
available: function()
{
return State.variables.CharacterSheet_Lost_Prisoner.quest.available_partnerMenuChoices_discussApothus;
},
condition: function()
{
return true;
},
passage: "Lost_Prisoner_Partner_Discuss_Apothus_Link",
},
findApothus:
{
available: function()
{
return State.variables.CharacterSheet_Lost_Prisoner.quest.available_partnerMenuChoices_findApothus;
},
condition: function()
{
return true;
},
passage: "Lost_Prisoner_Partner_Return_To_Apothus_Link",
},
sex:
{
available: function()
{
return true;
},
condition: function()
{
return true;
},
passage: "Lost_Prisoner_Partner_Sex_Link",
},
attackTiming:
{
available: function()
{
return true;
},
condition: function()
{
return true;
},
passage: "Lost_Prisoner_Partner_AttackTiming_Link",
},
spar:
{
available: function()
{
return true;
},
condition: function()
{
return true;
},
passage: "Lost_Prisoner_Partner_Spar_Link",
},
},
}>><<set setup.TextSheet_Lost_Prisoner =
{
}>><<set setup.FightSheet_Swarm =
{
hp: 80,
stamina: 20,
strength: 10,
critChance: 30,
critDamage: 1.50,
arousalGain: 10,
minArousal: 0,
growthMultiplier: 1,
bonusGrowth: {
height: 0,
cock: 0,
muscles: 0,
balls: 0,
},
staminaRecovery: 2,
variables: $FightVariables,
fightMoveIDs: [setup.FightMove_Basic_Attack.id, setup.FightMove_Infest.id],
canMimic: true,
encounterIntroText: "<<include Encounter_Intro_Swarm>>"
}>><<set setup.InfoSheet_Swarm =
{
name: "Lost Swarm",
gender: "male",
numberInSwarm: undefined,
corruption: 1000,
muscles: 30,
height: 90,
cock: 23,
balls: 8,
alive: false,
raceId: setup.RacePool.DEFAULT.id,
location: setup.LOCATIONS.NONE,
anatomy: {
tongues:{
number: 2,
colour: setup.ColourPool.VIOLET
},
arms: {
number: 4,
},
abdominals: {
number: 10,
},
cocks: {
number: 2,
},
balls: {
number: 4,
},
tails: {
number: 2,
},
},
racialBonus: [],
}>><<include "_lost_swarm_fight_sheet">>
<<include "_lost_swarm_text_sheet">>
<<include "_lost_swarm_info_sheet">>
<<include "_lost_swarm_quest_sheet">>
<<set $CharacterSheet_Swarm = setup.CharacterFactory.createCharacter({id: "CharacterSheet_Swarm",
info: setup.InfoSheet_Swarm,
fight: setup.FightSheet_Swarm,
quest: setup.QuestSheet_Swarm,
text: "TextSheet_Swarm"})>><<set setup.QuestSheet_Swarm =
{
met: false,
firstSwarm: true
}>><<set setup.TextSheet_Swarm =
{
}>><<set setup.BodyVisualSheet_Lukka =
{
emoteList:
{
normal:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Lukka/Lukka_Generic.png",
},
happy:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Lukka/Lukka_Happy.png",
},
angry:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Lukka/Lukka_Angy.png",
},
sus:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Lukka/Lukka_Questioning.png",
},
shocked:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Lukka/Lukka_Shocked.png",
},
horny:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Lukka/Lukka_Shyroused.png",
},
},
cockList :
{
},
bodyList :
{
small:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Lukka/Lukka_Base.png",
condition: function(character)
{
return true;
},
headClass: "LukkaHead",
permittedAccessories: [
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Lukka/Lukka_Cape.png",
accessoryClass: "LukkaCape",
condition: function(character)
{
return character.quest.coatOff == false;
},
},
],
permittedCocks: [
],
},
},
}>><<set setup.FighterSheet_Lukka =
{
hp: 64,
stamina: 8,
strength: 20,
critChance: 0,
critDamage: 1.50,
arousalGain: 20,
growthMultiplier: 1,
bonusGrowth: {
height: 0,
cock: 0,
muscles: 0,
balls: 0,
},
minArousal: 0,
staminaRecovery: 4,
variables: $FightVariables,
fightMoveIDs: [setup.FightMove_Basic_Attack.id],
fightReward: setup.RewardTier.VERY_LOW,
canMimic: true,
encounterIntroText: "<<include Encounter_Intro_Lukka>>",
encounterStartText: "<<include Encounter_Start_Lukka>>",
outcomePlayerWins: "<<include Encounter_Win_Lukka>>",
outcomePlayerLoses: "<<include Encounter_Loss_Lukka>>",
}>><<set setup.InfoSheet_Lukka =
{
name: "Lukka",
gender: "male",
bodyVisual: "BodyVisualSheet_Lukka",
corruption: 20,
muscles: 0,
height: 48,
cock: 10,
balls: 3,
alive: true,
known: setup.EncounterKnownState.UNKNOWN,
location: setup.LOCATIONS.VILLAGE,
raceId: setup.RacePool.DRAGONBORN.id,
anatomy: {},
// NPCs ignore certain racial mods,
// typically relating to size, since that is already specified.
ignoreRacials: [
"ballsMods",
"cockMods",
"heightMods"
],
}>><<include "_lukka_body_visual">>
<<include "_lukka_fight_sheet">>
<<include "_lukka_info_sheet">>
<<include "_lukka_quest_sheet">>
<<include "_lukka_story_sheet">>
<<set $CharacterSheet_Lukka = setup.CharacterFactory.createCharacter({id: "CharacterSheet_Lukka",
info: setup.InfoSheet_Lukka,
fight: setup.FighterSheet_Lukka,
quest: setup.QuestSheet_Lukka,
text: undefined})>><<set setup.QuestSheet_Lukka =
{
coatOff: false,
}>><<set setup.StorySheet_Lukka =
{
}>><<set setup.BodyVisualSheet_MQ002_Guard =
{
emoteList:
{
normal:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Minotaur/Winty/Neutral.png",
},
angry:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Minotaur/Winty/Angry.png",
},
blushing:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Minotaur/Winty/Surprised.png",
},
cumming:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Minotaur/Winty/Horny.png",
},
happy:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Minotaur/Winty/Smarmy.png",
},
},
cockList :
{
},
bodyList :
{
clothed:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Minotaur/Winty/Clothed_body.png",
condition: function(character)
{
return character.quest.lustLevel < 2;
},
headClass: "MinotaurHead",
permittedAccessories:
[],
permittedCocks: [],
},
naked:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Minotaur/Winty/Nude_body.png",
condition: function(character)
{
return character.quest.lustLevel >= 2;
},
headClass: "MinotaurHead",
permittedAccessories:
[
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Minotaur/Winty/Cock.png",
accessoryClass: "MinotaurCock",
condition: function(character)
{
return true;
},
},
],
permittedCocks: [],
},
},
}>>
<<set setup.BodyVisualSheet_MQ002_Guard_Corrupted =
{
emoteList:
{
normal:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Minotaur/Winty/Mino_Corr_Emote_Neutral.png",
},
angry:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Minotaur/Winty/Mino_Corr_Emote_Grumpy.png",
},
blushing:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Minotaur/Winty/Mino_Corr_Emote_Embarrassed.png",
},
cumming:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Minotaur/Winty/Mino_Corr_Emote_Flustered.png",
},
happy:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Minotaur/Winty/Mino_Corr_Emote_Happy.png",
},
parasite:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Minotaur/Winty/Mino_Corr_Emote_Parasite.png",
},
},
cockList :
{
normal:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Minotaur/Winty/Mino_Corr_Penis.png",
},
},
bodyList :
{
naked:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Minotaur/Winty/Mino_Corr_Body.png",
condition: function(character)
{
return true;
},
headClass: "MinotaurHead",
permittedAccessories:
[
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Minotaur/Winty/Mino_Corr_Infestation.png",
accessoryClass: "MinotaurInfestation",
condition: function(character)
{
return character.quest.nyxPromise == true;
},
},
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Minotaur/Winty/Mino_Corr_Stripes.png",
accessoryClass: "MinotaurStripes",
condition: function(character)
{
return character.quest.nyxPromise == true;
},
},
],
permittedCocks:
[
{
cock: "normal",
cockClass: "MinotaurCock",
condition: function(character)
{
return true;
},
},
],
},
},
}>><<set setup.FighterSheet_MQ002_Guard =
{
hp: 250,
stamina: 0,
strength: 85,
critChance: 0,
critDamage: 1,
arousalGain: 10,
minArousal: 0,
growthMultiplier: 1,
bonusGrowth: {
height: 0,
cock: 0,
muscles: 0,
balls: 0,
},
staminaRecovery: 8,
variables: $FightVariables,
fightMoveIDs: [setup.FightMove_Basic_Attack.id, setup.FightMove_ChargedStrike.id],
fightReward: setup.RewardTier.HIGH,
canMimic: true,
encounterIntroText: "",
encounterStartText: "Minotaur Guard readies his weapon",
outcomePlayerWins: "<<include Quest_MQ002_Entrance_PlayerWins>>",
outcomePlayerLoses: "<<include Quest_MQ002_Entrance_PlayerLoses>>",
teammateSettings:
{
attackTiming: setup.AttackTiming.BEFORE_PLAYER,
},
}>><<set setup.InfoSheet_MQ002_Guard =
{
name: "Minotaur Guard",
gender: "male",
bodyVisual: "BodyVisualSheet_MQ002_Guard",
corruption: 0,
muscles: 80,
height: 164,
cock: 18,
balls: 6,
raceId: setup.RacePool.MINOTAUR.id,
location: setup.LOCATIONS.CASTLE,
alive: true,
// NPCs ignore certain racial mods,
// typically relating to size, since that is already specified.
ignoreRacials: [
"ballsMods",
"cockMods",
"heightMods"
],
}>><<include "_minotaur_guard_body_visual">>
<<include "_minotaur_guard_fight_sheet">>
<<include "_minotaur_guard_info_sheet">>
<<include "_minotaur_guard_quest_sheet">>
<<set $CharacterSheet_MQ002_Guard = setup.CharacterFactory.createCharacter({id: "CharacterSheet_MQ002_Guard",
info: setup.InfoSheet_MQ002_Guard,
fight: setup.FighterSheet_MQ002_Guard,
quest: setup.QuestSheet_MQ002_Guard,
text: undefined})>>
<<run $CharacterSheet_MQ002_Guard.applyAbilityRuntimeData(setup.Ability_Masochism)>>
<<run $CharacterSheet_MQ002_Guard.applyAbilityRuntimeData(setup.Ability_Masochism)>>
<<run $CharacterSheet_MQ002_Guard.applyAbilityRuntimeData(setup.Ability_Masochism)>><<set setup.QuestSheet_MQ002_Guard =
{
met: false,
movedToCastle: false,
beaten: false,
nyxPromise: false,
lustLevel: 1,
lustIncrease: false,
}>><<set setup.BodyVisualSheet_MQ002_NyxParasite =
{
emoteList:
{
blue:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/NyxSpawn/Nyx_TentacleBlue.png",
},
pink:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/NyxSpawn/Nyx_TentaclePink.png",
},
purple:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/NyxSpawn/Nyx_TentaclePurple.png",
},
red:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/NyxSpawn/Nyx_TentacleRed.png",
},
unique:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/NyxSpawn/Nyx_TentacleUnique.png",
},
},
}>><<set setup.FighterSheet_MQ002_NyxParasite =
{
hp: 210,
stamina: 0,
strength: 85,
critChance: 30,
critDamage: 1.50,
arousalGain: 10,
minArousal: 0,
growthMultiplier: 1,
bonusGrowth: {
height: 0,
cock: 0,
muscles: 0,
balls: 0,
},
staminaRecovery: 12,
variables: $FightVariables,
fightMoveIDs: [setup.FightMove_WitheringVenom.id],
fightReward: setup.RewardTier.HIGH,
canMimic: false,
encounterIntroText: "<<include Quest_MQ002_NyxParasiteEncounter_FightIntro>>",
encounterStartText: "The spawn of Nyx crawls silently towards you.",
outcomePlayerWins: "<<include Quest_MQ002_NyxParasiteEncounter_PlayerWins>>",
outcomePlayerLoses: "<<include Quest_MQ002_NyxParasiteEncounter_PlayerLoses>>"
}>><<set setup.InfoSheet_MQ002_NyxParasite =
{
name: "Alpha Spawn",
gender: "male",
bodyVisual: "BodyVisualSheet_MQ002_NyxParasite",
corruption: 9000,
muscles: 10,
height: 80,
cock: 2,
balls: 1,
alive: true,
raceId: setup.RacePool.INCUBUS.id,
location: setup.LOCATIONS.CASTLE,
anatomy: {
eyes: {
number: 1,
},
hands: {
number: 0,
},
horns: {
number: 0,
},
wings: {
number: 0,
},
tongues:{
number: 0,
},
arms: {
number: 0,
},
pecs: {
number: 0,
},
abdominals: {
number: 0,
},
cocks: {
number: 0,
},
balls: {
number: 0,
},
legs: {
number: 0,
},
tails: {
number: 1,
},
},
// NPCs ignore certain racial mods,
// typically relating to size, since that is already specified.
ignoreRacials: [
"ballsMods",
"cockMods",
"heightMods"
],
}>><<include "_nyx_parasite_fight_sheet">>
<<include "_nyx_parasite_info_sheet">>
<<include "_nyx_parasite_quest_sheet">>
<<include "_nyx_parasite_body_visual">>
<<set $CharacterSheet_MQ002_NyxParasite = setup.CharacterFactory.createCharacter({id: "CharacterSheet_MQ002_NyxParasite",
info: setup.InfoSheet_MQ002_NyxParasite,
fight: setup.FighterSheet_MQ002_NyxParasite,
quest: setup.QuestSheet_MQ002_NyxParasite,
text: undefined})>><<set setup.QuestSheet_MQ002_NyxParasite =
{
met: false
}>><<set setup.AudioSheet_Voice1_Player =
{
voice:
{
playlist:
{
title: "characterVoice_Voice1_Player",
tracks:
{
arousal_1_Size_1_Corrupt_1:
{
tags: ["arousal_1", "Size_1"],
track: "Idle_Voice1_A1_S1_C1"
},
arousal_2_Size_1_Corrupt_1:
{
tags: ["arousal_2", "Size_1"],
track: "Idle_Voice1_A2_S1_C1"
},
arousal_3_Size_1_Corrupt_1:
{
tags: ["arousal_3", "Size_1"],
track: "Idle_Voice1_A3_S1_C1"
},
arousal_4_Size_1_Corrupt_1:
{
tags: ["arousal_4", "Size_1"],
track: "Idle_Voice1_A4_S1_C1"
},
arousal_1_Size_2_Corrupt_1:
{
tags: ["arousal_1", "Size_2"],
track: "Idle_Voice1_A1_S2_C1"
},
arousal_2_Size_2_Corrupt_1:
{
tags: ["arousal_2", "Size_2"],
track: "Idle_Voice1_A2_S2_C1"
},
arousal_3_Size_2_Corrupt_1:
{
tags: ["arousal_3", "Size_2"],
track: "Idle_Voice1_A3_S2_C1"
},
arousal_4_Size_2_Corrupt_1:
{
tags: ["arousal_4", "Size_2"],
track: "Idle_Voice1_A4_S2_C1"
},
arousal_1_Size_3_Corrupt_1:
{
tags: ["arousal_1", "Size_3"],
track: "Idle_Voice1_A1_S3_C1"
},
arousal_2_Size_3_Corrupt_1:
{
tags: ["arousal_2", "Size_3"],
track: "Idle_Voice1_A2_S3_C1"
},
arousal_3_Size_3_Corrupt_1:
{
tags: ["arousal_3", "Size_3"],
track: "Idle_Voice1_A3_S3_C1"
},
arousal_4_Size_3_Corrupt_1:
{
tags: ["arousal_4", "Size_3"],
track: "Idle_Voice1_A4_S3_C1"
},
arousal_1_Size_4_Corrupt_1:
{
tags: ["arousal_1", "Size_4"],
track: "Idle_Voice1_A1_S4_C1"
},
arousal_2_Size_4_Corrupt_1:
{
tags: ["arousal_2", "Size_4"],
track: "Idle_Voice1_A2_S4_C1"
},
arousal_3_Size_4_Corrupt_1:
{
tags: ["arousal_3", "Size_4"],
track: "Idle_Voice1_A3_S4_C1"
},
arousal_4_Size_4_Corrupt_1:
{
tags: ["arousal_4", "Size_4"],
track: "Idle_Voice1_A4_S4_C1"
},
},
},
},
}>><<set setup.AudioSheet_Voice2_Player =
{
voice:
{
playlist:
{
title: "characterVoice_Voice2_Player",
tracks:
{
arousal_1_Size_1_Corrupt_1:
{
tags: ["arousal_1", "Size_1"],
track: "Idle_Voice2_A1_S1"
},
arousal_2_Size_1_Corrupt_1:
{
tags: ["arousal_2", "Size_1"],
track: "Idle_Voice2_A2_S1"
},
arousal_3_Size_1_Corrupt_1:
{
tags: ["arousal_3", "Size_1"],
track: "Idle_Voice2_A3_S1"
},
arousal_4_Size_1_Corrupt_1:
{
tags: ["arousal_4", "Size_1"],
track: "Idle_Voice2_A4_S1"
},
arousal_5_Size_1_Corrupt_1:
{
tags: ["arousal_5", "Size_1"],
track: "Idle_Voice2_A5_S1"
},
arousal_1_Size_2_Corrupt_1:
{
tags: ["arousal_1", "Size_2"],
track: "Idle_Voice2_A1_S2"
},
arousal_2_Size_2_Corrupt_1:
{
tags: ["arousal_2", "Size_2"],
track: "Idle_Voice2_A2_S2"
},
arousal_3_Size_2_Corrupt_1:
{
tags: ["arousal_3", "Size_2"],
track: "Idle_Voice2_A3_S2"
},
arousal_4_Size_2_Corrupt_1:
{
tags: ["arousal_4", "Size_2"],
track: "Idle_Voice2_A4_S2"
},
arousal_5_Size_2_Corrupt_1:
{
tags: ["arousal_5", "Size_2"],
track: "Idle_Voice2_A5_S2"
},
arousal_1_Size_3_Corrupt_1:
{
tags: ["arousal_1", "Size_3"],
track: "Idle_Voice2_A1_S3"
},
arousal_2_Size_3_Corrupt_1:
{
tags: ["arousal_2", "Size_3"],
track: "Idle_Voice2_A2_S3"
},
arousal_3_Size_3_Corrupt_1:
{
tags: ["arousal_3", "Size_3"],
track: "Idle_Voice2_A3_S3"
},
arousal_4_Size_3_Corrupt_1:
{
tags: ["arousal_4", "Size_3"],
track: "Idle_Voice2_A4_S3"
},
arousal_5_Size_3_Corrupt_1:
{
tags: ["arousal_5", "Size_3"],
track: "Idle_Voice2_A5_S3"
},
arousal_1_Size_4_Corrupt_1:
{
tags: ["arousal_1", "Size_4"],
track: "Idle_Voice2_A1_S4"
},
arousal_2_Size_4_Corrupt_1:
{
tags: ["arousal_2", "Size_4"],
track: "Idle_Voice2_A2_S4"
},
arousal_3_Size_4_Corrupt_1:
{
tags: ["arousal_3", "Size_4"],
track: "Idle_Voice2_A3_S4"
},
arousal_4_Size_4_Corrupt_1:
{
tags: ["arousal_4", "Size_4"],
track: "Idle_Voice2_A4_S4"
},
arousal_5_Size_4_Corrupt_1:
{
tags: ["arousal_5", "Size_4"],
track: "Idle_Voice2_A5_S4"
},
},
},
},
}>><<set setup.FighterSheet_Player =
{
hp: 60,
stamina: 30,
strength: 10,
critChance: 10,
critDamage: 1.50,
arousalGain: 20,
actionSlots: 3,
comboMovesPerTurn: 4,
essenceModifierToAdd: 0,
growthMultiplier: 0.15,
xpMultiplier: 1,
bonusGrowth: {
height: 0,
cock: 0,
muscles: 0,
balls: 0,
},
minArousal: 0,
staminaRecovery: 4,
variables: $FightVariables,
fightMoveIDs: [setup.FightMove_Basic_Attack.id, setup.FightMove_Slash.id, setup.FightMove_Bash.id, setup.FightMove_Sigil_Perception.id, setup.FightMove_Sigil_Vitality.id, setup.FightMove_Do_Nothing.id, setup.FightMove_Submit_Completely.id],
canMimic: true,
abilities: [],
teammate: undefined,
unlockedTeammates: [],
outcomePlayerWins: "",
outcomePlayerLoses: ""
}>>
<<set $EquippedFightMoveIDs = setup.FighterSheet_Player.fightMoveIDs>><<include "_player_audio_voice1">>
<<include "_player_audio_voice2">>
<<set setup.InfoSheet_Player =
{
name: "Ankou",
gender: "male",
audioSheet: "AudioSheet_Voice2_Player",
corruption: 0,
corruptionPerDay: 0,
accumulatedCorruption: 0,
muscles: 0,
height: 68,
cock: 6,
balls: 2,
raceId: setup.RacePool.DEFAULT.id,
secondaryRaceId: undefined,
overrideRaceId: undefined,
overrideNoSec: false,
overgrowth:
{
height: 0,
cock: 0,
balls: 0,
muscles: 0,
},
limitBreaks: {
points: 0,
cap:
{
height: 0,
cock: 0,
balls: 0,
muscles: 0,
},
},
choiceHighlight: {
limitBreakAvail: false,
overgrowthAvail: false,
mutationAvail: false,
newCardAvail: false,
},
anatomy: {},
unlockedRaces: [],
tags: {
partnerRecentSex: false,
partnerSparExhaustion: false,
},
}>><<include "_player_text_sheet">>
<<include "_player_fight_sheet">>
<<include "_player_info_sheet">>
<<include "_symbiote_info_sheet">>
<<include "_player_quest_sheet">>
<<include "_player_story_sheet">>
<<set $CharacterSheet_Symbiote = setup.CharacterFactory.createCharacter({id: "CharacterSheet_Symbiote",
info: setup.InfoSheet_Symbiote,
text: {},
quest: {met: false}}
);>>
<<set $CharacterSheet_Player = setup.CharacterFactory.createCharacter({id: "CharacterSheet_Player",
info: setup.InfoSheet_Player,
symbiote: $CharacterSheet_Symbiote,
fight: setup.FighterSheet_Player,
quest: setup.QuestSheet_Player,
text: "TextSheet_Player"}
);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_Uncorrupted);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_MinorCorruption);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_MajorCorruption);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_OverwhelmingCorruption);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_LostInCorruption);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_LordOfCorruption);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_ProcessingCorruption);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_OffTheDeepEnd);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_BaptismInCorruption);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_HostOfTheSpawns);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_LordOfTheSpawns);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_SubmissiveFighter);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_MightOfAugwult);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_DamnatoryKnowledge);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_WordOfPower);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_Resolute);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_Redemption);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_MasterOfTheBarrens);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_GodAmongstMen);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_CockRingOfTheBind);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_CollarOfTheBind);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_SafePassage);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_ExplorerOfCorruptedDepths);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_ShiftingIdeals);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_AscendedPrisoner);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_EndlessStruggle);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_Abomination);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_PureOfHeart);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_BearerOfTheEye);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_MemoriesOfKanathar);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_MemoriesOfDemonicAscent);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_MemoriesOfTheLost);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_IncompleteMemories);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_MemoriesOfTheMinotaur);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_MemoriesOfEthrex);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Achievement_MemoriesOfFerro);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_MemoriesOfNyx);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_MemoriesOfCray);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_MemoriesOfApothus);>><<set setup.ApothusRealmStatus =
{
IDLE: 0,
JOINED: 1,
FIGHTGOOD: 2,
FIGHTEVIL: 3
}>>
<<set setup.QuestSheet_Player =
{
met: true,
knowsAboutNyx: false,
curseOfTheNagaStatDrain:
{
muscles: 0,
height: 0,
cock: 0,
balls: 0,
},
nyxParasiteInfections: 0,
corruptionVillageExiled: false,
oaths:
{
drenth: setup.Oath.NONE,
},
apothusRealmFirstTime: true,
apothusRealmStatus: setup.ApothusRealmStatus.IDLE,
lostPrisonerEscaped: false,
lostPrisonerUntied: false,
lostPrisonerRelaxed: false,
hasIncompleteEyeOfTheVoid: false,
hasCompleteEyeOfTheVoid: false,
capturedNyxSpawn: false,
gatheredShard: 0,
givenShards: 0,
available_lostPrisonerIntro_firstTime: true,
available_lostPrisoner_name: true,
available_lostPrisoner_cameFrom: false,
available_lostPrisoner_untie: true,
available_lukkaHouseIntro_firstTime: true,
available_lukkaHouse_askLost: true,
available_lukkaHouse_askCorruption: true,
available_enterVillage_corruption_FirstWarning: true,
available_enterVillage_corruptedAbel: true,
available_enterVillage_exiled: true,
available_enterVillage_exiled_AbelReturn_RemainingExpedition: 3,
available_enterVillage_exiled_AbelReturn: true,
available_abelExiled_WhatNext: true,
available_enterVillage_normal: true,
available_exploration_villageGateNorth_northFirstTime: true,
available_exploration_villageGateNorth_northMeteorFall: true,
available_exploration_villageGateNorth_northGrownMuscular: true,
available_exploration_villageGateNorth_northVisibleCorruption: true,
available_exploration_villageGateNorth_northGrownHeight: true,
available_exploration_villageGateNorth_northGrownHeightMassive: true,
available_exploration_villageGateEast_eastFirstTime: true,
available_exploration_villageGateEast_eastGrownMacro: true,
available_exploration_villageGateEast_eastGrownDemonic: true,
available_exploration_villageGateEast_eastGrownParasites: true,
available_exploration_villageGateEast_eastGrownLordOfLust: true,
available_exploration_villageGateEast_eastGrownMegaMacro: true,
available_meteorQuest_firstTime: true,
lukkaQuest:
{
firstMet: false,
askedForDemonEssence: false,
reservoirFilled: false,
complete: false,
},
}>><<set setup.StorySheet_Player =
{
villageAbelExiledLinks:
{
whatNext:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.available_abelExiled_WhatNext;
},
condition: function()
{
return true;
},
passage: "Village_Exiled_Abel_WhatNext_Link",
},
},
apothusPostFightLinks:
{
struggle:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Player.quest.apothusRealmStatus != setup.ApothusRealmStatus.FIGHTEVIL;
},
passage: "Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerWins_Struggle_Link",
},
consume:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Player.quest.apothusRealmStatus == setup.ApothusRealmStatus.FIGHTEVIL;
},
passage: "Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerWins_Consume_Link",
},
kanathar:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Player.fight.unlockedTeammates.includes("CharacterSheet_Imp");
},
passage: "Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerWins_Companions_Kanathar_Link",
},
tiadane:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Player.fight.unlockedTeammates.includes("CharacterSheet_MQ002_Guard");
},
passage: "Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerWins_Companions_Tiadane_Link",
},
ethrex:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Player.fight.unlockedTeammates.includes("CharacterSheet_Ethrex");
},
passage: "Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerWins_Companions_Ethrex_Link",
},
ferro:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Player.fight.unlockedTeammates.includes("CharacterSheet_Lost_Prisoner");
},
passage: "Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerWins_Companions_Ferro_Link",
},
},
lostPrisonerMainMenu:
{
withdrawal:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.Expedition <= 5;
},
passage: "LostPrisoner_MainMenu_Withdrawal",
},
untied:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Player.quest.lostPrisonerUntied;
},
passage: "LostPrisoner_MainMenu_Untied",
},
corrupted:
{
available: function()
{
return true;
},
condition: function()
{
return setup.getStatValue(State.variables.CharacterSheet_Player, "corruption") > 75;
},
passage: "LostPrisoner_MainMenu_Corrupted",
},
normal:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Player.quest.lostPrisonerRelaxed == false;
},
passage: "LostPrisoner_MainMenu_Normal",
},
relaxed:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Player.quest.lostPrisonerRelaxed == true;
},
passage: "LostPrisoner_MainMenu_Relaxed",
},
},
lostPrisonerLinks:
{
withdrawalApproach:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.Expedition <= 5;
},
passage: "LostPrisoner_Withdrawal_Approach_Link",
},
name:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.available_lostPrisoner_name;
},
condition: function()
{
return State.variables.Expedition > 5 && !State.variables.CharacterSheet_Player.quest.lostPrisonerRelaxed;
},
passage: "LostPrisoner_Name_Link",
},
cameFrom:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.available_lostPrisoner_cameFrom;
},
condition: function()
{
return State.variables.Expedition > 5 && State.variables.CharacterSheet_Player.quest.lostPrisonerRelaxed;
},
passage: "LostPrisoner_GotHere_Link",
},
untie:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.available_lostPrisoner_untie;
},
condition: function()
{
return State.variables.Expedition > 5 && State.variables.CharacterSheet_Player.quest.lostPrisonerRelaxed;
},
passage: "LostPrisoner_Untie_Link",
},
normalApproach:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.Expedition > 5 && !State.variables.CharacterSheet_Player.quest.lostPrisonerRelaxed;
},
passage: "LostPrisoner_NormalApproach_Link",
},
},
lostPrisonerIntro:
{
escaped:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.lostPrisonerEscaped;
},
condition: function()
{
return true;
},
passage: "LostPrisoner_Intro_Escaped",
},
firstTime:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.available_lostPrisonerIntro_firstTime;
},
condition: function()
{
return true;
},
passage: "LostPrisoner_Intro_FirstTime",
},
idle:
{
available: function()
{
return true;
},
condition: function()
{
return true;
},
passage: "LostPrisoner_Intro_Idle",
},
},
lukkaHouseIntro:
{
firstTime:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.available_lukkaHouseIntro_firstTime;
},
condition: function()
{
return true;
},
passage: "LukkaHouse_Intro_FirstTime",
},
idle:
{
available: function()
{
return true;
},
condition: function()
{
return true;
},
passage: "LukkaHouse_Intro_Idle",
},
},
oasisIntro:
{
firstTime:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.available_meteorQuest_firstTime;
},
condition: function()
{
return true;
},
passage: "Quest_MQ001_EchoFirstEncounter_Lake_Intro_FirstTime",
},
idle:
{
available: function()
{
return true;
},
condition: function()
{
return true;
},
passage: "Quest_MQ001_EchoFirstEncounter_Lake_Menu",
},
},
oasisChoices:
{
inspect:
{
available: function()
{
return true;
},
condition: function()
{
return true;
},
passage: "Quest_MQ001_EchoFirstEncounter_Lake_LookAtPool_Link",
},
crossEssenceShardInactive:
{
available: function()
{
return true;
},
condition: function()
{
return !State.variables.CharacterSheet_Player.hasAbility("Ability_DemonicEssenceShard");
},
passage: "Quest_MQ001_EchoFirstEncounter_Lake_CrossIt_DemonicEssence_Link_Inactive",
},
crossEssenceShard:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Player.hasAbility("Ability_DemonicEssenceShard");
},
passage: "Quest_MQ001_EchoFirstEncounter_Lake_CrossIt_DemonicEssence_Link",
},
stepOverInactive:
{
available: function()
{
return true;
},
condition: function()
{
return setup.getStatValue(State.variables.CharacterSheet_Player, "height") < 12 * 12;
},
passage: "Quest_MQ001_EchoFirstEncounter_Lake_StepOverIt_Link_Inactive",
},
stepOver:
{
available: function()
{
return true;
},
condition: function()
{
return setup.getStatValue(State.variables.CharacterSheet_Player, "height") >= 12 * 12;
},
passage: "Quest_MQ001_EchoFirstEncounter_Lake_StepOverIt_Link",
},
crossUnsafeInactive:
{
available: function()
{
return true;
},
condition: function()
{
return State.variables.CharacterSheet_Player.hasAbility("Ability_DemonicEssenceShard");
},
passage: "Quest_MQ001_EchoFirstEncounter_Lake_CrossIt_Link_Inactive",
},
crossUnsafe:
{
available: function()
{
return true;
},
condition: function()
{
return !State.variables.CharacterSheet_Player.hasAbility("Ability_DemonicEssenceShard") && setup.getStatValue(State.variables.CharacterSheet_Player, "corruption") <= 75;
},
passage: "Quest_MQ001_EchoFirstEncounter_Lake_CrossIt_Link",
},
crossUnsafeCorrupted:
{
available: function()
{
return true;
},
condition: function()
{
return !State.variables.CharacterSheet_Player.hasAbility("Ability_DemonicEssenceShard") && setup.getStatValue(State.variables.CharacterSheet_Player, "corruption") > 75;
},
passage: "Quest_MQ001_EchoFirstEncounter_Lake_CrossIt_Corrupted_Link",
},
},
lukkaHouseLinks:
{
lookingForCure_start:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.lukkaQuest.complete == false;
},
condition: function()
{
return State.variables.CharacterSheet_Player.quest.lukkaQuest.askedForDemonEssence == false;
},
passage: "LukkaHouse_LookingForCure_Link",
},
lookingForCure_progress:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.lukkaQuest.complete == false;
},
condition: function()
{
var quest = State.variables.CharacterSheet_Player.quest.lukkaQuest;
return quest.askedForDemonEssence == true && quest.reservoirFilled == false;
},
passage: "LukkaHouse_LookingForCure_Progress_Link",
},
lookingForCure_complete:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.lukkaQuest.complete == false;
},
condition: function()
{
var quest = State.variables.CharacterSheet_Player.quest.lukkaQuest;
return quest.askedForDemonEssence == true && quest.reservoirFilled == true;
},
passage: "LukkaHouse_LookingForCure_Complete_Link",
},
corruptionLore_low:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.available_lukkaHouse_askCorruption;
},
condition: function()
{
return setup.getStatValue(State.variables.CharacterSheet_Player, "corruption") < setup.CorruptionComparators.PURE;
},
passage: "LukkaHouse_CorruptionLore_Low_Link",
},
corruptionLore_high:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.available_lukkaHouse_askCorruption;
},
condition: function()
{
return setup.getStatValue(State.variables.CharacterSheet_Player, "corruption") >= setup.CorruptionComparators.PURE;
},
passage: "LukkaHouse_CorruptionLore_High_Link",
},
lostLore:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.available_lukkaHouse_askLost;
},
condition: function()
{
return true;
},
passage: "LukkaHouse_LostLore_Link",
},
},
enterVillage:
{
corruption_FirstWarning:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.available_enterVillage_corruption_FirstWarning;
},
condition: function()
{
return setup.getStatValue(State.variables.CharacterSheet_Player, "corruption") > setup.CorruptionComparators.NEUTRAL && State.variables.CharacterSheet_Player.quest.corruptionVillageExiled == false;
},
passage: "Village_Corruption_FirstWarning",
},
corruptedAbel:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.available_enterVillage_corruptedAbel;
},
condition: function()
{
return State.variables.CharacterSheet_Abel.quest.deepCorruption == true && State.variables.CharacterSheet_Player.quest.corruptionVillageExiled == false;
},
passage: "Village_Corruption_CorruptedAbel",
},
exiled_meetAbel:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.available_enterVillage_exiled && State.variables.CharacterSheet_Player.quest.available_enterVillage_exiled_AbelReturn;
},
condition: function()
{
return State.variables.CharacterSheet_Abel.quest.deepCorruption == true && State.variables.CharacterSheet_Player.quest.available_enterVillage_exiled_AbelReturn_RemainingExpedition <= 0;
},
passage: "Village_Exiled_Abel_FirstTime",
},
exiled:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.available_enterVillage_exiled;
},
condition: function()
{
return State.variables.CharacterSheet_Player.quest.corruptionVillageExiled == true;
},
passage: "Village_Exiled",
},
normal:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.available_enterVillage_normal;
},
condition: function()
{
return true;
},
passage: "Village_Normal",
},
},
exploration:
{
villageGateNorth:
{
northFirstTime:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.available_exploration_villageGateNorth_northFirstTime;
},
condition: function()
{
return true;
},
passage: "Explore_NorthFirstTime",
},
northMeteorFall:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.available_exploration_villageGateNorth_northMeteorFall;
},
condition: function()
{
return State.variables.Expedition >= 3;
},
passage: "Explore_NorthMeteorFall",
},
northGrownMuscular:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.available_exploration_villageGateNorth_northGrownMuscular;
},
condition: function()
{
return setup.getStatValue(State.variables.CharacterSheet_Player, "muscles") > 30;
},
passage: "Explore_NorthGrownMuscular",
},
northVisibleCorruption:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.available_exploration_villageGateNorth_northVisibleCorruption;
},
condition: function()
{
return setup.getStatValue(State.variables.CharacterSheet_Player, "corruption") > 25;
},
passage: "Explore_NorthVisibleCorruption",
},
northGrownHeight:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.available_exploration_villageGateNorth_northGrownHeight;
},
condition: function()
{
var height = setup.getStatValue(State.variables.CharacterSheet_Player, "height");
return height > (25 * 12) && height < (50 * 12);
},
passage: "Explore_NorthGrownHeight",
},
northGrownHeightMassive:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.available_exploration_villageGateNorth_northGrownHeightMassive;
},
condition: function()
{
var height = setup.getStatValue(State.variables.CharacterSheet_Player, "height");
return height > (50 * 12);
},
passage: "Explore_NorthGrownHeightMassive",
},
},
villageGateEast:
{
eastFirstTime:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.available_exploration_villageGateEast_eastFirstTime;
},
condition: function()
{
return true;
},
passage: "Explore_EastFirstTime",
},
eastGrownMacro:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.available_exploration_villageGateEast_eastGrownMacro;
},
condition: function()
{
return setup.getStatValue(State.variables.CharacterSheet_Player, "height") > (50 * 12);
},
passage: "Explore_EastGrownMacro",
},
eastGrownDemonic:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.available_exploration_villageGateEast_eastGrownDemonic;
},
condition: function()
{
return setup.getRaceName(State.variables.CharacterSheet_Player).toUpperCase() == "DEMON";
},
passage: "Explore_EastGrownDemonic",
},
eastGrownParasites:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.available_exploration_villageGateEast_eastGrownParasites;
},
condition: function()
{
return State.variables.CharacterSheet_Player.quest.nyxParasiteInfections >= 10;
},
passage: "Explore_EastGrownParasites",
},
eastGrownLordOfLust:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.available_exploration_villageGateEast_eastGrownLordOfLust;
},
condition: function()
{
return setup.getRaceName(State.variables.CharacterSheet_Player).toUpperCase() == "LORD OF LUST";
},
passage: "Explore_EastGrownLordOfLust",
},
eastGrownMegaMacro:
{
available: function()
{
return State.variables.CharacterSheet_Player.quest.available_exploration_villageGateEast_eastGrownMegaMacro;
},
condition: function()
{
return setup.getStatValue(State.variables.CharacterSheet_Player, "height") > (200 * 12);
},
passage: "Explore_EastGrownMegaMacro",
},
},
}
}>>So could you – the power that this corrupting essence could bring. You move toward him, and straddle his monstrous abs.
You slide a hand down the length of one of your @[1|cocks|noverb] and push it into the sea of black.
A surge of fluid takes you by surprise as the corruption rushes into your enlarged cum pipe.
"Mrhhh! Mooooore...." you rumble, lustfully.
You smile at your victim, arch your back and plant your lips back onto his. Another rush of black blasts its way into your throat.
The ooze coils around your @[all|tongues|noverb] and floods into body with reckless abandon.
"GRAAAAHHHHH!"
Your muscles throb with power. A muffled roar escapes your throat as you push your @[all|tongues|noverb] deeper into the Lost's mouth.
You sit there, pumping your @[all|cocks|noverb] over his chest, locked in an endless kiss as his size begins to recede underneath you.So could you – the power that this corrupting essence could bring. You move toward him, and straddle his monstrous abs.
You slide a hand down the length of one of your @[1|cocks|noverb] and push it into the sea of black.
A surge of fluid takes you by surprise as the corruption rushes into your enlarged urethra.
"Mrhhh! Mooooore...." you rumble, lustfully.
You smile at your victim, arch your back and plant your lips back onto his. Another rush of black blasts its way into your throat.
The ooze coils around your @[all|tongues|noverb] and floods into body with reckless abandon.
"GRAAAAHHHHH!"
Your muscles throb with power. A muffled roar escapes your throat as you push your @[all|tongues|noverb] deeper into the Lost's mouth.
You sit there, pumping your @[all|cocks|noverb] over his chest, locked in an endless kiss as his size begins to recede underneath you.So could you – the power that this corrupting essence could bring. You move toward him and stand over his monstrous form.
You slide a hand down the length of one of your @[1|cocks|noverb] and push the tip so that its massive head hovers over his face.
Your cum pipe widens as your @[1|cocks|noverb] swallows his features.
A barrage of fluid takes you by surprise as the corruption rushes into your enlarged urethra.
"Mrhhh! Mooooore...." you rumble, lustfully.
You smile at your victim, arch your back and flex your impeccably strong pelvic muscles. With a resounding gulp, your victim is pulled
into your cock. You feel it writhe against your inner walls, feel him slowly travel down the length until his massive body lodges itself right above the base of your nutsack.
"GRAAAAHHHHH!"
Your muscles throb with power. You stifle a moan as you flex harder and send the helpless creature into your eager @[all|balls|noverb]
Frantic with rampant desire you pump your @[all|cocks|noverb] as you feel his essence filter into you.
With a final show of absolute dominance, your @[all|balls|noverb] rumble ominously and fire a monstrous load, the Lost riding within the massive stream
of white. He lands on the floor unceremoniously in front of you.So could you – the power that this corrupting essence could bring. You place your gigantic feet on either side of his body.
Hefting up @[1|cocks|a~an] in one hand, you pluck the weak creature up between your fingers.
You flash your teeth with a snarl and plunge him into the abyss of your urethra.
He was a gnat in the presence of a titan, a small morsel to an insatiable beast. Yet, although a tiny speck, you could feel every one of his movements down your cavernous length.
What seems to be minutes later, he lands in the unending ocean of seed within your sack and like a volcano ready to erupt, it shudders!
A surge of power and lust takes you as the corruption bleeds into your endless reserves. With an earth shattering roar, you grab on to your @[all|cocks|noverb] and
slide your hands across them with reckless abandon. Your legs shudder as your approach climax - holding on for dear life as an absolutely monstrous orgasm rocks you.
Arc after arc after arc blasts upwards into the air, landing far beyond the eye can see on some unsuspecting land.
"Mrhhh! Mooooore...." you rumble, lustfully.
You feel him coming up your cum pip, his minuscule form surfing the rapids inside of your spire of flesh.
With an absolutely amazing show of dexterity for someone of your size, you swing your hand through the mighty stream and catch the creature, the pressure against your hand backlashes onto you and coats you in a layer of alabaster.
"GRAAAAHHHHH!"
The heat of your own powerful seed sends you into overdrive and you truly let yourself go! Your @[all|cocks|one=rises~more=rises] with incredible pressure and they slam into your
chest. An unholy amount of semen blasts into the air, your own ivory stairway to the heavens.
You grin; looks like rainfall could be expected later today.
With a final show of absolute dominance, you unceremoniously dump the creature back onto the floor.You slide your gooey body over his and he moans from your touch alone. You rub one of your @[2|hands|noverb] across his bulging abs and up to his hard nipple.
The entity inside of you yearns for the darkened soul of the Lost in your thrall. You feel your @[all|tongues|noverb] slip from the confines
of your mouth and into his open, hot maw. You can taste his thick corruption. You feel your @[all|cocks|noverb] harden again.You slide your gooey body over his and he moans from your touch alone. You rub one of your @[2|hands|noverb] across his bulging abs and up to his hard nipple.
The entity inside of you yearns for the darkened soul of the Lost in your thrall. You feel your @[all|tongues|noverb] slip from the confines
of your mouth and into his open, hot maw. You can taste his thick corruption. You feel your @[all|cocks|noverb] harden again.Your gooey body towers over his and he moans from your presence alone. You rub one of your @[1|cocks|noverb] across his bulging abs, pinning him with the weight of it.
The entity inside of you yearns for the darkened soul of the Lost in your thrall. You feel your @[all|tongues|noverb] slip from the confines
of your mouth, sliding down your @[all|pecs|noverb] and twisting lower until it enters his hot maw. You can taste his thick corruption.You fall to your massive knees. The Lost's mouth opens wide in awe at the immensity of your body. You let your @[all|cocks|noverb] fall to the side of him with an earth pounding shudder.
The entity inside of you yearns for the darkened soul of the Lost in your thrall. You feel your @[all|tongues|noverb] slip from the confines
of your mouth, sliding down your @[all|pecs|noverb] and twisting lower until it enters his hot maw. You can taste his thick corruption.You feel the corruption take root within you. You embrace it, letting its warmth run its proverbial tongues over every inch of you and into your brain.
Dark whispers fill your mind.
You need to spread.
You need to fuck.
More. More! MORE!
Your body flushes with an unnaturally high level of arousal. Your nutsack rumbles and streams of pre launches out of your @[all|cocks|noverb] like a fire-hose.
You growl bestially as you realise your precious sperm is being wasted. Digging your fingers into the Lost's flesh, you ram your dick into
his ass until your @[all|balls|noverb] slap hard against his glutes. He snarls with the sudden intrusion.
You piston hard. Relentless. Back. Forward. Back. Forward.
"Ah! Fuck!" You feel a mind-shattering orgasm building.
The corrupt creature howls as your @[all|balls|noverb] push out an incredible deluge of ivory into his body.
His stomach rises beneath you as you keep thrusting and pounding into his sex.
"MOOOOOOORE!" You roar as your orgasm intensifies.
The rapture rocks through your @[all|cocks|noverb] and into every tense fibre underneath your skin.
Feeling you grow on top of him and within him – feeling his own stomach dome upwards and push you ever higher sets off the creature's own orgasm.
He releases an all-powerful howl and shoots his thick corrupting seed over your chest. The ebon, tar-like sperm showers you from below, coating your entire chest in its inky shade.You feel the corruption take root within you. You embrace it, letting its warmth run its proverbial tongues over every inch of you and into your brain.
Dark whispers fill your mind.
You need to spread.
You need to fuck.
More. More! MORE!
Your body flushes with an unnaturally high level of arousal. Your nutsack rumbles and streams of pre launches out of your @[all|cocks|noverb] like a firehose.
You growl bestially as you realise your precious sperm is being wasted. Digging your fingers into the Lost's flesh, you ram your dick into
his ass until your @[all|balls|noverb] slap hard against his glutes. He snarls with the sudden intrusion.
You piston hard. Relentless. Back. Forward. Back. Forward.
"Ah! Fuck!" You feel a mind-shattering orgasm building.
The corrupt creature howls as your @[all|balls|noverb] push out an incredible deluge of ivory into his body.
His stomach rises beneath you as you keep thrusting and pounding into his sex.
"MOOOOOOORE!" You roar as your orgasm intensifies.
The rapture rocks through @[all|cocks|noverb] and into every tense fibre underneath your skin.
Feeling you grow on top of him and within him – feeling his own stomach dome upwards and push you ever higher sets off the creature's own orgasm.
He releases an all-powerful howl and shoots his thick corrupting seed over your chest. The ebon, tar-like sperm showers you from below, coating your entire chest in its inky shade.You feel the corruption take root within you. You embrace it, letting its warmth run its proverbial tongues over every inch of you and into your brain. Dark whispers fill your mind.
You need to spread.
You need to fuck.
More. More! MORE!
Your body flushes with an unnaturally high level of arousal. Your nutsack rumbles and a tidal wave of pre launches out of your
@[all|cocks|noverb], washing over the Lost in front of you.
You growl bestially as you realise your precious sperm is being wasted. Grabbing the Lost's torso, you ram your dick
into his ass until your @[all|balls|noverb] slap hard against his glutes. He snarls with the sudden intrusion, but it quickly turns to a gurgle as your length almost reaches his neck from within.
You piston hard. Relentless. Back. Forward. Back. Forward.
"Ah! Fuck!" You feel a mind-shattering orgasm building.
The corrupt creature howls as your balls audibly rumble, shift and unleash a mind blowing torrent of ivory that arcs into the air and
splatters on the ground. You thrust erratically before falling to the floor. The pleasure is too intense! White pours over everything in sight.
The Lost is covered. You are covered. An ankle deep pools form around you as you roll in your own steaming virility.
"MOOOOOOORE!" You roar as your orgasm intensifies! Your vision is overtaken with alabaster cream.
Feeling you grow within him – feeling your hot seed cover every inch of his being sets off the creature's own orgasm. He gurgles
beneath the waves and shoots his thick corrupting seed over your chest, the black streaks quickly wash away by the excessive amount of seed around the both of you.
Your shoulders slump as you get back to your feet. You still see stars. The creature slowly slurps off of your cock and thuds into the pool
below with an emphatic splash.
The beast rolls onto his back with a heavy thud; his massive chest heaving up and down with ragged breaths of satisfaction.You feel the corruption take root within you. You embrace it, letting its warmth run its proverbial tongues over every inch of you and into your brain. Dark whispers fill your mind.
You need to spread.
You need to fuck.
More. More! MORE!
Your body flushes with an unnaturally high level of arousal. Your @[all|balls|noverb] quake behind you and a flood of thick
pre launches out of your @[all|cocks|noverb] and cascades over the land. What little trees are around you struggle
against the sudden onslaught of the teeming river.
You growl bestially as you realise your precious sperm is being wasted. You grab the Lost before his body
gets swept away with your produce and slam your dick into his ass until his rump slaps hard against your midriff. His snarls are suddenly cut off as
your @[1|cocks|one=erupts~more=erupts] out of him, his body once again morphing into your oily cocksleeve.
Grabbing him, you piston him up and down across your veined length. Relentless. Back. Forward. Back. Forward.
"Ah! Fuck!" You feel a mind-shattering orgasm building.
The corrupt creature gurgles as your balls shift, unleashing a mind blowing torrent of white that arcs into the air and splatters onto the ground with incredible
force. You thrust erratically before falling backwards onto your @[all|balls|noverb]. The pleasure is too intense! White pours over everything in sight.
Megaliters of cum pools around you! The land itself begins to cave in under your incredible weight! Lower and lower you sink. Higher and higher the sea rises.
"MOOOOOOORE!" You roar as your orgasm intensifies! Your vision is overtaken with alabaster as you submerge yourself into your own lake of seed.
Feeling you grow within him – feeling your steaming fluids cover every inch of his being sets off the creature's own orgasm. He gurgles and shoots his thick corrupting seed into the surrounding waters.
There's just too much. No matter what you do, you can't stop! The lake has already overflowed and you keep on at it for hours on end.
You are not sure how much time has passed since your orgasm ended, but you rise out of the lake larger and hornier than ever before.
You smile as you watch waves of white drip off of you and into your own macro sized cum bath.
With a wet schlorp, you pull the beast off of your @[1|cocks|noverb] once more.
The beast collapses onto his back with a heavy thud; his massive chest heaving up and down as his lungs relieve themselves of your incredible virility.You grasp the monster's cock. Although dripping with black oil, the skin is rock hard and slowly spreads your fingers wider with every beat of growth.
He shudders. With a slow, sensual movement, you tighten your digits and squeeze a thick rope of pre out of the tip.
At the same time, you bend your hips backwards and line up your @[2|cocks|one=with%his%tight%anus~more=with%his%anus%and%another%positioned%to%slide%across%his%midriff].
You tease his him, generating lewd moans and gasps as you slide your tip around the rim of his sphincter. He pushes his body against yours, forcing you inside of him.
His ass feels tight, yet the black goo makes the entry as smooth as it can be.
"Oh... Hmmm..."
You moan as the corrupt creature clenches his anus around your flesh. His moans turn into desperate grunts and growls as you ease yourself deeper inside of him.
The feeling of his tight virgin ass combined with the goo covering your cock from inside of him, is like nothing you've felt before.
His body grows warmer beneath you, almost burning with arousal. You thrust inside him, bring your @[all| arms|noverb] around him and lock lips.
His tongue darts inside of your mouth as he grabs you, running his meaty hands over your back. One of his legs wrap around you and you both spin in place as he
grinds his muscular body against yours. As you lay on your back and wrap yourself within his mighty embrace, you feel warmth rush inside of you.
"Ah... FUCK... GRAHHHH!"
You flip the beast onto his back with a mighty crash as your orgasm rocks your body into euphoria. His black cock erupts in a fountain of corrupted fluid over you.
A small amount of his corrupting essence enters you.
You feel your muscles throb with power.
The feeling rushes up your legs and into the core of your being.
You pinch your large nipples and groan.
"Moooooore..." You growl monstrously.You grasp the monster's cock. Although dripping with black oil, the skin is rock hard and slowly spreads your fingers wider with every beat of growth.
He shudders. With a slow, sensual movement, you tighten your digits and squeeze a thick rope of pre out of the tip.
At the same time, you bend your hips backwards and line up your @[2|cocks|one=with%his%tight%anus~more=with%his%anus%and%another%positioned%to%slide%across%his%midriff].
You tease his him, generating lewd moans and gasps as you slide your tip around the rim of his sphincter. He pushes his body against yours, forcing you inside of him.
His ass feels tight, yet the black goo makes the entry as smooth as it can be.
"Oh... Hmmm..."
You moan as the corrupt creature clenches his anus around your flesh. His growls turn into desperate grunts and moans as you ease yourself deeper inside of him.
The feeling of his tight virgin ass combined with the goo covering your cock from inside of him, is like nothing you've felt before.
His body grows warmer beneath you, almost burning with arousal. You thrust inside him, bring your @[all| arms|noverb] around him and lock lips.
His tongue darts inside of your mouth as he grabs you, running his meaty hands over your back. One of his legs wrap around you and you both spin in place as he
grinds his muscular body against yours. As you lay on your back and wrap yourself within his mighty embrace, you feel warmth rush inside of you.
"Ah... FUCK... GRAHHHH!"
You flip the beast onto his back with a mighty crash as your orgasm rocks your body into euphoria. His black cock erupts in a fountain of corrupted fluid over you.
A small amount of his corrupting essence enters you.
You feel your muscles throb with power.
The feeling rushes up your legs and into the core of your being.
You pinch your large nipples and groan.
"Moooooore..." You growl monstrously.You grasp the monster's cock. Although dripping with black oil, the skin is rock hard and slowly spreads your fingers wider with every beat of growth.
He shudders. With a slow, sensual movement, you tighten your digits and squeeze a thick rope of pre out of the tip.
At the same time, you bend your hips backwards and line up your @[2|cocks|one=with%his%tight%anus~more=with%his%anus%and%another%positioned%to%slide%across%his%midriff].
You tease his him, generating lewd moans and gasps as you slide your tip around the rim of his sphincter. He pushes his body against yours, forcing you inside of him.
It's an incredibly tight fit. You look down and grin as you see his stomach bulge outward from the sheer size of your tool. Yet, the black goo simply morphs around him to accommodate the size difference.
"Oh... Hmmm..."
You moan as the corrupt creature clenches his anus around your flesh. His growls turn into desperate grunts and moans as you push yourself in further.
Your cock expands with lust, and the creature's torso distends with a combination of the pre you are leaking within him and the size of your battering ram.
The feeling is like nothing you've felt before.
His body grows warmer beneath your weight, almost burning with arousal. You thrust inside him, the tip of your cock peeking out from his throat.
"Ah... FUCK... GRAHHHH!"
You slam your @[1|hands|noverb] into the ground, arch your back and unleash a terrifying orgasm that rockets out of the creature's ass and mouth.
The Lost's tools erupts in a fountain of corrupted fluid underneath you, coating your midriff and seeping into your pores.
A small amount of his corrupting essence enters you.
You feel your muscles throb with power.
The feeling rushes up your legs and into the core of your being.
You pinch your large nipples and groan.
"Moooooore..." You growl monstrously as you pull the creature off of your @[1|cocks|noverb] and throw him to the ground.You grasp the monster's cock. Although dripping with black oil, the skin is rock hard and slowly spreads your fingers wider with every beat of growth.
Impressive, considering how small he is compared to you. He shudders, looking up at your monstrously huge form. With a slow, sensual movement,
you tighten your digits and squeeze a thick rope of pre out of the tip of his cock.
With a single @[1|hands|noverb], you pick him up off of the ground and line him up with your @[all|pre-leaking|cocks| noverb].
You tease his him, placing his tiny form on its massive swollen head. You smile as his eyes widen at your turgid length.
Winner takes all.
You start pressing his anus down and watch as his legs spread wider and wider to accommodate the massive tower.
If there is anything you have learned from this world, it is that the corruption caters for any size.
The creature distends further and further, until you wrap his form around your tool like a cocksleeve.
"Oh... Hmmm..."
You moan as the corrupt creature's body clenches around your flesh.
His growls turn into desperate grunts and moans as you begin to piston your spire of flesh through him.
Your cock expands with lust, and the creature's torso distends even further. Fountains of pre fire from your tip with each thrust, pooling below you in lake sized bodies of fluid.
The feeling is like nothing you've felt before.
His body grows warmer around your cock, almost burning with arousal. You thrust even harder, your pre turning into waterfalls of white.
"Ah... FUCK... GRAHHHH!"
You slam one of your feet into the ground, arch your back and unleash a terrifying orgasm that rockets out of your @[all|cocks|noverb] and coats the land with blankets of ultra fertile sperm.
The Lost's tools erupts alongside you in a poor display compared to your own, yet the corruption still coats a portion of your cock.
A small amount of his corrupting essence enters you.
You feel your muscles throb with even more power.
The feeling rushes up your legs and into the core of your being.
You pinch your large nipples and groan as your cocksleeve is stretched to its limit.
"Moooooore..." You growl monstrously as you pull the creature off of your cock and drop his body to the ground far below you.Your hands meet, and your bodies clash for dominance. You struggle as the beast pulls you closer to him.
Your hard members are close enough to press and rub along each other. The black liquid that coats him smears and spreads across your @[all|cocks|noverb].
Suddenly, an immense feeling of arousal shakes you to your core as the beast's corrupting goo quickly slithers into your slit.
Your eyes open wide with renewed vigour and you shove the beast down to the ground. You land on top of its meaty chest, the tip of its pulsating head peeking up from your pecs.Your @[1|hands|noverb] engulfs his. With a show of strength and size, you pull his captured arm to the side and send him hurtling to the ground. He leaps back up and bear hugs you
with incredible strength, grinding his cock against your own. The black liquid that coats him smears and spreads across your @[all|cocks|noverb].
Suddenly, an immense feeling of arousal shakes you to your core as the beast's corrupting goo quickly slithers into your slit.
Your eyes open wide with renewed vigour and you shove the beast down to the ground. You land on top of its meaty chest, your cocks sandwiched between your bulks.Your @[1|hands|noverb] hurtles toward the Lost, but he dives and angles for your mighty @[all|cocks|noverb]. Although injured, he grabs onto his target
and shoves his dick into your urethra. Black cum erupts into your shaft and spreads across the insides of it.
Suddenly, an immense feeling of arousal shakes you to your core as the beast's corrupting goo quickly slithers into your ballsack.
Your eyes open wide with renewed vigour and you shove the beast down to the ground. You press his body into the sand with one @[1|hands|noverb].Your @[1|hands|noverb] hurtle toward the Lost, but he dives and angles for your @[all|cocks|noverb]. Although injured, he grabs onto his target
and shoves his entire arm into your urethra.
Black goo climbs into your shaft and spreads across the insides of it.
Suddenly, an immense feeling of arousal shakes you to your core as the beast's corrupting goo quickly slithers into your ballsack.
Your eyes open wide with renewed vigour and you shove the beast down to the ground with earth-breaking fury. You press his entire body into the sand with only three fingers, nearly crushing him.Running a hand down your body and ever lower, you gently caress your @[all| cocks| noverb]. Each inch of flesh that your fingers
brush over sends heated waves of pleasure throughout your body. Your efforts reward you with a few spurts of pre. Eager to explore more of yourself,
you reach down below to feel the weight of your @[all| balls| noverb]. You roll each orb in your hand, gently squeezing them.Running a hand down your body and ever lower, you gently caress your @[all| cocks| noverb]. Each inch of flesh that your fingers
brush over sends heated waves of pleasure throughout your body. You marvel at how much flesh extends from your waist. The fact that this
entire package belongs to you is enough for you to shiver in delight and jettison an average man's worth of cum as pre.
Eager to explore more of yourself, you reach down below to feel the weight of your @[all| balls| noverb]. They are heavy in your hands - virile factories ready to be put to work.Running a hand down your body and ever lower, you gently caress your @[all| cocks| noverb]. It's become impossible to hold your package with a single hand!
You brush your palms across as much flesh as they can reach, sending spears of blazing pleasure throughout your body. Your sheer size has far exceeded the normal, and you feel proud.
There is no other feeling like this - the feeling that your own toolset could easily skewer trenches if you so wished it!The thought of another good fuck sets your cum factories into motion.
The unmistakable feeling of pleasure crescendos, gathering until you roar and blast out
an unfathomable amount of cum, - a deluge of hot sticky liquid that quickly pools on the ground around you.
As your orgasm rocks you, you grope down below to feel the weight of your @[all| balls| noverb]. Merely touching them sends them into overdrive, each testicle vibrating as they push even more fluid out into the open.Running a hand down your body and ever lower, you gently caress your @[all| cocks| noverb]. You grin widely as you realise the devastation you could cause by simply letting their weight drop onto the ground!
You brush your hands across a vast expanse of flesh that rumbles with its own pulsing heartbeat. The pleasure is rampant. With a mighty roar, your tool explodes with fountains of thick cum, megaliters upon megaliters that quickly
paint the surroundings with your taint.
There is no other feeling like this - you are the alpha of this world, and it was yours to fuck. The mere thought of your virility pushes you even further over the edge;
your entire package rumbles and triples its output! You are causing a veritable flood from simply thinking about your own sex! You fall onto your rear, only to be cushioned by your
@[all| balls| noverb]. They bounce beneath you, working in overdrive to coat everything as far as the eye can see.Something catches your eye. You swab some of your fluid onto your finger and raise an eyebrow as you watch it turn black. Corruption seems to be taking hold of your body.Your @[all|cocks|noverb] refuse to stop leaking. You watch your cum turn dark and seep into the ground with morbid fascination. The land wants you to become a monster.Your @[all|cocks|noverb] refuse to stop leaking, the fluids turning obsidian as they linger in the open air. The stuff is thick like tar, yet still, the soil drains it eagerly.
You grin as you realise you are just about ready to accept the monster you have become.
You finish off your self-appreciation with one last firm squeeze of your nutsack. There is no more time to waste - you need to satiate your thirst.Your hands wander down past your slick, gooey, <<SymbioteColor>>-covered flesh to find your @[all| cocks| noverb], still throbbing at your recent orgasm. However, a renewed thrill runs through your body at the delicate, giving
flesh your hands find. Soon, dollops of altered, thick pre starts to well up from your reserves--already replenished due to your new companion.
Your hands, somewhat reluctantly, turn from your @[all| cocks| noverb], only to turn
their attention to your @[all| balls| noverb]. Each orb spends a time being held and admired, gently feeling them and their heft.Eagerly, your goo-dripping hands feel lower and lower, your @[all| cocks| noverb] already twitching as they anticipate the slick warmth your hands provide. Never before finding <<SymbioteName>> could you have imagined owning
such heft.
The thought of your own size--and the sudden thoughts of it getting even larger--makes your @[all| cocks| noverb] seemingly swell all that more, the thickened pre you have in this form starting to ooze out, despite your
recent orgasm. With that thought invading your mind, your hands wander down below to your @[all| balls| noverb], which are constantly full and heavy--always ready to pour out <<SymbioteName>>'s fluid.There is little need to explore your @[all| cocks| noverb]--you became intimately familiar during your orgasm to bring out <<SymbioteName>>. Yet you still find your hands wandering against your hefty weight, feeling
the overfull mass drape across your hands.
Already, your slick gooey cockflesh throbs with new liquid, pouring into your flesh, ready to be released. Your stretchy, slick flesh expands slightly at the pressure forced
into it, throbbing your gigantic cock out of your hand.
It pulses and throbs, awaiting more attention that your hands cannot possibly give it. As though to torment and prolong the awaiting release, you feel your hands
stroking across your goo-dripping, @[all| balls| noverb]. One orb is raised up, then released. You can simply feel the weight of the orb as it smashes into the ground, causing a grand rivet in the floor.Your slick hands are no stranger to your @[all| cocks| noverb]. Still erect from releasing <<SymbioteName>>, you can't even reach the tip even more. You can barely discern where it all ends. Yet you still feel these gigantic
goo-dripping members as a part of you. As part of <<SymbioteName>>. Your companion's slick form simply enhances the pleasure you feel--no rough spots can be felt, all is smooth, and all belongs to this form.
Quickly your hands
strike onto, and then partially into the erogenous flesh, causing intense white-hot pleasure to sear through you--a pleasure that soon comes erupting from you in physical form, a deluge drenching across all that you can see.
With no stop in sight, you feel your @[all| balls| noverb] tense and pump under you, their gooey form seemingly summoning an endless river from the ether to fuel your ecstasy. Your form seems to almost fall apart from the pleasure,
Leaving you nearly collapsed into a puddle mentally and physically.You watch as a dark black-purple stream runs through your goo form, almost imperceptable. Whatever corruption taints this land seems to have entered into your body.Your @[all|cocks|noverb] are streamed with small streams of black-purple corruption throb in concert with your heart, visible in your semi-transluscent flesh.Black ooze, nearly indistinguishable from your body, drips out of your @[all|cocks|noverb]--both directly out of the tip, yet also seemingly to ooze out of your very pours, dripping and darkening the very soil that you walk on.Sprouting from your glutes, your @[all| tails| one=whips~more=whip] from side to side. Your eyes travel down its length, and fixate on each feature before you smirk,
grab it with your hand and playfully swing it around.Sprouting from your glutes, your @[all| tails| one=whips~more=whip] from side to side with whooshing noises. Your eyes travel down its length, and fixate on each feature before you smirk,
grab it with your hand and playfully swing it around. The weight of it has become rather dangerous. A crash resounds behind you as you accidentally knock over your table. Case in point.Sprouting from your glutes, your @[all| tails| one=whips~more=whip] from side to side. Every movement of it now carries a hefty momentum that only someone with your size can control.
Now too large for your hand, and not to mention to hard to reach with your massive muscles - you thump it on the ground, heavily. The ground booms with its weight and large puffs of dirt explode into the air.
Just like the rest of you, your tail screams of power.Sprouting from your glutes, your @[all| tails| one=whips~more=whip] from side to side. Every twitch, flick and swaying motion creates heavy gusts of wind that tear at the plant-speckled dunes and structures below you.
Its weight is heavy enough that, should you crash it into the ground, it would not be difficult to create canyons or quakes. Your teeth flicker from behind your smug expression.
You mischieviously turn around and slap your tail into the lake. An absolute geyser of water shoots up over you, coating your stunning figure with a light watery sheen.
You spend a few more moments playing with it, dragging it across the ground to create ravines whilst the water settles once more.A few specks of black on the tip of your tail is enough to make you aware that the land is affecting you.A trail of black ooze occassionally forms from the tip of your tail. You reach for some with your fingers and taste the salty substance. A shudder of erotic pleasure courses through you.Lines of thick black goo stream from the tip of your tail, coating the ground in corruption. Your arousal is constantly sitting above dangerous levels thanks to the addictive and oh-so pleasurable substance. You smirk.
It is the mark of a beast, and you love it.Your gooey glutes transition into @[all| tails| noverb]. The size is perfectly manageable, the gentle swaying assists in keeping your balance in check.Your @[all| tails| noverb] wave back and forth, accenting your gooey glutes as they strike against whatever is in their path with surprising force. If you weren't more careful, you could knock over a wall with the flesh.Your @[all| tails| one=smashes~more=smash] into the wall of your old house, temporarily gluing itself to the structure before releasing for another pass to add to the indentations.
If you wanted, you could bring the building crashing down with an accidental whip of a tail."The ground is rushed away as your @[all| tails| one=whips~more=whip] through it, cascading a deep divot.
When occupying this new channel, your <<SymbioteColor>> semi-transparent tail looks similar to that of a river, roiling and filled with the almost fluid flesh.Your tail is very well intact, even with flicks and sways, <<SymbioteName>> maintains perfect form and structure. <<SymbioteName>> seems to enjoy the thought of having a clean cut through anything.Speckles of black spatter the patterning of your @[none| tails| noverb]. Each flick of your tail causes dense clumps to fling off of the goo. <<SymbioteName>> seems to be losing interest in the idea of keeping its form tightly bound to its body.The thin lines of purple and back swimming through your goo form drip out of the tips of your @[none| tails| noverb].
You hardly even need to move your tail as even with stillness, droplets stream away from the gooey tail. <<SymbioteName>> revels in the idea of using its tail as a brush, painting the earth around it with <<SymbioteColor>> goo.Black and purple goo mix freely with your @[none| tails| noverb] goo, erupting from the tips in a constant stream that drags across the floor behind you, marking the entire land with the addictive substance.
<<SymbioteName>> enjoys every moment of painting the land in <<SymbioteColor>> goo.<<SymbioteName>> wrings its tail around itself and brings a hand down to stroke the tail in self admiration.<<SymbioteName>> seems more than delighted in the thought of toying around with its tail as it coils around itself.<<SymbioteName>> seems delighted at that idea, it coils its tail around its torso, giving it gentle strokes in self admiration.<<SymbioteName>> flaps its tail within the basin, enjoying the thought of being massive enough to occupy the earth itself.Resting on your back and spreading wide are @[all| wings|noverb] that could easily support your weight in flight. You take turns flexing each of their inner limbs, stretching the membranes taught.
Playfully, you give them a good push and launch yourself backwards and onto your bed.Resting on your back and spreading wide are @[all| wings|noverb] that could easily support your weight in flight. Their tips are now large enough that it has become quite difficult to move inside of buildings -
like your own home! Like that mattered. They were beautiful and nothing screams power than unfolding them widely to touch the opposite walls of your room. You notice that each wing flexor is packing on a fair bit of muscle!
Striking a powerful pose, you flex them resulting in a rising display of bicep and tricep shaped muscles.Resting on your back and spreading wide are @[all| wings|noverb] that could easily support your heavy weight in flight. Out in the open, you have the freedom of stretching them to their massive wingspan.
Nothing in your life could have made you feel as proud as you do now as you marvel at the huge shadow they cast. You flap them gently and even with such a subtle movement, the size and power in each of those membranes
create monstrous waves across the lake's surfaceResting on your back and spreading wide are @[all| wings|noverb] that could easily support your heavy weight in flight. If any creature had somehow missed your gigantic body, then they certainly could not miss your eclipsing wingspan.
Their flexors have grown so heavy with muscle that they could function as extra pairs of arms.
With a mighty flex, and a powerful and prideful roar, you spread them out wide, their tips reaching past the edges of the lake and further, still.
You remain there - a deity amongst deities, a power among powers. If you had to flap them, that would be the end of the land around you. You smile as you retract them. Perhaps that would not be the best of ideas, for now.A few bolts of purple and black run across your inner membrane as you continue to examine your wings. You raise an eyebrow. It would seem no body part is unsafe from the taint of this world.bright glowing streaks of purple and black run across your membranes like spiderwork. Your wings shimmer with corruption, with power people should fear. Perhaps that would be a lesson for either yourself, or those who cross you.The edges of your wings are torn and occasionally drip black oil. Bolts of black lightning arc off of the tips of each wings' limbs, heralding the presence of monstrous corruption.Your back gently transitions into @[all| wings|noverb] that look as though they could carry you in flight. The ribs of the wings are joined not by fleshy membranes, but rather pliable goo.
You watch as a colored spec of your goo is cycled through the slow waterfall that is your membranes.Your hefty back supports @[all| wings| noverb] that are filled with a constant movement of that gooey flesh of <<SymbioteName>> that could support your weight during flight.
The goo can hide completely within your back or take form a shake similar to that of a cloak one may wear to conceal themself.
When extended, they reach from wall to wall of your room--even pressing up and causing your flexible form to bend ever so slightly from the pressure of the semi-sturdy walls.
That would not do: you chuckle as the gooey flesh rushes into the edges of your bent wings, filling them with strength and form as they expand, forcing divots into the walls.
Your adaptive body is so strong that even the wingtips can puncture walls on command.Your massive wingspan of @[all| wings| noverb] casts a shadow across nearly all you can see, the slowly circulating goo that forms the wings giving a somewhat ethereal, undulating quality to the shadows.
The massive size of your semi-transparent, dripping membranes alone could blot out an entire farm. Your wing dips into the lake, and you can feel it cup the water, a small pond in itself.You cannot see the tips of your @[all| wings| noverb] anymore. A simple flap of the gooey form is enough to cause cascading waves to roll across the lake and the vegetation beyond.
The thinnest of the bulk in the wings are more powerful and massive than your thigh was just a short time ago.
The slick goo that drips and moves across your membranes tenses and forms a strong barrier as you gently flap one of your wings, almost knocking over a tree.The texture of the gooey wings is soft and pliable with no imperfections. <<SymbioteName>> has kept the wings in pristine condition and maintains structure by remaining closely intact.The texture of your gooey wings is like thick, melting wax. <<SymbioteName>> is slightly restless and the wings feeling like they're beginning to lose a stable form.Spots of purple and black erupt from the edges of your goo wings, criss-crossing all across your membranes, a visible mark of your corruption. Your wings drip constantly, each flap causes wicks of goop to fly in all directions.Dark corrupt black ooze drips out of your gooey membranes, coating the ground in your monstrous corruption. When folded in, your back gives off the appearance of wearing a cape made of flowing water.
When spread out, your wings constantly seep out in all directions. Each flap of your wings practically coats the entire area beneath you within the runny texture of goo.<<SymbioteName>> brings an arm up to fondle the massive wings in self admiration.<<SymbioteName>> brings an arm up to fondle the massive wings in self admiration.<<SymbioteName>> brings an arm up to fondle the massive wings in self admiration, almost enthralled by the size of itself.<<SymbioteName>> brings an arm up to fondle the massive wings in self admiration, almost enthralled by the size of itself.Moving from side to side, you proudly examine the @[all| horns| noverb] that crown your fearsome visage. Their weight is pleasant on your neck and their points sharp enough to cause
some serious damage. You run a hand across one of them, relishing in the feeling of power and protection it gives you.Moving from side to side, you proudly examine the @[all| horns| noverb] that crown your fearsome visage. Their weight is heavy, but your thick neck can easily support it.
You pick up a nearby piece of metal and run it across the points. It splits like butter. These could cause some serious damage. You run a hand across one of them, relishing in the feeling of power and protection it gives you.Moving from side to side, you proudly examine the @[all| horns| noverb] that crown your fearsome visage. Their weight is incredible, it feels as if their momentum would be enough to even knock you off balance if you aren't careful!
You bend down and test your horn's strength on the ground. The earth quakes as you rip out a clean hole. These are horns that you can be proud of. You run a hand across one of them, relishing in the feeling of power and protection it gives you.Moving from side to side, you proudly examine the @[all| horns| noverb] that crown your fearsome visage. Each time you move your head, the air parts as if a mountain had suddenly flung itself across a distance.
They are the only weight on this planet that challenges your massive neck and you love the feeling.
It is far too dangerous to test your horns out, the amount of earth that they would penetrate would easily split the ground for a fair distance.
You run a hand across one of them, relishing in the feeling of power and protection it gives you.As your finger runs across the surface, you feel small indentations that were never there before. They don't feel randomly shaped either!
If you trace your fingers across them, they feel runic. You wonder if it's the corruption's influence.Your finger gently passes over faintly glowing runes of purple. Every crevice cracks with small arcs of corruption which fire miniature bolts of arousal into your very core.You find yourself repeating this motion for a while. In fact, it has become daily practice. Every purple rune now drips with aphrodesiac and its touch is as pleasurable as tongues worshipping your glorious package.
Why stop when you could reach an orgasm from touching your horns alone?<<SymbioteName>> is crowned with @[all| horns| noverb]. Due to its gooey nature, they are slightly pliable when relaxed.
However, as your head rubs up against a wall, the semi-fluid of its flesh shifts around, forcing them into sharp, dense spires.
Acting similarly to a non-newtonian fluid, They could do quite a bit of damage when needed.<<SymbioteName>>'s slightly malleable @[all| horns| noverb] weigh upon its head, slowly dripping with its essence.
But in a sudden impulse, you decide to thrust them against some metal, where they instantly harden and pierce through.
Acting like a non-newtonian, the raw power even in just one horn leaves you smiling.The weight of <<SymbioteName>>'s dripping @[all| horns| noverb] would crush those with a weaker neck. Fortunately, that does not apply to you.
A chuckle escapes your lips as you lean down and push your horns deep into the ground, gouging out a trench in the lakeside. The sturdiness of the fluid keeps it intact whenever pressure is applied.<<SymbioteName>>'s gooey visage is framed by towering spires of @[all| horns| noverb]. They raise up into the sky, mighty towers befitting a master of the world that the two of you have become.
You have the weight of the world on your shoulders, along with its dangerous power. One single horn could pierce through an entire tower, used as a siege breaker.The glistening horns are perfectly unblemished and well intact.Reflected in the outer layer of your slightly-transluscent horns lies certain geometric shapes that you cannot identify.The horns constantly drip, steady droplets escape from any point of contact. Glowing in the middle of the horns are faint, purple runes.The horns constantly drip with a downpour of goo as if there were a waterfall before your eyes. The corrupt purple runes from inside your horns glow out in a constant stream, radiating from your head like a halo of pure corruption.You find yourself admiring your @[all| heads| noverb]. You try out a few expressions showing off your jawline - both open and clenched, how your cheeks
are shaped beneath your eyes and the way they lead to your mouth.
There, your @[all|eyes|noverb] linger before you open your @[all| jaws | noverb] wide
and let your @[all| tongues| noverb] slip out over your @[all| teeths| noverb].You find yourself admiring your @[all| heads| noverb]. You try out a few expressions showing off your jawline - both open and clenched, how your cheeks
are shaped beneath your eyes and the way they lead to your mouth.
There, your @[all|eyes|noverb] linger before you open your @[all| jaws | noverb] wide
and let your @[all| tongues| noverb] slip out over your @[all| teeths| noverb].You find yourself admiring your @[all| heads| noverb]. You try out a few expressions showing off your jawline - both open and clenched, how your cheeks
are shaped beneath your eyes and the way they lead to your mouth. There, your let your @[all|eyes|noverb] linger before you open your @[all| jaws | noverb] wide
and let your @[all| tongues| noverb] slip out over your @[all| teeths| noverb].You find yourself admiring your @[all| heads| noverb]. You try out a few expressions showing off your jawline - both open and clenched, how your cheeks
are shaped beneath your eyes and the way they lead to your mouth. There, your let your @[all|eyes|noverb] linger before you open your @[all| jaws | noverb] wide
and let your @[all| tongues| noverb] slip out over your @[all| teeths| noverb].After thoroughly inspecting your pearly whites for dirt, cavities or any other unwelcome sights, you snap your @[2|jaws|noverb] shut and continue your visual tour.Looking closer, your tongue seems to be unnaturally long for your mouth. Testing it out, you manage to unroll the fleshy tube until the tip touches the underside of your chin.
There are small black dots at the base. It reminds you of the Lost. You slip your tongue back into your mouth and wipe the spittle off of your chin.You let your tongue roll lower and lower until a fair portion slides across your meaty chest. Your taste is phenominal - the flavour of a dominant male. Black streaked saliva spreads across your body
as your tongue slabbers over it. Your spittle drips from its fleshy surface in small rivulets. Before things get too messy, you retract the limb.You let your tongue slide lower until a thick layer of black saliva coats your chest. You let it run even lower, the tip reaching down for your treasure trail and tasting every musky ravine it finds on the way.
It extends even further, until it is able to travel up toward a leaking and waiting cockslit and plunges itself into the shaft. The taste is sublime and the feeling - the feeling fires explosive bursts of euphoria
right into the core of your very being. You could do this for hours, as you have before, until you came all over the black fleshy surface of your tongue. Yet, you hold back.
There is far more of you to explore before. Playtime would come soon. You roll your tongue back into your mouth.<<SymbioteName>> is in perfectly pristine condition, flawless, thoroughly viscous and well intact. <<SymbioteName>> remains closely wound to your body, seemingly contented with remaining in its place.
Satisfied with its standings, your eyes wander down to inspect the rest of it."Looking closer, <<SymbioteName>> drips slightly like thick, melting wax. Droplets of goo drip from your face in small, but dense clumps.
You are increasingly aware of the slick feeling of running goop all over you. Wiping some excess goo off of your face, it sloughs off in clumps as you shake your arm free of the goop.
<<SymbioteName>> almost seems like it's trying to escape from you, as if it wanted more from the world that lies past the bounds of your body.<<SymbioteName>> is extremely runny, slick and slimy. Gentle streams of goo run down your face and all over your body as you try to shake it off reflexively.
To no avail, there's a notable puddle of goo forming at the base of your stance, but the volume of <<SymbioteName>> seemingly remains unchanged.
<<SymbioteName>> trembles with need, filled with carnal desire, longing for release.Cascades of goo stream across your face in a constant downpour. <<SymbioteName>> has become a writhing mass of permeable fluid, barely intact as it drips everywhere.
An incessant trail of slime lingers in your wake, which seemingly has no effect on <<SymbioteName>> volume. <<SymbioteName>> demands satisfaction, desperate for another toy to play with. Who would you be to not give into the thought?Below the waist, you sport @[all| legs| noverb]. You raise one, proudly, before bringing your foot back to the ground with a heavy stomp. The sound of heavy weight compacting sand is quite satisfactory.
You admire the contour of each teardrop of your thighs and the diamond shape of each calf. It doesn't take long before you find yourself worshipping your body, running your hand over each mound.
You flex and feel the ravines of your body consume your fingers and how each crest pushes against your palm.Below the waist, you sport @[all| legs| noverb]. You raise a proud knee before bringing your foot back to the ground with a heavy stomp. The sound is heavy, and far more powerful than it was before.
You admire the contour of each teardrop of your thighs and the diamond shape of each of your calves. It doesn't take long before you find yourself worshipping your body, running your hand over each mound.
You flex each and feel the ravines of your body consume your fingers and how each crest pushes against your palm. Your muscles have grown large enough that you could trap your own finger between two muscles if you weren't careful.Below the waist, you sport @[all| legs| noverb]. You raise one, proudly, before bringing your foot back to the ground with a heavy stomp. A resounding boom echoes across the land as the earth beneath your foot splinters and cracks.
You enjoy being a giant and the feeling of power it gives you. You admire the contour of each teardrop of your thighs and the diamond shape of each of your calves.
It doesn't take long before you find yourself worshipping your body, running your hand over each mound.
It takes longer for your hand to fully caress the entirety of every muscle. There is so much to explore and even more than that when
you flex! Your legs feel like granite and in fact, could probably bend titanium with ease.Below the waist, you sport @[all| legs| noverb]. You raise one, proudly, but hesitate before bringing your foot back to the ground, softly.
A resounding boom echoes across the land as the earth beneath your foot splinters and cracks. It seems you have compacted so much mass into each pillar-like leg that the
ground can barely hold its own agains you, even when you were being gentle! You are a titan supported by the massive foundations.
You admire the contour of each teardrop and the diamond shape of each of your calves. It doesn't take long before you find yourself worshipping your body, running your hand over each mound.
It's difficult to reach every muscle, they're simply too gargantuan!
Every one of your limbs are limited by the sheer amount of muscle on them as it is, but the awkward angle you would need to feel the underside of your leg was now virtually impossible.
That's just fine for you, because when you flex your legs, you can feel the very air quiver in fear of what they can do.Below the waist <<SymbioteName>> sports @[all| legs| noverb]. You raise a leg, proudly before bringing your foot back to the ground with a heavy stomp.
The gooey texture of your body holds its form well enough. You admire the contour of each teardrop of the thighs and the diamond shape of each calf.
It doesn't take long before you find yourself worshipping <<SymbioteName>>'s body, running your hand over each mound.
You flex and feel the ravines of <<SymbioteName>> body consume your fingers and how each crest pushes against your palm.Below the waist <<SymbioteName>> sports @[all| legs| noverb]. You raise a proud knee before bringing your foot back to the ground with a heavy stomp.
The gooey texture of your body holds its form well enough despite the bulk of its body. You admire the contour of each teardrop of your thighs and the diamond shape of each of your calves.
It doesn't take long before you find yourself worshipping <<SymbioteName>>'s body, running your hand over each mound.
You flex each and feel the ravines of your body consume your fingers and how each crest pushes against your palm.
The pseudo muscles have grown large enough that you could easily trap your own finger within the creases of the musculature.Below the waist <<SymbioteName>> sports @[all| legs| noverb]. You raise a leg proudly before bringing your foot back to the ground with a heavy stomp.
The gooey texture of your body quivers before the quake and thundering crash of your efforts.
Once the quaking of your gooey form subsides, you admire the contour of each teardrop of your thighs and the diamond shape of each of your calves.
It doesn't take long before you find yourself worshipping <<SymbioteName>>'s body, running your hand over each mound. It takes longer for your hand to fully caress the entirety of every muscle.
There is so much to explore and even more than that when you flex! <<SymbioteName>> is definitely more than sturdy enough to match the sheer volume of its size.Below the waist <<SymbioteName>> sports @[all| legs| noverb]. You raise one, proudly, but hesitate before bringing your foot back to the ground, softly.
A resounding boom echoes across the land as the earth beneath your foot splinters and cracks. The sheer volume of <<SymbioteName>>'s mass feels endless. Truly a gargantuan, you can't help but enjoy the size of the gooey form.
You admire the contour of each teardrop and the diamond shape of each of its calves.
It doesn't take long before you find yourself worshipping <<SymbioteName>>'s body, running your hand over each mound. It's difficult to reach every muscle, <<SymbioteName>> is simply too gargantuan!
Every one of your limbs are limited by the sheer amount of bulk on them as it is, but the awkward angle you would need to feel the underside of your leg was now virtually impossible.
All is not lost, for even the very world seems to quiver before <<SymbioteName>>'s gargantuan size.The legs themself are very well compacted. <<SymbioteName>> has molded its body closely together and is free of imperfections, content with clutching onto itself tightly.The legs themself have a clumpy texture, like thick, melty wax. <<SymbioteName>> seems interested in exploring the bounds outside of its own body as dense clumps of goo slough off of the legs with each step.The legs themself are very runny, gentle streams of goo run down your form, merging into the puddle that forms beneath you when you stay in one place too long.
Despite this, <<SymbioteName>> doesn't lose any volume.
It would seem almost as if they were trying to escape from you with each droplet, as if it was eager to escape the bounds of your body and spread its influence across the land.The legs themself constantly cascade with a downpour of goo from every pore. Even with only mere moments of stillness, a noticeable puddle of goo has formed within your wake.
Despite this, <<SymbioteName>> doesn't lose any volume, displaying the sheer force of will and control over its mentality.
<<SymbioteName>> craves release with every moment, desperate to spread its presence and find new toys to play with.Below the waist <<SymbioteName>> sports @[all| legs| noverb].
With eagerness, it raises a leg proudly before bringing its foot back to the ground with a heavy stomp, admiring the crash of its body against the ground. The gooey texture of your body holds its form well enough.
<<SymbioteName>> admires the contour of each teardrop of the thighs and the diamond shape of each calf.
It doesn't take long before <<SymbioteName>> is simply worshipping its body, running its hand over each mound of flesh.
It flexes and fondles the ravines of its own body, enthralled by self admiration.Below the waist <<SymbioteName>> sports @[all| legs| noverb].
With eagerness, It raises a proud knee before bringing your foot back to the ground with a heavy stomp, admiring the crash of its body against the ground.
The gooey texture of your body holds its form well enough despite the bulk of its body.
<<SymbioteName>> admires the contour of each teardrop of its thighs and the diamond shape of each of its calves.
It doesn't take long before you find yourself worshipping <<SymbioteName>> body, running your hand over each mound.
It flexes each muscle to feel the ravines of its body consume its fingers and the way each crest presses against its palm.
The pseudo muscles have grown large enough for <<SymbioteName>> to worship contentedly, captivated by self admirationBelow the waist <<SymbioteName>> sports @[all| legs| noverb]. With eagerness, It raises a leg proudly before bringing its foot back to the ground with a heavy stomp.
The gooey texture of your body trembles before the quake and thundering crash of your efforts.
Once the quivering of your gooey form subsides, <<SymbioteName>> admires the contour of each teardrop of its thighs and the diamond shape of each of its calves.
It doesn't take long before <<SymbioteName>> is simply worshipping its body, running its hand over each mound. It takes longer for its hand to fully caress the entirety of the massive bulk.
There is so much to explore and even more than that when it flexes.
<<SymbioteName>> is admiring the efforts of its bulk and enjoying the shifting of its body with each flex. It continues the self admiration grope fest, enraptured by its own body.Below the waist <<SymbioteName>> sports @[all| legs| noverb].
With eagerness, it raises one, proudly before bringing its foot back to the ground. A resounding boom echoes across the land as the earth beneath your foot quakes.
The sheer volume of <<SymbioteName>>'s mass feels endless. Truly a gargantuan, <<SymbioteName>> can't help but enjoy the size of its form.
It admires the contour of each teardrop and the diamond shape of each of its calves.
It doesn't take long before <<SymbioteName>> is simply worshipping its body, running its hand over each mound.
It's difficult to reach every muscle, <<SymbioteName>> is simply too gargantuan.
Every one of its limbs are limited by the sheer amount of bulk on them as it is, but the awkward angle <<SymbioteName>> would need to feel the underside of your leg was now virtually impossible.
<<SymbioteName>> makes an attempt to continue its self admiration nonetheless with constant groping, completely enraptured by its own body.Your eyes follow every curve of your neck down toward your body, proper. You push your shoulders backwards and push out your @[all| pecs| noverb], bouncing each muscle with impressive
control.You raise your @[all| arms| noverb] into a powerful flex, curling your @[2| hands| noverb] inwards to truly make each bicep rise. You then bring them forward to touch your sensitive nipples,
running your fingers across the edge of the circular nubs.
Moaning from the pleasure, you let your hands glide down to your lower torso and feel each curve of your @[all| abdominals| noverb]. Your every movement causes them to shift and bulge.Your eyes follow every curve of your neck down toward your body, proper. You push your shoulders backwards and push out your @[all| pecs| noverb], bouncing each muscle with impressive
control. You can feel their weight as they rise and fall - you can even get a small ripple of muscle to run from the top of each pec to the bottom!
You raise your @[all| arms| noverb] into a powerful flex, curling your @[2| hands| noverb] inwards to truly make each bicep rise.
You can hear audible creaks from your bones and flesh as your muscles' size puts strain on them. You then bring them forward to touch your hard and sensitive, nipples,
running your fingers across the fairly sized nubs - nubs large enough to grip and squeeze. You moan from the pleasure.
After a minute of fondling, you let your hands glide down to your lower torso and feel each curve of your @[all| abdominals| noverb]. Your every movement causes them to shift and bulge.
Your laterals are now large enough to push your arms upwards and outwards giving you an imposing and brawny stance.Your eyes follow every curve of your neck down toward your body, proper. You push your shoulders backwards and push out your @[all| pecs| noverb], bouncing each muscle with impressive
control. You can feel their heavy weight as they rise and fall with loud shudders. Each vein and chord is incredibly visible with the sheer amount of mass focused into each pec!
You raise your @[all| arms| noverb] into a monstrous flex, curling your @[2| hands| noverb] inwards to truly make each bicep rise like hills.
You can hear audible creaks from your bones and flesh as your muscles strain your skin enough that each vein becomes clearly visible. They are thick firehoses that sprawl all across your form - juicy highways providing the huge amount of
fuel your body now needs. Lowering your arms, you bring them forward to touch your hard and sensitive, nipples,
running your fingers across the large protroding nubs. They take up a fair portion of the space within your hand. You moan.
After a minute of fondling, you let your hands glide down to your lower torso and feel each curve of your @[all| abdominals| noverb]. Your every movement causes them to shift and bulge.
Your laterals now force your arms up to the point that your shoulders are encroaching on your neck's territory. Your figure forms an almost perfect Y-shape, the pinnacle of form.Your eyes follow every curve of your neck down toward your body, proper. You push your shoulders backwards and push out your @[all| pecs| noverb], bouncing each muscle with impressive
control. The very air thunders as each muscle creates small shockwaves of force. Every vein and chord is incredibly visible with the impossible amount of mass focused into each pec!
You raise your @[all| arms| noverb] into a mind-shattering and monstrous flex, curling your @[2| hands| noverb] inwards. Muscles that shouldn't exist rise alongside your mountainous bicep and conduct an
orchestra of creaking flesh - the sound a metal bunker would make if it had to bend and teeter. Thick firehose veins sprawl all across your form and visibly pulsate with the huge amount of
fuel your body now needs.
Lowering your arms, you bring them forward to touch your hard and sensitive nipples,
running your fingers across massive protroding nubs. You grab a handful of nipple and squeeze, your body instantly tensing into a cluster of bulging muscle. You moan as your head is all but swallowed.
After a minute of fondling, you let your hands glide down to your lower torso and feel each curve of your @[all| abdominals| noverb]. With a mischievious booming laugh, you flex them
and create a thundering clap that rivals thunder itself. Finally, you bring each arm down into a most-muscular pose and feel your back and laterals flare out so widely that your vision is completely engulfed by your own body!Your eyes follow every curve of <<SymbioteName>>'s neck down toward its body.
You bring your shoulders backwards and push out <<SymbioteName>>'s @[all| pecs| noverb], as the glistening muscles bounce with control.
You raise your @[all| arms| noverb] into a powerful flex, curling your @[2| hands| noverb] inwards to make the biceps rise.
You then bring them forward to touch your pliable nipples, running your fingers across the edge of the gooey, circular nubs.
Moaning from the pleasure, you let your hands glide down to your lower torso and feel each curve of your @[all| abdominals| noverb]. Your every movement causes them to shift and bulge.Your eyes follow every curve of <<SymbioteName>>'s neck down toward its body, proper.
You bring your shoulders backwards and push out <<SymbioteName>>'s @[all| pecs| noverb], bouncing each muscle with impressive control.
You can feel the weight as it rises and falls. Even with the gooey texture, you can even get a small ripple of muscle to run from the top of each pec to the bottom.
You raise your @[all| arms| noverb] into a powerful flex, curling your @[2| hands| noverb] inwards to truly make each bicep rise.
You can hear audible sloshing from the movement of the faux musculature as its size fights against itself.
You then bring them forward to touch <<SymbioteName>> soft and pliable, nipples, running your fingers along the areola.
You moan from the pleasure. After a minute of fondling, you let your hands glide down to your lower torso and feel each curve of your @[all| abdominals| noverb].
Your every movement causes them to shift and bulge. The laterals are large enough to push your arms upwards and outwards giving you an imposing and brawny stance.Your eyes follow every curve of <<SymbioteName>>'s neck down toward its body.
You push your shoulders backwards and push out your @[all| pecs| noverb], bouncing each muscle with impressive control.
You can feel their heavy weight of the perfectly chiseled pectorals as they rise and ripple with each fall.
You raise your @[all| arms| noverb] into a monstrous flex, curling the @[2| hands| noverb] inwards to truly make each bicep rise like hills.
You can hear audible sloshing from the movement of the needlessly enormous musculature as its size fights against itself.
These arms are truly a glorious, massive, perfectly built masterpiece. Lowering your arms, you bring them forward to touch your hard and sensitive, nipples, running your fingers across the large protroding nubs.
They take up a fair portion of the space within your hand. You moan. After a minute of fondling, you let your hands glide down to your lower torso and feel each curve of your gooey @[all| abdominals| noverb].
Your every movement causes them to shift and bulge. Your laterals now force your arms up to the point that your shoulders are encroaching on your neck's territory. <<SymbioteName>> figure forms an almost perfect Y-shape, the pinnacle of form.Your eyes follow every curve of <<SymbioteName>>'s neck down toward its body. You push your shoulders backwards and push out your @[all| pecs| noverb], bouncing each muscle with impressive control.
The very air thunders as each muscle creates small shockwaves of force. The enormous pecs are gloriously dense and sculpted with the precision that'd make the finest craftsmanship seem like fodder before them.
You raise your @[all| arms| noverb] into a mind-shattering and monstrous flex, curling your @[2| hands| noverb] inwards.
Muscles that shouldn't exist rise alongside the mountainous bicep, the goo holds firmly in place, nearly warping the light around it by its sheer volume.
The faux musculature is admirable nonetheless, inspiring awe to any onlooker. Lowering your arms, you bring them forward to touch your hard and sensitive nipples, running your fingers across massive protroding nubs.
You grab a handful of nipple and squeeze, the gooey body instantly tensing into a cluster of bulging muscle. You moan as your head is all but swallowed.
After a minute of fondling, you let your hands glide down to your lower torso and feel each curve of your @[all| abdominals| noverb]. With a mischievous booming laugh, you flex them and create a thundering clap that rivals thunder itself.
Finally, you bring each arm down into a most-muscular pose and feel your back and laterals flare out so widely that your vision is completely engulfed by the size of the goo.Your eyes meander around the goo covering your torso, it is perfectly intact, clean and unblemished. <<SymbioteName>> seems content on keeping the shape of its upper body clean and stable.Your eyes meander around the goo covering your torso, it drips slightly, like a wax candle that has just begun to melt. The clumps of goo slough whenever you bring a hand to wipe it off.
<<SymbioteName>> seems restless, almost as if it wanted to escape but didn't care enough to make a full attempt.Your eyes meander to the running goo across your torso. It flows in constant, but gentle streams. It almost gives the sensation of sweat constantly pouring down your chest.
<<SymbioteName>> is trembling softly, it's form becoming increasingly more amorphous and unstable.Your eyes meander to the constant dripping of goo from your torso. <<SymbioteName>> has become reckless, its form is unstable and trembles with need.
A constant downpour of goo leaks from its pores, making the body feel slick and slimy. <<SymbioteName>> is restless, needy, desperate for attention or a new toy to mess with.Your eyes follow every curve of <<SymbioteName>> neck down toward its body. <<SymbioteName>> springs into action as it continues to admire itself.
It brings your shoulders backwards and puffs out its @[all| pecs| noverb] as the glistening muscles bounce with control.
<<SymbioteName>> raises your @[all| arms| noverb] into a powerful flex, curling your @[2| hands| noverb] inwards to make the biceps rise.
<<SymbioteName>> is positively loving every moment of its self admiration.
Soon enough, <<SymbioteName>> then brings its hand forward to touch its pliable nipples, running its fingers across the edge of the gooey, circular nubs.
After forcing a moan of pleasure from you, it glides its hands down to your lower torso to feel each curve of its @[all| abdominals| noverb]. Your every movement causes them to shift and bulge.Your eyes follow every curve of <<SymbioteName>> neck down toward its body. <<SymbioteName>> springs into action as it continues to admire itself.
<<SymbioteName>> brings your shoulders backwards and puffs out its @[all| pecs| noverb], bouncing each muscle with impressive control.
You can feel the weight as it rises and falls. Even with the gooey texture, you can even get a small ripple of muscle to run from the top of each pec to the bottom.
<<SymbioteName>> raises your @[all| arms| noverb] into a powerful flex, curling your @[2| hands| noverb] inwards to truly make each bicep rise.
You can hear audible sloshing from the movement of the faux musculature as its size fights against itself. <<SymbioteName>> is positively loving every moment of its self admiration.
Soon enough, it brings its arms forward to touch its soft and pliable, nipples, running your fingers along the areola.
After forcing a moan of pleasure from you, <<SymbioteName>> lets its hands glide down to your lower torso and feel each curve of your @[all| abdominals| noverb].
Your every movement causes them to shift and bulge. The laterals are large enough to push your arms upwards and outwards giving <<SymbioteName>> a large and very muscular stance.Your eyes follow every curve of <<SymbioteName>> neck down toward its body. <<SymbioteName>> springs into action as it continues to admire itself.
It pushes your shoulders backwards and puffs out its @[all| pecs| noverb], bouncing each muscle with impressive control.
You can feel their heavy weight of the perfectly chiseled pectorals as they rise and ripple with each fall.
<<SymbioteName>> raises your @[all| arms| noverb] into a monstrous flex, curling the @[2| hands| noverb] inwards to truly make each bicep rise like hills.
You can hear audible sloshing from the movement of the needlessly enormous musculature as its size fights against itself. These arms are truly a glorious, massive, perfectly built masterpiece.
<<SymbioteName>> is positively loving every moment of its self admiration. Lowering your arms, <<SymbioteName>> brings them forward to touch its hard and sensitive, nipples, running your fingers across the large protroding nubs.
They take up a fair portion of the space within your hand. After forcing a moan of pleasure from you, it lets your hands glide down to your lower torso to get a feel for each curve of your gooey @[all| abdominals| noverb].
Your every movement causes them to shift and bulge. Your laterals now force your arms up to the point that your shoulders are encroaching on your neck's territory.
<<SymbioteName>> figure forms an almost perfect Y-shape, a perfect display of peak form.Your eyes follow every curve of <<SymbioteName>> neck down toward its body. <<SymbioteName>> springs into action as it continues to admire itself.
It pushes your shoulders backwards and puffs out its @[all| pecs| noverb], bouncing each muscle with impressive control. The very air thunders as each muscle creates small shockwaves of force.
The enormous pecs are gloriously dense and sculpted with the precision that'd make the finest craftsmanship seem like fodder before them.
<<SymbioteName>> raises your @[all| arms| noverb] into a monstrous flex, curling your @[2| hands| noverb] inwards.
Muscles that shouldn't exist rise alongside the mountainous bicep, the goo holds firmly in place, nearly warping the light around it by its sheer volume.
The faux musculature is admirable nonetheless, inspiring awe to any onlooker. <<SymbioteName>> is positively loving every moment of its self admiration.
Lowering your arms, it brings them forward to touch your hard and sensitive nipples, running its fingers across the massive protroding nubs.
<<SymbioteName>> grabs a handful of its pectoral and squeezes, the gooey body instantly tensing into a cluster of bulging muscle.
Your head is all but swallowed beneath its tremendous form. After forcing a moan of pleasure from you, <<SymbioteName>> lets your hands glide down to your lower torso and feel each curve of your @[all| abdominals| noverb].
<<SymbioteName>> flexes them and creates a thundering clap with volume that'd cause anyone within its presence to tremble.
Finally, <<SymbioteName>> brings each arm down into a most-muscular pose as its back and laterals flare out so widely that your vision is completely engulfed by the size of the goo.<<SymbioteName>> seems to be enjoying all of the attention it's getting.<<SymbioteName>> is loving all of the attention you're feeding them.<<SymbioteName>> idly strokes its body teasingly, as if to entice you.<<SymbioteName>> constantly fondles its own body in admiration, positively starved for attention.You gaze into the reflective surface.You shift backwards and forwards, gazing at what parts of your body fit within the image on the polished slate.You step over the wall. Soon, you find yourself gazing at your form in the lake's reflection.You step over the wall. Soon, you find yourself gazing at the parts of your form that fit in the lake's reflection.The goo form that covers your body is reflected in the polished surface of the slate.The slick and gooey body reflected that barely fits in the polished surface.The lake holds your gooey form in its reflection.What little you can see in the lake shows off your gargantun gooey form.You travel to your house a few streets down. The one story house is not much, but you're proud of it. Every metal wall
was made with your own blood sweat and tears.
You slide in through the dusty corrugated door and into the house proper.
Inside is a few pieces of furniture you've managed to cobble together. In the one corner, your bed rests under a small dirt speckled window.
In the middle, resting on a bearskin rug is a small table made from scrap wood and rubber. Your journal rests on it, its pages yellow with age.
Finally, no room is complete without a mirror. Or, at least, a highly polished metal slate that was good enough to act as one.You travel to your house a few streets down. The one story house is not much, but you're proud of it. Every metal wall
was made with your own blood sweat and tears.
You slide in through the dusty corrugated door and into the house proper.
You smile as you realise how much of the doorway your body occupies and how you have to bend to keep your head from scraping against the roof.
Inside is a few pieces of furniture you've managed to cobble together. In the one corner, your bed rests under a small dirt speckled window. It's looking a bit small compared to you.
In the center of the room, resting on a bearskin rug, is a small table made from scrap wood and rubber.
Your journal rests on it, its pages yellow with age. Looking at your @[all|hands|noverb], you realise that it might be difficult to use some day.
Finally, no room is complete without a mirror. Or, at least, a highly polished metal slate that was good enough to act as one.You travel to your house a few streets down. How are you meant to fit anymore? One story is not nearly enough for you!
You grab the metal you had once lovingly crafted into a roof and rip it off with a loud screech. At least now, you could step inside if you wanted.
Inside is a few pieces of furniture you've managed to cobble together. In the one corner, your bed rests under a small window cut out of the sheet metal. Now, it would only serve as a dishrag for you.
In the middle, resting on a bearskin rug is a small table made from scrap wood and rubber. Your journal, rests on it. There's no point in even trying to pick it up with your meaty @[1|hands|noverb].
Finally, no room is complete without a mirror. Yet this would do little for you. Perhaps you could step over the walls of the Golden Bastion and use the reflective surface of the nearby lake, instead?No house can contain your size. The building that you had once called home doesn't hold a candle to you anymore.
You can only rely on your memories, your journal is nothing more than a speck far below you.
Luckily, you could easily step over the walls of the Golden Bastion and use the reflective surface of the nearby lake as a mirror, but even that hardly suffices for your sheer bulk.You rush in and attack.You charge in and swing your fist.You stomp forward and swing a massive fist.Your @[all| arms| one=hurtles~more=hurtle] down toward the enemy.A trail of purple energy flows from your knuckles.Each vein in your hand and arm burns with a dark purple hue. Tainted energy rolls off of your skin as tendrils of corrupt light.You quickly bash with your weapon's hilt.You charge in and quickly bash with your weapon's hilt.You stomp forward, fully extending your arm from the side of your torso.Your @[1| arms| one=hurtles~more=hurtle] down toward the enemy, bashing wildly with your weapon's hilt.A trail of purple energy flows from your knuckles.Each vein in your hand and arm burns with a dark purple hue. Tainted energy rolls off of your skin as tendrils of corrupt light.You swing your weapon with full force.You charge in and swing your weapon with full force.You stomp forward, twisting your waist and shoulders round before turning back unleasing a mighty swing of your weapon.Your @[all| arms| one=hurtles~more=hurtle] down toward the enemy, unleasing a mighty swing of your weapon.A trail of purple energy flows from your weapon.Each vein in your hand and arm burns with a dark purple hue. Tainted energy rolls off of your weapon as tendrils of corrupt light.muscles harden and pulse with increasing strength. Your biceps form impressive peaks above well defined forearms. Veins begin peeking through your skin
as they spread across your growing shoulders and neck. Your @[all|pecs|noverb] push outwards, your nipples harden and a moan escapes your mouth as the growth tumbles downward
like a fresh breath of air through your @[all|abdominals|noverb], thighs and calves.athletic form hardens as every muscle contracts into picturesque beauty. Every line and crease deepens as the power flowing through you forces your body to
adapt. Your laterals spread wider, your abdominal wall pushes outwards and your upper body swells with growing, physical pride.body convulses as an internal fire spreads outwards from your core and to each limb. Your body freezes, momentarily before a wellspring of growth overtakes you.
Calves bulge, quads expand and your upper body surges with strength to keep up.expression shifts into a pleasurable smile. Looking down at your hands, you watch a bubble of growth move from your fingertips,
across your @[all|arms|noverb] and into your @[all|pecs|noverb].
Your nutsack rumbles and your @[all|cocks|one=fire~more=fires] an unattural amount of cum. Every jet of white, every convulsion, propels your body upwards and outwards.body shudders and you double over. Your knees hit the ground as you are assaulted by a wave of intense pleasure.
Every burgeoning muscle flexes, each crest and trough grows into mounds that could only be crafted with years of dedication.
Your @[all|arms|noverb] push out larger with more strength, your back becomes an atlas of muscle - your @[all|pecs|noverb] begin pushing your growing nipples earthbound and your
@[all|abdominals|noverb] bulge with increased size.mouth spreads into a wide grin as a surreal purple glow spins across the edges of your @[2|eyes|noverb]. Veins swell all over your body. Not moments later, your cock rises as your limbs pack on
weight and size. What was once ample, is now in excess. What was once well defined, is now barelling. You flex your bicep, watching it rise higher and higher.
A sinister smile spreads wide across your face - this is only the beginning.cock hardens to full mast as a sudden growth spurt overtakes your body. You quickly wrap your @[all|arms|noverb] around your chest to feel your @[all|pecs|noverb] compete with your biceps.
Wave after wave, your arms push away from your chest - the sheer size being compressed into each muscle group is unfathomable! Your @[all|legs|noverb] adopt a wider stance as the war continues below
with your quads, expanding glutes and growing calves.body spasms as your powerful muscles all flex at once. Your bull like neck pulses larger and begins to threaten the sides of your @[all|heads|noverb]. Your @[all|pecs|noverb] swell outwards in
leaps and bounds over a growing and impressive set of @[all|abdominals|noverb]. Your hands rove across each expanding inch of flesh, feeling your skin stretch tighter against
chords of steel that thicken with every passing second.body shudders. Every boulder contained within you rumbles with an ominous wave of incoming growth.
Your biceps explode from raw, uncontained power. They barrel outwards until their pulsing peaks began to reach sizes that
are clearly unnatural. Each pectoral grows large enough to be a shelf, and they bounce eagerly as they consume more and more space in front of you. Your large nipples are forced
further sideways and downwards as their hosts pulsate larger and larget still! Thick thighs and glutes become even thicker, pillars that would easily support houses are
increasing in size before your very eyes!bones crack audibly. Growth is upon you yet again, and this wave was even stronger than your last! With a booming thud, your muscles explode with new size
- too much and too fast for your body to keep up with! The growth begins running rampant; each second packs on more and more until limbs begin to lock
and grind against each other from the lack of free space. With a primal roar, you flex, a beastly mountain of mass, and will it all to compact inwards.
Control was regained but your body has far from relented your new incredible atlassian size.mouth opens wide as a primordial roar bellows from your growing maw. Bending down, you slam your fist into the ground and a wave of size propells itself
upwards from the cracked earth; up your forearm, bicep and into your bullish neck.
Your @[all|pecs|noverb] push further outwards, forcing your center of gravity forward before
your waist expands into a pillar of power to support your new torso. Sliding outwards from the ground behind you; your @[all|legs|noverb] push each other apart, massaging and
grinding against your @[all|cocks|noverb]. The pleasure is too much! With another ear-splitting roar, you arch your back and unleash a torrential geyser of white.jaw bobs in maniacal laughter as you feel the power within yourself erupt. Like waves from the surface of disturbed water, your entire body groans, creaks and shifts
as mucles begin to pack onto muscles. Chords thicken and roadworks of veins the size of heavy duty pipes spiral across your pulsating flesh. With a mighty stomp
your growing foot hits the ground; forcing a monstrous wave of size upwards through your calves, into your thighs and finally into your bulging muscular rear. Finally, bringing
your @[all|hands|noverb] together in a mighty clap, your upper body explodes to double its size!movements halt. A deadly silence overtakes the land that you tower over. A rumbling. The sound of war drums - the sound of the planet roaring its protest against your
impending change. Then it happens. Mountains that are biceps double in size. Pectorals that quake with every minor shift billow outwards. Nipples - hard, large and sensitive
are exiled into the deepening valley between them and an entire canyon of @[all|abdominals|noverb]. Laterals that were wings, were forced wider. Back muscles that
ripple with pure power, expand. Arms that could crush villages grow into monstrosities that the world could never contend with. Your @[all|cocks|noverb], large and heavy with muscle
slowly swings into the air; its growing mass forces your stance even wider. Another rumble. Another catastrophy. Rivers of white explode from its tip into a deluge
that coats you, the ground and every object close enough to suffer the titanic load unleashed from your @[all|balls|noverb].@[all|arms|noverb] fall limp at your side. A loud rumbling, akin to the mighty growl of a beast in heat, begins to echo across the land. A dark shadow - the silhouette of
your monstrous form begins to shudder. The Golden Bastion, those around it, will all bear witness as you suddenly shiver. A crack, as loud as thunder
rockets through the air as you grow. Thunderous booms echo around you; every explosive sound heralds your titanic bones reshaping themselves to create more space.
Your shadow grows with every shudder and
covers more and more of the land. Higher. Wider. There are no human words to describe your size, no words that exist to describe the mass within your being -
no measurement of how much weight sits within your collosal and expanding form.@[all|cocks|one=stiffens~more=stiffens]. An unfathomably large spurt of pre jettisons from your @[all|cocks|one=slit~more=slits] and pools in the lands far below you. The air becomes hot as a thick
umistakeable aura of power coats the insides of your nostrils. To the world's surprise, you shudder and balloon outwards
in every direction. Your forearms are a perfect pair of spheres of unadulterad power, pushing against growing biceps and triceps that have long since dwarfed your @[all|heads|noverb]. Your
towering masses flex upwards and expand outwards, packing on new muscle groups that have never been known to mankind. Your neck surges outward, practically engulfing the sides of your vision.
Impressive laterals surge outwards, forming an incredibly powerful, yet impossible, Y-shape. @[all|legs|noverb], as built as the foundations of the world,
explode into sizes of which no words can describe.body shivers as another wave of growth approaches. More size. Bigger. You have to be bigger! You crave so much more! Your body surges even larger, responding to your will.
A prideful smile stretches your lips wide; you will become all consuming, ever-growing! Only the gods could try to stop you, but by then - you will be unstoppable.
You will be more. A building is an insufficient measurement compared to the muscles you now support
, at least they are now after they split into even more muscle groups of absolute mind blowing size and power. Adjectives - words to help mortals describe concepts will never capture
the immensity each of your biceps peak at. Each proud muscle, expanding with every passing second, escalates from weapon of mass destruction, to world ending.
You still need more. You will have more!Your @[all|cocks|one=throbs~more=throb], harder than it ever has. You look down, feeling each vein engorge with unnatural thickness.
Then it hits you, a wave of pleasure grows from the base of your loin. Your shaft pulsates wildly as it expands thicker and longer.
Your eyes widen as the growth progresses further up your @[all|cocks|noverb].
It's so long, so thick. And it keeps growing, pushing your fingers wider apart.A familiar feeling rushes over you. You grin, looking down at your @[all|cocks|noverb], welcoming a wave of incoming growth.
It suddenly hits you, like a rush of adrenaline.
Your @[all|cocks|one=jolts~more=jolt] forward, hard enough to make you lose your balance.
Suddenly, it comes. You scream in pleasure as your loin grows thicker and longer. Every beat of your heart,
every flex of your muscles and every breath feed it with more heavy, throbbing flesh. You try to grasp at your @[all|cocks|noverb] with both hands,
failing to fully handle your monster as it grows uncontrollably. You throw your head back, moaning deeply enough to cut your breath short.Suddenly, your @[all|cocks|one=throbs~more=throb]. The sheer need for attention of your monster overwhelms you.
You try to grasp the base; you can only tremble in anticipation.
Your @[all|cocks|one=is~more=are] so hot, so full and thick. You shiver at the thought of growing even bigger.
Jolts of pleasure pulsate from your @[all|cocks|noverb] as it starts growing. You desperately try to grasp and pleasure the throbbing flesh, but it is too massive for your hands to contain.
You push down and thrust your hips along the ground. The sheer mass of your @[all|cocks|noverb] is still incredibly sensitive; you moan in pleasure as it pushes outward, bigger and bigger.
You slide your fingers along your slit and moan passionately. Bolts of pleasure pierces you with every contact,
precum leaks out of your monstrous cock like a damaged dam. Your @[all|cocks|one=grows~more=grow] bigger than you thought possible.
Your loin is gigantic, monstrous even; finding anything that can handle you will be a challenge.You feel something coming, something tremendous... A familiar warmth rushes over you; your loin burns with anticipation.
It keeps building, tingles of pleasure spread from your @[all|cocks|noverb]. This wave of incoming growth is greater than a roaring sea,
and it keeps building, threatening to swallow you in its eternal pleasure.
But you welcome it... You grin madly at your monstrous @[all|cocks|noverb] with an unatural eagerness. And then it happens.
Your @[all|cocks|one=explodes~more=explode] in size, mountains of sensitive flesh burst upwards along your pecs. You rub it passionately, each touch bringing you close to the edge.
Your veins grow massive, feeding your @[all|cocks|noverb] with untold power. A roar of triumph bursts out of you as your @[all|cocks|noverb] takes over the scenery.
Everything and everyone gets exposed to the glorious beast you're packing. They can only stare in awe as the ground rumbles;
your @[all|cocks|one=strains~more=strain], the land braces. Your roars resound throughout the land as an ocean of potent <<print $CharacterSheet_Player.symbiote.info.colour>> cum comes raining down on this world once again.<<set setup.TextSheet_Player =
{
lukkaHouseMenu :{
heightFlavour: {
small: [
"LukkaHouse_MainMenu_Normal"
],
medium: [
"LukkaHouse_MainMenu_Normal"
],
large: [
"LukkaHouse_MainMenu_Huge"
],
huge: [
"LukkaHouse_MainMenu_Huge"
],
}
},
jormFirstMeeting :{
heightFlavour: {
small: [
"Jorm_FirstMeeting_PlayerSmall"
],
medium: [
"Jorm_FirstMeeting_PlayerSmall"
],
large: [
"Jorm_FirstMeeting_PlayerBig"
],
huge: [
"Jorm_FirstMeeting_PlayerBig"
],
}
},
mergeLost1 :{
heightFlavour: {
small: [
"_player_text_sheet_mergeLost1_heightFlavour_small"
],
medium: [
"_player_text_sheet_mergeLost1_heightFlavour_medium"
],
large: [
"_player_text_sheet_mergeLost1_heightFlavour_large"
],
huge: [
"_player_text_sheet_mergeLost1_heightFlavour_huge"
],
}
},
lostKiss :{
heightFlavour: {
small: [
"_player_text_sheet_lostKiss_heightFlavour_small"
],
medium: [
"_player_text_sheet_lostKiss_heightFlavour_medium"
],
large: [
"_player_text_sheet_lostKiss_heightFlavour_large"
],
huge: [
"_player_text_sheet_lostKiss_heightFlavour_huge"
],
}
},
lostFuck2 :{
heightFlavour: {
small: [
"_player_text_sheet_lostFuck2_heightFlavour_small"
],
medium: [
"_player_text_sheet_lostFuck2_heightFlavour_medium"
],
large: [
"_player_text_sheet_lostFuck2_heightFlavour_large"
],
huge: [
"_player_text_sheet_lostFuck2_heightFlavour_huge"
]
}
},
lostFuck1 :{
heightFlavour: {
small: [
"_player_text_sheet_lostFuck1_heightFlavour_small"
],
medium: [
"_player_text_sheet_lostFuck1_heightFlavour_medium"
],
large: [
"_player_text_sheet_lostFuck1_heightFlavour_large"
],
huge: [
"_player_text_sheet_lostFuck1_heightFlavour_huge"
]
}
},
lostWin1 :{
heightFlavour: {
small: [
"_player_text_sheet_lostWin1_heightFlavour_small"
],
medium: [
"_player_text_sheet_lostWin1_heightFlavour_medium"
],
large: [
"_player_text_sheet_lostWin1_heightFlavour_large"
],
huge: [
"_player_text_sheet_lostWin1_heightFlavour_huge"
],
},
},
mirror_player_CrotchFlavour: {
heightFlavour: {
small:
[
"_player_text_sheet_mirror_player_CrotchFlavour_heightFlavour_small"
],
medium:
[
"_player_text_sheet_mirror_player_CrotchFlavour_heightFlavour_medium"
],
large:
[
"_player_text_sheet_mirror_player_CrotchFlavour_heightFlavour_large"
],
huge:
[
"_player_text_sheet_mirror_player_CrotchFlavour_heightFlavour_huge"
]
},
corruptionFlavour:
{
corrupt50:
[
"_player_text_sheet_mirror_player_CrotchFlavour_corruptionFlavour_corrupt50"
],
corrupt75:
[
"_player_text_sheet_mirror_player_CrotchFlavour_corruptionFlavour_corrupt75"
],
corrupt100:
[
"_player_text_sheet_mirror_player_CrotchFlavour_corruptionFlavour_corrupt100"
]
}
},
mirror_symbiote_CrotchFlavour: {
heightFlavour: {
small:
[
"_player_text_sheet_mirror_player_mirror_symbiote_CrotchFlavour_heightFlavour_small"
],
medium:
[
"_player_text_sheet_mirror_player_mirror_symbiote_CrotchFlavour_heightFlavour_medium"
],
large:
[
"_player_text_sheet_mirror_player_mirror_symbiote_CrotchFlavour_heightFlavour_large"
],
huge:
[
"_player_text_sheet_mirror_player_mirror_symbiote_CrotchFlavour_heightFlavour_huge"
]
},
corruptionFlavour:
{
corrupt50:
[
"_player_text_sheet_mirror_player_mirror_symbiote_CrotchFlavour_corruptionFlavour_corrupt50"
],
corrupt75:
[
"_player_text_sheet_mirror_player_mirror_symbiote_CrotchFlavour_corruptionFlavour_corrupt75"
],
corrupt100:
[
"_player_text_sheet_mirror_player_mirror_symbiote_CrotchFlavour_corruptionFlavour_corrupt100"
]
}
},
mirror_player_TailFlavour: {
heightFlavour: {
small:
[
"_player_text_sheet_mirror_player_TailFlavour_heightFlavour_small"
],
medium:
[
"_player_text_sheet_mirror_player_TailFlavour_heightFlavour_medium"
],
large:
[
"_player_text_sheet_mirror_player_TailFlavour_heightFlavour_large"
],
huge:
[
"_player_text_sheet_mirror_player_TailFlavour_heightFlavour_huge"
]
},
corruptionFlavour:
{
corrupt50:
[
"_player_text_sheet_mirror_player_TailFlavour_corruptionFlavour_corrupt50"
],
corrupt75:
[
"_player_text_sheet_mirror_player_TailFlavour_corruptionFlavour_corrupt75"
],
corrupt100:
[
"_player_text_sheet_mirror_player_TailFlavour_corruptionFlavour_corrupt100"
]
}
},
mirror_symbiote_TailFlavour: {
heightFlavour: {
small:
[
"_player_text_sheet_mirror_symbiote_TailFlavour_heightFlavour_small"
],
medium:
[
"_player_text_sheet_mirror_symbiote_TailFlavour_heightFlavour_medium"
],
large:
[
"_player_text_sheet_mirror_symbiote_TailFlavour_heightFlavour_large"
],
huge:
[
"_player_text_sheet_mirror_symbiote_TailFlavour_heightFlavour_huge"
]
},
corruptionFlavour:
{
corrupt25:
[
"_player_text_sheet_mirror_symbiote_TailFlavour_corruptionFlavour_corrupt25"
],
corrupt50:
[
"_player_text_sheet_mirror_symbiote_TailFlavour_corruptionFlavour_corrupt50"
],
corrupt75:
[
"_player_text_sheet_mirror_symbiote_TailFlavour_corruptionFlavour_corrupt75"
],
corrupt100:
[
"_player_text_sheet_mirror_symbiote_TailFlavour_corruptionFlavour_corrupt100"
]
}
},
mirror_symbiote_TailFlavour_LiveForEcho: {
heightFlavour: {
small:
[
"_player_text_sheet_mirror_symbiote_TailFlavour_LiveForEcho_heightFlavour_small"
],
medium:
[
"_player_text_sheet_mirror_symbiote_TailFlavour_LiveForEcho_heightFlavour_medium"
],
large:
[
"_player_text_sheet_mirror_symbiote_TailFlavour_LiveForEcho_heightFlavour_large"
],
huge:
[
"_player_text_sheet_mirror_symbiote_TailFlavour_LiveForEcho_heightFlavour_huge"
]
}
},
mirror_player_WingsFlavour: {
heightFlavour: {
small:
[
"_player_text_sheet_mirror_player_WingsFlavour_heightFlavour_small"
],
medium:
[
"_player_text_sheet_mirror_player_WingsFlavour_heightFlavour_medium"
],
large:
[
"_player_text_sheet_mirror_player_WingsFlavour_heightFlavour_large"
],
huge:
[
"_player_text_sheet_mirror_player_WingsFlavour_heightFlavour_huge"
]
},
corruptionFlavour:
{
corrupt50:
[
"_player_text_sheet_mirror_player_WingsFlavour_corruptionFlavour_corrupt50",
],
corrupt75:
[
"_player_text_sheet_mirror_player_WingsFlavour_corruptionFlavour_corrupt75",
],
corrupt100:
[
"_player_text_sheet_mirror_player_WingsFlavour_corruptionFlavour_corrupt100",
]
}
},
mirror_symbiote_WingsFlavour: {
heightFlavour: {
small:
[
"_player_text_sheet_mirror_symbiote_WingsFlavour_heightFlavour_small"
],
medium:
[
"_player_text_sheet_mirror_symbiote_WingsFlavour_heightFlavour_medium"
],
large:
[
"_player_text_sheet_mirror_symbiote_WingsFlavour_heightFlavour_large"
],
huge:
[
"_player_text_sheet_mirror_symbiote_WingsFlavour_heightFlavour_huge"
]
},
corruptionFlavour:
{
corrupt25:
[
"_player_text_sheet_mirror_symbiote_WingsFlavour_corruptionFlavour_corrupt25"
],
corrupt50:
[
"_player_text_sheet_mirror_symbiote_WingsFlavour_corruptionFlavour_corrupt50"
],
corrupt75:
[
"_player_text_sheet_mirror_symbiote_WingsFlavour_corruptionFlavour_corrupt75"
],
corrupt100:
[
"_player_text_sheet_mirror_symbiote_WingsFlavour_corruptionFlavour_corrupt100"
]
}
},
mirror_symbiote_WingsFlavour_LiveForEcho: {
heightFlavour: {
small:
[
"_player_text_sheet_mirror_symbiote_WingsFlavour_LiveForEcho_heightFlavour_small"
],
medium:
[
"_player_text_sheet_mirror_symbiote_WingsFlavour_LiveForEcho_heightFlavour_medium"
],
large:
[
"_player_text_sheet_mirror_symbiote_WingsFlavour_LiveForEcho_heightFlavour_large"
],
huge:
[
"_player_text_sheet_mirror_symbiote_WingsFlavour_LiveForEcho_heightFlavour_huge"
]
}
},
mirror_player_HornsFlavour: {
heightFlavour: {
small:
[
"_player_text_sheet_mirror_player_HornsFlavour_heightFlavour_small"
],
medium:
[
"_player_text_sheet_mirror_player_HornsFlavour_heightFlavour_medium"
],
large:
[
"_player_text_sheet_mirror_player_HornsFlavour_heightFlavour_large"
],
huge:
[
"_player_text_sheet_mirror_player_HornsFlavour_heightFlavour_huge"
]
},
corruptionFlavour:
{
corrupt50:
[
"_player_text_sheet_mirror_player_HornsFlavour_corruptionFlavour_corrupt50"
],
corrupt75:
[
"_player_text_sheet_mirror_player_HornsFlavour_corruptionFlavour_corrupt75"
],
corrupt100:
[
"_player_text_sheet_mirror_player_HornsFlavour_corruptionFlavour_corrupt100"
]
}
},
mirror_symbiote_HornsFlavour: {
heightFlavour: {
small:
[
"_player_text_sheet_mirror_symbiote_HornsFlavour_heightFlavour_small"
],
medium:
[
"_player_text_sheet_mirror_symbiote_HornsFlavour_heightFlavour_medium"
],
large:
[
"_player_text_sheet_mirror_symbiote_HornsFlavour_heightFlavour_large"
],
huge:
[
"_player_text_sheet_mirror_symbiote_HornsFlavour_heightFlavour_huge"
]
},
corruptionFlavour:
{
corrupt25:
[
"_player_text_sheet_mirror_symbiote_HornsFlavour_corruptionFlavour_corrupt25"
],
corrupt50:
[
"_player_text_sheet_mirror_symbiote_HornsFlavour_corruptionFlavour_corrupt50"
],
corrupt75:
[
"_player_text_sheet_mirror_symbiote_HornsFlavour_corruptionFlavour_corrupt75"
],
corrupt100:
[
"_player_text_sheet_mirror_symbiote_HornsFlavour_corruptionFlavour_corrupt100"
]
}
},
mirror_player_HeadFlavour: {
heightFlavour: {
small:
[
"_player_text_sheet_mirror_player_HeadFlavour_heightFlavour_small"
],
medium:
[
"_player_text_sheet_mirror_player_HeadFlavour_heightFlavour_medium"
],
large:
[
"_player_text_sheet_mirror_player_HeadFlavour_heightFlavour_large"
],
huge:
[
"_player_text_sheet_mirror_player_HeadFlavour_heightFlavour_huge"
]
},
corruptionFlavour:
{
corrupt25:
[
"_player_text_sheet_mirror_player_HeadFlavour_corruptionFlavour_corrupt25"
],
corrupt50:
[
"_player_text_sheet_mirror_player_HeadFlavour_corruptionFlavour_corrupt50"
],
corrupt75:
[
"_player_text_sheet_mirror_player_HeadFlavour_corruptionFlavour_corrupt75"
],
corrupt100:
[
"_player_text_sheet_mirror_player_HeadFlavour_corruptionFlavour_corrupt100"
]
}
},
mirror_symbiote_HeadFlavour: {
corruptionFlavour: {
corrupt25:
[
"_player_text_sheet_mirror_symbiote_HeadFlavour_corruptionFlavour_corrupt25"
],
corrupt50:
[
"_player_text_sheet_mirror_symbiote_HeadFlavour_corruptionFlavour_corrupt50"
],
corrupt75:
[
"_player_text_sheet_mirror_symbiote_HeadFlavour_corruptionFlavour_corrupt75"
],
corrupt100:
[
"_player_text_sheet_mirror_symbiote_HeadFlavour_corruptionFlavour_corrupt100"
]
},
},
mirror_player_LowerBodyFlavour: {
heightFlavour: {
small:
[
"_player_text_sheet_mirror_player_LowerBodyFlavour_heightFlavour_small"
],
medium:
[
"_player_text_sheet_mirror_player_LowerBodyFlavour_heightFlavour_medium"
],
large:
[
"_player_text_sheet_mirror_player_LowerBodyFlavour_heightFlavour_large"
],
huge:
[
"_player_text_sheet_mirror_player_LowerBodyFlavour_heightFlavour_huge"
]
}
},
mirror_symbiote_LowerBodyFlavour: {
heightFlavour: {
small:
[
"_player_text_sheet_mirror_symbiote_LowerBodyFlavour_heightFlavour_small"
],
medium:
[
"_player_text_sheet_mirror_symbiote_LowerBodyFlavour_heightFlavour_medium"
],
large:
[
"_player_text_sheet_mirror_symbiote_LowerBodyFlavour_heightFlavour_large"
],
huge:
[
"_player_text_sheet_mirror_symbiote_LowerBodyFlavour_heightFlavour_huge"
]
},
corruptionFlavour:
{
corrupt25:
[
"_player_text_sheet_mirror_symbiote_LowerBodyFlavour_corruptionFlavour_corrupt25"
],
corrupt50:
[
"_player_text_sheet_mirror_symbiote_LowerBodyFlavour_corruptionFlavour_corrupt50"
],
corrupt75:
[
"_player_text_sheet_mirror_symbiote_LowerBodyFlavour_corruptionFlavour_corrupt75"
],
corrupt100:
[
"_player_text_sheet_mirror_symbiote_LowerBodyFlavour_corruptionFlavour_corrupt100"
]
}
},
mirror_symbiote_LowerBodyFlavour_LiveForEcho: {
heightFlavour: {
small:
[
"_player_text_sheet_mirror_symbiote_LowerBodyFlavour_LiveForEcho_heightFlavour_small"
],
medium:
[
"_player_text_sheet_mirror_symbiote_LowerBodyFlavour_LiveForEcho_heightFlavour_medium"
],
large:
[
"_player_text_sheet_mirror_symbiote_LowerBodyFlavour_LiveForEcho_heightFlavour_large"
],
huge:
[
"_player_text_sheet_mirror_symbiote_LowerBodyFlavour_LiveForEcho_heightFlavour_huge"
]
}
},
mirror_player_UpperBodyFlavour: {
heightFlavour: {
small:
[
"_player_text_sheet_mirror_player_UpperBodyFlavour_heightFlavour_small"
],
medium:
[
"_player_text_sheet_mirror_player_UpperBodyFlavour_heightFlavour_medium"
],
large:
[
"_player_text_sheet_mirror_player_UpperBodyFlavour_heightFlavour_large"
],
huge:
[
"_player_text_sheet_mirror_player_UpperBodyFlavour_heightFlavour_huge"
]
}
},
mirror_symbiote_UpperBodyFlavour: {
heightFlavour: {
small:
[
"_player_text_sheet_mirror_symbiote_UpperBodyFlavour_heightFlavour_small"
],
medium:
[
"_player_text_sheet_mirror_symbiote_UpperBodyFlavour_heightFlavour_medium"
],
large:
[
"_player_text_sheet_mirror_symbiote_UpperBodyFlavour_heightFlavour_large"
],
huge:
[
"_player_text_sheet_mirror_symbiote_UpperBodyFlavour_heightFlavour_huge"
]
},
corruptionFlavour:
{
corrupt25:
[
"_player_text_sheet_mirror_symbiote_UpperBodyFlavour_corruptionFlavour_corrupt25"
],
corrupt50:
[
"_player_text_sheet_mirror_symbiote_UpperBodyFlavour_corruptionFlavour_corrupt50"
],
corrupt75:
[
"_player_text_sheet_mirror_symbiote_UpperBodyFlavour_corruptionFlavour_corrupt75"
],
corrupt100:
[
"_player_text_sheet_mirror_symbiote_UpperBodyFlavour_corruptionFlavour_corrupt100"
]
}
},
mirror_symbiote_UpperBodyFlavour_LiveForEcho: {
heightFlavour: {
small:
[
"_player_text_sheet_mirror_symbiote_UpperBodyFlavour_LiveForEcho_heightFlavour_small"
],
medium:
[
"_player_text_sheet_mirror_symbiote_UpperBodyFlavour_LiveForEcho_heightFlavour_medium"
],
large:
[
"_player_text_sheet_mirror_symbiote_UpperBodyFlavour_LiveForEcho_heightFlavour_large"
],
huge:
[
"_player_text_sheet_mirror_symbiote_UpperBodyFlavour_LiveForEcho_heightFlavour_huge"
]
},
corruptionFlavour:
{
corrupt25:
[
"_player_text_sheet_mirror_symbiote_UpperBodyFlavour_LiveForEcho_corruptionFlavour_corrupt25"
],
corrupt50:
[
"_player_text_sheet_mirror_symbiote_UpperBodyFlavour_LiveForEcho_corruptionFlavour_corrupt50"
],
corrupt75:
[
"_player_text_sheet_mirror_symbiote_UpperBodyFlavour_LiveForEcho_corruptionFlavour_corrupt75"
],
corrupt100:
[
"_player_text_sheet_mirror_symbiote_UpperBodyFlavour_LiveForEcho_corruptionFlavour_corrupt100"
]
}
},
mirror_player_Flavour: {
heightFlavour: {
small:
[
"_player_text_sheet_mirror_player_Flavour_heightFlavour_small"
],
medium:
[
"_player_text_sheet_mirror_player_Flavour_heightFlavour_medium"
],
large:
[
"_player_text_sheet_mirror_player_Flavour_heightFlavour_large"
],
huge:
[
"_player_text_sheet_mirror_player_Flavour_heightFlavour_huge"
]
}
},
mirror_symbiote_Flavour: {
heightFlavour: {
small:
[
"_player_text_sheet_mirror_symbiote_Flavour_heightFlavour_small"
],
medium:
[
"_player_text_sheet_mirror_symbiote_Flavour_heightFlavour_medium"
],
large:
[
"_player_text_sheet_mirror_symbiote_Flavour_heightFlavour_large"
],
huge:
[
"_player_text_sheet_mirror_symbiote_Flavour_heightFlavour_huge"
]
}
},
homeFlavour: {
heightFlavour: {
small:
[
"_player_text_sheet_homeFlavour_heightFlavour_small"
],
medium:
[
"_player_text_sheet_homeFlavour_heightFlavour_medium"
],
large:
[
"_player_text_sheet_homeFlavour_heightFlavour_large"
],
huge:
[
"_player_text_sheet_homeFlavour_heightFlavour_huge"
]
}
},
lukkaHouse_Intro: {
heightFlavour: {
small:
[
"LukkaHouse_Intro_HeightFlavour_small"
],
medium:
[
"LukkaHouse_Intro_HeightFlavour_small"
],
large:
[
"LukkaHouse_Intro_HeightFlavour_large"
],
huge:
[
"LukkaHouse_Intro_HeightFlavour_large"
]
}
},
visitHouse: {
heightFlavour: {
small:
[
"player_visitHouse_heightFlavour_small"
],
medium:
[
"player_visitHouse_heightFlavour_medium"
],
large:
[
"player_visitHouse_heightFlavour_large"
],
huge:
[
"player_visitHouse_heightFlavour_huge"
]
}
},
abelHouseMenu: {
heightFlavour: {
small:
[
"player_abelHouseMenu_heightFlavour_small"
],
medium:
[
"player_abelHouseMenu_heightFlavour_medium"
],
large:
[
"player_abelHouseMenu_heightFlavour_large"
],
huge:
[
"player_abelHouseMenu_heightFlavour_huge"
]
}
},
basicAttackAttemptFlavour: {
heightFlavour:
{
small:
[
"_player_text_sheet_basicAttackAttemptFlavour_heightFlavour_small"
],
medium:
[
"_player_text_sheet_basicAttackAttemptFlavour_heightFlavour_medium"
],
large:
[
"_player_text_sheet_basicAttackAttemptFlavour_heightFlavour_large"
],
huge:
[
"_player_text_sheet_basicAttackAttemptFlavour_heightFlavour_huge"
]
},
corruptionFlavour:
{
corrupt75:
[
"_player_text_sheet_basicAttackAttemptFlavour_corruptionFlavour_corrupt75",
],
corrupt100:
[
"_player_text_sheet_basicAttackAttemptFlavour_corruptionFlavour_corrupt100",
]
}
},
bashAttackAttemptFlavour: {
heightFlavour:
{
small:
[
"_player_text_sheet_bashAttackAttemptFlavour_heightFlavour_small"
],
medium:
[
"_player_text_sheet_bashAttackAttemptFlavour_heightFlavour_medium"
],
large:
[
"_player_text_sheet_bashAttackAttemptFlavour_heightFlavour_large"
],
huge:
[
"_player_text_sheet_bashAttackAttemptFlavour_heightFlavour_huge"
]
},
corruptionFlavour:
{
corrupt75:
[
"_player_text_sheet_bashAttackAttemptFlavour_corruptionFlavour_corrupt75",
],
corrupt100:
[
"_player_text_sheet_bashAttackAttemptFlavour_corruptionFlavour_corrupt100",
]
}
},
slashAttackAttemptFlavour: {
heightFlavour:
{
small:
[
"_player_text_sheet_slashAttackAttemptFlavour_heightFlavour_small"
],
medium:
[
"_player_text_sheet_slashAttackAttemptFlavour_heightFlavour_medium"
],
large:
[
"_player_text_sheet_slashAttackAttemptFlavour_heightFlavour_large"
],
huge:
[
"_player_text_sheet_slashAttackAttemptFlavour_heightFlavour_huge"
]
},
corruptionFlavour:
{
corrupt75:
[
"_player_text_sheet_slashAttackAttemptFlavour_corruptionFlavour_corrupt75",
],
corrupt100:
[
"_player_text_sheet_slashAttackAttemptFlavour_corruptionFlavour_corrupt100",
]
}
},
MuscleGrowthFlavourText :{
musclesFlavour: {
small: [
"_player_text_sheet_MuscleGrowthFlavourText_heightFlavour_small_1",
"_player_text_sheet_MuscleGrowthFlavourText_heightFlavour_small_2",
"_player_text_sheet_MuscleGrowthFlavourText_heightFlavour_small_3",
"_player_text_sheet_MuscleGrowthFlavourText_heightFlavour_small_4",
],
medium: [
"_player_text_sheet_MuscleGrowthFlavourText_heightFlavour_medium_1",
"_player_text_sheet_MuscleGrowthFlavourText_heightFlavour_medium_2",
"_player_text_sheet_MuscleGrowthFlavourText_heightFlavour_medium_3",
"_player_text_sheet_MuscleGrowthFlavourText_heightFlavour_medium_4",
],
large: [
"_player_text_sheet_MuscleGrowthFlavourText_heightFlavour_large_1",
"_player_text_sheet_MuscleGrowthFlavourText_heightFlavour_large_2",
"_player_text_sheet_MuscleGrowthFlavourText_heightFlavour_large_3",
"_player_text_sheet_MuscleGrowthFlavourText_heightFlavour_large_4",
],
huge: [
"_player_text_sheet_MuscleGrowthFlavourText_heightFlavour_huge_1",
"_player_text_sheet_MuscleGrowthFlavourText_heightFlavour_huge_2",
"_player_text_sheet_MuscleGrowthFlavourText_heightFlavour_huge_3",
"_player_text_sheet_MuscleGrowthFlavourText_heightFlavour_huge_4",
]
}
},
CockGrowthFlavourText :{
cockSizeFlavour:
{
small: [
"_player_text_sheet_CockGrowthFlavourText_cockSizeFlavour_small",
],
medium: [
"_player_text_sheet_CockGrowthFlavourText_cockSizeFlavour_medium",
],
large: [
"_player_text_sheet_CockGrowthFlavourText_cockSizeFlavour_large",
],
huge: [
"_player_text_sheet_CockGrowthFlavourText_cockSizeFlavour_huge",
]
},
},
village_exiled_menu :{
corruptionFlavour:
{
corrupt25:
[
"Village_Exiled_Menu_Corruption_Header_Under_Threshold"
],
corrupt50:
[
"Village_Exiled_Menu_Corruption_Header_Under_Threshold"
],
corrupt75:
[
"Village_Exiled_Menu_Corruption_Header_Over_Threshold"
],
corrupt100:
[
"Village_Exiled_Menu_Corruption_Header_Max_Corruption"
],
},
},
village_exiled_menu_underThreshold :{
heightFlavour:
{
large:
[
"Village_Exiled_Menu_Corruption_Header_Under_Threshold_Large"
],
huge:
[
"Village_Exiled_Menu_Corruption_Header_Under_Threshold_Huge"
],
},
},
}>><<set setup.InfoSheet_Symbiote =
{
name: "Echo",
gender: "male",
boost: "height",
colour: setup.ColourPool.BLUE,
raceId: setup.RacePool.SYMBIOTE.id,
anatomy: {},
}>><<set setup.AudioSheet_Shard_Ring =
{
voice:
{
playlist:
{
title: "characterVoice_Shard_Ring",
tracks:
{
arousal_1_Size_1:
{
tags: ["arousal_2", "Bind_Normal"],
track: "Bind_Idle_S1_A1"
},
arousal_2_Size_1:
{
tags: ["arousal_3", "Bind_Normal"],
track: "Bind_Idle_S1_A2"
},
arousal_3_Size_1:
{
tags: ["arousal_4", "Bind_Normal"],
track: "Bind_Idle_S1_A3"
},
arousal_0_Size_1:
{
tags: ["arousal_1", "Bind_Normal"],
track: "Bind_Idle_S1_A0"
},
arousal_1_Size_2:
{
tags: ["arousal_2", "Bind_Big"],
track: "Bind_Idle_S2_A1"
},
arousal_2_Size_2:
{
tags: ["arousal_3", "Bind_Big"],
track: "Bind_Idle_S2_A2"
},
arousal_3_Size_2:
{
tags: ["arousal_4", "Bind_Big"],
track: "Bind_Idle_S2_A3"
},
arousal_0_Size_2:
{
tags: ["arousal_1", "Bind_Big"],
track: "Bind_Idle_S2_A0"
},
arousal_1_Size_3:
{
tags: ["arousal_2", "Bind_Huge"],
track: "Bind_Idle_S3_A1"
},
arousal_2_Size_3:
{
tags: ["arousal_3", "Bind_Huge"],
track: "Bind_Idle_S3_A2"
},
arousal_3_Size_3:
{
tags: ["arousal_4", "Bind_Huge"],
track: "Bind_Idle_S3_A3"
},
arousal_0_Size_3:
{
tags: ["arousal_1", "Bind_Huge"],
track: "Bind_Idle_S3_A0"
},
},
},
},
}>><<set setup.BodyVisualSheet_Shard_Ring =
{
emoteList:
{
normal:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Bind/base/Bind_Neutral.png",
},
happy:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Bind/base/Bind_Happy.png",
},
angry:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Bind/base/Bind_Mad.png",
},
aroused:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Bind/base/Bind_Aroused.png",
},
worried:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Bind/base/Bind_Worried.png",
},
helmet:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Bind/BindNeutralHelm.png",
},
},
cockList :
{
baseKilt:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Bind/base/Bind_Kilt.png",
},
base:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Bind/base/Bind_Cock.png",
},
domFlacid:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Bind/dom/Bind_Dom_PenisFlaccid.png",
},
domErect:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Bind/dom/Bind_Dom_PenisErect.png",
},
domErectRing:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Bind/dom/Bind_Dom_PenisErectPowerRing.png",
},
subKilt:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Bind/sub/Bind_Sub_Loincloth.png",
},
subErect:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Bind/sub/Bind_Sub_Penis.png",
},
},
bodyList :
{
normal:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Bind/base/Bind_Base.png",
condition: function(character)
{
return State.variables.CharacterSheet_Shard_Ring.quest.available_postFightPassagesWin_firstTF == false && character.quest.fullSub == false && character.quest.fullDom == false;
},
headClass: "BindHead",
permittedCocks: [
{
cock: "baseKilt",
cockClass: "BindBody",
condition: function(character)
{
return character.quest.cockOut == false;
},
},
{
cock: "base",
cockClass: "BindBody",
condition: function(character)
{
return character.quest.cockOut == true;
},
},
],
},
dom:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Bind/dom/Bind_Dom_Base.png",
condition: function(character)
{
return character.quest.fullSub == true || character.quest.fullDom == true;
},
headClass: "BindDomHead",
permittedAccessories: [
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Bind/dom/Bind_Dom_Belt.png",
accessoryClass: "BindDomBody",
condition: function(character)
{
return character.quest.domBeltRipped == false;
},
},
],
permittedCocks: [
{
cock: "domFlacid",
cockClass: "BindDomBody",
condition: function(character)
{
return character.quest.cockOut == false;
},
},
{
cock: "domErect",
cockClass: "BindDomBody",
condition: function(character)
{
return character.quest.cockOut == true && character.quest.fullSub == true;
},
},
{
cock: "domErectRing",
cockClass: "BindDomBody",
condition: function(character)
{
return character.quest.cockOut == true && character.quest.fullDom == true;
},
},
],
},
sub:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Bind/sub/Bind_Sub_Base.png",
condition: function(character)
{
return State.variables.CharacterSheet_Shard_Ring.quest.available_postFightPassagesWin_firstTF == true && character.quest.fullSub == false && character.quest.fullDom == false;
},
headClass: "BindSubHead",
permittedCocks: [
{
cock: "subKilt",
cockClass: "BindSubBody",
condition: function(character)
{
return character.quest.cockOut == false;
},
},
{
cock: "subErect",
cockClass: "BindSubBody",
condition: function(character)
{
return character.quest.cockOut == true;
},
},
],
},
},
}>><<set setup.FighterSheet_Shard_Ring =
{
hp: 140,
stamina: 0,
strength: 10,
critChance: 0,
critDamage: 1.50,
arousalGain: 10,
growthMultiplier: 1,
bonusGrowth: {
height: 0,
cock: 0,
muscles: 0,
balls: 0,
},
minArousal: 0,
staminaRecovery: 4,
variables: $FightVariables,
fightMoveIDs: [setup.FightMove_Basic_Attack.id, setup.FightMove_AbsorbEssence.id],
fightReward: setup.RewardTier.LOW,
canMimic: false,
encounterIntroText: "<<include Encounter_Intro_Shard_Ring>>",
encounterStartText: "<<include Encounter_Start_Shard_Ring>>",
outcomePlayerWins: "<<include Encounter_Win_Shard_Ring>>",
outcomePlayerLoses: "<<include Encounter_Loss_Shard_Ring>>",
}>><<set setup.InfoSheet_Shard_Ring =
{
name: "The Bind",
gender: "male",
bodyVisual: "BodyVisualSheet_Shard_Ring",
audioSheet: "AudioSheet_Shard_Ring",
corruption: 100,
muscles: 20,
height: 75,
cock: 7,
balls: 3,
alive: true,
known: setup.EncounterKnownState.UNKNOWN,
location: setup.LOCATIONS.NORTH,
raceId: setup.RacePool.DEFAULT.id,
anatomy: {
tails: {
number: 1,
},
},
// NPCs ignore certain racial mods,
// typically relating to size, since that is already specified.
ignoreRacials: [
"ballsMods",
"cockMods",
"heightMods"
],
}>><<include "_shard_ring_body_visual">>
<<include "_shard_ring_audio">>
<<include "_shard_ring_text_sheet">>
<<include "_shard_ring_fight_sheet">>
<<include "_shard_ring_info_sheet">>
<<include "_shard_ring_quest_sheet">>
<<include "_shard_ring_story_sheet">>
<<set $CharacterSheet_Shard_Ring = setup.CharacterFactory.createCharacter({id: "CharacterSheet_Shard_Ring",
info: setup.InfoSheet_Shard_Ring,
fight: setup.FighterSheet_Shard_Ring,
quest: setup.QuestSheet_Shard_Ring,
text: "TextSheet_Shard_Ring"})>><<set setup.QuestSheet_Shard_Ring =
{
met: false,
relationshipScoring: 0,
unearthed: false,
fullDom: false,
fullSub: false,
cockOut: false,
domBeltRipped: false,
available_encounterPassages_common: true,
available_encounterIntro_dom: true,
available_encounterIntro_sub: true,
available_encounterIntro_lowRela: true,
available_postFightPassagesWin_domIdle: true,
available_postFightPassagesWin_subIdle: true,
available_postFightPassagesWin_firstTF: true,
available_postFightPassagesWin_lowRelaIdle: true,
available_postFightPassagesLoss_sub: true,
available_postFightPassagesLoss_dom: true,
available_postFightPassagesLoss_lowRelaIdle: true,
available_dominantExit_normal: true,
available_dominantExit_final: true,
available_dominantExit_domIdle: true,
available_subExit_subIdle: true,
available_subExit_normal: true,
available_subExit_final: true,
}>><<set setup.StorySheet_Shard_Ring =
{
encounterPassages:
{
common:
{
available: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.available_encounterPassages_common;
},
condition: function()
{
return true;
},
passage: "Shard_Ring_Shared_Intro",
},
},
encounterIntro:
{
firstTime:
{
available: function()
{
return true;
},
condition: function()
{
return $CharacterSheet_Shard_Ring.quest.unearthed == false;
},
passage: "Shard_Ring_FirstMeeting_Intro",
},
dom:
{
available: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.available_encounterIntro_dom;
},
condition: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.fullDom == true;
},
passage: "Shard_Ring_FullDom_Intro",
},
sub:
{
available: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.available_encounterIntro_sub;
},
condition: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.fullSub == true;
},
passage: "Shard_Ring_FullSub_Intro",
},
lowRela:
{
available: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.available_encounterIntro_lowRela;
},
condition: function()
{
return true;
},
passage: "Shard_Ring_LowScoring_Intro",
},
},
postFightPassagesWin:
{
domIdle:
{
available: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.available_postFightPassagesWin_domIdle;
},
condition: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.fullDom == true;
},
passage: "Shard_Ring_Win_Dominant_Idle",
},
subIdle:
{
available: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.available_postFightPassagesWin_subIdle;
},
condition: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.fullSub == true;
},
passage: "ShardRing_Win_Sub_Idle",
},
lowRelaIdle:
{
available: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.available_postFightPassagesWin_lowRelaIdle;
},
condition: function()
{
return true;
},
passage: "Shard_Ring_Low_Rela_Win_Idle",
},
},
postFightPassagesLoss:
{
lowRelaIdle:
{
available: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.available_postFightPassagesLoss_lowRelaIdle;
},
condition: function()
{
return true;
},
passage: "Shard_Ring_Low_Rela_Loss",
},
sub:
{
available: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.available_postFightPassagesLoss_sub;
},
condition: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.fullSub == true;
},
passage: "Shard_Ring_Sub_Loss",
},
dom:
{
available: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.available_postFightPassagesLoss_dom;
},
condition: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.fullDom == true;
},
passage: "Shard_Ring_Dom_Loss",
},
},
dominantExit:
{
firstTF:
{
available: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.available_postFightPassagesWin_firstTF;
},
condition: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.relationshipScoring >= 2;
},
passage: "Shard_Ring_Low_Rela_Win_Dominant_FirstTF",
},
normal:
{
available: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.available_dominantExit_normal;
},
condition: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.relationshipScoring <= 3 && State.variables.CharacterSheet_Shard_Ring.quest.relationshipScoring >= -3;
},
passage: "Shard_Ring_Low_Rela_Win_Dominant_NormalExit",
},
final:
{
available: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.available_dominantExit_final;
},
condition: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.relationshipScoring > 3 && State.variables.CharacterSheet_Shard_Ring.quest.fullDom == false;
},
passage: "Shard_Ring_Low_Rela_Win_Dominant_Final",
},
domIdle:
{
available: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.available_dominantExit_domIdle;
},
condition: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.fullDom == true;
},
passage: "Shard_Ring_Low_Rela_Win_Dominant_Idle",
},
},
subExit:
{
firstTF:
{
available: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.available_postFightPassagesWin_firstTF;
},
condition: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.relationshipScoring <= -2;
},
passage: "Shard_Ring_Low_Rela_Win_Submissive_FirstTF",
},
normal:
{
available: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.available_subExit_normal;
},
condition: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.relationshipScoring <= 3 && State.variables.CharacterSheet_Shard_Ring.quest.relationshipScoring >= -3;
},
passage: "Shard_Ring_Low_Rela_Win_Sub_NormalExitChoice",
},
final:
{
available: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.available_subExit_final;
},
condition: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.relationshipScoring < -3 && State.variables.CharacterSheet_Shard_Ring.quest.fullSub == false;
},
passage: "Shard_Ring_Low_Rela_Win_Sub_FinalExitChoice",
},
subIdle:
{
available: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.available_subExit_subIdle;
},
condition: function()
{
return State.variables.CharacterSheet_Shard_Ring.quest.fullSub == true;
},
passage: "Shard_Ring_Low_Rela_Win_Sub_IdleExit",
},
},
}>><<set setup.TextSheet_Shard_Ring =
{
}>><<set setup.FighterSheet_Slime =
{
hp: 80,
stamina: 0,
strength: 20,
critChance: 0,
critDamage: 1.50,
arousalGain: 10,
minArousal: 0,
growthMultiplier: 1,
bonusGrowth: {
height: 0,
cock: 0,
muscles: 0,
balls: 0,
},
staminaRecovery: 12,
variables: $FightVariables,
fightMoveIDs: [setup.FightMove_SlimeLunge.id, setup.FightMove_Mimic.id],
fightReward: setup.RewardTier.VERY_LOW,
canMimic: false,
encounterIntroText: "<<include Encounter_Intro_Slime>>",
encounterStartText: "<<include Encounter_Start_Slime>>",
outcomePlayerWins: "<<include Encounter_Win_Slime>>",
outcomePlayerLoses: "<<include Encounter_Loss_Slime>>"
}>><<set setup.InfoSheet_Slime =
{
name: "Slime",
gender: "other",
corruption: 0,
muscles: 0,
height: 76,
cock: 0,
balls: 0,
alive: true,
known: setup.EncounterKnownState.UNKNOWN,
location: setup.LOCATIONS.NORTH,
raceId: setup.RacePool.SYMBIOTE.id,
abilities: [{abi: setup.Ability_Mimic, rank: setup.Ability_Mimic.maxRank}],
anatomy: {},
// NPCs ignore certain racial mods,
// typically relating to size, since that is already specified.
ignoreRacials: [
"ballsMods",
"cockMods",
"heightMods"
],
}>><<include "_slime_fight_sheet">>
<<include "_slime_info_sheet">>
<<include "_slime_quest_sheet">>
<<include "_slime_text_sheet">>
<<set $CharacterSheet_Slime = setup.CharacterFactory.createCharacter({id: "CharacterSheet_Slime",
info: setup.InfoSheet_Slime,
fight: setup.FighterSheet_Slime,
quest: setup.QuestSheet_Slime,
text: "TextSheet_Slime"})>><<set setup.QuestSheet_Slime =
{
met: false
}>><<set setup.TextSheet_Slime =
{
}>><<set setup.AudioSheet_Torgar =
{
voice:
{
playlist:
{
title: "characterVoice_Torgar",
tracks:
{
arousal_1_Size_1:
{
tags: ["arousal_1", "Torgar_Normal"],
track: "Torgar_Idle_S1_A1"
},
arousal_2_Size_1:
{
tags: ["arousal_2", "Torgar_Normal"],
track: "Torgar_Idle_S1_A2"
},
arousal_3_Size_1:
{
tags: ["arousal_3", "Torgar_Normal"],
track: "Torgar_Idle_S1_A3"
},
arousal_4_Size_1:
{
tags: ["arousal_4", "Torgar_Normal"],
track: "Torgar_Idle_S1_A4"
},
arousal_1_Size_2:
{
tags: ["arousal_1", "Torgar_Infected"],
track: "Torgar_Idle_S2_A1"
},
arousal_2_Size_2:
{
tags: ["arousal_2", "Torgar_Infected"],
track: "Torgar_Idle_S2_A2"
},
arousal_3_Size_2:
{
tags: ["arousal_3", "Torgar_Infected"],
track: "Torgar_Idle_S2_A3"
},
arousal_4_Size_2:
{
tags: ["arousal_4", "Torgar_Infected"],
track: "Torgar_Idle_S2_A4"
},
arousal_1_Size_3:
{
tags: ["arousal_1", "Torgar_Lost"],
track: "Torgar_Idle_S3_A1"
},
arousal_2_Size_3:
{
tags: ["arousal_2", "Torgar_Lost"],
track: "Torgar_Idle_S3_A2"
},
arousal_3_Size_3:
{
tags: ["arousal_3", "Torgar_Lost"],
track: "Torgar_Idle_S3_A3"
},
arousal_4_Size_3:
{
tags: ["arousal_4", "Torgar_Lost"],
track: "Torgar_Idle_S3_A4"
},
},
},
},
}>><<set setup.BodyVisualSheet_Torgar =
{
emoteList:
{
normal:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_head_neutral.png",
cumVisual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_head_cum_white.png",
},
smiling:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_head_smiling.png",
cumVisual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_head_cum_white.png",
},
blushing:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_head_blushing.png",
cumVisual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_head_cum_white.png",
},
horny:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_head_horny.png",
cumVisual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_head_cum_white.png",
},
sad:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_head_sad.png",
cumVisual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_head_cum_white.png",
},
angry:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_head_angry.png",
cumVisual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_head_cum_white.png",
},
cumming:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_head_cumming.png",
cumVisual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_head_cum_white.png",
},
},
cockList :
{
smallest:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_dick_1.png",
cumVisual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_dick_1_cum.png",
},
small:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_dick_2.png",
cumVisual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_dick_2_cum.png",
},
medium:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_dick_3.png",
cumVisual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_dick_3_cum.png",
},
corruptedMedium:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_dick_4.png",
cumVisual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_dick_4_cum.png",
},
lost:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_dick_5.png",
cumVisual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_dick_5_cum.png",
},
ascended:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_dick_6.png",
cumVisual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_dick_6_cum.png",
},
},
bodyList :
{
normal:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_body_1.png",
cumVisual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_body_1_cum.png",
condition: function(character)
{
var size = setup.getStatValue(character, "height");
return character.quest.progress == setup.TorgarProgress.NORMAL;
},
headClass: "TorgarSmallBodyHead",
permittedCocks: [
{
cock: "smallest",
cockClass: "TorgarSmallBody1Cock",
condition: function(character)
{
let ratio = setup.getcockToBodyRatio(character);
return ratio < 0.55;
},
},
{
cock: "small",
cockClass: "TorgarSmallBody2Cock",
condition: function(character)
{
let ratio = setup.getcockToBodyRatio(character);
return ratio >= 0.55;
},
},
],
},
infected:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_body_2.png",
cumVisual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_body_2_cum.png",
condition: function(character)
{
return character.quest.progress == setup.TorgarProgress.INFECTED || character.quest.progress == setup.TorgarProgress.REDEEMED || (!character.quest.lost_FullyCovered && character.quest.progress == setup.TorgarProgress.LOST);
},
headClass: "TorgarInfectedBodyHead",
permittedCocks: [
{
cock: "medium",
cockClass: "TorgarInfected2Cock",
condition: function(character)
{
return character.quest.blackVeinsOnDick == false;
},
},
{
cock: "corruptedMedium",
cockClass: "TorgarInfected3Cock",
condition: function(character)
{
return character.quest.blackVeinsOnDick == true;
},
},
],
},
lost:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_body_3.png",
cumVisual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_body_3.png",
condition: function(character)
{
return (character.quest.lost_FullyCovered && character.quest.progress == setup.TorgarProgress.LOST) || character.quest.progress == setup.TorgarProgress.LOST_TEAMMATE;
},
headClass: "TorgarLostBodyHead",
permittedCocks: [
{
cock: "lost",
cockClass: "TorgarLost4Cock",
condition: function(character)
{
return true;
},
},
],
},
ascended:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_body_4.png",
cumVisual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_body_4.png",
condition: function(character)
{
return character.quest.progress == setup.TorgarProgress.ASCENDED;
},
headClass: "TorgarAscendedBodyHead",
permittedCocks: [
{
cock: "ascended",
cockClass: "TorgarAscended5Cock",
condition: function(character)
{
return true;
},
},
],
},
redeemed:
{
visual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_body_1_no_canister.png",
cumVisual: "https://sombreve.github.io/Dawn-of-Corruption-Site/Images/characters/Torgar/portrait_torgar_body_1_no_canister_cum.png",
condition: function(character)
{
return character.quest.progress == setup.TorgarProgress.REDEEMED_TEAMMATE;
},
headClass: "TorgarSmallBodyHead",
permittedCocks: [
{
cock: "smallest",
cockClass: "TorgarSmallBody1Cock",
condition: function(character)
{
let ratio = setup.getcockToBodyRatio(character);
return ratio < 0.55;
},
},
{
cock: "small",
cockClass: "TorgarSmallBody2Cock",
condition: function(character)
{
let ratio = setup.getcockToBodyRatio(character);
return ratio >= 0.55;
},
},
],
},
},
}>><<set setup.FighterSheet_Torgar =
{
hp: 120,
stamina: 0,
strength: 35,
critChance: 0,
critDamage: 1.50,
arousalGain: 10,
growthMultiplier: 1,
bonusGrowth: {
height: 0,
cock: 0,
muscles: 0,
balls: 0,
},
minArousal: 0,
staminaRecovery: 4,
variables: $FightVariables,
fightMoveIDs: [setup.FightMove_Basic_Attack.id, setup.FightMove_Sigil_Triad.id],
fightReward: setup.RewardTier.LOW,
canMimic: true,
encounterIntroText: "<<include Encounter_Intro_Torgar>>",
encounterStartText: "<<include Encounter_Start_Torgar>>",
outcomePlayerWins: "<<include Encounter_Win_Torgar>>",
outcomePlayerLoses: "<<include Encounter_Loss_Torgar>>",
teammateSettings:
{
attackTiming: setup.AttackTiming.BEFORE_PLAYER,
},
}>><<set setup.InfoSheet_Torgar =
{
name: "Torgar",
gender: "male",
bodyVisual: "BodyVisualSheet_Torgar",
audioSheet: "AudioSheet_Torgar",
corruption: 100,
muscles: 40,
height: 81,
cock: 12,
balls: 5,
alive: true,
known: setup.EncounterKnownState.UNKNOWN,
location: setup.LOCATIONS.NORTH,
raceId: setup.RacePool.HALFORC.id,
anatomy: {
eyes: {
colour: setup.ColourPool.GREEN
},
},
// NPCs ignore certain racial mods,
// typically relating to size, since that is already specified.
ignoreRacials: [
"ballsMods",
"cockMods",
"heightMods"
],
}>><<include "_torgar_body_visual">>
<<include "_torgar_audio">>
<<include "_torgar_text_sheet">>
<<include "_torgar_fight_sheet">>
<<include "_torgar_info_sheet">>
<<include "_torgar_quest_sheet">>
<<include "_torgar_story_sheet">>
<<set $CharacterSheet_Torgar = setup.CharacterFactory.createCharacter({id: "CharacterSheet_Torgar",
info: setup.InfoSheet_Torgar,
fight: setup.FighterSheet_Torgar,
quest: setup.QuestSheet_Torgar,
text: "TextSheet_Torgar"})>><<set setup.QuestSheet_Torgar =
{
met: false,
progress: setup.TorgarProgress.NORMAL,
pureScoring: 0,
lostScoring: 0,
ascendedScoring: 0,
relationshipScoring: 0,
growthMultiplier: 1,
usedVialOnPlayerDick: false,
blackVeinsOnDick: false,
lost_FullyCovered: false,
available_encounterPassages_lostTeammateIdle: true,
available_encounterPassages_redeemedTeammateFirstTime: true,
available_encounterPassages_redeemedTeammateIdle: true,
available_encounterPassages_lowRelaMidRelaTrigger: true,
available_encounterPassages_midRelaPathChange: true,
available_encounterPassages_lostPathIdle: true,
available_encounterPassages_midRelaIdle: true,
available_encounterPassages_lostPathTrigger: true,
available_encounterPassages_purePathTrigger: true,
available_encounterPassages_lowRelaIdle_GotBig: true,
available_encounterPassages_lowRelaIdle_Carry: true,
available_encounterPassages_lowRelaIdle_Origin: true,
available_encounterPassages_lowRelaIdle: true,
available_encounterPassages_firstTime: true,
available_postFightPassagesWin_lowRelaMidRelaTrigger: true,
available_postFightPassagesWin_midRelaPathChange: true,
available_postFightPassagesWin_lostPathTrigger: true,
available_postFightPassagesWin_purePathTrigger: true,
available_postFightPassagesWin_lostPathIdle: true,
available_postFightPassagesWin_midRelaIdle: true,
available_postFightPassagesWin_lowRelaIdle: true,
available_postFightPassagesLoss_lowRelaMidRelaTrigger: true,
available_postFightPassagesLoss_midRelaPathChange: true,
available_postFightPassagesLoss_lostPathTrigger: true,
available_postFightPassagesLoss_purePathTrigger: true,
available_postFightPassagesLoss_lostPathIdle: true,
available_postFightPassagesLoss_midRelaIdle: true,
available_postFightPassagesLoss_lowRelaIdle: true,
}>><<set setup.StorySheet_Torgar =
{
encounterPassages:
{
lostTeammateIdle:
{
available: function()
{
return State.variables.CharacterSheet_Torgar.quest.available_encounterPassages_lostTeammateIdle;
},
condition: function()
{
return State.variables.CharacterSheet_Torgar.quest.progress == setup.TorgarProgress.LOST_TEAMMATE;
},
passage: "Torgar_Lost_Teammate_EncounterStart",
},
redeemedTeammateFirstTime:
{
available: function()
{
return State.variables.CharacterSheet_Torgar.quest.available_encounterPassages_redeemedTeammateFirstTime;
},
condition: function()
{
return State.variables.CharacterSheet_Torgar.quest.progress == setup.TorgarProgress.REDEEMED_TEAMMATE;
},
passage: "Torgar_Redeemed_Path_Idle_Win_Epilogue",
},
redeemedTeammateIdle:
{
available: function()
{
return State.variables.CharacterSheet_Torgar.quest.available_encounterPassages_redeemedTeammateIdle;
},
condition: function()
{
return State.variables.CharacterSheet_Torgar.quest.progress == setup.TorgarProgress.REDEEMED_TEAMMATE;
},
passage: "Torgar_Redeemed_Teammate_Path_Idle",
},
lowRelaMidRelaTrigger:
{
available: function()
{
return State.variables.CharacterSheet_Torgar.quest.available_encounterPassages_lowRelaMidRelaTrigger;
},
condition: function()
{
return State.variables.CharacterSheet_Torgar.quest.relationshipScoring >= 3;
},
passage: "Torgar_Low_Rela_Mid_Rela_Trigger_EncounterStart",
},
midRelaPathChange:
{
available: function()
{
return State.variables.CharacterSheet_Torgar.quest.available_encounterPassages_midRelaPathChange;
},
condition: function()
{
return State.variables.CharacterSheet_Torgar.quest.relationshipScoring >= 6;
},
passage: "Torgar_Mid_Rela_Path_Change_EncounterStart",
},
lostPathIdle:
{
available: function()
{
return State.variables.CharacterSheet_Torgar.quest.available_encounterPassages_lostPathIdle;
},
condition: function()
{
return State.variables.CharacterSheet_Torgar.quest.progress == setup.TorgarProgress.LOST;
},
passage: "Torgar_Lost_Path_Idle_EncounterStart",
},
midRelaIdle:
{
available: function()
{
return State.variables.CharacterSheet_Torgar.quest.available_encounterPassages_midRelaIdle;
},
condition: function()
{
return State.variables.CharacterSheet_Torgar.quest.progress == setup.TorgarProgress.INFECTED;
},
passage: "Torgar_Mid_Rela_Idle_EncounterStart",
},
lostPathTrigger:
{
available: function()
{
return State.variables.CharacterSheet_Torgar.quest.available_encounterPassages_lostPathTrigger;
},
condition: function()
{
return State.variables.CharacterSheet_Torgar.quest.relationshipScoring >= 6 && setup.evaluateTorgarPath() == setup.TorgarProgress.LOST;
},
passage: "Torgar_Lost_Path_Trigger_EncounterStart",
},
purePathTrigger:
{
available: function()
{
return State.variables.CharacterSheet_Torgar.quest.available_encounterPassages_purePathTrigger;
},
condition: function()
{
return State.variables.CharacterSheet_Torgar.quest.relationshipScoring >= 6 && setup.evaluateTorgarPath() == setup.TorgarProgress.REDEEMED;
},
passage: "Torgar_Pure_Path_Trigger_EncounterStart",
},
lowRelaIdle_GotBig:
{
available: function()
{
return State.variables.CharacterSheet_Torgar.quest.available_encounterPassages_lowRelaIdle_GotBig;
},
condition: function()
{
return State.variables.CharacterSheet_Torgar.quest.relationshipScoring >= 1;
},
passage: "Torgar_Low_Rela_EncounterStart_Converse",
},
lowRelaIdle_Carry:
{
available: function()
{
return State.variables.CharacterSheet_Torgar.quest.available_encounterPassages_lowRelaIdle_Carry;
},
condition: function()
{
return State.variables.CharacterSheet_Torgar.quest.relationshipScoring >= 1;
},
passage: "Torgar_Low_Rela_EncounterStart_Converse",
},
lowRelaIdle_Origin:
{
available: function()
{
return State.variables.CharacterSheet_Torgar.quest.available_encounterPassages_lowRelaIdle_Origin;
},
condition: function()
{
return State.variables.CharacterSheet_Torgar.quest.relationshipScoring >= 1;
},
passage: "Torgar_Low_Rela_EncounterStart_Converse",
},
lowRelaIdle:
{
available: function()
{
return State.variables.CharacterSheet_Torgar.quest.available_encounterPassages_lowRelaIdle;
},
condition: function()
{
return State.variables.CharacterSheet_Torgar.quest.relationshipScoring >= 1;
},
passage: "Torgar_Low_Rela_EncounterStart",
},
firstTime:
{
available: function()
{
return State.variables.CharacterSheet_Torgar.quest.available_encounterPassages_firstTime;
},
condition: function()
{
return true;
},
passage: "Torgar_FirstMeeting_Intro",
},
},
postFightPassagesWin:
{
lowRelaMidRelaTrigger:
{
available: function()
{
return State.variables.CharacterSheet_Torgar.quest.available_postFightPassagesWin_lowRelaMidRelaTrigger;
},
condition: function()
{
return State.variables.CharacterSheet_Torgar.quest.relationshipScoring >= 3;
},
passage: "Torgar_Low_Rela_Mid_Rela_Trigger_Win",
},
midRelaPathChange:
{
available: function()
{
return State.variables.CharacterSheet_Torgar.quest.available_postFightPassagesWin_midRelaPathChange;
},
condition: function()
{
return State.variables.CharacterSheet_Torgar.quest.relationshipScoring >= 6;
},
passage: "Torgar_Mid_Rela_Path_Change_Win",
},
lostPathTrigger:
{
available: function()
{
return State.variables.CharacterSheet_Torgar.quest.available_postFightPassagesWin_lostPathTrigger;
},
condition: function()
{
return State.variables.CharacterSheet_Torgar.quest.relationshipScoring >= 6 && State.variables.CharacterSheet_Torgar.quest.progress == setup.TorgarProgress.LOST;
},
passage: "Torgar_Lost_Path_Trigger_Win",
},
purePathTrigger:
{
available: function()
{
return State.variables.CharacterSheet_Torgar.quest.available_postFightPassagesWin_purePathTrigger;
},
condition: function()
{
return State.variables.CharacterSheet_Torgar.quest.relationshipScoring >= 6 && State.variables.CharacterSheet_Torgar.quest.progress == setup.TorgarProgress.REDEEMED;
},
passage: "Torgar_Pure_Path_Trigger_Win",
},
lostPathIdle:
{
available: function()
{
return State.variables.CharacterSheet_Torgar.quest.available_postFightPassagesWin_lostPathIdle;
},
condition: function()
{
return State.variables.CharacterSheet_Torgar.quest.progress == setup.TorgarProgress.LOST;
},
passage: "Torgar_Lost_Path_Idle_Win",
},
midRelaIdle:
{
available: function()
{
return State.variables.CharacterSheet_Torgar.quest.available_postFightPassagesWin_midRelaIdle;
},
condition: function()
{
return State.variables.CharacterSheet_Torgar.quest.progress == setup.TorgarProgress.INFECTED;
},
passage: "Torgar_Mid_Rela_Win_Idle",
},
lowRelaIdle:
{
available: function()
{
return State.variables.CharacterSheet_Torgar.quest.available_postFightPassagesWin_lowRelaIdle;
},
condition: function()
{
return true;
},
passage: "Torgar_Low_Rela_Win_Idle",
},
},
postFightPassagesLoss:
{
lowRelaMidRelaTrigger:
{
available: function()
{
return State.variables.CharacterSheet_Torgar.quest.available_postFightPassagesLoss_lowRelaMidRelaTrigger;
},
condition: function()
{
return State.variables.CharacterSheet_Torgar.quest.relationshipScoring >= 3;
},
passage: "Torgar_Low_Rela_Mid_Rela_Trigger_Loss",
},
midRelaPathChange:
{
available: function()
{
return State.variables.CharacterSheet_Torgar.quest.available_postFightPassagesLoss_midRelaPathChange;
},
condition: function()
{
return State.variables.CharacterSheet_Torgar.quest.relationshipScoring >= 6;
},
passage: "Torgar_Mid_Rela_Path_Change_Loss",
},
lostPathTrigger:
{
available: function()
{
return State.variables.CharacterSheet_Torgar.quest.available_postFightPassagesLoss_lostPathTrigger;
},
condition: function()
{
return State.variables.CharacterSheet_Torgar.quest.relationshipScoring >= 6 && State.variables.CharacterSheet_Torgar.quest.progress == setup.TorgarProgress.LOST;
},
passage: "Torgar_Lost_Path_Trigger_Loss",
},
purePathTrigger:
{
available: function()
{
return State.variables.CharacterSheet_Torgar.quest.available_postFightPassagesLoss_purePathTrigger;
},
condition: function()
{
return State.variables.CharacterSheet_Torgar.quest.relationshipScoring >= 6 && State.variables.CharacterSheet_Torgar.quest.progress == setup.TorgarProgress.REDEEMED;
},
passage: "Torgar_Pure_Path_Trigger_Loss",
},
lostPathIdle:
{
available: function()
{
return State.variables.CharacterSheet_Torgar.quest.available_postFightPassagesLoss_lostPathIdle;
},
condition: function()
{
return State.variables.CharacterSheet_Torgar.quest.progress == setup.TorgarProgress.LOST;
},
passage: "Torgar_Lost_Path_Idle_Loss",
},
midRelaIdle:
{
available: function()
{
return State.variables.CharacterSheet_Torgar.quest.available_postFightPassagesLoss_midRelaIdle;
},
condition: function()
{
return State.variables.CharacterSheet_Torgar.quest.progress == setup.TorgarProgress.INFECTED;
},
passage: "Torgar_Mid_Rela_Loss_Idle",
},
lowRelaIdle:
{
available: function()
{
return State.variables.CharacterSheet_Torgar.quest.available_postFightPassagesLoss_lowRelaIdle;
},
condition: function()
{
return true;
},
passage: "Torgar_Low_Rela_Loss_Idle",
},
},
}>><<set setup.TextSheet_Torgar =
{
/* TODO: Create for TORGAR. This is placeholder */
goMeetImp_Intro :{
heightFlavour: {
small: [
"GoMeetImp_heightFlavour_small",
],
medium: [
"GoMeetImp_heightFlavour_small",
],
large: [
"GoMeetImp_heightFlavour_large",
],
huge: [
"GoMeetImp_heightFlavour_huge",
],
},
},
}>><<set setup.FighterSheet_town_guard =
{
hp: 80,
stamina: 0,
strength: 30,
critChance: 20,
critDamage: 1.75,
arousalGain: 5,
minArousal: 0,
growthMultiplier: 1,
bonusGrowth: {
height: 0,
cock: 0,
muscles: 0,
balls: 0,
},
staminaRecovery: 15,
variables: $FightVariables,
fightMoveIDs: [setup.FightMove_Basic_Attack.id],
fightReward: setup.RewardTier.LOW,
canMimic: true,
encounterIntroText: undefined,
encounterStartText: "<<include town_guard_fight_start>>",
outcomePlayerWins: "<<include town_guard_fight_won>>",
outcomePlayerLoses: "<<include town_guard_fight_lost>>"
}>><<set setup.InfoSheet_town_guard =
{
name: "Guard",
gender: "male",
corruption: 0,
muscles: 15,
height: 73,
cock: 6,
balls: 2,
alive: true,
raceId: setup.RacePool.DRAGONBORN.id,
location: setup.LOCATIONS.VILLAGE,
// NPCs ignore certain racial mods,
// typically relating to size, since that is already specified.
ignoreRacials: [
"ballsMods",
"cockMods",
"heightMods"
],
}>><<include "_town_guard_fight_sheet">>
<<include "_town_guard_info_sheet">>
<<include "_town_guard_quest_sheet">>
<<set $CharacterSheet_town_guard = setup.CharacterFactory.createCharacter({id: "CharacterSheet_town_guard",
info: setup.InfoSheet_town_guard,
fight: setup.FighterSheet_town_guard,
quest: setup.QuestSheet_town_guard,
text: undefined})>><<set setup.QuestSheet_town_guard =
{
met: false,
fled: false,
corrupted: false,
beatenOnce: false
}>><<set setup.FighterSheet_Wounded_Lost =
{
hp: 30,
stamina: 60,
strength: 0,
critChance: 0,
critDamage: 1.50,
arousalGain: 20,
growthMultiplier: 1,
bonusGrowth: {
height: 0,
cock: 0,
muscles: 0,
balls: 0,
},
minArousal: 0,
staminaRecovery: 8,
variables: $FightVariables,
fightMoveIDs: [setup.FightMove_Tutorial1.id, setup.FightMove_Tutorial2.id, setup.FightMove_Tutorial3.id],
fightReward: setup.RewardTier.VERY_LOW,
canMimic: true,
encounterIntroText: "",
encounterStartText: "",
outcomePlayerWins: "<<include intro_fight_won>>",
outcomePlayerLoses: "<<include intro_fight_lost>>",
teammateSettings:
{
attackTiming: setup.AttackTiming.BEFORE_PLAYER,
},
}>><<set setup.InfoSheet_Wounded_Lost =
{
name: "Wounded Lost",
gender: "male",
corruption: 800,
muscles: 60,
height: 98,
cock: 12,
balls: 6,
alive: true,
known: setup.EncounterKnownState.UNKNOWN,
location: setup.LOCATIONS.NONE,
raceId: setup.RacePool.WOLF.id,
// NPCs ignore certain racial mods,
// typically relating to size, since that is already specified.
ignoreRacials: [
"ballsMods",
"cockMods",
"heightMods"
],
}>><<include "_wounded_lost_text_sheet">>
<<include "_wounded_lost_fight_sheet">>
<<include "_wounded_lost_info_sheet">>
<<include "_wounded_lost_quest_sheet">>
<<set $CharacterSheet_Wounded_Lost = setup.CharacterFactory.createCharacter({id: "CharacterSheet_Wounded_Lost",
info: setup.InfoSheet_Wounded_Lost,
fight: setup.FighterSheet_Wounded_Lost,
quest: setup.QuestSheet_Wounded_Lost,
text: "TextSheet_Wounded_Lost"})>><<set setup.QuestSheet_Wounded_Lost =
{
met: false,
}>><<set setup.TextSheet_Wounded_Lost =
{
}>><<set setup.Ability_ActiveParry = setup.AbilityDataFactory.createAbilityData({
id: "Ability_ActiveParry",
name: "Active Parry",
description:function(character)
{
return character.info.name + " uses a parry stance.";
},
maxRank: 1
})>>
<<run setup.Ability_ActiveParry.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.blackboard = {parryTurnCount: 0}
},
)>>
<<run setup.Ability_ActiveParry.addBehaviour(
"update",
setup.AbilityTrigger.ON_FIGHT_PRE_RECEIVE_DAMAGE,
function(abilityRuntimeData, abilityParams){
var displayString = "";
if(abilityParams.attackDamage != 0)
{
var blackboard =
{
attackDamage: abilityParams.attackDamage,
};
abilityParams.attackDamage = 0;
abilityParams.ignoreAdditionalEffects = true;
abilityParams.target.applyAbilityRuntimeData(setup.Ability_ParryEnergy, blackboard)
displayString += abilityParams.target.info.name + " gazes at the incoming hit, letting it reach him.\n"
displayString += "The attack feels like it connects, but something different happens. It is like it hit a invisible wall of energy instead.\n";
displayString += "The energy of the attack explodes into a thick white mist.\n";
displayString += abilityParams.target.info.name + " grins as the it rushes into his chest, filling him with the energy of the attack.";
}
else
{
displayString += abilityParams.target.info.name + " is ready to parry, but nothing comes.";
}
return displayString;
}
)>>
<<run setup.Ability_ActiveParry.addBehaviour(
"update",
setup.AbilityTrigger.ON_FIGHT_TURN_START,
function(abilityRuntimeData, abilityParams){
var displayString = "";
abilityRuntimeData.blackboard.parryTurnCount++
if(abilityRuntimeData.blackboard.parryTurnCount >= 2)
{
abilityRuntimeData.isScheduledForRemoval = true;
}
return displayString;
}
)>>
<<run setup.Ability_ActiveParry.setFilter(setup.AbilityFilter.STATUSEFFECT)>><<set setup.Ability_ApexPredator = setup.AbilityDataFactory.createAbilityData({
id: "Ability_ApexPredator",
name: "Apex Predator",
description:function(character, abilityRuntimeData)
{
let displayString = "You're at the top of the food chain. Every victory makes you bigger. Unlocks the 'Unnatural Growth' Fight Move.";
return displayString
},
maxRank: 999
})>>
<<run setup.Ability_ApexPredator.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.fightMoveIDsMods = {mod: setup.mod.ADD, value: [setup.FightMove_UnnaturalGrowth.id]}
if (abilityParams.self == State.variables.CharacterSheet_Player)
{
setup.flagHighlightChoice("newCardAvail");
}
}
)>>
<<run setup.Ability_ApexPredator.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE + setup.AbilityTrigger.ON_FIGHT_BATTLE_WON,
function(abilityRuntimeData, abilityParams)
{
let currentHeight = 0;
if(abilityRuntimeData.modifier.heightMods != undefined)
{
currentHeight = abilityRuntimeData.modifier.heightMods.value;
}
abilityRuntimeData.modifier.heightMods = {mod: setup.mod.ADD, value: currentHeight + setup.getRankGrowth(abilityRuntimeData, "linear", 12)}
let currentMuscles = 0;
if(abilityRuntimeData.modifier.musclesMods != undefined)
{
currentMuscles = abilityRuntimeData.modifier.musclesMods.value;
}
abilityRuntimeData.modifier.musclesMods = {mod: setup.mod.ADD, value: currentMuscles + setup.getRankGrowth(abilityRuntimeData, "linear", 5)}
let currentCock = 0;
if(abilityRuntimeData.modifier.cockMods != undefined)
{
currentCock = abilityRuntimeData.modifier.cockMods.value;
}
abilityRuntimeData.modifier.cockMods = {mod: setup.mod.ADD, value: currentCock + setup.getRankGrowth(abilityRuntimeData, "linear", 4)}
let currentBalls = 0;
if(abilityRuntimeData.modifier.ballsMods != undefined)
{
currentBalls = abilityRuntimeData.modifier.ballsMods.value;
}
abilityRuntimeData.modifier.ballsMods = {mod: setup.mod.ADD, value: currentBalls + setup.getRankGrowth(abilityRuntimeData, "linear", 1.5)}
}
)>>
<<run setup.Ability_ApexPredator.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_AppetiteForGrowth = setup.AbilityDataFactory.createAbilityData({
id: "Ability_AppetiteForGrowth",
name: "Appetite for Growth",
description:function(character, abilityRuntimeData)
{
if(abilityRuntimeData == undefined)
{
return "Whenever you gain any amount of growth, you instead gain 25% more of that amount.";
}
else
{
return "Whenever you gain any amount of growth, you instead gain "+ (Math.ceil((0.25 + setup.getRankGrowth(abilityRuntimeData, "log", 10)) * 100)).toFixed(2).replace(/\.00$/, '') +"% more of that amount.";
}
},
maxRank: 5
})>>
<<run setup.Ability_AppetiteForGrowth.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_AppetiteForGrowth.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.growthMods = {
mod: setup.mod.ADD, value: (0.25 + setup.getRankGrowth(abilityRuntimeData, "log", 10)) //This value is not a - I KNOOOOOOOOOOOOOOOOW I JUST FOUND IT
}
}
)>>
<<run setup.Ability_AppetiteForGrowth.setUpgrade(
function(abilityRuntimeData, character){
return (setup.canRank(abilityRuntimeData) == false)
},
setup.Ability_AppetiteForGrowth_2,
function(character){
var displayString = ""
displayString += "You must be at least level 3: (" + State.variables.Level + ")\n"
return displayString
}
)>>
<<run setup.Ability_AppetiteForGrowth.setUnlockableFromLevelScreen(true)>>
<<run setup.Ability_AppetiteForGrowth.setUnlockCondition(
function(character){
return (State.variables.Level >= 3)
}
)>>
<<set setup.Ability_AppetiteForGrowth.setCategory(setup.AbilityCategory.GROWTH)>>
<<set setup.Ability_AppetiteForGrowth.setGrade(setup.AbilityGrade.LOW)>><<set setup.Ability_AppetiteForGrowth_2 = setup.AbilityDataFactory.createAbilityData({
id: "Ability_AppetiteForGrowth_2",
name: "Demonic Appetite",
description:function(character, abilityRuntimeData)
{
if(abilityRuntimeData == undefined)
{
return "Whenever you gain any amount of growth, you gain 75% more of that amount.";
}
else
{
return "Whenever you gain any amount of growth, you gain "+ ( Math.ceil((0.75 + setup.getRankGrowth(abilityRuntimeData, "exp", 3) / 100) * 100) ).toFixed(2).replace(/\.00$/, '') +"% more of that amount.\n Gain " + (10 + setup.getRankGrowth(abilityRuntimeData, "linear", 5))+" corruption." ;
}
},
maxRank: 5
})>>
<<run setup.Ability_AppetiteForGrowth_2.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_AppetiteForGrowth_2.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.growthMods = {
mod: setup.mod.ADD, value: (0.75 + setup.getRankGrowth(abilityRuntimeData, "exp", 3) / 100)
}
setup.setModifierCorruptionMods(abilityRuntimeData.modifier, {mod: setup.mod.ADD, value: 10 + setup.getRankGrowth(abilityRuntimeData, "linear", 5)})
}
)>>
<<set setup.Ability_AppetiteForGrowth_2.setCategory(setup.AbilityCategory.SOMBREVE)>>
<<set setup.Ability_AppetiteForGrowth_2.setGrade(setup.AbilityGrade.HIGH)>><<set setup.Ability_Berserking = setup.AbilityDataFactory.createAbilityData({
id: "Ability_Berserking",
name: "Berserking",
description:function(character, abilityRuntimeData)
{
if(abilityRuntimeData == undefined)
{
let displayString = "You fight with reckless abandon. Your strength is increased by 15%";
displayString += " and your max HP is decreased by 5%"
return displayString
}
else
{
let displayString = "You fight with reckless abandon. Your strength is increased by ";
displayString += setup.getRankGrowth(abilityRuntimeData, "linear", 15) + "%";
displayString += " and your max HP is decreased by ";
displayString += setup.getRankGrowth(abilityRuntimeData, "linear", 5) + "%";
return displayString
}
},
maxRank: 5
})>>
<<run setup.Ability_Berserking.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_Berserking.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE + setup.AbilityTrigger.ON_STAT_CHANGE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.strengthMods = {
mod: setup.mod.MULTIPLYPOS,
value: setup.getRankGrowth(abilityRuntimeData, "linear", 0.15),
}
abilityRuntimeData.modifier.maxHPMods = {
mod: setup.mod.MULTIPLYNEG,
value: setup.getRankGrowth(abilityRuntimeData, "linear", 0.05),
}
}
)>>
<<run setup.Ability_Berserking.setUnlockableFromLevelScreen(true)>>
<<run setup.Ability_Berserking.setUnlockCondition(
function(character){
return (State.variables.Level >= 1)
}
)>>
<<set setup.Ability_Berserking.setCategory(setup.AbilityCategory.WARRIOR)>>
<<set setup.Ability_Berserking.setGrade(setup.AbilityGrade.VERYLOW)>><<set setup.Ability_BrinkOfMadness = setup.AbilityDataFactory.createAbilityData({
id: "Ability_BrinkOfMadness",
name: "Brink of Madness",
description:function(character, abilityRuntimeData)
{
return "Your mind cracks under the weight of corruption upon reaching low health.";
},
maxRank: 1
})>>
<<run setup.Ability_BrinkOfMadness.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_BrinkOfMadness.addBehaviour(
"update",
setup.AbilityTrigger.ON_ENTER_MID_HEALTH,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = true
abilityParams.target.fight.variables.currentArousal = Math.min(100, abilityParams.target.fight.variables.currentArousal + setup.getRankGrowth(abilityRuntimeData, "linear", 40))
abilityRuntimeData.modifier.critChanceMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 30)}
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 20)}
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 120)};
abilityParams.target.fight.variables.currentStamina += 120;
abilityParams.target.fight.variables.currentStamina = Math.min(abilityParams.target.fight.variables.currentStamina, setup.getMaxStamina(abilityParams.target));
abilityRuntimeData.modifier.fightMoveIDsMods = {mod: setup.mod.ADD, value: [setup.FightMove_Hypnotize.id]}
var displayString = abilityParams.target.info.name + " pants in exhaustion. A terrible, oppressive thought enters their mind, that they might not win this battle. \n";
displayString += "Their heart is racing, corruption seeping into their mind, feeding on their doubts. \n"
displayString += "A dark purple aura builds around their frame, they revel in the power of corruption to crush anything that stands in their way.\n"
return displayString;
},
)>>
<<run setup.Ability_BrinkOfMadness.addBehaviour(
"update",
setup.AbilityTrigger.ON_EXIT_MID_HEALTH + setup.AbilityTrigger.ON_FIGHT_END,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
return ""
}
)>>
<<run setup.Ability_BrinkOfMadness.setUnlockableFromLevelScreen(true)>>
<<run setup.Ability_BrinkOfMadness.setUnlockCondition(
function(character){
return (State.variables.Level >= 20 && setup.getStatValue(character, "corruption") >= 100);
}
)>>
<<set setup.Ability_BrinkOfMadness.setCategory(setup.AbilityCategory.SOMBREVE)>>
<<set setup.Ability_BrinkOfMadness.setGrade(setup.AbilityGrade.VERYHIGH)>><<set setup.Ability_BuriedInCum = setup.AbilityDataFactory.createAbilityData({
id: "Ability_BuriedInCum",
name: "Buried In Cum",
description:function(character)
{
return "You are buried in your opponent's cum.";
},
maxRank: 999
})>>
<<run setup.Ability_BuriedInCum.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_BuriedInCum.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams){
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.REMOVE, value: setup.getRankGrowth(abilityRuntimeData, "linear", 10)};
}
)>>
<<run setup.Ability_BuriedInCum.addBehaviour(
"remove",
setup.AbilityTrigger.ON_FIGHT_END,
undefined,
)>>
<<run setup.Ability_BuriedInCum.setFilter(setup.AbilityFilter.STATUSEFFECT)>><<set setup.Ability_ChannelTheAstralSoul = setup.AbilityDataFactory.createAbilityData({
id: "Ability_ChannelTheAstralSoul",
name: "Channel the Astral Soul",
description:function(character)
{
var displayString = ""
switch(setup.getCorruptionTier(character))
{
case 0:
displayString += "Increases Essence gain. Its effect weakens the more corrupt you are.";
break;
case 1:
displayString += "Your corruption weakens your connection to the astral soul preventing you from gaining much extra essence.";
break;
case 2:
displayString += "Your corruption significantly weakens your connection to the astral soul almost preventing you from gaining extra essence.";
break;
case 3:
displayString += "Your corruption almost completely disrupts your connection to the astral soul. You barely gain any extra essence.";
break;
case 4:
displayString += "The corruption actively seeks to disrupt your connection to the astral soul, you gain almost nothing from the extraction.";
break;
default:
displayString += "The corruption actively seeks to disrupt your connection to the astral soul, you gain almost nothing from the extraction."
break;
}
return displayString;
},
maxRank: 5
})>>
<<run setup.Ability_ChannelTheAstralSoul.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_ChannelTheAstralSoul.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE + setup.AbilityTrigger.ON_DAY_CHANGE + setup.AbilityTrigger.ON_GAIN_CORRUPTION,
function(abilityRuntimeData, abilityParams)
{
switch(setup.getCorruptionTier(abilityParams.self))
{
case 0:
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 0.20)};
break;
case 1:
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 0.15)};
break;
case 2:
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 0.10)};
break;
case 3:
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 0.05)};
break;
case 4:
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 0.01)};
break;
default:
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 0.01)};
break;
}
}
)>>
<<run setup.Ability_ChannelTheAstralSoul.setUnlockCondition(
function(character){
return State.variables.Level >= 3
}
)>>
<<run setup.Ability_ChannelTheAstralSoul.setUnlockableFromLevelScreen(true)>>
<<set setup.Ability_ChannelTheAstralSoul.setCategory(setup.AbilityCategory.PURITY)>>
<<set setup.Ability_ChannelTheAstralSoul.setGrade(setup.AbilityGrade.LOW)>><<set setup.Ability_CockRingOfTheBind = setup.AbilityDataFactory.createAbilityData({
id: "Ability_CockRingOfTheBind",
name: "Cock Ring of the Bind",
description:function(character, abilityRuntimeData)
{
let displayString = "You can feel The Bind's presence within your cock. Grows your strength, muscles, cock and balls after every battle. Unlocks the 'Essence Surge' Fight Move.";
return displayString
},
maxRank: 10
})>>
<<run setup.Ability_CockRingOfTheBind.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.fightMoveIDsMods = {mod: setup.mod.ADD, value: [setup.FightMove_AbsorbEssence.id]}
if (abilityParams.self == State.variables.CharacterSheet_Player)
{
setup.flagHighlightChoice("newCardAvail");
}
}
)>>
<<run setup.Ability_CockRingOfTheBind.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE + setup.AbilityTrigger.ON_FIGHT_END,
function(abilityRuntimeData, abilityParams)
{
let currentStrength = 0;
if(abilityRuntimeData.modifier.strengthMods != undefined)
{
currentStrength = abilityRuntimeData.modifier.strengthMods.value;
}
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: currentStrength + setup.getRankGrowth(abilityRuntimeData, "linear", 1)}
let currentMuscles = 0;
if(abilityRuntimeData.modifier.musclesMods != undefined)
{
currentMuscles = abilityRuntimeData.modifier.musclesMods.value;
}
abilityRuntimeData.modifier.musclesMods = {mod: setup.mod.ADD, value: currentMuscles + setup.getRankGrowth(abilityRuntimeData, "linear", 2)}
let currentCock = 0;
if(abilityRuntimeData.modifier.cockMods != undefined)
{
currentCock = abilityRuntimeData.modifier.cockMods.value;
}
abilityRuntimeData.modifier.cockMods = {mod: setup.mod.ADD, value: currentCock + setup.getRankGrowth(abilityRuntimeData, "linear", 1)}
let currentBalls = 0;
if(abilityRuntimeData.modifier.ballsMods != undefined)
{
currentBalls = abilityRuntimeData.modifier.ballsMods.value;
}
abilityRuntimeData.modifier.ballsMods = {mod: setup.mod.ADD, value: currentBalls + setup.getRankGrowth(abilityRuntimeData, "linear", 0.3)}
}
)>>
<<run setup.Ability_CockRingOfTheBind.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_CodexPassion = setup.AbilityDataFactory.createAbilityData({
id: "Ability_CodexPassion",
name: "Codex's Passion",
description:function(character, abilityRuntimeData)
{
if(abilityRuntimeData == undefined)
{
return "Heals you for a portion of your health when using a Fight Skill that does no damage";
}
else
{
return "Using a Fight Skill that does no damage heals you for "+ setup.Ability_CodexPassion.rankPotency[abilityRuntimeData.rank] +"% health, decreased by corruption level";
}
},
maxRank: 5,
rankPotency: [
0,
2,
5,
10,
12,
15
]
})>>
<<run setup.Ability_CodexPassion.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_CodexPassion.addBehaviour(
"update",
setup.AbilityTrigger.ON_FIGHT_DO_DAMAGELESS_ATTACK,
function(abilityRuntimeData, abilityParams)
{
let corruption = setup.getStatValue(abilityParams.self, "corruption");
let percentLost = 0;
if (corruption > setup.CorruptionComparators.NEUTRAL)
{
percentLost = 1.0;
return "";
}
else if (corruption > setup.CorruptionComparators.PURE )
{
percentLost = (corruption - setup.CorruptionComparators.PURE)/(setup.CorruptionComparators.NEUTRAL - setup.CorruptionComparators.PURE);
}
let healPercent = setup.Ability_CodexPassion.rankPotency[abilityRuntimeData.rank]/100.0;
let maxHP = setup.getStatValue(abilityParams.self, "hp");
let healPoints = Math.round( (healPercent*(1.0-percentLost)) * maxHP);
let heal = setup.getRankGrowth(abilityRuntimeData, "linear", 2);
if(heal > 0)
{
abilityParams.self.fight.variables.currentHP = Math.min(abilityParams.self.fight.variables.currentHP + heal, maxHP);
let displayString = "Your soul resonates within you, healing you for <span style='color:#46c546;'>"+ heal + "</span> health.";
if (percentLost > 0)
{
displayString += " But your corruption consumed " + Math.round(percentLost*100.0) + "% of your healing potential...";
}
return displayString;
}
},
)>>
<<run setup.Ability_CodexPassion.setUnlockCondition(
function(character){
return (State.variables.Level >= 4) && ((setup.getStatValue(character, "corruption") <= setup.CorruptionComparators.PURE))
}
)>>
<<run setup.Ability_CodexPassion.setUnlockableFromLevelScreen(true)>>
<<set setup.Ability_CodexPassion.setCategory(setup.AbilityCategory.PURITY)>>
<<set setup.Ability_CodexPassion.setGrade(setup.AbilityGrade.LOW)>><<set setup.Ability_CollarOfTheBind = setup.AbilityDataFactory.createAbilityData({
id: "Ability_CollarOfTheBind",
name: "Collar of the Bind",
description:function(character, abilityRuntimeData)
{
let displayString = "You can feel The Bind's presence within your soul. Unlocks the 'Essence Surge' Fight Move.";
return displayString
},
maxRank: 10
})>>
<<run setup.Ability_CollarOfTheBind.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.fightMoveIDsMods = {mod: setup.mod.ADD, value: [setup.FightMove_AbsorbEssence.id]}
if (abilityParams.self == State.variables.CharacterSheet_Player)
{
setup.flagHighlightChoice("newCardAvail");
}
}
)>>
<<run setup.Ability_CollarOfTheBind.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 0.03)}
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.REMOVE, value: setup.getRankGrowth(abilityRuntimeData, "linear", 0.01)}
}
)>>
<<run setup.Ability_CollarOfTheBind.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_CorruptedStrength = setup.AbilityDataFactory.createAbilityData({
id: "Ability_CorruptedStrength",
name: "Corrupted Strength",
description:function(character)
{
return "Corruption courses through you, adds 20% of your Corruption to your Strength. This effect last until the end of the encounter.";
},
maxRank: 999
})>>
<<run setup.Ability_CorruptedStrength.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_CorruptedStrength.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams){
var strength = Math.ceil(setup.getStatValue(abilityParams.self, "corruption", "Ability_CorruptedStrength") * 0.2);
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", strength)};
}
)>>
<<run setup.Ability_CorruptedStrength.addBehaviour(
"remove",
setup.AbilityTrigger.ON_FIGHT_END,
undefined,
)>>
<<run setup.Ability_CorruptedStrength.setFilter(setup.AbilityFilter.STATUSEFFECT)>><<set setup.Ability_CorruptionInhibitor = setup.AbilityDataFactory.createAbilityData({
id: "Ability_CorruptionInhibitor",
name: "Corruption Inhibitor",
description:function(character, abilityRuntimeData)
{
let displayString = "You have drank the Herald's Corruption Inhibitor.";
return displayString
},
maxRank: 999
})>>
<<run setup.Ability_CorruptionInhibitor.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_CorruptionInhibitor.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.corruptionMods = {mod: setup.mod.MULTIPLYNEG, value: 0.2};
}
)>>
<<run setup.Ability_CorruptionInhibitor.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_BlueStar = setup.AbilityDataFactory.createAbilityData({
id: "Ability_BlueStar",
name: "Adaptation of the Blue Star",
description:function(character, abilityRuntimeData)
{
let displayString = "The distant Blue Star is forcing evolution across the land.";
return displayString;
},
maxRank: 1
})>>
<<run setup.Ability_BlueStar.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Ability_BlueStar.addBehaviour(
"update",
setup.AbilityTrigger.ON_DAY_CHANGE + setup.AbilityTrigger.ON_STAT_CHANGE + setup.AbilityTrigger.ON_FIGHT_START,
function(abilityRuntimeData, abilityParams)
{setup.Stars.updateStarBehaviour(abilityRuntimeData, abilityParams, setup.Stars.Types.BLUE_STAR);}
)>>
<<run setup.Ability_BlueStar.setAsGlobalAbility()>>
<<run setup.Ability_BlueStar.setFilter(setup.AbilityFilter.GLOBAL)>>/* The Type enumeration designates which order they naturally cycle */
<<set setup.Stars =
{
Types:
{
NONE_STAR: -1,
RED_STAR: 0,
BLUE_STAR: 1,
GOLDEN_STAR: 2,
GREEN_STAR: 3,
},
BASE_BONUS: 0.2,
MAX_RANK: 5,
MIN_RANK: -4,
NUM_STARS: 4,
NUM_ACTIVE_DAYS: 5,
MAX_OVERRIDE_DAYS: 5,
STAR_COOLDOWN_MULT: 2,
ESS_COST_PER_DAY: 100,
ESS_MULT_BONUS: 0.10,
EXP_MULT_BONUS: 0.10,
variables:
{
rank_self: 1,
rank_others: 1,
override_star: -1,
override_days_remaining: 0,
star_cooldown: -1,
cooldown_days_remaining: 0,
can_override_star: true,
},
getExpMultCalc: function(rank_diff)
{
return +(((rank_diff)*setup.Stars.EXP_MULT_BONUS).toFixed(2));
},
getExpMult: function(character)
{
if (character == $CharacterSheet_Player || character == $CharacterSheet_Player.fight.teammate )
{
return setup.Stars.getExpMultCalc(setup.Stars.variables.rank_others - setup.Stars.variables.rank_self);
}
else
{
return setup.Stars.getExpMultCalc(setup.Stars.variables.rank_self - setup.Stars.variables.rank_others);
}
},
getEssMultCalc: function(rank_diff)
{
return +(((rank_diff)*setup.Stars.ESS_MULT_BONUS).toFixed(2));
},
getEssMult: function(character)
{
if (character == $CharacterSheet_Player || character == $CharacterSheet_Player.fight.teammate )
{
return setup.Stars.getEssMultCalc(setup.Stars.variables.rank_others - setup.Stars.variables.rank_self);
}
else
{
return setup.Stars.getEssMultCalc(setup.Stars.variables.rank_self - setup.Stars.variables.rank_others);
}
},
getTodaysStarHeader: function()
{
let star = setup.Stars.getTodaysStar();
let displayString = "The " + setup.Stars.getStarName(star);
displayString += " stands proudly in dominion. ";
displayString += "Its energies alter " + setup.Stars.getStarStatStr(star) + " across the land.";
return displayString;
},
getNextStarHeader: function()
{
let star = setup.Stars.getNextStar();
let displayString = "The " + setup.Stars.getStarName(star) + " will ascend in " + setup.Stars.getTodaysStarRemainingDays() + " Days. ";
displayString += "It shall bestow " + setup.Stars.getStarStatStr(star) + " from its light.";
return displayString;
},
getStarName: function(star)
{
switch(star)
{
case setup.Stars.Types.RED_STAR:
return "Red Star";
case setup.Stars.Types.BLUE_STAR:
return "Blue Star";
case setup.Stars.Types.GOLDEN_STAR:
return "Golden Star";
case setup.Stars.Types.GREEN_STAR:
return "Green Star";
}
},
getStarStat: function(star)
{
switch(star)
{
case setup.Stars.Types.RED_STAR:
return "critChanceMods";
case setup.Stars.Types.BLUE_STAR:
return "growthMods";
case setup.Stars.Types.GOLDEN_STAR:
return "strengthMods";
case setup.Stars.Types.GREEN_STAR:
return "maxStaminaMods";
}
},
getStarStatStr: function(star)
{
switch(star)
{
case setup.Stars.Types.RED_STAR:
return "crit chance";
case setup.Stars.Types.BLUE_STAR:
return "growth";
case setup.Stars.Types.GOLDEN_STAR:
return "strength";
case setup.Stars.Types.GREEN_STAR:
return "prowess";
}
},
getStarStatUpperStr: function(star)
{
switch(star)
{
case setup.Stars.Types.RED_STAR:
return "Crit Chance";
case setup.Stars.Types.BLUE_STAR:
return "Growth";
case setup.Stars.Types.GOLDEN_STAR:
return "Strength";
case setup.Stars.Types.GREEN_STAR:
return "Prowess";
}
},
getOverrideStarMaxTime: function(star)
{
let todaysStar = setup.Stars.getTodaysStar();
let nextStar = setup.Stars.getNextStar();
let days = setup.Stars.MAX_OVERRIDE_DAYS;
if (star == todaysStar || star == setup.Stars.variables.star_cooldown)
{
days = 0;
}
else if (star == nextStar)
{
days = Math.min(days, setup.Stars.NUM_ACTIVE_DAYS - (State.variables.Expedition % setup.Stars.NUM_ACTIVE_DAYS));
}
/* Essence Check */
days = Math.min(days, Math.floor($Essence / setup.Stars.ESS_COST_PER_DAY));
return days;
},
getOverrideStarCost: function(days)
{
return days * setup.Stars.ESS_COST_PER_DAY;
},
getNextStar: function ()
{
return Math.ceil( (1+State.variables.Expedition) / setup.Stars.NUM_ACTIVE_DAYS) % setup.Stars.NUM_STARS;
},
getTodaysStar: function()
{
if (setup.Stars.variables.override_star != setup.Stars.Types.NONE_STAR)
{
return setup.Stars.variables.override_star;
}
else
{
return Math.floor(State.variables.Expedition / setup.Stars.NUM_ACTIVE_DAYS) % setup.Stars.NUM_STARS;
}
},
getTodaysStarName: function()
{
return setup.Stars.getStarName(setup.Stars.getTodaysStar());
},
getTodaysStarStat: function()
{
return setup.Stars.getStarStatStr(setup.Stars.getTodaysStar());
},
getTodaysStarRemainingDays: function()
{
if (setup.Stars.variables.override_star != setup.Stars.Types.NONE_STAR)
{
return setup.Stars.variables.override_days_remaining;
}
else
{
return setup.Stars.NUM_ACTIVE_DAYS - (State.variables.Expedition % setup.Stars.NUM_ACTIVE_DAYS);
}
},
advanceStarsByDays: function(days)
{
setup.Stars.override_days_remaining = Math.min(0, setup.Stars.override_days_remaining - days);
if (setup.Stars.override_days_remaining == 0)
{
setup.Stars.override_star = setup.Stars.Types.NONE_STAR;
}
setup.Stars.cooldown_days_remaining = Math.min(0, setup.Stars.cooldown_days_remaining - days);
if (setup.Stars.cooldown_days_remaining == 0)
{
setup.Stars.star_cooldown = setup.Stars.Types.NONE_STAR;
}
},
getStarTypeModByCharacter: function(character)
{
let mod_val;
let mod_type;
if (character == $CharacterSheet_Player || character == $CharacterSheet_Player.fight.teammate )
{
mod_val = setup.Stars.variables.rank_self;
}
else
{
mod_val = setup.Stars.variables.rank_others;
}
if (mod_val >= 0)
{
mod_type = setup.mod.MULTIPLYPOS;
}
else
{
mod_type = setup.mod.MULTIPLYNEG;
mod_val = Math.abs(mod_val);
}
return {mod: mod_type, val: mod_val};
},
getStarModifierStringByCharacter: function(character, basemod)
{
let ret_val = setup.Stars.getStarTypeModByCharacter(character);
let modString = "";
if (ret_val[0] == setup.mod.MULTIPLYNEG)
{
modString = "decreased by" + ret_val[1]*basemod;
}
else
{
modString = "increased by" + ret_val[1]*basemod;
}
return modString;
},
getPickReason: function(star)
{
let displayString = "";
if (star == setup.Stars.getTodaysStar())
{
displayString = "Already graces the land.";
}
else if (star == setup.Stars.variables.star_cooldown)
{
displayString = "Cannot be called for " + setup.Stars.variables.override_days_remaining + " days.";
}
else if ($Essence < setup.Stars.ESS_COST_PER_DAY)
{
displayString = "A day costs " + setup.Stars.ESS_COST_PER_DAY + " Essence.";
}
else
{
displayString = "May grace the land.";
}
return displayString;
},
setOverrideStar: function(star, days)
{
setup.Stars.variables.override_star = star;
setup.Stars.variables.star_cooldown = star;
setup.Stars.variables.override_days_remaining = days;
setup.Stars.variables.cooldown_days_remaining = Math.floor(days * setup.Stars.STAR_COOLDOWN_MULT);
/* Broadcast a "day change" to update the star's effects. This won't advance the day */
var params =
{
trigger: setup.AbilityTrigger.ON_DAY_CHANGE,
self: State.variables.CharacterSheet_Player,
}
State.variables.CharacterSheet_Player.broadcastAbilityTrigger(params);
$Essence = Math.max(0, $Essence - setup.Stars.getOverrideStarCost(days));
},
updateStarBehaviour: function(abilityRuntimeData, abilityParams, thisStar)
{
let star = setup.Stars.getTodaysStar()
if (star == thisStar)
{
abilityRuntimeData.isActive = true;
let ret_val = setup.Stars.getStarTypeModByCharacter(abilityParams.self);
// Clean out any past modifiers
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
abilityRuntimeData.modifier[setup.Stars.getStarStat(star)] = {
mod: ret_val.mod,
value: setup.Stars.BASE_BONUS * ret_val.val
}
let expbonus = setup.Stars.getExpMult(abilityParams.self);
let essbonus = setup.Stars.getEssMult(abilityParams.self);
if (expbonus >= 0.0)
{
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: expbonus};
}
else
{
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.REMOVE, value: Math.abs(expbonus)};
}
if (essbonus >= 0.0)
{
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: essbonus};
}
else
{
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.REMOVE, value: Math.abs(essbonus)};
}
}
else
{
abilityRuntimeData.isActive = false;
}
}
}>>
<<include Ability_BlueStar>>
<<include Ability_RedStar>>
<<include Ability_GoldenStar>>
<<include Ability_GreenStar>><<set setup.Ability_GoldenStar = setup.AbilityDataFactory.createAbilityData({
id: "Ability_GoldenStar",
name: "Power of the Golden Star",
description:function(character, abilityRuntimeData)
{
let displayString = "The distant Golden Star empowers physical might with its gaze.";
return displayString;
},
maxRank: 1,
})>>
<<run setup.Ability_GoldenStar.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = true;
}
)>>
<<run setup.Ability_GoldenStar.addBehaviour(
"update",
setup.AbilityTrigger.ON_DAY_CHANGE + setup.AbilityTrigger.ON_STAT_CHANGE + setup.AbilityTrigger.ON_FIGHT_START,
function(abilityRuntimeData, abilityParams)
{setup.Stars.updateStarBehaviour(abilityRuntimeData, abilityParams, setup.Stars.Types.GOLDEN_STAR);}
)>>
<<run setup.Ability_GoldenStar.setAsGlobalAbility()>>
<<run setup.Ability_GoldenStar.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_GreenStar = setup.AbilityDataFactory.createAbilityData({
id: "Ability_GreenStar",
name: "Tenacity of the Green Star",
description:function(character, abilityRuntimeData)
{
let displayString = "The distant Green Star reinforces the tenacity of those it sees.";
return displayString;
},
maxRank: 1,
})>>
<<run setup.Ability_GreenStar.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Ability_GreenStar.addBehaviour(
"update",
setup.AbilityTrigger.ON_DAY_CHANGE + setup.AbilityTrigger.ON_STAT_CHANGE + setup.AbilityTrigger.ON_FIGHT_START,
function(abilityRuntimeData, abilityParams)
{setup.Stars.updateStarBehaviour(abilityRuntimeData, abilityParams, setup.Stars.Types.GREEN_STAR);}
)>>
<<run setup.Ability_GreenStar.setAsGlobalAbility()>>
<<run setup.Ability_GreenStar.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_RedStar = setup.AbilityDataFactory.createAbilityData({
id: "Ability_RedStar",
name: "Ferocity of the Red Star",
description:function(character, abilityRuntimeData)
{
let displayString = "The distant Red Star spurs increased agression and ferocity with its agitating presence.";
return displayString;
},
maxRank: 1,
starBonus: {
type: "critChanceMods",
baseVal: 0.2
},
starCode: setup.Stars.Types.RED_STAR
})>>
<<run setup.Ability_RedStar.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Ability_RedStar.addBehaviour(
"update",
setup.AbilityTrigger.ON_DAY_CHANGE + setup.AbilityTrigger.ON_STAT_CHANGE + setup.AbilityTrigger.ON_FIGHT_START,
function(abilityRuntimeData, abilityParams)
{setup.Stars.updateStarBehaviour(abilityRuntimeData, abilityParams, setup.Stars.Types.RED_STAR);}
)>>
<<run setup.Ability_RedStar.setAsGlobalAbility()>>
<<run setup.Ability_RedStar.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_DeadlyAim = setup.AbilityDataFactory.createAbilityData({
id: "Ability_DeadlyAim",
name: "Deadly Aim",
description:function(character, abilityRuntimeData)
{
if(abilityRuntimeData == undefined)
{
let displayString = "When you strike, you make sure it counts. Your crit chance is increased by 7%";
return displayString
}
else
{
let displayString = "When you strike, you make sure it counts. Your crit chance is increased by ";
displayString += setup.getRankGrowth(abilityRuntimeData, "linear", 7) + "%";
return displayString
}
},
maxRank: 5
})>>
<<run setup.Ability_DeadlyAim.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_DeadlyAim.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE + setup.AbilityTrigger.ON_STAT_CHANGE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.critChanceMods = {
mod: setup.mod.ADD,
value: setup.getRankGrowth(abilityRuntimeData, "linear", 7)
}
}
)>>
<<run setup.Ability_DeadlyAim.setUnlockableFromLevelScreen(true)>>
<<run setup.Ability_DeadlyAim.setUnlockCondition(
function(character){
return (State.variables.Level >= 1)
}
)>>
<<set setup.Ability_DeadlyAim.setCategory(setup.AbilityCategory.WARRIOR)>>
<<set setup.Ability_DeadlyAim.setGrade(setup.AbilityGrade.VERYLOW)>><<set setup.Ability_Defiler = setup.AbilityDataFactory.createAbilityData({
id: "Ability_Defiler",
name: "Defiler",
description:function(character, abilityRuntimeData)
{
if(abilityRuntimeData == undefined)
{
return "Gain 5% Strength when fighting enemies with less than 500 Corruption."
}
else
{
return "Gain "+setup.getRankGrowth(abilityRuntimeData, "linear", 5)+"% Strength when fighting enemies with less than 500 Corruption."
}
},
maxRank: 10
})>>
<<run setup.Ability_Defiler.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_Defiler.addBehaviour(
"update",
setup.AbilityTrigger.ON_FIGHT_START,
function(abilityRuntimeData, abilityParams)
{
if(setup.getStatValue(abilityParams.target, "corruption") < 500)
{
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.MULTIPLYPOS, value: setup.getRankGrowth(abilityRuntimeData, "linear", 0.05)};
}
}
)>>
<<run setup.Ability_Defiler.addBehaviour(
"update",
setup.AbilityTrigger.ON_FIGHT_END,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
)>>
<<run setup.Ability_Defiler.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_DemonicCorruption = setup.AbilityDataFactory.createAbilityData({
id: "Ability_DemonicCorruption",
name: "Minor Demon",
description:function(character)
{
return "Demonic powers flickers within you.";
},
maxRank: 1
})>>
<<run setup.Ability_DemonicCorruption.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.arousalGainMods = {mod: setup.mod.ADD, value: 3}
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: 4}
setup.setModifierCorruptionMods(abilityRuntimeData.modifier, {mod: setup.mod.ADD, value: 30})
abilityRuntimeData.modifier.musclesMods = {mod: setup.mod.ADD, value: 10}
abilityRuntimeData.modifier.heightMods = {mod: setup.mod.ADD, value: 6}
abilityRuntimeData.modifier.cockMods = {mod: setup.mod.ADD, value: 5}
abilityRuntimeData.modifier.ballsMods = {mod: setup.mod.ADD, value: 2}
}
)>>
<<run setup.Ability_DemonicCorruption.setUpgrade(
function(abilityRuntimeData, character){
return true;
},
setup.Ability_DemonicCorruption_2
)>>
<<run setup.Ability_DemonicCorruption.setUnlockCondition(
function(character){
return (State.variables.Level >= 1)
}
)>>
<<run setup.Ability_DemonicCorruption.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_DemonicCorruption_2 = setup.AbilityDataFactory.createAbilityData({
id: "Ability_DemonicCorruption_2",
name: "Major Demon",
description:function(character)
{
return "Can use Incubus's Call\n" +
"Demonic powers flow through you."
},
maxRank: 1
})>>
<<run setup.Ability_DemonicCorruption_2.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.arousalGainMods = {mod: setup.mod.ADD, value: 9}
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: 10}
abilityRuntimeData.modifier.maxHPMods = {mod: setup.mod.ADD, value: 5}
setup.setModifierCorruptionMods(abilityRuntimeData.modifier, {mod: setup.mod.ADD, value: 45})
abilityRuntimeData.modifier.musclesMods = {mod: setup.mod.ADD, value: 15}
abilityRuntimeData.modifier.heightMods = {mod: setup.mod.ADD, value: 16}
abilityRuntimeData.modifier.cockMods = {mod: setup.mod.ADD, value: 12}
abilityRuntimeData.modifier.ballsMods = {mod: setup.mod.ADD, value: 4}
abilityRuntimeData.modifier.fightMoveIDsMods = {mod: setup.mod.ADD, value: [setup.FightMove_IncubusCall.id]}
if (abilityParams.self == State.variables.CharacterSheet_Player)
{
setup.flagHighlightChoice("newCardAvail");
}
}
)>>
<<run setup.Ability_DemonicCorruption_2.setUpgrade(
function(abilityRuntimeData, character){
return true;
},
setup.Ability_DemonicCorruption_3
)>>
<<run setup.Ability_DemonicCorruption_2.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_DemonicCorruption_3 = setup.AbilityDataFactory.createAbilityData({
id: "Ability_DemonicCorruption_3",
name: "Lord of Lust",
description:function(character)
{
return "Can use Incubus's Call\n" +
"Can use Incubus's Strike\n" +
"You are one with your demonic powers."
},
maxRank: 1
})>>
<<run setup.Ability_DemonicCorruption_3.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.arousalGainMods = {mod: setup.mod.ADD, value: 15}
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: 15}
abilityRuntimeData.modifier.maxHPMods = {mod: setup.mod.ADD, value: 10}
setup.setModifierCorruptionMods(abilityRuntimeData.modifier, {mod: setup.mod.ADD, value: 60})
abilityRuntimeData.modifier.musclesMods = {mod: setup.mod.ADD, value: 30}
abilityRuntimeData.modifier.heightMods = {mod: setup.mod.ADD, value: 32}
abilityRuntimeData.modifier.cockMods = {mod: setup.mod.ADD, value: 18}
abilityRuntimeData.modifier.ballsMods = {mod: setup.mod.ADD, value: 6}
abilityRuntimeData.modifier.fightMoveIDsMods = {mod: setup.mod.ADD, value: [setup.FightMove_IncubusCall.id, setup.FightMove_IncubusStrike.id]}
if (abilityParams.self == State.variables.CharacterSheet_Player)
{
setup.flagHighlightChoice("newCardAvail");
}
}
)>>
<<run setup.Ability_DemonicCorruption_3.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_DemonicEssenceShard = setup.AbilityDataFactory.createAbilityData({
id: "Ability_DemonicEssenceShard",
name: "Demonic Essence Shard",
description:function(character, abilityRuntimeData)
{
return "You carry a shard of demonic Essence. It is said to repel minimally concentrated Corruption.";
},
maxRank: 1
})>>
<<run setup.Ability_DemonicEssenceShard.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: 5}
}
)>>
<<run setup.Ability_DemonicEssenceShard.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_Disciplined = setup.AbilityDataFactory.createAbilityData({
id: "Ability_Disciplined",
name: "Disciplined",
description:function(character, abilityRuntimeData)
{
if(abilityRuntimeData == undefined)
{
return "Gain 5% Strength when fighting enemies with more than 500 Corruption."
}
else
{
return "Gain "+setup.getRankGrowth(abilityRuntimeData, "linear", 5)+"% Strength when fighting enemies with more than 500 Corruption."
}
},
maxRank: 10
})>>
<<run setup.Ability_Disciplined.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_Disciplined.addBehaviour(
"update",
setup.AbilityTrigger.ON_FIGHT_START,
function(abilityRuntimeData, abilityParams)
{
if(setup.getStatValue(abilityParams.target, "corruption") > 500)
{
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.MULTIPLYPOS, value: setup.getRankGrowth(abilityRuntimeData, "linear", 0.05)};
}
}
)>>
<<run setup.Ability_Disciplined.addBehaviour(
"update",
setup.AbilityTrigger.ON_FIGHT_END,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
)>>
<<run setup.Ability_Disciplined.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_DracosOmnipotence = setup.AbilityDataFactory.createAbilityData({
id: "Ability_DracosOmnipotence",
name: "Draco's Omnipotence",
description:function(character, abilityRuntimeData)
{
if(abilityRuntimeData == undefined)
{
return "Whenever you reach max arousal, you gain size based on the amount of essence you have.";
}
else
{
return "Whenever you reach max arousal, you gain size based on "+setup.getRankGrowth(abilityRuntimeData, "linear", 1)+"x the amount of essence you have.";
}
},
maxRank: 10
})>>
<<run setup.Ability_DracosOmnipotence.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_DracosOmnipotence.addBehaviour(
"update",
setup.AbilityTrigger.ON_MAX_LUST,
function(abilityRuntimeData, abilityParams)
{
var self = abilityParams.self;
var cockGrowth = setup.applyGrowth(self, "cock", Math.round(State.variables.Essence * setup.getRankGrowth(abilityRuntimeData, "linear", 1) / 3));
var ballsGrowth = setup.applyGrowth(self, "balls", Math.round(State.variables.Essence * setup.getRankGrowth(abilityRuntimeData, "linear", 1) / 9));
var muscleGrowth = setup.applyGrowth(self, "muscles", Math.round(State.variables.Essence * setup.getRankGrowth(abilityRuntimeData, "linear", 1) / 4.5));
var sizeGrowth = setup.applyGrowth(self, "height", Math.round(State.variables.Essence * setup.getRankGrowth(abilityRuntimeData, "linear", 1)));
var displayString = "You pulse with the power of gods. The Essence within fills you with the power to rule over all.\n\n";
displayString += setup.growthFlavourDescriptors(self, abilityParams.target, cockGrowth, ballsGrowth, muscleGrowth, sizeGrowth);
return displayString;
},
)>>
<<run setup.Ability_DracosOmnipotence.setUnlockableFromLevelScreen(true)>>
<<run setup.Ability_DracosOmnipotence.setUnlockCondition(
function(character){
return (State.variables.Level >= 20);
}
)>>
<<set setup.Ability_DracosOmnipotence.setCategory(setup.AbilityCategory.GROWTH)>>
<<set setup.Ability_DracosOmnipotence.setGrade(setup.AbilityGrade.VERYHIGH)>><<set setup.Ability_EchoForm = setup.AbilityDataFactory.createAbilityData({
id: "Ability_EchoForm",
name: "Symbiote Form",
description:function(character){
return character.symbiote.name + "'s power flows through your body.";
},
maxRank: 5
})>>
<<run setup.Ability_EchoForm.addBehaviour(
"start",
setup.AbilityTrigger.ON_MAX_LUST,
function(abilityRuntimeData, abilityParams)
{
if(State.variables.HasSymbiote == false || State.variables.HasSymbiote == undefined)
{
abilityRuntimeData.isActive = true;
State.variables.HasSymbiote = true;
let hpMod = 25;
let stamMod = 5;
abilityRuntimeData.modifier.maxHPMods = {mod: setup.mod.ADD, value: hpMod}
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: stamMod}
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: 10}
abilityRuntimeData.modifier.critChanceMods = {mod: setup.mod.ADD, value: 10}
abilityRuntimeData.modifier.arousalGainMods = {mod: setup.mod.REPLACE, value: -17}
abilityRuntimeData.modifier.fightMoveIDsMods = {mod: setup.mod.ADD, value: [setup.FightMove_Goo_Stun.id]}
abilityRuntimeData.modifier.actionSlotsMods = {mod: setup.mod.ADD, value: 1}
abilityRuntimeData.modifier.comboMovesPerTurnMods = {mod: setup.mod.ADD, value: 2}
abilityParams.self.fight.variables.currentHP = Math.min(abilityParams.self.fight.variables.currentHP + hpMod, setup.getMaxHP(abilityParams.self));
abilityParams.self.fight.variables.currentStamina = Math.min(abilityParams.self.fight.variables.currentStamina + stamMod, setup.getMaxStamina(abilityParams.self));
return "Arousal overtakes you. \n A thick "+$CharacterSheet_Player.symbiote.info.colour+" goo emerges from your pores. \n You turn into a massive muscular "+$CharacterSheet_Player.symbiote.info.colour+" "+setup.getRaceName($CharacterSheet_Player.symbiote)+".";
}
}
)>>
<<run setup.Ability_EchoForm.addBehaviour(
"end",
setup.AbilityTrigger.ON_MIN_LUST + setup.AbilityTrigger.ON_FIGHT_END,
function(abilityRuntimeData, abilityParams)
{
if(State.variables.HasSymbiote == true)
{
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
State.variables.HasSymbiote = false;
abilityRuntimeData.isActive = false;
return "You revert back to your "+setup.getRaceName(abilityParams.self)+" form";
}
}
)>>
<<run setup.Ability_EchoForm.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_EmpoweringDrink = setup.AbilityDataFactory.createAbilityData({
id: "Ability_EmpoweringDrink",
name: "Empowering Drink",
description:function(character)
{
return "Torgar's powerful concoction courses through you.\n Lasts for 4 days.";
},
maxRank: 999
})>>
<<run setup.Ability_EmpoweringDrink.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.blackboard = {}
},
)>>
<<run setup.Ability_EmpoweringDrink.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.blackboard.dayConsumed = State.variables.Expedition;
setup.applyCorruption(abilityParams.self, 7);
setup.applyGrowth(abilityParams.self, "muscles", 5);
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.maxHPMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 5)};
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 5)};
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 3)};
}
)>>
<<run setup.Ability_EmpoweringDrink.addBehaviour(
"update",
setup.AbilityTrigger.ON_DAY_CHANGE,
function(abilityRuntimeData, abilityParams)
{
if(State.variables.Expedition - abilityRuntimeData.blackboard.dayConsumed >= 4)
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.rank = 0;
}
}
)>>
<<run setup.Ability_EmpoweringDrink.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_EssenceHoarder = setup.AbilityDataFactory.createAbilityData({
id: "Ability_EssenceHoarder",
name: "Essence Hoarder",
description:function(character, abilityRuntimeData)
{
if(abilityRuntimeData == undefined)
{
return "Every 200 Essence within you grants you 1 Strength. (up to 30)";
}
else
{
return "Every 200 Essence within you grants you "+setup.getRankGrowth(abilityRuntimeData, "linear", 1)+" Strength. (up to "+setup.getRankGrowth(abilityRuntimeData, "linear", 30)+")";
}
},
maxRank: 5
})>>
<<run setup.Ability_EssenceHoarder.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_EssenceHoarder.addBehaviour(
"update",
setup.AbilityTrigger.ON_GAIN_ESSENCE + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var mod = Math.min(Math.floor(State.variables.Essence / 200) * setup.getRankGrowth(abilityRuntimeData, "linear", 1), setup.getRankGrowth(abilityRuntimeData, "linear", 30));
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: mod}
},
)>>
<<run setup.Ability_EssenceHoarder.setUnlockCondition(
function(character){
return (State.variables.Level >= 5)
}
)>>
<<run setup.Ability_EssenceHoarder.setUnlockableFromLevelScreen(true)>>
<<set setup.Ability_EssenceHoarder.setCategory(setup.AbilityCategory.WARRIOR)>>
<<set setup.Ability_EssenceHoarder.setGrade(setup.AbilityGrade.MEDIUM)>><<set setup.Ability_EssenceSurge = setup.AbilityDataFactory.createAbilityData({
id: "Ability_EssenceSurge",
name: "Essence Surge",
description:function(character)
{
return "Absorb the Essence in the air. Grows in power the longer the fight lasts.";
},
maxRank: 999
})>>
<<run setup.Ability_EssenceSurge.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_EssenceSurge.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
let currentValue = 0;
if(abilityRuntimeData.modifier.strengthMods != undefined)
{
currentValue = abilityRuntimeData.modifier.strengthMods.value;
}
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: currentValue + (State.variables.FightTurn * 5)}
}
)>>
<<run setup.Ability_EssenceSurge.addBehaviour(
"remove",
setup.AbilityTrigger.ON_FIGHT_END,
undefined,
)>>
<<run setup.Ability_EssenceSurge.setFilter(setup.AbilityFilter.STATUSEFFECT)>><<set setup.Ability_EyeOfTheVoid = setup.AbilityDataFactory.createAbilityData({
id: "Ability_EyeOfTheVoid",
name: "Eye of the Void",
description:function(character)
{
return "An old relic given to you by Abel.";
},
maxRank: 999
})>>
<<run setup.Ability_EyeOfTheVoid.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.blackboard = {}
},
)>>
<<run setup.Ability_EyeOfTheVoid.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 0.2)}
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 0.2)};
}
)>>
<<run setup.Ability_EyeOfTheVoid.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_FaithsReward = setup.AbilityDataFactory.createAbilityData({
id: "Ability_FaithsReward",
name: "Faith's Reward",
description:function(character, abilityRuntimeData)
{
if(abilityRuntimeData == undefined)
{
return "You gain 0.5 health and 0.5 prowess whenever you win a battle. \n That bonus is reduced by 1 every time you gain corruption.";
}
else
{
return "You gain "+setup.getRankGrowth(abilityRuntimeData, "linear", 0.5)+" health and "+setup.getRankGrowth(abilityRuntimeData, "linear", 0.5)+" stamina whenever you win a battle. \n That bonus is reduced by 1 every time you gain corruption.";
}
},
maxRank: 5
})>>
<<run setup.Ability_FaithsReward.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_FaithsReward.addBehaviour(
"update",
setup.AbilityTrigger.ON_FIGHT_BATTLE_WON,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.modifier.maxHPMods == undefined || abilityRuntimeData.modifier.maxStaminaMods == undefined){
abilityRuntimeData.modifier.maxHPMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 0.5)}
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 0.5)}
}else{
let previousHPModifier = abilityRuntimeData.modifier.maxHPMods.value;
let previousStamModifier = abilityRuntimeData.modifier.maxStaminaMods.value;
abilityRuntimeData.modifier.maxHPMods = {mod: setup.mod.ADD, value: previousHPModifier + setup.getRankGrowth(abilityRuntimeData, "linear", 0.5)}
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: previousStamModifier + setup.getRankGrowth(abilityRuntimeData, "linear", 0.5)}
}
return "You feel the presence of something far greater approve of your victory. Strength and vigour wells up within you.\n\n"
},
)>>
<<run setup.Ability_FaithsReward.addBehaviour(
"update",
setup.AbilityTrigger.ON_GAIN_CORRUPTION,
function(abilityRuntimeData, abilityParams)
{
if(abilityParams.gainedCorruption <= 0)
{
return;
}
if(abilityRuntimeData.modifier.maxHPMods != undefined && abilityRuntimeData.modifier.maxStaminaMods != undefined){
if(abilityRuntimeData.modifier.maxHPMods.value >= 0)
{
abilityRuntimeData.modifier.maxHPMods = {mod: setup.mod.ADD, value: Math.max(0, abilityRuntimeData.modifier.maxHPMods.value - 1)}
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: Math.max(0,abilityRuntimeData.modifier.maxStaminaMods.value -1)}
return "A shiver runs down your spine and saps away your strength. You feel as if your actions have been judged.\n"
}
else
{
return "You feel tired. Emaciated. Famished. You have no more strength to offer as punishment for breaking your faith in purity.\n"
}
}
return "";
}
)>>
<<run setup.Ability_FaithsReward.setUnlockableFromLevelScreen(true)>>
<<run setup.Ability_FaithsReward.setUnlockCondition(
function(character){
return (State.variables.Level >= 7)
}
)>>
<<set setup.Ability_FaithsReward.setCategory(setup.AbilityCategory.PURITY)>>
<<set setup.Ability_FaithsReward.setGrade(setup.AbilityGrade.HIGH)>><<set setup.Ability_Focused = setup.AbilityDataFactory.createAbilityData({
id: "Ability_Focused",
name: "Focused",
description:function(character)
{
return "Active until the end of the encounter.";
},
maxRank: 999
})>>
<<run setup.Ability_Focused.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_Focused.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams){
abilityRuntimeData.modifier.actionSlotsMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 1)};
}
)>>
<<run setup.Ability_Focused.addBehaviour(
"end",
setup.AbilityTrigger.ON_FIGHT_END,
undefined
)>>
<<run setup.Ability_Focused.addBehaviour(
"remove",
setup.AbilityTrigger.ON_FIGHT_END,
undefined,
)>>
<<run setup.Ability_Focused.setFilter(setup.AbilityFilter.STATUSEFFECT)>><<set setup.Ability_Form = setup.AbilityDataFactory.createAbilityData({
id: "Ability_Form",
name: "Form",
description:function(character, abilityRuntimeData)
{
return "Your body grants natural boons based on what limbs you have."
},
maxRank: 1
})>>
<<run setup.Ability_Form.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_Form.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE + setup.AbilityTrigger.ON_ANATOMY_CHANGE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = true;
setup.AbilityScripts.Form.assignAbilityModifiers(abilityRuntimeData, abilityParams);
}
)>>
<<run setup.Ability_Form.setAsGlobalAbility()>>
<<run setup.Ability_Form.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_HerculeanBuild = setup.AbilityDataFactory.createAbilityData({
id: "Ability_HerculeanBuild",
name: "Herculean Build",
description:function(abilityData, abilityRuntimeData){
if(abilityRuntimeData == undefined)
{
return "Gain Strength equal to half your Muscles stat (up to 15). Your Muscles grow by 10 upon acquiring this Ability."
}
else
{
return "Gain Strength equal to half your Muscles stat (up to "+setup.getRankGrowth(abilityRuntimeData, "linear", 15)+"). Your Muscles grow by 10 upon acquiring this Ability."
}
},
maxRank: 5
})>>
<<run setup.Ability_HerculeanBuild.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_HerculeanBuild.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH,
function(abilityRuntimeData, abilityParams){
var boost = Math.min(Math.floor(setup.getStatValue(abilityParams.self, "muscles", "Ability_HerculeanBuild") / 2), setup.getRankGrowth(abilityRuntimeData, "linear", 15));
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: boost}
}
)>>
<<run setup.Ability_HerculeanBuild.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams){
setup.applyGrowth(abilityParams.self, "muscles", 10);
}
)>>
<<run setup.Ability_HerculeanBuild.setUnlockableFromLevelScreen(true)>>
<<run setup.Ability_HerculeanBuild.setUnlockCondition(
function(character){
return (State.variables.Level >= 1)
}
)>>
<<set setup.Ability_HerculeanBuild.setCategory(setup.AbilityCategory.FORM)>>
<<set setup.Ability_HerculeanBuild.setGrade(setup.AbilityGrade.VERYLOW)>><<set setup.Ability_HostOfEcho = setup.AbilityDataFactory.createAbilityData({
id: "Ability_HostOfEcho",
name: "Host of <<SymbioteName>>",
description:function(character)
{
return "You are now the host of a mysterious being...\nUnlocks Arousal bar\nUnlocks Modify Metabolism\nCan equip Pleasure Self fight move.\nReaching Maximum Arousal transforms you into something more..."; },
maxRank: 1
})>>
<<run setup.Ability_HostOfEcho.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
this.name = "Host of <<SymbioteName>>";
if (abilityParams.self == State.variables.CharacterSheet_Player)
{
setup.flagHighlightChoice("newCardAvail");
}
abilityRuntimeData.modifier.fightMoveIDsMods = {mod: setup.mod.ADD, value: [setup.FightMove_Masturbate.id]}
}
)>>
<<run setup.Ability_HostOfEcho.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_Incorruptible = setup.AbilityDataFactory.createAbilityData({
id: "Ability_Incorruptible",
name: "Incorruptible",
description:function(character, abilityRuntimeData)
{
if(abilityRuntimeData == undefined)
{
return "While your Corruption is below "+setup.CorruptionComparators.PURE+
", you gain 2% critical chance, 10 strength. Corruption above this level decreases this potency.";
}
else
{
return "While your Corruption is below "+setup.CorruptionComparators.PURE+
", you gain "+ setup.Ability_Incorruptible.rankPotency[abilityRuntimeData.rank].cc +"% critical chance, "
+setup.Ability_Incorruptible.rankPotency[abilityRuntimeData.rank].str+" strength. Corruption above this level decreases this potency.";
}
},
maxRank: 5,
rankPotency: [
{"cc": 0, "str": 0},
{"cc": 5, "str": 10},
{"cc": 10, "str": 20},
{"cc": 15, "str": 40},
{"cc": 20, "str": 60},
{"cc": 25, "str": 80}
]
})>>
<<run setup.Ability_Incorruptible.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_Incorruptible.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE + setup.AbilityTrigger.ON_DAY_CHANGE + setup.AbilityTrigger.ON_GAIN_CORRUPTION,
function(abilityRuntimeData, abilityParams)
{
let ccMod = setup.Ability_Incorruptible.rankPotency[abilityRuntimeData.rank].cc;
let strMod = setup.Ability_Incorruptible.rankPotency[abilityRuntimeData.rank].str;
let corruption = setup.getStatValue(abilityParams.self, "corruption");
if ( corruption > setup.CorruptionComparators.NEUTRAL)
{
ccMod = 0;
strMod = 0;
}
else if (corruption > setup.CorruptionComparators.PURE)
{
let corruptionPercent = (corruption - setup.CorruptionComparators.PURE) / (setup.CorruptionComparators.NEUTRAL - setup.CorruptionComparators.PURE);
ccMod *= (1.0 - corruptionPercent);
strMod *= (1.0 - corruptionPercent);
}
abilityRuntimeData.modifier.critChanceMods = {mod: setup.mod.ADD, value: ccMod};
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: strMod};
},
)>>
<<run setup.Ability_Incorruptible.setUnlockCondition(
function(character){
return (State.variables.Level >= 4 && (setup.getStatValue(character, "corruption") <= setup.CorruptionComparators.DECENT))
}
)>>
<<run setup.Ability_Incorruptible.setUnlockableFromLevelScreen(true)>>
<<set setup.Ability_Incorruptible.setCategory(setup.AbilityCategory.PURITY)>>
<<set setup.Ability_Incorruptible.setGrade(setup.AbilityGrade.HIGH)>><<set setup.Ability_KalethsFervour = setup.AbilityDataFactory.createAbilityData({
id: "Ability_KalethsFervour",
name: "Kaleth's Fervour",
description:function(character, abilityRuntimeData)
{
if(abilityRuntimeData == undefined)
{
return "You gain 3% more growth for every point of corruption within you.";
}
else
{
return "You gain "+setup.getRankGrowth(abilityRuntimeData, "linear", 3)+"% more growth for every point of corruption within you.";
}
},
maxRank: 10
})>>
<<run setup.Ability_KalethsFervour.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_KalethsFervour.addBehaviour(
"update",
setup.AbilityTrigger.ON_GAIN_CORRUPTION + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.growthMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 1) / 100 * setup.getStatValue(abilityParams.self, "corruption")};
},
)>>
<<run setup.Ability_KalethsFervour.setUnlockableFromLevelScreen(true)>>
<<run setup.Ability_KalethsFervour.setUnlockCondition(
function(character){
return (State.variables.Level >= 7) && (setup.getStatValue(character, "corruption") >= 50);
}
)>>
<<set setup.Ability_KalethsFervour.setCategory(setup.AbilityCategory.SOMBREVE)>>
<<set setup.Ability_KalethsFervour.setGrade(setup.AbilityGrade.HIGH)>><<set setup.Ability_LastStand = setup.AbilityDataFactory.createAbilityData({
id: "Ability_LastStand",
name: "Last Stand",
description:function(character, abilityRuntimeData)
{
if(abilityRuntimeData == undefined)
{
return "Whenever you fall below 25% health, you gain 20 arousal, 30% critical chance and 15 strength.";
}
else
{
return "Whenever you fall below 25% health, you gain "+setup.getRankGrowth(abilityRuntimeData, "linear", 20)+" arousal, "+setup.getRankGrowth(abilityRuntimeData, "linear", 30)+"% critical chance and "+setup.getRankGrowth(abilityRuntimeData, "linear", 15)+" strength.";
}
},
maxRank: 3
})>>
<<run setup.Ability_LastStand.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_LastStand.addBehaviour(
"update",
setup.AbilityTrigger.ON_ENTER_LOW_HEALTH,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = true
abilityParams.self.fight.variables.currentArousal += Math.min(100, setup.getRankGrowth(abilityRuntimeData, "linear", 20))
abilityRuntimeData.modifier.critChanceMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 30)}
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 15)}
return "The adrenaline of battle pumps through your veins!"
},
)>>
<<run setup.Ability_LastStand.addBehaviour(
"update",
setup.AbilityTrigger.ON_EXIT_LOW_HEALTH + setup.AbilityTrigger.ON_FIGHT_END,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
return "You inhale deeply, regaining your composure."
}
)>>
<<run setup.Ability_LastStand.setUnlockableFromLevelScreen(true)>>
<<run setup.Ability_LastStand.setUnlockCondition(
function(character){
return (State.variables.Level >= 3);
}
)>>
<<set setup.Ability_LastStand.setCategory(setup.AbilityCategory.WARRIOR)>>
<<set setup.Ability_LastStand.setGrade(setup.AbilityGrade.LOW)>><<set setup.Ability_LukkasBox = setup.AbilityDataFactory.createAbilityData({
id: "Ability_LukkasBox",
name: "Essence Reservoir",
description:function(character, abilityRuntimeData)
{
return "You have drained "+abilityRuntimeData.blackboard.drainCount+" burst of demonic Essence. Lukka's Essence reservoir will store a small portion of the Essence you've acquired.";
},
maxRank: 1
})>>
<<run setup.Ability_LukkasBox.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.blackboard = {drainCount: 0}
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.REMOVE, value: 0.01};
}
)>>
<<run setup.Ability_LukkasBox.addBehaviour(
"update",
setup.AbilityTrigger.ON_FIGHT_BATTLE_WON,
function(abilityRuntimeData, abilityParams)
{
if(abilityParams.target.id == "CharacterSheet_Imp" || abilityParams.target.id == "CharacterSheet_Ethrex")
{
abilityRuntimeData.blackboard.drainCount += 1;
}
if(abilityRuntimeData.blackboard.drainCount >= 3)
{
State.variables.CharacterSheet_Player.quest.lukkaQuest.reservoirFilled = true;
}
return "It absorbs a small portion of the Essence you gathered. It now contains "+abilityRuntimeData.blackboard.drainCount+" doses of demonic Essence.";
}
)>>
<<run setup.Ability_LukkasBox.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_LustIncarnate = setup.AbilityDataFactory.createAbilityData({
id: "Ability_LustIncarnate",
name: "Lust Incarnate",
description:function(character, abilityRuntimeData)
{
let displayString = "Gain strength equal to "+setup.getRankGrowth(abilityRuntimeData, "linear", 15) +"% of your arousal." ;
return displayString
},
maxRank: 10
})>>
<<run setup.Ability_LustIncarnate.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_LustIncarnate.addBehaviour(
"update",
setup.AbilityTrigger.ON_FIGHT_TURN_START + setup.AbilityTrigger.ON_FIGHT_START,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 0.15) * abilityParams.target.fight.variables.currentArousal}
}
)>>
<<run setup.Ability_LustIncarnate.addBehaviour(
"update",
setup.AbilityTrigger.ON_FIGHT_END,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
)>>
<<run setup.Ability_LustIncarnate.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_Masochism = setup.AbilityDataFactory.createAbilityData({
id: "Ability_Masochism",
name: "Masochism",
description:function(character, abilityRuntimeData)
{
if(abilityRuntimeData == undefined)
{
return "Whenever you receive damage, you gain that much Arousal. (up to 3 per rank)";
}
else
{
return "Whenever you receive damage, you gain that much Arousal. (up to "+ setup.getRankGrowth(abilityRuntimeData, "linear", 3) +")";
}
},
maxRank: 5
})>>
<<run setup.Ability_Masochism.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_Masochism.addBehaviour(
"update",
setup.AbilityTrigger.ON_FIGHT_POST_RECEIVE_DAMAGE,
function(abilityRuntimeData, abilityParams)
{
var He = setup.getPronoun(abilityParams.target,"pronounCap");
var arousalGain = Math.min(abilityParams.attackDamage, setup.getRankGrowth(abilityRuntimeData, "linear", 3));
var displayString = abilityParams.target.info.name + " relishes the pain. "+He+" gains <span style='color:#ac46c5;'>" + arousalGain + "</span> Arousal\n";
abilityParams.target.fight.variables.currentArousal += arousalGain;
return displayString;
},
)>>
<<run setup.Ability_Masochism.setUnlockableFromLevelScreen(true)>>
<<run setup.Ability_Masochism.setUnlockCondition(
function(character){
return (State.variables.Level >= 1);
}
)>>
<<set setup.Ability_Masochism.setCategory(setup.AbilityCategory.LUST)>>
<<set setup.Ability_Masochism.setGrade(setup.AbilityGrade.VERYLOW)>><<set setup.Ability_MemoriesOfApothus = setup.AbilityDataFactory.createAbilityData({
id: "Ability_MemoriesOfApothus",
name: "Memories of Apothus",
description:function(character)
{
return "Distant words of unrestrained madness echo within your soul.";
},
maxRank: 1
})>>
<<set setup.Ability_MemoriesOfApothus.isAchievement = true>>
<<set setup.Ability_MemoriesOfApothus.achievementInfo = "Give yourself away to the cult leader.">>
<<run setup.Ability_MemoriesOfApothus.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
return;
}
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Ability_MemoriesOfApothus.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.minArousalMods = {mod: setup.mod.ADD, value: 5};
abilityRuntimeData.modifier.maxHPMods = {mod: setup.mod.ADD, value: 10};
abilityRuntimeData.modifier.critMod = {mod: setup.mod.REMOVE, value: 20};
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: 0.2}
}
}
)>><<set setup.Ability_MemoriesOfCray = setup.AbilityDataFactory.createAbilityData({
id: "Ability_MemoriesOfCray",
name: "Memories of Cray",
description:function(character)
{
return "Distant words of a being yearning to be more echoes within your soul.";
},
maxRank: 1
})>>
<<set setup.Ability_MemoriesOfCray.isAchievement = true>>
<<set setup.Ability_MemoriesOfCray.achievementInfo = "Embrace an old mentor.">>
<<run setup.Ability_MemoriesOfCray.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
return;
}
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Ability_MemoriesOfCray.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.growthMods = {mod: setup.mod.ADD, value: 1.0}
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: 10}
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: 0.5}
}
}
)>><<set setup.Ability_MemoriesOfNyx = setup.AbilityDataFactory.createAbilityData({
id: "Ability_MemoriesOfNyx",
name: "Memories of Nyx",
description:function(character)
{
return "Distant visions of pure Corruption echo within your soul.";
},
maxRank: 1
})>>
<<set setup.Ability_MemoriesOfNyx.isAchievement = true>>
<<set setup.Ability_MemoriesOfNyx.achievementInfo = "Embrace the Black Sun.">>
<<run setup.Ability_MemoriesOfNyx.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
return;
}
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Ability_MemoriesOfNyx.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.minArousalMods = {mod: setup.mod.ADD, value: 10};
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: 10};
abilityRuntimeData.modifier.actionSlotsMods = {mod: setup.mod.ADD, value: 1};
abilityRuntimeData.modifier.growthMods = {mod: setup.mod.ADD, value: 0.25};
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: 0.3};
}
}
)>><<set setup.Ability_MemoriesOfTheChosen = setup.AbilityDataFactory.createAbilityData({
id: "Ability_MemoriesOfTheChosen",
name: "Memories of the Chosen",
description:function(character)
{
return "Distant words of cataclysmic ambitions echo within your soul.";
},
maxRank: 1
})>>
<<run setup.Ability_MemoriesOfTheChosen.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.maxHPMods = {mod: setup.mod.ADD, value: 25};
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: 25}
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: 10}
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: 0.5}
}
)>><<set setup.Ability_Mimic = setup.AbilityDataFactory.createAbilityData({
id: "Ability_Mimic",
name: "Mimic",
description: function(character, abilityRuntimeData)
{
let rank = (abilityRuntimeData && abilityRuntimeData.rank) ? abilityRuntimeData.rank : 0;
var displayString = "Inherant racial aspects increased ";
displayString += " and become able to mimic the race of other.";
displayString += "Small chance to slowly transform into mimicked race."
return displayString;
},
rank: 0,
maxRank: 3,
racialMultiplier: [
1,
2,
3,
4
]
})>>
<<run setup.Ability_Mimic.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.fightMoveIDsMods = {mod: setup.mod.ADD, value: [setup.FightMove_Mimic.id]}
if (abilityParams.self == State.variables.CharacterSheet_Player)
{
setup.flagHighlightChoice("newCardAvail");
}
}
)>>
<<run setup.Ability_Mimic.setUnlockableFromLevelScreen(true)>>
<<run setup.Ability_Mimic.setUnlockCondition(
function(character){
return (State.variables.Level >= 5) && ( setup.getStatValue(character, "corruption") >= setup.CorruptionComparators.PURE);
}
)>>
<<set setup.Ability_Mimic.setCategory(setup.AbilityCategory.FORM)>>
<<set setup.Ability_Mimic.setGrade(setup.AbilityGrade.MEDIUM)>>
/*-----------------------Combat effect--------------------------------*/
<<set setup.Ability_Mimic_Combat = setup.AbilityDataFactory.createAbilityData({
id: "Ability_Mimic_Combat",
name: "Mimic",
description: function(character, abilityRuntimeData)
{
var displayString = "Mimics the form of your enemy, gaining its bonuses. Potentially alters your form to theirs."
if(abilityRuntimeData.blackboard && abilityRuntimeData.blackboard.bonuses)
{
for (let [raceId, mult] of Object.entries(abilityRuntimeData.blackboard.bonuses))
{
displayString += "\n" + mult + "x " + setup.autoCap(setup.RacePool[raceId].name);
}
}
return displayString;
},
maxRank: 999
})>>
<<run setup.Ability_Mimic_Combat.addBehaviour(
"start",
setup.AbilityTrigger.ON_FIGHT_START,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.blackboard = {
incoming: [],
bonuses: {},
};
},
)>>
<<run setup.Ability_Mimic_Combat.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = true;
setup.updateMimic(abilityRuntimeData);
}
)>>
<<run setup.Ability_Mimic_Combat.addBehaviour(
"remove",
setup.AbilityTrigger.ON_FIGHT_END,
undefined,
)>>
<<run setup.Ability_Mimic_Combat.setFilter(setup.AbilityFilter.STATUSEFFECT)>><<set setup.Ability_Momentum = setup.AbilityDataFactory.createAbilityData({
id: "Ability_Momentum",
name: "Momentum",
description:function(character, abilityRuntimeData)
{
if(abilityRuntimeData == undefined)
{
return "Gain 0.5% more Crit Damage for every chain in your timeline.";
}
else
{
return "Gain "+setup.getRankGrowth(abilityRuntimeData, "linear", 0.5)+"% more Crit Damage for every chain in your timeline.";
}
},
maxRank: 5
})>>
<<run setup.Ability_Momentum.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_Momentum.addBehaviour(
"update",
setup.AbilityTrigger.ON_FIGHT_START + setup.AbilityTrigger.ON_FIGHT_END,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.critDamageMods = {mod: setup.mod.ADD, value: 0};
},
)>>
<<run setup.Ability_Momentum.addBehaviour(
"update",
setup.AbilityTrigger.ON_FIGHT_TURN_START,
function(abilityRuntimeData, abilityParams)
{
var chains = setup[abilityParams.self.fight.variables.history].chains;
console.log("abilityParams.self.fight.variables.history")
console.log(abilityParams.self.fight.variables.history)
abilityRuntimeData.modifier.critDamageMods = {mod: setup.mod.ADD, value: chains * setup.getRankGrowth(abilityRuntimeData, "linear", 0.03)};
},
)>>
<<run setup.Ability_Momentum.setUnlockCondition(
function(character){
return State.variables.Level >= 7
}
)>>
<<run setup.Ability_Momentum.setUnlockableFromLevelScreen(true)>>
<<set setup.Ability_Momentum.setCategory(setup.AbilityCategory.WARRIOR)>>
<<set setup.Ability_Momentum.setGrade(setup.AbilityGrade.HIGH)>>/*-----------------------Combat effect--------------------------------*/
<<set setup.Ability_Mutant_Combat = setup.AbilityDataFactory.createAbilityData({
id: "Ability_Mutant_Combat",
name: "Bubbling Mutation",
description: function(character, abilityRuntimeData)
{
var displayString = "";
displayString += "Your limbs become empowered by the strength of battle";
if(abilityRuntimeData.blackboard)
{
for (let [key, limb] of Object.entries(abilityRuntimeData.blackboard.history))
{
displayString += "\n";
let limbDef = setup.Anatomy.LIMB_REF[key];
if (limbDef.naturalPair)
{
displayString += setup.autoCap(limbDef.namePlural);
}
else
{
displayString += setup.autoCap(limbDef.name);
}
displayString += ": x"+limb.callCount;
}
}
return displayString;
},
maxRank: 999
})>>
<<run setup.Ability_Mutant_Combat.addBehaviour(
"start",
setup.AbilityTrigger.ON_FIGHT_START,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.blackboard = {
limbs: [],
limbKey: "",
valMult: 1.0,
history: {},
}
},
)>>
<<run setup.Ability_Mutant_Combat.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = true;
if(abilityRuntimeData.blackboard)
{
abilityRuntimeData.blackboard.limbs.forEach( limbKey =>
{
let limbNum;
if (setup.Anatomy.LIMB_REF[limbKey].naturalPair)
{
limbNum = 2;
}
else
{
limbNum = 1;
}
// Empower if a limb is called multiple times
if (!abilityRuntimeData.blackboard.history)
{ abilityRuntimeData.blackboard.history = {};}
if (abilityRuntimeData.blackboard.history[limbKey])
{
limbNum = limbNum * (1+abilityRuntimeData.blackboard.history[limbKey].callCount);
abilityRuntimeData.blackboard.history[limbKey].callCount++;
}
else
{
abilityRuntimeData.blackboard.history[limbKey] = {callCount: 1};
}
let partialMod = setup.AbilityScripts.Form.createModifierPartial(limbKey, limbNum,
{valueMult: abilityRuntimeData.valMult, numIsRelative: true});
setup.deepMerge(abilityRuntimeData.modifier, partialMod);
});
}
}
)>>
<<run setup.Ability_Mutant_Combat.addBehaviour(
"remove",
setup.AbilityTrigger.ON_FIGHT_END,
undefined,
)>>
<<run setup.Ability_Mutant_Combat.setFilter(setup.AbilityFilter.STATUSEFFECT)>>
/*-----------------------Ability effect--------------------------------*/
<<set setup.Ability_Mutant = setup.AbilityDataFactory.createAbilityData({
id: "Ability_Mutant",
name: "Mutant",
description: function(character, abilityRuntimeData)
{
var displayString = "";
displayString += "You twist the corruption within you, using it to enhance your form with new limbs and their boons.";
displayString += "\nAs well, you gain the '"+setup.Ability_Mutant_Combat.name+"'combat ability.";
return displayString;
},
maxRank: 5
})>>
<<run setup.Ability_Mutant.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.fightMoveIDsMods = {mod: setup.mod.ADD, value: [setup.FightMove_Mutate.id]}
if (abilityParams.self == State.variables.CharacterSheet_Player)
{
setup.flagHighlightChoice("newCardAvail");
setup.flagHighlightChoice("mutationAvail");
}
var cond = function(abilityRuntimeData, character)
{
let corruptLevel;
switch (abilityRuntimeData.rank)
{
case 5:
case 4:
corruptLevel = setup.CorruptionComparators.TAINTED;
break;
case 3:
case 2:
corruptLevel = setup.CorruptionComparators.NEUTRAL;
break;
default:
case 1:
case 0:
corruptLevel = setup.CorruptionComparators.PURE;
break;
}
return (setup.getStatValue(character, "corruption") >= corruptLevel);
}
var display = function(abilityRuntimeData, character)
{
let corruptLevel;
switch (abilityRuntimeData.rank)
{
case 5:
case 4:
corruptLevel = setup.CorruptionComparators.TAINTED;
break;
case 3:
case 2:
corruptLevel = setup.CorruptionComparators.NEUTRAL;
break;
default:
case 1:
case 0:
corruptLevel = setup.CorruptionComparators.PURE;
break;
}
var displayString = "";
displayString += "You must have at least " + corruptLevel+" corruption: (" + setup.displayStatValue(character, "corruption") + ")\n";
return displayString;
}
setup.Ability_Mutant.setRankCond(cond, display);
setup.Ability_Mutant.setUpgrade(
function(abilityRuntimeData, character)
{
return (setup.getStatValue(character, "corruption") >= setup.CorruptionComparators.CORRUPT
&& character.hasAbility("Ability_Mimic") && character.getAbilityValue("Ability_Mimic", true, "rank") >= setup.Ability_Mimic.maxRank);
},
setup.Ability_Mutant_2,
function(abilityRuntimeData, character)
{
var displayString = "";
displayString += "You must have at least " + setup.CorruptionComparators.CORRUPT+" corruption: (" + setup.displayStatValue(character, "corruption") + ")\n"
displayString += "You must have Rank " + setup.Ability_Mimic.maxRank + " of the Ability 'Mimic'\n";
return displayString;
}
);
}
)>>
<<run setup.Ability_Mutant.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = true;
if (abilityParams.self == State.variables.CharacterSheet_Player)
{
setup.flagHighlightChoice("mutationAvail");
}
}
)>>
<<run setup.Ability_Mutant.addBehaviour(
"update",
setup.AbilityTrigger.ON_ANATOMY_CHANGE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = true;
}
)>>
<<run setup.Ability_Mutant.setUnlockableFromLevelScreen(true)>>
<<run setup.Ability_Mutant.setUnlockCondition(
function(character){
return (State.variables.Level >= 5) && ( setup.getStatValue(character, "corruption") >= setup.CorruptionComparators.PURE);
}
)>>
<<set setup.Ability_Mutant.setCategory(setup.AbilityCategory.FORM)>>
<<set setup.Ability_Mutant.setGrade(setup.AbilityGrade.HIGH)>><<set setup.Ability_Mutant_2 = setup.AbilityDataFactory.createAbilityData({
id: "Ability_Mutant_2",
name: "Abomination",
description:function(character, abilityRuntimeData)
{
var displayString = "";
displayString += "You become an Abomination. You gain an immense amount of Mutation Points, and the ";
displayString += setup.Ability_Mutant_Combat.name+" ability has multiple attempts to empower, gain, or even lose limbs."
return displayString;
},
maxRank: 1
})>>
<<run setup.Ability_Mutant_2.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.fightMoveIDsMods = {mod: setup.mod.ADD, value: [setup.FightMove_Mutate.id]};
if (abilityParams.self == State.variables.CharacterSheet_Player)
{
setup.flagHighlightChoice("mutationAvail");
}
setup.setOverrideRace(abilityParams.self, setup.RacePool.ABOMINATION,
{keepExtras: true,
KeepNonRaceLimbs: true,
raceRemainsLocked: false,
noSecondary: false,
setRace: true});
}
)>>
<<set setup.Ability_Mutant_2.setCategory(setup.AbilityCategory.FORM)>>
<<set setup.Ability_Mutant_2.setGrade(setup.AbilityGrade.VERYHIGH)>><<set setup.Ability_CurseOfTheNaga = setup.AbilityDataFactory.createAbilityData({
id: "Ability_CurseOfTheNaga",
name: "Curse of the Naga",
description:function(character)
{
return "A part of you was stolen by the Lost Naga.\n Only by defeating him can you get your strength back.";
},
maxRank: 1
})>>
<<run setup.Ability_CurseOfTheNaga.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams){
abilityRuntimeData.modifier.musclesMods = {mod: setup.mod.REMOVE, value: State.variables.CharacterSheet_Player.quest.curseOfTheNagaStatDrain.muscles};
abilityRuntimeData.modifier.heightMods = {mod: setup.mod.REMOVE, value: State.variables.CharacterSheet_Player.quest.curseOfTheNagaStatDrain.height};
abilityRuntimeData.modifier.cockMods = {mod: setup.mod.REMOVE, value: State.variables.CharacterSheet_Player.quest.curseOfTheNagaStatDrain.cock};
abilityRuntimeData.modifier.ballsMods = {mod: setup.mod.REMOVE, value: State.variables.CharacterSheet_Player.quest.curseOfTheNagaStatDrain.balls};
}
)>>
<<run setup.Ability_CurseOfTheNaga.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_StolenMass = setup.AbilityDataFactory.createAbilityData({
id: "Ability_StolenMass",
name: "Stolen Mass",
description:function(character)
{
return "You have stolen mass from another creature.";
},
maxRank: 1
})>>
<<run setup.Ability_StolenMass.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams){
abilityRuntimeData.modifier.musclesMods = {mod: setup.mod.ADD, value: State.variables.CharacterSheet_Player.quest.curseOfTheNagaStatDrain.muscles};
abilityRuntimeData.modifier.heightMods = {mod: setup.mod.ADD, value: State.variables.CharacterSheet_Player.quest.curseOfTheNagaStatDrain.height};
abilityRuntimeData.modifier.cockMods = {mod: setup.mod.ADD, value: State.variables.CharacterSheet_Player.quest.curseOfTheNagaStatDrain.cock};
abilityRuntimeData.modifier.ballsMods = {mod: setup.mod.ADD, value: State.variables.CharacterSheet_Player.quest.curseOfTheNagaStatDrain.balls};
}
)>>
<<run setup.Ability_StolenMass.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_NeverendingGrowth = setup.AbilityDataFactory.createAbilityData({
id: "Ability_NeverendingGrowth",
name: "Never-ending Growth",
description:function(character, abilityRuntimeData){
return "Your body continuously grows larger while in combat. The more corrupt you are, the more effective this growth is."
},
maxRank: 1
})>>
<<run setup.Ability_NeverendingGrowth.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_NeverendingGrowth.addBehaviour(
"update",
setup.AbilityTrigger.ON_FIGHT_TURN_START,
function(abilityRuntimeData, abilityParams)
{
var self = abilityParams.self;
let ability = setup.getAbilityByIndex(abilityRuntimeData.abilityDataIndex);
var level = ability.level;
var corruption = setup.getStatValue(self, "corruption");
var multiplier = Math.ceil(corruption / 20);
var displayString = "";
var cockSize = setup.getStatValue(self, "cock")
var muscleSize = setup.getStatValue(self, "muscles")
var ballSize = setup.getStatValue(self, "balls")
var height = setup.getStatValue(self, "height")
setup.applyGrowth(self, "cock", Math.round(3 * multiplier));
setup.applyGrowth(self, "balls", Math.round(1 * multiplier));
setup.applyGrowth(self, "muscles", Math.round(2 * multiplier));
setup.applyGrowth(self, "height", Math.round(9 * multiplier));
if (corruption > 0){
if(self.id == "CharacterSheet_Player"){
displayString += "Your muscles flex but do not recede in size when they relax."
displayString += " A wash of pleasure takes you as your @[all|cocks|noverb] and @[all|balls|noverb] lurch with added size.\n"
return setup.processFlavours(self, displayString);
}else{
displayString += "His muscles flex but do not recede in size when they relax."
displayString += " Howling from growth induced euphoria, its @[all|cocks|noverb] and @[all|balls|noverb] lurch with added size.\n"
return setup.processFlavours(self, displayString);
}
}else{
return undefined
}
}
)>>
<<run setup.Ability_NeverendingGrowth.setUnlockableFromLevelScreen(true)>>
<<run setup.Ability_NeverendingGrowth.setUnlockCondition(
function(character){
return (State.variables.Level >= 10) && (setup.getStatValue(character, "corruption") >= 50)
}
)>>
<<set setup.Ability_NeverendingGrowth.setCategory(setup.AbilityCategory.GROWTH)>>
<<set setup.Ability_NeverendingGrowth.setGrade(setup.AbilityGrade.HIGH)>><<set setup.Ability_NyxInducedWorkout = setup.AbilityDataFactory.createAbilityData({
id: "Ability_NyxInducedWorkout",
name: "Nyx Induced Workout",
description:function(character, abilityRuntimeData)
{
let displayString = "Working out in Nyx's gym room has imbued your muscles with uncanny potential for growth.";
return displayString
},
maxRank: 999
})>>
<<run setup.Ability_NyxInducedWorkout.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_NyxInducedWorkout.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.musclesMods = {mod: setup.mod.MULTIPLYPOS, value: setup.getRankGrowth(abilityRuntimeData, "linear", 0.1)}
}
)>>
<<run setup.Ability_NyxInducedWorkout.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_NyxParasiteInfection = setup.AbilityDataFactory.createAbilityData({
id: "Ability_NyxParasiteInfection",
name: "Nyx Spawn Infection",
description:function(character){
return "Creatures of Nyx live within your body.\n You must protect the spawns..."
},
maxRank: 10
})>>
<<run setup.Ability_NyxParasiteInfection.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_NyxParasiteInfection.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.minArousalMods = {mod: setup.mod.ADD, value: 20};
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 2)};
abilityRuntimeData.modifier.cockMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 4)};
abilityRuntimeData.modifier.ballsMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 3)};
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.REMOVE, value: 0.1};
if(abilityRuntimeData.rank >= 5)
{
setup.completeAchievement("Achievement_HostOfTheSpawns");
}
}
)>>
<<run setup.Ability_NyxParasiteInfection.setUpgrade(
function(abilityRuntimeData, character){
return setup.canRank(abilityRuntimeData) == false
},
setup.Ability_NyxParasiteInfection_2,
function(abilityRuntimeData, character){
return ""
}
)>>
<<run setup.Ability_NyxParasiteInfection.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_NyxParasiteInfection_2 = setup.AbilityDataFactory.createAbilityData({
id: "Ability_NyxParasiteInfection_2",
name: "Nyx Hive Lord",
description:function(character){
return "You host countless spawns of Nyx within you.\n You gain 1 min arousal per parasite within your body.\n You must spread.\nYou must fuck.\nYou must grow."
},
maxRank: 15
})>>
<<run setup.Ability_NyxParasiteInfection_2.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.fightMoveIDsMods = {mod: setup.mod.ADD, value: [setup.FightMove_SummonParasite.id]}
}
)>>
<<run setup.Ability_NyxParasiteInfection_2.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.minArousalMods = {mod: setup.mod.ADD, value: 20 + setup.getRankGrowth(abilityRuntimeData, "linear", 1)};
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: 20 + setup.getRankGrowth(abilityRuntimeData, "linear", 3)};
abilityRuntimeData.modifier.cockMods = {mod: setup.mod.ADD, value: 40 + setup.getRankGrowth(abilityRuntimeData, "linear", 10)};
abilityRuntimeData.modifier.ballsMods = {mod: setup.mod.ADD, value: 30 + setup.getRankGrowth(abilityRuntimeData, "linear", 8)};
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.REMOVE, value: 0.2};
if(abilityRuntimeData.rank >= 5)
{
setup.completeAchievement("Achievement_LordOfTheSpawns");
}
}
)>>
<<run setup.Ability_NyxParasiteInfection_2.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_Oath_Containment = setup.AbilityDataFactory.createAbilityData({
id: "Ability_Oath_Containment",
name: "Oath of Containment",
description:function(character)
{
return "Chain shaped tattoos race up your arms.\nThis oath lasts for as long as the cultists of Nyx remain sealed.";
},
maxRank: 1
})>>
<<run setup.Ability_Oath_Containment.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.arousalGainMods = {mod: setup.mod.REMOVE, value: 5};
abilityRuntimeData.modifier.critChanceMods = {mod: setup.mod.ADD, value: 10};
abilityRuntimeData.modifier.maxHPMods = {mod: setup.mod.ADD, value: 10};
}
)>>
<<run setup.Ability_Oath_Containment.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_Oath_Nyx = setup.AbilityDataFactory.createAbilityData({
id: "Ability_Oath_Nyx",
name: "Oath of Nyx",
description:function(character)
{
return "A purple vortex shaped tattoo curls around the left side of your torso.\nThis oath lasts for as long as you strive to unleash Nyx upon the world.";
},
maxRank: 1
})>>
<<run setup.Ability_Oath_Nyx.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.corruptionMods = {mod: setup.mod.ADD, value: 20};
abilityRuntimeData.modifier.minArousalMods = {mod: setup.mod.ADD, value: 10};
abilityRuntimeData.modifier.maxHPMods = {mod: setup.mod.ADD, value: 10};
abilityRuntimeData.modifier.critMod = {mod: setup.mod.REMOVE, value: 20};
}
)>>
<<run setup.Ability_Oath_Nyx.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_Oathbreaker = setup.AbilityDataFactory.createAbilityData({
id: "Ability_Oathbreaker",
name: "Oathbreaker",
description:function(character)
{
return "The mark of the oathbreaker burns around your arm.\nYou are branded as a traitor.";
},
maxRank: 1
})>>
<<run setup.Ability_Oathbreaker.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_Oathbreaker.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_OrgasmicGrowth = setup.AbilityDataFactory.createAbilityData({
id: "Ability_OrgasmicGrowth",
name: "Orgasmic Growth",
description:function(character, abilityRuntimeData){
if(abilityRuntimeData == undefined)
{
return setup.processFlavours(
character,
"Whenever you reach max arousal, your body grows "+setup.getLength(2.5)+", your @[all|cocks|one=grows~more=grows] "+setup.getLength(1)+" and your @[all|balls|noverb] grow "+setup.getLength(0.5)+"."
)
}
else
{
return setup.processFlavours(
character,
"Whenever you reach max arousal, your body grows "+setup.getLength(setup.getRankGrowth(abilityRuntimeData, "linear", 2.5))+", your @[all|cocks|one=grows~more=grows] "+setup.getLength(setup.getRankGrowth(abilityRuntimeData, "linear", 1))+" and your @[all|balls|noverb] grow "+setup.getLength(setup.getRankGrowth(abilityRuntimeData, "linear", 0.5))+"."
)
}
},
maxRank: 3
})>>
<<run setup.Ability_OrgasmicGrowth.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_OrgasmicGrowth.addBehaviour(
"update",
setup.AbilityTrigger.ON_MAX_LUST,
function(abilityRuntimeData, abilityParams)
{
var self = abilityParams.self;
setup.applyGrowth(self, "cock", setup.getRankGrowth(abilityRuntimeData, "linear", 1));
setup.applyGrowth(self, "balls", setup.getRankGrowth(abilityRuntimeData, "linear", 0.5));
setup.applyGrowth(self, "height", setup.getRankGrowth(abilityRuntimeData, "linear", 2.5));
setup.applyGrowth(self, "muscles", setup.getRankGrowth(abilityRuntimeData, "linear", 0.5));
var displayString = setup.processFlavours(self, "Your arousal becomes too intense to contain! You feel your @[all|balls|noverb] swell as an incredible orgasm builds! You erupt, cum spraying out of your @[all|cocks|noverb] and coating ")
displayString += setup.processFlavours(self, "your enemy with your scent and alabaster fluid. Your eyes widen as another wave takes you, an orgasm so intense that your body adapts to cater for its next impressive release!")
displayString += setup.processFlavours(self, " Your body, @[all|cocks|noverb] and @[all|balls|noverb] have all grown in size!")
return displayString //not sure if you want the actual numbers in the string above.
}
)>>
<<run setup.Ability_OrgasmicGrowth.setUnlockableFromLevelScreen(true)>>
<<run setup.Ability_OrgasmicGrowth.setUnlockCondition(
function(character){
return (State.variables.Level >= 7)
}
)>>
<<set setup.Ability_OrgasmicGrowth.setCategory(setup.AbilityCategory.GROWTH)>>
<<set setup.Ability_OrgasmicGrowth.setGrade(setup.AbilityGrade.HIGH)>><<set setup.Ability_ParryEnergy = setup.AbilityDataFactory.createAbilityData({
id: "Ability_ParryEnergy",
name: "Parry Energy",
description:function(character)
{
return "Your body is filled with the power of your last parried attack.";
},
maxRank: 1
})>>
<<run setup.Ability_ParryEnergy.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_ParryEnergy.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams){
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: abilityRuntimeData.blackboard.attackDamage};
abilityParams.self.fight.variables.currentStamina += abilityRuntimeData.blackboard.attackDamage;
}
)>>
<<run setup.Ability_ParryEnergy.setFilter(setup.AbilityFilter.STATUSEFFECT)>><<set setup.Ability_PiercingPrecision = setup.AbilityDataFactory.createAbilityData({
id: "Ability_PiercingPrecision",
name: "Piercing Precision",
description:function(character, abilityRuntimeData)
{
if(abilityRuntimeData == undefined)
{
let displayString = "Your strikes always land true. Increases critical hits damage by 15%.";
return displayString
}
else
{
let displayString = "Your strikes always land true. Increases critical hits damage by "+(setup.getRankGrowth(abilityRuntimeData, "linear", 0.15) * 100).toFixed(2).replace(/\.00$/, '') + "%"+".";
return displayString
}
},
maxRank: 5
})>>
<<run setup.Ability_PiercingPrecision.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_PiercingPrecision.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams){
abilityRuntimeData.modifier.critDamageMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 0.15)};
}
)>>
<<run setup.Ability_PiercingPrecision.setUnlockCondition(
function(character){
return (State.variables.Level >= 5)
}
)>>
<<run setup.Ability_PiercingPrecision.setUnlockableFromLevelScreen(true)>>
<<set setup.Ability_PiercingPrecision.setCategory(setup.AbilityCategory.WARRIOR)>>
<<set setup.Ability_PiercingPrecision.setGrade(setup.AbilityGrade.MEDIUM)>><<set setup.Ability_PromiseOfCorruption = setup.AbilityDataFactory.createAbilityData({
id: "Ability_PromiseOfCorruption",
name: "Promise of Corruption",
description:function(character, abilityRuntimeData)
{
let displayString = "You have rejected the Herald's Corruption Inhibitor.";
return displayString
},
maxRank: 999
})>>
<<run setup.Ability_PromiseOfCorruption.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_PromiseOfCorruption.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.corruptionMods = {mod: setup.mod.MULTIPLYPOS, value: 0.2};
}
)>>
<<run setup.Ability_PromiseOfCorruption.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_PromiseOfServitude = setup.AbilityDataFactory.createAbilityData({
id: "Ability_PromiseOfServitude",
name: "Promise of Servitude",
description:function(character)
{
return "The minotaur has promised to serve you once you take the black sun for yourself.";
},
maxRank: 1
})>>
<<run setup.Ability_PromiseOfServitude.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.minArousalMods = {mod: setup.mod.ADD, value: 10};
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: 20};
}
)>>
<<run setup.Ability_PromiseOfServitude.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_RacialBonus = setup.AbilityDataFactory.createAbilityData({
id: "Ability_RacialBonus",
name: "Racial Bonus",
description:function(character, abilityRuntimeData)
{
var displayString = "Boons granted from being a " + setup.getRaceName(character);
let rank = character.getAbilityValue("Ability_Mimic", false, "rank");
if (rank && rank > 0)
{
displayString += "\nMimic: Racial aptitudes increased by " + setup.Ability_Mimic.racialMultiplier[rank] + "x";
}
return displayString
},
maxRank: 1
})>>
<<run setup.Ability_RacialBonus.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_RacialBonus.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE + setup.AbilityTrigger.ON_ANATOMY_CHANGE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = true;
let rank = abilityParams.self.getAbilityValue("Ability_Mimic", false, "rank");
let multiplier = 1;
if (rank && rank > 0)
{
multiplier = setup.Ability_Mimic.racialMultiplier[rank];
}
setup.AbilityScripts.RacialBonus.assignRacialBonuses(abilityRuntimeData, abilityParams, multiplier);
}
)>>
<<run setup.Ability_RacialBonus.setAsGlobalAbility()>>
<<run setup.Ability_RacialBonus.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_ServantOfKanathar = setup.AbilityDataFactory.createAbilityData({
id: "Ability_ServantOfKanathar",
name: "Servant of Kanathar",
description:function(character)
{
return "The essence of demon Kanathar flows within you.";
},
maxRank: 999
})>>
<<run setup.Ability_ServantOfKanathar.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_ServantOfKanathar.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.maxHPMods = {mod: setup.mod.ADD, value: State.variables.CharacterSheet_Imp.quest.servantLosses * 3};
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: State.variables.CharacterSheet_Imp.quest.servantWins * 3};
abilityRuntimeData.modifier.minArousalMods = {mod: setup.mod.ADD, value: 10};
abilityRuntimeData.modifier.arousalGainMods = {mod: setup.mod.ADD, value: 5};
abilityRuntimeData.modifier.growthMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 0.2)};
}
)>>
<<run setup.Ability_ServantOfKanathar.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_SigilOfPerception = setup.AbilityDataFactory.createAbilityData({
id: "Ability_SigilOfPerception",
name: "Sigil of Perception",
description:function(character, abilityRuntimeData)
{
if(abilityRuntimeData == undefined)
{
return "Improves critical chance of next attack by 30%";
}
else
{
return "Improves critical chance of next attack by "+setup.getRankGrowth(abilityRuntimeData, "linear", 30) + "%";
}
},
maxRank: 99
})>>
<<run setup.Ability_SigilOfPerception.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_SigilOfPerception.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.critChanceMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 30)}
return ""
},
)>>
<<run setup.Ability_SigilOfPerception.addBehaviour(
"end",
setup.AbilityTrigger.ON_FIGHT_END,
undefined
)>>
<<run setup.Ability_SigilOfPerception.addBehaviour(
"remove",
setup.AbilityTrigger.ON_FIGHT_END,
undefined,
)>>
<<run setup.Ability_SigilOfPerception.setFilter(setup.AbilityFilter.STATUSEFFECT)>><<set setup.Ability_BallsTier_First = setup.AbilityDataFactory.createAbilityData({
id: "Ability_BallsTier_First",
name: "Balls Tier 1",
description:function(character)
{
return "You have average sized balls.";
},
maxRank: 1
})>>
<<run setup.Ability_BallsTier_First.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_BallsTier_First.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var comparatorSize = 7.5 / 3;
var balls = setup.getStatValue(abilityParams.self, "balls", "Ability_BallsTier_First");
if(balls < comparatorSize)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: 5};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_BallsTier_First.setAsGlobalAbility()>>
<<run setup.Ability_BallsTier_First.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_BallsTier_Second = setup.AbilityDataFactory.createAbilityData({
id: "Ability_BallsTier_Second",
name: "Balls Tier 2",
description:function(character)
{
return "Your balls are larger than apples.";
},
maxRank: 1
})>>
<<run setup.Ability_BallsTier_Second.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_BallsTier_Second.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var comparatorSize = 7.5 / 3;
var nextComparatorSize = 10 / 3;
var balls = setup.getStatValue(abilityParams.self, "balls", "Ability_BallsTier_Second");
if(balls > comparatorSize && balls < nextComparatorSize)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: 10};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_BallsTier_Second.setAsGlobalAbility()>>
<<run setup.Ability_BallsTier_Second.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_BallsTier_Third = setup.AbilityDataFactory.createAbilityData({
id: "Ability_BallsTier_Third",
name: "Balls Tier 3",
description:function(character)
{
return "Your balls are larger than a normal person's hands.";
},
maxRank: 1
})>>
<<run setup.Ability_BallsTier_Third.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_BallsTier_Third.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var comparatorSize = 10 / 3;
var nextComparatorSize = 16.5 / 3;
var balls = setup.getStatValue(abilityParams.self, "balls", "Ability_HeightSizeTier_Third");
if(balls > comparatorSize && balls < nextComparatorSize)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: 20};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_BallsTier_Third.setAsGlobalAbility()>>
<<run setup.Ability_BallsTier_Third.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_BallsTier_Fourth = setup.AbilityDataFactory.createAbilityData({
id: "Ability_BallsTier_Fourth",
name: "Balls Tier 4",
description:function(character)
{
return "Your balls are larger than soda cans.";
},
maxRank: 1
})>>
<<run setup.Ability_BallsTier_Fourth.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_BallsTier_Fourth.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var comparatorSize = 16.5 / 3;
var nextComparatorSize = 32 / 3;
var balls = setup.getStatValue(abilityParams.self, "balls", "Ability_BallsTier_Fourth");
if(balls > comparatorSize && balls < nextComparatorSize)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: 50};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_BallsTier_Fourth.setAsGlobalAbility()>>
<<run setup.Ability_BallsTier_Fourth.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_BallsTier_Fifth = setup.AbilityDataFactory.createAbilityData({
id: "Ability_BallsTier_Fifth",
name: "Balls Tier 5",
description:function(character)
{
return "Your balls are larger than 2 liter bottles.";
},
maxRank: 1
})>>
<<run setup.Ability_BallsTier_Fifth.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_BallsTier_Fifth.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var comparatorSize = 32 / 3;
var nextComparatorSize = 65 / 3;
var balls = setup.getStatValue(abilityParams.self, "balls", "Ability_BallsTier_Fifth");
if(balls > comparatorSize && balls < nextComparatorSize)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: 75};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_BallsTier_Fifth.setAsGlobalAbility()>>
<<run setup.Ability_BallsTier_Fifth.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_BallsTier_Sixth = setup.AbilityDataFactory.createAbilityData({
id: "Ability_BallsTier_Sixth",
name: "Balls Tier 6",
description:function(character)
{
return "Your balls are larger than beach balls.";
},
maxRank: 1
})>>
<<run setup.Ability_BallsTier_Sixth.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_BallsTier_Sixth.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var comparatorSize = 65 / 3;
var balls = setup.getStatValue(abilityParams.self, "balls", "Ability_BallsTier_Sixth");
if(balls > comparatorSize)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: 100};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_BallsTier_Sixth.setAsGlobalAbility()>>
<<run setup.Ability_BallsTier_Sixth.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_CockTier_First = setup.AbilityDataFactory.createAbilityData({
id: "Ability_CockTier_First",
name: "Cock Tier 1",
description:function(character)
{
return "You have an average sized cock.";
},
maxRank: 1
})>>
<<run setup.Ability_CockTier_First.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_CockTier_First.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var comparatorSize = 7.5;
var cock = setup.getStatValue(abilityParams.self, "cock", "Ability_CockTier_First");
if(cock < comparatorSize)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: 5};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_CockTier_First.setAsGlobalAbility()>>
<<run setup.Ability_CockTier_First.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_CockTier_Second = setup.AbilityDataFactory.createAbilityData({
id: "Ability_CockTier_Second",
name: "Cock Tier 2",
description:function(character)
{
return "You have a monster cock.";
},
maxRank: 1
})>>
<<run setup.Ability_CockTier_Second.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_CockTier_Second.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var comparatorSize = 7.5;
var nextComparatorSize = 10;
var cock = setup.getStatValue(abilityParams.self, "cock", "Ability_CockTier_Second");
if(cock > comparatorSize && cock < nextComparatorSize)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: 10};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_CockTier_Second.setAsGlobalAbility()>>
<<run setup.Ability_CockTier_Second.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_CockTier_Third = setup.AbilityDataFactory.createAbilityData({
id: "Ability_CockTier_Third",
name: "Cock Tier 3",
description:function(character)
{
return "Your cock is bigger than a 2 liter bottle.";
},
maxRank: 1
})>>
<<run setup.Ability_CockTier_Third.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_CockTier_Third.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var comparatorSize = 10;
var nextComparatorSize = 16.5;
var cock = setup.getStatValue(abilityParams.self, "cock", "Ability_HeightSizeTier_Third");
if(cock > comparatorSize && cock < nextComparatorSize)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: 20};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_CockTier_Third.setAsGlobalAbility()>>
<<run setup.Ability_CockTier_Third.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_CockTier_Fourth = setup.AbilityDataFactory.createAbilityData({
id: "Ability_CockTier_Fourth",
name: "Cock Tier 4",
description:function(character)
{
return "Your cock is bigger than a bowling pin.";
},
maxRank: 1
})>>
<<run setup.Ability_CockTier_Fourth.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_CockTier_Fourth.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var comparatorSize = 16.5;
var nextComparatorSize = 32;
var cock = setup.getStatValue(abilityParams.self, "cock", "Ability_CockTier_Fourth");
if(cock > comparatorSize && cock < nextComparatorSize)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: 50};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_CockTier_Fourth.setAsGlobalAbility()>>
<<run setup.Ability_CockTier_Fourth.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_CockTier_Fifth = setup.AbilityDataFactory.createAbilityData({
id: "Ability_CockTier_Fifth",
name: "Cock Tier 5",
description:function(character)
{
return "Your cock is longer than a baseball bat";
},
maxRank: 1
})>>
<<run setup.Ability_CockTier_Fifth.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_CockTier_Fifth.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var comparatorSize = 32;
var nextComparatorSize = 65;
var cock = setup.getStatValue(abilityParams.self, "cock", "Ability_CockTier_Fifth");
if(cock > comparatorSize && cock < nextComparatorSize)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: 75};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_CockTier_Fifth.setAsGlobalAbility()>>
<<run setup.Ability_CockTier_Fifth.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_CockTier_Sixth = setup.AbilityDataFactory.createAbilityData({
id: "Ability_CockTier_Sixth",
name: "Cock Tier 6",
description:function(character)
{
return "Your cock is bigger than an average person.";
},
maxRank: 1
})>>
<<run setup.Ability_CockTier_Sixth.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_CockTier_Sixth.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var comparatorSize = 65;
var cock = setup.getStatValue(abilityParams.self, "cock", "Ability_CockTier_Sixth");
if(cock > comparatorSize)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: 100};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_CockTier_Sixth.setAsGlobalAbility()>>
<<run setup.Ability_CockTier_Sixth.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_HeightSizeTier_First = setup.AbilityDataFactory.createAbilityData({
id: "Ability_HeightSizeTier_First",
name: "Height Tier 1",
description:function(character)
{
return "You are an average person's height.";
},
maxRank: 1
})>>
<<run setup.Ability_HeightSizeTier_First.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_HeightSizeTier_First.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var comparatorSize = 12 * 7;
var height = setup.getStatValue(abilityParams.self, "height", "Ability_HeightSizeTier_First");
if(height < comparatorSize)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: 3};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_HeightSizeTier_First.setAsGlobalAbility()>>
<<run setup.Ability_HeightSizeTier_First.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_HeightSizeTier_Second = setup.AbilityDataFactory.createAbilityData({
id: "Ability_HeightSizeTier_Second",
name: "Height Tier 2",
description:function(character)
{
return "You are taller than an average person.";
},
maxRank: 1
})>>
<<run setup.Ability_HeightSizeTier_Second.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_HeightSizeTier_Second.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var comparatorSize = 12 * 7;
var nextComparatorSize = 12 * 9;
var height = setup.getStatValue(abilityParams.self, "height", "Ability_HeightSizeTier_Second");
if(height > comparatorSize && height < nextComparatorSize)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: 10};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_HeightSizeTier_Second.setAsGlobalAbility()>>
<<run setup.Ability_HeightSizeTier_Second.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_HeightSizeTier_Third = setup.AbilityDataFactory.createAbilityData({
id: "Ability_HeightSizeTier_Third",
name: "Height Tier 3",
description:function(character)
{
return "Most people barely reach your chest.";
},
maxRank: 1
})>>
<<run setup.Ability_HeightSizeTier_Third.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_HeightSizeTier_Third.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var comparatorSize = 12 * 9;
var nextComparatorSize = 12 * 15;
var height = setup.getStatValue(abilityParams.self, "height", "Ability_HeightSizeTier_Third");
if(height > comparatorSize && height < nextComparatorSize)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: 20};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_HeightSizeTier_Third.setAsGlobalAbility()>>
<<run setup.Ability_HeightSizeTier_Third.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_HeightSizeTier_Fourth = setup.AbilityDataFactory.createAbilityData({
id: "Ability_HeightSizeTier_Fourth",
name: "Height Tier 4",
description:function(character)
{
return "You are taller than an average house.";
},
maxRank: 1
})>>
<<run setup.Ability_HeightSizeTier_Fourth.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_HeightSizeTier_Fourth.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var comparatorSize = 12 * 15;
var nextComparatorSize = 12 * 30;
var height = setup.getStatValue(abilityParams.self, "height", "Ability_HeightSizeTier_Fourth");
if(height > comparatorSize && height < nextComparatorSize)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: 50};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_HeightSizeTier_Fourth.setAsGlobalAbility()>>
<<run setup.Ability_HeightSizeTier_Fourth.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_HeightSizeTier_Fifth = setup.AbilityDataFactory.createAbilityData({
id: "Ability_HeightSizeTier_Fifth",
name: "Height Tier 5",
description:function(character)
{
return "You are taller than an electric pole.";
},
maxRank: 1
})>>
<<run setup.Ability_HeightSizeTier_Fifth.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_HeightSizeTier_Fifth.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var comparatorSize = 12 * 30;
var nextComparatorSize = 12 * 60;
var height = setup.getStatValue(abilityParams.self, "height", "Ability_HeightSizeTier_Fifth");
if(height > comparatorSize && height < nextComparatorSize)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: 75};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_HeightSizeTier_Fifth.setAsGlobalAbility()>>
<<run setup.Ability_HeightSizeTier_Fifth.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_HeightSizeTier_Sixth = setup.AbilityDataFactory.createAbilityData({
id: "Ability_HeightSizeTier_Sixth",
name: "Height Tier 6",
description:function(character)
{
return "You stand taller than a 6-story building.";
},
maxRank: 1
})>>
<<run setup.Ability_HeightSizeTier_Sixth.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_HeightSizeTier_Sixth.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var comparatorSize = 12 * 60;
var height = setup.getStatValue(abilityParams.self, "height", "Ability_HeightSizeTier_Sixth");
if(height > comparatorSize)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: 100};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_HeightSizeTier_Sixth.setAsGlobalAbility()>>
<<run setup.Ability_HeightSizeTier_Sixth.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_MuscleTier_First = setup.AbilityDataFactory.createAbilityData({
id: "Ability_MuscleTier_First",
name: "Muscles Tier 1",
description:function(character)
{
return "You are somewhat fit.";
},
maxRank: 1
})>>
<<run setup.Ability_MuscleTier_First.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_MuscleTier_First.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var comparatorSize = 20;
var muscles = setup.getStatValue(abilityParams.self, "muscles", "Ability_MuscleTier_First");
if(muscles < comparatorSize)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: 3};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_MuscleTier_First.setAsGlobalAbility()>>
<<run setup.Ability_MuscleTier_First.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_MuscleTier_Second = setup.AbilityDataFactory.createAbilityData({
id: "Ability_MuscleTier_Second",
name: "Muscles Tier 2",
description:function(character)
{
return "You are ripped. It's becoming hard to find clothes that fit you.";
},
maxRank: 1
})>>
<<run setup.Ability_MuscleTier_Second.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_MuscleTier_Second.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var comparatorSize = 20;
var nextComparatorSize = 60;
var muscles = setup.getStatValue(abilityParams.self, "muscles", "Ability_HeightSizeTier_Second");
if(muscles > comparatorSize && muscles < nextComparatorSize)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: 10};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_MuscleTier_Second.setAsGlobalAbility()>>
<<run setup.Ability_MuscleTier_Second.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_MuscleTier_Third = setup.AbilityDataFactory.createAbilityData({
id: "Ability_MuscleTier_Third",
name: "Muscles Tier 3",
description:function(character)
{
return "You are massive, bigger than any warrior in the Bastion.";
},
maxRank: 1
})>>
<<run setup.Ability_MuscleTier_Third.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_MuscleTier_Third.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var comparatorSize = 60;
var nextComparatorSize = 200;
var muscles = setup.getStatValue(abilityParams.self, "muscles", "Ability_HeightSizeTier_Third");
if(muscles > comparatorSize && muscles < nextComparatorSize)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: 20};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_MuscleTier_Third.setAsGlobalAbility()>>
<<run setup.Ability_MuscleTier_Third.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_MuscleTier_Fourth = setup.AbilityDataFactory.createAbilityData({
id: "Ability_MuscleTier_Fourth",
name: "Muscles Tier 4",
description:function(character)
{
return "You are a walking powerhouse. Legends about your powerful body are spreading.";
},
maxRank: 1
})>>
<<run setup.Ability_MuscleTier_Fourth.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_MuscleTier_Fourth.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var comparatorSize = 200;
var nextComparatorSize = 350;
var muscles = setup.getStatValue(abilityParams.self, "muscles", "Ability_HeightSizeTier_Fourth");
if(muscles > comparatorSize && muscles < nextComparatorSize)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: 50};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_MuscleTier_Fourth.setAsGlobalAbility()>>
<<run setup.Ability_MuscleTier_Fourth.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_MuscleTier_Fifth = setup.AbilityDataFactory.createAbilityData({
id: "Ability_MuscleTier_Fifth",
name: "Muscles Tier 5",
description:function(character)
{
return "You are a hulking powerhouse, gods would kill for a body like yours. ";
},
maxRank: 1
})>>
<<run setup.Ability_MuscleTier_Fifth.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_MuscleTier_Fifth.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var comparatorSize = 350;
var nextComparatorSize = 600;
var muscles = setup.getStatValue(abilityParams.self, "muscles", "Ability_HeightSizeTier_Fifth");
if(muscles > comparatorSize && muscles < nextComparatorSize)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: 75};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_MuscleTier_Fifth.setAsGlobalAbility()>>
<<run setup.Ability_MuscleTier_Fifth.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_MuscleTier_Sixth = setup.AbilityDataFactory.createAbilityData({
id: "Ability_MuscleTier_Sixth",
name: "Muscles Tier 6",
description:function(character)
{
return "No god or mortal could overcome your bulking, mountainous muscles. Every flex is a booming statement.";
},
maxRank: 1
})>>
<<run setup.Ability_MuscleTier_Sixth.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_MuscleTier_Sixth.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var comparatorSize = 600;
var muscles = setup.getStatValue(abilityParams.self, "muscles", "Ability_HeightSizeTier_Sixth");
if(muscles > comparatorSize)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: 100};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_MuscleTier_Sixth.setAsGlobalAbility()>>
<<run setup.Ability_MuscleTier_Sixth.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_Overwhelming_Balls = setup.AbilityDataFactory.createAbilityData({
id: "Ability_Overwhelming_Balls",
name: "Overwhelming Balls",
description:function(character)
{
return "Your balls tower over your opponent.";
},
maxRank: 1
})>>
<<run setup.Ability_Overwhelming_Balls.addBehaviour(
"start",
setup.AbilityTrigger.ON_FIGHT_START,
undefined
)>>
<<run setup.Ability_Overwhelming_Balls.addBehaviour(
"update",
setup.AbilityTrigger.ON_FIGHT_TURN_START,
function(abilityRuntimeData, abilityParams)
{
if(setup.cockcomparison(setup.getStatValue(abilityParams.self, "balls"), setup.getStatValue(abilityParams.target, "height")) >= setup.CockComparators.SLIGHTLY_BIGGER &&
setup.cockcomparison(setup.getStatValue(abilityParams.self, "balls"), setup.getStatValue(abilityParams.target, "height")) < setup.CockComparators.MASSIVE)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.arousalGainMods = {mod: setup.mod.ADD, value: 10};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_Overwhelming_Balls.addBehaviour(
"end",
setup.AbilityTrigger.ON_FIGHT_END,
undefined
)>>
<<run setup.Ability_Overwhelming_Balls.setAsGlobalAbility()>>
<<run setup.Ability_Overwhelming_Balls.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_All_Consuming_Balls = setup.AbilityDataFactory.createAbilityData({
id: "Ability_All_Consuming_Balls",
name: "All-Consuming Balls",
description:function(character)
{
return "Your balls completely overwhelm your opponent.";
},
maxRank: 1
})>>
<<run setup.Ability_All_Consuming_Balls.addBehaviour(
"start",
setup.AbilityTrigger.ON_FIGHT_START,
undefined
)>>
<<run setup.Ability_All_Consuming_Balls.addBehaviour(
"update",
setup.AbilityTrigger.ON_FIGHT_TURN_START,
function(abilityRuntimeData, abilityParams)
{
if(setup.cockcomparison(setup.getStatValue(abilityParams.self, "balls"), setup.getStatValue(abilityParams.target, "height")) >= setup.CockComparators.MASSIVE)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.arousalGainMods = {mod: setup.mod.ADD, value: 15};
abilityRuntimeData.modifier.fightMoveIDsMods = {mod: setup.mod.ADD, value: [setup.FightMove_CumDeluge.id]};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_All_Consuming_Balls.addBehaviour(
"end",
setup.AbilityTrigger.ON_FIGHT_END,
undefined
)>>
<<run setup.Ability_All_Consuming_Balls.setAsGlobalAbility()>>
<<run setup.Ability_All_Consuming_Balls.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_Bigger_Than_Target = setup.AbilityDataFactory.createAbilityData({
id: "Ability_Bigger_Than_Target",
name: "Looming Over Them",
description:function(character)
{
return "A shadow is cast over your opponent.";
},
maxRank: 1
})>>
<<run setup.Ability_Bigger_Than_Target.addBehaviour(
"start",
setup.AbilityTrigger.ON_FIGHT_START,
undefined
)>>
<<run setup.Ability_Bigger_Than_Target.addBehaviour(
"update",
setup.AbilityTrigger.ON_FIGHT_TURN_START,
function(abilityRuntimeData, abilityParams)
{
if(setup.sizeCharactercomparison(abilityParams.self, abilityParams.target) >= setup.Comparators.BIGGER &&
setup.sizeCharactercomparison(abilityParams.self, abilityParams.target) < setup.Comparators.REACHES_WAIST)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: 7};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_Bigger_Than_Target.addBehaviour(
"end",
setup.AbilityTrigger.ON_FIGHT_END,
undefined
)>>
<<run setup.Ability_Bigger_Than_Target.setAsGlobalAbility()>>
<<run setup.Ability_Bigger_Than_Target.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_Looming_Over_Target = setup.AbilityDataFactory.createAbilityData({
id: "Ability_Looming_Over_Target",
name: "Towering Over Them",
description:function(character)
{
return "The size difference between you two is significant.";
},
maxRank: 1
})>>
<<run setup.Ability_Looming_Over_Target.addBehaviour(
"start",
setup.AbilityTrigger.ON_FIGHT_START,
undefined
)>>
<<run setup.Ability_Looming_Over_Target.addBehaviour(
"update",
setup.AbilityTrigger.ON_FIGHT_TURN_START,
function(abilityRuntimeData, abilityParams)
{
if(setup.sizeCharactercomparison(abilityParams.self, abilityParams.target) >= setup.Comparators.REACHES_WAIST &&
setup.sizeCharactercomparison(abilityParams.self, abilityParams.target) < setup.Comparators.FITS_ON_HAND)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: 10};
abilityRuntimeData.modifier.arousalGainMods = {mod: setup.mod.ADD, value: 5};
abilityRuntimeData.modifier.fightMoveIDsMods = {mod: setup.mod.ADD, value: [setup.FightMove_Stomp.id]};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_Looming_Over_Target.addBehaviour(
"end",
setup.AbilityTrigger.ON_FIGHT_END,
undefined
)>>
<<run setup.Ability_Looming_Over_Target.setAsGlobalAbility()>>
<<run setup.Ability_Looming_Over_Target.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_Overwhelming_Target = setup.AbilityDataFactory.createAbilityData({
id: "Ability_Overwhelming_Target",
name: "Overwhelming Presence",
description:function(character)
{
return "Mass and power overtakes the scenery.";
},
maxRank: 1
})>>
<<run setup.Ability_Overwhelming_Target.addBehaviour(
"start",
setup.AbilityTrigger.ON_FIGHT_START,
undefined
)>>
<<run setup.Ability_Overwhelming_Target.addBehaviour(
"update",
setup.AbilityTrigger.ON_FIGHT_TURN_START,
function(abilityRuntimeData, abilityParams)
{
if(setup.sizeCharactercomparison(abilityParams.self, abilityParams.target) >= setup.Comparators.FITS_ON_HAND)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: 40};
abilityRuntimeData.modifier.arousalGainMods = {mod: setup.mod.ADD, value: 15};
abilityRuntimeData.modifier.fightMoveIDsMods = {mod: setup.mod.ADD, value: [setup.FightMove_Stomp.id]};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_Overwhelming_Target.addBehaviour(
"end",
setup.AbilityTrigger.ON_FIGHT_END,
undefined
)>>
<<run setup.Ability_Overwhelming_Target.setAsGlobalAbility()>>
<<run setup.Ability_Overwhelming_Target.setFilter(setup.AbilityFilter.GLOBAL)>><<set setup.Ability_SombrevesWhisper = setup.AbilityDataFactory.createAbilityData({
id: "Ability_SombrevesWhisper",
name: "Sombreve's Whisper",
description:function(character, abilityRuntimeData)
{
if(abilityRuntimeData == undefined)
{
var displayString = "";
displayString += "Temporarily gain 2 arousal per turn for each turn you have been in combat.\n";
displayString += "Temporarily gain 5% Corruption per turn for each turn you have been in combat.";
return displayString;
}
else
{
var displayString = "";
displayString += "Temporarily gain "+ (2 + setup.getRankGrowth(abilityRuntimeData, "linear", 1)) +" arousal per turn for each turn you have been in combat.\n";
displayString += "Temporarily gain "+setup.getRankGrowth(abilityRuntimeData, "linear", 5)+"% Corruption for each turn you have been in combat.";
return displayString;
}
},
maxRank: 5
})>>
<<run setup.Ability_SombrevesWhisper.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_SombrevesWhisper.addBehaviour(
"update",
setup.AbilityTrigger.ON_FIGHT_TURN_START + setup.AbilityTrigger.ON_STAT_CHANGE + setup.AbilityTrigger.ON_FIGHT_END,
function(abilityRuntimeData, abilityParams)
{
if(State.variables.FightTurn != 0)
{
abilityRuntimeData.modifier.arousalGainMods = {mod: setup.mod.ADD, value: (2 + setup.getRankGrowth(abilityRuntimeData, "linear", 2)) * State.variables.FightTurn}
abilityRuntimeData.modifier.corruptionMods = {mod: setup.mod.MULTIPLYPOS, value: setup.getRankGrowth(abilityRuntimeData, "linear", 0.05) * State.variables.FightTurn}
/*var params =
{
trigger: setup.AbilityTrigger.ON_GAIN_CORRUPTION,
self: abilityParams.self,
}
abilityParams.self.broadcastAbilityTrigger(params);*/
}
else
{
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
},
)>>
<<run setup.Ability_SombrevesWhisper.setUnlockableFromLevelScreen(true)>>
<<run setup.Ability_SombrevesWhisper.setUnlockCondition(
function(character){
return (State.variables.Level >= 15) && (setup.getStatValue(character, "corruption") >= 75)
}
)>>
<<set setup.Ability_SombrevesWhisper.setCategory(setup.AbilityCategory.SOMBREVE)>>
<<set setup.Ability_SombrevesWhisper.setGrade(setup.AbilityGrade.VERYHIGH)>><<set setup.Ability_Stunned = setup.AbilityDataFactory.createAbilityData({
id: "Ability_Stunned",
name: "Stunned",
description:function(character)
{
return "Greatly lowers your prowess for a turn.";
},
maxRank: 999
})>>
<<run setup.Ability_Stunned.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_Stunned.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams){
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.REMOVE, value: setup.getRankGrowth(abilityRuntimeData, "linear", 500)};
}
)>>
<<run setup.Ability_Stunned.addBehaviour(
"update",
setup.AbilityTrigger.ON_FIGHT_TURN_START,
function(abilityRuntimeData, abilityParams){
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
)>>
<<run setup.Ability_Stunned.addBehaviour(
"remove",
setup.AbilityTrigger.ON_FIGHT_END,
undefined,
)>>
<<run setup.Ability_Stunned.setFilter(setup.AbilityFilter.STATUSEFFECT)>><<set setup.Ability_SurvivorOfTheFirstEclipse = setup.AbilityDataFactory.createAbilityData({
id: "Ability_SurvivorOfTheFirstEclipse",
name: "Survivor of the First Eclipse",
description:function(character)
{
return "Your body and soul were untainted by the first eclipse.";
},
maxRank: 1
})>>
<<run setup.Ability_SurvivorOfTheFirstEclipse.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.maxHPMods = {mod: setup.mod.ADD, value: 5};
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: 5}
}
)>>
<<run setup.Ability_SurvivorOfTheFirstEclipse.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_TaintedByTheLost = setup.AbilityDataFactory.createAbilityData({
id: "Ability_TaintedByTheLost",
name: "Tainted by the Lost",
description:function(character)
{
return "The seed of Corruption is sown...";
},
maxRank: 1
})>>
<<run setup.Ability_TaintedByTheLost.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.corruptionMods = {mod: setup.mod.ADD, value: 5};
abilityRuntimeData.modifier.minArousalMods = {mod: setup.mod.ADD, value: 5};
abilityRuntimeData.modifier.arousalGainMods = {mod: setup.mod.ADD, value: 5}
}
)>>
<<run setup.Ability_TaintedByTheLost.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_Tank = setup.AbilityDataFactory.createAbilityData({
id: "Ability_Tank",
name: "Tank",
description:function(character, abilityRuntimeData)
{
if(abilityRuntimeData == undefined)
{
let displayString = "You have a sturdy and resilient body. Your Max HP is increased by 20%";
displayString += " and your prowess is decreased by 5%"
return displayString
}
else
{
let displayString = "You have a sturdy and resilient body. Your Max HP is increased by ";
displayString += setup.getRankGrowth(abilityRuntimeData, "linear", 20) + "%";
displayString += " and your prowess is decreased by ";
displayString += setup.getRankGrowth(abilityRuntimeData, "linear", 5) + "%";
return displayString
}
},
maxRank: 5
})>>
<<run setup.Ability_Tank.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_Tank.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE + setup.AbilityTrigger.ON_STAT_CHANGE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.maxHPMods = {
mod: setup.mod.MULTIPLYPOS,
value: setup.getRankGrowth(abilityRuntimeData, "linear", 0.2)
}
abilityRuntimeData.modifier.maxStaminaMods = {
mod: setup.mod.MULTIPLYNEG,
value: setup.getRankGrowth(abilityRuntimeData, "linear", 0.05)
}
}
)>>
<<run setup.Ability_Tank.setUnlockableFromLevelScreen(true)>>
<<run setup.Ability_Tank.setUnlockCondition(
function(character){
return (State.variables.Level >= 1)
}
)>>
<<set setup.Ability_Tank.setCategory(setup.AbilityCategory.WARRIOR)>>
<<set setup.Ability_Tank.setGrade(setup.AbilityGrade.VERYLOW)>><<set setup.Ability_TimelessBond = setup.AbilityDataFactory.createAbilityData({
id: "Ability_TimelessBond",
name: "Timeless Bond",
description:function(character, abilityRuntimeData)
{
let displayString = "Your bond with Abel grows ever stronger.";
return displayString
},
maxRank: 999
})>>
<<run setup.Ability_TimelessBond.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_TimelessBond.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.MULTIPLYPOS, value: setup.getRankGrowth(abilityRuntimeData, "linear", 0.02)};
abilityRuntimeData.modifier.maxHPMods = {mod: setup.mod.MULTIPLYPOS, value: setup.getRankGrowth(abilityRuntimeData, "linear", 0.02)};
}
)>>
<<run setup.Ability_TimelessBond.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_ToLiveForEcho = setup.AbilityDataFactory.createAbilityData({
id: "Ability_ToLiveForEcho",
name: "To Live For <<SymbioteName>>",
description: function(character, abilityRuntimeData)
{
return "You can only use pleasure self in human form, your stats in <<SymbioteName>> greatly increased.";
},
maxRank: 1
})>>
<<run setup.Ability_ToLiveForEcho.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_ToLiveForEcho.addBehaviour(
"update",
setup.AbilityTrigger.ON_MAX_LUST,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.maxHPMods = {mod: setup.mod.ADD, value: 35}
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: 20}
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: 20}
abilityRuntimeData.modifier.critChanceMods = {mod: setup.mod.ADD, value: 20}
abilityRuntimeData.modifier.fightMoveIDsMods = {mod: setup.mod.ADD, value: []}
var displayString = "You feel the presence of <<SymbioteName>> press against your mind. You embrace it, feeling yourself become one with the being that resides within you.";
displayString += "The familiar sensation of <<SymbioteName>> seeping through your pores is suddenly amplified as more and more ooze piles onto your flesh, expanding and taking shape as a"
displayString += "terrifyingly powerful and monstrous" + setup.getRaceName($CharacterSheet_Player.symbiote) + "!"
return
}
)>>
<<run setup.Ability_ToLiveForEcho.addBehaviour(
"update",
setup.AbilityTrigger.ON_MIN_LUST + setup.AbilityTrigger.ON_FIGHT_END + setup.AbilityTrigger.ON_FIGHT_START,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
abilityRuntimeData.modifier.fightMoveIDsMods = {mod: setup.mod.REPLACE, value: [setup.FightMove_Masturbate.id]}
return "You feel <<SymbioteName>> recede back within you. You can almost feel his smile pulling wide.";
}
)>>
/*This breaks in 0.4.0*/
/*<<run setup.Ability_ToLiveForEcho.setUnlockableFromLevelScreen(true)>>*/
<<run setup.Ability_ToLiveForEcho.setUnlockCondition(
function(character){
return State.variables.Level >= 7
}
)>>
<<set setup.Ability_ToLiveForEcho.setCategory(setup.AbilityCategory.LUST)>>
<<set setup.Ability_ToLiveForEcho.setGrade(setup.AbilityGrade.HIGH)>><<set setup.Ability_TonicOfStillness = setup.AbilityDataFactory.createAbilityData({
id: "Ability_TonicOfStillness",
name: "Tonic of Stillness",
description:function(character)
{
return "The tonic of stillness flows through your body.\n Lasts for 7 expeditions.";
},
maxRank: 999
})>>
<<run setup.Ability_TonicOfStillness.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.blackboard = {}
},
)>>
<<run setup.Ability_TonicOfStillness.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.blackboard.dayConsumed = State.variables.Expedition;
console.log(abilityParams.self);
var appliedCorruption = Math.max(State.variables[abilityParams.self.id].info.corruption * -1, -5);
if(appliedCorruption != 0)
{
console.log("applying "+appliedCorruption);
setup.applyCorruption(State.variables[abilityParams.self.id], appliedCorruption);
console.log(appliedCorruption);
console.log("asd");
var strengthValue = 0;
if(abilityRuntimeData.modifier.strengthMods != null)
{
strengthValue = abilityRuntimeData.modifier.strengthMods.value;
}
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: strengthValue + (appliedCorruption * -1)};
}
}
)>>
<<run setup.Ability_TonicOfStillness.addBehaviour(
"update",
setup.AbilityTrigger.ON_DAY_CHANGE,
function(abilityRuntimeData, abilityParams)
{
if(State.variables.Expedition - abilityRuntimeData.blackboard.dayConsumed >= 7)
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.rank = 0;
}
}
)>>
<<run setup.Ability_TonicOfStillness.setFilter(setup.AbilityFilter.STATUSEFFECT)>><<set setup.Ability_TorgarsBond = setup.AbilityDataFactory.createAbilityData({
id: "Ability_TorgarsBond",
name: "Torgar's Corrupted Bond",
description:function(character, abilityRuntimeData)
{
if(abilityRuntimeData == undefined)
{
return "Torgar's corruption experiment empowers you.\n You gain 20% of Torgar's strength stat.";
}
else
{
let displayString = "Torgar's corruption experiment empowers you.\n";
displayString += "You gain "+setup.getRankGrowth(abilityRuntimeData, "linear", 20) + "% of Torgar's strength stat.";
return displayString;
}
},
maxRank: 5
})>>
<<run setup.Ability_TorgarsBond.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_TorgarsBond.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE + setup.AbilityTrigger.ON_DAY_CHANGE + setup.AbilityTrigger.ON_STAT_CHANGE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 0.2) * setup.getStatValue(State.variables.CharacterSheet_Torgar, "strength")};
}
)>>
<<run setup.Ability_TorgarsBond.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_TorgarsCorruption = setup.AbilityDataFactory.createAbilityData({
id: "Ability_TorgarsCorruption",
name: "Torgar's Corruption",
description:function(character)
{
return "Torgar's tainted seed empowers you.\n Lasts for 12 days.";
},
maxRank: 999
})>>
<<run setup.Ability_TorgarsCorruption.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.blackboard = {}
},
)>>
<<run setup.Ability_TorgarsCorruption.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.blackboard.dayConsumed = State.variables.Expedition;
setup.applyCorruption(abilityParams.self, 10);
setup.applyGrowth(abilityParams.self, "muscles", 10);
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.maxHPMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 8)};
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 8)};
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 5)};
abilityRuntimeData.modifier.minArousalMods = {mod: setup.mod.ADD, value: 10};
abilityRuntimeData.modifier.corruptionMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 8)};
}
)>>
<<run setup.Ability_TorgarsCorruption.addBehaviour(
"update",
setup.AbilityTrigger.ON_DAY_CHANGE,
function(abilityRuntimeData, abilityParams)
{
if(State.variables.Expedition - abilityRuntimeData.blackboard.dayConsumed >= 12)
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.rank = 0;
}
}
)>>
<<run setup.Ability_TorgarsCorruption.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_EmbracedByNyxsLight = setup.AbilityDataFactory.createAbilityData({
id: "Ability_EmbracedByNyxsLight",
name: "Embraced By Nyx's Light",
description:function(character)
{
return "Your body is absorbing Nyx's light while in this realm. You gain arousal 40% faster.";
},
maxRank: 1
})>>
<<run setup.Ability_EmbracedByNyxsLight.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_EmbracedByNyxsLight.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE + setup.AbilityTrigger.ON_STAT_CHANGE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.arousalGainMods = {mod: setup.mod.ADD, value: Math.ceil(setup.getStatValue(abilityParams.self, "arousalGain") * 0.4, 0)};
},
)>>
<<run setup.Ability_EmbracedByNyxsLight.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_TouchedByNyxsLight = setup.AbilityDataFactory.createAbilityData({
id: "Ability_TouchedByNyxsLight",
name: "Touched By Nyx's Light",
description:function(character)
{
return "Your body is absorbing Nyx's light while in this realm. You gain arousal 15% faster.";
},
maxRank: 1
})>>
<<run setup.Ability_TouchedByNyxsLight.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_TouchedByNyxsLight.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE + setup.AbilityTrigger.ON_STAT_CHANGE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.arousalGainMods = {mod: setup.mod.ADD, value: Math.ceil(setup.getStatValue(abilityParams.self, "arousalGain") * 0.15, 0)};
},
)>>
<<run setup.Ability_TouchedByNyxsLight.addBehaviour(
"end",
setup.AbilityTrigger.ON_FIGHT_BATTLE_LOST,
undefined,
)>>
<<run setup.Ability_TouchedByNyxsLight.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_UnnaturalGrowth = setup.AbilityDataFactory.createAbilityData({
id: "Ability_UnnaturalGrowth",
name: "Unnatural Growth",
description:function(character)
{
return "Gains 100% your Strength and size until the end of combat.";
},
maxRank: 999
})>>
<<run setup.Ability_UnnaturalGrowth.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_UnnaturalGrowth.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams){
abilityRuntimeData.modifier.strengthMods = {
mod: setup.mod.MULTIPLYPOS,
value: setup.getRankGrowth(abilityRuntimeData, "linear", 1),
}
abilityRuntimeData.modifier.cockMods = {
mod: setup.mod.MULTIPLYPOS,
value: setup.getRankGrowth(abilityRuntimeData, "linear", 1),
}
abilityRuntimeData.modifier.ballsMods = {
mod: setup.mod.MULTIPLYPOS,
value: setup.getRankGrowth(abilityRuntimeData, "linear", 1),
}
abilityRuntimeData.modifier.heightMods = {
mod: setup.mod.MULTIPLYPOS,
value: setup.getRankGrowth(abilityRuntimeData, "linear", 1),
}
abilityRuntimeData.modifier.musclesMods = {
mod: setup.mod.MULTIPLYPOS,
value: setup.getRankGrowth(abilityRuntimeData, "linear", 1),
}
}
)>>
<<run setup.Ability_UnnaturalGrowth.addBehaviour(
"remove",
setup.AbilityTrigger.ON_FIGHT_END,
undefined,
)>>
<<run setup.Ability_UnnaturalGrowth.setFilter(setup.AbilityFilter.STATUSEFFECT)>><<set setup.Ability_UnstoppableExpansion = setup.AbilityDataFactory.createAbilityData({
id: "Ability_UnstoppableExpansion",
name: "Unstoppable Expansion",
description:function(character, abilityRuntimeData)
{
if(abilityRuntimeData == undefined)
{
return "Whenever you gain any amount of growth, add 0.1% of your current size to that amount.";
}
else
{
return "Whenever you gain any amount of growth, add "+ setup.getRankGrowth(abilityRuntimeData, "linear", 0.1).toFixed(2).replace(/\.00$/, '') +"% of your current size to that amount.";
}
},
maxRank: 10
})>>
<<run setup.Ability_UnstoppableExpansion.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_UnstoppableExpansion.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.bonusGrowthCock = {mod: setup.mod.ADD, value: setup.getStatValue(abilityParams.self, "cock") * setup.getRankGrowth(abilityRuntimeData, "linear", 1) / 1000}
abilityRuntimeData.modifier.bonusGrowthHeight = {mod: setup.mod.ADD, value: setup.getStatValue(abilityParams.self, "height") * setup.getRankGrowth(abilityRuntimeData, "linear", 1) / 1000}
abilityRuntimeData.modifier.bonusGrowthMuscles = {mod: setup.mod.ADD, value: setup.getStatValue(abilityParams.self, "muscles") * setup.getRankGrowth(abilityRuntimeData, "linear", 1) / 1000}
abilityRuntimeData.modifier.bonusGrowthBalls = {mod: setup.mod.ADD, value: setup.getStatValue(abilityParams.self, "balls") * setup.getRankGrowth(abilityRuntimeData, "linear", 1) / 1000}
},
)>>
<<run setup.Ability_UnstoppableExpansion.setUnlockableFromLevelScreen(true)>>
<<run setup.Ability_UnstoppableExpansion.setUnlockCondition(
function(character){
return (State.variables.Level >= 15)
}
)>>
<<set setup.Ability_UnstoppableExpansion.setCategory(setup.AbilityCategory.GROWTH)>>
<<set setup.Ability_UnstoppableExpansion.setGrade(setup.AbilityGrade.VERYHIGH)>><<set setup.Ability_UntappedPotential = setup.AbilityDataFactory.createAbilityData({
id: "Ability_UntappedPotential",
name: "Untapped Potential",
description:function(character)
{
return "The imp has hidden potential.";
},
maxRank: 1
})>>
<<run setup.Ability_UntappedPotential.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_UntappedPotential.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH,
function(abilityRuntimeData, abilityParams)
{
if(setup.getStatValue(abilityParams.self, "height") > 12 * 25)
{
abilityParams.self.info.bodyVisual = "BodyVisualSheet_Final_Imp";
abilityParams.self.info.currentEmote = setup.BodyVisualSheet_Final_Imp.emoteList.normal;
}
},
)>>
<<run setup.Ability_UntappedPotential.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_ValiantRush = setup.AbilityDataFactory.createAbilityData({
id: "Ability_ValiantRush",
name: "Valiant Rush",
description:function(character, abilityRuntimeData)
{
if(abilityRuntimeData == undefined)
{
return "Increases the amount of Combo Moves per turn by 1.";
}
else
{
return "Increases the amount of Combo Moves per turn by "+setup.getRankGrowth(abilityRuntimeData, "linear", 1)+".";
}
},
maxRank: 5
})>>
<<run setup.Ability_ValiantRush.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_ValiantRush.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.modifier.comboMovesPerTurnMods = {mod: setup.mod.ADD, value: setup.getRankGrowth(abilityRuntimeData, "linear", 1)};
},
)>>
<<run setup.Ability_ValiantRush.setUnlockCondition(
function(character){
return State.variables.Level >= 5
}
)>>
<<run setup.Ability_ValiantRush.setUnlockableFromLevelScreen(true)>>
<<set setup.Ability_ValiantRush.setCategory(setup.AbilityCategory.WARRIOR)>>
<<set setup.Ability_ValiantRush.setGrade(setup.AbilityGrade.MEDIUM)>><<set setup.Ability_VampiricLust = setup.AbilityDataFactory.createAbilityData({
id: "Ability_VampiricLust",
name: "Vampiric Lust",
description:function(character, abilityRuntimeData)
{
if(abilityRuntimeData == undefined)
{
return "Regain 5 health whenever you reach max arousal.";
}
else
{
return "Regain "+ (2 + setup.getRankGrowth(abilityRuntimeData, "linear", 3))+" health whenever you reach max arousal.";
}
},
maxRank: 5
})>>
<<run setup.Ability_VampiricLust.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_VampiricLust.addBehaviour(
"update",
setup.AbilityTrigger.ON_MAX_LUST,
function(abilityRuntimeData, abilityParams)
{
abilityParams.self.fight.variables.currentHP = Math.min(setup.getStatValue(abilityParams.self, "hp"), abilityParams.self.fight.variables.currentHP + 2 + setup.getRankGrowth(abilityRuntimeData, "linear", 3));
return "Lust courses through your system, your need drives you ever onwards!"
},
)>>
<<run setup.Ability_VampiricLust.setUnlockableFromLevelScreen(true)>>
<<run setup.Ability_VampiricLust.setUnlockCondition(
function(character){
return State.variables.Level >= 4 && character.hasAbility("Ability_HostOfEcho")
}
)>>
<<set setup.Ability_VampiricLust.setCategory(setup.AbilityCategory.LUST)>>
<<set setup.Ability_VampiricLust.setGrade(setup.AbilityGrade.LOW)>><<set setup.Ability_VigorOfTheEndowed = setup.AbilityDataFactory.createAbilityData({
id: "Ability_VigorOfTheEndowed",
name: "Vigor of the Endowed",
description:function(character, abilityRuntimeData)
{
if(abilityRuntimeData == undefined)
{
return "You gain Prowess for each "+setup.getLength(4)+" in cock length (up to 15).\n Your cock grows "+setup.getLength(2)+" and your balls grow "+setup.getLength(1)+" upon acquiring this Ability";
}
else
{
return "You gain Prowess for each "+setup.getLength(4)+" in cock length (up to "+(5 + setup.getRankGrowth(abilityRuntimeData, "linear", 10))+").\n Your cock grows "+setup.getLength(setup.getRankGrowth(abilityRuntimeData, "linear", 2))+" and your balls grow "+setup.getLength(setup.getRankGrowth(abilityRuntimeData, "linear", 1))+" upon acquiring this Ability";
}
},
maxRank: 4
})>>
<<run setup.Ability_VigorOfTheEndowed.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_VigorOfTheEndowed.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
setup.applyGrowth(abilityParams.self, "cock", setup.getRankGrowth(abilityRuntimeData, "linear", 2));
setup.applyGrowth(abilityParams.self, "balls", setup.getRankGrowth(abilityRuntimeData, "linear", 1));
},
)>>
<<run setup.Ability_VigorOfTheEndowed.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var boost = Math.min(Math.ceil(setup.getStatValue(abilityParams.self, "cock", "Ability_VigorOfTheEndowed") / 4), (15 + setup.getRankGrowth(abilityRuntimeData, "linear", 10)));
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: boost};
},
)>>
<<run setup.Ability_VigorOfTheEndowed.setUpgrade(
function(abilityRuntimeData, character){
return (State.variables.Level >= 7) && (setup.canRank(abilityRuntimeData) == false)
},
setup.Ability_VigorOfTheEndowed_2,
function(abilityRuntimeData, character){
var displayString = ""
displayString += "You must be at least level 7: (" + State.variables.Level + ")\n"
return displayString
}
)>>
<<run setup.Ability_VigorOfTheEndowed.setUnlockableFromLevelScreen(true)>>
<<run setup.Ability_VigorOfTheEndowed.setUnlockCondition(
function(character){
return true
}
)>>
<<set setup.Ability_VigorOfTheEndowed.setCategory(setup.AbilityCategory.FORM)>>
<<set setup.Ability_VigorOfTheEndowed.setGrade(setup.AbilityGrade.VERYLOW)>><<set setup.Ability_VigorOfTheEndowed_2 = setup.AbilityDataFactory.createAbilityData({
id: "Ability_VigorOfTheEndowed_2",
name: "Vigor of the Hyper Endowed",
description:function(character, abilityRuntimeData)
{
if(abilityRuntimeData == undefined)
{
return "You gain Prowess and Health for each "+setup.getLength(4)+" in cock length (up to 45).\n Your cock grows "+setup.getLength(5)+" and your balls grow "+setup.getLength(2)+" upon acquiring this Ability";
}
else
{
return "You gain Prowess and Health for each "+setup.getLength(4)+" in cock length (up to "+(35 + setup.getRankGrowth(abilityRuntimeData, "linear", 10))+").\n Your cock grows "+setup.getLength(setup.getRankGrowth(abilityRuntimeData, "linear", 5))+" and your balls grow "+setup.getLength(setup.getRankGrowth(abilityRuntimeData, "linear", 2))+" upon acquiring this Ability";
}
},
maxRank: 5
})>>
<<run setup.Ability_VigorOfTheEndowed_2.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_VigorOfTheEndowed_2.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
setup.applyGrowth(abilityParams.self, "cock", setup.getRankGrowth(abilityRuntimeData, "linear", 5));
setup.applyGrowth(abilityParams.self, "balls", setup.getRankGrowth(abilityRuntimeData, "linear", 2));
},
)>>
<<run setup.Ability_VigorOfTheEndowed_2.addBehaviour(
"update",
setup.AbilityTrigger.ON_APPLY_GROWTH + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var boost = Math.min(setup.getStatValue(abilityParams.self, "cock", "Ability_VigorOfTheEndowed_2" / 4), (35 + setup.getRankGrowth(abilityRuntimeData, "linear", 10)));
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: boost};
abilityRuntimeData.modifier.maxHPMods = {mod: setup.mod.ADD, value: boost};
},
)>>
<<set setup.Ability_VigorOfTheEndowed_2.setCategory(setup.AbilityCategory.FORM)>>
<<set setup.Ability_VigorOfTheEndowed_2.setGrade(setup.AbilityGrade.HIGH)>><<set setup.Ability_WarriorOfDuality = setup.AbilityDataFactory.createAbilityData({
id: "Ability_WarriorOfDuality",
name: "Warrior of Duality",
description:function(character, abilityRuntimeData)
{
if(abilityRuntimeData == undefined)
{
return "Gain 3 health on level up if corruption lower than 50.\n Gain 1 arousal per turn on level up if your corruption is greater than or equal to 50.";
}
else
{
return "Gain "+setup.getRankGrowth(abilityRuntimeData, "linear", 3)+" health on level up if corruption lower than 50.\n Gain "+setup.getRankGrowth(abilityRuntimeData, "linear", 1)+" arousal per turn on level up if your corruption is greater than or equal to 50.";
}
},
maxRank: 5
})>>
<<run setup.Ability_WarriorOfDuality.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_WarriorOfDuality.addBehaviour(
"update",
setup.AbilityTrigger.ON_LEVEL_UP,
function(abilityRuntimeData, abilityParams)
{
if(setup.getStatValue(abilityParams.self, "corruption") < 50)
{
setup.addToBaseStatValue(abilityParams.self, "hp", setup.getRankGrowth(abilityRuntimeData, "linear", 3))
}
else
{
setup.addToBaseStatValue(abilityParams.self, "arousalGain", setup.getRankGrowth(abilityRuntimeData, "linear", 1))
}
},
)>>
<<run setup.Ability_WarriorOfDuality.setUnlockableFromLevelScreen(true)>>
<<run setup.Ability_WarriorOfDuality.setUnlockCondition(
function(character){
return (State.variables.Level >= 3)
}
)>>
<<set setup.Ability_WarriorOfDuality.setCategory(setup.AbilityCategory.WARRIOR)>>
<<set setup.Ability_WarriorOfDuality.setGrade(setup.AbilityGrade.LOW)>><<set setup.Ability_WitheringVenom = setup.AbilityDataFactory.createAbilityData({
id: "Ability_WitheringVenom",
name: "Withering Venom",
description:function(character)
{
return "Active until your arousal becomes " + setup.getStatValue(character, "minArousal") + " or less.";
},
maxRank: 999
})>>
<<run setup.Ability_WitheringVenom.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_WitheringVenom.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams){
abilityRuntimeData.modifier.maxHPMods = {mod: setup.mod.REMOVE, value: setup.getRankGrowth(abilityRuntimeData, "linear", 10)};
}
)>>
<<run setup.Ability_WitheringVenom.addBehaviour(
"update",
setup.AbilityTrigger.ON_MIN_LUST,
function(abilityRuntimeData, abilityParams){
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
)>>
<<run setup.Ability_WitheringVenom.addBehaviour(
"remove",
setup.AbilityTrigger.ON_FIGHT_END,
undefined,
)>>
<<run setup.Ability_WitheringVenom.setFilter(setup.AbilityFilter.STATUSEFFECT)>><<set setup.Ability_LordOfCorruption = setup.AbilityDataFactory.createAbilityData({
id: "Ability_LordOfCorruption",
name: "Lord of Corruption",
description:function(character)
{
return "Corruption bends to your will, few have absorbed this much Corruption without losing their mind.\n 'Lustful Instincts', 'Corrupted Urges', 'Corrupted Remedy' and 'Infectious Lust' will replace random fight moves.";
},
maxRank: 1
})>>
<<run setup.Ability_LordOfCorruption.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_LordOfCorruption.addBehaviour(
"update",
setup.AbilityTrigger.ON_GAIN_CORRUPTION + setup.AbilityTrigger.ON_DAY_CHANGE + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var corruption = setup.getStatValue(abilityParams.self, "corruption");
if(corruption >= 2000)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.arousalGainMods = {mod: setup.mod.ADD, value: 20};
abilityRuntimeData.modifier.growthMods = {mod: setup.mod.ADD, value: 2};
abilityRuntimeData.modifier.corruptionPerDayMods = {mod: setup.mod.ADD, value: 1};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_LordOfCorruption.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_LostInCorruption = setup.AbilityDataFactory.createAbilityData({
id: "Ability_LostInCorruption",
name: "Lost in Corruption",
description:function(character)
{
return "The urge to grow is unsatiable, you are constantly on the verge of orgasm.\n 'Lustful Instincts', 'Corrupted Urges', 'Corrupted Remedy' and 'Infectious Lust' will replace random fight moves.";
},
maxRank: 1
})>>
<<run setup.Ability_LostInCorruption.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_LostInCorruption.addBehaviour(
"update",
setup.AbilityTrigger.ON_GAIN_CORRUPTION + setup.AbilityTrigger.ON_DAY_CHANGE + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var corruption = setup.getStatValue(abilityParams.self, "corruption");
if(corruption >= setup.CorruptionComparators.CORRUPT && corruption < 2000)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.arousalGainMods = {mod: setup.mod.ADD, value: 12};
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: 12};
abilityRuntimeData.modifier.growthMods = {mod: setup.mod.ADD, value: 1};
abilityRuntimeData.modifier.corruptionPerDayMods = {mod: setup.mod.REMOVE, value: 1};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_LostInCorruption.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_MajorCorruption = setup.AbilityDataFactory.createAbilityData({
id: "Ability_MajorCorruption",
name: "Major Corruption",
description:function(character)
{
return "Very high amounts of Corruption flows through your veins.\n 'Lustful Instincts' and 'Corrupted Urges' will replace random fight moves.";
},
maxRank: 1
})>>
<<run setup.Ability_MajorCorruption.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_MajorCorruption.addBehaviour(
"update",
setup.AbilityTrigger.ON_GAIN_CORRUPTION + setup.AbilityTrigger.ON_DAY_CHANGE + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var corruption = setup.getStatValue(abilityParams.self, "corruption");
if(corruption >= setup.CorruptionComparators.NEUTRAL && corruption < setup.CorruptionComparators.TAINTED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.arousalGainMods = {mod: setup.mod.ADD, value: 5};
abilityRuntimeData.modifier.growthMods = {mod: setup.mod.ADD, value: 0.5};
abilityRuntimeData.modifier.corruptionPerDayMods = {mod: setup.mod.REMOVE, value: 2};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_MajorCorruption.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_MinorCorruption = setup.AbilityDataFactory.createAbilityData({
id: "Ability_MinorCorruption",
name: "Minor Corruption",
description:function(character)
{
return "A substantial amount of Corruption flows within you.\n 'Lustful Instincts' will replace random fight moves.";
},
maxRank: 1
})>>
<<run setup.Ability_MinorCorruption.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_MinorCorruption.addBehaviour(
"update",
setup.AbilityTrigger.ON_GAIN_CORRUPTION + setup.AbilityTrigger.ON_DAY_CHANGE + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var corruption = setup.getStatValue(abilityParams.self, "corruption");
if(corruption >= setup.CorruptionComparators.PURE && corruption < setup.CorruptionComparators.NEUTRAL)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.arousalGainMods = {mod: setup.mod.ADD, value: 2};
abilityRuntimeData.modifier.growthMods = {mod: setup.mod.ADD, value: 0.25};
abilityRuntimeData.modifier.corruptionPerDayMods = {mod: setup.mod.REMOVE, value: 2.5};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_MinorCorruption.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_OverwhelmingCorruption = setup.AbilityDataFactory.createAbilityData({
id: "Ability_OverwhelmingCorruption",
name: "Overwhelming Corruption",
description:function(character)
{
return "Corruption overwhelms every part of you.\n 'Lustful Instincts', 'Corrupted Urges' and 'Corrupted Remedy' will replace random fight moves.";
},
maxRank: 1
})>>
<<run setup.Ability_OverwhelmingCorruption.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_OverwhelmingCorruption.addBehaviour(
"update",
setup.AbilityTrigger.ON_GAIN_CORRUPTION + setup.AbilityTrigger.ON_DAY_CHANGE + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var corruption = setup.getStatValue(abilityParams.self, "corruption");
if(corruption >= setup.CorruptionComparators.TAINTED && corruption < setup.CorruptionComparators.CORRUPT)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.arousalGainMods = {mod: setup.mod.ADD, value: 7};
abilityRuntimeData.modifier.growthMods = {mod: setup.mod.ADD, value: 1};
abilityRuntimeData.modifier.corruptionPerDayMods = {mod: setup.mod.REMOVE, value: 1.5};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_OverwhelmingCorruption.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_ProcessingCorruption = setup.AbilityDataFactory.createAbilityData({
id: "Ability_ProcessingCorruption",
name: "Processing Corruption",
description:function(character, abilityRuntimeData)
{
if(abilityRuntimeData != undefined)
{
let displayString = "You have been exposed to Corruption.\n";
if(character.info.accumulatedCorruption > 0)
{
displayString += "You will gain "+character.info.accumulatedCorruption+" Corruption next time you rest.";
}
return displayString
}
},
maxRank: 1
})>>
<<run setup.Ability_ProcessingCorruption.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined,
)>>
<<run setup.Ability_ProcessingCorruption.addBehaviour(
"update",
setup.AbilityTrigger.ON_GAIN_CORRUPTION + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
if(abilityParams.self.info.accumulatedCorruption + abilityParams.gainedCorruption > 0)
{
abilityRuntimeData.isActive = true;
abilityParams.self.info.accumulatedCorruption += abilityParams.gainedCorruption;
}
else
{
abilityRuntimeData.isActive = false;
abilityParams.self.info.accumulatedCorruption = 0;
}
}
)>>
<<run setup.Ability_ProcessingCorruption.addBehaviour(
"update",
setup.AbilityTrigger.ON_DAY_CHANGE,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.isActive == true)
{
if(abilityParams.self.info.accumulatedCorruption <= 0)
{
abilityRuntimeData.isActive = false;
}
}
}
)>>
<<run setup.Ability_ProcessingCorruption.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Ability_Uncorrupted = setup.AbilityDataFactory.createAbilityData({
id: "Ability_Uncorrupted",
name: "Uncorrupted",
description:function(character)
{
return "Your body processes Corruption normally.";
},
maxRank: 1
})>>
<<run setup.Ability_Uncorrupted.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
undefined
)>>
<<run setup.Ability_Uncorrupted.addBehaviour(
"update",
setup.AbilityTrigger.ON_GAIN_CORRUPTION + setup.AbilityTrigger.ON_DAY_CHANGE + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
var corruption = setup.getStatValue(abilityParams.self, "corruption");
if(corruption < 25)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.corruptionPerDayMods = {mod: setup.mod.REMOVE, value: 2.5};
}
else
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.modifier = setup.ModifierFactory.createModifier(
{
abilityIndex: abilityRuntimeData.abilityDataIndex
});
}
}
)>>
<<run setup.Ability_Uncorrupted.setFilter(setup.AbilityFilter.ALTERATION)>><<set setup.Achievement_Abomination = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_Abomination",
name: "Abomination",
description:function(character)
{
return "Whatever you once were no longer matters...";
},
maxRank: 1
})>>
<<set setup.Achievement_Abomination.isAchievement = true>>
<<set setup.Achievement_Abomination.achievementInfo = "Become an Abomination.">>
<<run setup.Achievement_Abomination.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Achievement_Abomination.addBehaviour(
"update",
setup.AbilityTrigger.ON_ANATOMY_CHANGE,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
return;
}
if(abilityParams.self.id != "CharacterSheet_Player")
{
return;
}
if(abilityParams.self.info.raceId == setup.RacePool.ABOMINATION.id)
{
setup.completeAchievement("Achievement_Abomination");
}
}
)>>
<<run setup.Achievement_Abomination.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.growthMods = {mod: setup.mod.ADD, value: 0.05};
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: 0.2};
}
}
)>><<set setup.Achievement_AscendedPrisoner = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_AscendedPrisoner",
name: "Ascended Prisoner",
description:function(character)
{
return "The Lost Prisoner has been transformed into a godlike beast by your hands.";
},
maxRank: 1
})>>
<<set setup.Achievement_AscendedPrisoner.isAchievement = true>>
<<set setup.Achievement_AscendedPrisoner.achievementInfo = "Transform a prisoner into a titanic beast.">>
<<run setup.Achievement_AscendedPrisoner.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Achievement_AscendedPrisoner.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.arousalGainMods = {mod: setup.mod.ADD, value: 5};
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: 0.2};
}
}
)>><<set setup.Achievement_BaptismInCorruption = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_BaptismInCorruption",
name: "Baptism In Corruption",
description:function(character)
{
return "Another one joins the cause, another one sired into infinite lust.";
},
maxRank: 1
})>>
<<set setup.Achievement_BaptismInCorruption.isAchievement = true>>
<<set setup.Achievement_BaptismInCorruption.achievementInfo = "Make an opponent reach over 150 Corruption.">>
<<run setup.Achievement_BaptismInCorruption.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Achievement_BaptismInCorruption.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.arousalGainMods = {mod: setup.mod.ADD, value: 10};
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: 0.2};
}
}
)>><<set setup.Achievement_BearerOfTheEye = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_BearerOfTheEye",
name: "Bearer of the Eye",
description:function(character)
{
return "The Eye of the Void has been restored, making you able to witstand Nyx's influence.";
},
maxRank: 1
})>>
<<set setup.Achievement_BearerOfTheEye.isAchievement = true>>
<<set setup.Achievement_BearerOfTheEye.achievementInfo = "Restore the Eye of the Void.">>
<<run setup.Achievement_BearerOfTheEye.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Achievement_BearerOfTheEye.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: 0.6};
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: 0.6};
}
}
)>><<set setup.Achievement_CockRingOfTheBind = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_CockRingOfTheBind",
name: "Cock Ring of the Bind",
description:function(character)
{
return "You have dominated the Bind, and it now vows to turn you into a dominant warrior.";
},
maxRank: 1
})>>
<<set setup.Achievement_CockRingOfTheBind.isAchievement = true>>
<<set setup.Achievement_CockRingOfTheBind.achievementInfo = "Completely dominate the spirit of the ring.">>
<<run setup.Achievement_CockRingOfTheBind.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Achievement_CockRingOfTheBind.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: 0.2}
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: 0.2};
}
}
)>><<set setup.Achievement_CollarOfTheBind = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_CollarOfTheBind",
name: "Collar of the Bind",
description:function(character)
{
return "You have submitted to the Bind. His presence within your soul is ever present.";
},
maxRank: 1
})>>
<<set setup.Achievement_CollarOfTheBind.isAchievement = true>>
<<set setup.Achievement_CollarOfTheBind.achievementInfo = "Completely submit to the spirit of the ring.">>
<<run setup.Achievement_CollarOfTheBind.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Achievement_CollarOfTheBind.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: 0.2}
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: 0.2};
}
}
)>><<set setup.Achievement_DamnatoryKnowledge = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_DamnatoryKnowledge",
name: "Damnatory Knowledge",
description:function(character)
{
return "Kanathar has learned about the location of The Black Sun.";
},
maxRank: 1
})>>
<<set setup.Achievement_DamnatoryKnowledge.isAchievement = true>>
<<set setup.Achievement_DamnatoryKnowledge.achievementInfo = "Spread forbidden knowledge to your master.">>
<<run setup.Achievement_DamnatoryKnowledge.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Achievement_DamnatoryKnowledge.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.arousalGainMods = {mod: setup.mod.ADD, value: 5};
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: 0.2};
}
}
)>><<set setup.Achievement_EndlessStruggle = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_EndlessStruggle",
name: "Endless Struggle",
description:function(character)
{
return "You have bested Ethrex after his ascension, even though the result remains the same.";
},
maxRank: 1
})>>
<<set setup.Achievement_EndlessStruggle.isAchievement = true>>
<<set setup.Achievement_EndlessStruggle.achievementInfo = "Defeated the true God of Lust at least once.">>
<<run setup.Achievement_EndlessStruggle.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Achievement_EndlessStruggle.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.arousalGainMods = {mod: setup.mod.ADD, value: 5};
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: 0.8};
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: 0.8};
}
}
)>><<set setup.Achievement_ExplorerOfCorruptedDepths = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_ExplorerOfCorruptedDepths",
name: "Explorer of Corrupted Depths",
description:function(character)
{
return "You have experienced all of Nyx's twisted challenges.";
},
maxRank: 1
})>>
<<set setup.Achievement_ExplorerOfCorruptedDepths.isAchievement = true>>
<<set setup.Achievement_ExplorerOfCorruptedDepths.achievementInfo = "Complete every room of Nyx's castle.">>
<<run setup.Achievement_ExplorerOfCorruptedDepths.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Achievement_ExplorerOfCorruptedDepths.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: 0.2};
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: 0.2};
}
}
)>><<set setup.Achievement_GodAmongstMen = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_GodAmongstMen",
name: "God Amongst Men",
description:function(character)
{
return "The gods are constantly thinking about you. Partially out of interest, partially out of fear.";
},
maxRank: 1
})>>
<<set setup.Achievement_GodAmongstMen.isAchievement = true>>
<<set setup.Achievement_GodAmongstMen.achievementInfo = "Reach level 50.">>
<<run setup.Achievement_GodAmongstMen.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Achievement_GodAmongstMen.addBehaviour(
"update",
setup.AbilityTrigger.ON_LEVEL_UP + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
return;
}
if(State.variables.Level >= 50)
{
setup.completeAchievement("Achievement_GodAmongstMen");
}
}
)>>
<<run setup.Achievement_GodAmongstMen.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: 0.8}
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: 0.8};
}
}
)>><<set setup.Achievement_HostOfTheSpawns = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_HostOfTheSpawns",
name: "Host of the Spawns",
description:function(character)
{
return "They are constantly pleasuring you, begging you to turn into a monstrous beast.";
},
maxRank: 1
})>>
<<set setup.Achievement_HostOfTheSpawns.isAchievement = true>>
<<set setup.Achievement_HostOfTheSpawns.achievementInfo = "Have any character embrace 5 spawns of Nyx.">>
<<run setup.Achievement_HostOfTheSpawns.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Achievement_HostOfTheSpawns.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.arousalGainMods = {mod: setup.mod.ADD, value: 10};
abilityRuntimeData.modifier.minArousalMods = {mod: setup.mod.ADD, value: 5};
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: 0.2};
}
}
)>><<set setup.Achievement_IncompleteMemories = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_IncompleteMemories",
name: "Incomplete Memories",
description:function(character)
{
return "You have crossed the most travelled path, even if its destination is still out of reach. You gain the Herald's Devotion fight move.";
},
maxRank: 1
})>>
<<set setup.Achievement_IncompleteMemories.isAchievement = true>>
<<set setup.Achievement_IncompleteMemories.achievementInfo = "Reach the end of the main story path.">>
<<run setup.Achievement_IncompleteMemories.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Achievement_IncompleteMemories.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: 0.2}
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: 0.2};
abilityRuntimeData.modifier.fightMoveIDsMods = {mod: setup.mod.ADD, value: [setup.FightMove_HeraldsDevotion.id]};
}
}
)>><<set setup.Achievement_LordOfTheSpawns = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_LordOfTheSpawns",
name: "Lord of the Spawns",
description:function(character)
{
return "Their need is now your own. They must grow... They must spread...";
},
maxRank: 1
})>>
<<set setup.Achievement_LordOfTheSpawns.isAchievement = true>>
<<set setup.Achievement_LordOfTheSpawns.achievementInfo = "Take in 15 spawns of Nyx.">>
<<run setup.Achievement_LordOfTheSpawns.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Achievement_LordOfTheSpawns.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.arousalGainMods = {mod: setup.mod.ADD, value: 20};
abilityRuntimeData.modifier.minArousalMods = {mod: setup.mod.ADD, value: 10};
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: 0.2};
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: 0.2}
}
}
)>><<set setup.Achievement_MasterOfTheBarrens = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_MasterOfTheBarrens",
name: "Master of the Barrens",
description:function(character)
{
return "You know the Barrens inside and out.";
},
maxRank: 1
})>>
<<set setup.Achievement_MasterOfTheBarrens.isAchievement = true>>
<<set setup.Achievement_MasterOfTheBarrens.achievementInfo = "Accomplish 100 expeditions.">>
<<run setup.Achievement_MasterOfTheBarrens.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Achievement_MasterOfTheBarrens.addBehaviour(
"update",
setup.AbilityTrigger.ON_DAY_CHANGE + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
return;
}
if(State.variables.Expedition >= 100)
{
setup.completeAchievement("Achievement_MasterOfTheBarrens");
}
}
)>>
<<run setup.Achievement_MasterOfTheBarrens.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.maxStaminaMods = {mod: setup.mod.ADD, value: 10}
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: 0.2}
}
}
)>><<set setup.Achievement_MemoriesOfDemonicAscent = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_MemoriesOfDemonicAscent",
name: "Memories of Demonic Ascent",
description:function(character)
{
return "Demonic instincts burn within your soul.";
},
maxRank: 1
})>>
<<set setup.Achievement_MemoriesOfDemonicAscent.isAchievement = true>>
<<set setup.Achievement_MemoriesOfDemonicAscent.achievementInfo = "Merge with Kanathar as he ascends into a corrupted god.">>
<<run setup.Achievement_MemoriesOfDemonicAscent.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Achievement_MemoriesOfDemonicAscent.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.maxHPMods = {mod: setup.mod.ADD, value: 15};
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: 0.5}
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: 0.2};
}
}
)>><<set setup.Achievement_MemoriesOfEthrex = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_MemoriesOfEthrex",
name: "Memories of Ethrex",
description:function(character)
{
return "A betrayal that doomed the world.";
},
maxRank: 1
})>>
<<set setup.Achievement_MemoriesOfEthrex.isAchievement = true>>
<<set setup.Achievement_MemoriesOfEthrex.achievementInfo = "Lead Ethrex to his ultimate ascension.">>
<<run setup.Achievement_MemoriesOfEthrex.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Achievement_MemoriesOfEthrex.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.maxHPMods = {mod: setup.mod.ADD, value: 30};
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: 0.6};
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: 0.5};
}
}
)>><<set setup.Achievement_MemoriesOfFerro = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_MemoriesOfFerro",
name: "Memories of Ferro",
description:function(character)
{
return "Apex predators now loom over all.";
},
maxRank: 1
})>>
<<set setup.Achievement_MemoriesOfFerro.isAchievement = true>>
<<set setup.Achievement_MemoriesOfFerro.achievementInfo = "Join the prisoner as the new apex predators of the Barrens.">>
<<run setup.Achievement_MemoriesOfFerro.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Achievement_MemoriesOfFerro.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: 15};
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: 0.6};
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: 0.5};
}
}
)>><<set setup.Achievement_MemoriesOfKanathar = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_MemoriesOfKanathar",
name: "Memories of Kanathar",
description:function(character)
{
return "The name of the demon god now transcends all times and memories.";
},
maxRank: 1
})>>
<<set setup.Achievement_MemoriesOfKanathar.isAchievement = true>>
<<set setup.Achievement_MemoriesOfKanathar.achievementInfo = "Allow Kanathar to ascend into a corrupted god.">>
<<run setup.Achievement_MemoriesOfKanathar.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Achievement_MemoriesOfKanathar.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.maxHPMods = {mod: setup.mod.ADD, value: 15};
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: 0.5}
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: 0.2};
}
}
)>><<set setup.Achievement_MemoriesOfTheLost = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_MemoriesOfTheLost",
name: "Memories of the Lost",
description:function(character)
{
return "The Herald dared try to stop you, an act that led to the ascension of his worst nightmare.";
},
maxRank: 1
})>>
<<set setup.Achievement_MemoriesOfTheLost.isAchievement = true>>
<<set setup.Achievement_MemoriesOfTheLost.achievementInfo = "Overcome the Herald.">>
<<run setup.Achievement_MemoriesOfTheLost.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Achievement_MemoriesOfTheLost.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.arousalGainMods = {mod: setup.mod.ADD, value: 10};
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: 0.2}
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: 0.2};
}
}
)>><<set setup.Achievement_MemoriesOfTheMinotaur = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_MemoriesOfTheMinotaur",
name: "Memories of the Minotaur",
description:function(character)
{
return "Tiadane has ascended. All shall bear witness to your loyal servant.";
},
maxRank: 1
})>>
<<set setup.Achievement_MemoriesOfTheMinotaur.isAchievement = true>>
<<set setup.Achievement_MemoriesOfTheMinotaur.achievementInfo = "Bring the power of Nyx to the minotaur.">>
<<run setup.Achievement_MemoriesOfTheMinotaur.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Achievement_MemoriesOfTheMinotaur.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.maxHPMods = {mod: setup.mod.ADD, value: 15};
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: 0.5}
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: 0.2};
}
}
)>><<set setup.Achievement_MightOfAugwult = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_MightOfAugwult",
name: "Might of Augwult",
description:function(character)
{
return "Your strength attracts the attention of powerful forces beyond your reach.";
},
maxRank: 1
})>>
<<set setup.Achievement_MightOfAugwult.isAchievement = true>>
<<set setup.Achievement_MightOfAugwult.achievementInfo = "Reach 200 Strength.">>
<<run setup.Achievement_MightOfAugwult.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Achievement_MightOfAugwult.addBehaviour(
"update",
setup.AbilityTrigger.ON_STAT_CHANGE,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
return;
}
if(setup.getStatValue(State.variables.CharacterSheet_Player, "strength") >= 200)
{
setup.completeAchievement("Achievement_MightOfAugwult");
}
}
)>>
<<run setup.Achievement_MightOfAugwult.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: 30};
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: 0.2}
}
}
)>><<set setup.Achievement_OffTheDeepEnd = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_OffTheDeepEnd",
name: "Off The Deep End",
description:function(character)
{
return "You've been warned and have seen the signs. <br>It only made your descent even sweeter.";
},
maxRank: 1
})>>
<<set setup.Achievement_OffTheDeepEnd.isAchievement = true>>
<<set setup.Achievement_OffTheDeepEnd.achievementInfo = "Reach 200 Corruption.">>
<<run setup.Achievement_OffTheDeepEnd.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Achievement_OffTheDeepEnd.addBehaviour(
"update",
setup.AbilityTrigger.ON_GAIN_CORRUPTION + setup.AbilityTrigger.ON_DAY_CHANGE + setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
return;
}
if(abilityParams.self.id != "CharacterSheet_Player")
{
return;
}
var corruption = setup.getStatValue(abilityParams.self, "corruption");
if(corruption >= 200)
{
setup.completeAchievement("Achievement_OffTheDeepEnd");
}
}
)>>
<<run setup.Achievement_OffTheDeepEnd.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.arousalGainMods = {mod: setup.mod.ADD, value: 5};
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: 0.2};
}
}
)>><<set setup.Achievement_PureOfHeart = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_PureOfHeart",
name: "Pure of Heart",
description:function(character)
{
return "Never fall to corruption in your travels.";
},
maxRank: 1
})>>
<<set setup.Achievement_PureOfHeart.isAchievement = true>>
<<set setup.Achievement_PureOfHeart.achievementInfo = "Defeat the final boss without ever reaching "+setup.CorruptionComparators.DECENT+" Corruption.">>
<<run setup.Achievement_PureOfHeart.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.blackboard = {
"purity": true,
}
}
)>>
<<run setup.Achievement_PureOfHeart.addBehaviour(
"update",
setup.AbilityTrigger.ON_GAIN_CORRUPTION + setup.AbilityTrigger.ON_DAY_CHANGE,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
return;
}
if(abilityRuntimeData.blackboard && abilityRuntimeData.blackboard.purity == true)
{
if(setup.getStatValue(State.variables.CharacterSheet_Player, "corruption") >= setup.CorruptionComparators.DECENT)
{
abilityRuntimeData.blackboard.purity = false;
}
}
}
)>>
<<run setup.Achievement_PureOfHeart.addBehaviour(
"update",
setup.AbilityTrigger.ON_COMPLETE_GAME,
function(abilityRuntimeData, abilityParams)
{
if (abilityRuntimeData.blackboard && abilityRuntimeData.blackboard.purity == true)
{
setup.completeAchievement("Achievement_PureOfHeart");
}
}
)>>
<<run setup.Achievement_PureOfHeart.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: 0.5};
abilityRuntimeData.modifier.corruptionMods = {mod: setup.mod.MULTIPLYNEG, value: 0.2};
}
}
)>><<set setup.Achievement_Redemption = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_Redemption",
name: "Redemption",
description:function(character)
{
return "Torgar has rejected Corruption and has vowed to help build a better world.";
},
maxRank: 1
})>>
<<set setup.Achievement_Redemption.isAchievement = true>>
<<set setup.Achievement_Redemption.achievementInfo = "Help a friend find inner peace.">>
<<run setup.Achievement_Redemption.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Achievement_Redemption.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: 0.2}
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: 0.2};
abilityRuntimeData.modifier.fightMoveIDsMods = {mod: setup.mod.ADD, value: [setup.FightMove_TonicOfStillness.id]}
}
}
)>><<set setup.Achievement_Resolute = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_Resolute",
name: "Resolute",
description:function(character)
{
return "Experience the Barrens without falling to its corruption.";
},
maxRank: 1
})>>
<<set setup.Achievement_Resolute.isAchievement = true>>
<<set setup.Achievement_Resolute.achievementInfo = "Reach level 10 without ever reaching "+setup.CorruptionComparators.DECENT+" Corruption.">>
<<run setup.Achievement_Resolute.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.blackboard = {
purity: true
}
}
)>>
<<run setup.Achievement_Resolute.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.blackboard.purity = true;
}
)>>
<<run setup.Achievement_Resolute.addBehaviour(
"update",
setup.AbilityTrigger.ON_LEVEL_UP,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
return;
}
if(abilityRuntimeData.blackboard && abilityRuntimeData.blackboard.purity == true && State.variables.Level >= 10)
{
setup.completeAchievement("Achievement_Resolute");
}
}
)>>
<<run setup.Achievement_Resolute.addBehaviour(
"update",
setup.AbilityTrigger.ON_GAIN_CORRUPTION + setup.AbilityTrigger.ON_DAY_CHANGE,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
return;
}
if(abilityRuntimeData.blackboard && abilityRuntimeData.blackboard.purity == true)
{
if(setup.getStatValue(State.variables.CharacterSheet_Player, "corruption") >= setup.CorruptionComparators.DECENT)
{
abilityRuntimeData.blackboard.purity = false;
}
}
}
)>>
<<run setup.Achievement_Resolute.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: 0.3};
}
}
)>><<set setup.Achievement_SafePassage = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_SafePassage",
name: "Safe Passage",
description:function(character)
{
return "Tiadane's name has spread beyond the confines of time and space.";
},
maxRank: 1
})>>
<<set setup.Achievement_SafePassage.isAchievement = true>>
<<set setup.Achievement_SafePassage.achievementInfo = "Skip the minotaur fight by telling him the right name.">>
<<run setup.Achievement_SafePassage.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Achievement_SafePassage.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: 10};
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: 0.3};
}
}
)>><<set setup.Achievement_ShiftingIdeals = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_ShiftingIdeals",
name: "Shifting Ideals",
description:function(character)
{
return "Your ideals have changed. Stand proud of what you've become.";
},
maxRank: 1
})>>
<<set setup.Achievement_ShiftingIdeals.isAchievement = true>>
<<set setup.Achievement_ShiftingIdeals.achievementInfo = "Encounter both sides of the doppleganger.">>
<<run setup.Achievement_ShiftingIdeals.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.blackboard = {};
}
)>>
<<run setup.Achievement_ShiftingIdeals.addBehaviour(
"update",
setup.AbilityTrigger.ON_FIGHT_END,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState != setup.AchievementState.ACTIVATED && abilityParams.target.id == "CharacterSheet_Doppleganger")
{
if(setup.MQ002_Manor_IsCorruptedInManor(State.variables.CharacterSheet_Player))
{
abilityRuntimeData.blackboard.foughtPure = true;
}
else
{
abilityRuntimeData.blackboard.foughtCorrupted = true;
}
if(abilityRuntimeData.blackboard.foughtPure == true && abilityRuntimeData.blackboard.foughtCorrupted == true)
{
setup.completeAchievement("Achievement_ShiftingIdeals");
}
}
}
)>>
<<run setup.Achievement_ShiftingIdeals.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: 0.2};
abilityRuntimeData.modifier.essenceMultiplierMods = {mod: setup.mod.ADD, value: 0.2};
}
}
)>><<set setup.Achievement_SubmissiveFighter = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_SubmissiveFighter",
name: "Submissive Fighter",
description:function(character)
{
return "Is it really losing when there's so much to gain from it?";
},
maxRank: 1
})>>
<<set setup.Achievement_SubmissiveFighter.isAchievement = true>>
<<set setup.Achievement_SubmissiveFighter.achievementInfo = "Lose a battle to 5 different opponents.">>
<<run setup.Achievement_SubmissiveFighter.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
abilityRuntimeData.blackboard = {};
}
)>>
<<run setup.Achievement_SubmissiveFighter.addBehaviour(
"update",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.blackboard.lostEncounters = [];
}
)>>
<<run setup.Achievement_SubmissiveFighter.addBehaviour(
"update",
setup.AbilityTrigger.ON_FIGHT_BATTLE_LOST,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
return;
}
let isUnique = true;
for(let i = 0; i < abilityRuntimeData.blackboard.lostEncounters.length; i++)
{
if(abilityRuntimeData.blackboard.lostEncounters[i] == abilityParams.target.id)
{
isUnique = false;
break;
}
}
if(isUnique == true)
{
abilityRuntimeData.blackboard.lostEncounters.push(abilityParams.target.id);
}
if(abilityRuntimeData.blackboard.lostEncounters.length >= 5)
{
setup.completeAchievement("Achievement_SubmissiveFighter");
}
}
)>>
<<run setup.Achievement_SubmissiveFighter.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.arousalGainMods = {mod: setup.mod.ADD, value: 5};
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: 0.2}
}
}
)>><<set setup.Achievement_WordOfPower = setup.AbilityDataFactory.createAbilityData({
id: "Achievement_WordOfPower",
name: "Word of Power",
description:function(character)
{
return "Kanathar's name is boundless, and it forever seeks to ascend its frail imp hosts into gods.";
},
maxRank: 1
})>>
<<set setup.Achievement_WordOfPower.isAchievement = true>>
<<set setup.Achievement_WordOfPower.achievementInfo = "Spread the name of a demon god.">>
<<run setup.Achievement_WordOfPower.addBehaviour(
"start",
setup.AbilityTrigger.ON_ACQUIRE,
function(abilityRuntimeData, abilityParams)
{
abilityRuntimeData.isActive = false;
}
)>>
<<run setup.Achievement_WordOfPower.addBehaviour(
"update",
setup.AbilityTrigger.ON_NEW_GAME_PLUS,
function(abilityRuntimeData, abilityParams)
{
if(abilityRuntimeData.achievementState == setup.AchievementState.ACTIVATED)
{
abilityRuntimeData.isActive = true;
abilityRuntimeData.modifier.strengthMods = {mod: setup.mod.ADD, value: 10};
abilityRuntimeData.modifier.xpMultiplierMods = {mod: setup.mod.ADD, value: 0.3};
}
}
)>>/*Initialization*/
<<run setup.stopAllRealizationPackages()>>
<<run setup.stopSoundActions();>>
<<run setup.variableInitializer.initializeFightVariables($Encounter_Target)>>
<<done>><<run setup.setCarousel()>><</done>>
<<set setup.playerHistory = {chains:0, moveCount:0, history: []};>>
<<set $CharacterSheet_Player.fight.variables.history = "playerHistory">>
<<set setup.targetHistory = {chains:0, moveCount:0, history: []};>>
<<set $Encounter_Target.fight.variables.history = "targetHistory">>
<<set setup.teammateHistory = {chains:0, moveCount:0, history: []};>>
<<if $CharacterSheet_Player.fight.teammate != undefined>>
<<set State.variables[$CharacterSheet_Player.fight.teammate].fight.variables.history = "teammateHistory">>
<</if>>
<<run setup.fightStart($CharacterSheet_Player, $Encounter_Target)>>
<<run setup.broadcastFightFlowTrigger($CharacterSheet_Player, $Encounter_Target, setup.AbilityTrigger.ON_FIGHT_START)>>
<<run setup.preAttacksUpdate($CharacterSheet_Player, $Encounter_Target)>>
<<done>><<run setup.updateFightStatus($CharacterSheet_Player, $Encounter_Target)>><</done>>
<<include FightLogic_EnemyInfo>>
<div id="timelineContainer">
<<include FightLogic_Timeline>>
</div>
/* <div id="playerReport"></div>
<div id="enemyReport"></div> */
<div id="combinedReport">
<div id="playerReport"></div>
<div id="enemyReport"></div>
</div>
<div id="fightLoss" style="visibility: hidden">[[You Lose->FightOutcome_Loss]]</div>
<div id="fightWin" style="visibility: hidden">[[You Win->FightOutcome_Win]]</div>
<div id="fightDraw" style="visibility: hidden">[[You Win->FightOutcome_Draw]]</div>
<<include FightLogic_Moves>>
<label id="inspectEnemy">
<<link 'Inspect Enemy'>>
<<run setup.showInspectWindow($CharacterSheet_Player, $Encounter_Target)>>
<</link>>
</label><div id="enemyInfo" class="enemyInfoClass"></div><<include FightLogic_PlayerTimeline>>
<<done>><<run setup.setupTimeline($CharacterSheet_Player, "playerTimeline", setup.playerHistory);>><</done>>
<<include FightLogic_EnemyTimeline>>
<<done>><<run setup.setupTimeline($Encounter_Target, "enemyTimeline", setup.targetHistory);>><</done>>/* <div id="lineCont"> */
/* <div id="chainsCount"><span id="chainsLabel">0</span><div class="FightSkillActionCostsFirstLink"></div><div class="FightSkillActionCostsMiddleLink"></div><div class="FightSkillActionCostsLastLink"></div></div> */
<div class="line"></div>
<div class="circleSpan"></div>
/* </div> */
<div class="mainCont"></div><div id="playerTimeline" class="TimelineContainer">
<<include FightLogic_TimelineBase>>
</div><div id="enemyTimeline" class="TimelineContainer">
<<include FightLogic_TimelineBase>>
</div><div class='inspectButton teammate'><<link 'Inspect Partner'>><<run setup.showInspectWindow($CharacterSheet_Player, State.variables[$CharacterSheet_Player.fight.teammate])>><</link>></div>
<div id="teammateTimeline" class="TimelineContainer">
<<include FightLogic_TimelineBase>>
</div><div id="movesContainer">
<div class="ComboFightMovesContainer">
<<include FightLogic_DrawCard>>
<<include FightLogic_DrawCard>>
<<include FightLogic_DrawCard>>
</div>
<div class="SpecialFightMovesContainer">
<<include FightLogic_DrawCard>>
<<include FightLogic_DrawCard>>
</div>
</div>
<<done>><<run setup.buildCardsData()>><</done>><<include FightLogic_DummyCard>><<nobr>>
<div class="FullCard" id="cardUnset">
<div class="FightSkillCardHighlight">
<span class="FightSkillCard">
<div id="FightSkillHeader" class="offensive">
<div class="FightSkillHeaderStatIconRow">
<div class="FightSkillCardCritChance Corrupt0" id="CardCritChance">
<span class="tooltip" id="StatModifierPositive">10
<span class="tooltipContainer">
<span class="tooltiptext">Critical Hit Chance<br><br>Modifiers:<br>Crit Chance Stat + 10
</span>
</span>
</span>
</div>
<div class="FightSkillCardAttackDamage Corrupt0" id="CardDamage">
<span class="tooltip" id="StatModifierPositive">5
<span class="tooltipContainer">
<span class="tooltiptext">Damage Value<br><br>Modifiers:<br>Strength Stat + 3<br>Multiplier + 70%<br>Bonus Damage + 3
</span>
</span>
</span>
</div>
</div>
</div>
<div class="comboMoveName" id="MoveName">Unarmed Strike</div>
<p id="FightSkillBody">A basic attack based on your own body strength.</p>
<div class="FightSkillActionCosts" id="CardActionCost">
<span class="tooltip">
<div class="FightSkillActionCostsNumber">2</div>
<span class="tooltipContainer">
Actions
<span class="tooltiptext">Action Cost<br>(Determines how many links this move needs in the Combo Chain)
</span>
</span>
</span>
</div>
</span>
</div>
</div>
<</nobr>>/*Initialization*/
<<if !$Encounter_Target.fight.variables.currentHP>>
<<run setup.stopAllRealizationPackages()>>
<<run setup.stopSoundActions();>>
<<run setup.variableInitializer.initializeFightVariables($Encounter_Target)>>
<<print $Encounter_Target.fight.encounterStartText >>
<<done>><<run setup.setCarousel()>><</done>>
<<run setup.aiFightStart()>>
<<run setup.broadcastFightFlowTrigger($CharacterSheet_Player, $Encounter_Target, setup.AbilityTrigger.ON_FIGHT_START)>>
<</if>>
<<set $RedrawCount = 0>>
<<set $AddSlotCount = 0>>
<<set $CharacterSheet_Player.fight.variables.currentStamina = setup.getStatValue($CharacterSheet_Player, "stamina")>>
<<run setup.preAttacksUpdate($CharacterSheet_Player, $Encounter_Target)>>
/*Attack Handling*/
<<if $Encounter_Target.fight.variables.currentFightMove && $CharacterSheet_Player.fight.variables.currentFightMove>>
<<if setup.canTeammateAct($CharacterSheet_Player, $Encounter_Target, setup.AttackTiming.BEFORE_PLAYER) == true>>
<<run setup.doAttack(State.variables[$CharacterSheet_Player.fight.teammate], $Encounter_Target) >>
<</if>>
<<if $FightComboStackIndexes.length != 0>>
<<run setup.doComboAttack($CharacterSheet_Player, $Encounter_Target) >>
<<else>>
<<run setup.doAttack($CharacterSheet_Player, $Encounter_Target) >>
<</if>>
<<if setup.canTeammateAct($CharacterSheet_Player, $Encounter_Target, setup.AttackTiming.BETWEEN_PLAYER_AND_ENEMY) == true>>
<<run setup.doAttack(State.variables[$CharacterSheet_Player.fight.teammate], $Encounter_Target) >>
<</if>>
<<run setup.doAttack($Encounter_Target, $CharacterSheet_Player) >>
<<if setup.canTeammateAct($CharacterSheet_Player, $Encounter_Target, setup.AttackTiming.AFTER_ENEMY) == true>>
<<run setup.doAttack(State.variables[$CharacterSheet_Player.fight.teammate], $Encounter_Target) >>
<</if>>
<</if>>
/*Check Max Arousal*/
<<print setup.updateArousal($CharacterSheet_Player) >>
<<if $CharacterSheet_Player.fight.teammate != undefined>>
<<print setup.updateArousal(State.variables[$CharacterSheet_Player.fight.teammate]) >>
<</if>>
<<print setup.updateArousal($Encounter_Target) >>
<<run setup.postAttacksAIUpdate($Encounter_Target)>>
/*Display*/
<<if setup.canTeammateAct($CharacterSheet_Player, $Encounter_Target, setup.AttackTiming.BEFORE_PLAYER) == true>>
<<print setup.displayFightTurnOutcome(State.variables[$CharacterSheet_Player.fight.teammate], $Encounter_Target) >>
<</if>>
<<print setup.displayFightTurnOutcome($CharacterSheet_Player, $Encounter_Target) >>
<<if setup.canTeammateAct($CharacterSheet_Player, $Encounter_Target, setup.AttackTiming.BETWEEN_PLAYER_AND_ENEMY) == true>>
<<print setup.displayFightTurnOutcome(State.variables[$CharacterSheet_Player.fight.teammate], $Encounter_Target) >>
<</if>>
<<print setup.displayFightTurnOutcome($Encounter_Target, $CharacterSheet_Player) >>
<<if setup.canTeammateAct($CharacterSheet_Player, $Encounter_Target, setup.AttackTiming.AFTER_ENEMY) == true>>
<<print setup.displayFightTurnOutcome(State.variables[$CharacterSheet_Player.fight.teammate], $Encounter_Target) >>
<</if>>
<<print setup.updateFightStatus($CharacterSheet_Player, $Encounter_Target) >>You win the fight. <<print setup.getFightReward($Encounter_Target, false)>>
<<include "Fight Outcome">>You lose the fight. <<print setup.getFightReward($Encounter_Target, true)>>
<<include "Fight Outcome">>You both fall down in exhaustion. Yet through sheer willpower, you manage to force yourself to slowly get on your feet.
<<include "Fight Outcome">><<nobr>>
<<if setup.hasLostFight($Encounter_Target)>>
<<print setup.onFightEnd($CharacterSheet_Player, $Encounter_Target)>>
<<print $Encounter_Target.fight.outcomePlayerWins>>
<<elseif setup.hasLostFight($CharacterSheet_Player)>>
<<print setup.onFightEnd($Encounter_Target, $CharacterSheet_Player)>>
<<print $Encounter_Target.fight.outcomePlayerLoses>>
<</if>>
<</nobr>>
/*Unset Fight Variables*/
<<set $FightTurn = 0>>
<<unset $RedrawCount>>
<<unset $AddSlotCount>>
<<run setup.broadcastFightFlowTrigger($CharacterSheet_Player, $Encounter_Target, setup.AbilityTrigger.ON_FIGHT_END)>>
<<run setup.saveFightAttributes($Encounter_Target)>>
<<unset $Display_Player_FightMoveOutcome,
$Encounter_Target,
$HasSymbiote>>
<<if $CachedTeammate != undefined>>
<<set $CharacterSheet_Player.fight.teammate = $CachedTeammate>>
<<unset $CachedTeammate>>
<</if>>
<<if $CharacterSheet_Player.fight.teammate != undefined>>
<<set State.variables[$CharacterSheet_Player.fight.teammate].fight.variables = $FightVariables>>
<</if>>
<<set $CharacterSheet_Player.fight.variables = $FightVariables>>
<<run setup.removeCarousel>><<set setup.FightMove_AbsorbEssence =
{
id: "FightMove_AbsorbEssence",
name: "Essence Surge",
preparation: function(character, target)
{
return character.info.name + "'s body suddenly glows in a bright green aura."
},
attackAttemptDesc: function(character, target)
{
return "The Essence in the air suddenly gathers around "+character.info.name+".";
},
attackHitDesc: function(character, target)
{
return "";
},
activationCondition: function(character, target)
{
return character.fight.variables.currentStamina >= this.staminaCost;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 0,
addon: 0,
}
return damageParam;
},
staminaCost: 0,
critMod: 0,
comboCost: 1,
skillStatsToDescriptionSpacing: 2,
skillDescription: "Absorb the Essence in the air. Grows in power the longer the fight lasts.",
skillType: "buff",
skillTheme: "buff",
additionalEffects: [setup.absorbEssenceEffects]
}>><<set setup.FightMove_Bash =
{
id: "FightMove_Bash",
name: "Bash",
preparation: function(character, target)
{
var flavourtext = setup.getFlavourBasedDescription(character, 'basicAttackPrepFlavour', 1)
if(flavourtext != undefined)
{
return character.info.name + " " + flavourtext
}
else
{
return character.info.name + " is getting ready to strike."
}
},
attackAttemptDesc: function(character, target)
{
var flavourtext = setup.getFlavourBasedDescription(character, 'bashAttackAttemptFlavour', 1)
return flavourtext
},
activationCondition: function(character, target)
{
return true;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 1,
addon: 4,
}
return damageParam;
},
staminaCost: 0,
critMod: 20,
comboCost: 2,
skillStatsToDescriptionSpacing: 2,
skillDescription: "A quick bash of your weapon's hilt with low stamina cost.",
skillType: "offensive",
skillTheme: "offensive",
additionalEffects: []
}>><<set setup.FightMove_Basic_Attack =
{
id: "FightMove_Basic_Attack",
name: "Unarmed Strike",
preparation: function(character, target)
{
var flavourtext = setup.getFlavourBasedDescription(character, 'basicAttackPrepFlavour', 1)
if(flavourtext != undefined)
{
return character.info.name + " " + flavourtext
}
else
{
return character.info.name + " is getting ready to strike."
}
},
attackAttemptDesc: function(character, target)
{
var flavourtext = setup.getFlavourBasedDescription(character, 'basicAttackAttemptFlavour', 1)
return flavourtext
},
activationCondition: function(character, target)
{
return true;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 0.7,
addon: 3,
}
return damageParam;
},
staminaCost: 0,
critMod: 0,
comboCost: 2,
skillStatsToDescriptionSpacing: 2,
skillDescription: "A basic attack based on your own body strength.",
skillType: "offensive",
skillTheme: "offensive",
additionalEffects: []
}>><<set setup.FightMove_ChargedStrike =
{
id: "FightMove_ChargedStrike",
name: "Charged Strike",
preparation: function(character, target)
{
if(this.currentStep == 0)
{
return character.info.name + " is channeling their strength for a powerful attack";
}
else
{
return character.info.name + " is charging at you for a massive attack!";
}
},
attackAttemptDesc: function(character, target)
{
return "With their body pulsating with strength, "+ character.info.name +" strikes you with a bone shattering attack!";
},
activationCondition: function(character, target)
{
return true;
},
currentStep: 0,
steps: 1,
dmg: function(character, target)
{
let damageParam =
{
multiplier: 1.5,
addon: 14,
}
return damageParam;
},
staminaCost: 0,
critMod: 0,
comboCost: 3,
skillDescription: "A bone shattering attack that takes a full turn to prepare.",
skillType: "offensive",
skillTheme: "offensive",
additionalEffects: [],
}>><<set setup.FightMove_ConsumeLost =
{
id: "FightMove_ConsumeLost",
name: "Consume Lost",
preparation: function(character, target)
{
return character.info.name + " grasps a nearby Lost."
},
attackAttemptDesc: function(character, target)
{
var his = setup.getPronoun(character,"pronounDepPos");
return character.info.name + " pulls the lost into his pecs.";
},
attackHitDesc: function(character, target)
{
var displayString = "The Lost moans as it is completely absorbed inside of "+character.info.name+". \n"
displayString += "His gargantuan muscles writhe and squirm as the mass of his worshippers builds on his own."
displayString += "His cock has grown "+ setup.getLength(9) + ".\n";
displayString += "His balls grow by "+ setup.getLength(3) + ".\n";
displayString += "His muscles expand ("+ setup.getLength(5) + ").\n";
displayString += "His body has become "+ setup.getLength(18) + " taller \n";
return displayString;
},
activationCondition: function(character, target)
{
return true;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 0,
addon: 0,
}
return damageParam;
},
staminaCost: 16,
critMod: 100,
comboCost: 3,
cooldown: 3,
skillStatsToDescriptionSpacing: 2,
skillDescription: "Consume a nearby Lost, adding their mass onto your own.",
skillType: "offensive",
skillTheme: "offensive",
unlearnable: true,
additionalEffects: [setup.consumeLost]
}>><<set setup.FightMove_CorruptedRemedy =
{
id: "FightMove_CorruptedRemedy",
name: "Corrupted Remedy",
preparation: function(character, target)
{
return character.info.name + " grins, as if their wounds were suddenly gone."
},
attackAttemptDesc: function(character, target)
{
return "Deep moans below out of "+character.info.name+" as they embrace the power that fuels their inevitable ascension. Corruption builds around their wound, closing gashes and healing bruises, rebuilding what is bound to grow into a god."
},
activationCondition: function(character, target)
{
return true;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 0,
addon: 0,
}
return damageParam;
},
staminaCost: 0,
critMod: 100,
comboCost: 3,
skillStatsToDescriptionSpacing: 2,
skillDescription: "No wound can reach a corrupted soul. Gain 5% of your corruption as health.",
skillType: "buff",
skillTheme: "corruption",
unlearnable: true,
additionalEffects: [setup.corruptedRemedyMove]
}>><<set setup.FightMove_CorruptedUrges =
{
id: "FightMove_CorruptedUrges",
name: "Corruptive Urges",
preparation: function(character, target)
{
return character.info.name + " muscles suddenly flex harder than ever."
},
attackAttemptDesc: function(character, target)
{
return "The world around "+character.info.name+" seems to warp, tainted by the endless need to be more. Their whole body flexes, feeding on the power of Corruption, growing more robust than the limits of mortal bodies. Then, against the sound of hardening muscles, a single word seeps out. 'More...'"
},
activationCondition: function(character, target)
{
return true;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 0,
addon: 0,
}
return damageParam;
},
staminaCost: 0,
critMod: 100,
comboCost: 2,
skillStatsToDescriptionSpacing: 3,
skillDescription: "Feast upon Corruption. Add 20% of your Corruption to your Strength",
skillType: "buff",
skillTheme: "corruption",
unlearnable: true,
additionalEffects: [setup.corruptedUrgesMove]
}>><<set setup.FightMove_CumDeluge =
{
id: "FightMove_CumDeluge",
name: "Deluge of Seed",
preparation: function(character, target)
{
return character.info.name + "'s balls churn with enough cum to completely flood their opponent.";
},
attackAttemptDesc: function(character, target)
{
var displayString = setup.processFlavours(State.variables.CharacterSheet_Player, character.info.name +" howls as another wave of pleasure washes over them. Their @[all|balls|one=pulses~more=pulse] with a mad fury before suddenly clenching.");
displayString += target.info.name +" can only stare up as the earth shake, nothing can prepare them from the incoming flood.";
displayString += setup.processFlavours(State.variables.CharacterSheet_Player, "From the high of orgasm, "+character.info.name+" aims their @[all|cocks|noverb] down to "+target.info.name+", completely drenching them in an overwhelming deluge of seed.");
return displayString;
},
activationCondition: function(character, target)
{
return true;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 1.4,
addon: 26,
}
return damageParam;
},
staminaCost: 30,
critMod: 20,
cooldown: 2,
comboCost: 3,
unique: true,
skillStatsToDescriptionSpacing: 2,
skillDescription: "Lowers the strength of your opponent.",
skillType: "offensive",
skillTheme: "offensive",
unlearnable: true,
additionalEffects: [setup.cumDeluge]
}>><<set setup.FightMove_Do_Nothing =
{
id: "FightMove_Do_Nothing",
name: "Do Nothing",
preparation: function(character, target)
{
var he = setup.getPronoun(character,"pronoun");
return character.info.name + " is not readying any attack. It does not look like "+he+" cares about the fight.";
},
attackAttemptDesc: function(character, target)
{
return character.info.name +" waits eagerly for what will come next.";
},
activationCondition: function(character, target)
{
return true;
},
doesNothing: true,
dmg: function(character, target)
{
let damageParam =
{
multiplier: 0,
addon: 0,
}
return damageParam;
},
staminaCost: 0,
critMod: 0,
comboCost: 1,
skillStatsToDescriptionSpacing: 1,
skillDescription: "Lets your opponent attack freely.",
skillType: "special",
skillTheme: "special",
unlearnable: true,
additionalEffects: []
}>>
<<set setup.FightMove_Submit_Completely =
{
id: "FightMove_Submit_Completely",
name: "Submit Completely",
preparation: function(character, target)
{
var he = setup.getPronoun(character,"pronoun");
return character.info.name + " surrenders themselves completely";
},
attackAttemptDesc: function(character, target)
{
return character.info.name + " surrenders themselves completely";
},
activationCondition: function(character, target)
{
if(character.fight.variables.cantSubmit)
{
return false;
}
return true;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 0,
addon: 0,
}
return damageParam;
},
staminaCost: 0,
critMod: 0,
comboCost: 1,
skillStatsToDescriptionSpacing: 1,
skillDescription: "Surrender yourself completely.",
skillType: "special",
skillTheme: "special",
unlearnable: true,
additionalEffects: [setup.surrender]
}>><<set setup.FightMove_DragonStrike =
{
id: "FightMove_DragonStrike",
name: "Dragon Strike",
preparation: function(character, target)
{
return character.info.name + "'s body glow in a powerful white hue.";
},
attackAttemptDesc: function(character, target)
{
return "With the energy of the parried attack filling " + character.info.name +"'s body, they charge forward with their fist glowing in a blinding white light.";
},
activationCondition: function(character, target)
{
return character.fight.variables.currentStamina >= this.staminaCost;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 1,
addon: 70,
}
return damageParam;
},
staminaCost: 25,
critMod: 0,
comboCost: 3,
skillStatsToDescriptionSpacing: 1,
skillDescription: "Use absorbed energy to unleash an all powerful attack!",
skillType: "offensive",
skillTheme: "offensive",
additionalEffects: [setup.stunTarget],
}>><<set setup.FightMove_EnragedPummel =
{
id: "FightMove_EnragedPummel",
name: "Enraged Pummel",
preparation: function(character, target)
{
var his = setup.getPronoun(character,"pronounDepPos");
return character.info.name + " keeps up the momentum of "+his+" attacks."
},
attackAttemptDesc: function(character, target)
{
var his = setup.getPronoun(character,"pronounDepPos");
return character.info.name + " keeps up the momentum of "+his+" attacks."
},
attackHitDesc: function(character, target)
{
var his = setup.getPronoun(character,"pronounDepPos");
return character.info.name + " pummels "+his+" opponent over and over!";
},
activationCondition: function(character, target)
{
return State.variables.FightComboStackIndexes.length >= 2;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 1.6,
addon: 10,
}
return damageParam;
},
staminaCost: 0,
critMod: 45,
comboCost: 1,
skillStatsToDescriptionSpacing: 2,
skillDescription: "Can only be comboed after 2 or more moves.",
skillType: "offensive",
skillTheme: "offensive",
additionalEffects: []
}>><<set setup.FightMove_FirstStrike =
{
id: "FightMove_FirstStrike",
name: "First Strike",
preparation: function(character, target)
{
var his = setup.getPronoun(character,"pronounDepPos");
return character.info.name + " is already on their opponent before they can even react."
},
attackAttemptDesc: function(character, target)
{
return character.info.name + " strikes faster than their opponent could have expected."
},
attackHitDesc: function(character, target)
{
return character.info.name + " hits before their target is ready for it!";
},
activationCondition: function(character, target)
{
return true;
},
dmg: function(character, target)
{
let multiplier = 2.5;
if(setup[character.fight.variables.history] != undefined && setup[character.fight.variables.history].chains > 1.5)
{
multiplier = 0.5;
}
let damageParam =
{
multiplier: multiplier,
addon: 0,
}
return damageParam;
},
staminaCost: 0,
critMod: 25,
comboCost: 1,
skillStatsToDescriptionSpacing: 2,
skillDescription: "A move that's stronger when used early in the fight.",
skillType: "offensive",
skillTheme: "offensive",
additionalEffects: []
}>><<set setup.FightMove_Focus =
{
id: "FightMove_Focus",
name: "Focus",
preparation: function(character, target)
{
return character.info.name + " focuses on their next move."
},
attackAttemptDesc: function(character, target)
{
return character.info.name + " takes a breather."
},
activationCondition: function(character, target)
{
return true;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 0,
addon: 0,
}
return damageParam;
},
staminaCost: 4,
critMod: 100,
comboCost: 1,
skillStatsToDescriptionSpacing: 2,
skillDescription: "Clears all Stun debuffs.",
skillType: "buff",
skillTheme: "buff",
unlearnable: true,
additionalEffects: [setup.focusFightMove]
}>><<set setup.FightMove_Goo_Stun =
{
id: "FightMove_Goo_Stun",
name: "Ensnaring Goo",
preparation: function(character, target)
{
return character.info.name + "'s goo completely surrounds "+target.info.name+"."
},
attackAttemptDesc: function(character, target)
{
var He = setup.getPronoun(character,"pronounCap");
return character.info.name + "'s goo completely covers "+target.info.name+".";
},
activationCondition: function(character, target)
{
return character.fight.variables.currentStamina >= this.staminaCost;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 0,
addon: 8,
}
return damageParam;
},
staminaCost: 18,
critMod: -15,
cooldown: 5,
comboCost: 5,
unique: true,
skillStatsToDescriptionSpacing: 2,
skillDescription: "Send your goo to immobilize your target.",
skillType: "symbiote",
skillTheme: "symbiote",
additionalEffects: [setup.stunTarget]
}>><<set setup.FightMove_HeraldsDevotion =
{
id: "FightMove_HeraldsDevotion",
name: "Herald's Devotion",
preparation: function(character, target)
{
var arousal = character.fight.variables.currentArousal;
if(arousal < 20 || !setup.usesArousal(character))
{
return character.info.name + "'s focus is sharp and unclouded by lust.";
}
else if(arousal < 70)
{
return character.info.name + "'s focus is faltering to their arousal.";
}
else
{
return character.info.name + "'s focus is completely gone, only lust is on their mind.";
}
},
attackAttemptDesc: function(character, target)
{
var arousal = character.fight.variables.currentArousal;
if(arousal < 20 || !setup.usesArousal(character))
{
return character.info.name + " closes their eyes, letting a bright white glow grow around their body.";
}
else if(arousal < 70)
{
return character.info.name + " closes their eyes and a subtle, nearly invisible white glow covers their body.";
}
else
{
return character.info.name + " closes their eyes, but nothing happens.";
}
},
activationCondition: function(character, target)
{
return character.fight.variables.currentStamina >= this.staminaCost;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 0,
addon: 0,
}
return damageParam;
},
staminaCost: 10,
critMod: 0,
comboCost: 5,
unique: true,
skillStatsToDescriptionSpacing: 2,
skillDescription: "Greatly heals your wounds. The effectiveness dimishes when aroused.",
skillType: "buff",
skillTheme: "special",
additionalEffects: [setup.heraldsDevotionEffect],
}>><<set setup.FightMove_Hypnotize =
{
id: "FightMove_Hypnotize",
name: "Hypnotize",
preparation: function(character, target)
{
return character.info.name + "'s body glows in an unearthly purple. Their target is drawn to gaze at their eyes."
},
attackAttemptDesc: function(character, target)
{
var He = setup.getPronoun(character,"pronounCap");
return character.info.name + " attempts to enthrall their target with their glowing, piercing eyes.";
},
activationCondition: function(character, target)
{
return character.fight.variables.currentStamina >= this.staminaCost;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 0,
addon: 0,
}
return damageParam;
},
staminaCost: 18,
comboCost: 3,
critMod: -15,
cooldown: 5,
skillStatsToDescriptionSpacing: 2,
skillDescription: "Influence your opponent's next attack choice.",
skillType: "offensive",
skillTheme: "offensive",
additionalEffects: [setup.hypnotize]
}>><<set setup.FightMove_IncubusCall =
{
id: "FightMove_IncubusCall",
name: "Incubus Call",
preparation: function(character, target)
{
return "An ominous red glow appears around "+ character.info.name + "'s demonic cock. It is filled with demonic energy.";
},
attackAttemptDesc: function(character, target)
{
var His = setup.getPronoun(character,"pronounDepPosCap");
var his = setup.getPronoun(character,"pronounDepPos");
var he = setup.getPronoun(character,"pronoun");
var cockSize = setup.getLength(setup.getStatValue(character, "cock") + 20);
var displayString = "With every throb, "+character.info.name +"'s cock expands in girth and length, far larger than its natural size. "+His+" lustful moans increase in intensity as it grows to " + cockSize + " in length. ";
displayString += "It only takes a few jerks before "+he+" roars and shoots loads of demonic seed towards "+his+" target before it recedes to its original length.\n";
return displayString;
},
attackHitDesc: function(character, target)
{
var His = setup.getPronoun(character,"pronounDepPosCap");
var his = setup.getPronoun(character,"pronounDepPos");
var He = setup.getPronoun(character,"pronounCap");
var he = setup.getPronoun(character,"pronoun");
var displayString = target.info.name + " is hit by the incubus's cum. Warmth courses through "+his+" whole body, it feels like "+he+"'s burning with arousal.\n\n";
displayString += His+" heart immediately starts beating like a drum. \n";
displayString += He+" can't stop himself, "+his+" hand goes to feel "+his+" crotch.\n\n";
displayString += "It's beyond sensitive... Arousal overtakes his thoughts "+his+" mind, "+he+" gathers a handful of demonic cum a tastes it eagerly.\n\nThe effects are instantaneous.";
return displayString;
},
activationCondition: function(character, target)
{
return character.fight.variables.currentStamina >= this.staminaCost;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 1.8,
addon: 6,
}
return damageParam;
},
staminaCost: 14,
critMod: 0,
comboCost: 3,
skillStatsToDescriptionSpacing: 2,
skillDescription: "Give them a taste of your demonic seed.",
skillType: "demon",
skillTheme: "demon",
additionalEffects: [setup.incubusCallEffects]
}>><<set setup.FightMove_IncubusStrike =
{
id: "FightMove_IncubusStrike",
name: "Incubus Strike",
preparation: function(character, target)
{
var His = setup.getPronoun(character,"pronounDepPosCap");
return "A red sigil appears under "+ character.info.name + ". "+His+" body glows with demonic energy."
},
attackAttemptDesc: function(character, target)
{
return character.info.name + " runs to their target.";
},
attackHitDesc: function(character, target)
{
var his = setup.getPronoun(character,"pronounDepPos");
var His = setup.getPronoun(character,"pronounDepPosCap");
var him = setup.getPronoun(character,"pronounObject");
var He = setup.getPronoun(character,"pronounCap");
if(character.id == "CharacterSheet_Player")
{
return "You grins and presses your hand on "+target.info.name+"'s crotch.\n "+His+" vitality and arousal rushes into you. "
+"You can only laugh as your body grows in power."
}
else
{
return He+" grins and presses "+his+" hand on "+his+" target's crotch.\n "+target.info.name+"'s vitality and arousal rushes into "+him+". "
+character.info.name+" can only laugh as "+his+" body grows in power.\n"
}
},
activationCondition: function(character, target)
{
return character.fight.variables.currentStamina >= this.staminaCost;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 3.4,
addon: 0,
}
return damageParam;
},
staminaCost: 20,
critMod: 15,
comboCost: 5,
skillStatsToDescriptionSpacing: 2,
skillDescription: "Your need for more is never sated.",
skillType: "demon",
skillTheme: "demon",
additionalEffects: [setup.incubusStrikeEffects]
}>><<set setup.FightMove_InfectiousLust =
{
id: "FightMove_InfectiousLust",
name: "Infectious Lust",
preparation: function(character, target)
{
return character.info.name + " lets the corruption within himself take over. They lash out, with every inch of they being oozing out with Corruption."
},
attackAttemptDesc: function(character, target)
{
var displayString = setup.processFlavours(character, character.info.name + " growls, unable to contain the Corruption coursing through their body. They fall to their knees, @[all|hands|noverb] grasping their @[all|cocks|noverb] into furious, uneven motions of unholy lust.\n");
displayString += "'Yesssss... Moooooore...' They moan, completely absorbed in their own lust. The air around them thickens with the hot and humid smell of Corruption.\n";
displayString += "'I NEED MORE!' "+character.info.name+" roars, their head pulling back into a mad lustful frenzy. "+target.info.name+" can only gaze as a wave of corrupted cum makes their way to them. ";
return displayString;
},
activationCondition: function(character, target)
{
return true;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 0,
addon: 0,
}
return damageParam;
},
staminaCost: 0,
critMod: 100,
comboCost: 2,
skillStatsToDescriptionSpacing: 2,
skillDescription: "Corrupt all... Gives Arousal and Corruption to your opponent.",
skillType: "buff",
skillTheme: "corruption",
unlearnable: true,
additionalEffects: [setup.infectiousLustMove]
}>><<set setup.FightMove_Infest =
{
id: "FightMove_Infest",
name: "Infest",
preparation: function(character, target)
{
var his = setup.getPronoun(character,"pronounDepPos");
return character.info.name + " can't contain "+his+" arousal anymore..."
},
attackAttemptDesc: function(character, target)
{
var his = setup.getPronoun(character,"pronounDepPos");
return character.info.name + " approaches you as "+his+" thick tongue drips with corrupting goo.";
},
attackHitDesc: function(character, target)
{
var his = setup.getPronoun(character,"pronounDepPos");
var him = setup.getPronoun(character,"pronounObject");
var hitText = "";
if(target.fight.variables.currentArousal >= 50)
{
hitText = "As "+his+" seed comes in contact with your body, you feel an influence grow in your mind.\n"
+"Your already high arousal makes the influence stronger, you can barely think as visions of sex and monsters overtake your thoughts. \n"
+"You are stunned!";
}
else
{
hitText = "As "+his+" seed comes in contact with your body, you feel an influence grow in your mind.\n"
+" Visions of yourself transformed into a massive monster influence your thoughts.";
}
return "\"Spreeeeaaad...\" You hear "+him+" moan as "+his+" cock drips thick black precum on your chest.\n"+
hitText;
},
activationCondition: function(character, target)
{
return character.fight.variables.currentStamina >= this.staminaCost;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 1,
addon: 16,
}
return damageParam;
},
staminaCost: 12,
comboCost: 3,
critMod: 5,
cooldown: 3,
skillStatsToDescriptionSpacing: 2,
skillDescription: "Stuns your opponent with pure corruptive lust.",
skillType: "offensive",
skillTheme: "offensive",
additionalEffects: [setup.infestStun]
}>><<set setup.FightMove_Inspect =
{
id: "FightMove_Inspect",
name: "Inspect",
preparation: function(character, target)
{
return character.info.name + " inspects their opponent carefully."
},
attackAttemptDesc: function(character, target)
{
var displayString = "";
displayString += character.info.name + " inspects "+target.info.name+" carefully.\n\n";
if(target.info.picture != undefined)
{
displayString += setup.displayEncounterImage(target.info.picture) + "\n\n";
}
displayString += "HP: "+target.fight.variables.currentHP+"/"+setup.displayStatValue(target, "hp")+"\n";
displayString += "Prowess: "+setup.displayStatValue(target, "stamina")+"\n";
displayString += "Arousal: "+target.fight.variables.currentArousal+"\n\n";
displayString += "Strength: "+setup.displayStatValue(target, "strength")+"\n";
displayString += "Critical Hit Chance: "+setup.displayStatValue(target, "critChance")+"\n";
displayString += "Arousal per Turn: "+setup.displayStatValue(target, "arousalGain")+"\n";
displayString += "Corruption: "+setup.getStatValue(target, "corruption")+"\n";
displayString += "Muscles: "+setup.getMusclesDescriptor(target)+"("+setup.displayStatValue(target, "muscles")+")\n";
displayString += "Height: "+setup.displayStatValue(target, "height", true)+"\n";
displayString += "Cock Size: "+setup.displayStatValue(target, "cock", true)+"\n\n";
displayString += "Passive Abilities:\n";
if(character.abilityHandler.abilityRuntimeDatas.length > 0)
{
for(let i = 0; i < target.abilityHandler.abilityRuntimeDatas.length; ++i)
{
let abilityRuntimeData = target.abilityHandler.abilityRuntimeDatas[i];
let ability = setup.getAbilityByIndex(abilityRuntimeData.abilityDataIndex);
if(abilityRuntimeData.isActive == true)
{
displayString += ability.name +": "+ ability.description(target, abilityRuntimeData) +"\n";
}
}
}
else
{
displayString += "None\n";
}
return displayString;
},
activationCondition: function(character, target)
{
return true;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 0,
addon: 0,
}
return damageParam;
},
staminaCost: 0,
critMod: 100,
skillStatsToDescriptionSpacing: 2,
skillDescription: "Shows information about your opponent.",
skillType: "special",
skillTheme: "special",
unlearnable: true,
additionalEffects: []
}>><<set setup.FightMove_Lunge =
{
id: "FightMove_Lunge",
name: "Lunge",
preparation: function(character, target)
{
return character.info.name + " is preparing to pounce.";
},
attackAttemptDesc: function(character, target)
{
return character.info.name + " jumps at his target. ";
},
attackHitDesc: function(character, target)
{
var He = setup.getPronoun(character,"pronounCap");
return character.info.name + " lands on their target. "+He+" roars and slash them mercilessly.";
},
activationCondition: function(character, target)
{
return true;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 1,
addon: 3,
}
return damageParam;
},
staminaCost: 0,
critMod: 0,
comboCost: 1,
skillDescription: "A basic attack.",
additionalEffects: []
}>><<set setup.FightMove_LustfulInstincts =
{
id: "FightMove_LustfulInstincts",
name: "Lustful Instincts",
preparation: function(character, target)
{
return character.info.name + " relishes the Corruption flowing through them. The need to grow and become something more... It changes reaches out and warps their whole being."
},
attackAttemptDesc: function(character, target)
{
return character.info.name + "'s heartbeat fastens; their breath becomes heavy with a subtle purple mist. Unholy vitality rushes through "+character.info.name+", urges them to reach out for what they yearn. Their body shakes with lust, their cock hardens with thick purple veins."
},
activationCondition: function(character, target)
{
return true;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 0,
addon: 0,
}
return damageParam;
},
staminaCost: 0,
critMod: 100,
comboCost: 1,
skillStatsToDescriptionSpacing: 2,
skillDescription: "Give in... Grants arousal.",
skillType: "buff",
skillTheme: "corruption",
unlearnable: true,
additionalEffects: [setup.lustfulInstinctsMove]
}>><<set setup.FightMove_Masturbate =
{
id: "FightMove_Masturbate",
name: "Pleasure Self",
preparation: function(character, target)
{
return character.info.name + "'s hand reaches for their crotch"
},
attackAttemptDesc: function(character, target)
{
var him = setup.getPronoun(character, "pronounObject");
return character.info.name + setup.processFlavours(character, " grabs his @[all|cocks|noverb] and then pumps it passionately. Arousal flows through ")+him+"."
},
activationCondition: function(character, target)
{
return true;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 0,
addon: 0,
}
return damageParam;
},
staminaCost: 0,
critMod: 100,
comboCost: 1,
skillStatsToDescriptionSpacing: 2,
skillDescription: "Increases your arousal gain by 100%.",
skillType: "buff",
skillTheme: "buff",
unlearnable: true,
additionalEffects: [setup.masturbate]
}>><<set setup.FightMove_Mimic =
{
id: "FightMove_Mimic",
name: "Mimic",
preparation: function(character, target)
{
return character.info.name + "'s corruption flows through " + setup.getPronoun(character, "pronounDepPos") + " form.";
},
attackAttemptDesc: function(character, target)
{
return character.info.name + " studies the opponents form, copying its maneuvers.";
},
activationCondition: function(character, target)
{
return true;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 0,
addon: 0,
}
return damageParam;
},
staminaCost: 0,
critMod: 100,
comboCost: 1,
skillStatsToDescriptionSpacing: 2,
skillDescription: "Mimic an opponent's Racial Bonus. Small chance to transform limbs.",
skillType: "buff",
skillTheme: "buff",
unlearnable: true,
additionalEffects: [setup.mimicMove]
}>><<set setup.FightMove_Mutate =
{
id: "FightMove_Mutate",
name: "Bubbling Mutation",
preparation: function(character, target)
{
return character.info.name + "'s corruption flows through " + setup.getPronoun(character, "pronounDepPos") + " form.";
},
attackAttemptDesc: function(character, target)
{
return character.info.name + " feels the corruptions settling into a particular limb, empowering it...";
},
activationCondition: function(character, target)
{
return true;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 0,
addon: 0,
}
return damageParam;
},
staminaCost: 0,
critMod: 100,
comboCost: 1,
skillStatsToDescriptionSpacing: 2,
skillDescription: "Empower a random limb. Chance to grow another set of that limb, based on Corruption.",
skillType: "buff",
skillTheme: "buff",
unlearnable: true,
additionalEffects: [setup.mutateMove]
}>><<set setup.FightMove_ParasiteLunge =
{
id: "FightMove_ParasiteLunge",
name: "Parasite Lunge",
preparation: function(character, target)
{
return character.info.name + " is preparing to pounce.";
},
attackAttemptDesc: function(character, target)
{
return character.info.name + " jumps at his target. ";
},
attackHitDesc: function(character, target)
{
var He = setup.getPronoun(character,"pronounCap");
return character.info.name + " lands on their target. "+He+" bites them mercilessly.";
},
activationCondition: function(character, target)
{
return true;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 1,
addon: 3,
}
return damageParam;
},
staminaCost: 4,
comboCost: 1,
critMod: 0,
skillDescription: "A basic attack.",
additionalEffects: []
}>><<set setup.FightMove_Parry =
{
id: "FightMove_Parry",
name: "Parry",
preparation: function(character, target)
{
return character.info.name + " enters a parry stance.";
},
attackHitDesc: function(character, target)
{
var displayString = character.info.name + " drops his parry stance.";
return displayString;
},
activationCondition: function(character, target)
{
return character.fight.variables.currentStamina >= this.staminaCost;
},
staminaCost: 12,
comboCost: 1,
critMod: 100,
cooldown: 4,
skillStatsToDescriptionSpacing: 1,
skillDescription: "Enter a parry stance, turning an opponent's damage into stamina",
skillType: "offensive",
skillTheme: "offensive",
callbackOnPreparation: setup.doParry,
additionalEffects: []
}>><<set setup.FightMove_PridefulAscent =
{
id: "FightMove_PridefulAscent",
name: "Prideful Ascent",
preparation: function(character, target)
{
return character.info.name + "'s body suddenly pulses, demonic energy coursing through them."
},
attackAttemptDesc: function(character, target)
{
return character.info.name + " leaps and strikes with demonic vigor.";
},
attackHitDesc: function(character, target)
{
return character.info.name + "'s presses his body on "+target.info.name+", holding them as tight as they can.\n " + character.info.name + "'s body suddenly surges with growth, pushing them harder against their target.";
},
activationCondition: function(character, target)
{
return character.fight.variables.currentStamina >= this.staminaCost;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 1,
addon: 7,
}
return damageParam;
},
staminaCost: 4,
critMod: 0,
comboCost: 4,
skillStatsToDescriptionSpacing: 2,
skillDescription: "All must bask in your pride.",
skillType: "demon",
skillTheme: "demon",
additionalEffects: [setup.pridefulAscentEffects]
}>><<set setup.FightMove_SeedOfRuin =
{
id: "FightMove_SeedOfRuin",
name: "Seed of Ruin",
preparation: function(character, target)
{
return character.info.name + " grasps his monstrous cock, and roars as arousal washes over him."
},
attackAttemptDesc: function(character, target)
{
var his = setup.getPronoun(character,"pronounDepPos");
return character.info.name + " cums, their infected load shooting towards their target.";
},
attackHitDesc: function(character, target)
{
var displayString = character.info.name + "'s load overwhelms you.\n"
displayString += "His infected seed crawls into you through your pores, frying your nerves with your own unstoppable need. \n"
displayString += "You scream as pain merges with a sudden orgasm washing over you.\n"
return displayString;
},
activationCondition: function(character, target)
{
return true;
},
dmg: function(character, target)
{
console.log("doing see of runis")
console.log(target)
let damageParam =
{
multiplier: 1,
addon: target.fight.variables.currentArousal,
}
return damageParam;
},
staminaCost: 16,
critMod: 0,
comboCost: 3,
cooldown: 3,
skillStatsToDescriptionSpacing: 2,
skillDescription: "Deals extra damage equal to your opponent's Arousal.",
skillType: "offensive",
skillTheme: "offensive",
unlearnable: true,
additionalEffects: []
}>><<set $Sigil_Growth =
{
id: "Sigil_Growth",
constantDesc: function(attacker, victim)
{
return "A Sigil of Growth pulsates in tune with " + attacker.info.name + "'s heartbeat.";
},
onDamagingHit: function(attacker, victim, params)
{
setup.removePersistentEffect(victim, this);
var ballsGrowth = Math.ceil(params.attackDamage * 0.025);
var cockGrowth = Math.ceil(params.attackDamage * 0.07);
var muscleGrowth = Math.ceil(params.attackDamage * 0.07);
var sizeGrowth = Math.ceil(params.attackDamage * 0.12);
ballsGrowth = setup.applyGrowth(attacker, "balls", ballsGrowth);
ballsGrowth = setup.applyGrowth(attacker, "cock", cockGrowth);
muscleGrowth = setup.applyGrowth(attacker, "muscles", muscleGrowth);
sizeGrowth = setup.applyGrowth(attacker, "height", sizeGrowth);
var His = setup.getPronoun(attacker,"pronounDepPosCap");
var his = setup.getPronoun(attacker,"pronounDepPos");
var displayString = attacker.info.name +"'s body gets overtaken by a golden aura as the Sigil of Growth activates. \n";
displayString += attacker.info.name + "'s cock grows "+ setup.getLength(cockGrowth) + ", ";
displayString += his+" muscles grow bigger (+"+ muscleGrowth + ") and ";
displayString += his+" body becomes "+ setup.getLength(sizeGrowth) + " taller\n";
return displayString;
},
}>>
<<set setup.FightMove_Sigil_Growth =
{
id: "FightMove_Sigil_Growth",
name: "Sigil of Growth",
itemName: "A large golden bottle",
preparation: function(character, target)
{
return character.info.name + " feels an urge to grow...";
},
attackHitDesc: function(character, target)
{
var displayString = setup.displaySeedMoveIntro(character, target, "golden");
displayString += "It enters his body, forming a Sigil of Growth on his skin.\n";
displayString += character.info.name+" can feel the growth that's about to be unleashed on him.";
return displayString;
},
activationCondition: function(character, target)
{
return true;
},
staminaCost: 0,
critMod: 100,
comboCost: 0.5,
maxStack: 4,
skillStatsToDescriptionSpacing: 2,
skillDescription: "Grows your body based on the damage of your next attack",
skillType: "sigil",
skillTheme: "sigil",
buyFromStore: true,
buyPassage: "Buy_Sigil_Growth",
essenceCost: 150,
persistentEffectOpponent: $Sigil_Growth,
additionalEffects: []
}>><<set $Sigil_Pain =
{
id: "Sigil_Pain",
constantDesc: function(attacker, victim)
{
return "A black Sigil of Pain cracks deeply along " + attacker.info.name + "'s skin.";
},
onDamagingHit: function(attacker, victim, params)
{
setup.removePersistentEffect(victim, this);
params.attackDamage = Math.floor(params.attackDamage * 1.25);
return "A Sigil of Pain ruptures "+ victim.info.name +"'s flesh as they get hit. The attack is amplified to "+params.attackDamage+" damage.\n";
},
}>>
<<set setup.FightMove_Sigil_Pain =
{
id: "FightMove_Sigil_Pain",
name: "Sigil of Pain",
itemName: "A thin black bottle",
preparation: function(character, target)
{
return character.info.name + "'s body suddenly glows with a subtle black hue.";
},
attackHitDesc: function(character, target)
{
var displayString = setup.displaySeedMoveIntro(character, target, "dark red");
displayString += "It enters "+target.info.name+"'s body. It twists and cracks along "+ target.info.name +"'s skin, turning into a Sigil of Pain.";
return displayString;
},
activationCondition: function(character, target)
{
return true;
},
staminaCost: 0,
critMod: 100,
comboCost: 0.5,
maxStack: 8,
skillStatsToDescriptionSpacing: 2,
skillDescription: "Increases the damage of your next attack by 25%",
skillType: "sigil",
skillTheme: "sigil",
buyPassage: "Buy_Sigil_Pain",
buyFromStore: true,
essenceCost: 150,
persistentEffectOpponent: $Sigil_Pain,
additionalEffects: []
}>><<set $Sigil_Perception =
{
id: "Sigil_Perception",
constantDesc: function(attacker, victim)
{
return "A Sigil of Perception builds a strong cyan aura around " + attacker.info.name + "'s body.";
},
onActivate: function(attacker, victim, params)
{
attacker.applyAbilityRuntimeData(setup.Ability_SigilOfPerception);
},
onDamagingHit: function(attacker, victim, params)
{
setup.removePersistentEffect(victim, this);
attacker.removeAbilityRuntimeData(setup.Ability_SigilOfPerception);
return "The Sigil of Perception dissipates\n";
},
}>>
<<set setup.FightMove_Sigil_Perception =
{
id: "FightMove_Sigil_Perception",
name: "Sigil of Perception",
preparation: function(character, target)
{
return character.info.name + "'s body suddenly glows with a subtle cyan hue.";
},
attackHitDesc: function(character, target)
{
var displayString = "";
displayString += setup.processFlavours(State.variables.CharacterSheet_Player, "You focus Essence to your @[all| hands| noverb]; it suddenly glows in a soft cyan hue.\n");
displayString += "You strike at "+ target.info.name +"'s core, making the glow spread through their whole body. \n";
displayString += "Your next attack will be 30% more likely to critical hit.";
return displayString;
},
activationCondition: function(character, target)
{
return true;
},
staminaCost: 0,
critMod: 100,
comboCost: 0.5,
maxStack: 5,
skillStatsToDescriptionSpacing: 2,
skillDescription: "Increases next attack's chance to critically hit by 30%",
skillType: "sigil",
skillTheme: "sigil",
persistentEffectOpponent: $Sigil_Perception,
additionalEffects: []
}>><<set $Sigil_Triad =
{
id: "Sigil_Triad",
constantDesc: function(attacker, victim)
{
return "A swirl of complex patterns form three sigils that cling to " + attacker.info.name + "'s body.";
},
onActivate: function(attacker, victim, params)
{
attacker.applyAbilityRuntimeData(setup.Ability_SigilOfPerception);
},
onDamagingHit: function(attacker, victim, params)
{
setup.removePersistentEffect(victim, this);
var displayString = "";
params.attackDamage = Math.floor(params.attackDamage * 1.25);
displayString += "The Sigil of Pain ruptures "+ victim.info.name +"'s flesh as they get hit. The attack is amplified to "+params.attackDamage+" damage.\n";
attacker.removeAbilityRuntimeData(setup.Ability_SigilOfPerception);
displayString += "The Sigil of Perception dissipates\n";
var ballsGrowth = Math.ceil(params.attackDamage * 0.7);
var cockGrowth = Math.ceil(params.attackDamage * 0.12);
var muscleGrowth = Math.ceil(params.attackDamage * 0.2);
var sizeGrowth = Math.ceil(params.attackDamage * 0.15);
ballsGrowth = setup.applyGrowth(attacker, "balls", ballsGrowth);
ballsGrowth = setup.applyGrowth(attacker, "cock", cockGrowth);
muscleGrowth = setup.applyGrowth(attacker, "muscles", muscleGrowth);
sizeGrowth = setup.applyGrowth(attacker, "height", sizeGrowth);
var His = setup.getPronoun(attacker,"pronounDepPosCap");
var his = setup.getPronoun(attacker,"pronounDepPos");
var displayString = attacker.info.name +"'s body gets overtaken by a golden aura as the Sigil of Growth activates. \n";
displayString += attacker.info.name + "'s cock grows "+ setup.getLength(cockGrowth) + ", ";
displayString += his+" muscles grow bigger (+"+ muscleGrowth + ") and ";
displayString += his+" body becomes "+ setup.getLength(sizeGrowth) + " taller\n";
return displayString
},
}>>
<<set setup.FightMove_Sigil_Triad =
{
id: "FightMove_Sigil_Triad",
name: "Sigil Triad",
preparation: function(character, target)
{
return character.info.name + "'s body suddenly glows with a complex blend of turquoise, black and gold.";
},
attackHitDesc: function(character, target)
{
var displayString = "";
displayString += character.info.name + "'s hands rise. Soon after, three trails of turquoise, black and gold emerge from his hands and swirl towards you.";
return displayString;
},
activationCondition: function(character, target)
{
return true;
},
staminaCost: 0,
critMod: 100,
maxStack: 4,
comboCost: 1,
skillStatsToDescriptionSpacing: 3,
skillDescription: "Combines the effects of the sigils of Pain, Perception and Growth.",
skillType: "sigil",
skillTheme: "sigil",
persistentEffectOpponent: $Sigil_Triad,
additionalEffects: []
}>><<set $Sigil_Vitality =
{
id: "Sigil_Vitality",
constantDesc: function(attacker, victim)
{
return "A gooey turquoise Sigil of Vitality clings to " + attacker.info.name + "'s body like thick latex.";
},
onDamagingHit: function(attacker, victim, params)
{
var lifedrain = Math.floor(params.attackDamage * 0.75);
attacker.fight.variables.currentHP = Math.min(attacker.fight.variables.currentHP + lifedrain, setup.getMaxHP(attacker));
setup.removePersistentEffect(victim, this);
var displayString = "";
if (attacker.id == "CharacterSheet_Player"){
displayString = "Thick turquoise goo emerges from "+victim.info.name+"'s wounds as the Sigil of Vitality activates. It rushes up to you and enters your body. You are healed for "+ lifedrain + "hp.\n";
}else{
displayString = "Thick turquoise goo emerges from your wounds as the Sigil of Vitality activates. It rushes up to your enemy and enters their body. They are healed for "+ lifedrain + "hp.\n";
}
return displayString
},
}>>
<<set setup.FightMove_Sigil_Vitality =
{
id: "FightMove_Sigil_Vitality",
name: "Sigil of Vitality",
itemName: "A glowing cyan vial",
preparation: function(character, target)
{
return character.info.name + "'s body suddenly glows with a subtle turquoise hue.";
},
attackHitDesc: function(character, target)
{
var displayString = setup.displaySeedMoveIntro(character, target, "turquoise");
displayString += "It enters "+target.info.name+"'s body, forming a Sigil of Vitality on his skin.";
return displayString;
},
activationCondition: function(character, target)
{
return true;
},
staminaCost: 0,
critMod: 100,
maxStack: 4,
comboCost: 0.5,
skillStatsToDescriptionSpacing: 3,
skillDescription: "Heals the user by 75% of the damage applied by an attack as it activates",
skillType: "sigil",
skillTheme: "sigil",
persistentEffectOpponent: $Sigil_Vitality,
additionalEffects: []
}>><<set setup.FightMove_Slash =
{
id: "FightMove_Slash",
name: "Slash",
preparation: function(character, target)
{
var flavourtext = setup.getFlavourBasedDescription(character, 'basicAttackPrepFlavour', 1)
if(flavourtext != undefined)
{
return character.info.name + " " + flavourtext
}
else
{
return character.info.name + " is getting ready to strike."
}
},
attackAttemptDesc: function(character, target)
{
var flavourtext = setup.getFlavourBasedDescription(character, 'slashAttackAttemptFlavour', 1)
return flavourtext
},
activationCondition: function(character, target)
{
return true;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 2.2,
addon: 10,
}
return damageParam;
},
staminaCost: 0,
critMod: 15,
comboCost: 4,
skillStatsToDescriptionSpacing: 2,
skillDescription: "A potentially devastating slash of your weapon.",
skillType: "offensive",
skillTheme: "offensive",
additionalEffects: []
}>><<set setup.FightMove_SlimeLunge =
{
id: "FightMove_SlimeLunge",
name: "Slime Lunge",
preparation: function(character, target)
{
return character.info.name + " sloshes around, moving at a surprisingly nimble pace, ready to respond to your next move.";
},
attackAttemptDesc: function(character, target)
{
return character.info.name + " bounces slightly, every movement causes its entire being to shake and stir, but its form remains well intact, not even a trail of goo is left behind in its wake.";
},
attackHitDesc: function(character, target)
{
var He = setup.getPronoun(character,"pronounCap");
return character.info.name + " bounces with the agility you'd never expect from such a creature. It collides against you with all its might, attempting to knock you off your feet.";
},
activationCondition: function(character, target)
{
return true;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 1,
addon: 4,
}
return damageParam;
},
staminaCost: 0,
comboCost: 3,
critMod: 0,
skillDescription: "Lunge towards your opponent, possibly stunning them if you are bigger than them.",
skillType: "offensive",
skillTheme: "offensive",
additionalEffects: [setup.slimeLungeEffects]
}>><<set setup.FightMove_Stomp =
{
id: "FightMove_Stomp",
name: "Stomp",
preparation: function(character, target)
{
return character.info.name + "'s massive feet loom over his opponent.";
},
attackAttemptDesc: function(character, target)
{
return "The ground shakes as "+character.info.name +" brings his foot down on his opponent."
},
activationCondition: function(character, target)
{
return true;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 2,
addon: 10,
}
return damageParam;
},
staminaCost: 20,
comboCost: 4,
unique: true,
critMod: 20,
skillStatsToDescriptionSpacing: 2,
skillDescription: "Bring your foot down on your tiny opponent.",
skillType: "offensive",
skillTheme: "offensive",
unlearnable: true,
additionalEffects: []
}>><<set setup.FightMove_SummonParasite =
{
id: "FightMove_SummonParasite",
name: "Summon Parasite",
preparation: function(character, target)
{
var his = setup.getPronoun(character,"pronounDepPos");
return "A thick purple mist suddenly gathers around "+character.info.name+"'s hands."
},
attackAttemptDesc: function(character, target)
{
var his = setup.getPronoun(character,"pronounDepPos");
var displayString = "The familiar sound of a portal opening rings between the two of you.\n";
displayString += "The black, opaque skin of a "+setup.getLength(Math.ceil(setup.getStatValue(character, "cock") / 3))+" spawn of Nyx pokes out before it jumps towards "+ target.info.name;
return displayString;
},
attackHitDesc: function(character, target)
{
var displayString = "The parasite stings "+target.info.name+". A sharp pain slowly spreads through their limbs.";
return displayString;
},
activationCondition: function(character, target)
{
return character.fight.variables.currentStamina >= this.staminaCost;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 1.5,
addon: 10,
}
return damageParam;
},
staminaCost: 12,
critMod: 0,
comboCost: 3,
skillStatsToDescriptionSpacing: 1,
skillDescription: "Bring forth spawns of Nyx.",
skillType: "demon",
skillTheme: "demon",
additionalEffects: [setup.witheringVenom]
}>><<set setup.FightMove_TonicOfStillness =
{
id: "FightMove_TonicOfStillness",
name: "Tonic of Stillness",
preparation: function(character, target)
{
return character.info.name + " pulls out a flask filled with a glowing white liquid."
},
attackAttemptDesc: function(character, target)
{
var his = setup.getPronoun(character,"pronounDepPos");
return character.info.name + " drinks from a flask filled with a glowing white liquid.";
},
attackHitDesc: function(character, target)
{
var displayString = character.info.name+" muscles flex with a sudden thrunderous force.\n"
displayString += "His body processes Corruption at an exceedingly fast rate and turns it into strength!"
return displayString;
},
activationCondition: function(character, target)
{
return true;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 0,
addon: 0,
}
return damageParam;
},
staminaCost: 0,
critMod: 0,
comboCost: 1,
skillStatsToDescriptionSpacing: 1,
skillDescription: "Turns Corruption into temporary strength.",
skillType: "offensive",
skillTheme: "special",
unlearnable: true,
additionalEffects: [setup.tonicOfStillness]
}>><<set setup.FightMove_Tutorial1 =
{
id: "FightMove_Tutorial1",
name: "Struggle",
preparation: function(character, target)
{
return "<<include FightMove_Tutorial1_Preparation>>"
},
attackAttemptDesc: function(character, target)
{
return "The beast is distracted by Abel's attack."
},
activationCondition: function(character, target)
{
return true;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 0,
addon: 0,
}
return damageParam;
},
staminaCost: 8,
critMod: 0,
comboCost: 2,
cooldown: 2,
skillStatsToDescriptionSpacing: 2,
skillDescription: "The beast is distracted by Abel's attack, now is the time to strike.",
skillType: "special",
skillTheme: "special",
additionalEffects: []
}>>The wounded Lost is distracted by Abel's attacks!
As he slashes the beasts back, you hear him cry out.
"Hit him as often as you can $CharacterSheet_Player.info.name! Remember your <<link "training!">> <<replace "#tutorial">><<include "FightMove_Tutorial1_Tutorial">><</replace>> <</link>>"
<span id="tutorial"></span>A list of randomized moves are given to you every turn.
You can chain multiple moves during the same turn, as long as their Link Value (the number in the top right corner) is adjacent to that of the following move.
(4 and 1 are considered adjacenent since they are the last and first value respectively)
[img["https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Tutorials/tutorial_merged.png"]]
Linking as many moves as you can during a turn is usually a good strategy!<<set setup.FightMove_Tutorial2 =
{
id: "FightMove_Tutorial2",
name: "Distracted Slash",
preparation: function(character, target)
{
return "<<include FightMove_Tutorial2_Preparation>>"
},
attackAttemptDesc: function(character, target)
{
return "You take the hit, but it could have been much worse if it wasn't distracted."
},
activationCondition: function(character, target)
{
return true;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 1,
addon: 1,
}
return damageParam;
},
staminaCost: 8,
critMod: 0,
comboCost: 2,
cooldown: 2,
skillStatsToDescriptionSpacing: 2,
skillDescription: "A strong attack that's held back by some distraction.",
skillType: "special",
skillTheme: "special",
additionalEffects: []
}>>The wounded Lost lifts his might paw to slash you, but Abel holds him back as he swings!
As he slashes the beast's back, you hear him cry out.
"He's distracted! <<link "Make sure this one counts!">> <<replace "#tutorial">><<include "FightMove_Tutorial2_Tutorial">><</replace>> <</link>>"
<span id="tutorial"></span>If you don't like the hand that you received this turn, you can cycle it by clicking the "Redraw" button for an increasing amount of stamina.
This is a good thing to do if there are not a lot of moves that combo with one another!<<set setup.FightMove_Tutorial3 =
{
id: "FightMove_Tutorial3",
name: "Distracted Roar",
preparation: function(character, target)
{
return "<<include FightMove_Tutorial3_Preparation>>"
},
attackAttemptDesc: function(character, target)
{
return "The wounded Lost roars out in exasperation."
},
activationCondition: function(character, target)
{
return true;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 0,
addon: 0,
}
return damageParam;
},
staminaCost: 8,
critMod: 0,
comboCost: 2,
cooldown: 2,
skillStatsToDescriptionSpacing: 2,
skillDescription: "A loud roar of frustration.",
skillType: "special",
skillTheme: "special",
additionalEffects: []
}>>You barely have time to cover your ears as the beasts roars in frustration.
If Abel had something to tell you, it's impossible to hear right now.
You'll have to <<link "figure out your next move on your own.">> <<replace "#tutorial">><<include "FightMove_Tutorial3_Tutorial">><</replace>> <</link>>
<span id="tutorial"></span>You can hover any icon on the cards to get a helpful tooltip about what it represents.
Same goes for every stat that is currently affected by a modifier!<<set setup.FightMove_UnnaturalGrowth =
{
id: "FightMove_UnnaturalGrowth",
name: "Unnatural Growth",
preparation: function(character, target)
{
return character.info.name + " lets Corruption feed their muscles with endless strength."
},
attackAttemptDesc: function(character, target)
{
return character.info.name+"'s body is an endless cycle of growth, their body producing and consuming Corruption to grow unnaturally. Their whole body flexes, growing stronger than the limits of mortal bodies."
},
activationCondition: function(character, target)
{
return true;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 0,
addon: 0,
}
return damageParam;
},
staminaCost: 16,
critMod: 0,
comboCost: 6,
skillStatsToDescriptionSpacing: 3,
skillDescription: "Gains 100% your Strength until the end of combat. Your body grows by that amount.",
skillType: "buff",
skillTheme: "corruption",
unlearnable: true,
additionalEffects: [setup.unnaturalGrowthMove]
}>><<set setup.FightMove_WitheringVenom =
{
id: "FightMove_WitheringVenom",
name: "Withering Venom",
preparation: function(character, target)
{
var his = setup.getPronoun(character,"pronounDepPos");
return character.info.name + " can't contain "+his+" need to spread..."
},
attackAttemptDesc: function(character, target)
{
var his = setup.getPronoun(character,"pronounDepPos");
return "As the "+ character.info.name + " crawls closer, you notice a stinger emerge from his previously featureless head.\n";
},
attackHitDesc: function(character, target)
{
var displayString = "The "+ character.info.name + " suddenly pounces and stings you. A sharp pain slowly spreads through your limbs. You feel weaker.";
return displayString;
},
activationCondition: function(character, target)
{
return character.fight.variables.currentStamina >= this.staminaCost;
},
dmg: function(character, target)
{
let damageParam =
{
multiplier: 1,
addon: 1,
}
return damageParam;
},
staminaCost: 12,
critMod: 0,
comboCost: 1,
skillStatsToDescriptionSpacing: 2,
skillDescription: "Weakens your target with numbing venom.",
skillType: "offensive",
skillTheme: "offensive",
additionalEffects: [setup.witheringVenom]
}>><<set setup.FightMove_Worship =
{
id: "FightMove_Worship",
name: "Worship",
preparation: function(character, target)
{
return character.info.name + "'s mind is entirely under your control. His mouth is watering at the sight of your cock.";
},
attackAttemptDesc: function(character, target)
{
let arousalGain = 10;
target.fight.variables.currentArousal += arousalGain;
target.fight.variables.currentArousal = Math.min(100, target.fight.variables.currentArousal);
let displayString = character.info.name +" is overwhelmed by am insatiable desire to worhip their master. He loses himself, kissing "+target.info.name+" while grinding his hard cock on his. He soon drops to suck his master's while moaning passionately.\n";
displayString += target.info.name +" graps the back of "+character.info.name+"'s head and thrusts his cock down his throat. He gains "+arousalGain+" arousal.";
return displayString;
},
activationCondition: function(character, target)
{
return true;
},
doesNothing: true,
dmg: function(character, target)
{
let damageParam =
{
multiplier: 0,
addon: 0,
}
return damageParam;
},
staminaCost: 0,
critMod: 100,
comboCost: 1,
skillStatsToDescriptionSpacing: 2,
skillDescription: "Worhip your opponent's body.",
skillType: "special",
skillTheme: "special",
unlearnable: true,
additionalEffects: []
}>><<include setup.getNextNarativeEventPassage(setup.StorySheet_Jorm.encounterPassages)>><<run setup.initialJormSetup()>>\
<<print setup.getFlavourBasedDescription($CharacterSheet_Player, "jormFirstMeeting", 1)>>You set out to explore and within the hour you come across a strange discovery.
You are pretty sure that there used to be a swamp in this area, and yet all you find is an arid wasteland of almost suspicious emptiness.
The dirt beneath your feet is dry, hard and so flat that you can see all the way towards the horizon with little in the way of obstacles or places to hide.
It makes it exceedingly easy to spot a group of Lost in the distance, and so you ready yourself for the inevitable fight. After all there is no place for you to hide either, \
no way for them not to spot you.
But the attack never comes. In fact, they appeared to be perfectly content with staying put.
\<<run setup.choice("[[Investigate Further->Jorm_FirstMeeting_PlayerSmall_2]]");>>
\<<run setup.choice("[[Leave->Village]]");>><<set $CharacterSheet_Jorm.quest.available_encounterPassages_firstTime = false>>\
An unhealthy amount of curiosity gets the better of you. It is an exceedingly rare sight to see any number of Lost who aren't ravenously mating each other or trying to spread their corruption.
Seeing them just sit there warrants investigation.
So, as you draw closer, you not only rather quickly realize that these Lost are significantly larger than the usual specimen.
They sit around a big pond that is at least <<print setup.getLength(3937)>> in diameter, even this close, they do not seem to notice your presence.
\<<run setup.choice("[[Examine the pond->Jorm_FirstMeeting_PlayerSmall_3]]");>>A <<SymbioteColor>> goo fills the pond; it runs and spills over the edges while the Lost throbbing genitalias submerge within it.
You could see their bodies twitch with their vacant eyes rolled back and their tongues lolled out, drool dripping from their maws.
Their balls contract again and again, you could see the goo bubble as streaks of white and black shoot through it as the Lost orgasm into the liquid with no end in sight.
\<<run setup.choice("[[Continue->Jorm_FirstMeeting_PlayerSmall_4]]");>>It starts to tickle your nose. \
<<print setup.processFlavours($CharacterSheet_Player, "A scent that is hard to describe and leave you light headed for a moment. Your @[all|cocks|one=surges~more=surge] to full erection within a second.")>>
You can feel the tightness in your taint as incredible desire ran through your loins. You feel how <<SymbioteName>> stirs beneath your skin, the desire to emerge growing within your companion.
<<print setup.processFlavours($CharacterSheet_Player, "Just like the desire to step forward, to put your @[all|cocks|noverb] into the pond as well. You feel him writhe beneath your skin, your @[all|cocks|one=throbs~more=throb].")>>
The scent beckons you forward, the low growling of the Lost promising an incredible pleasure, \
<<print setup.processFlavours($CharacterSheet_Player, "a thrilling excitement waiting mere steps away from you. You bring your @[all|cocks|noverb] over the pond and your pre drips into it. ")>>
The goo almost lashes out at your early ejaculate before it suddenly recoils away.
\<<run setup.choice("[[Continue->Jorm_FirstMeeting_PlayerSmall_5]]");>>It begins to bubble, then boil. The liquid churns and gurgles. The Lost around you roar and squirm as the goo lashes out at them, engulfing their lower bodies completely.
Their gigantic musculature deflates before your very eyes until they are completely pulled into the pond.
The bubbling ceases, the scent vanishes with it.
\<<run setup.choice("[[Continue->Jorm_JormEmerges_Small]]");>>The ground shakes beneath your massive gait.
Exploring the wasteland is a treat at this size, and it would only become easier as you grow larger.
You could see the slight curving of the world towards the horizon, and so, as you strode on, a curiosity peaked your interest.
\<<run setup.choice("[[Continue->Jorm_FirstMeeting_PlayerBig_2]]");>>You remember being here before. Instead, all you can see is a flat, barren wasteland which is almost entirely devoid of features.
Infact it almost seems like it has been purposefully flattened. Only - comparatively - small pools disturb the land like pockmarks.
You also see that the Lost gather around these pools, which is unusual enough.
After all, they usually come rushing immediately to bay and bark at your feet, given that your form is impossible to overlook.
\<<run setup.choice("[[Investigate Further->Jorm_FirstMeeting_PlayerBig_3]]");>>
\<<run setup.choice("[[Leave->Village]]");>><<set $CharacterSheet_Jorm.quest.available_encounterPassages_firstTime = false>>\
It is curious enough to warrant investigation. A few more steps carry you across the vast distance and close to one of the many ponds.
It is perhaps <<print setup.getLength(3937)>> in diameter and appears to be filled with <<SymbioteColor>> liquid.
\<<run setup.choice("[[Get closer->Jorm_FirstMeeting_PlayerBig_4]]");>>You crouch down to have a better look at it. Even this close, the Lost around it does not seem to react to your presence.
You can't help but notice that they seem significantly larger than normal, but that still make them miniscule compared to your vastness.
Despite that however, it nearly escapes your notice that all of them have their massive genitals submerged in the quivering liquid of the pond.
Something about that sight make <<SymbioteName>> stir within your loins, but not just that, there is something in the wind, a strange smell.
<<print setup.processFlavours($CharacterSheet_Player, "It makes your @[all|cocks|one=surges~more=surge] to full erection with such force and speed that you feel light headed for a moment.")>>
<<SymbioteName>> writhes beneath your skin with a mounting desire to emerge. The hole in the ground before looks more and more appealing, \
even considering that would struggle to actually contain your endowments. You place your hands on the ground next to it and your immense form looms over the pit.
<<print setup.processFlavours($CharacterSheet_Player, "You carefully line up your @[all|cocks|noverb] with the hole. Your @[all|cocks|noverb] over it and thick globs of pre fall into the liquid.")>>
The noise that unfolds gives you momentary pause. The Lost beneath you howl out in orgasmic bliss. Their bodies trash and flail as a mind breaking climax overwhelms them.
You can perceive the lost of other pits undergoing a similar experience.
\<<run setup.choice("[[Continue->Jorm_FirstMeeting_PlayerBig_5]]");>>The <<SymbioteColor>> goo within the pits lashes out and begins to engulf the Lost.
Their huge, muscular bodies shrink as the pond turns black.
Within seconds, they are fully engulfed into the pits to vanish completely.
You back away as the goo starts to churn and gurgle violently beneath you.
\<<run setup.choice("[[Continue->Jorm_JormEmerges_Big]]");>>The goo from each pit spill over and cover the land, only for it to retract in a rhythmic ebb and flow.
You hear a strange billowing sound from beneath the ground, something that sounds like an excited, heavy breathing.
\<<run setup.choice("[[Continue->Jorm_JormEmerges_Big_2]]");>>Then the earth begins to quake. A roar from beneath the earth emerge. The very ground you stand on begins to give in.
All the flattened land under your purview fall at once. It is a deafening, roaring cacophony.
A thundering destruction as chunks of packed earth fall into a dark abyss, never to be seen again.
Any hope, any chance of seeing into the hole is taken by the forming sandstorm which blots out the sky.
The sheer dryness and heat lead to a veritable lightning storm forming within.
The arcs and flashes of lightning illuminate a rising form. Higher and higher it seems to grow, emerging without end.
A tremendous wall which pushes the storm ahead of it.
Large limbs move with unnatural speed, a tail like an endless mountain ridge whipping with physics defying ease.
An earth splitting, deafening roar dispels the sandstorm.
<<link "Continue" setup.getInitialJormSizeDiffPassage()>><</link>>The ground rumbles. The earth quakes. The goo within the pit overflows, before it retracts again.
It is a mesmerizing ebb and flow before it finally pulls back again completely, only to leave a dark, yawning abyss in its wake.
The hole is so deep that light could not reach the bottom of it.
Then the ground ahead of you collapses.
\<<run setup.choice("[[Continue->Jorm_JormEmerges_Small_2]]");>>The earth falls, bereft of whatever support it may have had. Chunks of packed dirt, as large as houses, falls into the abyss.
An immense amount of dust is thrown up in the wake of this landfall.
You hear a deep groan from beneath.
Then you could see it. A shape took form in the billowing clouds of dust before you. It rose, rose ever greater, seemingly without end. \
Gigantic limbs moved behind the cover, a deafening roar, the earth splitting crack of a whip.
The clouds of dust are cast aside.
<<link "Continue" setup.getInitialJormSizeDiffPassage()>><</link>>The dust clears, you gaze upon a looming wall of <<SymbioteColor>>.
After a few seconds, you realize that this sheer, immense mountainside before you is the tail of an absolutely gargantuan naga.
You estimate his size to be <<print setup.getLength(setup.getStatValue($CharacterSheet_Jorm, "height"))>>, but there is simply no way to regard this beast with only a glance.
A stellar musculature ripples beneath glistening scales, it slowly draws your attention up along this cliff of muscle, and towards his groin.
This snake is most definitely a him indeed. His genital slit is but a little more than a natural cockring, \
which ensures that his pair of <<print setup.getLength(setup.getStatValue($CharacterSheet_Jorm, "cock"))>> <<print setup.processFlavours($CharacterSheet_Jorm, "@[all|cocks|one=remains~more=remain]")>> hard at all times.
These spires are adorned with barbs and ridges, the tips tapering just enough to ease themselves into significantly smaller holes. Their base flare with sufficient size to hint at the existence of a knot.
Beneath these two grand spires is the naga's sack, the skin of which burgeon with the four immense balls contained within.
In fact, it sits so tight to his body, these gonads should have been internal.
You hear them churn and gurgle up a storm.
\<<run setup.choice("[[Continue->Jorm_JormDescriptions_LargerThanPlayer_2]]");>>Taking your eyes off the naga's endowments is no easy task. They remain in the way even when you try to look up and past them, towards his doming midsection of abdominals.
Each is a towering hill, a small mountain in their own right, dark canyons sculpted flesh of the grand beast.
The path of musculature guided your eyes up further as your eyes followed along not just six, nor eight abs.
This road to glory seems insatiable as even twelve is not enough. Instead, the naga's long, powerful waist is rocking a solid twenty four huge, powerful abdominals.
The last quarter at the top is flanked by a pair of pectorals, before it ends in yet another enormous, bulging pair of chiseled and hard cut mounds of muscles.
Each of them is crowned by a fittingly gigantic, nipple. \
<<print setup.processFlavours($CharacterSheet_Jorm, "Though with how big these pectorals are, it's easy to imagine putting a lot more on them. That cleft is waiting for your @[all|cocks|noverb] to slide right between them.")>>
\<<run setup.choice("[[Continue->Jorm_JormDescriptions_LargerThanPlayer_3]]");>>Belonging to these four pectorals are four arms, each of which are engorged with an immense power and so absolutely thick with dense muscle that it is difficult to fathom that the naga could reach his own nipples.
He is a gigantic hulk of powerful muscle that make even the Lost appear tiny and insignificant to him.
<<if setup.getStatValue($CharacterSheet_Player, "muscles") > 100>>\
Only your own bulk could match his incredible girth and size.
<<else>>\
Not even your own size could hope to match the naga's power.
<</if>>\
Above all that, atop of a long and massive neck which ripple with incredible power and girth, throne the naga's head.
It is cast into shadow by the utterly gigantic - and slightly familiar - cobra hood that spans like wings and stretches over his traps to disappear somewhere into his immense shoulders.
He looks down at you.
His eyes and scales glow with an iridescent color, like a rainbow is pulsating within. \
Spiraling, confusing patterns run through his hood and thrum in tune with the color of his eyes.
\<<run setup.choice("[[Continue->Jorm_NamingDialogue]]");>>The dust clears and before you stands a <<SymbioteColor>> naga. The beast is an incredible sight for all it counts. \
The fact that its <<print setup.getLength(setup.getStatValue($CharacterSheet_Jorm, "height"))>> near matches your height at all is already a testament to how gigantic this beast is.
As if by instinct, your gaze drifts downwards, towards the massive and girthy tail of the beast. Snakes are usually all muscle anyway, but this monster takes the cake indeed. \
Though it is hard to look past the serpent's crotch. Two <<print setup.getLength(setup.getStatValue($CharacterSheet_Jorm, "cock"))>> spires jut forth from his groin.
\<<run setup.choice("[[Examine his crotch->Jorm_JormDescriptions_EvenToPlayer_2]]");>>The genital slit he once had has become little more than a natural cockring, ensuring that those dicks remain hard.
They are bristling with features no less, as their lengths are adorned with ridges, and the tapered tips overflow with fleshy barbs.
The hint of a knot hides at the base. Beneath this pair of genital spires hangs a tight, snug fitting scrotum that is stretched far by a quad of gigantic balls.
It is hard to take your eyes off that sight, considering how inviting these massive phalli throb and pulse.
\<<run setup.choice("[[Look upwards->Jorm_JormDescriptions_EvenToPlayer_3]]");>>Each ab is a thick, chiseled hill amidst a labyrinthe of canyons in between.
They are flanked by a pair of pectorals, which in turn are crowned by yet another pair.
All four are bulging, swollen mountains with massive fat nipple.
A real hand filling handlebar to hold on to and pull, while fucking his massive pectorals.
His four arms are staying in tune with the sheer girth of the serpent.
<<if setup.getStatValue($CharacterSheet_Player, "muscles") > 100>>\
They are almost as heavy as your own mass.
<<else>>\
Not even your own size could hope to match the naga's power.
<</if>>\
His arms are so big that he would not be able to touch his own nipples, or properly reach his own cocks. Between the size of his biceps and the girth of his chest, there simply is no space to accomodate for either.
\<<run setup.choice("[[Look upwards still->Jorm_JormDescriptions_EvenToPlayer_4]]");>>A remarkably long and thick neck leads up to his head, which in turn is crowned by a massive, - and familiar - cobra hood.
Iridescent, confusing, spiralling patterns draw attention towards his face.
Aside from the startlingly handsome muzzle, with its strong, firm cut jawline - it is all too easy to imagine him swallowing very, very large things.
His eyes glow with an iridescent light.
With each heartbeat, a different color pulses to the forefront, which happen entirely in tune with the patterns of his hood.
It is so difficult to look away.
\<<run setup.choice("[[Continue->Jorm_NamingDialogue]]");>>The dust clears and before you stands a <<SymbioteColor>> naga. You actually have to look down at it, even though the beast is easily <<print setup.getLength(setup.getStatValue($CharacterSheet_Jorm, "height"))>> tall.
What a dramatic entrance for such a little twerp. But then again, how could he hope to stand against someone like you - a living, breathing, growing god - anyway? Your eyes trail along the serpent's body.
For what he is worth, he's indeed on the powerfully built side. He is also most definitely a he, as a look at his groin so easily proves. Two <<print setup.getLength(setup.getStatValue($CharacterSheet_Jorm, "cock"))>> spires jut from his groin.
Their tapered tips bristle with fleshy barbs, only for thick ridges to take over along his length. Finally, towards the end of his members, there is the hint of a knot that has yet to inflate.
All of that is kept in check by a genital slit that has become little more than a cockring, unable to contain his endowments any longer.
Right beneath is a tight, snug fitting sack which held a quad of admittedly rather enormous testicles.
\<<run setup.choice("[[Examine his body further->Jorm_JormDescriptions_SmallerThanPlayer_2]]");>>Your eyes run up what is a solid double-dozen of abs, a road of a full twenty four thick abs, which stretch over the long and thick roid-gut of the serpent.
The upper quarter is flanked by a pair of pectorals, which in turn is topped by yet another pair. Each pectoral is crowned by a fat, swollen nipple, as large as a soda can in relation to the naga's size.
You'd barely be able to fit your lips around them, with how small they are compared to you. At least his arms promise to make for sufficient holds with how girthy they are.
They are burgeoning with powerful musculature in their own right, so much so that he would barely be able to bend them far enough to touch his pectorals or even dicks.
\<<run setup.choice("[[Look upwards->Jorm_JormDescriptions_SmallerThanPlayer_3]]");>>Finally your gaze drift along his powerful and long neck, to his face.
Your eyes are naturally guided that way.
Even though there is still a massive cobra hood to draw your attention, the spiralling patterns adorning it throbs with light. They pulse inwards and brought you to look upon his admittedly very handsome features.
Though really it is his eyes which are the real looker.
They glow with all colors of the rainbow, pulsating from one to the next, a beautiful sea to get lost in.
In fact, it is hard to tear your gaze away from them.
\<<run setup.choice("[[Continue->Jorm_NamingDialogue]]");>>The naga clearly notices you, what is at first an amused smirk now turns into a wide grin of delighted recognition.
You can see the glint of admiration in his rainbow eyes.
Herculean brawn creaks and groans as the serpent gives you a brief but nonetheless courteous bow. Its elegance is only marred by his musclebound physique and his own cocks.
He looks you right in the eyes as he straightens himself again.
"I am glad that we get another chance to meet, in what I hope are going to be more amicable conditions."
He speaks with a wondrously sonorous voice and a surprising amount of candor.
It is full of volume and timbre, but also brimming with barely contained lust and desire.
Still there are certain questions on your mind.
\<<run setup.choice("[[Continue->Jorm_NamingDialogue_2]]");>>"I know you may not remember, as last time we met I was in a considerably more pitiful state. I was barely even a feral animal."
His grin all but vanishes, making way for a wistful sigh.
His gaze returns to you and starts to drift down your body.
The coloration of his eyes and hood turn into a muted grey red. His sorrows seem to conflict with his arousal.
He licks his lips, his hands meet each other on the way down.
He rubs them together so hard his knuckles nearly seem to pop out.
"Just thinking back to it already..."
<<link "Continue" setup.getJormIntroductionPassage()>><</link>>"The way you took me. How your warmth filled me... it was..."
He pauses for a moment and a shudder rolls through his body, while a gush of pre spurts from his shafts.
"I could feel your unbridled lust rush through me. It was like a fire illuminating the darkness that had taken hold of my mind. \
Your seed washed it all away, like a purifying rain cleanses the land, it freed me of the affliction controlling me."
\<<run setup.choice("[[Continue->Jorm_NamingDialogue_ToNamingPrompt]]");>>"When you took me into yourself and surrounded me in your warmth.."
He pauses for a moment and a shudder rolls through his body, while a gush of pre spurts from his shafts.
"Your unbridled, all consuming lust shone like a beacon as you unraveled me. \
In that brief moment where you stripped me bare and we became one, you burned away the affliction which had cast me into darkness. \
For the first time in... I don't know how long, I was truly free when you released me back into the swamp."
\<<run setup.choice("[[Continue->Jorm_NamingDialogue_ToNamingPrompt]]");>>"When I took you into myself and felt your warmth fill me..."
He pauses for a moment and a shudder rolls through his body. A gush of pre spurts from his shafts.
"The power that I felt when you melted away inside me and we became one, if for but a brief moment... \
In that moment our souls touched and I could feel, see, that unbridled flame of lust inside you. \
And just like our souls, it touched me, scorched me, illuminated my mind and burned away the darkness holding me trapped."
He let out a rumble, before sucking down the drool pooling in his mouth.
\<<run setup.choice("[[Continue->Jorm_NamingDialogue_GotFuckedByNaga_2]]");>>"R-Right! Let me return what I took. It is the least I could do now."
He utters and reaches forward to touch your chest with one hand.
<<SymbioteName>> reaches out in for him in turn as the symbiotic goo covering you stretches forth.
His hand submerges inside you. It is impossible for you to see where <<SymbioteName>>'s goo end and his begin.
The strangest sensation flows through you, followed by a sudden, reinvigorating rush of energy.
\<<run setup.choice("[[Continue->Jorm_NamingDialogue_ToNamingPrompt]]");>><<if setup.sizeCharactercomparison($CharacterSheet_Jorm, $CharacterSheet_Player) > setup.Comparators.BIGGER>>\
His tail shifts and comes up next to him. With a motion of his hand he offers you to have a seat upon him.
It feels rather strange, he is about as hard as you'd expect from someone so shredded, yet it is a little squishy, just enough to not be uncomfortable to sit on.
<</if>>\
"You can feel it, yes?"
He asks as he looks through you again. His hood has turned into a brighter yellow colour now.
"The connection that we both share? It was only faint at first, but now that we're this close together, it has grown so much stronger. It is so much easier to perceive."
You can feel <<SymbioteName>> stirring in the back of your mind. Your permanent companion is unusually animated.
"Ahh? What I mean...?"
He wonders, before his eyes go wide and he nods.
"Ah! I understand. I was talking to the one you call <<SymbioteName>>, host. So it seems that he cannot speak through you? Or do you choose not to say what he tells you to? Can you even hear what he says?"
<<set $passageName = "Share info about the dream that shaped "+ $CharacterSheet_Player.symbiote.info.name>>\
\<<run setup.choice("[[$passageName->Jorm_NamingDialogue_ToNamingPrompt_WithinDreams]]");>>
\<<run setup.choice("[[Refuse to answer him->Jorm_NamingDialogue_ToNamingPrompt_RefuseAnswer]]");>>You shake your head and tell him that outside of some weird dreams, you can't remember ever having ‘spoken' with <<SymbioteName>>, and even in those dreams you never heard him talk.
The naga nods in response as the yellow shifts towards a strangely warm blue.
"I see! Very well then. I shall talk to you too then. It is just as well and only proper, for you have brought my sire and me together again."
He practically beamed with his smile and shuffled ever so much straighter in his ‘seat'.
<<set $passageName = "Ask why he calls "+ $CharacterSheet_Player.symbiote.info.name +" his 'sire'">>\
\<<run setup.choice("[[$passageName->Jorm_NamingDialogue_ToNamingPrompt_Sire]]");>>
\<<run setup.choice("[[Refuse to answer him->Jorm_NamingDialogue_ToNamingPrompt_RefuseAnswer]]");>>Sire? He promptly clicks his tongue and tilts his head as one of his hands comes up to his face with a wavy motion.
"I am afraid there is no easy answer to that question, for I myself don't entirely understand it either."
He responds and smirks.
"But let me try. Maybe speaking out loud helps connect the dots I have been missing so far. \
You see, <<SymbioteName>> and I share a bond that is... somewhat similar to what you and he shares, and yet it's different. \
We are kin, in a way. \
We haven't been before, but now we are. Whether by choice or accident, during our last encounter, he has given me a sliver of himself, of his very being even, \
his burning passion and lust, which I since carried like a torch to burn away the darkness the Corruption poses."
\<<run setup.choice("[[Continue->Jorm_NamingDialogue_ToNamingPrompt_PostAnswer]]");>>He promptly clicks his tongue and tilts his head as one of his hands comes up to his face with a wavy motion.
Even with your cold response, his interest in you does not wane.
\<<run setup.choice("[[Continue->Jorm_NamingDialogue_ToNamingPrompt_PostAnswer]]");>>"I am freed from the feral beast I once was, for which you have my deepest thanks. I will do what I can to repay this debt I now owe you."
He finishes, with a deep red glowing within his eyes and hood.
"It may sound incredibly bold of me, considering what I just said, but may I be so forward as to request your aid again? I am sure it will serve us both."
He suggests and motions to the side, but stops midway. His eyes dart around as if he searches something that is no longer there.
As if he is only now becoming aware of the devastation that his emergence has caused.
\<<run setup.choice("[[Continue->Jorm_NamingDialogue_ToNamingPrompt_PostAnswer_2]]");>>"Err, right. As you no doubt saw when you arrived, I am gathering the Lost to me. \
I do so in an attempt to give them slivers of myself, so they too can regain their minds like I did when you gave me a piece of yourself. \
I have tried several approaches, but I have yet to succeed like you did."
He tries to rub his forehead, but his bulk prevents him from fully reaching it.
\<<run setup.choice("[[Continue->Jorm_NamingDialogue_ToNamingPrompt_PostAnswer_3]]");>>"Though I admit that my memory is hardly infallible, I believe my technique can be improved. \
It doesn't seem like I will be running out of opportunities to experiment either. The Lost only seem to grow more numerous no matter how many I devour. \
Which is just as well as they provide me with sustenance and power, so even when I fail, I become stronger and smarter for it."
He pauses for a second and turns his gaze back to you and away from the destruction.
"And now that you are here... if you lend me your aid, I am sure that it will be only a matter of time before I succeed."
He smiles wide and expectantly at you, but all you can see are the two massive cocks throbbing in audible excitement.
Boom. Boom. Boom.
Each time his heart beat sent them bouncing.
\<<run setup.choice("[[Continue->Jorm_NamingDialogue_ToNamingPrompt_PostAnswer_4]]");>>The naga took that moment of silence for indecision as he raises his hands in placative fashion.
"You need not decide now. I realize I ask much, for it is no easy task and the commitment necessary will be great. Take your time to think it over."
He advises with a little smirk, which is followed by visible embarrassment creeping into his expression.
It is kind of amusing to see a titan of his built looking this embarrassed.
"M-Maybe in the meantime, could I, yet again, ask you for your help with a different problem of mine? You see, while I was Lost, \
I forgot much of myself and I have only recently been remembering things again, and while I think I have a good idea of what I once did, there is one thing that continues to elude me no matter how hard I try."
He pauses and purses his lips.
"Could you, my sire, perhaps look deep into our connection and reveal what has so far escaped me? Can you tell me who I am?"
\<<run setup.choice("[[Continue->Jorm_NamingPrompt]]");>>It started as a whisper, but slowly became louder, clearer. It was your own voice, resonating in your mind, uttering a name. The Name.
<<textbox "$CharacterSheet_Jorm.info.name" "Jorm">>
\<<run setup.choice("[[Whisper his name->Jorm_NamingPromptEnd]]");>>You utter the serpent's name. $CharacterSheet_Jorm.info.name and his eyes light up. A wide smile starts to spread across his muzzle.
"Y-yes! That... that sounds familiar. That sounds right."
He murmurs in turn and starts to nod.
"$CharacterSheet_Jorm.info.name that is... that is it. Thank you."
He looks at you again, as if he saw you for the first time now.
A bit of a sly smile spread across his muzzle as he began to recline on his coils again. It was a low, steady grinding as the scales scrap against each other.
"We will meet again <<SymbioteName>>... After all, the universe is ours to shape."
He gives you a glance before slithering away with uncanny speed, his eyes burning with purpose.
\<<run setup.choice("[[Continue->Village]]");>><<set $CharacterSheet_Jorm.quest.available_encounterPassages_jormPostNameSetup = false>>\
A few hours after you leave the Golden Bastion, you feel a distant rumble.
It rages from the horizon and gets increasingly louder, like a crash of thunder that never seems to end.
Soon you see him, <<print $CharacterSheet_Jorm.info.name>>, the monstrous naga beast. His form rises, taking over the scenery as he rushes towards you.
He pounces, crashing upon your midriff, his hands groping your cocks with not a single moment wasted.
"You're finally back." He mutters.
"Let us experience your boundless lust again, <<SymbioteName>>~"
<<link "Continue" setup.getSecondJormSizeDiffPassage()>><</link>>$CharacterSheet_Jorm.info.name lunges at you with a speed that should not be allowed for a creature of his size.
He casts his shadow over you as his four massive arms come slamming down into the ground next to you, his fingers dig into the earth and tear deep trenches that would leave marks for generations to come. \
<<print setup.processFlavours($CharacterSheet_Player, "Or until the next time he would slither over it anyway. His huge forked tongue licks over your @[all|pecs|noverb] and down your belly with its @[all|abdominals|noverb] before it reaches your crotch. ")>>
<<print setup.processFlavours($CharacterSheet_Player, "With how absolutely huge he is, his tongue easily wraps around your @[all|cocks|noverb]. He goes on to display remarkable dexterity with that appendage as he starts to rub and stroke along your @[all|cocks|noverb]. ")>>
It is a tight, powerful and yet slick embrace that leaves you panting.
\<<run setup.choice("[[Continue->Jorm_PostNamingPrompt_PlayerSmaller_2]]");>>A second tongue emerges from <<print $CharacterSheet_Jorm.info.name>>'s maw. It guides your maleness into his waiting, salivating maw, which quickly dives down your full length with a reckless abandon. \
But such is the advantage of being a gigantic snake. Your girth rams its way down his esophagus, only to disappear in his chest.
You feel the hot, slimy embrace within his body, the powerful muscular contractions as the naga swallows and gulps.
Your hands come forward as you grasp his head and hood, holding on to him, trying to force him down even further.
He grasps your sides and lift you up. He pulls you back into the embrace of his long, massive coils.
His <<SymbioteColor>> hide ripples beneath your body as he brings you tight into his embrace.
You are surrounded by his flesh.
\<<run setup.choice("[[Continue->Jorm_PostNamingPrompt_PlayerSmaller_3]]");>>The noise of his body moving, its parts grinding together, it smothers out the rest of the world.
Then this absolute juggernaut of a serpent makes use of his remarkable flexibility. He throws his hips forward and brings his absolutely gigantic members to bear against your body.
<<if setup.getStatValue($CharacterSheet_Jorm, "cock") > setup.getStatValue($CharacterSheet_Player, "height")>>\
<<print setup.processFlavours($CharacterSheet_Player, "The idea that his @[all|cocks|noverb] would be able to fit inside you is a laughable notion. ")>> \
Those monsters are larger than you!
<</if>>\
The sheer leverage his size affords him makes him handle you like a little doll. The lust that burns within his bright pink eyes makes it evident that he could not be reasoned with. \
The first of his tapered lengths presses against your rear entrance, smears it with a deluge of pre. By volume alone it already found its way into you, preparing your rear for the inevitable penetration.
\<<run setup.choice("[[Continue->Jorm_PostNamingPrompt_PlayerSmaller_4]]");>>It is a monstrous sensation as it enters, the stretch... the pressure it exerts on your insides. A primal roar leaves your lips as your balls unload into $CharacterSheet_Jorm.info.name throat, gushing your thick cream down his needy esophagus.
It is only the first of many orgasms to follow. The gigantic beast of a naga milks you for all you're worth, stretching you impossibly far over his cocks.
He blows load after load into you, almost in perfect sync with your own climaxes. Each pump sees you swell larger with the seed he dumps into you, pushing your body's elasticity to ever greater limits.
Impossibly enough, the seed he drinks from you sees him grow larger as well. Each climax adds inches to his frame, which given his immense size had to be hundreds of tons worth each.
The immense beast purrs rather happily, though his size makes it so loud, unbelievably powerful.
\<<run setup.choice("[[Continue->Jorm_PostNamingPrompt_PlayerSmaller_5]]");>>It is impossible to tell how much time passes in this embrace. The world is all but gone from view. Your entire world is enraptured, engulfed by $CharacterSheet_Jorm.info.name body.
It is narrowed down, reduced to the grinding noises of scales upon scales, the groaning of muscle fibres hundreds of meters long and the low growling and gurgling of cumbloated bellies.
Orgasm follows orgasm in relentless pursuit until it all blurrs together in a drowned swamp of desire. \
Your nose is filled with the stench of your mutual rutting, the reek of sex is overpowering.
Time seems to melt away, becoming a distant and barely relevant concept as all that remains is the burning pleasure and passion of this eternal intercourse.
\<<run setup.choice("[[Continue->Jorm_PostNamingPrompt_PlayerSmaller_6]]");>>But eventually even a near bottomless stamina runs out. The near endless appetite is sated. Consciousness slowly returns to a semblance of existence and the rut calms down. \
You feel a little sore in the aftermath of it all, your belly still distended into a noticeable gut, but now you are cuddled firmly into the embrace of the naga's coils.
"The world will know what we're made of... We'll meet again soon."
(in a future version)
\<<run setup.choice("[[Continue->Village]]");>>The naga presses against you, his hands rub over your chest and down along your abs as his enormous tail begins to wrap around your lower body. \
In a display of immense power and surprising dexterity, he turns you around and your back meets his chest.
<<if setup.getStatValue($CharacterSheet_Player, "muscles") > 100>>\
His arms try - with futility - to wrap around your torso and pull you into a firm, powerful hug. \
He does not quite clear your immense chest of course, but the sheer size of his own massive build does still allow him to give you a muscle hug.
<<else>>\
His enormous arms wrap around your torso and engulf you in his incredible musculature.
<</if>>\
You can feel his biceps grind against your body. How his chest flexes and swells against your back with each massive breath he takes.
"Let us fill each other~"
He breathes heavily into your ear. You could smell the lust on his breath. The desire he exhales is intoxicating. \
\<<run setup.choice("[[Continue->Jorm_PostNamingPrompt_PlayerEven_2]]");>>It is hard to say no really. Feeling the warmth of his luscious body press against you while his scales scrape along and massage over your form. \
<<print setup.processFlavours($CharacterSheet_Player, "His tail start to grind and rub over your groin, and soon come to squeeze your @[all|cocks|noverb] inbetween it.")>> \
<<if setup.getStatValue($CharacterSheet_Player, "cock") > setup.getStatValue($CharacterSheet_Jorm, "height")>>\
<<print setup.processFlavours($CharacterSheet_Player, "You can feel your @[all|cocks|one=presses~more=press] against a thick, slick and incredibly hot fold in his tail, which reveals itself to be the snake's positively gaping anus.")>> \
<<print setup.processFlavours($CharacterSheet_Player, "He puts his elasticity on display as it slides over your @[all|cocks|noverb], engulfing you fully in the moist and heated embrace of his thick and powerfully muscled tail.")>> \
<<else>>
<<print setup.processFlavours($CharacterSheet_Player, "Seconds later, it moves to slide over your @[all|cocks|noverb], engulfing you fully in the moist and heated embrace of his thick and powerful tail.")>> \
<</if>>\
You feel it flex and massage, grip and knead around your maleness, but at the same time you can feel how his own maleness presses against your back and finds its way towards your own entrance. \
<<print setup.processFlavours($CharacterSheet_Player, "The tapered, yet brutally thick torpedos that are his cocks find easy purchase against your backside. A sudden thrust drives your own @[all|cocks|noverb] deep into $CharacterSheet_Jorm.info.name body. ")>> \
It is an incredible sensation.
\<<run setup.choice("[[Continue->Jorm_PostNamingPrompt_PlayerEven_3]]");>>The sheer girth of his shafts, their length and the texture, it all rails through your insides. It's as if they are not quite as solid as they appear. \
Your hands grasp his coils as they wrap around you, his hands in turn squeeze hard into your pectorals, groping and kneading them with strong intent.
You barely have to do anything in the undulating embrace of the naga.
He gropes and thrusts, massages and kneads.
<<print setup.processFlavours($CharacterSheet_Player, "Your @[all|cocks|one=is~more=are] treated to a marvellously warm envelope, which contracts and milks you with such strength that his flesh rubs and grinds over every inch of your maleness.")>>
Meanwhile his shafts pump within you, up and down, in and out. His ass meets yours, again and again, his balls swinging back and forth, slapping against his tail and into your sack with delectable force.
To your size, it is but like a regular slap indeed, but for normal sized people, this would have been cataclysmic forces at work. \
Each impact, each time his groin meets your ass, a veritable shockwave ripples forth.
\<<run setup.choice("[[Continue->Jorm_PostNamingPrompt_PlayerEven_4]]");>>Similarly, the earth quakes as you roar out the inevitable climax. It could be heard for miles into every direction, half the wasteland would know of your release.
Unimaginable amounts of thick cream floods forth from your balls.
The naga's tail engorges with what you pump into him, on top of the bulge your endowments already give him. But in turn, he too blows his load, right into you.
You feel the incredible heat spread through your form as his spooge fills your bowels, overflowing them, spills into your stomach and makes your belly dome with the sheer volume.
It is heavy and so warm.
And it is only the beginning.
\<<run setup.choice("[[Continue->Jorm_PostNamingPrompt_PlayerEven_5]]");>>Your stamina and sexual appetite are near endless, as are <<print $CharacterSheet_Jorm.info.name>>'s.
The pleasure is all that matters, feeling his scales against your body, muscles grinding upon muscles, cocks pumping sheer ceaselessly.
The two of you tumble over each other as you try to find ever new positions to rut in.
Two immense giants, stomping and crushing the already blasted wasteland, crushing through the pit that $CharacterSheet_Jorm.info.name calls home.
Entire lakes of cum form as minutes became hours, became days.
\<<run setup.choice("[[Continue->Jorm_PostNamingPrompt_PlayerEven_6]]");>>Eventually though, even the deepest wells of stamina are depleted and the grandest hungers are sated.
The carnal feast comes to an end, bellies bloat with cum, balls empty of seed - at least for the moment.
You couldn't help but notice that you have fucked the serpent larger. Each climax makes him bigger, each load of your seed pump his muscles, engorging his endowments.
Now his huge, powerful coils are wrapped around you once more. Like a bed and blanket in one. His upper body is next to you, two hands idly stroking your chest.
A surprisingly merry grin is on his face.
"The world will know what we're made of... We'll meet again soon."
(in a future version)
\<<run setup.choice("[[Continue->Village]]");>>You grin down at the serpent, who in turn lunges at you with lustful desire. You barely even notice his impact against your gigantic form.
He really is small compared to you, tiny even, but he makes up for that with sheer zeal and intent.
His serpentine body does its very best to wrap around, to coil and engulf your endowments, and for a little while you let him try.
\<<run setup.choice("[[Help him soothe his itch->Village]]");>>"Let me help you~" You chime with your booming, gigantic voice and your hands reach down to grasp the horny muscle rope.
He writhes and squirms, desperately trying to tease you by slithering along your hands.
"Fuck me!" He demands. "Fill me with your cum, with your power! Make me grrrrooowww!"
The serpent bellows, and even though his voice echos across the landscape with a volume that could burst eardrums, it only reaches your ears as a little squeaking.
For the moment you feel willing to entertain this idea. The little beasty provides an awful lot of teasing after all, and <<SymbioteName>> demands for your lust to be sated. The pressure in your balls has to be relieved.
\<<run setup.choice("[[Use him to jerk yourself off->Jorm_PostNamingPrompt_PlayerBigger_3]]");>>"Lets see if you can take me then."
Your voice rumbles lowly, ominously even, as your hands roams over and inspects the naga's body.
He really is a juggernaut, just a shame that he is so tiny compared to a titan like you.
You find him to be remarkably stretchy and malleable, almost as if he has no actual bones to speak of.
It gives him a freakish - and much needed - durability.
<<print setup.processFlavours($CharacterSheet_Player, "Muzzle first you pull him over your @[all|cocks|noverb], as if he is little more than a towel. He fits around your dick with ease. ")>>
He stretches so thin that his body loses most if not all of his definition.
He grips around you with surprising power and strength, which really made him better than any fucktoy could ever hope to be.
With how pent up you are, it doesn't take long for climax to emerge.
\<<run setup.choice("[[Fill him to the brim->Jorm_PostNamingPrompt_FillHim]]");>>
\<<run setup.choice("[[Deny him->Jorm_PostNamingPrompt_DenyHim]]");>>You feel generous enough to oblige his request, the pressure and pleasure grows too great for you to hold in anyway.
You roar out as your load explodes forth and floods right into the eager $CharacterSheet_Jorm.info.name.
His grip is strong, but you still have to hold him in place, lest he launches off by the force of your orgasm.
With gritted teeth and a wide grin, you watch Jorm's form balloon outward.
Cum drips from his muzzle and ass as your output greatly exceeds the rate at which he could stretch.
\<<run setup.choice("[[Fill him some more...->Jorm_PostNamingPrompt_FillHim_2]]");>>His <<SymbioteColor>> hide draws so incredibly thin that he becomes practically see through, allowing you to witness the lake of cum you pump into him.
He becomes almost as catastrophically huge as yourself. The squishy tube that is his body becomes nigh impossible to handle as he flops to the ground.
You could see him grow. Slowly, but steadily, the bloatedness shrinks as your orgasm wanes and the output lessens.
\<<run setup.choice("[[Continue->Jorm_PostNamingPrompt_FillHim_3]]");>>His body groans and gurgles, his grip around your endowments in turn strengthens. It spurs you on to use him more, use him harder.
You continue to jackhammer into him with ferocious desire, and make the most of his growth and insane durability.
He is an amazing sleeve to ram into, the experience only becomes better with each climax you pump into him.
A lake's worth of cum soon becomes an ocean, the size gap between the two of you steadily shrinks.
\<<run setup.choice("[[Continue->Jorm_PostNamingPrompt_FillHim_4]]");>>Many hours and dozens of orgasms go through before your balls finally empty.
At that point, $CharacterSheet_Jorm.info.name has grown to be your near equal in size. \
<<print setup.processFlavours($CharacterSheet_Player, "When he lets go of you @[all|cocks|noverb] and rises up to eye level with you, his eyes and markings glow in a powerful pink that only slowly turns back into his rainbow colours. ")>> \
"Thank you." He churrs, his voice so much deeper, so much more powerful, now that he is a titan like you.
"This power..." He huffs as he raises his arms, flexing them in a remarkable, wonderful display of huge.
"We'll meet again soon."
"Time for me to show the world what I'm made of... "
(in a future version)
\<<run setup.choice("[[Continue->Village]]");>>And while he had demands you fill him...
Why should you?
He is in no position to demand anything.
\<<run setup.choice("[[Continue->Jorm_PostNamingPrompt_DenyHim_2]]");>>Your breathing becomes more laboured as you fight against the impending climax.
He grip hard and tries to resist being removed, but he is powerless to stop you.
The pressure reaches its peak and breaches through your dam. You couldn't quite hold it all the way, $CharacterSheet_Jorm.info.name comes free just as you roar out your climax.
\<<run setup.choice("[[Cum->Jorm_PostNamingPrompt_DenyHim_3]]");>>The world trembles as orgasm overwhelms, the flood of seed nearly tears the snake out of your hands, \
<<print setup.processFlavours($CharacterSheet_Player, "but you hold on tight to the desperately gulping reptile. He promptly rubs and strokes himself over and against your @[all|cocks|noverb]. ")>>
Your load flies onward, filling the pit <<print $CharacterSheet_Jorm.info.name>>'s emergence has left behind. While it becomes a veritable lake to countless mortals, to you it is little more than a puddle.
A lake wouldn't do though. You are hardly getting started. You do not stop until there is an ocean of your cum.
\<<run setup.choice("[[Cum->Jorm_PostNamingPrompt_DenyHim_4]]");>>You reduce $CharacterSheet_Jorm.info.name to be little more than a toy, a tool for you to rub out climax after climax.
Your arms feel ready to fall off from the exertion of masturbation, your balls seem ready to proclaim their emptiness, and so by the end of it, \
$CharacterSheet_Jorm.info.name is dazed, barely even conscious.
\<<run setup.choice("[[Continue->Jorm_PostNamingPrompt_DenyHim_5]]");>>He awakes, startled and in your lap, his gaze drifts about before it focuses on the wall that is your body.
"What happened?"
He utters, before memories seemingly rushs back into him.
"That was... unbelievable. Please, leave me some time to recover." He pouts.
"We must meet again."
(in a future version)
\<<run setup.choice("[[Continue->Village]]");>>You fall under the Lost <<print setup.getRaceName($CharacterSheet_Lost_Entity)>>'s might. He howls in victory and knocks you down on your knees with his tremendous bulk.
The corrupted <<print setup.getRaceName($CharacterSheet_Lost_Entity)>> <<print setup.processFlavours(
$CharacterSheet_Lost_Entity,
'"Spreeeeaaad..." he moans as he stands over your chest, letting his @[all|cocks|noverb] drip thick ebon precum onto your chest.'
)>>
The black spread across you, covering your body from tip to toe in his corrupting essence.
You feel the presence of $CharacterSheet_Player.symbiote.info.name being smothered by something far larger and more sinister until nothing remained but the husky voice of the Lost.
Your eyes roll into the back of your head as you experience visions of yourself transformed into a voracious black monster, shoving your massive dick into your victims.
A bond builds between you and the <<print setup.getRaceName($CharacterSheet_Lost_Entity)>>. He has chosen you as a mate, a mate that will spread his gift to everything in the Barrens.
Yes. This is how it always should be. The power you truly craved. There is no point in resisting the call to your greater purpose.
You take the monster's pulsating rod into your mouth suck it eagerly. Your soul barely clings to you as you completely give yourself away to your new mate.
You feel the <<print setup.getRaceName($CharacterSheet_Lost_Entity)>>'s orgasm coming; you tense your jaws and hold on like your life depended on it.
"GRAAHHHHH!" The monster howls madly as thick loads of corrupting seed fills your very being.
Your body bulges larger and larger, wider and wider still - more muscular and corrupted until the last of your memories fade into a pool of oily black.
Your soul breaks under the insatiable arousal. Now no longer compatible with your body, it bursts out of you and drifts upwards.
\<<run setup.choice("[[This body has moved on...->Death]]");>><<print setup.processFlavours($CharacterSheet_Lost_Entity, "His @[all|cocks|one=rises~more=rise] to a full")>> <<print setup.getLength(setup.getStatValue($CharacterSheet_Lost_Entity, "cock"))>> as he sees you. It throbs with hunger.
"More..." It mumbles between groans.The corrupted <<print setup.getRaceName($CharacterSheet_Lost_Entity)>> is overwhelmed by your strength. Yet, his need to spread has consumed all reason within him long ago.
While clutching his wounds, he charges at you.
<<print setup.getFlavourBasedDescription($CharacterSheet_Player, "lostWin1", 1, $CharacterSheet_Lost_Entity)>>
The <<print setup.getRaceName($CharacterSheet_Lost_Entity)>> does not try to get back up; laying himself bare. He finally sees that dominating you would be impossible.
He ruts against your flesh. Although wounded, his arousal still had to be sated. Lustful whines reach your ears as he spreads his legs and exposes his ass to you, desperately craving your attention.
\<<set $CharacterSheet_Lost_Entity.quest.beatenOnce = true>>
\<<run setup.choice("[[Fuck him->Encounter_Win_Lost_Entity_Fuck]]");>>
\<<run setup.choice("[[Leave->Encounter_Lost_Leave_NoSex]]");>>\<<set $CharacterSheet_Lost_Entity.info.known = setup.EncounterKnownState.KNOWN>>
\<<set $CharacterSheet_Lost_Entity.quest.met = true>>
\<<run $CharacterSheet_Lost_Entity.info.muscles = 30>>
\<<run $CharacterSheet_Lost_Entity.info.height = 90>>
\<<run $CharacterSheet_Lost_Entity.info.cock = 23>>
\<<run $CharacterSheet_Lost_Entity.info.balls = 8>>
\<<run $CharacterSheet_Lost_Entity.info.name = "The Lost " + setup.getRaceName($CharacterSheet_Lost_Entity)>>
\<<run $Encounter_Target=$CharacterSheet_Lost_Entity>>
After an hour of travel in the harsh deserts of the Barrens, you hear a strange sound. It sounds like a fusion between a deep moan and a terrifying growl.
You recognize it as the unsettling call of the Lost. Monsters whose souls have rotten under countless days of debauchery.
The corrupted <<print setup.getRaceName($CharacterSheet_Lost_Entity)>> <<print setup.processFlavours(
$CharacterSheet_Lost_Entity,
"roars as it catches your scent. Soon, a shambling monstrosity appears from the apex of a nearby dune." +
" Black oil drips off of its body, the corrupt colour shimmering upon @[all| heads| a~an]. A @[1| tongues| noverb] hungrily rolls from his mouth as his @[all| eyes| noverb] fixate on you.\n"
)>>
\<<if $CharacterSheet_Lost_Entity.quest.beatenOnce>>
Its massive muscular form looks even larger than the last Lost you had encountered.
Your cock grows hard at the thought of enaging with this one, too.
\<<else>>
\You've never seen muscles as bloated as this.
\<</if>>
His body pulses and writhes with more and more size, as if every breath he takes expands his frame larger and more monstrous with no end in sight.
<<print setup.getFightStartPassages($CharacterSheet_Lost_Entity)>>You leave the Lost <<print setup.getRaceName($CharacterSheet_Lost_Entity)>> to his own devices. His hand travels to his cock to satiate his own unending needs.
Who knows what could have happened if you had to give in to your desire.
Regardless, the entire ordeal has left you in an uncomfortably aroused state.
\<<run setup.choice("[[Leave->Village]]");>>You assure him that you are fine as you get back onto your feet. After a few minutes of elaborate gestures of thanks, you part ways.
\<<run setup.choice("[[Leave->Village]]");>>You smile at him. $CharacterSheet_Player.symbiote.info.name recedes inwards as you return to your normal form.
((To be implemented at a later stage!))
\<<run setup.choice("[[Invite him to the Golden Bastion->Recruit]]");>>
\<<run setup.choice("[[Leave->Village]]");>>The <<print setup.getRaceName($CharacterSheet_Lost_Entity)>>'s corrupting essence has made you grow, but this was not nearly enough! Your need for power is now too severe for just a taste. You need more.
You bring your fingers to your mouth and taste remnants of the <<print setup.getRaceName($CharacterSheet_Lost_Entity)>>'s black seed. Its intense flavour makes you shiver.
Thick $CharacterSheet_Player.symbiote.info.colour goo slowly oozes out from your pores. A puff of steam escapes your slavering maw.
<<print setup.getFlavourBasedDescription($CharacterSheet_Player, "lostKiss", 1, $CharacterSheet_Lost_Entity)>>
"We'll be unstoppable..." you growl, two distinct pitches colouring your voice.
\<<run setup.choice("[[Merge with the black goo->Encounter_Win_Lost_Entity_Absorb_2]]");>>The air is thick with debauchery. You could feel the embers of lust, the scent of sex overpowering all else. All testaments to your superiority as a host.
The <<print setup.getRaceName($CharacterSheet_Lost_Entity)>>'s chest heaves upwards as the black ooze seems to shiver across his form. It senses the power contained within you.
<<print setup.getFlavourBasedDescription($CharacterSheet_Player, "mergeLost1", 1, $CharacterSheet_Lost_Entity)>>
The <<print setup.getRaceName($CharacterSheet_Lost_Entity)>> gradually turns from an oily black to a soft <<print setup.getRandomColor()>>.
It only takes a few seconds for the last flickers of corruption to seep into the ground beneath the <<print setup.getRaceName($CharacterSheet_Lost_Entity)>>. His previously hulking form deflates.
Once standing at <<print setup.getLength(setup.getStatValue($CharacterSheet_Lost_Entity, "height"))>> has now reduced to a far less egregious state of <<print setup.getLength(setup.getStatValue($CharacterSheet_Lost_Entity, "height") - 14)>>.
His form is now back to his old thin powerless self - now free of the corruption that had plagued him for countless days.
He coughs and splutters as black ooze pools out of his mouth. With disgust, you see him snarl at the droplets that seep into the ground before he collapses, exhausted. Holding his stomach, he rolls over to gaze into your eyes. A sudden wretch catches him off guard as remnants of your cum forcefully expels itself from his stomach. "Who and what are you!?"
\<<if setup.getStatValue($CharacterSheet_Player, "corruption") >= 75>>
How dare he adress you in such a pathetic form! Your growl hungrily, you desire a mate, a mate that can satisfy your unquenchable desire, not some pathetic weakling!
\<<elseif setup.getStatValue($CharacterSheet_Player, "corruption") >= 50>>
The euphoria of the corruption brings you to your knees.
You register that the uncorrupted <<print setup.getRaceName($CharacterSheet_Lost_Entity)>> has rushed up to you, but you struggle to comprehend his words through the dark haze of lust that swirls within your mind. The corruption within you teases you with sparks of pleasure across your body.
\<<else>>
The euphoria of the corruption brings you to your knees. It's difficult to resist the call. It feels like you could easily lose your senses if you weren't cautious around these creatures.
The freed <<print setup.getRaceName($CharacterSheet_Lost_Entity)>> wobbles to his feet and hobbles toward you. "H-hey! Don't you give in, you hear me!?" he yells, "You can't fall! You saved me!"
\<</if>>
\<<if (setup.sizeNormalPersoncomparison($CharacterSheet_Player) >= setup.Comparators.FITS_ON_FINGER) and (setup.getStatValue($CharacterSheet_Player, "corruption") >= 75)>>
<span class="glitch" data-text="Recruit Him">[[Recruit Him->Planetary69Ending]]</span>
\<<elseif setup.getStatValue($CharacterSheet_Player, "corruption") >= 75>>
\<<run setup.choice("[[Recruit Him->Encounter_Win_Lost_Entity_Corrupt]]");>>
\<<run setup.choice("[[Leave him be->LeavePurified]]");>>
\<<elseif setup.getStatValue($CharacterSheet_Player, "corruption") >= 50>>
\<<if Math.floor(Math.random() * 2) == 1>>
\<<run setup.choice("[[Recruit Him->Encounter_Win_Lost_Entity_Corrupt]]");>>
\<<else>>
<span class="inactive">[[Recruit Him->Recruit]]</span>
\<</if>>
\<<run setup.choice("[[Leave him be->LeavePurified]]");>>
\<<else>>
<span class = "inactive">[[Recruit Him->Recruit]]</span>
\<<run setup.choice("[[Leave him be->LeavePurified]]");>>
\<</if>><<print setup.processFlavours(
$CharacterSheet_Player,
"It's not enough! It can never be enough!"+
" You need the Lost, you need more of them! Lost to serve you and you alone!"+
"\n\nResponding to your corrupt will, your ever increasing stream of pre turns into a dark ebon shade."+
"\You grin maliciously as your grab your @[all|cocks|noverb] - you would make him yours! Yours and yours alone!"
)>>
"W-wait! What are you doing!?" He yells as you frantically piston your hands along your length and grab the unsuspecting <<print setup.getRaceName($CharacterSheet_Lost_Entity)>> by the shoulder in a vice grip. "Get off me!" He weakly struggles, going as far as biting your arm to escape.
Futility.
<<print setup.processFlavours(
$CharacterSheet_Player,
"Thoughts of turning him are driving you over the edge. Your movements became erratic as you feel the corruption manifest as a massive bubble at the base of your @[all|cocks|noverb]."
)>>
"Take it! Take! It! All!" you roar as the recently cured creature's panic stricken screams are muffled by a niagara of sticky black seed.
His struggling arms, scraping at your fingers, slowly turn into sensual carressing gestures. You feel his hands growing, bulking with power. You grin as your creation cackles with uncontrolled lust. The Lost <<print setup.getRaceName($CharacterSheet_Lost_Entity)>> flexes his growing muscles as he expands with every liter of cum you pour onto him.
<<print setup.processFlavours(
$CharacterSheet_Lost_Entity,
"Soon, he stands slightly taller than you with muscles that barely allow him any movement. They quake and groan with every desire driven shudder that takes him. "+
"His @[all|cocks|noverb] have grown so massive that they drag across the ground, constantly spurting puddle sized globules of black pre. The odour is warm within your nostrils, a pleasant but strong salty musk. "+
"He can barely contain himself! His eyes lock onto yours with pure adoration as he rocks his incredible form across his package. "+
'\n\n"Yes! Fuck! YES!" He howls as he orgasms over you, his flood colliding with your own in a glorious fountain of obsidian spunk. '+
"\n\nYou push against the powerful stream as it hoses you down. With passion stirring your loins, you lock your mouth with your beloved and insert yourself into him once again, relishing in the massaging pressure of the Lost's ejaculate powering into the underside of your chin. "+
"His @[all|tongues| one=jets~more=jet] into your mouth and dances along yours in an untameable samba of passion, growing longer and more intrusive as his orgasm continues between your bodies. "+
"\n\nYou lose yourselves into a deep mating session that lasts for hours; his form growing ever more monstrous with each successive fuck."
)>>
\<<run setup.choice("[[Hours Later->Encounter_Lost_Entity_Swarm_creation]]");>>\<<if $CharacterSheet_Swarm.quest.firstSwarm>>
\<<run $CharacterSheet_Lost_Harbinger.info.anatomy = $CharacterSheet_Lost_Entity.info.anatomy>>
\<<run setup.setBaseStatValue($CharacterSheet_Lost_Harbinger, "corruption", setup.getStatValue($CharacterSheet_Player, "corruption"))>>
\<<run setup.setBaseStatValue($CharacterSheet_Lost_Harbinger, "muscles", setup.getStatValue($CharacterSheet_Player, "muscles"))>>
\<<run setup.setBaseStatValue($CharacterSheet_Lost_Harbinger, "height", setup.getStatValue($CharacterSheet_Player, "height"))>>
\<<run setup.setBaseStatValue($CharacterSheet_Lost_Harbinger, "cock", setup.getStatValue($CharacterSheet_Player, "cock"))>>
You feel an unnaturally close bond between you and the Lost. He was your first and to him, you are his one and only true mate. He lives for you, breaths for you and exists for only you. While lying on each other's chest he gently runs a hand down your pecs and softly kisses your cheek. Reluctantly, you drag yourself away from his roving hands.
He wines, "Don't go!"
With a firm hand, you stroke the back of his head and kiss his forehead. "I have to. I have things to do, and so do you."
\<<print setup.processFlavours(
$CharacterSheet_Lost_Harbinger,
"His mood immediately turns to excitement and his @[all|cocks|one=hardens~more=harden] from between his legs."
)>>
"I want you to be the herald of my reign over these lands," you command, "You will fuck, spread and grow larger for me."
"Yes!" he moans, "I'll do anything for you!" His excitement is too much to handle as he begins to leak rivulets of pre.
Although glorious in form, your lover needs to be set apart from the masses. A name, to mark him as the leader of your new family of Lost.
You think <<textbox "$CharacterSheet_Lost_Harbinger.quest.harbingerName" "Typhon">> would fit him well.
<<run $CharacterSheet_Lost_Harbinger.quest.harbingerRace = setup.RacePool[setup.getRaceName($CharacterSheet_Lost_Entity).toUpperCase()]>>
\<<run setup.choice("[[Christen him->Encounter_Lost_Entity_Swarm_Harbinger]]");>>
\<<else>>
Another monster birthed from your loins, another empassioned lover to join your swarm.
You tell your new slave to go and find $CharacterSheet_Lost_Harbinger.quest.harbingerName and join him on his conquest in your name.
A smile curls your lips upwards. You are sure your growing family would eagerly welcome their new addition.
\<<run setup.choice("[[Return to the Golden Bastion->Village]]");>>
\<</if>>You smile, "Now go forth in my name, $CharacterSheet_Lost_Harbinger.quest.harbingerName !"
His jaw drops in awe and his eyes widen as you give him a name. Hearing you say it is too much for him to handle. Running up to you, he smothers you in a musclebound hug. His shafts harden below you and knock against your legs.
After locking lips one more time, he turns to face the open sands and bellows out a primordial roar of raw ferocity and strength - the likes of which you have never seen before.
He was a king of monsters. Your monster.
You smile as you watch $CharacterSheet_Lost_Harbinger.quest.harbingerName hurtle into the Barrens. You are sure you will see him again, soon.
\<<run setup.choice("[[Return to the Golden Bastion->Village][$CharacterSheet_Swarm.quest.firstSwarm = false;]]");>><<print setup.getFlavourBasedDescription($CharacterSheet_Player, "lostFuck1", 1, $CharacterSheet_Lost_Entity)>>
\<<run setup.applyGrowth($CharacterSheet_Player, "muscles", 1)>>
<<print setup.getMuscleGrowthSequenceText($CharacterSheet_Player)>>.
\<<run setup.choice("[[Embrace the corruption->Encounter_Win_Lost_Entity_Fuck_2]]");>><<print setup.getFlavourBasedDescription($CharacterSheet_Player, "lostFuck2", 1, $CharacterSheet_Lost_Entity)>>
Suddenly, you feel depravity sink into your soul as the corruption's claws dig further into you.
\<<run setup.applyGrowth($CharacterSheet_Player, "muscles", 2)>>
<<print setup.getMuscleGrowthSequenceText($CharacterSheet_Player)>>
\<<run setup.applyCorruption($CharacterSheet_Player, 5)>>
Your soul has been corrupted (+5)
\<<if setup.getStatValue($CharacterSheet_Player, "corruption") >= 25>>
Your surroundings are utterly drenched in a mixture of your and the Lost <<print setup.getRaceName($CharacterSheet_Lost_Entity)>>'s cum. Yet you still crave more.
\<<run setup.choice("[[Push it even further->Encounter_Win_Lost_Entity_Absorb]]");>>
\<<run setup.choice("[[Leave->Encounter_Lost_Leave_NoSex]]");>>
\<<else>>
His corrupting seed is gnawing at your mind; you are sane enough to leave before you lose yourself to its influence.
For now.
\<<run setup.choice("[[Leave->Encounter_Lost_Leave_NoSex]]");>>
\<</if>><<print setup.getFightStartPassages($CharacterSheet_Apothus)>>Apothus clenches his chest and falls to one knee; he pants, his once alluring smile turning ferocious.
"What are you? What is this thing inside of you?" His hands curl into fists as he gazes at the Black Sun once more, with anguish in his eyes.
"You're nothing but a stain upon our canvas." He can't stand to look at you anymore; his eyes remain fixated on Nyx.
"I can't let you come any closer to our chosen one... Please Nyx..." His gaze lowers to the Lost surrounding you. They look back at him with agitation.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusEncounter_PlayerWins_1]]");>>"Grant me the strength to protect him, so you can finally have the vessel you deserve!" He screams, his arms widened as if to embrace Nyx itself.
A Lost jumps towards him, his head pushes on Apothus's chest. Black goo splashes all over his body quickly crawling and swirling around it.
His tattoo glows bright purple as he grins madly.
"Ohhhhh Gods yesss... Come to me..."
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusEncounter_PlayerWins_1_2]]");>>Corruption fuels him with the power he denied himself for so long.
The Lost lunges into his chest, giving himself away to his master.
"Urgghhhhh..." he groans, trying to keep himself together as his body expands.
The fibers of his pectorals bulge as they fill with god-like strength.
Another one charges onto him, his meaty paws hugging him from behind, pulling himself into his back.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusEncounter_PlayerWins_1_3]]");>>"G-Guhhhh... So goooood..." his distorting voice moans as more and more Lost joins them.
"Aaaaa... RAAAAAAAAHH!" his moans warp into bestial roars. He presents his cock to his Lost.
They worship it, caressing every inch before entering it as well.
"Mooooooore. MOOOOOOOOOOORE!" his body burst through the pile of gathering Lost. Apothus pulls his head back into a monstrous roar.
Massive bullish horns emerge from each side of his head. His jaw changes, enormous tusks juts from his mouth into lethally sharp points.
His clawed hands hold his head in a desperate attempt to control the corruption rushing within him.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusEncounter_PlayerWins_1_4]]");>>"I-I need... Urghhhh... Mooooore... MORE POWER!"
Massive tendrils burst from his back, they lash out, pulling nearby Lost and pulling them to their master's expanding form.
He grasps more and more Lost, forcing them to merge with him. His monstrous laughter resounds throughout the realm as his eyes turn jet black like tar.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusEncounter_PlayerWins_2]]");>><<print setup.displayEncounterImage($CharacterSheet_Apothus_2nd_Form.info.picture)>>
His eyes flick to you, utterly devoid of his previous resolve. Only desire drives him.
\<<set $WorldState.apothusTransformed = true>>
\<<run setup.choice("[[Fight Him->FightLogic][$Encounter_Target = $CharacterSheet_Apothus_2nd_Form]]");>>You fall, the surrounding Lost watch with excitement upon seeing you in a weakened state.
Apothus raises his hand to them; they immediately stop.
"Seems that you are not ready for what I can offer you." He says in a disappointed tone.
"We are stuck in a neverending cycle of lust and greed. It will only tear us apart until we all lay on the sand with our bodies and mind broken. Nyx is out only way out of this cycle, for its light shows the world differently."
He steps towards you, his palm inching towards the back of your head.
"You are free to come back once you're ready. For Nyx's light will never leave a soul behind."
He strikes you down.
\<<run $CharacterSheet_Player.removeAbilityRuntimeData(setup.Ability_EmbracedByNyxsLight);>>
\<<run setup.choice("[[You Died->Death_NyxDungeon]]");>><<print setup.getFightStartPassages($CharacterSheet_Apothus_2nd_Form)>><<print setup.displayEncounterImage($CharacterSheet_Apothus_2nd_Form.info.picture)>>
That last hit proves too much for you. You fall to your side into a growing puddle of corruption.
The thumping sounds of Apothus's feet grow ever closer, as do his distorted moans.
His body trembles with the approaching ecstasy of release, nerves close to frying from the corruption spreading in his veins.
\<<run setup.choice("[[Continue->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerLoses_2]]");>><<print setup.displayEncounterImage($CharacterSheet_Apothus_2nd_Form.info.picture)>>
His mind is barren of anything other than the single desire to fill you with his seed.
Apothus looks at you with sudden restraint. Perhaps a remnant of his old self? It is hard to say, but that inhibition could be your one chance to escape.
His vortex shaped tattoo glows with a blinding purple light.
"Join me..." He mutters, his words drifting through distorted moans.
\<<run setup.choice("[[Escape->Quest_MQ002_Manor_MainHall]]");>>
\<<run setup.choice("[[Accept his Offer->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerLoses_01]]");>><<print setup.displayEncounterImage($CharacterSheet_Apothus_2nd_Form.info.picture)>>
His arousal is infectious; you feel the raw passion within his eyes.
He's a monster, who's presence is sure to bring corruption and chaos to all wanderers of the Barrens.
Yet here he is, inches away from you.
You rub your body against him, letting lust build. Your eyes meet his - He grins.
\<<run setup.choice("[[Continue->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerLoses_01_2]]");>><<print setup.displayEncounterImage($CharacterSheet_Apothus_2nd_Form.info.picture)>>
He presses his cock against yours; corruption enters you from the touch. You look at it with fascination.
It pulses with a growing need and thickens in all directions.
Your hand grasps his oily shaft feeling its unnatural vitality.
It is so full, so juicy and plentiful, and yet it throbs harder than any shaft you've felt.
"Miiiiiiine..." he growls, grasping his dick and bringing it to your mouth.
\<<run setup.choice("[[Suck Him->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerLoses_02]]");>><<print setup.displayEncounterImage($CharacterSheet_Apothus_2nd_Form.info.picture)>>
Your cock rises to full hardness as you taste his corrupted seed. The sound of your muffled moans pleases him.
He thrust it deep in your throat, his groans making you shiver with lust. His clawed feet dig deep in the ground, generating fissures in the ancient cobblestones.
You feel his breathing grow heavier; his whole body shakes with uncontrollable desire.
\<<run setup.choice("[[Continue->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerLoses_02_2]]");>><<print setup.displayEncounterImage($CharacterSheet_Apothus_2nd_Form.info.picture)>>
"MIIIINE!" He roars, pulling his cock out of your throat to turn you around.
His cock pushes on your entrance; you moan in response. Apothus's body quivers, a monolithic figure of unstoppable power.
His growth is unimpeded, a constant fuel to his irresistible might. You scream for him to finally fuck you. He roars and forces himself in, dropping all pretense of humanity.
\<<run setup.choice("[[Give in to his Corruption->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerLoses_03]]");>><<print setup.displayEncounterImage($CharacterSheet_Apothus_2nd_Form.info.picture)>>
Tendrils of corruption slowly crawl upon your legs, pulling you closer to him.
Some more slide along your waist, inching towards your cock.
They spread along your skin, covering you more and more with Apothus's potent blend of corruption.
\<<run setup.choice("[[Continue->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerLoses_03_2]]");>><<print setup.displayEncounterImage($CharacterSheet_Apothus_2nd_Form.info.picture)>>
It is more than arousing; your breathing suddenly becomes faster as it rushes inside you. You grow, pushing against Apothus's grasp as his powers fill your body.
You thrust yourself on him, force more of his cock to fill you, milking every single drop of his potent seed.
Your tongue slides out of your mouth, getting longer and thicker with every thrust of your master's cock.
Suddenly, you feel something reach out to Apothus, like a limb you never knew you had.
"W-What... What is this?" He says with disbelief.
<<SymbioteName>> tastes the corruption as well; his moans are resounding deep within your soul. They reach out, the taste triggering a long-forgotten hunger.
Thick <<SymbioteColor>> goo spreads out to him, entering him as well.
\<<run setup.choice("[[Continue->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerLoses_04]]");>><<print setup.displayEncounterImage($CharacterSheet_Apothus_2nd_Form.info.picture)>>
"HHMMMMMRRRFFFFFF! YESSSSSS!" He screams, going the same life-changing orgasm you felt when you first came into contact with <<SymbioteName>>.
His strength grows exponentially, every fibre of his corrupted self suddenly processing corruption more efficiently than ever.
You feel connected to him, his whole body feeling closer and closer to your own.
"This power... I-I NEED IT ALL!"
\<<run setup.choice("[[Continue->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerLoses_05]]");>><<print setup.displayEncounterImage($CharacterSheet_Apothus_2nd_Form.info.picture)>>
His hand grasps your chest and pulls you vigorously towards his body. You feel like you suddenly fell into a pool of warm honey.
Your body fills with his Essence, though every inch of your being.
Only your head pushes from his pecs, his long tongue slithers out and slides into your mouth, filling you with his warm, powerful presence.
He milks you from every possible recess of sensitivity hidden upon your form.
\<<run setup.choice("[[Continue->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerLoses_05_2]]");>><<print setup.displayEncounterImage($CharacterSheet_Apothus_2nd_Form.info.picture)>>
You cum, screaming in complete and utter pleasure. Your body no longer holds any secrets from him.
Yet you yearn for more. You need to have this beast fuck you over and over until he grows bigger than all that is.
<<SymbioteName>> feels your need, your dream for forbidden pleasure haunts him.
Your own body slowly unites with your master, your thoughts growing closer in tone.
"Yesssss... Together..." Apothus groans within your head.
\<<run setup.choice("[[Merge with Apothus->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerLoses_06]]");>><<print setup.displayEncounterImage($CharacterSheet_Apothus_2nd_Form.info.picture)>>
Your corrupted minds merge into a monster that nothing in the Barrens can stop. Your hunger for power is insatiable. Your need for pleasure is neverending.
You dream of reaching the penultimate pleasure that flesh can produce. To grow into the ultimate beast who holds the world in his hands.
You leave the chosen one, for your cock demands a hole to fuck.
\<<run setup.choice("[[Time Passes->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerLoses_07]]");>>You wander the Barrens, your body growing day after day as you spread corruption unlike anything else. You soon tower over every other being.
Monsters worship you as their god, as the fiend who rules over everything. Others can only run and hide from you, but soon the even the soil bends to your corruption.
The sand grows black and oily; plants warp under your taint and spread your influence even further.
Days go on as you revel under constant debauchery, your worshippers grow in number every day. You never stop expanding, bigger and bigger, with no signs of stopping.
And every few minutes, countless monsters roar in delight as the earth fills with another load of your tainted seed.
But soon, your need for more grows ever more powerful; your thoughts go back to Nyx.
It is only a matter of time before you can reach it yourself.
\<<run setup.triggerEnding("Ending_OneWithApothus")>>
\<<run setup.choice("[[The End->Ending]]");>><<print setup.displayEncounterImage($CharacterSheet_Apothus_2nd_Form.info.picture)>>
Apothus slumps, his wounds are gushing out corruption across the ruins. He recoils back up, shaking his head wildly as he pants with exhaustion.
"It's still not enough! I NEED MOOOOORE!" He looks around in a panic, desperately searching for more Lost to absorb, but the ruins are empty of them.
Only the two of you remain.
Purple fumes gush out of his nostrils; he roars in denial. He turns towards the cocoon.
It was all he had left, his chosen one, his way out of this neverending cycle of lust and greed.
But his chosen had power... power he could take for himself. Then no one could stop him.
He would become the god this world desperately needs.
\<<run setup.choice("[[Continue->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerWins_2]]");>><<print setup.displayEncounterImage($CharacterSheet_Apothus_2nd_Form.info.picture)>>
"MOOOOOOORE!"
He turns to the cocoon and charges towards it like a starving animal. Corruption drives his every move.
He drools as he reaches the black chamber, his hand immediately push through its surface as he laughs.
His grin stretches his face with monstrous fangs gleaming with ferocious madness. His gooey hands push through the surface, his tendrils soon follow.
They bulge obscenely as pure Essence flows into him. His back burst with sudden size, strength piling into his every limb.
"Mrrrhhhhfffffff YES!!!!" He roars in victory.
\<<run setup.choice("[[Continue->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerWins_2_2]]");>><<print setup.displayEncounterImage($CharacterSheet_Apothus_2nd_Form.info.picture)>>
Litres of pure, unadulterated power rushes in every fibre of his body. The ground groans and tears under his weight.
His roar sinks into a deep, distorted moan as spurts of black cum shoot upon the cocoon's surface.
He pulls himself closer to it; tons upon tons of muscles booms out of him.
"MMMMrrrrrhahaaaaaaaaaaa... Watch me turn into a GOD!"
\<<run setup.choice("[[Continue->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerWins_3]]");>><<print setup.displayEncounterImage($CharacterSheet_Apothus_2nd_Form.info.picture)>>
His body shoots upwards, higher than the cocoon he is absorbing. He lifts himself, feeling the growth forcing through the rest of his body.
His pecs and abs swell, ballooning out as they clench into god-like mounds - no doubt capable of crushing mountains.
His arms flex of their own volition, overwhelmed by the rushing, all-consuming growth flooding his senses.
Apothus's moans turn into muffled deep gurgles as his balls pump out gallons upon gallons of corrupted seed upon the ruins.
He basks in the orgasmic of growing his ever more massive.
\<<run setup.choice("[[Continue->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerWins_3_2]]");>><<print setup.displayEncounterImage($CharacterSheet_Apothus_2nd_Form.info.picture)>>
His hands reach out towards Nyx; his ascension is so close to completion.
So close!
Apothus roars in victory, his hands reaching ever closer to the Black Sun. His need for growth takes over his soul.
\<<run setup.choice("[[Continue->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerWins_4]]");>>With a blinding lighting strike, you witness the black sun absorb into him.
His seed shoots out and rains down upon everything as his eyes burst in purple flames.
You struggle to stay up as he exponentially shoots upward, roaring and cumming with no end in sight.
His tail thrashes against the ground with a crashing boom, shattering the platform you stand on.
\<<run setup.choice("[[Continue->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerWins_5]]");>>"EVERTHING IS MINE TO CORRUPT!!!"
He hovers above everything, a massive purple aura warping reality around him.
The very air shudders, ripples, and bends under the sheer weight of his presence. The clouds part, the sun hides away, and the sky turns black and purple.
He is the embodiment of power, a being of pure destruction.
Suddenly, he looks down upon you, and raises his hand.
\<<run setup.choice("[[Continue->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerWins_6]]");>>“YOU ARE NOT WELCOME INTO MY NEW WORLD, PEST.”
You try to speak, but your voice is lost. You try to move, but your body will not obey.
"BEGONE!"
[[Continue->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerWins_Companions]]Your reflection in the mirror is like seeing your deepest fears and darkest fantasies made flesh.
Massive muscles spread across his enormous frame, rippling and flexing with even the tiniest movements.
Thick iron chains hung from manacles and a collar around his ankles, wrists, and neck respectively.
The ends of each chain warped and broken as if he has been restrained only to have torn himself free over and over.
\<<run setup.choice("[[Continue->Doppleganger_Intro_Corrupted_2]]");>>His lips spread wide, showing off unnaturally sharp teeth dripping with saliva that give him a monstrous appearance.
His <<print setup.processFlavours($CharacterSheet_Doppleganger, "@[all|cocks|one=throbs~more=throb]")>> with shameless, blatant desire as it juttes out obscenely from his hips.
A seemingly endless stream of pre dribbles from his <<print setup.processFlavours($CharacterSheet_Doppleganger, "@[all|cocks|noverb]")>> and pools in an ever-deepening puddle.
“Weak. Insignificant. Pathetic.”
\<<run setup.choice("[[Continue->Doppleganger_Intro_Corrupted_3]]");>>You jumped back several steps out of reflex at the sound of the unexpected words. Unexpected, but not unfamiliar.
Despite speaking in a much deeper tone, his voice is absolutely, unmistakably your own.
With widening eyes, you watch as the massive reflection reaches out and grabs the edges of the mirror.
\<<run setup.choice("[[Continue->Doppleganger_Intro_Corrupted_4]]");>>Your doppelganger pulls himself through as if the mirror were a pane of perfectly still water.
He bends down slightly, his lips twisted into a manic, lustful grin and his <<print setup.processFlavours($CharacterSheet_Doppleganger, "@[all|cocks|noverb]")>> visibly throbbing in approval.
The beast starts to reach towards you, illicit intent clear in their expression, you steel yourself to fight.
You've come too far give in now.
<<print setup.getFightStartPassages($CharacterSheet_Doppleganger)>>The reflection shows you how you used to be, before you let the corruption run so deep through you.
Yet, at the same time, it looks subtly different.
Slightly older, more self-confident, and experienced beyond simple physical power.
\<<run setup.choice("[[Continue->Doppleganger_Intro_Pure_2]]");>>It radiates an aura of strength and determination that makes you feel an involuntary pang of shame his gaze stares back into your own.
He feels like who you might have become if you had continued your journey without embracing Corruption.
“Tainted. Corrupted. Impure.”
The words make you twitch involuntarily.
They are in your own voice, yet devoid of the primal growling undertone that your corrupted body new exhudes.
\<<run setup.choice("[[Continue->Doppleganger_Intro_Pure_3]]");>>Before you have a chance to react further, the untainted reflection reaches out and grabs the edges of the mirror.
He pulls himself through as if the mirror were a pane of perfectly still water.
Your doppelganger bends down slightly into a fighting stance before leaping at you, face full of righteous indignation.
<<print setup.getFightStartPassages($CharacterSheet_Doppleganger)>><<include setup.getNextNarativeEventPassage(setup.StorySheet_Doppleganger.postFightPassagesLoss)>>The room shakes as you fall to your reflection's final attack.
You try to recover enough to move, but you are too exhausted to even force yourself to get up.
Your doppleganger walks until he stands near your beaten body, looming above you victoriously.
"Corruption didn't make you strong enough it seems."
You rise your head to see him in a wide, self-satisfied grin.
\<<run setup.choice("[[Leave->Doppleganger_Loss_Pure_Leave]]");>>
\<<run setup.choice("[[Submit->Doppleganger_Loss_Pure_2]]");>>For an instant, you worried he was going to try to finish you off.
You crawl back and manage to rush to the exit without him even trying to chase you.
His stupid, self-righteous grin stays stuck in your mind the whole time.
"At least there's something you're good for."
\<<run setup.choice("[[Continue->WestWing_MirrorRoom_Exit]]");>>Powerful thighs press against both side of your head as the doppelganger kneels down.
His hips push forward as he shamelessly shoves his <<print setup.processFlavours($CharacterSheet_Doppleganger, "@[all|cocks|noverb]")>> right against your face.
His <<print setup.processFlavours($CharacterSheet_Doppleganger, "@[all|cocks|one=swells~more=swell]")>> as his triumph morphs into arousal.
"Hmmmm, get right in there."
\<<run setup.choice("[[Suck him off->Doppleganger_Loss_Pure_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Doppleganger", "CharacterSheet_Player"], 1)>>
You slide your tongue along the underside of his shaft as it breaks the seal of your lips.
Slowly you pull your head back to slide your lips down a few inches of his shaft. You arch forward again and once more bury it's entire length in your mouth.
"Good boy..."
\<<run setup.choice("[[Suck harder->Doppleganger_Loss_Pure_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Doppleganger", "CharacterSheet_Player"], 1)>>
Your doppelganger smiles down at you in response to your obedience.
He lets you go at your own pace, giving you plenty of time to slide your tongue up and down his length for the first couple of minutes.
Eventually, though, your copy decides to take things into his own hands.
\<<run setup.choice("[[Continue->Doppleganger_Loss_Pure_4_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Doppleganger", "CharacterSheet_Player"], 2)>>
"Gonna show you how a warrior does it."
Your doppelganger abruptly shoves his hips forward, forcing every inch of himself into you.
His balls loudly slap against your jaw.
\<<run setup.choice("[[Try to keep up->Doppleganger_Loss_Pure_4_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Doppleganger", "CharacterSheet_Player"], 3)>>
Leaning back, he shifts position until he is half crouching and half down on his knees. His thighs straddle your face.
Firm, powerful thigh muscles clench around the sides of your head until he is finally satisfied with his grip on you.
He starts to truly face fuck you.
"Yessssss... YESSSSSSS!"
There is no hesitation, no care to ensure he doesn't thrust too hard or too deep.
He pounds his hips over and over against your face.
\<<run setup.choice("[[Let him take you->Doppleganger_Loss_Pure_4_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
\<<run setup.playRealizationPackage(["CharacterSheet_Doppleganger"], 4)>>
At this point you aren't sucking his cock anymore.
You are his toy.
"FUCK YESSSSS!"
With a deep thrust, he finally reaches his peak.
Rope after rope of thick cum sprays from his cock and fills your mouth.
\<<run setup.choice("[[Cum->Doppleganger_Loss_Pure_5]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Doppleganger", "CharacterSheet_Player"], 4)>>
It comes in such unexpected quantities that you are forced to swallow, lest your mouth overflow with his thick load.
This finally pushes you to the brink.
The orgasm is intense and explosive, like a volcano erupting.
It feels like every nerve in your body is electrified and alive, and the pleasure is so intense that it's almost unbearable.
\<<run setup.choice("[[Keep cuming->Doppleganger_Loss_Pure_6]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Doppleganger", "CharacterSheet_Player"], 4)>>
You hear yourself moaning and crying out as you cum over and over.
A cloud of ecstasy rushes over you, with each of your muscles quivering with pleasure.
Your eyes glaze over as you bask in the afterglow of your own release.
\<<run setup.choice("[[Continue->Doppleganger_Loss_Pure_7]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player", "CharacterSheet_Doppleganger"])>>
You barely even pay attention to your surroundings until you notice that you are suddenly alone.
When you turn to look where the doppelganger was, all you see is a puddle of cum.
\<<run setup.choice("[[Leave->WestWing_MirrorRoom_Exit]]");>>Massive, <<print setup.processFlavours($CharacterSheet_Doppleganger, "@[all|arms|noverb]")>> grip your arms and lift you off the ground, bring you to your beastly doppelganger's wickedly grinning face.
You are too exhausted to do much more than shoot him a glare.
It only seem to excite him.
\<<run setup.choice("[[Submit->Doppleganger_Loss_Corrupted_2]]");>>
\<<run setup.choice("[[Escape->Doppleganger_Loss_Corrupted_Leave]]");>>With a sudden burst of newfound vitality, you push his hands away and rush for the way out.
He does not give chase, but gives out a deep, demonic laugh as you escape.
\<<run setup.choice("[[Leave->WestWing_MirrorRoom_Exit]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Doppleganger", "CharacterSheet_Player"], 1)>>
The room shakes as he drops back onto his ass.
Already, you feel his <<print setup.processFlavours($CharacterSheet_Doppleganger, "@[all|cocks|noverb]")>> pressing up against your back as it juts obscenely from his crotch.
Thick, steady globs of pre ooze out of his <<print setup.processFlavours($CharacterSheet_Doppleganger, "@[all|cocks|noverb]")>>.
Your back grows wet with the musky liquid.
<span class="glitch nyx" data-text="GROW CORRUPT FUCK">"You want this..."</span>
\<<run setup.choice("[[Continue->Doppleganger_Loss_Corrupted_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Doppleganger", "CharacterSheet_Player"], 2)>>
As he settles himself comfortably onto his back, the beastly doppelganger beast shifts, his softenning as he stares into your <<print setup.processFlavours($CharacterSheet_Player, "@[all|eyes|noverb]")>>.
His massive hands hold you steady with merciless ferocity.
<span class="glitch nyx" data-text="CORRUPT GROW FUCK">"Give in..."</span>
Slowly he raises you up, letting you feel every inch of his <<print setup.processFlavours($CharacterSheet_Doppleganger, "@[all|cocks|noverb]")>> dragging itself across your back.
Only when you were finally above the tip of his <<print setup.processFlavours($CharacterSheet_Doppleganger, "@[all|cocks|noverb]")>> and feel the tip bump up against your ass.
\<<run setup.choice("[[Take him->Doppleganger_Loss_Corrupted_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Doppleganger", "CharacterSheet_Player"], 3)>>
He's just so big, it feels like you are being split apart.
He keeps tugging you down and forcing himself in deeper until you feel an obscene bulge of his <<print setup.processFlavours($CharacterSheet_Doppleganger, "@[all|cocks|noverb]")>> in your stomach.
<span class="glitch nyx" data-text="CORRUPT GROW FUCK">"You need this power."</span>
The doppleganger fondles one of his own <<print setup.processFlavours($CharacterSheet_Doppleganger, "@[all|pecs|noverb]")>> as the other continues to stroke you up and down his <<print setup.processFlavours($CharacterSheet_Doppleganger, "@[all|cocks|noverb]")>>.
Like little more than a living fleshlight, you are used by the beast bearing your own face.
<span class="glitch nyx" data-text="CORRUPT GROW FUCK">"HMMMMMM... Yesssss..."</span>
Your own <<print setup.processFlavours($CharacterSheet_Player, "@[all|cocks|one=throbs~more=throb]")>> with its own desperate desires.
\<<run setup.choice("[[Take him deeper->Doppleganger_Loss_Corrupted_5]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Doppleganger", "CharacterSheet_Player"], 4)>>
You cum over and over without realizing it, your loads painting the room as the beast finally builds up to his own release.
<span class="glitch nyx" data-text="CORRUPT GROW FUCK">"YOU NEED MORREEEEEEE!"</span>
His loads feel like to a volcano erupting. Your stomach visibly distendes outwards like something had punched it from the inside with the first spurt spurt.
The second shot hit with even more force, feeling like it is trying to blast straight through your stomach.
Then came a third, a fourth, a fifth.
It's a hot, sweaty, messy climax that leaves you exhausted.
Your eyes roll up in the back of your own <<print setup.processFlavours($CharacterSheet_Player, "@[all|heads|noverb]")>> as pleasure and mind-numbingly orgasms overwhelms you.
\<<run setup.choice("[[Continue->Doppleganger_Loss_Corrupted_6]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player", "CharacterSheet_Doppleganger"])>>
You finally come to a few hours later.
The room is filled with the thick, musky scent of sex. It's everywhere, coating the walls and the very air you breathe.
It's a constant reminder that you became little more than a condom for a monstrous fuckbeast.
One that very much could have been you, if your expeditions went slightly differently.
\<<run setup.choice("[[Continue->WestWing_MirrorRoom_Exit]]");>><<include setup.getNextNarativeEventPassage(setup.StorySheet_Doppleganger.postFightPassagesWin)>>With your final blow, your doppelganger falls to his knees.
The determination in his eyes dimms into a weak glimmer of impotent disapproval.
He is no longer a threat to you, physically or emotionally.
\<<run setup.choice("[[Look down on him->Doppleganger_Win_Pure_2]]");>>Some nugget of resistance that's burried within your subconscious is crumbling away.
A tiny piece of yourself that has continued to resist, that would refuse to embrace the corruption that has taken hold of you.
This part of you now lies to your feet.
"Grrrr... This proves nothing, monster."
\<<run setup.choice("[[Continue->Doppleganger_Win_Pure_3]]");>>You feel stronger, as if nothing could hold you back anymore.
A grin spread across your lips as you savor this fresh sense of complete acceptance.
Then your gaze turns to your beaten doppelganger still kneeling on the ground before you.
The doppleganger's <<print setup.processFlavours($CharacterSheet_Doppleganger, "@[all|eyes|noverb]")>> widen upon seeing your monstrous smile. His breathing go up in pace as he tries to hide his growing <<print setup.processFlavours($CharacterSheet_Doppleganger, "@[all|cocks|noverb]")>>.
\<<print setup.clearWestWingRoom("WestWing_MirrorRoom")>>
\<<run setup.choice("[[Dominate him->Doppleganger_Win_Pure_Fuck]]");>>
\<<run setup.choice("[[Leave him be->Doppleganger_Win_Pure_Leave]]");>>Without warning you pull his head in, stuffing his face right into your nuts, smothering him between your ball sack and the underside of your <<print setup.processFlavours($CharacterSheet_Player, "@[all|cocks|noverb]")>>.
You hold him there for well over a minute, keeping him pushed in nice and deep to ensure any breaths he takes would be laced in your powerful scent.
Even as he struggles, you feel his body shuddering in uncontrolled spasms of arousal.
"Hmmmm... HMMMMMM!"
Your overbearing masculinity overwhelms his senses.
\<<run setup.choice("[[Continue->Doppleganger_Win_Pure_Fuck_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Doppleganger", "CharacterSheet_Player"], 1)>>
Your grin widens as you watch his "holier than thou" visage succumb to the same uncontrollable temptations of the flesh that you have.
You finally pull his head back to get a look, and you see his expression glaze over as your powerful musk short-circuits his thoughts.
Most satisfying at all, though, is seeing the raging erection below his waist.
"How dare you... I won't give in."
\<<run setup.choice("[[Make him suck you off->Doppleganger_Win_Pure_Fuck_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Doppleganger", "CharacterSheet_Player"], 1)>>
His muffled grunt of surprise is drowned out by your own lustful growl as you shove your <<print setup.processFlavours($CharacterSheet_Player, "@[all|cocks|noverb]")>> against his face.
It forces his lips apart and spears its way through his mouth. Your <<print setup.processFlavours($CharacterSheet_Player, "@[all|cocks|noverb]")>> bumps against the entrance to his throat.
"HMMMMMM! Ggggaaaaahhhh..."
The moist warmth of his mouth is so deliciously tight. You simply stand there for a moment without moving to savor the sensation. Then you start to thrust.
\<<run setup.choice("[[Face fuck him->Doppleganger_Win_Pure_Fuck_5]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Doppleganger", "CharacterSheet_Player"], 2)>>
Over and over you piston Your <<print setup.processFlavours($CharacterSheet_Player, "@[all|cocks|noverb]")>> in and out of his mouth like a jackhammer.
There is no hope of him being able to take your entire length, it is simply too big.
Your <<print setup.processFlavours($CharacterSheet_Doppleganger, "@[all|cocks|noverb]")>>'s constant dribble of pre is more than enough to slicken his throat into the perfect fleshlight.
\<<run setup.choice("[[Continue->Doppleganger_Win_Pure_Fuck_6]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Doppleganger", "CharacterSheet_Player"], 3)>>
He kneels there to be used by you, occasionally letting out grunts or muffled gags.
Eventually, though, he simply couldn't resist the power of your masculine presence anymore.
"HMMMMMMMMMM!"
Lips and tongue squeeze and press against your <<print setup.processFlavours($CharacterSheet_Player, "@[all|cocks|noverb]")>> in what little space he has to move around your girth.
With him fully giving in, it only takes you a few more seconds before you finally go over the edge.
Your <<print setup.processFlavours($CharacterSheet_Player, "@[all|hands|one=locks~more=lock]")>> its grip on the back of his head and his eyes go wide.
\<<run setup.choice("[[Cum->Doppleganger_Win_Pure_Fuck_7]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Doppleganger", "CharacterSheet_Player"], 4)>>
The first of your impressive cumshots slams into the back of his mouth and forces its way down his throat.
Over and over you unload enormous loads of your cum into him while he can do nothing but sit there and struggle to swallow it all.
With each spasm of your cock his gut visibly swells and expands larger.
\<<run setup.choice("[[Continue->Doppleganger_Win_Pure_Fuck_8]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Doppleganger", "CharacterSheet_Player"], 1)>>
By the time your overwhelming orgasm finally begins to slow down, he looks completely full.
You pull yourself free from him mouth, and he immediately collapses on the ground, gasping and coughing to try to replace the air he has been denied during your release.
His stomach sloshes visibly when he falls down.
"Gods... I need more..."
\<<run setup.choice("[[Continue->Doppleganger_Win_Pure_Fuck_9]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player", "CharacterSheet_Doppleganger"])>>
With your lusts satiated, at least a little bit, you have no more use for this lingering vestige of who you used to be.
Turning your back on them, you stride your way from the room without bothering to look back.
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_Defiler);>>
∇: You gain the "Defiler" ability.
\<<run setup.choice("[[Leave->WestWing_MirrorRoom_Exit]]");>>You stride your way to the exit.
Behind you, the last lingering remnant of your humanity made manifest slowly dissolves into nothingness, no longer able to hold you back.
\<<run setup.choice("[[Leave->WestWing_MirrorRoom_Exit]]");>>The room shakes as your corrupted doppelganger roars like a beast.
His enormous chest heaves like a pair of titanic bellows but he struggles to catch his breath.
<span class="glitch nyx" data-text="CORRUPT GROW FUCK">"Guhhhhh... HOW?"</span>
The doppelganger slams his claws at the ground, fingers tearing deep gouges into the floor as he tries to push himself back upright.
It doesn't take long before his <<print setup.processFlavours($CharacterSheet_Doppleganger, "@[all|arms|noverb]")>> give out and he falls to the ground.
\<<run setup.choice("[[Continue->Doppleganger_Win_Corrupted_2]]");>>Even in his weakened state, he his still intimidating.
His <<print setup.processFlavours($CharacterSheet_Doppleganger, "@[all|cocks|one=is~more=are]")>> as thick as his own legs, dribbling a constant stream of pre on the floor.
You could see his wounds knitting closed. Injuries that should have taken days to heal weave back together at a speed visible to the naked eye.
At this rate the bestial version of you would be back on his feet within minutes.
\<<run setup.choice("[[Continue->Doppleganger_Win_Corrupted_3]]");>>It is probably a good idea to leave before he recovers.
On the other hand, your copy is still plagued by its neverending lust and desire.
You could take the opportunity to let this oversized monster feel what it's like to be on the bottom of the pile for once.
\<<print setup.clearWestWingRoom("WestWing_MirrorRoom")>>
\<<run setup.choice("[[Leave him->Doppleganger_Win_Corrupted_Leave]]");>>
\<<run setup.choice("[[Dominate him->Doppleganger_Win_Corrupted_Dominate]]");>>You turn your back to the still-gasping creature and you make your way for the exit.
The beast shoots a final, hateful glare towards before his form dissolves into the castle that manifested it.
You are emboldened by your resolve, Corruption will have a hard time reaching your soul.
\<<run setup.choice("[[Leave->WestWing_MirrorRoom_Exit]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Doppleganger", "CharacterSheet_Player"], 1)>>
The opportunity is too delicious to pass up.
His hulking form stiffens briefly when he feels you approach.
<span class="glitch nyx" data-text="FUCK CORRUPT GROW">"Grrrrrrr... You could never take me."</span>
You balance yourself on his massive calves, hot dogging your pre-slickening <<print setup.processFlavours($CharacterSheet_Player, "@[all|cocks|noverb]")>> against his ass.
\<<run setup.choice("[[Continue->Doppleganger_Win_Corrupted_Dominate_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Doppleganger", "CharacterSheet_Player"], 1)>>
<span class="glitch nyx" data-text="CORRUPT GIVE IN GROW">"Guuuhhh... Hmmmmmm..."</span>
You casually ground in and out of the canyon of flesh to get yourself ready.
His <<print setup.processFlavours($CharacterSheet_Doppleganger, "@[all|cocks|one=rises~more=rise]")>> to his chest, spurting out a huge load of pre.
\<<run setup.choice("[[Fuck him->Doppleganger_Win_Corrupted_Dominate_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Doppleganger", "CharacterSheet_Player"], 2)>>
The beast snarles, but his growls get interrupted as you tug on the chain of his collar.
He howl with mixed outrage and sexual stimulation, you pierce your way into his ass in response.
<span class="glitch nyx" data-text="SUBMIT GIVE IN GROW">"GRAAHHHHHH... STOP THIS!"</span>
You then mercilessly pounds his oversized ass over and over, using the chain for balance.
\<<run setup.choice("[[Keep fucking him->Doppleganger_Win_Corrupted_Dominate_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Doppleganger", "CharacterSheet_Player"], 2)>>
With each thrust you push yourself to the hilt.
Unrestrained lustful growls leak out through your tight grip of his collar.
You can feel that despite his outrage, he is enjoying this as much as you are.
<span class="glitch nyx" data-text="MOAN SUBMIT GIVE IN">"DON'T... GUUHHHHHHRAAHHHHH!!"</span>
\<<run setup.choice("[[Fuck him harder->Doppleganger_Win_Corrupted_Dominate_5]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Doppleganger", "CharacterSheet_Player"], 3)>>
Your doppleganger's massive <<print setup.processFlavours($CharacterSheet_Doppleganger, "@[all|cocks|one=thrusts~more=thrust]")>> between his own pecs.
His growls slowly turn to moans.
<span class="glitch nyx" data-text="SUBMIT MOAN GIVE IN">"PLEASE! MORE! MOOOOOOOORE!"</span>
It doesn't take long for you to near the edge.
One that squeezes so deliciously tight around you yet still jiggles ever so slightly when you thrust against it.
You thug at his chain once more, to remind him that you're the one in control.
\<<run setup.choice("[[Cum->Doppleganger_Win_Corrupted_Dominate_6]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Doppleganger", "CharacterSheet_Player"], 4)>>
With a final grunt of effort you hilt yourself into his depths one last time, pulling tight on his leash.
His thunderous roars of lust are cut off into strangled snarls as he hits his peak along with you.
<span class="glitch nyx" data-text="SUBMIT MOAN GIVE IN">"FUCK YESSSSSSS! TAKE ME!"</span>
Thick ropes of corrupted cum paint the room.
His core visibly throbs as you fill him with your own seed.
\<<run setup.choice("[[Continue->Doppleganger_Win_Corrupted_Dominate_7]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Doppleganger", "CharacterSheet_Player"], 1)>>
You finally come down from your release and relax your grip on the chain.
Yet your doppelganger is still in the midst of his own unnaturally enhanced orgasm.
You walk back from orgasmically twitching and spasming monster and head for the door to the next room.
\<<run setup.choice("[[Leave->Doppleganger_Win_Corrupted_Dominate_8]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player", "CharacterSheet_Doppleganger"])>>
The beast shoots a final, lustful glare your way before his form dissolves into the castle that manifested it.
You are emboldened by your resolve, Corruption will have a hard time reaching your soul after dominating it like you did.
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_Disciplined);>>
∇: You gain the "Disciplined" ability.
\<<run setup.choice("[[Leave->WestWing_MirrorRoom_Exit]]");>><<print setup.getFightStartPassages($CharacterSheet_MQ002_DragonMonk)>>Drenth falls to his knees, out of breath.
You both know that this fight is over.
\<<set $CharacterSheet_MQ002_DragonMonk.quest.beaten = true>>
\<<run setup.choice("[[Continue->Quest_MQ002_DragonMonkEncounter_PlayerWins_2]]");>>The dragonborn grunts angrily, you can see that he's running out of options.
\<<if setup.MQ002_Manor_IsCorruptedInManor($CharacterSheet_Player)>>
You let out wicked smirk, flicking your <<print setup.processFlavours($CharacterSheet_Player, "@[all|tongues|noverb]")>> wildly towards him.
\<</if>>
"You may have bested me now... But I'll never let you have it your way."
His arm suddenly glows with a bright white light.
"For even if I die here, even if that means freeing the cult of Nyx." He stumbles back on his feet, the light grows powerful, blinding even.
"I will fight on, as long as my soul is bright and virtuous, I will come back."
His hand clenches into a fist; he brings it to his chest.
A thunderous sound bursts forth. The fog all but blasts away to the edges of the room through the force of the impact.
It's strong enough to make the foundations groan.
\<<run setup.breakOath("drenth")>>
\<<run setup.choice("[[Continue->Quest_MQ002_DragonMonkEncounter_PlayerWins_3]]");>>The blasts make you blink. When your eyes open again, the dragonborn is gone, leaving behind only a hint of their scent.
The fog slowly crawls back upon the room, like a blanket of cotton.
\<<print setup.clearWestWingRoom("WestWing_DrenthRoom")>>
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_DragonRoom]]");>>The dragonborn looks on down as you collapse from his last strike.
He walks to you with complete apathy.
And without a word, strikes you with a palm strike aimed at your chest.
\<<run setup.choice("[[You died->Death_NyxDungeon]]");>><<include setup.getNextNarativeEventPassage(setup.StorySheet_Ethrex.encounterPassages)>><<include setup.getNextNarativeEventPassage(setup.StorySheet_Ethrex.postFightPassagesWin)>><<include setup.getNextNarativeEventPassage(setup.StorySheet_Ethrex.postFightPassagesLoss)>>\<<set $CharacterSheet_Ethrex.quest.available_LukkaReservoir_QuestHint = false>>
Even after tasting defeat, Ethrex is an imposing figure.
But your attention is diverted to Lukka's Essence reservoir.
The apparatus beings to glow in a soft red light.
You can sense that the reservoir fills itself with the incubus's Essence.
∇: Lukka's Essence reservoir glows brighter than before.
\<<run setup.choice("[[Continue->Ethrex_LukkaReservoir_QuestHint_2]]");>>“Tsk, what a waste of wonderfully potent Essence.”
His wings twitch and shudder, as if they are eager to take him away.
Without second thoughts, he flaps his them forcefully and takes off into the sky.
You are left alone in the Barrens once more.
\<<run setup.choice("[[Return to the Golden Bastion->Village]]");>>\<<set $CharacterSheet_Player.quest.gatheredShard++>>
\<<set $CharacterSheet_Ethrex.quest.givenShard = true>>
His wings twitch and shudder, his wounds finally changing his tone.
"I could crush you, wrap my arms around your feeble body, but you win this time."
\<<run setup.choice("[[Continue->Encounter_Ethrex_Shard_Fight_Win_2]]");>>Clenching a fist, he feels a small relic attached to his garnment. An understated trinket in terms of size, but one that you instantly recognize.
He holds a piece of the Eye of the Void.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Shard_Fight_Win_3]]");>>He notices your interest, and suddenly stands up.
His massive frame looms over everything else, dominant muscles rippling and straining beneath skin hardened from battles past.
"You desire this relic?" He asks, his voice a deep rumble that sends waves of shivers down their backs.
His cruel smirk spreads across his coarse, savage features, a low snarl humming deep in his chest.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Shard_Fight_Win_4]]");>>Nonchalantly, he flicks the artifact towards your feet with a claw-tipped hand.
"Take it. It’s of no use to me anymore." he declares.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Shard_Fight_Win_5]]");>>An excited shiver runs through him as the relic leaves his hand, a patent testament to his dark sense of humor.
"It’s surprising how anyone could care about this old thing, but I expect you'll keep coming back for more," he says, his intriguing, twisted grin reappearing on his grotesque features.
Every cell in his body thrums with an enticing sensation of dominance and undisguised yearning, a concrete testimony to his corruptive aura.
"I can give you so much more than the Eye ever could."
\<<run setup.choice("[[Continue->Encounter_Ethrex_Shard_Fight_Win_6]]");>>Without a monstrous laugh, he flaps his them forcefully and takes off into the sky.
You are left alone in the Barrens once more.
∇: You gained a shard of the Eye of the Void
\<<run setup.choice("[[Return to the Golden Bastion->Village]]");>>The sun beats down on your shoulders, and you feel the sweat start to form on your corrupted, scaled.
You pause, sniffing the air, and your cock throbs in response.
You could recognize that smell anywhere.
\<<run setup.choice("[[Meet Ethrex->Encounter_Intro_Ethrex_FinalRela_2]]");>>
\<<run setup.choice("[[Leave->Village]]");>>It is not long before you see Ethrex in the distance.
He is a momunent of raw lust, a <<print setup.getLength(setup.getStatValue($CharacterSheet_Ethrex, "height"))>> tall demonic demi-god.
He grins, eyeing you from head to toes.
\<<run setup.choice("[[Continue->Encounter_Intro_Ethrex_FinalRela_3]]");>>He steps towards you, every step causing the ground to crack.
“Lord of Lust... Come to me.”
You feel a chill run down your spine as he stops in front of you, his eyes blazing with an intense, fiery intensity.
<<print setup.getFightStartPassages($CharacterSheet_Ethrex)>>Ethrex stumbles back, his feet slipping out from beneath him.
You can feel the Essence wrap around you, seeping into your pores and filling your veins with its presence.
As it infuses your body, you feel an power coursing through your veins.
Ethrex lets out a monstrous grin.
“Take that Essence, feel that power.”
\<<run setup.choice("[[Continue->Encounter_Ethrex_FinalRela_Win_2]]");>>More Essence rushes into you, fills your soul with raw, pleasurable power.
You clasp your fists, feel your veins surge out.
It pushes into your mouth like a sentient cloud, making your soul flare out in a sudden burst of power.
\<<run setup.choice("[[Continue->Encounter_Ethrex_FinalRela_Win_3]]");>>“There's nothing quite like it, isn't there?”
Pleasure rises within you, raw, potent pleasure.
Ethrex licks his lips in response, inviting you to come closer.
\<<run setup.choice("[[Fuck him->Encounter_Ethrex_FinalRela_Win_4]]");>>You jump at Ethrex and you fuck in every way possible.
You keep going for hours.
His gigantic form is a lot to handle, but you wish you and him were even more enormous.
Power and lust drive your every thought.
\<<run setup.choice("[[Fuck him->Encounter_Ethrex_FinalRela_Win_5]]");>>Hours turn into days.
You fuck and cum, over and over.
Your demonic bodies constantly urging you to keep going.
\<<run setup.choice("[[Continue->Encounter_Ethrex_FinalRela_Win_6]]");>><<include setup.getNextNarativeEventPassage(setup.StorySheet_Ethrex.encounterFinalTeammateJoin)>>As days go by, you feel a distant memory slowly emerge from your mind.
An old duty that was never completed.
Ethrex can tell that it's on your mind.
He gives you an oportunistic grin.
"How about I join you in your quest?"
He moves his finger up your thigh, tracing circles around your inner thigh, stirring up a wave of pleasure. His touch is electrifying.
"Just know that nothing will stop me from making my god whole again, even you."
\<<run setup.choice("[[Accept->Encounter_Ethrex_FinalRela_Win_6_Accept]]");>>
\<<run setup.choice("[[Refuse->Encounter_Ethrex_FinalRela_Win_6_Refuse]]");>>\<<set $CharacterSheet_Ethrex.quest.joinedTeam = true>>
\<<run setup.ethrexJoinsPlayer()>>
"Hmmmm let's get going then. The world will cower before your might."
∇: Ethrex has joined your party.
\<<run setup.choice("[[Leave->Village]]");>>“Tsk, suit yourself.”
His wings twitch and shudder, as if they are eager to take him away.
He stares at you, as if daring you to reconsider, before sighing in disappointment.
\<<run setup.choice("[[Continue->Encounter_Ethrex_FinalRela_Win_Leave_2]]");>>After few steps forward, he leaps into the air, his wings unfurling to their full length.
He ascends with each powerful flap, and soon he brings with him a gust of wind.
The sun shines off his wings as he soars away.
\<<run setup.choice("[[Leave->Village]]");>>You are acutely aware of your surroundings and feel your muscles tense as the air fills with a strange, arousing energy.
With every breath, your heart beats faster.
Suddenly, something catches your eye in the distance.
It looks like some a humanoid creature, one that is not covered in Corruption like a Lost would.
\<<run setup.choice("[[Look closer->Encounter_Intro_Ethrex_2]]");>>
\<<run setup.choice("[[Leave->Village]]");>>\<<set $CharacterSheet_Ethrex.quest.met = true>>
\<<set $CharacterSheet_Ethrex.info.known = setup.EncounterKnownState.KNOWN>>
As you get closer, you can make out the figure more clearly.
His body is chiseled like marble, honed to perfection by the Corruption that flows in and out of his body.
Broad shoulders lead down to a powerfully-built chest, corded with rock-hard muscles that hint at hidden strength.
He hovers, a few feet off the ground as massive blobs of Corruption manifest out of his hands.
\<<run setup.choice("[[Continue->Encounter_Intro_Ethrex_3]]");>>His unholy presence taints the air and darkens the soil.
\<<if setup.sizeNormalPersoncomparison($CharacterSheet_Ethrex) >= setup.Comparators.REACHES_WAIST>>
The sky is covered by his gigantic form. The ground shakes as his <<print setup.getLength(setup.getStatValue($CharacterSheet_Ethrex, "height"))>> body lands in front of you.
You cannot stop yourself from eyeing his mountainous body.
\<<else>>
You brace yourself and get ready for the worst...
\<</if>>
\<<run setup.choice("[[Continue->Encounter_Intro_Ethrex_4]]");>>He absentmindedly flexes his muscled arms, revealing the sheer of his biceps before he notices you.
A maniacal grin grows ever wider as he studies your appearance.
<<include setup.getNextNarativeEventPassage(setup.StorySheet_Ethrex.encounterIntroFirstTimeFlavour)>>
\<<run setup.choice("[[Continue->Encounter_Intro_Ethrex_5]]");>>"Did you get lost? You shouldn't be out here..."
\"Look at the size of you, I should have noticed you earlier."
\"Hmmmm I can smell your Corruption from here. We're gonna have a good time, you and I."
\He laughs maniacally, before licking one of the swirling mass of Corruption that surrounds him.
His eyes are focused and intense, looking straight ahead.
You can tell that he is ready to strike at any point.
"You better put up a good fight, I have big plans for the Essence you'll bring forth!"
<<print setup.getFightStartPassages($CharacterSheet_Ethrex)>>The sun beats down on your shoulders, and you feel the sweat start to form on your skin.
You pause, sniffing the air, and your cock throbs in response.
The scent is musky and sweet, debauchery taken form.
You recognize the smell of Ethrex, the incubus.
\<<run setup.choice("[[Investigate the smell->Encounter_Intro_Ethrex_HighRela_2]]");>>
\<<run setup.choice("[[Leave->Village]]");>>It is not long before you see Ethrex in the distance.
His body is much bigger than when you last saw him, rippling with muscles that are both intimidating and alluring.
He grins, eyeing you from head to toes. His cock throbs faster the more he gazes.
\<<run setup.choice("[[Continue->Encounter_Intro_Ethrex_HighRela_3]]");>>He steps towards you, every step causing the ground to crack.
“More essence... MORE POWER!”
You feel a chill run down your spine as he stops in front of you, his eyes blazing with an intense, fiery intensity.
<<print setup.getFightStartPassages($CharacterSheet_Ethrex)>>Ethrex stumbles back, his feet slipping out from beneath him.
You can feel the Essence wrap around you, seeping into your pores and filling your veins with its presence.
As it infuses your body, you feel an power coursing through your veins.
Ethrex lets out a monstrous grin.
“Take that Essence, feel that power.”
\<<run setup.choice("[[Continue->Encounter_Ethrex_HighRela_Win_2]]");>>More Essence rushes into you, fills your soul with raw, pleasurable power.
You clasp your fists, feel your veins surge out.
It pushes into your mouth like a sentient cloud, making your soul flare out in a sudden burst of power.
\<<run setup.choice("[[Continue->Encounter_Ethrex_HighRela_Win_3]]");>>Pleasure rises within you, raw, potent pleasure.
“Do it! cast your humanity aside!”
You try to contain deep moans and feel yourself being brought to the edge.
\<<if $Essence >= setup.getDemonicTFCost($CharacterSheet_Player)>>
<<print "[[Grant him Power ("+setup.getDemonicTFCost($CharacterSheet_Player)+" Essence)->"+setup.getDemonicTFPassage($CharacterSheet_Player)+"][$Essence -= "+setup.getDemonicTFCost($CharacterSheet_Player)+"]]">>
\<<else>>
<<print "<span class = 'inactive'>[[Grant him Power ("+setup.getDemonicTFCost($CharacterSheet_Player)+" Essence)->"+setup.getDemonicTFPassage($CharacterSheet_Player)+"]]</span>">>
\<</if>>
[[Refuse->Encounter_Intro_Ethrex_LowRela_Win_Leave]]“You can't be serious...”
Even after tasting defeat, Ethrex is an imposing figure.
His wings twitch and shudder, as if they are eager to take him away.
He stares at you, as if daring you to reconsider, before sighing in disappointment.
\<<run setup.choice("[[Continue->Encounter_Ethrex_HighRela_Win_Leave_2]]");>>After few steps forward, he leaps into the air, his wings unfurling to their full length.
He ascends with each powerful flap, and soon he brings with him a gust of wind.
The sun shines off his wings as he soars away.
\<<run setup.choice("[[Leave->Village]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
Jet black goo slowly oozes out of Ethrex's tool, its viscous texture making it seem almost alive.
It glistens in the light, giving off an eerie presence.
As soon as you approach him, his cock jolts to life, hardening and spurting out pre.
He grins maniacally.
“That's it, come to me.”
\<<run setup.choice("[[Approach him->Transformation_Incubus_Level1_1_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
His muscles throb with strength as he pulls you close to him. He seems fully healed.
“Your Essence, the one that comes straight from your core, I need it.”
He gently grasps your hand and guides it to his cock.
It hums beneath your fingertips, sending pleasurable ripples through your body.
\<<run setup.choice("[[Continue->Transformation_Incubus_Level1_1_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
Pleasure courses through you like a wave, heightening your senses, urging you to explore further.
The intensity builds and you begin to lose yourself in the sensation.
You reach out to him, open up your soul to the demon's influence.
His slitted eyes suddenly glow in response.
\<<run setup.choice("[[Give him Essence->Transformation_Incubus_Level1_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
In one sudden rush of energy, he moans as strength fills his whole frame.
His newfound energy is bringing him to the edge of orgasm.
"Ahhhhh... This power..."
His hands are firm and tense as they roam over your chest and your hard pecs.
With raw demonic power pulsing through his fingertips, he traces circles around your nipples, sending sparks of sensation through your body.
\<<run setup.choice("[[Continue->Transformation_Incubus_Level1_2_1]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
He continues to move down, exploring your tight abs.
The incubus' hands move lower still, finally coming to rest on your hard cock.
He grips it firmly, running his fingers up and down it, teasing and tantalizing you.
His touch is electric and your body responds eagerly to his caresses.
You can feel yourself getting harder and harder beneath his touch, your arousal intensifying with each stroke.
\<<run setup.choice("[[Continue->Transformation_Incubus_Level1_2_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
"You made the right choice."
Your heart races as your lips touch his.
His kiss is passionate, every instant sends sparks of electricity down your spine.
\<<run setup.choice("[[Continue->Transformation_Incubus_Level1_2_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
You can feel yourself melting into him as his hands wander down your body, exploring every inch of you.
A dark red sigil suddenly appears around you.
The same red as the demon's glowing eyes.
\<<run setup.choice("[[Let demonic powers enter you->Transformation_Incubus_Level1_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
You feel it surround you. An energy that you don't quite understand.
It's fiery and passionate, like a force of nature.
It shoots inside your soul and taints it to the core.
\<<run setup.choice("[[Continue->Transformation_Incubus_Level1_3_1]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
You feel your restraints melt away; lust, sex and power slowly become your most significant needs.
\<<if ($CharacterSheet_Player.info.anatomy.horns.number == 0)>>
Two nubs start to push from your forehead.
\<<elseif ($CharacterSheet_Player.info.anatomy.horns.number == 1)>>
Your horn starts to shift to the side, and a nub begins appearing on the opposite side of your forehead.
\<<else>>
Your horns start to absorb his energy, beginning to glow with energy.
\<</if>>
Ethrex grins as he kneels down to face your cock.
His hot mouth begins to worship every <<print setup.getLength(setup.getStatValue($CharacterSheet_Player, "cock"))>> of your cock.
With every lick, you feel it pulsate with energy.
\<<run setup.choice("[[Embrace his demonic powers->Transformation_Incubus_Level1_3_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
\<<if ($CharacterSheet_Player.info.anatomy.horns.number == 0)>>
The nubs on your forehead suddenly split.
Massive, curvy horns rise from your forehead until they reach <<print setup.getHornsSize($CharacterSheet_Player)>>.
\<<elseif ($CharacterSheet_Player.info.anatomy.horns.number == 1)>>
Your new horn soon grows into a massive, curvy horn, and your existing horn matches until they both reach <<print setup.getHornsSize($CharacterSheet_Player)>>.
<<else>>
Your horns suddenly warp and twist into massive, curvy figures until they reach <<print setup.getHornsSize($CharacterSheet_Player)>>.
<</if>>
Each one is almost as thick as your wrists.
\<<run setup.changeLimbsNumber($CharacterSheet_Player, "horns", 2, setup.mod.ATLEAST)>>
\<<run setup.setRaceLimbs($CharacterSheet_Player, ["horns","eyes"], setup.RacePool.INCUBUS)>>
Ethrex sucks you faster and harder. You're so close to the edge.
You look down at the demon with your now slitted eyes.
\<<run setup.choice("[[Complete the transformation->Transformation_Incubus_Level1_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_DemonicCorruption);>>
\<<run setup.upgradeEthrexStats(1)>>
Seeing your changed form is bringing Ethrex to the edge.
He pulls back, freeing your now <<print setup.getLength(setup.getStatValue($CharacterSheet_Player, "cock"))>> purple cock.
The sight of it drives the incubus wild.
"GRAAAAHHHH"
You both roar and cum, shooting your load all over each other.
\<<run setup.choice("[[Continue->Transformation_Incubus_Level1_5]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
You keep going, having sex for hours and hours.
Yet your lust is never satisfied, you need more than sex.
The urge to grow even more demonic never goes away.
∇: You gain the "Minor Demon" ability.
∇: You grow 2 demonic horns.
∇: Your teeth become demonic and sharp.
∇: Your tongue, eyes, cocks, and balls become like Ethrex's, and take a royal shade of purple.
∇: Ethrex's power has increased.
\<<run setup.setRaceLimbs($CharacterSheet_Player, ["teeths","jaws","horns","tongues","eyes","cocks","balls"], setup.RacePool.INCUBUS)>>
\<<run setup.colourLimbs($CharacterSheet_Player, ["tongues","eyes","cocks","balls"], setup.ColourPool.PURPLE)>>
\<<run setup.choice("[[Return Home->Village]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
Ethrex falls down in exhaustion but grins all the same.
He knows you want more, no one could resist the appeal of demonic powers.
He rushes to you and licks your cock out of sheer need.
"Hehehe... This is it, yours is more potent than anything I’ve ever tasted."
His lips are pulled back in a wicked grin, and you can feel the heat of his breath on your skin.
\<<run setup.choice("[[Grant him Essense->Transformation_Incubus_Level2_1_1]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
You can feel his power growing with every touch, every caress.
He is already getting bigger, his <<print setup.getLength(setup.getStatValue($CharacterSheet_Ethrex, "height"))>> body becoming more muscular and powerful.
A dark red aura bursts out of him.
"I WANT MORE!!!"
\<<run setup.choice("[[Grant him Essense->Transformation_Incubus_Level2_1_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
His cock shakes and throbs like it's possessed. Thick red veins fill it with raw power.
He grasps the base and pulls his head back.
"Ohhhh... Fuuuuuck..."
Your eyes widen as his cock pushes forward. Pounds upon pounds of thick flesh piles on his already massive tool.
He unleashes a maniacal laugh as cum gushes out of his growing dick.
∇: Ethrex's cock grows by <<print setup.getLength(setup.applyGrowth($CharacterSheet_Ethrex, "cock", 8))>>.
\<<run setup.choice("[[Accept Ethrex's Reward->Transformation_Incubus_Level2_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
You notice his hands smoking with black, demonic energy.
"Now, let my god enter your being..."
A circle of pure darkness suddenly forms from under you, and you can see movement under its glass-like surface.
Stange shapes forms along the surface.
\<<run setup.choice("[[Continue->Transformation_Incubus_Level2_2_1]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
Those shapes throb and grow, gathering the surrounding darkness to expand outward.
They form into long, fat tendrils that ooze a thick purple liquid oozing from their tip.
"Hmmm... Accept this gift from beyond."
\<<run setup.choice("[[Take his gift->Transformation_Incubus_Level2_2_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
One of them slowly slithers towards you, you grab it and eagerly suck the tip.
The sharp, bitter taste makes you shiver.
Your eyes widen; your cock throbs harder than it ever has.
An unholy lust rises within you.
\<<run setup.choice("[[Continue->Transformation_Incubus_Level2_2_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
More tendrils emerge from the dark portal.
They writhe and curl, wrapping around you in a tight, warm embrace.
You hear Ethrex release a loud moan.
\<<set setup.applyGrowth($CharacterSheet_Ethrex, "cock", 4)>>
His still growing cock reaches <<print setup.getLength(setup.getStatValue($CharacterSheet_Ethrex, "cock"))>> as tendrils grant him some demonic energy of his own.
\<<run setup.choice("[[Give in to Lust->Transformation_Incubus_Level2_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
Some tendrils join the other and crawl to your mouth, others coil around your cock, jerking it slowly.
Others reach for your ass.
They explore your body and take you further and further into a blissful trance.
You can feel yourself trembling with pleasure as your pleasure peaks, you can't help but scream out in ecstasy.
\<<run setup.choice("[[Continue->Transformation_Incubus_Level2_3_1]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
You pant as Ethrex jerks off in front of you, he is completely lost in arousal.
The three tendrils push deep inside your ass while four others massage your cock and balls.
A thin one slowly enters your cock slit, feeding your tool with demonic energy.
You can only scream for more.
\<<run setup.choice("[[Cum->Transformation_Incubus_Level2_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
You can feel a new strength coursing through your veins, and a primal instinct taking over your mind.
Something grows over your arms and legs.
The skin around them turns darker and darker until it becomes completely black.
It then grows outward, turning into hard black scales. A bright purple glow emanating between each of them.
\<<run setup.choice("[[Continue->Transformation_Incubus_Level2_4_1]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
You grin and gaze at your arms.
Your fingernails extend and warp to become thick black claws.
You force yourself down on the tentacles penetrating your ass.
It's too much to bear; you're about to cum.
\<<run setup.choice("[[Cum->Transformation_Incubus_Level2_4_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
More tentacles suddenly rise and massage every inch of your body.
Your muscles bask in the sheer lust of this otherworldly beast pleasuring you.
Your form slowly expands bigger as you cum over and over.
\<<run setup.choice("[[Cum->Transformation_Incubus_Level2_4_3]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
Deep moans of yours could be heard all over the barrens.
A black forked tail suddenly bursts from behind you; its thickness increases as it pulls out of you.
<<print setup.processFlavours($CharacterSheet_Player, "You instinctively coil it around your @[all|cocks|noverb] as you cum the last remains of your mortal seed.")>>
You drench yourself with your now thick dark purple cum.
\<<run setup.choice("[[Continue->Transformation_Incubus_Level2_4_4]]");>>As if to react to your humanity finally leaving you, the tentacles pull back, and the beast leaves this plane of existence.
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_DemonicCorruption);>>
You are now a <<print setup.getLength(setup.getStatValue($CharacterSheet_Player, "height"))>> demon with a <<print setup.getLength(setup.getStatValue($CharacterSheet_Player, "cock"))>> cock.
Ethrex lets out a deep chuckle before giving you an intense, monstrous kiss.
A never-ending lust courses through your vein, a curse that will lead you in a path of sin.
“Go on then, 'hero'. Show the world what you’re made of.”
∇: You gain the "Major Demon" ability.
∇: You can now use the "Incubus Call" fight move.
∇: Ethrex's power has increased.
\<<run setup.upgradeEthrexStats(2)>>
\<<run setup.setRaceLimbs($CharacterSheet_Player, ["arms","hands","legs","tails"], setup.RacePool.INCUBUS)>>
\<<run setup.colourLimbs($CharacterSheet_Player, ["arms","hands","legs","tails"], setup.ColourPool.BLACK)>>
\<<run setup.choice("[[Continue->Village]]");>>\<<run setup.playSoundActionParams(["action_Suck"], true)>>
Ethrex can't wait any longer.
He comes to you and grabs you by the back of the head and pulls into a deep kiss.
He feels his old powers reaching out to him, just a little more essence before he regains his former strength.
You both need this more than anything.
\<<run setup.choice("[[Continue->Transformation_Incubus_Level3_1_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
You break the kiss and push his head down to suck on your <<print setup.getLength(setup.getStatValue($CharacterSheet_Player, "cock"))>> cock.
He can barely handle it, yet he forces himself to take you.
He rolls his wet demonic tongue on your cock.
\<<run setup.choice("[[Continue->Transformation_Incubus_Level3_1_2_1]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
You want to make him work for his powers.
With every suck, you allow him to have a little more Essence.
His moans turn deeper each time.
You see his shoulder growing wider and filling with strength. His whole body starts to grow.
You feel his head getting larger under your hand. His tongue covering more and more of your cock.
\<<run setup.choice("[[Give him more...->Transformation_Incubus_Level3_2]]");>>\<<run setup.playSoundActionParams(["action_Suck"], true)>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
Hundreds of pounds of muscles begin to develop on his demonic body.
He smiles as he grabs your waist and sucks you down to your balls.
With a thunderous roar, you flood him with cum. And with it, your Essence rushes inside him.
His whole body starts to shake.
\<<run setup.choice("[[Continue->Transformation_Incubus_Level3_2_1]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
He looks up to you, his eyes completely red and glowing with demonic powers.
His horns grow further until they reach behind his head.
\<<run setup.applyGrowth($CharacterSheet_Ethrex, "cock", setup.getStatValue($CharacterSheet_Ethrex, "cock") * 4)>>
"Oh, yes... Here it comes..." He moans as his cock grows. He can barely handle it.
He drools, gazing at his now <<print setup.getLength(setup.getStatValue($CharacterSheet_Ethrex, "cock"))>> monster cock.
"I need more..." He grins and looks at his gigantic cock.
"But first... My end of the bargain, <<print $CharacterSheet_Player.info.name>>"
\<<run setup.choice("[[Continue->Transformation_Incubus_Level3_2_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
You shudder with excitement as he pierces the ground with his claws.
A deep and black rot starts to flow in the earth around you.
The few plants around you become warped and corrupted as it spreads for more than <<print setup.getLength(30)>>.
The center is jet black, you recognize the glass like surface from before.
But this time it's beyond massive.
\<<run setup.choice("[[Continue->Transformation_Incubus_Level3_2_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
"You see, this god that's under us, it's only a fragment of what he used to be. He watches our every move, whispers to us in our most vulnerable moments."
The demon's body shakes as power builds inside him.
His scales pulsate with red demonic energy.
"And I'm gonna make him whole again."
\<<run setup.choice("[[Continue->Transformation_Incubus_Level3_2_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
\<<set _oldHeight = setup.getLength(setup.getStatValue($CharacterSheet_Ethrex, "height"))>>
\<<run setup.applyGrowth($CharacterSheet_Ethrex, "height", setup.getStatValue($CharacterSheet_Ethrex, "height") * 1.5)>>
He grows and grows until his previously <<print _oldHeight>> body reaches <<print setup.getLength(setup.getStatValue($CharacterSheet_Ethrex, "height"))>>.
His laughs become more dominant and wicked.
Thick pre-cum oozes from his cock as he grasps his monster with glee.
\<<run setup.choice("[[Embrace the Corruption->Transformation_Incubus_Level3_3]]");>>\<<run setup.stopSoundActions()>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
Suddenly, countless tentacles burst from the depth of the black portal. They feed on the unholy lust radiating from the both of you.
Some coils around Ethrex's <<print setup.getLength(setup.getStatValue($CharacterSheet_Ethrex, "cock"))>> cock and massage it from every angle.
But most of them crawl towards you.
The smell of your black soul, begging to be thoroughly corrupted, drives them mad.
They rush up your legs and invade your ass without warning.
\<<run setup.choice("[[Embrace the Corruption->Transformation_Incubus_Level3_3_1]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
Your roars are louder than the giant demon's.
Tentacles move along your cock and balls, drenching them with the same demonic liquid that changed you last time.
But now you can take so much more... You force your ass down on the tentacles, inviting them to fill you deeper.
You grasp some of them and jerk them off, they drench your body with their corrupting seed in response.
\<<run setup.choice("[[Embrace the Corruption->Transformation_Incubus_Level3_3_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
As if to respond to your mad need for pleasure, countless other black tendrils emerge.
You feel them slither around your legs, completely covering every inch of your scales in a wet and warm embrace.
Once they reach your waist, you unleash a raw scream of manic lust. The tendrils attach to your cock and ball, injecting their demonic seed directly inside them.
\<<run setup.choice("[[Embrace the Corruption->Transformation_Incubus_Level3_3_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
"Oh, fuck... Oh fuuuuuck... Moooooore..." Ethrex moans beside you.
<h1>"FUCK YESSSSS! MOOOOORE!"</h1>
Your cock shoots blanks over and over again.
The tendrils crawl up your chest, and a massive one enters your mouth.
You suck it like your life depends on it. It bulges and expands as litres of thick demonic goo erupts from it.
You try to take it all in.
\<<run setup.choice("[[Become Something More...->Transformation_Incubus_Level3_4]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player"]);>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_DemonicCorruption);>>
Ethrex could only stare in amazement, you are entirely covered by so many tentacles, it is like being encased in a black cocoon.
You could feel your muscles filling with power as your silhouette changes.
The cocoon can barely contain your growing form.
Ethrex knows you are turning into more than a demon, you have been chosen. Blessed by lust itself.
\<<run setup.choice("[[Continue->Transformation_Incubus_Level3_4_1]]");>>All you need is one last push.
And Ethrex would gladly provide it.
He cums, jet-black seed gushing out of his cock like a broken dam.
It completely drenches your cocoon and you feel your body feed on its unholy energy.
\<<run setup.choice("[[Continue->Transformation_Incubus_Level3_4_2]]");>>Scales slowly grow along every surface of your body.
Your head throbs as a new set of massive horns emerge from your temples.
\<<run setup.changeLimbsNumber($CharacterSheet_Player, "horns", 2)>>
Your cock is pressing on the walls of your enclosure as it keeps growing bigger and bigger.
You could feel your own dam breaking.
\<<run setup.choice("[[Emerge->Transformation_Incubus_Level3_4_3]]");>>The tentacles cannot hold you anymore, you slash at the surface of your cocoon with your now thicker claws.
Litres of thick demonic seed flows as you step out.
You are now fully covered in black spiky scales. A purple glow radiates from between each of them.
The purple slit of your eyes are now surrounded by pure black scleras. Your now <<print setup.getLength(setup.getStatValue($CharacterSheet_Player, "cock"))>> cock constantly throbs with need.
Ethrex drools at your new form, and you grin at him in response, exposing your new set of sharp, pointed teeth.
Calling you a demon would be an understatement at this point, your total devotion to your arousal has turned you into something more...
A true Lord of Lust.
\<<run setup.upgradeEthrexStats(3)>>
\<<run setup.setRace($CharacterSheet_Player, setup.RacePool.LORD_OF_LUST, {keepExtras: true, keepColours: true})>>
\<<run setup.colourLimbs($CharacterSheet_Player, ["heads","abdominals","arms","hands","legs","tails"], setup.ColourPool.BLACK)>>
\<<run setup.colourLimbs($CharacterSheet_Player, ["eyes","cocks","balls","tongues"], setup.ColourPool.PURPLE)>>
∇: You gain the "Lord of Lust" ability.
∇: You now use the "Incubus Slash" fight move.
∇: Your body fully becomes that of a Major Demon.
∇: Ethrex's power has increased.
\<<run setup.choice("[[Emerge->Transformation_Incubus_Level3_4_4]]");>>You growl like a true beast. The sheer sound of your voice is enough to bring Ethrex to the edge once more.
“Hehehe, make this world your plaything, Lord.”
And so you set your gaze back towards your home.
Your cock throbs in anticipation to the chaos you're about to unleash.
\<<run setup.choice("[[Leave->Village]]");>>As you traverse the Barrens, you feel a familiar taint fill the air.
Every breath you take makes your heartbeat faster and more forceful.
You remember the familiar feeling of being around a certain incubus.
\<<run setup.choice("[[Seek the source of the Corruption->Encounter_Intro_Ethrex_LowRela_2]]");>>
\<<run setup.choice("[[Leave->Village]]");>>The incubus slowly strides along the Barrens.
He seems lost in thought, and shows no signs of having spotted you.
His cock lays there for you to gaze at.
Its entire <<print setup.getLength(setup.getStatValue($CharacterSheet_Ethrex, "cock"))>> length heavily bounces with every step.
\<<run setup.choice("[[Continue->Encounter_Intro_Ethrex_LowRela_3]]");>>A wide, maniacal smile grows on his face and his cock suddenly hardens.
He stands, and looks around him. Almost as if he feels your growing arousal.
Like he could taste the power that awaits him.
\<<run setup.choice("[[Continue->Encounter_Intro_Ethrex_LowRela_4]]");>>His grin grows animalistic, his forked tail flicks behind his muscular back.
He now looks straight at you with slitted, piercing eyes.
"Back for more, are we now?"
He raises a clawed hand and beckons you to come closer.
<<print setup.getFightStartPassages($CharacterSheet_Ethrex)>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
Exhaustion takes you over, and all you can focus on is the approaching incubus.
His muscled frame is slick with sweat, his chest rises and falls with each satisfied breath.
He reaches to lift your chin up, and your eyes meet.
You can feel the intensity of the moment, and the heat of his body.
<<include setup.getNextNarativeEventPassage(setup.StorySheet_Ethrex.encounterLossFlavour)>>
\<<run setup.choice("[[Continue->Encounter_Loss_Ethrex_0_1]]");>>“I can tell, you're not like others who roam the Barrens.”
\“Your soul is so perplexing... Let's see how it handles my powers.”
\“Hmmmm... I'm gonna enjoy this.”
\“Let's get this over with.”
\His lips curl in a wicked smile as the Essence that built in the intensity of the fight rushes towards him.
The incubus's wings expand slightly, and his eyes glow brighter.
You can almost feel the power radiating from him, a tangible force that you can almost touch.
He is like a live wire, and you can feel your own lust increasing as his demonic aura grows.
∇: Ethrex's body grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Ethrex, "height", 10))>>.
∇: Ethrex's cock grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Ethrex, "cock", 12))>>.
∇: Ethrex's balls grow <<print setup.getLength(setup.applyGrowth($CharacterSheet_Ethrex, "balls", 4))>>.
You fall down on your knees, your cock pulsing and begging for release.
\<<run setup.choice("[[Crawl towards him->Encounter_Loss_Ethrex_0_2]]");>>
\<<run setup.choice("[[Run Away->Village]]");>>Ethrex grins in victory as red demonic energy flows from his hands and into your cock.
Your dick eagerly absorbs the demonic energy.
A deep pleasurable moan seeps out of your lips.
\<<run setup.choice("[[Kiss him->Encounter_Loss_Ethrex_1]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
You reach up to the incubus and kiss him deeply.
He pushes it further, his own tongue reaching down your throat as if to taste something inside you.
You feel your orgasm being blocked by his magic. It builds into a hunger for release that can't be sated.
\<<run setup.choice("[[Continue->Encounter_Loss_Ethrex_1_1]]");>>You whimper to the demon who grins maniacally in response.
"You're not ready yet. And I won't settle for an undercooked meal."
He brings both hands to your shaft and let his demonic magic flow inside your flesh.
\<<run setup.choice("[[Beg for more->Encounter_Loss_Ethrex_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
You feel your cock grow bigger, so much bigger.
Ethrex kisses you again, his taste drives you wild, you can't get enough.
You feel your balls get denser and fuller.
\<<run setup.choice("[[Continue->Encounter_Loss_Ethrex_2_1]]");>>Your cock gorges on his demonic energy, making it grow to <<print setup.getLength(setup.getStatValue($CharacterSheet_Player, "cock") + 31)>>.
The incubus then pulls back and brings his cock to your face.
He grabs the back of your head and pulls you towards it.
Your cock grows you stroke it, your fingers sliding over the shaft with increasing speed.
∇: Your cock grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Ethrex, "cock", 3))>>.
\<<run setup.choice("[[Cum->Encounter_Loss_Ethrex_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
Every touch hits you like a tidal wave, and soon you go over the edge.
You can only scream under the sheer intensity of it all.
The incubus licks his lips in anticipation.
Your <<print setup.getLength(setup.getStatValue($CharacterSheet_Player, "cock") + 31)>> monster trembles under the upcoming flood.
\<<run setup.choice("[[Continue->Encounter_Loss_Ethrex_4]]");>>A roar burst out of you, one that could be heard for miles.
The sheer size of it is almost too much for you to handle, but you keep going.
Hot, thick streams of cum begin to shoot out, flooding your surroundings and coating everything in sight.
\<<run setup.choice("[[Continue->Encounter_Loss_Ethrex_5]]");>>You can feel your orgasm intensifying as cum never stops gushing out.
The demon looks down on you with a devilish smile.
Your vision slowly blurs, yet you stare at Ethrex with utter admiration for his new form.
"Grow in strength, then come back to me." He whispers before letting out a deep chuckle.
\<<run setup.choice("[[Pass out->Village]]");>>\<<set $CharacterSheet_Ethrex.quest.beatenOnce = true>>
Ethrex stumbles back, his feet slipping out from beneath him.
He falls onto his back with a thud but begins to laugh uncontrollably.
His body shakes with mirth and his eyes crinkle in joy.
Laughter reverberates through the air.
“Yesssss, that’s it. You might be the one he spoke of.”
\<<run setup.choice("[[Continue->Encounter_Intro_Ethrex_LowRela_Win_2]]");>>He tries to lift himself up but only manages to stand on one knee.
His eyes glow a deep red, he surveys you with an unsettling intensity.
“Only one way to find out.”
Your battle has brought forth a massive reserve of Essence, one that is now rushing towards you.
\<<run setup.choice("[[Continue->Encounter_Intro_Ethrex_LowRela_Win_3]]");>>You can feel the Essence wrap around you, seeping into your pores and filling your veins with its presence.
As it infuses your body, you feel an power coursing through your veins.
Ethrex looks on with approval, his eyes twinkling with satisfaction.
\<<run setup.choice("[[Continue->Encounter_Intro_Ethrex_LowRela_Win_4]]");>>More Essence rushes into you, fills your soul with raw, pleasurable power.
You clasp your fists, feel your veins surge out.
It pushes into your mouth like a sentient cloud, making your soul flare out in a sudden burst of power.
\<<run setup.choice("[[Continue->Encounter_Intro_Ethrex_LowRela_Win_5]]");>>Pleasure rises within you, raw, potent pleasure.
Suddenly, Ethrex whispers with a mischievous grin.
“Surely you want more, don’t you? Grant me some Essence, and I’ll show you what true power feels like.”
You try to contain deep moans and feel yourself being brought to the edge.
\<<if $Essence >= setup.getDemonicTFCost($CharacterSheet_Player)>>
<<print "[[Grant him Power ("+setup.getDemonicTFCost($CharacterSheet_Player)+" Essence)->"+setup.getDemonicTFPassage($CharacterSheet_Player)+"][$Essence -= "+setup.getDemonicTFCost($CharacterSheet_Player)+"]]">>
\<<else>>
<<print "<span class = 'inactive'>[[Grant him Power ("+setup.getDemonicTFCost($CharacterSheet_Player)+" Essence)->"+setup.getDemonicTFPassage($CharacterSheet_Player)+"]]</span>">>
\<</if>>
[[Refuse->Encounter_Intro_Ethrex_LowRela_Win_Leave]]“Tsk, what a waste of wonderfully potent Essence.”
Even after tasting defeat, Ethrex is an imposing figure.
His wings twitch and shudder, as if they are eager to take him away.
He stares at you, as if daring you to reconsider, before sighing in disappointment.
\<<run setup.choice("[[Continue->Encounter_Intro_Ethrex_LowRela_Win_Leave_2]]");>>After few steps forward, he leaps into the air, his wings unfurling to their full length.
He ascends with each powerful flap, and soon he brings with him a gust of wind.
The sun shines off his wings as he soars away.
\<<run setup.choice("[[Continue->Encounter_Intro_Ethrex_LowRela_Win_Leave_3]]");>>With Ethrex gone, you feel yourself more in control of the pleasure rushing through your body.
\<<run setup.choice("[[Leave->Village]]");>>The sun beats down on your shoulders, and you feel the sweat start to form on your skin.
You pause, sniffing the air, and feel a shiver run down your spine.
The scent is musky and sweet, debauchery taken form.
You recognize the smell of Ethrex, the incubus.
\<<run setup.choice("[[Investigate the smell->Encounter_Intro_Ethrex_MidRela_2]]");>>
\<<run setup.choice("[[Leave->Village]]");>>It is not long before you see Ethrex in the distance.
He stands tall and strong, his massive wings spread wide and a menacing look in his eyes.
He grins, eyeing you from head to toes. His cock throbs faster the more he gazes.
\<<run setup.choice("[[Continue->Encounter_Intro_Ethrex_MidRela_3]]");>>He steps towards you, every step causing an audible thud.
His cock now leaks out precum like a damaged pipe.
“Hmmmm... Finally. I’ve been waiting for you to come back.”
Deep moans below out of his now brutish face.
<<print setup.getFightStartPassages($CharacterSheet_Ethrex)>>Ethrex stumbles back, his feet slipping out from beneath him.
He falls onto his back with a thud but begins to laugh uncontrollably.
His body shakes with mirth and his eyes crinkle in joy.
Laughter reverberates through the air.
\<<run setup.choice("[[Continue->Encounter_Ethrex_MidRela_Win_1_2]]");>>You can feel the Essence wrap around you, seeping into your pores and filling your veins with its presence.
As it infuses your body, you feel an power coursing through your veins.
Ethrex lets out a monstrous grin.
“Yes... This is what I was promised by my god. TAKE IT ALL!”
\<<run setup.choice("[[Continue->Encounter_Ethrex_MidRela_Win_2]]");>>More Essence rushes into you, fills your soul with raw, pleasurable power.
You clasp your fists, feel your veins surge out.
It pushes into your mouth like a sentient cloud, making your soul flare out in a sudden burst of power.
\<<run setup.choice("[[Continue->Encounter_Ethrex_MidRela_Win_3]]");>>Pleasure rises within you, raw, potent pleasure.
Suddenly, Ethrex whispers with a mischievous grin.
“Now’s the time, give that Essence to me, and I’ll turn you into a true demon.”
You try to contain deep moans and feel yourself being brought to the edge.
\<<if $Essence >= setup.getDemonicTFCost($CharacterSheet_Player)>>
<<print "[[Grant him Power ("+setup.getDemonicTFCost($CharacterSheet_Player)+" Essence)->"+setup.getDemonicTFPassage($CharacterSheet_Player)+"][$Essence -= "+setup.getDemonicTFCost($CharacterSheet_Player)+"]]">>
\<<else>>
<<print "<span class = 'inactive'>[[Grant him Power ("+setup.getDemonicTFCost($CharacterSheet_Player)+" Essence)->"+setup.getDemonicTFPassage($CharacterSheet_Player)+"]]</span>">>
\<</if>>
[[Refuse->Encounter_Intro_Ethrex_LowRela_Win_Leave]]“You can't be serious...”
Even after tasting defeat, Ethrex is an imposing figure.
His wings twitch and shudder, as if they are eager to take him away.
He stares at you, as if daring you to reconsider, before sighing in disappointment.
\<<run setup.choice("[[Continue->Encounter_Ethrex_MidRela_Win_Leave_2]]");>>After few steps forward, he leaps into the air, his wings unfurling to their full length.
He ascends with each powerful flap, and soon he brings with him a gust of wind.
The sun shines off his wings as he soars away.
\<<run setup.choice("[[Leave->Village]]");>>The sun beats down on your shoulders, and you feel the sweat start to form on your corrupted, scaled.
You pause, sniffing the air, and your cock throbs in response.
You could recognize that smell anywhere.
\<<run setup.choice("[[Meet Ethrex->Encounter_Intro_Ethrex_Teammate_2]]");>>
\<<run setup.choice("[[Leave->Village][setup.flagTimePasses($CharacterSheet_Ethrex)]]");>>It is not long before you see Ethrex in the distance.
He is a momunent of raw lust, a <<print setup.getLength(setup.getStatValue($CharacterSheet_Ethrex, "height"))>> tall demonic demi-god.
He steps towards you, every step causing the ground to crack.
\<<run setup.choice("[[Continue->Encounter_Intro_Ethrex_Teammate_Menu]]");>>“Let's get moving, Lord of Lust. This world calls for our Corruption.”
You feel a chill run down your spine as he stops in front of you, his eyes blazing with an intense, fiery intensity.
\<<run setup.choice("[[Decide when Ethrex attacks->Ethrex_Teammate_ChangeAttackTiming]]");>>
\<<if $CharacterSheet_Player.info.tags.partnerSparExhaustion == true>>
<span class = 'inactive'>[[Fight Him->Ethrex_Teammate_Fight]] (You must rest before sparring again.)</span>
\<<else>>
\<<run setup.choice("[[Fight Him->Ethrex_Teammate_Fight]]");>>
\<</if>>
\<<run setup.choice("[[Return home->Village][setup.flagTimePasses($CharacterSheet_Ethrex)]]");>>"I care not about how you fight, just the rewards that come after."
<<print setup.displayAttackTimingDescription($CharacterSheet_Ethrex)>>
[[Attack before me->Encounter_Intro_Ethrex_Teammate_Menu][$CharacterSheet_Ethrex.fight.teammateSettings.attackTiming = setup.AttackTiming.BEFORE_PLAYER]]
[[Attack after me, but before our enemy->Encounter_Intro_Ethrex_Teammate_Menu][$CharacterSheet_Ethrex.fight.teammateSettings.attackTiming = setup.AttackTiming.BETWEEN_PLAYER_AND_ENEMY]]
[[Attack after me, but after our enemy->Encounter_Intro_Ethrex_Teammate_Menu][$CharacterSheet_Ethrex.fight.teammateSettings.attackTiming = setup.AttackTiming.AFTER_ENEMY]]“Hmmmm, your soul is too far gone to empower me anymore, but there is still Essence we can bring forth.”
\<<set $CharacterSheet_Player.info.tags.partnerSparExhaustion = true;>>
<<print setup.getFightStartPassages($CharacterSheet_Ethrex)>>Ethrex's lips are locked with yours and you can feel his breath on your face.
His hands are spread out around you, gripping your body with a fervor you'd never experienced before.
Slowly, he pulls away, his lips reluctantly leaving yours.
\<<run setup.choice("[[Continue->Encounter_Ethrex_FinalRela_Win_Teammate_2]]");>>He begins to move, pushing himself up off of you, and you can feel the heat radiating from his body.
His muscles flex with effort as he rises, and you can't help but admire his strength and beauty.
"Gahhhhh... You truly are lust given form."
The meaning of his words resonate within your soul.
Through your days of endless debauchery, you've felt stronger than ever.
∇: You gain the "Lust Incarnate" ability.
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_LustIncarnate)>>
\<<run setup.choice("[[Continue->Encounter_Intro_Ethrex_Teammate_Menu]]");>>\<<run setup.choice("[[Fight->FightLogic]]");>>\<<run setup.choice("[[Continue->Village]]");>>\<<run setup.choice("[[Continue->Village]]");>>The Herald is merciless in his offense. He kicks your leg, forcing you down on one knee.
"Our Bastion is not for monsters such as you."
\<<run setup.choice("[[Continue->Village_Herald_Loss_1]]");>>His fury is evident, but he still seems in complete control. Every move feels deliberate, and even though he desires to push it further, he stops himself.
His arms drop to his side before he gestures to you to leave.
"I will show mercy, explorer. Lose this Corruption coursing through your body, so that you can be judged once again."
\<<run setup.choice("[[Leave the Golden Bastion->Village_Exiled]]");>>\<<run setup.completeAchievement("Achievement_MemoriesOfTheLost");>>
The herald crumples before you. All strength, all vigor, all of his glory melts from his body like ice in the desert sun.
The idea that you may have once admired the Herald for their strength seems like a lifetime away.
In many ways, it is.
\<<run setup.choice("[[Continue->Village_Herald_Win_1]]");>>“You can't do this! We won't let you!” You hear a voice shout and your gaze drifts from the fallen Herald to see the Bastion's guards running at you.
You see their faces. They are familiar, one and all. You know that they are meant to be pillars of strength and resolve.
Something inside of you has changed however. A realization perhaps?
Yes. . .
They are weak.
\<<run setup.choice("[[Strike them down->Village_Herald_Win_2]]");>>You let them know just how weak they truly are, as you strike them aside with just a handful of seconds and as many swings of your powerful arms.
They pose no threat to you anymore.
All you see is their weakness; though perhaps there is still a chance for them yet. You have the means to grant them some of the strength within you, after all.
But first things first. You roar out, ushering forth a primal bellow understood since the dawn of time.
With that thunderous roar, you let the world know of your victory and call upon all to acknowledge it.
Your roar is answered.
Not from within the Bastion, hoard of weakness that it is, but from outside.
\<<run setup.choice("[[Continue->Village_Herald_Win_3]]");>>You hear the howls, the cries, the screams and snarls of those who have taken the first steps to embrace pure power.
With its defenders lying beaten and scattered, the Bastion lies defenseless before the swarm of Lost as they heed your call.
Your lesser kin roar at the sight of your victory over those who seemed unbeatable until now.
\<<run setup.choice("[[Continue->Village_Herald_Win_4]]");>>The strong grow stronger and the weak inevitably fall in line. There is no defiance and no fear; there is only submission and raw unadulterated lust.
They know their place and their position compared to you. They see you as what you are: the pinnacle of what they could be.
\<<run setup.choice("[[Continue->Village_Herald_Win_5]]");>>Glistening muscle-bound titans in their own right, they approach you like the feral beasts they are, and yet in every motion of theirs you can see the zealous reverence.
They come to flank you, come to stand before you, and some kneel while others press themselves against your body.
\<<run setup.choice("[[Let them worship you->Village_Herald_Win_6]]");>>You let them; after all, is this not your due reward? You have proven, over and over again, that you are among the strongest, if not even the strongest!
They should adore, worship and service you in every way they could imagine!
The air is thick with arousal, both yours as well as theirs. Their hands roam over your muscular legs and your flaring lats. Their tongues slather your balls and maleness.
The corrupt runes that adorn your body glow as a stream of liquid corruption gushes from your member in place of pre, which the Lost eagerly lap up.
And you provide them plenty, as each little lick, each stroke of their hands, feels like a jolt of lightning surging through your massive maleness.
\<<run setup.choice("[[Continue->Village_Herald_Win_7]]");>>Fat veins along your member throb and feed it bigger each time. The steady stream turns into a volley of thick globs of goo, each massive jet of corruptive fluid as big as a grown man's torso.
There is no stopping it; quite the opposite in fact, as you can feel your balls grow fuller and heavier by the second instead of losing mass with each heavenly spurt.
The runes covering them pulse with growing vigor and fill your loins with an incredible heat.
Your gaze is hazy and unfocused as you look around and see the growing mass of bodies.
\<<run setup.choice("[[Continue->Village_Herald_Win_8]]");>>More and more Lost are flocking in, all driven to worship the one who single-handedly took down the Golden Bastion's defenses.
Some of the village's remaining citizens join in and soon swell with muscle and size, all from the sheer power you radiate.
They. Are. Yours. Yours to do with as you see fit.
And you know exactly what they want.
\<<run setup.choice("[[Grow for your worshippers->Village_Herald_Win_9]]");>>You can feel their desire fill you and your body responds to the demand.
Heat flows through you, spreads into your limbs, stretches through your chest and flushes your genitals. You can feel an incredible pressure mount as the Lost obey and worship their pinnacle, their god.
United in a singular purpose, sharing in the Corruption that flows freely through them, both their bodies and yours surge in waves of growth.
The hungering howls of the beasts worshiping your maleness turned into ecstatic gurgles as their bodies begin to merge into yours.
Their massive, muscular frames sink into your own glistening flesh. The sensation as their mass flows into and spreads through you is exhilarating by itself already, like an incredible feast where you could eat your fill.
Thankfully, your hunger is endless, because so is the feast.
\<<run setup.choice("[[Continue->Village_Herald_Win_10]]");>>Another triumphant roar thunders its way across the skies as your body expands. Your power mounts even in excess of your size.
Your strength soars as your muscles tighten and stretch your skin.
Thick and powerful cords strain as massive veins throb beneath your skin to supply your growing bulk.
You watch as the buildings around you shrink away even further, become ever less noteworthy when compared to your glory, and as your gaze rises higher, above even the walls that surround the city, you cannot help but roar out again.
\<<run setup.choice("[[Outgrow the Golden Bastion->Village_Herald_Win_11]]");>>The volume of your voice grows while its pitch deepens with the thickening and barrelling of your chest. It carries out over the plains and beyond the horizon.
The Lost answer again as within moments even more appear over the horizon to heed your call.
You can see their massive lumbering forms as they come running far, far faster than any being of such size had the right to.
They paid little heed for each other as those larger and faster smothered those who were too small, too slow, only to absorb them mid-stride and mutate and expand larger for it.
The Lost are now throwing themselves at you. They merged into your legs, your balls, your cock. Their forms submerge into your flesh as they add their size, their power, their lust and potential to you.
\<<run setup.choice("[[Continue->Village_Herald_Win_12]]");>>Each new wave of Lost sacrificing themselves to you is like an explosion that propels you to new heights of pleasure. They all see you soar into the heavens of orgasmic bliss.
The immense monster between your legs, fed and constantly growing, erupts with a cataclysmic deluge of your corrupted seed.
Black glistening goo, of the same coloration as the Lost and, by now, your own flesh, ushers forth with such weight, volume and force that it sweeps even the more titanic of the Lost off their legs.
However, you fare no better. The sheer volume of your ever-intensifying orgasm piles the goo so high before you that it flows back and engulfs your lower body.
Your legs disappear in the writhing mass of corruption and you can feel a connection form.
It is no different from your flesh at this point, and it is no different from the Lost merging with you either.
Your legs become one with the mass.
\<<run setup.choice("[[Continue->Village_Herald_Win_13]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/lost_ending_lowres.png","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/lost_ending.png", undefined, true)>>
Slowly it lifts you higher as even your immense member is swallowed by it, but it feels better than ever. Hundreds, thousands of hands are worshiping your glorious size, unseen and unfelt by anyone but you.
You rise atop the growing sea beneath you, as Lost and Corruption become your body.
Your mass, formless and writhing, smothers the city, uninhabited but far from silent. Doors crash and walls buckle as you expand unceasingly and claim more and more for yourself.
\<<run setup.choice("[[Continue->Village_Herald_Win_14]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/lost_ending_lowres.png","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/lost_ending.png", undefined, true)>>
You grow stronger by the second, and the world weakens by comparison. You engulf the Golden Bastion and subsume it into your form without any conscious effort on your part.
You watch as your gooey mass uproots what had once been your home, before it is easily crushed away, only to contribute even more to your mass.
You seep into the very ground below and draw it upwards and into yourself, only for it to contribute even more. You raise your arms and flex them.
Mountains rise up around you as the world vanishes from view. You can see nothing but your own vastness.
The immensity of your pectorals, seem like the mesas of the desert, while to your left and right, your deltoids and biceps fight for the claim of who rises higher.
You cannot look behind you, as between the size of your monstrous neck and the looming traps, there is nothing to see but more of you.
There is no stopping your growth; your ascension.
\<<run setup.choice("[[Continue->Village_Herald_Win_15]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/lost_ending_lowres.png","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/lost_ending.png", undefined, true)>>
Throes of orgasmic pleasure rush through you and with each wave of pleasure comes another surging wave of growth.
You stand taller, expand wider, grow deeper, no matter where you look, you only see more of yourself as your gooey mass expands outward.
You tower as tall as a mountain as you rise out of the ruins of the city. Its walls fall and buckle underneath you.
\<<run setup.choice("[[Continue->Village_Herald_Win_16]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/lost_ending_lowres.png","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/lost_ending.png", undefined, true)>>
You can feel how they are crushed beneath your weight and it feels as if you did so by smashing your dick down upon them. And you realize that you can do just that.
Your form is yours after all. Malleable and willing, it will shape itself and do whatever you desire.
Desire.
To grow.
To consume.
To expand.
You are a god of lust and excess as you take full advantage of your ever expanding form.
<span class="glitch nyx fucked" data-text="G̶̠͉͖͐R̴̛̎̔̚͜Ȍ̵̹̹̹̖̅W̷̨͊̾̚͠ G̶̠͉͖͐R̴̛̎̔̚͜Ȍ̵̹̹̹̖̅W̷̨͊̾̚͠ G̶̠͉͖͐R̴̛̎̔̚͜Ȍ̵̹̹̹̖̅W̷̨͊̾̚͠ G̶̠͉͖͐R̴̛̎̔̚͜Ȍ̵̹̹̹̖̅W̷̨͊̾̚͠">[[Grow, Consume, Expand->Village_Herald_Win_17]]</span><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/lost_ending_lowres.png","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/lost_ending.png", undefined, true)>>
Sights that would fill a mortal with awe and wonder fall beneath you, as they are not nearly as interesting as the enclaves of other groups of survivors.
None of them have any hope to resist you, as you are a towering advancing wall of change, which moves with the force of a hurricane .
Like a mountainside on the march, a glacier of corruption, you crush their pitiful resistance beneath you.
And yet, while even the biggest among them - who if given the chance may have well become like you now - is still miniscule compared to your immense form, each of them still provide absolutely ecstatic pleasure as they are subsumed and absorbed inside you.
\<<run setup.choice("[[Continue->Village_Herald_Win_18]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/lost_ending_lowres.png","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/lost_ending.png", undefined, true)>>
Engulfed in your body, they are utterly at your mercy. You fuck them with gooey cocks, formed specifically just for them in the cocoons you form within your mass.
Your corruption overtakes them within seconds. Their bodies swell with brawn while skin, scale and fur ooze from every pore until they are engulfed head to toe.
They grow to become the best they could ever be, the greatest they could ever achieve.
\<<run setup.choice("[[Continue->Village_Herald_Win_19]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/lost_ending_lowres.png","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/lost_ending.png", undefined, true)>>
Once they outgrow their cocoons, once you have sated a vanishingly small fraction of your insatiable libido, they merge into your body like countless others before them.
The passage of time becomes meaningless to you, if it ever had much meaning to begin with, but even so you realize, or perhaps remember, that there was something else you wanted to do, that there is something else which requires your attention.
The temple of the Eldest.
It stands above all else, a beacon of a forgotten order.
You gaze upon it, and you can feel it gaze back. It radiates with hidden power beyond what you've been ever allowed to access.
\<<run setup.choice("[[Absorb the Eldest's Temple->Village_Herald_Win_20]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/lost_ending_lowres.png","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/lost_ending.png", undefined, true)>>
You reach out, not just with your hand, but with your mind, and pluck the temple from its foundation.
It fits into your palm like an apple and with a simple clench of your fist, you crush its shell and make contact with the tremendous energies that were hidden inside!
You feel like you have been electrified as every nerve in your monstrous body fires at the same time.
You feel pain and immense pleasure, heat and cold, as the stellar power courses through your veins.
\<<run setup.choice("[[Continue->Village_Herald_Win_21]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/lost_ending_2_lowres.png","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/lost_ending_2.png", undefined, true)>>
Unimaginable power courses through you; the runes across your body glow in a blindingly bright purple.
Wave upon wave of growth roils through your mass and it feels like your body is about to burst from the sheer strength of your muscles. No mortal could ever withstand such pleasure.
Incredible orgasms thunders through you as your sensations heighten to the point that the slightest of breezes would be enough to set you off .
You might have cum for minutes, hours or even days, it didn't matter as there is now only one constant:
Your unending, unceasing, unstoppable growth.
\<<run setup.choice("[[Continue->Village_Herald_Win_22]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/lost_ending_2_lowres.png","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/lost_ending_2.png", undefined, true)>>
You yearn to keep going, to consume and grow.
To grow the shell of existence cracks under your own weight.
And once you do, all worlds will feel your neverding lust.
\<<run setup.choice("[[Continue->Village_Herald_Win_23]]");>>All will feel your influence, like a sun burning into their flesh.
You reach out, to all that would succumb to your own selfish urges.
All will feel your light.
\<<run setup.choice("[[The End->Ending]]");>><<include setup.getNextNarativeEventPassage(setup.StorySheet_Imp.encounterPassages)>><<print setup.getFlavourBasedDescription($CharacterSheet_Imp, 'encounterStartFlavour')>><<include setup.getNextNarativeEventPassage(setup.StorySheet_Imp.postFightPassagesWin)>><<include setup.getNextNarativeEventPassage(setup.StorySheet_Imp.postFightPassagesLoss)>>\<<set $CharacterSheet_Imp.quest.met = true>>
\<<set $CharacterSheet_Imp.info.known = setup.EncounterKnownState.KNOWN>>
\<<set $CharacterSheet_Imp.quest.available_encounterPassages_firstTime = false>>
<<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/Barrens/northernbarrens.jpg", undefined, undefined, true)>>
You walk under the gaze of scorching sunlight, keeping your sight up on the lookout for Losts and other monsters.
\<<run setup.choice("[[Continue->Imp_FirstMeeting_Intro_2]]");>>Hours pass as you traverse a dried-up oasis without noticing any threat. Still, you have the unshakable feeling that you are being watched.
The Lost are not known for their subtlety, but who knows what other horror could lie in ambush.
\<<run setup.choice("[[Continue->Imp_FirstMeeting_Intro_3]]");>>The sound of a snapping tree branch suddenly catches your attention.
You turn and immediately notice a small figure lying on his back. Based on his red skin and bat-like wings, it is clearly an imp.
While you have been warned of all kinds of demons in the past, imps are mostly known for their trickery rather than any raw aggressiveness.
The lesser demon slowly gets up, eyes cast down in embarrassment.
"Damn it..." He mutters before meeting your gaze.
\<<run setup.choice("[[Continue->Imp_FirstMeeting_Intro_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
"What an introduction, pffff" He says, dusting off his wings while studying you out of the corner of his eyes.
His clawed feet dig into the sand as if he is preparing to pounce at any time.
\<<run setup.choice("[[Ready yourself->Imp_FirstMeeting_Intro_5]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
He grins, a glint of mad hunger showing in his devilish smile.
"A man of a few words, I see. That's fine by me; I can already taste the Essence within you."
Within less than a second, his wings unfold.
"We're all in this quest for power now, and I will not be left behind!"
<<print setup.getFightStartPassages($CharacterSheet_Imp)>>\<<set $CharacterSheet_Imp.quest.available_encounterPassages_growthCock1to2 = false>>
<<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/Barrens/northernbarrens.jpg", undefined, undefined, true)>>
The more you explore, the more you feel at ease with the enigmatic landscapes of the Barrens. Ruins become familiar; traps and points of ambush become increasingly easy to recognize.
As such, you immediately recognize a lone leafless tree lying between forgotten dunes.
\<<run setup.choice("[[Inspect the tree from afar->Imp_EncounterStart_Growth_Cock_1To2_2]]");>>
\<<run setup.choice("[[Leave->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
As you could have guessed, the familiar imp lies in ambush upon one of the old branches. He is struggling to stay hidden.
\<<run setup.choice("[[Walk to him->Imp_EncounterStart_Growth_Cock_1To2_3]]");>>
\<<run setup.choice("[[Leave him alone->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
The imp fumbles as he notices you coming towards him, yet he can catch himself before falling off the tree.
He climbs down and walks towards you with pride.
"We meet again, wanderer... I've been eagerly itching for your return."
His hands suddenly explore his own body. Without an ounce of shame, he grasps his demonic cock, feels the ridges of his throbbing veins.
\<<run setup.choice("[[Continue->Imp_EncounterStart_Growth_Cock_1To2_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
"Hmmm... I've been growing, but I'm sure you noticed already~."
His cock rises to his chest, a long drop of pre sliding down the shaft and curving around his full, pumping balls.
"Trust me, this is only the beginning... I'll grow until everyone looks up to me with lust burning in their eyes~."
With one hand grasping his mighty tool, he grins, his legs bent as he gets ready to pounce towards you.
<<print setup.getFightStartPassages($CharacterSheet_Imp)>>\<<set $CharacterSheet_Imp.quest.available_encounterPassages_growthCock2to3 = false>>
<<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/Barrens/northernbarrens.jpg", undefined, undefined, true)>>
The now-familiar deserts of the Barrens welcome you once again.
You walk confidently, keeping an eye out for treasures and listening for potential monsters lurking between the dunes.
\<<run setup.choice("[[Continue->Imp_EncounterStart_Growth_Cock_2To3_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 1)>>
You suddenly hear a familiar voice in the distance.
Deep, lustful grunts.
It sounds very familiar.
\<<run setup.choice("[[Investigate->Imp_EncounterStart_Growth_Cock_2To3_3]]");>>
\<<run setup.choice("[[Leave->Village]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
You rise from a nearby dune and see the imp giving in to his inner urges.
His three-fingered hands coil his shaft as he licks his cock slit, moaning and shaking with arousal. \
His whole body shivers, with pre-cum oozing out of his monstrous tool.
"G-guhhhhh... Hmmmmmm..." He moans without an ounce of shame.
\<<run setup.choice("[[Continue->Imp_EncounterStart_Growth_Cock_2To3_4]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Imp"])>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
His pleasure-filled growls suddenly stop as his glance meets yours.
He gives out an annoyed grunt.
"How dare..."
He gets up, annoyed but still clearly aroused.
"I should be grateful for seeing you here, but no one interrupts me without paying the price!"
He jumps towards you, his expression quickly turning into one of devilish desire.
<<print setup.getFightStartPassages($CharacterSheet_Imp)>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 1)>>
\<<set $CharacterSheet_Imp.quest.available_encounterPassages_growthCock3to4 = false>>
<<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/Barrens/northernbarrens.jpg", undefined, undefined, true)>>
Soon after you leave the Golden Bastion, a sound resounds across the desert.
It is deep, lustful and familiar. Focusing on it is an increasingly arousing act.
As your cock slowly springs to life, you recognize where you heard these moans before.
The moans of the ever-growing imp.
He gets louder with every encounter; his voice grows more profound, more powerful.
Surely he would not mind a visit.
\<<run setup.choice("[[Approach him->Imp_EncounterStart_Growth_Cock_3To4_2]]");>>
\<<run setup.choice("[[Leave->Village]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
He sees you coming as if he has been waiting for your arrival.
His gaze soon drifts back to his cock. His meaty fingers pinch one of his nipples. He shivers in response.
"It feels so good to grow, to feel your cock expand in your hands."
\<<run setup.choice("[[Continue->Imp_EncounterStart_Growth_Cock_3To4_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
His demonic cock reaches past his mouth now. It pulses with need, with thick veins pulsing angrily as if molten lava coursed through them.
"I bet it's the same for you too... I bet you ache to grow just like this." He grins, bending his knees slightly.
His usual combat stance is increasingly difficult to pull off, considering how much meat he's packing. Yet, he wouldn't have it any other way.
<<print setup.getFightStartPassages($CharacterSheet_Imp)>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 2)>>
\<<set $CharacterSheet_Imp.quest.available_encounterPassages_growthCock4to5 = false>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming")>>
"Soooo biiiiiiiig..." He mumbles, his mind bathing in the pleasure of his throbbing flesh grazing the warm wind.
He finally notices you and grins. Even in his state, he recognizes you.
"Yesssss... MAKE ME BIGGER!"
<<print setup.getFightStartPassages($CharacterSheet_Imp)>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 1)>>
It's not long after you leave the city that a familiar sound reverberates through the air.
Those moans of his are like rolls of thunder. It's powerful, so much more powerful than before.
They act like a clarion call to your libido. When you look down you realize the sound already has you rock hard and leaking pre.
The imp's powers are even more intense than before if he's able to affect you this badly from so far away without even trying.
\<<run setup.choice("[[Continue->Imp_EncounterStart_Growth_Cock_5To6_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
You know he must be even larger, even stronger than the last time you met him. Its enough to make you eager, excited, even nostalgic for the prior encounters that led you here.
It's even almost enough to make you nervous.
Dare you approach once again to see what has become of the monstrosity of an imp?
\<<run setup.choice("[[Approach him->Imp_EncounterStart_Growth_Cock_5To6_3]]");>>
\<<run setup.choice("[[Leave->Village]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 2)>>
\<<set $CharacterSheet_Imp.quest.available_encounterPassages_growthCock5to6 = false>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
His cock is already rock hard, not that you could even imagine that leviathan to ever go soft. It takes both of his disproportionately massive hands to even begin to cover a reasonable amount of his cock.
You know this because he's been shamelessly jerking himself off since you came into view.
To your surprise, he doesn't actually look bigger. Not that he's not still gigantic beyond reason both in size and proportion. But he hasn't grown any larger than your last encounter.
All except for one part.
\<<run setup.choice("[[Gaze at his balls->Imp_EncounterStart_Growth_Cock_5To6_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
His balls have ballooned to outright ridiculous proportions. His massive testicles now are each the size of his own torso and resting firmly upon the ground even with him standing. \
You could actually see the sheer amount of cum sloshing back and forth with each movement he makes.
Now you understand why that lust-inducing effect of his is so much stronger.
\<<run setup.choice("[[Continue->Imp_EncounterStart_Growth_Cock_5To6_5]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming")>>
The rest of his body may not have enlarged further but his virility seems to have grown more than enough for the rest of him! \
His cock is letting out a constant stream of pre that makes the ground at his feet into a quagmire of musky mud.
He takes a moment to simply wrap his lips around the head of his cock and greedily guzzle a few mouthfuls of his own pre before releasing it again with a happy sigh.
\<<run setup.choice("[[Continue->Imp_EncounterStart_Growth_Cock_5To6_6]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Imp"])>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
As the imp beckoned you closer he didn't even bother trying to take his normal fighting stance knowing full well his new proportions wouldn't allow it. Yet that did nothing to dampen the look of confidence on his face.
"Soon I'll be bigger than a god." The imp bragged before slapping the side of one of his enormous nuts.
<<print setup.getFightStartPassages($CharacterSheet_Imp)>>\<<set $CharacterSheet_Imp.quest.available_encounterPassages_growthBodyMediumToLarge = false>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
The deserts of the Barrens swallow you once again. Its endless dunes and valleys seemingly shift with every expedition, but some parts are just too massive to lose sight of.
What started as a tiny imp has become one of these; you see him tower over the dunes. The ground shakes under each of his thunderous steps.
Long, drawn-out moans bellow out of him, his voice now ten times deeper than it used to be.
Monstrous meaty hands grasp his cock as he notices your presence. He jerks it, grinning at you, letting you bask at his mountainous form.
\<<run setup.choice("[[Continue->Imp_EncounterStart_Growth_Body_MediumToLarge_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming")>>
You rise from a nearby dune and see the imp giving in to his inner urges.
The imp you once knew is but a memory at this point. He is now a demonic beast, big enough to crush anything that stands in his way.
Yet, his mischievous charm remains; he grins at you with the same old devilish smile.
"I'm so freaking big..." He opens his monstrous hand, marvels at how it's bigger than his head.
\<<run setup.choice("[[Continue->Imp_EncounterStart_Growth_Body_MediumToLarge_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
"But we can keep growing... We could be so much MORE!" He grins, his cock throbbing with anticipation.
It feels like fighting you is no longer a fight at all.
It's an exchange of power and lust. A dance of beasts ascending into godhood.
<<print setup.getFightStartPassages($CharacterSheet_Imp)>>\<<set $CharacterSheet_Imp.info.name = "Kanathar">>
\<<run setup.completeAchievement("Achievement_WordOfPower");>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
Your bond with the imp feels closer than ever.
Except.
Seeing this imp grow stronger with every encounter, the pleasure you've shared, it all feels strangely familiar.
Suddenly, a name appears in your mind, a powerful realization that shakes you to your core.
This imp, he is so much more. You remember him growing bigger than buildings. You've seen him absorb a power beyond anything mortals could ever touch. Your memories of you worshipping every inch of his impossibly huge form appear vividly in your mind.
You utter his name, the name that has conquered the limits of memories.
Kanathar.
\<<run setup.choice("[[Say his name->Imp_EndingLoop_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
The imp's eyes widen. It seems familiar to him as well.
"That word... It's a name, right?"
He suddenly grasps his chest in discomfort and grunt. The weight of his own past and future suddenly dawn upon him as well.
"That's... That's my name!"
\<<run setup.choice("[[Continue->Imp_EndingLoop_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
The heavy truth soon dawns upon you both, and the power hidden within his name takes no time to enter its owner.
His whole frame shivers as an aura of fiery purple envelop him.
"Oh gods," he says, "This power, it's all mine."
His pecs begin to balloon as he gropes them tentatively. His biceps grow to look even more intimidating and powerful. You can feel the power rushing into him, and it only flows into him even faster.
Δ: Kanathar's body grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Imp, "height", 12 * 12))>> taller.
\<<set $growth = setup.applyGrowth($CharacterSheet_Imp, "muscles", 90)>>
Δ: Kanathar's muscles grow to become <<print setup.getMusclesDescriptor($CharacterSheet_Imp)>>(+$growth).
\<<run setup.choice("[[Continue->Imp_EndingLoop_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
"Hmmmmm... Gahhhhh!"
His whole body pulses and bloats with power. His moans grow increasingly deep, and his cock snake down his legs. You have to step back as the Imp frame suddenly bursts out in size.
Δ: Kanathar's cock grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Imp, "cock", 11 * 12))>> longer.
Δ: Kanathar's balls grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Imp, "balls", 9 * 12))>> wider.
\<<run setup.choice("[[Continue->Imp_EndingLoop_5]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 3)>>
\<<run setup.applyCorruption($CharacterSheet_Imp, 100)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
"GRRAHHHHHH!!!"
His eyes fill with the same purple fire surrounding his body, the true essence of power, a boundless gift from a forgotten god. It's all for him, all for Kanathar.
His broken horn suddenly grows and reforms, giving him the stature of a true demon.
It is as it should be.
Δ: Kanathar's Corruption has increased by 100.
\<<run setup.choice("[[Continue->Imp_EndingLoop_6]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming", true)>>
Kanathar now grasps his cock and flexes with a deep cackle. Without a doubt, he's enjoying his gift.
Thick white cum oozes and drips down of his impossibly huge cock, and based on how huge his balls have grown, and you can tell that he'll be cumming for hours before emptying them.
"Hehehe, this is gonna be fun..." For the first time since you've met the imp, he honestly seems satisfied with himself.
But of course, it's not long before his demonic ambitions soon make him yearn for more.
"I'll be seeing soon; I'm sure there's a lot to discover with this new power."
\<<run $CharacterSheet_Imp.applyAbilityRuntimeData(setup.Ability_NeverendingGrowth)>>
Δ: Kanathar gains the "Never-ending Growth" ability.
\<<run setup.choice("[[Return to the Golden Bastion->Village]]");>>\<<run setup.buffImpEncounter()>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
As you rummage some ruins in search of salvage, you hear a familiar voice resound in the distance.
"You again! I've been training, waiting for the day I'd meet you in my travels again! Prepare yourself!"
It is closer to screeching than anything else, but you do recognize that voice. You turn to face the imp that you previously met.
He is determined to fight you once more.
<<print setup.getFightStartPassages($CharacterSheet_Imp)>>\<<set $CharacterSheet_Imp.quest.available_LukkaReservoir_QuestHint = false>>
\<<set $CharacterSheet_Imp.quest.relationshipScoring++>>
The imp clutches his chest and falls to one knee, yet he snickers amidst the pain. He seems strangely satisfied.
But your attention is diverted to Lukka's Essence reservoir.
The apparatus beings to glow in a soft red light.
You can sense that the reservoir fills itself with the imp's Essence.
∇: Lukka's Essence reservoir glows brighter than before.
\<<run setup.choice("[[Continue->Imp_LukkaReservoir_QuestHint_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
The imp senses your distraction and takes advantage of the opportunity to make its escape.
"Keep your eyes on the prize, wanderer."
He flaps its wings and takes off into the sky.
His wings seem to sparkle in the sunlight and it gracefully soars higher and higher into the sky, eventually fading into the horizon.
You are left alone in the Barrens once more.
\<<run setup.choice("[[Return to the Golden Bastion->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
The imp clutches his chest and falls to one knee, yet he snickers amidst the pain. He seems strangely satisfied.
"Hehehe... I haven't felt the thrill of the fight in a long time..."
His legs shake, overburdened by the sheer act of standing up.
The imp falls unceremoniously, his wings slowly laying flat beside him.
\<<run setup.choice("[[Continue->Imp_Low_Rela_Win_Idle_2]]");>>\<<set $CharacterSheet_Imp.quest.relationshipScoring++>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
A faint white mist rises from the ground around you both.
You feel the energy of the Essence in the air, and it's electrifying. You can feel it coursing through your veins.
"Be proud of this victory, wanderer. Next time, this Essence will be mine."
[[Absorb the Essence->Imp_Low_Rela_Win_Idle_2_1]]\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
You close your eyes and take a deep breath, letting the power of the Essence wash over you. Your skin tingles as the energy enters your body, and you can feel your heart beating faster.
You groan as your cock throbs firmly, sending pulses of power all around you.
"The Barrens can feel the passion of battle, empower the mighty no matter what."
\<<run setup.choice("[[Continue->Imp_Low_Rela_Win_Idle_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
You squeeze your monstrous cock head with all your strength. Soon cum gushes out of your tool as you roar in bliss, letting this rush of power shake you to your core.
The imp clenches his fists, and groans with jealousy.
Δ: Your bond with the imp has become stronger.
\<<run setup.choice("[[Return to the Golden Bastion->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
You clutch your chest and fall to one knee as the imp walks to you.
"This was... Exhilarating!" He laughs devilishly, feeling himself as he tastes the Essence flowing within him.
"At this rate, I will become a true demon in no time."
\<<run setup.choice("[[Continue->Imp_Low_Rela_Loss_Idle_2]]");>>\<<set $CharacterSheet_Imp.quest.relationshipScoring++>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
One of his hands grasps his cock and heartily jerks it at the thought. He loses himself in his pride.
"But of course, ascension does not happen in one day." A high-pitched chuckle seeps out of him before his focus drifts back to you.
"May we meet again, wanderer. Hopefully, next time brings something more than a friendly spar~."
He bursts into laughter, his cock throbbing with lustful satisfaction as he flies away.
Δ: Your bond with the imp has increased slightly.
\<<run setup.choice("[[Return to the Golden Bastion->Village]]");>>\<<set $CharacterSheet_Imp.quest.available_postFightPassagesWin_lowRelaEnterMidRela = false>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
The imp falls once more, exhaustion taking the best of him. His head lifts up to you in disbelief.
"You're not mortal, are you? Another monster cursed by the Eclipse?"
He laughs, his gaze studying you with fascination.
"You remind me of my old master."
His cock throbs with need, as much as he tries to ignore it.
\<<run setup.choice("[[Say you're the same as anyone else->Imp_Low_Rela_Win_EnterMidRela_No]]");>>
\<<run setup.choice("[[Imply that you're not sure->Imp_Low_Rela_Win_EnterMidRela_Yes]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
"Then you know what is happening to me as well..." He relaxes.
"The Lost will keep getting stronger no matter what, but I will be on top of those mindless monsters. This is a race for ascension."
\<<run setup.choice("[[Continue->Imp_Low_Rela_Win_EnterMidRela_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
"You are even more intriguing than I thought..." He takes the time to look you over, admiring your form.
"One with the body and strength of a titan who is still humble at his core. Can't say I've ever encountered that before."
\<<run setup.choice("[[Continue->Imp_Low_Rela_Win_EnterMidRela_2]]");>>\<<set $CharacterSheet_Imp.quest.relationshipScoring++>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
He looks you in the eyes.
"Maybe it won't be me who ascends after all..." He stands to his feet and gives you a swift, curt bow.
"...but maybe that's not such a bad thing..."
He flicks his tongue towards you before spreading his wings and taking off into the skies, leaving you to your thoughts.
Δ: Your bond with the imp has increased slightly.
\<<run setup.choice("[[Leave->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
"Incredible..." The imp mutters between exhausted breaths. He suddenly folds his wings back, taking a more relaxed stance.
"Alright, you win." He says, crossing his arms.
"We both know that I don't have a chance here, so why do you keep seeking me out? Surely you can take on bigger monsters at this point."
\<<if State.variables.CharacterSheet_Imp.quest.masterScoring >= 3>>
\<<run setup.choice("[[Say you enjoy his company->Imp_MasterChoice_Positive]]");>>
\<<run setup.choice("[[Say you want to keep growing stronger->Imp_MasterChoice_Positive]]");>>
\<<run setup.choice("[[Tell him he's just another monster standing in your way->Imp_MasterChoice_Negative]]");>>
\<</if>>
\<<if State.variables.CharacterSheet_Imp.quest.servantScoring >= 3>>
\<<run setup.choice("[[Tell him that you want to keep seeing him grow->Imp_Loss_ServantChoice_2]]");>>
\<</if>>"What?" Looks surprised and confused.
"I better take my leave then..."
The imp leaves, unable to hide his disappointment.
\<<run setup.choice("[[Leave->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
His eyes suddenly light up, gleaming with newfound hope.
"Then we are aligned~," He says, nearly blushing.
"I am still not sure what you are exactly, but I have been thinking about you since we first met."
His tone is somewhat shy; not often does he show this much honesty to people.
He walks up to you/climbs you, his arms crossing around your neck. He stares into your eyes and freezes as if he's thinking of the right words to use.
Suddenly, he whispers:
"Let me serve you..."
\<<run setup.choice("[[Accept->Imp_MasterChoice_2]]");>>
\<<run setup.choice("[[Refuse->Imp_MasterChoice_Negative]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
"Yes... Thank you..." He says as a rush of emotions flows through him.
"Master..." His voice lowers down to a whisper but it shakes you to your core.
Master.
Hearing this word coming from the demon feels right.
\<<run setup.choice("[[Continue->Imp_MasterChoice_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming")>>
The imp's body suddenly glows in a deep red hue as he reaches for your cock. His tongue flows out; he pants with need.
"There's no need for me to hold back now..."
\<<run setup.choice("[[Make him suck you off->Imp_MasterChoice_4]]");>>\<<run setup.playSoundActionParams(["action_Suck"], true)>>
\<<run setup.stopRealizationPackages(["CharacterSheet_Imp"])>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming", true)>>
"Oh fffuuuuuck." The imp growls under his breath as you grasp the back of his head.
You look down. A puddle of cum is building in front of the imp. He cannot stop oozing out his demonic seed.
"Master..."
It seems like he has been looking forward to this. His whole body heats up.
"G-god... I give in... Forget plans and schemes... I want you for real..." He grabs your cock and moans loudly, without any shame.
The red hue suddenly transfers to your cock. It feels like a bomb suddenly goes off. Your teeth clench as your dick suddenly burst with size. It throbs and swells, pushing the imp back.
"Grow, master... Take this world as your own!"
\<<run setup.choice("[[Attempt to contain your growing lust->Imp_MasterChoice_5]]");>>\<<run setup.stopSoundActions()>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
Your cock slams into the sand. You attempt to jerk it as a rush of arousal courses through you, but it grows out of your grasp. It pulses and throbs like a possessed beast.
You roar as it grows to reach your face easily. It suddenly moves against your will, as if its arousal had to be sated no matter what.
You try to jerk your cock to calm its lustful fury, but it is simply not enough. It suddenly bends and reaches your mouth, urging for you to suck it.
\<<run setup.choice("[[Suck yourself off->Imp_MasterChoice_6]]");>>\<<run setup.playSoundActionParams(["action_Suck"], true)>>
\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
You taste your own seed, feel the demonic corruption coursing within it.
Your body feels tight and packed as a strange warmth spreads within you.
You feel... Pride.
A shameless love of the power that resonates within you and the imp. Your body begins to swell, your muscles growing larger and harder. \
You grab the end of your cock and bring it closer, eagerly tasting more and more of your demonic cum. \
You raise your arms, veins snake across your skin, feeding the rapidly-growing muscles. You flex and marvel at your impossibly impressive arms.
This turns you on even more...
\<<run setup.choice("[[Pridefully roar->Imp_MasterChoice_7][setup.stopSoundActions();]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming", true)>>
Your roar, your prideful display is rewarding you with even more pleasure. Your massive dick lays nestled between your growing pecs, every flex of your muscles pleasuring your cock further.
The imp's moans are impossible to ignore. Soon you feel him press himself on your cock, rubbing and massaging the shaft with his whole body.
Your cock eventually grows too massive to be taken by your mouth. Cum sprays into the air, dripping down onto you both with no signs of stopping.
Upon seeing your head freed from the demonic cock, the imp quickly crawls to you and kisses you wildly.
"Master..."
\<<if $CharacterSheet_Player.hasAbility("Achievement_MemoriesOfKanathar")>>
\<<run setup.impJoinsPlayer()>>
Δ: The imp will now join you in battle!
\<<run setup.choice('[[Utter his name->Imp_EndingLoop][setup.stopRealizationPackages(["CharacterSheet_Player"])]]');>>
<span class = 'inactive'>[[Kiss him back->Imp_MasterChoice_8]]</span>
\<<else>>
\<<run setup.choice("[[Kiss him back->Imp_MasterChoice_8]]");>>
\<</if>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp", "CharacterSheet_Player"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming", true)>>
\<<run setup.impJoinsPlayer()>>
"Ggggaaaaahhhh..." Your imp moans within the kiss, his body overwhelmed by your raw masculinity.
That being said, the experience has left you both exhausted. You lay down, with the imp resting on top of you.
"I can't wait to see what kind of adventures await us next, master." He whimpers before you put your arms around him. He pulls you into a long kiss once more.
You both slowly doze off.
Δ: The imp will now join you in battle!
\<<run setup.choice("[[Leave->Village][setup.stopRealizationPackages(['CharacterSheet_Imp', 'CharacterSheet_Player'])]]");>>\<<run setup.buffImpEncounter()>>
Soon after you leave the Golden Bastion, you notice a winged figure flying overhead.
With his red skin and bat-like wings, you recognize the imp that you've fought in the past.
He suddenly drops, landing in front of you in one sweep of his wings.
\<<run setup.choice("[[Continue->Imp_Mid_Rela_EncounterStart_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
"We meet again, wanderer." He looks you over and grins.
"I gotta say, you're getting easier to find, not that that's a bad thing~."
His claws suddenly curl out, and his knees bend slightly. You unsheath your weapon in reaction, knowing that he's about to pounce.
<<print setup.getFightStartPassages($CharacterSheet_Imp)>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
With one last hit from the imp, you fall on your back, your gaze never leaving the demon.
His wings unfold in triumph.
"Looks like I win this time!" he exclaims with excitement, his arms spread out, eagerly awaiting the flow of Essence to reach him.
A soft white hue suddenly envelops him, and he closes his eyes and groans.
\<<run setup.choice("[[Continue->Imp_Mid_Rela_Loss_Idle_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
"Grrrrr..... Yyyessssss~!" His body shivers with pleasure, his clawed hand reaching down to wrap tightly around his demonic cock.
\<<run setup.choice("[[Continue->Imp_Mid_Rela_Loss_Idle_3]]");>>\<<set $CharacterSheet_Imp.quest.relationshipScoring++>>
\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
"Look at me... I'm finally becoming a true demon!"
With every movement of his hands caressing his sensitive tool, his breaths grow faster. His cock pulses with increasing need.
His shaft bloats a little longer and thicker with each jerk; more veins surge out, pumping the demonic dick into more and more of a beast worthy of the name!
The imp moans in prideful lust, one of his fingers wiping a growing bead of precum from the head of his dick before seductively licking it clean.
"I bet you're aching to have a taste~" he teases, his new, thicker member oozing demonic pre...
Δ: The imp's cock grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Imp, "cock", 3))>> longer.
Δ: The imp's balls grow <<print setup.getLength(setup.applyGrowth($CharacterSheet_Imp, "balls", 1))>> wider.
Δ: Your bond with the imp has increased slightly.
\<<run setup.choice("[[Pleasure him->Imp_Mid_Rela_Loss_IncreaseServant]]");>>
\<<run setup.choice("[[Press him against your pecs->Imp_Mid_Rela_Win_Idle_IncreaseMaster]]");>>
\<<run setup.choice("[[Leave him be->Village]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
\<<set $CharacterSheet_Imp.quest.relationshipScoring++>>
This fight has lasted long enough, as you are both aware. The flow of Essence gathers you both and suddenly rushes to you.
You boom in pleasure, throwing your head back, letting out a deep groan.
The imp can only look on as you take your reward, but he does not seem too bothered with that outcome. \
Seeing you revel in pleasure and power seems a reward in it of itself. \
He ogles your <<print setup.getLength(setup.getStatValue($CharacterSheet_Player, "cock"))>> <<print setup.processFlavours($CharacterSheet_Player, "@[all|cocks|noverb]")>> and slowly steps closer. \
His unusually shy composure is impossible to ignore. You flex for him in response.
\<<run setup.choice("[[Continue->Imp_Mid_Rela_Win_Idle_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
"HHHrrr... Fuck..." The imp groans. He is getting overwhelmed by your musk.
Δ: Your bond with the imp has increased slightly.
\<<run setup.choice("[[Pleasure him->Imp_Mid_Rela_Loss_IncreaseServant]]");>>
\<<run setup.choice("[[Press him against your pecs->Imp_Mid_Rela_Win_Idle_IncreaseMaster]]");>>
\<<run setup.choice("[[Leave him be->Village]]");>>\<<set $CharacterSheet_Imp.quest.relationshipScoring++>>
\<<set $CharacterSheet_Imp.quest.masterScoring++>>
\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 2)>>
\<<set $growth = setup.applyGrowth($CharacterSheet_Player, "muscles", 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
You grab his hand, grinning at how flustered he is. He does not hold back; his gaze is locked into your chest, hypnotized by your masculine strength. \
You effortlessly bring his hand to your pec, making him shiver with lust, your nipples bending between his clawed fingers.
"A-ahhh... I..." The imp's eyes close slightly. His warm breath slide across your chest, his fingers press in harder, shamelessly at your chest.
You can tell how much he wants this. His cock is already dripping with pre.
Without warning, you shove the demon between your <<print setup.processFlavours($CharacterSheet_Player, "@[all|pecs|noverb]")>>. \
Both of his hands gripped along under your <<print setup.processFlavours($CharacterSheet_Player, "@[all|pecs|noverb]")>>, desperately squeezing your muscles.
\<<run setup.choice("[[Press him harder->Imp_Mid_Rela_Win_Idle_IncreaseMaster_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp", "CharacterSheet_Player"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming", true)>>
Your pecs shake as he moans into them, his eyes rolling shut.
"NNNnhhhh!! Ahhhhhh!" This is all it took to drive him over the edge. \
The imp bites his lips and shamelessly shoots volley upon volley of demonic cum on your chest.
You feel the demonic cum absorb within your skin as if it was attracted to your dominating nature. \
Your chest starts to swell, building into the ideal living only in the imp's fantasies.
A burst of growth suddenly reaches your abs, pushing the imp back. You pull your head back and roar.
Δ:Your body grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "height", 7))>> taller.
Δ:Your muscles grow to become <<print setup.getMusclesDescriptor($CharacterSheet_Player)>>(+$growth).
Δ: You feel more inclined to dominate the imp.
\<<run setup.choice("[[Continue->Imp_Mid_Rela_Win_Idle_IncreaseMaster_3]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Imp", "CharacterSheet_Player"])>>
The imp suddenly realizes what he has done.
He cannot surpass you at this rate, but somehow, this feels right.
He shakes his head and turns his back to you, unfolding his wings.
"I-I... I have to take care of something..."
Small puffs of sand booms out as he flies away.
\<<run setup.choice("[[Leave->Village]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
The imp's lust is infectious! While the remnants of your sanity scream for you to resist and not give in to his influence, it's just too hot to resist. You close in on the imp and collapse to your knees before him.
"Hehehe," he chuckles, "don't worry; I'll make it worth your while..."
His hand suddenly grasps the back of your head and pulls you in. Your eyes widen as the first drop of his potent pre touches your tongue! \
It is invigorating. You steady yourself by grasping the imp's waist, eagerly pressing your tongue against his cockslit, begging for more!
"Yessss... you like that, runt?" the imp growls. His voice sounds more profound and more dominant despite his size.
\<<run setup.choice("[[Nod and suck him off->Imp_Mid_Rela_Loss_IncreaseServant_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 1)>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
In response, you take his whole dick deep into your mouth and throat. Warmth spreads from your core, your body shaking with anticipation. It keeps getting warmer and warmer, like a fire spreading to your muscles and cock.
You feel proud, proud of your endless hunger for pleasure and power; proud of changing and growing until you become unstoppable!
"Let desire flow through you," the imp moans, his breaths coming quicker as release closes in. With a deep bellow, he clenches his toes and arches his back as thick loads of his demonic cum shoot out of his growing cock!
\<<run setup.choice("[[Swallow eagerly->Imp_Mid_Rela_Loss_IncreaseServant_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming", true)>>
You do not waste a single drop of this imp's tangy ambrosia. Every gulp spreads the heat within you until it feels like a roiling inferno! You jerk your cock harder and feel it growing thicker in your palm!
\<<run setup.choice("[[Look up to the imp->Imp_Mid_Rela_Loss_IncreaseServant_4]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Imp", "CharacterSheet_Player"])>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming", true)>>
You gaze up to the imp who grabs his balls, his face split into a satisfied grin. His ambition is undeniable; this small imp certainly could grow into something more.
As you let his demonic energy course through you, a vision seeps into your mind. You see the imp, taller than any beast or structure, with muscles massive enough to crush mountains—the ultimate demon of pride, a lord amongst untamable beasts.
The vision is too much for your mind to bear; it soon dissipates into blackness.
You pass out.
\<<run setup.choice("[[Continue->Imp_Mid_Rela_Loss_IncreaseServant_5]]");>>\<<set $CharacterSheet_Imp.quest.servantScoring++>>
You wake up shortly after, covered in a mix of your and the imp's cum. He is nowhere to be seen.
Hopefully, you'll meet him again.
Δ: Your cock has grown <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "cock", 3))>> longer.
Δ: Your balls have grow <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "balls", 1))>> wider.
Δ: You feel more inclined to serve the imp.
\<<run setup.choice("[[Leave->Village]]");>>\<<run setup.buffImpEncounter()>>
Soon after you leave the Golden Bastion, you notice a winged figure flying overhead.
Immediately, you recognize Kanathar, your master, flying above and coming your way.
Your mouth waters, your cock hardens.
With one sweep of his demonic wings, he lands in front of you.
\<<run setup.choice("[[Continue->Imp_Servant_EncounterStart_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
"Show me how much you've grown, pet~," He says, grinning in anticipation for what's to come.
His claws suddenly curl out, and his knees bend slightly. \
You unsheath your weapon in reaction, yet you shiver with lust, unable to contain the excitement of being with your master once more.
<<print setup.getFightStartPassages($CharacterSheet_Imp)>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
The imp's final blow proves too much for you to bear. His strength has undoubtedly increased since you first encountered him.
He grins wide as you crumble to your knees at his feet.
"It seems your Essence has been worthwhile after all!" he sneers, flexing for you, letting you bast in his demonic might.
"But I could be so much more..."
\<<if State.variables.CharacterSheet_Imp.quest.masterScoring >= 3>>
\<<run setup.choice("[[Tell him he'd be better as your servant->Imp_MasterChoice_2]]");>>
\<</if>>
\<<if State.variables.CharacterSheet_Imp.quest.servantScoring >= 3>>
\<<run setup.choice("[[Continue->Imp_Loss_ServantChoice_2]]");>>
\<</if>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
He reaches down and lifts your chin, forcing you to gaze into his slitted eyes.
"I can feel that need within you, too," he whispers lustily, his cock throbbing with arousal.
"Give yourself to me as I grow into a demon lord!"
\<<run setup.choice("[[Accept->Imp_Loss_ServantChoice_Yes]]");>>
\<<run setup.choice("[[Refuse->Imp_Loss_ServantChoice_No]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
"Then come closer..." He grabs at the back of your neck, holding you in place.
"You're gonna turn me into a GOD~" His voice is low and deep, making you shiver to your core.
\<<run setup.choice("[[Please your master->Imp_Loss_ServantChoice_Yes_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
He grips his cock and brings it inches away from your face.
It's so close but so far away. You get the inclination that he wants you to take it yourself, to prove to him that you're genuinely his.
\<<run setup.choice("[[Suck him off->Imp_Loss_ServantChoice_Yes_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 1)>>
\<<run setup.playSoundActionParams(["action_Suck"], true)>>
The taste is maddening, warmth spreading all over your body as you taste your new master's cock. His whole body shudders in response, the act changing him to his core.
"Yessss... Finally!!"
A dark, red glow emanates from his whole form.
"To bring a mortal to its knees - this is my first step to ascension!" he snarls, grinning at you before thrusting his cock deeper into your throat.
"GIVE ME MORE!" he growls.
\<<run setup.choice("[[Suck harder->Imp_Loss_ServantChoice_Yes_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 2)>>
\<<run setup.playSoundActionParams(["action_Suck"], true)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
You suddenly feel the hand grasping the back of your head expand as you lose yourself in the taste of the hot, barbed demonic cock.
"Fuck..." your new master hisses, making you look back up at him. His head is rolling around in bliss, and he bellows out in a deepening moan.
His horns suddenly begin to burst further out of his skull, the base growing in width as more than a foot of new, bony length emerges. \
Your jaws contort as it becomes harder and harder to take his cock, its girth thickening significantly. \
Your mouth fills more and more with every powerful thrust of your master's hips.
But you persevere, sucking faster while fondling your master's growing cum factories. \
The imp's growls deepen further in pitch as he leers down at you. His neck seems like it has doubled in width as monstrous traps bulge out, joining his shoulders like a chain of muscly mountains.
"Grrrrrrrrrraaaaa... Keep going... //pet ~//"
\<<run setup.choice("[[Suck like your life depends on it->Imp_Loss_ServantChoice_Yes_5]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 2)>>
\<<run setup.playSoundActionParams(["action_Suck"], true)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
The growing imp pants, hissing through clenched teeth. "Ssssoooo gooooood!!"
Demonic pre shoots out hard inside your mouth. Your body responds by bellowing out a deep, involuntary groan. \
The taste of the demon's pre spikes your arousal beyond mortal limits, a pleasure that makes your muscles clench as pulses of thunderous lust fill every fibre of your being!
And yet, you need MORE!
\<<run setup.choice("[[Make your master cum->Imp_Loss_ServantChoice_Yes_6]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 3)>>
\<<run setup.playSoundActionParams(["action_Suck"], true)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
You suck your master's cock as though your life depended on it, taking it as deep as you possibly can. The pleasure becomes too much to bear; you feel pre oozing continuously from your cock!
"I'm gonna make you mine," he growled deeply, "feed you with demonic cum until you're unrecognizable!" He grinned wide with newfound confidence. \
His words hold significantly more weight than before.
"Now...cum. Show your master just how much you love him..."
You have no choice but to comply, fat ropes of pearlescent jizz flying from your cock, desperately moaning as you continue to try to suck the imp lord's cock in hopes of not displeasing your master. \
With a deafening roar, he also begins to cum, shooting loads upon loads of his hot demonic spunk down your throat, filling you with a newfound lust that cannot be reasoned with!
\<<if $CharacterSheet_Player.hasAbility("Achievement_MemoriesOfKanathar")>>
\<<set $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_ServantOfKanathar)>>
Δ: You gain the "Servant of Kanathar" ability, it will become more powerful the more you serve your master.
\<<set $CharacterSheet_Imp.quest.storylineProgress = setup.StorylineProgress_Imp.SERVANT>>
\<<run setup.choice("[[Utter Kanathar's name->Imp_EndingLoop][setup.stopSoundActions();]]");>>
<span class = 'inactive'>[[Continue->Imp_Loss_ServantChoice_Yes_7]]</span>
\<<else>>
\<<run setup.choice("[[Continue->Imp_Loss_ServantChoice_Yes_7][setup.stopSoundActions();]]");>>
\<</if>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming", true)>>
He pants, sweat dripping down his thick, leathery skin, his demonic form radiating with a new potent, masculine musk. It would be blasphemy to call him a mere imp at this point.
He grins, eyes glowing bright with a burning passion. "Go, my pet. Spread the word that Kanathar will soon ascend!"
He flexes a thick, powerful arm and kisses his peaked bicep while gazing deep into your eyes. "Soon, ALL will worship us as GODS!!"
\<<set $CharacterSheet_Imp.info.name = "Kanathar">>
\<<set $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_ServantOfKanathar)>>
\<<run $CharacterSheet_Imp.applyAbilityRuntimeData(setup.Ability_NeverendingGrowth)>>
\<<set $growth = setup.applyGrowth($CharacterSheet_Imp, "muscles", 22)>>
Δ: Kanathar gains the "Never-ending Growth" ability.
Δ: Kanathar's body grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Imp, "height", 25))>> taller.
Δ: Kanathar's muscles grow to become <<print setup.getMusclesDescriptor($CharacterSheet_Imp)>>(+$growth).
Δ: Kanathar's cock grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Imp, "cock", 10))>> longer.
Δ: Kanathar's balls grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Imp, "balls", 6))>> wider.
Δ: You gain the "Servant of Kanathar" ability, it will become more powerful the more you serve your master.
\<<set $CharacterSheet_Imp.quest.storylineProgress = setup.StorylineProgress_Imp.SERVANT>>
\<<run setup.choice("[[Leave->Village]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Imp", "CharacterSheet_Player"])>>
Looks surprised and confused.
"How?"
"No matter... Once I become as strong as a god, all will bow down to me regardless..."
The imp leaves, unable to hide his disappointment.
\<<run setup.choice("[[Leave->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
"I feel... So powerful!" He can barely talk from the exhaustion of the fight, yet his gaze remains locked onto yours.
"I've grown so much since first meeting you."
\<<run setup.choice("[[Continue->Teammate_Imp]]");>>\<<set $CharacterSheet_Imp.quest.servantLosses++>>
\<<set $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_ServantOfKanathar)>>
\<<run $CharacterSheet_Imp.applyAbilityRuntimeData(setup.Ability_NeverendingGrowth)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
You recoil from Kanathar's final hit, he grins in response.
"You've grown stronger, pet... But you could be so much more..." He walks up to you and grabs the back of your head, his forked tongue oozing out of a devilish grin.
"Together, we'll keep growing stronger. No one will ever stop us."
He pulls you into a deep kiss. There is nothing left of the old imp that you once knew. Kanathar is now a true demon of pride, his mind utterly consumed with the desire to grow and rule over everything.
\<<run setup.choice("[[Continue->Imp_Loss_ServantPath_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
His massive cock throbs against your body. "Then, all will be ours." He kisses your neck, licking slowly before biting down on the meat of your muscular shoulder.
"I'm going to show this whole world that you're mine! My body aches for more... grow me, pet. Turn me into a monster, one to which all will soon bow to!"
On command, cum gushes from your cock as orgasm washes over you.
Once your dick dribbles the last of its seed, he steps back, satisfied.
\<<set $growth = setup.applyGrowth($CharacterSheet_Imp, "muscles", 4)>>
Δ: Kanathar's "Never-ending Growth" ability is now stronger.
Δ: Kanathar's body grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Imp, "height", 7))>> taller.
Δ: Kanathar's muscles grow to become <<print setup.getMusclesDescriptor($CharacterSheet_Imp)>>(+$growth).
Δ: Kanathar's cock grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Imp, "cock", 3))>> longer.
Δ: Kanathar's balls grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Imp, "balls", 1))>> wider.
Δ: Your "Servant of Kanathar" ability now grants slightly more health.
\<<run setup.choice("[[Continue->Imp_Loss_ServantPath_3]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
"Now... grow stronger for your master, pet. Make the world tremble in my name!"
He unfurls his massive wings with a bellowing roar and launches himself into the air and out of sight.
\<<run setup.choice("[[Leave->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
"Master... You've grown so strong..." He can barely talk from the exhaustion of the fight, yet his gaze remains locked onto yours.
"Soon you'll be unstoppable!"
\<<run setup.choice("[[Continue->Teammate_Imp]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
\<<set $CharacterSheet_Imp.quest.servantWins++>>
\<<set $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_ServantOfKanathar)>>
\<<run $CharacterSheet_Imp.applyAbilityRuntimeData(setup.Ability_NeverendingGrowth)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
Kanathar recoils back from that final hit but instantly grins back at you.
"How powerful you've become, pet!" He walks up to you and grabs the back of your head, his forked tongue oozing out of a devilish grin.
"Together, we'll keep growing stronger. No one will ever stop us."
He pulls you into a deep kiss. There is nothing left of the old imp that you once knew. Kanathar is now a true demon of pride, his mind utterly consumed with the desire to grow and rule over everything.
\<<run setup.choice("[[Continue->Imp_Win_ServantPath_1_1]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
His massive cock throbs against your body. "Then, all will be ours." He kisses your neck, licking slowly before biting down on the meat of your muscular shoulder.
"I'm going to show this whole world that you're mine! My body aches for more... grow me, pet. Turn me into a monster, one to which all will soon bow to!"
\<<run setup.choice("[[Continue->Imp_Win_ServantPath_1_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
On command, cum gushes from your cock as orgasm washes over you.
Once your dick dribbles the last of its seed, he steps back, satisfied.
\<<set $growth = setup.applyGrowth($CharacterSheet_Imp, "muscles", 4)>>
Δ: Kanathar's "Never-ending Growth" ability is now stronger.
Δ: Kanathar's body grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Imp, "height", 7))>> taller.
Δ: Kanathar's muscles grow to become <<print setup.getMusclesDescriptor($CharacterSheet_Imp)>>(+$growth).
Δ: Kanathar's cock grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Imp, "cock", 3))>> longer.
Δ: Kanathar's balls grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Imp, "balls", 1))>> wider.
Δ: Your "Servant of Kanathar" ability now grants slightly more Prowess.
\<<run setup.choice("[[Continue->Imp_Win_ServantPath_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
"Now... grow stronger for your master, pet. Make the world tremble in my name!"
With a bellowing roar, he unfurls his massive wings and launches himself into the air and out of sight.
\<<run setup.choice("[[Leave->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
"What did you want to talk about?"
\<<run setup.choice("[[Ask what happened to his tree->Teammate_Imp_Chat_Tree]]");>>
\<<if !$CharacterSheet_Player.hasAbility("Achievement_MemoriesOfKanathar")>>
\<<run setup.choice("[[Ask him his name->Teammate_Imp_Chat_Name]]");>>
\<</if>>
\<<run setup.choice("[[Go Back->Teammate_Imp]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
"My tree? I don't know what you're talking about," he responds with incredulous eyes as he shakes his head.
"Oh you mean that old thing! I just found it. It looked comfortable at the time, but it would not carry me anymore. If it even exists still."
He chortles as he ominously flexes his muscles and then gives you a wide grin.
"For all I know, it shattered during one of our tussles."
He then rolls his thick shoulders in what could easily be considered a shrug at his size. Seems like that covers it for him.
\<<run setup.choice("[[Continue->Teammate_Imp_Chat]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
"My name? Our kinds are usually not given such things." The imp's gaze lowers.
"They say that once an imp grows in status, their name will emerge from deep within their soul." He suddenly looks up to you with growing determination.
\<<run setup.choice("[[Continue->Teammate_Imp_Chat_Name_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
"But ever since we've met, I feel like I've gotten closer to reaching that point than ever before. Once I grow into my true self, everyone shall know my name!"
His usual grin shines upon you once more.
\<<run setup.choice("[[Continue->Teammate_Imp_Chat]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
<<print setup.getFlavourBasedDescription($CharacterSheet_Imp, 'goMeetImp_Height', 1)>>Your demon lands with a thud and a huff. His height of <<ImpHeight>> gives him a rather modest, but not unpleasant stature.
It certainly does make it easier for him to stay out of sight of the Bastion's guards, if nothing else.
\<<run setup.choice("[[Continue->Teammate_Imp_Examine_Muscles]]");>>The form of the descending demon grows and grows and grows, before the massive beast lands. \
The ground shakes beneath his tonnage as a cloud of dust is kicked up and engulfs you both for mere moments. A beat of his wings is all it takes to dispel the cloud again.
"My apologies, master," he utters with a voice that has lost much of its previous high pitch to the sheer size of his body.
A moment of pride overcomes him as he raises to his full height of <<ImpHeight>> as he seems fully aware of how far he has come beneath you and cherishes the fact.
\<<run setup.choice("[[Continue->Teammate_Imp_Examine_Muscles]]");>>The form of the descending demon grows and grows and grows!
More and more of the land is cast into shadow and you seriously have to wonder just how far above in the sky he must have been for him to appear so small at a distance.
It takes minutes almost and the landing itself is like a cataclysm all in itself.
The earth splits beneath the gigantic paws of the demon and explodes outwards into a crater.
An instinctive beat of his wings keeps any dust cloud from forming as torrential winds buffet the area and send dead or weak trees and smaller boulders flying.
A deep throaty chuckle leaves his throat as he rolls his immense shoulders and erects himself to his full, staggering height of <<ImpHeight>>. \
A carpet bombing would have been more subtle than his arrival here.
\<<run setup.choice("[[Continue->Teammate_Imp_Examine_Muscles]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
Stature, as impressive as it may be, is only one part of the whole that made the physical presence. After all, girth is just as important.
<<print setup.getFlavourBasedDescription($CharacterSheet_Imp, 'goMeetImp_Muscles', 1)>>In that regard, your demon is no slouch. Naturally stocky and wide shouldered, \
his pecs would make for passable drums already, while thick muscles bulge his hide and burden his limbs with a delectable amount of weight.
However the same can be said about the average inhabitant of the Golden Bastion.
There is much untapped potential in your demon's body.
\<<run setup.choice("[[Continue->Teammate_Imp_Examine_Genitals]]");>>And in that regard, your demon can certainly impress. His body burgeons with an incredible musculature which made even bodybuilders of old look small by comparison.
His pectorals are gigantic slabs and their bulging overhang provides shade and rain protection for his cobblestone road of hard cut abdominals. \
Even without attempting the motion, you already know that the demon would not be able to scratch the cleft between his swollen chest muscles, as the biceps are simply too large already.
Any step he takes happens with an exaggerated sway of his hips, as his thighs fight each other for the limited space below. \
His naturally stocky frame had only become even more exaggerated by his musculature, as he stands nearly as wide as he is tall.
A delectable sight indeed, and yet you are sure there is room for more.
\<<run setup.choice("[[Continue->Teammate_Imp_Examine_Genitals]]");>>Your demon has all the reason to be proud in this regard, as he is positively overflowing with girth. \
His shoulders stand as wide as his height, rendering him into a perfect square, which is further enhanced by the dimension of his outrageous depth.
The immense barrel of a torso rippling with such muscle, you find yourself salivating just looking at it. \
The pectorals are cliff-like overhangs which cast their shadow upon the labyrinthine canyons of his abdominals. \
The two slabs could serve as dinner tables to the imp, who hardly deserve that kind of classification at this point, he struggles to look over them. \
In fact, he struggles to look many ways, as his head is practically swallowed between his looming deltoids and traps; \
not even his massive neck, which put bulls to shame, could hope to raise him out of the valley of his musculature.
\<<run setup.choice("[[Continue->Teammate_Imp_Examine_Muscles_Huge_2]]");>>He cherishes it however and instinctually your minion clenches his gigantic fists. \
His forearms tense and you can watch the tightening of his muscles roll up all the way into his massive arms.
His biceps rise even greater and he briefly attempts to grab onto their peaks, \
only for his monstrous forearms to collide with them already, and it is only thanks to his oversized mitts that he could reach them at all.
If he raised his arm, the peak would reach far past his head, or his horns even.
A simple flex of his legs is enough to create an audible and even visible shockwave as they bloom to easily twice their size. \
They soon relax again and return to an ever so slightly smaller yet still monstrously pumped state.
His wings look laughably tiny upon his gigantic chest, and yet they must contain a frightfully immense power to be able to bring him aloft. \
Or his magic had grown considerably, to the point that he did not need them anymore to fly at all.
\<<run setup.choice("[[Continue->Teammate_Imp_Examine_Genitals]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
The imp's excitement meanwhile is readily apparent, as just by looking upon you, \
the maleness between his legs has grown fully engorged in a matter of seconds, if he could go soft at all.
<<print setup.getFlavourBasedDescription($CharacterSheet_Imp, 'goMeetImp_Genitals', 1)>>With <<ImpCockLength>>, your demon is nothing to sneeze at.
The tool throbbing between his legs is impressive indeed, and it drips with pre as his <<ImpBallsSize>> orbs churn with growing need. The need for more, the desire to grow and swell, is palpable in the air.
You are unsure if it's your desire, his, or a mingling of both. There is so much room, so much space, which has yet to be filled with pulsating, throbbing, musky flesh.
\<<run setup.choice("[[Continue->Teammate_Imp]]");>>You can hear the throbbing of the demon's <<ImpCockLength>> member between his legs.
Each pulse sees a whole bucket's worth of pre flying forth, and it is only a taste of what his trembling <<ImpBallsSize>> testicles really hold. \
The masculine reek of the demon is already incredible and it is steadily intensifying as more of his arousal drips forth. \
His hands fumble with his monster of a cock as it rises into his field of vision and he tries to push it back down, so that it would not get in the way of looking at you.
It is a fight that he is only barely winning, and which only excites him even further.
\<<run setup.choice("[[Continue->Teammate_Imp]]");>>The very ground shakes with the demon's arousal.
The churning cum factories between his short legs measure a staggering <<ImpBallsSize>> in diameter and tremble with a virility that made itself known for what had to be miles around.
They are more than big enough to rest firmly on the ground and if he wants to move with any kind of speed, \
he has to step over them and drag them behind himself, or go attempt the monumental feat of lifting and juggling them in his hands.
Even so, his <<ImpCockLength>> mammoth of a member swings wildly with each step. \
It is a weapon in its own right, fit to lay siege to just about any fortification.
The preseed that gushes from it is already sufficient to create lakes, while a full orgasm could reshape the very land itself as the lance of seed would carve the earth.
And yet the lust that permeates the air only hungers for one thing.
Growth.
\<<run setup.choice("[[Continue->Teammate_Imp]]");>><<print setup.getFlavourBasedDescription($CharacterSheet_Imp, 'goMeetImp_GrowImp', 1)>>
/*-----------------------------------Grow Large---------------------------------*/<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
His already crimson cheeks turn shades of purple and his rock hard cock belches forth thick demonic seed and splatters it across the floor before him. \
A gasp escapes him as he grits his teeth and visibly attempts to calm down.
"Y-you want me to grow, Master? Using your essence!?" just saying those words, and repeating what you had just told him in his own mind, almost saw him unload again before you.
\<<run setup.choice("[[Continue->Teammate_Imp_GrowHim_Large_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 1)>>
Despite his words, there is no real question.
You raise your <<Hands>> and the warm white glow of essence promptly engulfs them as you reach forward. \
You grab the imp's massive pectoral slabs and a startled hissing escapes his throat as his muscles draw tight.
The glow of the essence shoots into his body and a gurgling inhale follows.
His chest inflates, but stays just as large when he exhales and a guttural squeaking noise leaves him.
\<<run setup.choice("[[Continue->Teammate_Imp_GrowHim_Large_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 1)>>
Your hands feel how his already steely musculature grows even more powerful, even more unyielding beneath your digits.
His body heats up and sweat pours forth in an effort to cool him, only for it to steam right off his body and fill your nostrils with the overbearingly masculine scent of the demon.
<<print setup.processFlavours($CharacterSheet_Player, "Your @[all|cocks|one=throbs~more=throb] heavily in response and before you even know it, you find yourself grinding your @[all|cocks|one=throbs~more=throb] against the imps chest.")>>
\<<run setup.choice("[[Continue->Teammate_Imp_GrowHim_Large_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 2)>>
"M-Master!" the demon huffs and drools as his huge tongue lols free from his maw. His large eyes barely manage to focus on you, in no short part thanks to his swelling, burgeoning pectorals.
It is not the only thing that grows about him as the essence crashes through his body.
Thick veins throb beneath his skin, as his muscles engorge with new mass and power. \
The definition of his already incredible physique grows not just more intense, but more pronounced by the second.
\<<run setup.choice("[[Continue->Teammate_Imp_GrowHim_Large_5]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 3)>>
The air is filled not only by his heavy breathing and the eager flow of his and your arousal, but also with the groaning of skin straining against bulging muscle, \
as well as the cracking and creaking of bones growing larger.
His entire frame is following suit in an attempt to provide space for the swelling musculature, to save him from becoming an immobile muscle blob.
<<print setup.growImp()>>
He topples; between his muscles twitching in barely contained growth-spasms and your rock hard cock grinding into his chest, he simply cannot maintain balance.
The earth shakes as his growing ass lands on the ground, promptly followed by a second impact as his gigantic torso follows.
You are on him without even giving him a second to recover. Your <<Hands>> continue to grope and massage his swelling chest, as you ground your member into his pectoral valley. \
Mustering all the strength you have, you massage his man-tits around your virile rod to share the feelings of his ecstatic growth.
\<<run setup.choice("[[Continue->Teammate_Imp_GrowHim_Large_6]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming")>>
You can feel the muscles ripple, just as you can feel the heat surging through them. \
Each excited heartbeat of the imp sees them swell bigger around your dick, while his own massive maleness rises bigger behind you and soon gushes his seed towards the sky, \
raining his dark, tainted demonjuice over you and the surroundings.
You in turn flood his face with your own jizz as your release follows swiftly and violently. \
Your <<PlayerBalls>> <<Balls>> draw tight as they unleash everything they got upon the imp's face, who does his very best to drink it all down.
\<<run setup.choice("[[Continue->Teammate_Imp_GrowHim_Large_7]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 5)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming", true)>>
You have no idea how long you spend like this, your orgasm seems endless. They come in such quick succession that they might as well be a single one.
But you know that time is passing, for you have a very good measure of that in the growth of your minion.
The demon beneath you swells larger and larger, his body wracks by the essence you are giving him. His flesh and mass billows forth as his practically petite form - compared to what it once had been - surges bigger and bigger.
The larger he becomes, the faster he grows. He maintains this rate of expansion all the way until it eventually comes to an abrupt and sudden stop with little to no warning.
<<print setup.growImp()>>
\<<run setup.choice("[[Continue->Teammate_Imp_GrowHim_Large_8]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming", true)>>
\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 1)>>
You are both left winded. Your minion teeters at the edge of consciousness. He drools and babbles like a drunkard as his enormously enlarged limbs swat the air.
You could make out praise for yourself somewhere in his slurred speech.
You struggle to dismount. The feeling in your own limbs returns slowly, now that not every single sensation are dominated by your orgasm.
You take a few, or maybe quite a lot of, steps back in order to have a good look at your demon pet and appreciate your handiwork.
Each movement on his part has such weight to it that the earth itself groans in ceaseless protest beneath him.
\<<run setup.choice("[[Continue->Teammate_Imp_GrowHim_Final]]");>>
/*-----------------------------------Grow Huge---------------------------------*/<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
The air begins to vibrate as the white glowing essence once more gathers in your hands. Energy builds into an oppressive physical presence that it feels like you are wearing thick gloves.
Your digits grow stiff as you force the essence to accumulate, rather than to disperse back into your body.
The colossal demon recoils more at the sensation than at sight that permeates the surroundings. \
The ground shakes as his enormous foot carves a trench through the rocky ground.
\<<run setup.choice("[[Continue->Teammate_Imp_GrowHim_Huge_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
You could hear, rather than see, how his tongue lashes in excitement over his face.
"S-so much essence!" he utters with his outrageously deep voice. His words are like the booms of thunder, while his breathing being the distant ominous growl accompanying it.
\<<run setup.choice("[[Continue->Teammate_Imp_GrowHim_Huge_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
His massive member already spurts his load over the landscape from sheer excitement. It comes crashing down in the distance where it could very well cause catastrophic damage.
An electric crackle resonates through the air as you transferre the essence. The imp can only roar as the energy surges through him.
"M-Master!" he howls out as his entire body seizes up. You watch as arcs of red energy dance over his crimson body and thick veins beginning to engorge with rising power.
\<<run setup.choice("[[Continue->Teammate_Imp_GrowHim_Huge_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming", true)>>
His breathing quickens, and each inhale is deeper than the last, each exhale is more powerful. The gargantuan demon is already so big that even the greatest of ancient ruins are little more than doll houses compared to him.
Each time his heart beat, which resonates like the impact of a hammer on an anvil, growth surges through his body. \
Each booming pulse sends a quake through the earth. Fissures and cracks grow rapidly larger as the imprints of his feet become larger. \
Cataclysmic tremors follow as the imp shifts his feet and adjust his footing.
<<print setup.growImp()>>
\<<run setup.choice("[[Continue->Teammate_Imp_GrowHim_Huge_5]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming", true)>>
The earth explodes as the demonic beast falls forward. \
His huge hands smash into the ground in an attempt to brace himself, only for his fall to be stopped by his immense chest and gargantuan dong.
He is getting so thick and so utterly massive that his huge digits could barely even touch the belly of his raging erection. \
A shockwave ripples outwards from him and rips a gigantic crater from the sheer excess of his immense size.
It is an almost natural progression for him to start fucking the ground, as his attempts to rise up only sees him dig himself deeper.
"Y-yes! S-so huge!" The demon bellows with laughter. He strains and arcs his back through as he looks upwards to the sun. \
You could see the glint in his eyes as he raised a hand towards it, only to bring it right back down as he braces himself.
\<<run setup.choice("[[Continue->Teammate_Imp_GrowHim_Huge_6]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming", true)>>
"Masterrrrrr~" He tries to say more, but it only escapes as an incoherent blurb. However, the way he braces his legs and raises his massive tail left very little up to the imagination about what he might want.
\<<run setup.choice("[[Continue->Teammate_Imp_GrowHim_Final]]");>>
/*-----------------------------------Grow Final---------------------------------*/\<<if setup.getStatValue($CharacterSheet_Imp, "height") > setup.getStatValue($CharacterSheet_Player, "height")>>
<<include Teammate_Imp_GrowHim_Final_PlayerSmaller>>
\<<else>>
<<include Teammate_Imp_GrowHim_Final_PlayerBigger>>
\<</if>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming", true)>>
To strengthen such a beast is a daunting task.
Given the gigantic, and still mounting, size of your massive pet.
Just getting around him took precious time.
\<<run setup.choice("[[Feed him more power->Teammate_Imp_GrowHim_Final_PlayerSmaller_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming", true)>>
The air flickers with the heat emanating from the fiery red testicles and steam wafts off them as the sweat evaporates all too fast again.
They are hot to the touch and churn with incredible need. Your price though lays further up and you cross the enormously swollen taint of the demon.
The muscle bulge with incredible size, and it was duly necessary too in order to lift and move the cock he rocks. Beyond that still, you find the needy hole.
You slide your cock in and are met with a near paradoxical sensation. \
You find practically no resistance on your way in as his heated flesh parts eagerly around your intruding member, only for a sudden and steely grip to clench around you as he flexes his core muscles.
"Ghhhhhh~Ahhhhhhh!"
\<<run setup.choice("[[Continue->Teammate_Imp_GrowHim_Final_PlayerSmaller_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming", true)>>
You two are ferocious, snarling beasts as you fuck and he grows. You fuck him bigger as your pre gushes into his bowels, and before long, your roar announced the full blown orgasm.
Your thick, heavy spunk gushes into him, floods his insides and pushes him in turn over the edge.
His cock, still buried deep in the earth, bounces once more as the taint beneath your feet draw tight and his balls clench.
You could feel the bulges of his cum travel through his inner piping on its way out. He howls out when as it erupts from his member.
\<<run setup.choice("[[Continue->Teammate_Imp_GrowHim_Final_PlayerSmaller_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 5)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming", true)>>
The earth around you begins to crack and huge geysers of cum erupt all around you. \
His hips buck and thrust wildly as the last surges of growth roll through his body, leaving his size worthy of legend and beyond the comprehension of regular mortals.
With <<ImpHeight>>, people are less than ants to him.
He is gargantuan, a god-like being, worthy of full ascension. Yet he is and always will be yours.
<<print setup.growImp()>>
<<include Teammate_Imp_GrowHim_Final_StatUp>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming", true)>>
You do not hesitate and act with a determination befitting your size. The world quakes in fear beneath your movements as you position yourself behind the demon.
An excited squeak leaves his throat as you grab his glutes and squeeze them firmly. The imp's eyes go wide and spittle flies from his maw as the air leaves his lungs as a bellow.
\<<run setup.choice("[[Fuck him->Teammate_Imp_GrowHim_Final_PlayerBigger_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming", true)>>
<<print setup.processFlavours($CharacterSheet_Player, "Your @[all|cocks|one=spreads~more=spread] his ass cheeks wide apart. You plough into him like a train without breaks, flattening and stretching his insides with unfathomable power.")>>
His huge hands claw at the ground. \
<<print setup.processFlavours($CharacterSheet_Player, "One of your @[1|hands|one=grabs~more=grab] his tail, while the other presses down on his back.")>>
You keep him pinned, keep him fucking the earth, even as he continues to grow beneath you. You run your fingers along the swells of his back muscles and feel them grow deeper and more pronounced by the moment.
\<<run setup.choice("[[Continue->Teammate_Imp_GrowHim_Final_PlayerBigger_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming", true)>>
The demon pants and drools as he struggles to maintain any kind of composure beneath your overpowering thrusts. He moans like an animal in heat, begging for more of your gigantic tool to slam into him.
You gladly oblige until your groin meets his ass cheeks and your balls bury his.
"Ghhhhhh~Ahhhhhhh!"
\<<run setup.choice("[[Continue->Teammate_Imp_GrowHim_Final_PlayerBigger_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming", true)>>
You rut for an incredibly long time. Long enough that the imp's growth finally comes to a stop. Your <<ImpHeight>> tall demon still cries out for more, even when he after already orgasming.
His deluge of cum into the earth finds enough resistance to splash back up, and with no other space to go, his cum erupts like geysers all around you.
Eventually you hilt inside him again and bellow out your own climax.
The imp's belly inflates rapidly with your immense load and his own roar dies in his throat as he instead coughs up thick globs of your seed.
Wet slapping soon follows as your thrusts pick back up again, a single climax hardly enough to satisfy your need in this world, especially considering how rarely you come across a hole you can actually fuck properly.
\<<run setup.choice("[[Keep fucking the imp->Teammate_Imp_GrowHim_Final_PlayerBigger_5]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming", true)>>
Days pass, perhaps even weeks, until you finally exhaust yourself and collaps on the utterly gargantuan imp.
The afterglow has you both groaning as you slowly come back to your senses.
With a schlorping noise, you pull your member free and unleash a flood upon the land as you step back to look upon your handiwork. It would take him a bit to recover from this.
It was nothing you couldn't wait out.
<<print setup.growImp()>>
<<include Teammate_Imp_GrowHim_Final_StatUp>>\<<set $levelUpResult = setup.levelUpImp()>>
<<print "∇: "+$CharacterSheet_Imp.info.name+ " has gained "+ $levelUpResult.hp + " health!">>
<<print "∇: "+$CharacterSheet_Imp.info.name+ " has gained "+ $levelUpResult.stamina + " prowess!">>
<<print "∇: "+$CharacterSheet_Imp.info.name+ " has gained "+ $levelUpResult.strength + " strength!">>
<<print "∇: "+$CharacterSheet_Imp.info.name+ " has gained "+ $levelUpResult.critChance + " critical hit chance!">>
<<print "∇: "+$CharacterSheet_Imp.info.name+ " has gained "+ $levelUpResult.critDamage + " critical hit damage multiplier!">>
\<<unset $levelUpResult>>
\<<run setup.choice("[[Continue->Teammate_Imp]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
Your demon's ears droop a little and the perpetual smirk on his face turns upside down.
"Aww, already?" he asks, with a glimpse of sadness before returning to his usual grin.
"Alright Master, I'll be waiting for you to return from that silly city!"
\<<run setup.choice("[[Continue->Teammate_Imp_Leave_2]]");>><<print setup.getFlavourBasedDescription($CharacterSheet_Imp, 'leaveImp', 1)>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
The demon's leg muscles tense and he jumps upwards. \
A beat of his powerful wings follows and kicks up dust as it catapults him several feet higher into the sky.
Another beat follows, then another, each one carrying him further away as he ascends upwards far faster than those tiny wings of his had any right to.
Within a minute he is barely visible and indistinguishable from just about anything else that is flying up there.
You make your way back to the Bastion.
\<<run setup.choice("[[Continue->Village][setup.flagTimePasses($CharacterSheet_Imp)]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
The air fills with an ominous creak as the gigantic musculature of the imp draws tight. \
You could watch his enormous quadriceps bulge and ripple in flexing, before a shockwave follows and kicks up a storm of dust and stone.
The ground shatters as the demon jumps upwards towards the sky. \
His tiny wings beat with a power far in excess of their size as they drag him higher yet and dispel the massive cloud of debris he leaves behind.
A being this gigantic has no right to fly with such ease, especially with wings this small. \
They should have cast you and half the world into shadow as they spread, yet they barely even crosses his own shoulders.
\<<run setup.choice("[[Continue->Teammate_Imp_Leave_Large_2]]");>>Either way, the demon ascends towards the sky, higher and higher, while huge globs of his pre rains down upon the land around you.
Each impact is as powerful as a boulder launched by a catapult. It takes precious minutes for him to reach a height where he became impossible to identify from the other creatures of the sky.
By that point, you decide that it is time to head back to the Bastion.
\<<run setup.choice("[[Continue->Village][setup.flagTimePasses($CharacterSheet_Imp)]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
A creature the size of the demon is a living cataclysm; an extinction event waiting to happen.
Every single one of his movements change the face of this ravaged world. On top of that it happens with a speed that is utterly unbelievable for such a titan.
The earth beneath the immense paws of the imp shatters as he leaps up into the sky and immediately covers yards with a single leap.
You wander back through the newly created valley, surrounded by mountains, while you wonder what the people at the Bastion would think.
No doubt they must have seen this.
\<<run setup.choice("[[Continue->Village][setup.flagTimePasses($CharacterSheet_Imp)]]");>><<print setup.getFlavourBasedDescription($CharacterSheet_Imp, 'Village_GoMeetImp_Intro', 1)>>\
"Already time for another run?" the gate guard asks as you pass them, but you shake your head in response.
You just have to 'check' on something.
"Oh, okay," the guard nods, "Be careful out there."
He hardly needs to tell you that.
\<<run setup.choice("[[Continue->Village_GoMeetImp_2]]");>>\
You push open the gates like so many times before, even before the guards could react to your rapid approach.
"I would go and wish him good luck, but nothing's gonna happen to him. It's he who happens to others," \
you can hear one of the guards remark towards the other, followed by snickering, but the gait of your steps saw you breeze off already.
\<<run setup.choice("[[Continue->Village_GoMeetImp_2]]");>>\
Walls and gates have become a laughable concept to you. \
With but a single step you clear obstacles and buildings alike and leave the city in your shadow.
The sun slowly returns to the gleaming beacon of civilization as your towering stature departs. \
It takes you mere minutes to cover a distance for which other people would take a day or more, and yet you could still see the city despite being so far away.
You know you are being followed, but even so it takes a while longer for them to catch up.
At least you can be sure that nobody in the Bastion would be able to actually make out any details at this outrageous distance.
\<<run setup.choice("[[Continue->Village_GoMeetImp_2]]");>>You don't plan to go far anyway, just a few miles to make sure that nobody from the city could see you. \
And yet, you could barely shake the feeling that someone is watching you ever since you left the walls.
\<<run setup.choice("[[Go meet the imp->Teammate_Imp_Appears]]");>>
/*--------------------------Exiled Intro--------------------------------------------*/\
The winds of your new home whip around you as you walk through the dust, clinging to you briefly before being blown away by the next gust.
The silence between each powerful gust of wind is enough to bring your mind back to your banishment from the village. A pang hits your heart:
\<<if setup.getStatValue($CharacterSheet_Player, "corruption") >= setup.CorruptionComparators.TAINTED>>
<<print setup.corruptSpan("GROW SPREAD CORRUPT", "You want them.")>>\
\<<else>>
\You miss them, if only for a moment.
\<</if>>
Your thoughts are interrupted as your servent approaches, as he was called for.
\<<run setup.choice("[[Go meet the imp->Teammate_Imp_Appears]]");>>
/*--------------------------Village+Exiled Intro--------------------------------------------*/"Master!" the demon's voice bellows, and yet it is more a feeling than something you actually hear.
Your gaze is drawn upwards and you can see the winged beast descent towards you. \
At a distance he would be easily mistakable for a bird of some kind, but that rapidly changes as he closes in.
\<<run setup.choice("[[Continue->Teammate_Imp]]");>>
/*--------------------------Teammate Imp Navigation--------------------------------------------*/<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
Your demon looks expectantly at you, he fidgets with the desire to act and his hands tremble as he desperately holds back on groping either you or himself. At least until you give the command for it.
\<<run setup.choice("[[Examine him->Teammate_Imp_Examine]]");>>
\<<run setup.choice("[[Talk to him->Teammate_Imp_Chat]]");>>
\<<if $CharacterSheet_Player.info.tags.partnerSparExhaustion == true>>
<span class = 'inactive'>[[Spar with him->Teammate_Imp_Spar]] (You are exhausted, you must rest before sparring again.)</span>
<<else>>
\<<run setup.choice("[[Spar with him->Teammate_Imp_Spar]]");>>
<</if>>
\<<run setup.choice("[[Change his fighting style->Teammate_Imp_ChangeFightingStyle]]");>>
\<<run setup.choice("[[Decide when the imp attacks->Teammate_Imp_DecideWhenTheImpAttacks]]");>>
<<print setup.displayImpModsPassages()>>
\<<run setup.choice("[[Leave->Teammate_Imp_Leave]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
"Of course Master, time to show you how much I've grown~"
His wings flap outwards as he eagerly lunges towards you.
\<<set $CharacterSheet_Player.info.tags.partnerSparExhaustion = true;>>
\<<run setup.choice("[[Fight->FightLogic][$Encounter_Target = $CharacterSheet_Imp]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
"I am already the best fighter this wasteland has ever seen!"
Your minion proclaims with pride as he rests his massive hands on his hips and puffs out his chest, only to then suddenly and abruptly deflate again when reality catches up to him.
"Second only to you of course. So yes, teach me your ways, Master! I will be the best student!"
[[Fight agressively->Teammate_Imp][setup.impSetAggressiveMoveset()]]
[[Use Sigils->Teammate_Imp][setup.impSetSigilMoveset()]]
[[Focus on growing->Teammate_Imp][setup.impSetGrowthMoveset()]]
\<<run setup.choice("[[Cancel->Teammate_Imp]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
"Just say the word Master. You know more about this strategy business anyway."
<<print setup.displayAttackTimingDescription($CharacterSheet_Imp)>>
[[Attack before me->Teammate_Imp][$CharacterSheet_Imp.fight.teammateSettings.attackTiming = setup.AttackTiming.BEFORE_PLAYER]]
[[Attack after me, but before our enemy->Teammate_Imp][$CharacterSheet_Imp.fight.teammateSettings.attackTiming = setup.AttackTiming.BETWEEN_PLAYER_AND_ENEMY]]
[[Attack after me, but after our enemy->Teammate_Imp][$CharacterSheet_Imp.fight.teammateSettings.attackTiming = setup.AttackTiming.AFTER_ENEMY]]
\<<run setup.choice("[[Cancel->Teammate_Imp]]");>>You found your bae!
\<<run setup.choice("[[Return->Village]]");>><<include setup.getNextNarativeEventPassage(setup.StorySheet_Lost_Naga.encounterPassages)>><<include setup.getNextNarativeEventPassage(setup.StorySheet_Lost_Naga.postFightPassagesLoss)>><<include setup.getNextNarativeEventPassage(setup.StorySheet_Lost_Naga.postFightPassagesWin)>>\<<set $CharacterSheet_Lost_Naga.quest.met = true>>
\<<set $CharacterSheet_Lost_Naga.info.known = setup.EncounterKnownState.KNOWN>>
After an hour of searching, you find yourself in what appears to be a swamp, or at least used to be one.
Much of it has fallen to the spreading corruption. What once had been natural plants have been replaced with vulgar, multicoloured mutants.
You don't get much time to inspect them as a sudden, scraping rustle draws your attention to the canopy above.
\<<run setup.choice("[[Take a closer look->Encounter_Intro_Lost_Naga_1]]");>>Wrapped around the massive tree trunk is a serpentine monstrosity.
His smooth hide shines with a purple so bright it's nearly pink.
Yet there is an oily sheen to it, an iridescent shimmer in the light. It shifts with each idle flex and twitch of the coils.
The skin creaks and groans as the muscles beneath dance and contort it with their size.
\<<run setup.choice("[[Take a closer look->Encounter_Intro_Lost_Naga_1_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "normal")>>
The cobra hood of the gooey naga flares as he spots you. A low hissed "Prrreeeyyy." escapes his muzzle as he bares his fangs.
\<<run setup.choice("[[Continue->Encounter_Intro_Lost_Naga_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "happy")>>
You get to watch the herculean musculature of the beast tense proper as his coils turn the massive tree into little more than splinters between them.
The mud muffles the thud as the beast falls to the ground, but you could still feel the small quake in the wake of its tonnage.
<<print setup.getFightStartPassages($CharacterSheet_Lost_Naga)>>Slowly the serpent rises to his full height, presenting a colossus of muscle and virility. His shaft swollen and engorged to enormous size, while his lips drool with hunger.<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "worried")>>
After a terrible battle, the naga finally collapses into a heap. Pink goo runs from the wounds he has sustained.
But even now, you could see that they are closing.
There is little doubt that in just a few minutes, the beast would be in perfect shape again.
\<<run setup.choice("[[Continue->Encounter_Win_Lost_Naga_2_Normal]]");>>\<<set State.variables.CharacterSheet_Lost_Naga.quest.cockOut = true>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "normal")>>
Fighting has awakened a primal desire within him, but he's too weak to be on top.
Yet he stands tall, eagerly jerking his monstrous cock for any kind of relief.
\<<if setup.removeCurseOfTheNaga()>>
[[Purge the naga's curse->Encounter_Win_Lost_Naga_2_Cursed]]
\<</if>>
[[Continue->Encounter_Win_Lost_Naga_2_Normal_2]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "worried")>>
You place your hand on the wounded naga's head. He immediately shivers as thick pink goo rushes along your arm.
The goo slowly enters your muscles. Your biceps, curls, abs and glutes suddenly pulsates.
\<<run setup.choice("[[Continue->Encounter_Win_Lost_Naga_2_Cursed_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Lost_Naga"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "worried")>>
Growth rushes through you with every heartbeat. You pull your head back and moan as a burst of power courses through you.
Your body explodes with more strength that the naga took from you.
<<set $growth = setup.applyGrowth($CharacterSheet_Player, "muscles", Math.ceil(setup.getStatValue($CharacterSheet_Player, "muscles") * 0.1))>>
∇: Your muscles become <<print setup.getMusclesDescriptor($CharacterSheet_Player)>>(+$growth).
∇: Your body grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "height", Math.ceil(setup.getStatValue($CharacterSheet_Player, "height") * 0.1)))>> taller.
\<<run setup.choice("[[Continue->Encounter_Win_Lost_Naga_2_Cursed_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Lost_Naga"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "worried")>>
You feel more and more pink goo rush down your arm. It crawls along your chest to finally coil around your cock.
You immediately see it throb and expand. Deep lustful moans escape you as your dick crawls along your legs.
\<<run setup.applyGrowth($CharacterSheet_Player, "cock", Math.ceil(setup.getStatValue($CharacterSheet_Player, "cock") * 0.1))>>
You grasp the base of your now <<print setup.getLength(setup.getStatValue($CharacterSheet_Player, "cock"))>> cock and jerk it intensely.
\<<run setup.choice("[[Continue->Encounter_Win_Lost_Naga_2_Normal]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Lost_Naga"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "worried")>>
"Maaaaaaaate..." He growls, unsure of who he's even adressing anymore.
The naga's golden eyes glow with a mix of hunger and longing.
\<<run setup.choice("[[Fuck the naga->Encounter_Win_Lost_Naga_Fuck_1]]");>>
\<<run setup.choice("[[Leave->Village]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Lost_Naga"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "worried")>>
Your hands grip his massive cock, and you can almost hear your digits squeak over the gooey skin.
His member is rockhard, firm enough to serve as a bludgeon, no doubt.
You give it a tentative stroke, trace along the swollen veins along its length before you start to grin devilishly. You've heard that snakes are supposedly very stretchy.
You decide to put it to the test.
You jerk the serpent's cock down towards your own member.
\<<run setup.choice("[[Fuck the naga->Encounter_Win_Lost_Naga_Fuck_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Lost_Naga"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "worried")>>
Your tips touch, and with a grin, you press onward. The naga gasps out weakly, his muscles arms flex in a futile flail.
Really his head doesn't even manage to raise high enough to see you over his own pectoral mountains.
\<<set $CharacterSheet_Lost_Naga.quest.fuckedByPlayer = true>>
\<<if setup.sizeCharactercomparison($CharacterSheet_Player, $CharacterSheet_Lost_Naga) >= setup.Comparators.EQUAL>>
\<<run setup.choice("[[Press the naga's cock on your slit->Encounter_Win_Lost_Naga_Fuck_PlayerBigger_1]]");>>
<span class = 'inactive'>[[Fuck the naga's cock slit->Encounter_Win_Lost_Naga_Fuck_NagaBigger_1]]</span>
\<<else>>
<span class = 'inactive'>[[Press the naga's cock on your slit->Encounter_Win_Lost_Naga_Fuck_PlayerBigger_1]]</span>
\<<run setup.choice("[[Fuck the naga's cock slit->Encounter_Win_Lost_Naga_Fuck_NagaBigger_1]]");>>
<</if>>
\<<run setup.choice("[[Leave->Village]]");>>
\<<if setup.getStatValue($CharacterSheet_Player, "corruption") >= 75>>
\<<run setup.choice("[[Absorb his very being (needs 75 or more corruption)->Encounter_Win_Lost_Naga_Fuck_Absorb_1]]");>>
\<</if>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Lost_Naga"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "worried")>>
You start to grin, lust wells up within you again. Why not fill the empty yawning in your balls with the snake himself?
The naga growls softly before you, his hands rubbing his enormous and engorged balls.
You lunge, grab his tail tip with your hand. Before the reptile knows what is happening, you already stuff it into your cock.
\<<run setup.choice("[[Continue->Encounter_Win_Lost_Naga_Fuck_Absorb_1_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Lost_Naga"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "worried")>>
It's barely bigger than his member, you can easily take it. With both hands on the tail, you pull, pull and push to feed it into your member.
You flex your taint, flex your cock, make it swallow and gulp. Inches first, soon entire feet. The naga goes wide-eyed when he realizes what's happening.
Hisses and snarls leave his lips as he twists and contorts, his hands dig into the muddy ground, yet your massive cock is beyond aluring.
He grasps for anything to find a hold on, anything to use as anchor.
\<<run setup.choice("[[Pull him in->Encounter_Win_Lost_Naga_Fuck_Absorb_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Lost_Naga"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "worried")>>
Feet upon feet of coils bulge out your shaft and begin to fill your balls.
Before long, his entire tail is gone. His fat hips are next. His waist soon follows.
Then you grab his shoulders and squish him right in. His goo body is contorting, conforming to your shaft.
\<<run setup.choice("[[Pull him in->Encounter_Win_Lost_Naga_Fuck_Absorb_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Lost_Naga"], 3)>>
Your meaty hand pushes into his face, pushes it down into your member, which greedily swallows him up entirely.
Your balls squirm and jostle with the trashing naga, but soon its shape begins to soften, to melt as your symbiote overtakes it.
You absorb the monster, turn it into more of you. You could hear your skin creak, your bones ache as your body swells larger.
\<<set $growth = setup.applyGrowth($CharacterSheet_Player, "muscles", 4)>>
Your body grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "height", 7))>> taller.
Your muscles grow to become <<print setup.getMusclesDescriptor($CharacterSheet_Player)>>(+$growth).
Your hands stroke your swelling member, veins throbbing violently as it engorges ever bigger.
It grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "cock", 5))>> longer.
\<<run setup.getLength(setup.applyGrowth($CharacterSheet_Player, "balls", 2))>>
\<<run setup.choice("[[Continue->Encounter_Win_Lost_Naga_Fuck_Absorb_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Lost_Naga"], 4)>>
It does not take long before you cum with a bellow.
A deluge of your cum splatters everywhere, with the bright pink color hinting that he'll reform from that later.
You briefly look upon the mess, give a snorting chuckle, move on.
\<<run setup.applyCorruption($CharacterSheet_Player, 8)>>
\<<set $CharacterSheet_Lost_Naga.quest.hasBeenVored = true>>
∇: You gain 8 corruption.
\<<run setup.choice("[[Leave->Village]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Lost_Naga"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "worried")>>
He doesn't get to see how your cock swallows his instead.
His member squishes and fits itself into your pipe with remarkable ease. The sensation leaves you huffing, panting, feeling the thick gooey warmth in your shaft.
\<<run setup.choice("[[Push forward->Encounter_Win_Lost_Naga_Fuck_PlayerBigger_1_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Lost_Naga"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "normal")>>
Slowly you start to push forward, claiming inches of the naga's cock with your own with each thrust.
The naga's gooey nature makes this way too easy, he just slides down your member with little resistance.
With just a few thrusts, you take him to the very hilt, claim his entire length, and with a flex of your mighty taint, you pull on his shaft.
\<<run setup.choice("[[Keep thrusting->Encounter_Win_Lost_Naga_Fuck_PlayerBigger_1_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Lost_Naga"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "normal")>>
You loom over the fallen serpent and continue to thrust onto him.
The tickling sensation continues to run down your pipe, down into your loins. It fills your prostate with the most pleasant feelings.
Slowly the pressure builds, higher and higher, growing more potent with each hammer strike of your hips.
Your body grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "height", 4))>> bigger.
Your cock grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "cock", 3))>> longer.
\<<run setup.getLength(setup.applyGrowth($CharacterSheet_Player, "balls", 1))>>
\<<run setup.choice("[[Cum->Encounter_Win_Lost_Naga_Fuck_PlayerBigger_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Lost_Naga"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "happy")>>
You cry out as you cum. Your impossibly large load unleashes onto the serpent.
So much of your cum flows past his shaft, it splatters onto his loins, and yet you are sure there should have been more.
His balls swell, engorge and expand. They grow $CharacterSheet_Player.symbiote.info.colour with all the seed you pump into him as his member drinks down your load like a greedy whore.
\<<run setup.choice("[[Continue->Encounter_Win_Lost_Naga_Fuck_PlayerBigger_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Lost_Naga"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "happy")>>
You keep pumping out more and more seed, so much more than a single climax would typically do. Until your fat orbs clench and hurt, unable to spill another drop.
You let out a deep guttural growl, feeling surprising exhaustion after the act. Your gaze drifts over the stirring serpent.
He'd recover momentarily, no doubt. Then your eyes move past the absurdly swollen boulders he had for balls.
There is no way he could chase you with those. He begins to rest on his tail tip in exhaustion.
\<<run setup.applyCorruption($CharacterSheet_Player, 8)>>
∇: You gain 8 corruption.
\<<run setup.choice("[[Leave->Village]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Lost_Naga"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "worried")>>
He doesn't get to see how his cock swallows yours. The slit spread around your member. It is forced to accept your intruding shaft.
The entrance is so tight, so wet, like fucking an ass and yet...
\<<run setup.choice("[[Continue->Encounter_Win_Lost_Naga_Fuck_NagaBigger_1_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Lost_Naga"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "normal")>>
You piston your hips forward, pushing in inch after inch of your length into the serpentine rod, grunting and snarling like a feral beast while the naga below you gasps weakly time and time again.
You laugh as you ram your cock in deeper.
Despite the size difference, it is still so tight, almost as if it contracts around your shaft. Sucking on it. Gulping.
\<<run setup.choice("[[Continue->Encounter_Win_Lost_Naga_Fuck_NagaBigger_1_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Lost_Naga"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "normal")>>
Soon you two were grunting in tandem with each other, your hands holding his massive balls, pressing them up against his shaft as if you were handling a pair of gigantic glutes.
You grope and knead them with your eyes closed as you feel the pressure in your loins build.
Just a few more...
\<<run setup.choice("[[Cum->Encounter_Win_Lost_Naga_Fuck_NagaBigger_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Lost_Naga"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "happy")>>
You cry out as you cum. Your balls clench, pulled tight to your groin as you unload into the naga.
You could feel his cock suck it up eagerly.
It drinks your seed with vigour.
\<<run setup.choice("[[Continue->Encounter_Win_Lost_Naga_Fuck_NagaBigger_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Lost_Naga"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "tongue")>>
Your eyes suddenly go wide as his cock lurches upwards and swallows your member all the way to the base.
His gooey cum rockets up around your member and splatters over your loins, but much more importantly, you could feel how it floods down your shaft.
\<<run setup.choice("[[Continue->Encounter_Win_Lost_Naga_Fuck_NagaBigger_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Lost_Naga"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "tongue")>>
It stretches it and violates your prostate as it floods into your balls. Your orbs swell with size; they engorge as they take the naga's orgasm in return.
∇: Your body grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "height", 4))>> taller.
∇: Your cock grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "cock", 3))>> longer.
∇: Your balls grow <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "balls", 2))>> bigger.
\<<run setup.choice("[[Continue->Encounter_Win_Lost_Naga_Fuck_NagaBigger_5]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Lost_Naga"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "tongue")>>
The pressure in your loins returns with a vengeance.
But only for a few seconds.
You nearly collapse to your knees as you climax again, your swollen sack shrinking as all the gooey cum flood back into the naga's member, pumped out by your shaft in exhausting fashion.
You'd never thought that would actually happen in this place, but when you finally pull out of the naga's cock, you actually feel a little exhausted. Drained even.
Almost as if something more than just your seed has been taken.
\<<run setup.applyCorruption($CharacterSheet_Player, 8)>>
∇: You gain 8 corruption.
\<<run setup.choice("[[Leave->Village]]");>>\<<set State.variables.CharacterSheet_Lost_Naga.quest.cockOut = true>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "happy")>>
You buckle as your strength leaves you. The vicious blows and devastating lashes of the serpent are too powerful to resist.
Immediately the beast seizes the opening and its massive coils wrap around your body and pull tight. Incredible musculature grinds against your body as the naga holds you tight.
\<<run setup.choice("[[Continue->Encounter_Loss_Lost_Naga_1_2]]");>>
\<<run setup.choice("[[Escape->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "tongue")>>
His balls, his cock push into your face as he props himself up before you, his thick gooey precum drips into your hair.
"Preeyyyy... feeeeeed." He growls above you as he then bends down.
His head comes closer, his breath washes over your face before his maw opens wide, wider than it has any right to.
\<<run setup.choice("[[Continue->Encounter_Loss_Lost_Naga_1_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Lost_Naga"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "tongue")>>
The corners of his mouth turn into gooey strands as he gives you a view down the abyss of his gullet.
His maw then engulfs your head, his whole being flows around you.
\<<run setup.choice("[[Continue->Encounter_Loss_Lost_Naga_1_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Lost_Naga"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "tongue")>>
His lips run over your broad shoulders like liquid, they overwhelm your powerful chest with near mocking ease.
Your waist follows, and he only briefly pauses on your groin to give your member a few brief licks.
\<<run setup.choice("[[Continue->Encounter_Loss_Lost_Naga_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Lost_Naga"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "tongue")>>
You can feel gravity shift as the serpent rears up and lets you slide down his gooey, stretchy gullet.
You struggle with all the might you could still muster, you push and punch, your legs kick, and yet there is nothing solid to hit, not even a proper sign of resistance.
It is as if you are caught in a rubber tube.
"Yesss, sttrrrruuggglle."
\<<run setup.choice("[[Continue->Encounter_Loss_Lost_Naga_2_1]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Lost_Naga"], 3)>>
But your disgrace is far from over. Whatever kind of stomach this was, it does not work like a regular one. There are no acids to take you apart, there is only goo.
In the pitch darkness of the gut, it begins to flood into your ass, cock and mouth. The thick quasi liquid forces its way into your body.
\<<set $curseStatus = setup.applyCurseOfTheNaga()>>
\<<if $curseStatus == "Cursed">>
Still, it goes even deeper as you could feel the strangest sensation.
Already beaten, and with no chance for recovery, the naga assimilates parts of you.
\<</if>>
\<<run setup.choice("[[Continue->Encounter_Loss_Lost_Naga_2_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Lost_Naga"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "tongue")>>
The last thing you hear is the thundering groaning of swelling snake bulk and the bellowing roars of orgasm.
"YESSSS SSSOOOO MUCH POWER!"
The naga roars as you fade away to become part of a superior predator.
\<<run setup.choice("[[Let Go->Encounter_Loss_Lost_Naga_3]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player", "CharacterSheet_Lost_Naga"])>>
You wake up hours later, with your senses slowly awakening from a long dreamless sleep.
\<<if $curseStatus == "Cursed">>
∇: The Lost Naga has taken some of your size, only by defeating him can you get your strength back.
∇: Your muscles are reduced to <<print setup.getMusclesDescriptor($CharacterSheet_Player)>> (-<<print $CharacterSheet_Player.quest.curseOfTheNagaStatDrain.muscles>>).
∇: Your body is shortened by <<print setup.getLength($CharacterSheet_Player.quest.curseOfTheNagaStatDrain.height)>>.
∇: Your cock's length is reduced by <<print setup.getLength($CharacterSheet_Player.quest.curseOfTheNagaStatDrain.cock)>>.
\<<elseif $curseStatus == "AlreadyCursed">>
∇: The Lost Naga has already stolen some of your size, only by defeating him can you get your strength back.
\<<else>>
∇: The Lost Naga has grown, but your form is too small to lose any more size.
\<</if>>
\<<run setup.choice("[[Return home->Village]]");>>\<<set $CharacterSheet_Lost_Naga.quest.saidWantSpawn = true>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "worried")>>
The Lost Naga hunches forward and nearly falls down, but he catches himself at the last second.
Yet his eyes brim with relentless conviction, and there lurks something more... a captivation, a craving..
A single impish grin frolics across his lips as he quips, "Seeking something are we? Your eyes, they betray your desire."
\<<run setup.choice("[[Continue->Encounter_Win_Lost_Naga_ShardFight_FirstTime_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "normal")>>
Suddenly, out of nowhere, he brandishes something from behind his back.
A fragment of the Eye of the Void.
\<<run setup.choice("[[Continue->Encounter_Win_Lost_Naga_ShardFight_FirstTime_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "normal")>>
His eyes narrow, studying your reaction intently. "How about a simple trade for it? I seek a Spawn of Nyx in return," he pronounces, feeling the tension once again escalate.
Your gaze meets his squarely.
Running a hand across a brawny arm, he can feel the Corruption shifting beneath his skin.
\<<run setup.choice("[[Continue->Encounter_Win_Lost_Naga_ShardFight_FirstTime_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "normal")>>
"A fair trade it would seem," he growls, the resonance in his voice reverberating in the desolate desert surrounding them.
"The relic for a Spawn of Nyx. Capture one, or infest yourself. It matters not to me."
<<print setup.getNextNarativeEventPassageListText(setup.StorySheet_Lost_Naga.bringSpawnOptions, 3)>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "worried")>>
The Lost Naga hunches forward and nearly falls down, but he catches himself at the last second.
Yet his eyes brim with relentless conviction, and there lurks something more... a captivation, a craving..
A grin frolics across his lips as he quips, "You win again, Salvager. Now, do you want your precious relic after all?"
\<<run setup.choice("[[Continue->Encounter_Win_Lost_Naga_ShardFight_Return_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "normal")>>
Suddenly, out of nowhere, he brandishes something from behind his back.
A fragment of the Eye of the Void.
"The relic for a Spawn of Nyx. Capture one, or infest yourself. It matters not to me."
<<print setup.getNextNarativeEventPassageListText(setup.StorySheet_Lost_Naga.bringSpawnOptions, 3)>>[[Return home->Village]][[Give him the captured spawn->Encounter_Win_Lost_Naga_BringSpawnCaptured]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "happy")>>
While he analyzes the unconscious spawn of Nyx, an unexpected emotion rises, piercing through his menacing facade; Greed.
A desire not linked to any physical pleasure he has known but for a power not yet tasted.
\<<run setup.choice("[[Continue->Encounter_Win_Lost_Naga_BringSpawnCaptured_1]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "normal")>>
The thought of what he might transform into with a spawn of Nyx infesting his already imposing physique shakes him to his core.
His muscles bulge, mirroring the internal conflict now raging within him.
He could be stronger, more dominant. He could be unstoppable.
\<<run setup.choice("[[Continue->Encounter_Win_Lost_Naga_BringSpawnCaptured_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "normal")>>
"A trade then," he whispers, tracing a large finger over the glowing relic ingrained in his chest. "Your spawn of Nyx for my relic."
The sound of his voice echoes eerily across the Barrens.
His towering form seems to blend with the darkness, tension lining each monstrous muscle.
\<<run setup.choice("[[Continue->Encounter_Win_Lost_Naga_BringSpawnCaptured_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "normal")>>
With a deep chuckle, he outstretches his hand and takes the parasite from your palm.
Its smooth, squirming form writhing in his massive grip, mirroring his own anticipation.
\<<run setup.choice("[[Continue->Encounter_Win_Lost_Naga_BringSpawnCaptured_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "normal")>>
How fascinating it is to consider such a trivial being could amplify his power.
The thought is indeed riveting.
\<<run setup.choice("[[Continue->TakeParasite]]");>>[[Give him one of your spawn->Encounter_Win_Lost_Naga_BringSpawnAlive]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "normal")>>
"Prove you're a worthy host. Show me you can handle the power of Nyx. Spread your spawns to me~"
His eyes blaze with hedonistic pleasure as he watches you fondle your cock unabashed, provoking the dormant spawns within your balls.
\<<run setup.choice("[[Continue->Encounter_Win_Lost_Naga_BringSpawnAlive_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
It stirs the Lost Naga into a feral joy.
He leans closer, the palpable anticipation crackling in the air like a brewing thunderstorm.
"I can feel them..." He grasps your cock, his grip careful gentle his monstrous might.
\<<run setup.choice("[[Continue->Encounter_Win_Lost_Naga_BringSpawnAlive_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "normal")>>
"They're eager, thrilled to meet their new vessel!"
Demonic laughter rumbles from his chest as he lifts his gaze, his mesmerizing eyes meeting yours.
The tendrils on his back twitch and writhe, ensnaring your cock and jerking it fervently.
\<<run setup.choice("[[Continue->Encounter_Win_Lost_Naga_BringSpawnAlive_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "normal")>>
Soon, a spawn is drawn forward, I uncurled it to its full, intimidating length, revealing the writhing monstrosity.
Quickly, he lowers his head and consumes your cock in his monstrous maw, sucks it like his life depended on it.
You soon it that critical mingling point of pleasure and pain.
\<<run setup.choice("[[Continue->Encounter_Win_Lost_Naga_BringSpawnAlive_5]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "happy")>>
Your climax starts to rush forth, and he pulls back to let your spawns spread all over him.
"Yesssssss~" He mused, tenderly lifting a spawn to the harsh daylight.
The spawn squirms wildly, a chaotic dance that only makes the Naga's grin widen.
\<<run setup.choice("[[Continue->TakeParasite]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
\<<run setup.playRealizationPackage(["CharacterSheet_Lost_Naga"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "normal")>>
Fixing his gaze onto you, he lowers his hand, bringing the parasite near his looming cock.
“Brace yourself,” he snarls, just before pushing the parasite inside.
The feeling was new, uncharted - a wave of pleasure overwhelms his already heightened senses.
\<<run setup.choice("[[Continue->TakeParasite_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Lost_Naga"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "normal")>>
The spawn squirms, exploring its new home with an undying curiosity that sends waves of unchecked lust coursing through his massive frame.
His back arches in pleasure as the parasite fuses with him, his roars echoing ominically in the barren wasteland.
He tilts his head back, eyes closed, consumed in the euphoria of this intimate act.
\<<run setup.choice("[[Continue->TakeParasite_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Lost_Naga"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "happy")>>
As the spawn of Nyx merges with his flesh, he feels himself pulse with an energy potent beyond comprehendible dimensions - a mind bending rush of raw might.
"YESSSSS!!!!"
\<<run setup.choice("[[Continue->TakeParasite_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Lost_Naga"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "normal")>>
Every inch of muscle within him tightens and expands spasmodically, straining against the relentless torrents of power coursing through his veins.
Then it happens.
He can feel his form bloating, the unremitting pressure swells within as his muscles craft a new, formidable form of their own.
\<<run setup.choice("[[Continue->TakeParasite_5]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Lost_Naga"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "normal")>>
"HHHMMMMMM... THIS IS SO GOOOOOOOD~"
Powered by the untamable energy embodied by the spawn of Nyx, his form erupts with an overwhelming burst of power.
Towering over the dunes, muscles spreading into an intimidating panorama, he lords over the barren landscape.
\<<run setup.choice("[[Continue->TakeParasite_6]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Lost_Naga"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "happy")>>
"MOOOOOOORE!!!!"
As if a dam has cracked, he unloads an unstoppable flood of corrupted seed.
The thunderous of his orgasmic roars reverberates across the desert, a primal proclamation of newfound power that dares to challenge his authority over the Barrens.
\<<run setup.choice("[[Continue->TakeParasite_7]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Lost_Naga"])>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "happy")>>
<span class="glitch nyx" data-text="CORRUPT GROW FUCK">"GROW! FUCK! SPREAD!"</span>
With raw pleasure rippling through him, he cum again, subjugated by the pure ecstasy of his monstrous metamorphosis.
Spastic waves of delight course through him, tearing his senses away with the intensity of his explosive release.
\<<run setup.choice("[[Continue->TakeParasite_8]]");>>\<<set $CharacterSheet_Lost_Naga.quest.givenShard = true>>
\<<set $CharacterSheet_Lost_Naga.quest.saidWantSpawn = false>>
\<<set $CharacterSheet_Player.quest.gatheredShard++>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Naga, "normal")>>
When the echoes of his orgasm disolves, he stands commandingly over the dunes.
The lingering aftershocks of the experience washes over him, leaving him with an unquenchable thirst... a thirst for more.
"Thank you Salvagers, I will remember this~"
∇: You gained a shard of the Eye of the Void
\<<run setup.choice("[[Return home->Village]]");>><<include setup.getNextNarativeEventPassage(setup.StorySheet_Lost_Prisoner.encounterIntro)>>You have been traversing the unforgiving dersertic expanses of the Barrens for what feels like an eternity.
The omnipresent sun casts long, eerie shadows of half-buried ruins that emerge sporadically from the desert.
But a tenacious warrior, your strength and resolve has outgrown fatigue.
\<<run setup.choice("[[Continue->Lost_Prisoner_FirstMeeting_Intro_2]]");>>In your journey's midst, a chill suddenly slithers down your spine.
Your senses immediately pick up on an abrupt change in the environment.
The sun begins to sink below the horizon, its waning gold streaks giving way to a creeping purple that distorts into pitch-black.
\<<run setup.choice("[[Continue->Lost_Prisoner_FirstMeeting_Intro_3]]");>>An otherworldly howl pierces the silence, echoing throughout the vast, deserted landscape.
It's a sound you've learned to fear: the howl of a werewolf.
The hairs on your neck prickle up as adrenaline floods your body, sharpening your senses and readying you for battle.
Suddenly, he emerges from behind a nearby dune.
\<<run setup.choice("[[Continue->Lost_Prisoner_FirstMeeting_Intro_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
You remember him all too well. The beast is massive, ferocious, an embodiment of primal rage and raw strength.
It was only through the combined effort of you and Abel that you managed to subdue the beast.
\<<if $CharacterSheet_Player.quest.lostPrisonerUntied == false>>
Apparently, though, the Bastion's prison was not enough to contain him.
\<<else>>
But then of course, you helped him escape.
\<</if>>
\<<run setup.choice("[[Continue->Lost_Prisoner_FirstMeeting_Intro_6]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
But no one can help you in the echoing vastness of the Barrens, face to face with the escaped beast.
The werewolf stands there, as imposing and ferocious as your darkest memory recalls.
His eyes, as dark as Corruption itself, find yours immediately.
They're the color of every lost soul, of every instinct screaming at you to give in.
\<<run setup.choice("[[Continue->Lost_Prisoner_FirstMeeting_Intro_7]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
You circle each other warily, the tension building with each passing moment.
"It's just you and me this time." He snarls.
<<print setup.getFightStartPassages($CharacterSheet_Lost_Prisoner)>>Across endless miles of parched earth and sun-bleached sand dunes, the desert wasteland stretches out, barren and devoid of life.
Well, almost devoid of life, there is something else, something lurking...
You could feel its presence ever since you started your expedition.
\<<run setup.choice("[[Continue->Lost_Prisoner_LowRela_Intro_2]]");>>A chilling howl echoes across the vast desolation, making your skin prickle in anticipation.
That voice... that guttural, animalistic yowl, it belongs to him.
\<<run setup.choice("[[Continue->Lost_Prisoner_LowRela_Intro_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
A gust of wind stirs the sand beneath your feet, carrying with it a hint of wet fur and rancid breath.
"I can smell you, from miles away," the snarl fills the air around you.
\<<run setup.choice("[[Continue->Lost_Prisoner_LowRela_Intro_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
"I'll hunt you anywhere you go."
His presence is so overwhelming and pervasive, almost as if he has saturated the very air around you with his existence.
A malevolent aura wraps around you like a tight coil, constricting your breath.
"You're mine~"
<<print setup.getFightStartPassages($CharacterSheet_Lost_Prisoner)>>Across infinite spans of arid land and sun-bleached sand dunes, the desert wasteland extends, barren and lifeless.
Well, almost lifeless, there's something else, something unseen...
You've felt its presence since the start of your journey.
\<<run setup.choice("[[Continue->Lost_Prisoner_MidRela_Intro_2]]");>>Your heart hammers against your chest, the heavy thump echoing loudly in your ears as a familiar beast steps forward, clawed feet crunching the barren ground underfoot.
His glowing purple eyes send a twisted mixture of terror and lust across your body.
A rumbling growl reverberates from his chest, a haunting harmonic that seals your fate.
You're face to face with the Lost werewolf.
\<<run setup.choice("[[Continue->Lost_Prisoner_MidRela_Intro_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
"I've got you," he grates, his voice the primeval growl of a predator.
He continues, "I've been yearning for this moment." There are no signs of mercy in his glacier-cold eyes.
But there's something odd about the distance between you this time. There's almost an allure, a strange attraction pulling you both.
<<print setup.getFightStartPassages($CharacterSheet_Lost_Prisoner)>><<include setup.getNextNarativeEventPassage(setup.StorySheet_Lost_Prisoner.postFightPassagesLoss)>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
You stagger back, the pain echoing through you like a drumbeat.
The world spins around as you crumble to your knees, defeated, but not broken.
In the quiet of the approaching dusk, the werewolf speaks, his voice gruff yet proud.
\<<run setup.choice("[[Continue->Lost_Prisoner_Low_Rela_Loss_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
His growls cut through the silence.
Suddenly, his frame starts to shiver, a low growl rattling ominously in his chest.
\<<run setup.choice("[[Continue->Lost_Prisoner_Low_Rela_Loss_3]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
He doubles over, a lustful moan savaging the eerie silence. You watch, paralyzed with fear and anticipation as Essence surges within his soul.
Growth rip through his back, muscles rippling and swelling like tidal waves in a storm.
"I'll never stop growing, become the strongest beast there is!"
He grows, his already formidable muscles bulging and flexing, transforming it into an even more formidable monster.
Essence rushes into his chest, making his heart throb erratically as it tries to keep pace with the onslaught of power.
∇: The Lost Werewolf's has grown <<print setup.getLength(setup.applyGrowth($CharacterSheet_Lost_Prisoner, "height", 10))>> taller.
∇: The Lost Werewolf's cock has grown <<print setup.getLength(setup.applyGrowth($CharacterSheet_Lost_Prisoner, "cock", 4))>> longer.
∇: The Lost Werewolf's balls have grown <<print setup.getLength(setup.applyGrowth($CharacterSheet_Lost_Prisoner, "balls", 2))>> in diameter.
∇: The Lost Werewolf's muscles have grown (<<print setup.applyGrowth($CharacterSheet_Lost_Prisoner, "muscles", 5)>>).
\<<run setup.choice("[[Continue->Lost_Prisoner_Low_Rela_Loss_4]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
"Grrrrrrr... GrrRaaaaAAAAAA!"
His pecs bulge and stretch, tightening as well as expanding in size, becoming monstrously huge.
A half snarl, half laugh rumbles in its throat, shaking you to your very core.
\<<run setup.choice("[[Continue->Lost_Prisoner_Low_Rela_Loss_5]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
Suddenly, the beast turns and stalks away, its bared teeth glinting menacingly.
"Your end at my hands would be too comfortable. I prefer my prey to squirm, to live with the knowledge of its impending demise."
\<<run setup.choice("[[Continue->Lost_Prisoner_Low_Rela_Loss_6]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
"Who's to say I even need Apothus~"
With great difficulty, you push yourself to your knees and watch as the silhouette of the werewolf slowly dissolves into the swirling curtain of sand.
Drained of strength, you slump back, each labored breath serving as a brutal reminder of your encounter.
Better to leave before he changes his mind.
\<<run setup.choice("[[Leave->Village]]");>>The pulsating agony of his last hit sends you reeling backwards.
A final clash, elegant and tragic, ends with his claws sinking into your shoulder.
Searing pain follows, growing with each heartbeat.
\<<run setup.choice("[[Continue->Lost_Prisoner_Mid_Rela_Loss_2]]");>>Yet, as he leans in, his snout dangerously close, he doesn't strike the final blow.
Instead, he utters words you never expected to hear from this beast.
"Hmmmm~ You'd make for such a wonderful mate if you gave in."
\<<run setup.choice("[[Continue->Lost_Prisoner_Mid_Rela_Loss_3]]");>>His words stir within you, a maelstrom of confusion and disbelief.
Yet, even though the confusion overwhelms your senses, a part of you starts to believe him.
The way he has always been there, always finding you, always pushing you to fight.
Maybe there is something more.
Lost in the newfound emotions, you succumb to the gravitating pull and slither to your knees.
\<<run setup.choice("[[Continue->Lost_Prisoner_Mid_Rela_Loss_4]]");>>The werewolf watches as you fall, his purple eyes full of longing.
He gives you a cocky smirk, mirth dancing in its eyes, and licks its furred lips.
\<<run setup.choice("[[Continue->Lost_Prisoner_Mid_Rela_Loss_5]]");>>The sight saps your remaining strength, the realization sinking in that he has truly won.
“What will you do now, human?” It asks, leaning closer, its breath hot and warm against your face. “Flee or submit?”
\<<run setup.choice("[[Flee->Village]]");>>
\<<run setup.choice("[[Submit->Lost_Prisoner_Mid_Rela_Loss_6]]");>>With how fast I'm growing, running will soon no longer be an option~-
\<<run setup.choice("[[Continue->Village]]");>><<include setup.getNextNarativeEventPassage(setup.StorySheet_Lost_Prisoner.postFightPassagesWin)>>\<<set $CharacterSheet_Lost_Prisoner.quest.relationshipScoring++>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
The werewolf staggers back, echoing pain coursing through him like a drumbeat.
He crumbles to his knees, defeated but not broken.
You notice his wounds are already starting to heal. He smirks in response.
\<<run setup.choice("[[Continue->Lost_Prisoner_Low_Rela_Win_2]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
His words cut through the silence.
"Don't you dare think this is over, warrior."
Suddenly, his body shivers, a low growl rattling ominously in his chest.
\<<run setup.choice("[[Continue->Lost_Prisoner_Low_Rela_Win_3]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
"Corruption flows through me, granting me the power I need to become the strongest beast The Barrens have ever witnessed."
He doubles over, a lustful moan savaging the eerie silence.
Growth rips through his back, muscles rippling and swelling like tidal waves in a storm.
"I will grow... breeed... SPREAD!"
\<<run setup.choice("[[Continue->Lost_Prisoner_Low_Rela_Win_3_1]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
He expands, his daunting sinews blossoming and convulsing, morphing him into an entity of unrelenting terror even more fearsome than before.
A corrupted tide surges into his core, causing his heart to dance a wild rhythm of pandemonium, striving to match the torrential deluge of raw might.
∇: The Lost Werewolf's has grown <<print setup.getLength(setup.applyGrowth($CharacterSheet_Lost_Prisoner, "height", 4))>> taller.
∇: The Lost Werewolf's cock has grown <<print setup.getLength(setup.applyGrowth($CharacterSheet_Lost_Prisoner, "cock", 1))>> longer.
∇: The Lost Werewolf's balls have grown <<print setup.getLength(setup.applyGrowth($CharacterSheet_Lost_Prisoner, "balls", 0.3))>> in diameter.
∇: The Lost Werewolf's muscles have grown (<<print setup.applyGrowth($CharacterSheet_Lost_Prisoner, "muscles", 5)>>).
\<<run setup.choice("[[Continue->Lost_Prisoner_Low_Rela_Win_4]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
"Grrrrrrr... GrrRaaaaAAAAAA!"
His pectorals swell and contort, straining under an otherworldly strength, evolving into behemoth proportions of almost mythical stature.
A sound midway between a guttural growl and a sinister chuckle bubbles from the beast's throat, sending ominous tremors through the very essence of your being.
\<<run setup.choice("[[Continue->Lost_Prisoner_Low_Rela_Win_5]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
Abruptly, the creature whips around and slinks away on all four, his teeth gleaming wickedly, a sinister light illuminating the sharp, threatening points.
"I'll hunt you down in your most unsuspecting moments, descending upon you like your worst nightmares."
As his muscular form hits the hot desert sand, a guttural growl rumbles on the horizon.
He starts to run, and before you can even muster an answer, he is swallowed whole by the monstrous expanse of burning sands.
\<<run setup.choice("[[Continue->Lost_Prisoner_Low_Rela_Win_6]]");>>Drained of strength, you slump back, each laboured breath serving as a brutal reminder of your encounter.
∇: Your bond with the Lost Prisoner has strengthened.
\<<run setup.choice("[[Leave->Village]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
The smell of Corruption and sweat covers you both. This was an intense battle.
The Barrens are silent once more, save for your heartbeat, echoing of the warrior within, undefeated and indomitable.
The werewolf makes no move to respond verbally, yet you see it in every line of his hulking form. The tension seeping out of his muscles, his lowered gaze, the slump in his broad shoulders.
He lets out a low, throaty whimper.
It is a clear act of yielding.
\<<run setup.choice("[[Continue->Lost_Prisoner_Mid_Rela_Win_Idle_2]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
"Ggrrarrr..."
The beast stays motionless, kneeling at your feet in total exhaustion.
"There's a satisfaction in overpowering the weak, the strong, the defiant." His voice interweaved with a haunting animal growl.
\<<run setup.choice("[[Continue->Lost_Prisoner_Mid_Rela_Win_Idle_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
His cock is hard and exposed. Tainted pre has been oozing out of it ever since he raised his head to look at you.
His body continues to grow, his heartbeat fueling his muscles with enough Corruption to break a man's soul.
"But this... This is something else."
His heel digs deeper into the shifting sands beneath him.
He grasps his throbbing shaft and growls.
\<<run setup.choice("[[Continue->Lost_Prisoner_Mid_Rela_Win_Idle_4]]");>>\<<set $CharacterSheet_Lost_Prisoner.quest.tentaclesOut = true>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
Without warning, long, slender tendrils begin to emerge from his back.
They crawl down towards his ass before pushing themselves in, stretching and lubricating it out of instinct.
"I feel the urge to give in, to be guided into a realm of true pleasure."
\<<run setup.choice("[[Take him->Lost_Prisoner_Mid_Rela_Win_Idle_5]]");>>
\<<run setup.choice("[[Leave->Village]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
You lift his chin and guide your cock towards his awaiting mouth.
With a determined growl, he starts sucking without a hint of hesitation.
His audacious acceptance sends a thrilling shiver cascading down your spine.
The once terrifying predator is now gorging down your tool, his own hand jerking himself off with increasing desperation.
\<<run setup.choice("[[Continue->Lost_Prisoner_Mid_Rela_Win_Idle_6]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
The Corruption that clads his body surround your cock.
Like a second skin, it encapsulates it. It's a sensation that is alien and yet somehow incredibly intimate.
This Corruption spreads all throughout you, tracing thick, pulsating lines along your veins and arteries.
\<<run setup.applyCorruption($CharacterSheet_Player, 8)>>
Δ: You gain 8 Corruption.
\<<run setup.choice("[[Continue->Lost_Prisoner_Mid_Rela_Win_Idle_7]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
You feel him expand beneath you, your breath catching in sync with each powerful thrust.
His body tenses, biceps hardening.
Each motion radiates a new wave of subtle growth, blossoming into long, deep moans.
Corruption seeps into your thoughts and urges you to take this to the next level.
To make him yours.
\<<run setup.choice("[[Take him->Lost_Prisoner_Mid_Rela_Win_Idle_8]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
You pull out and grin at the sight of the panting wolf.
The cold, wild air tingles across your skin, magnified by the Corruption coursing through your veins.
He whines, already missing the taste of your cock.
But as you go behind him and grab him by the waist, he knows what's coming.
You can sense the anticipation surging through him, giving you more impetus. His arms, previously relaxed at his sides, cross over his chest instinctively.
"Just take me already..."
\<<run setup.choice("[[Fuck him->Lost_Prisoner_Mid_Rela_Win_Idle_9]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
His gooey body shivers as you press your <<print setup.getLength(setup.getStatValue($CharacterSheet_Player, "cock"))>> cock against his ass.
The thrust, letting your growing instincts take over. You push yourself all the way in, causing his body to twitch.
<h2>"Take me!!!!"</h2>
You've never felt such raw intensity before, the deep connection pulling you closer, even as his monstrous form attempts to adjust to you.
\<<run setup.choice("[[Continue->Lost_Prisoner_Mid_Rela_Win_Idle_10]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
<h1>"Grraaaaaaaaaahhh!"</h1>
The werewolf begins to grow once more.
It's an instinctual response of relentless survival.
The wolf's grisly eyes hold yours, piercing and probing, searching.
As if he were daring you to try and control him, to see what kind of monster you could become.
\<<run setup.choice("[[Continue->Lost_Prisoner_Mid_Rela_Win_Idle_11]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
His stance remains unyielding, his gaze steadfast; he seems more like a provocateur awaiting a duel, inviting a worthy adversary than a victim submitting to your control.
Another surge of growth rushes through him. His glutes flex hard, sucking down your cock and taking you deeper.
\<<run setup.choice("[[Continue->Lost_Prisoner_Mid_Rela_Win_Idle_12]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
The Corruption seeps further inside your cock, and it grows faster than the wolf's entire body.
This sudden growth sends an overwhelming tide of lust through your veins, amplifying your need to dominate him.
<h1>"FUUUUUUUCK!!!!"</h1>
His gigantic body, writhing and twisting, submits to the overwhelming might of your power.
Each of his huffing breaths becomes increasingly staggered, a telling indication of his upcoming orgasm.
\<<run setup.choice("[[Continue->Lost_Prisoner_Mid_Rela_Win_Idle_13]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
The once deafening growls that echoed through the Barrens are reduced to impassioned moans.
He gives in. You've won.
This brings you over the edge.
\<<if setup.getStatValue($CharacterSheet_Player, "corruption") > 200>>
[[Cum->Lost_Prisoner_Mid_Rela_Win_Idle_Normal]]
[[Transform him->Lost_Prisoner_Mid_Rela_Win_Idle_Change]]
\<<else>>
[[Cum->Lost_Prisoner_Mid_Rela_Win_Idle_Normal]]
<span class = 'inactive'>[[Transform him->Village]] (Need over 200 Corruption)</span>
\<</if>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
You are overwhelmed by this exquisite orgasm fueled by Corruption.
It rushes through you like a thunderous waterfall, saturating every recess of your being.
It crashes upon the shores of your consciousness and covers you in the forbidden pleasures of the void.
You let it all out, a mighty load that electrifies your soul.
\<<run setup.choice("[[Contiue->Lost_Prisoner_Mid_Rela_Win_Idle_Normal_2_1]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
<h1>"SPREEEEEEEAD!!!!"</h1>
Then, with a visceral grunt, the werewolf unleashes his load, a dark, vicious energy that radiates Corruption.
It shoots off him like a turbulent wave, flooding everything around him.
Including you.
\<<run setup.choice("[[Absorb his Corruption->Lost_Prisoner_Mid_Rela_Win_Idle_Normal_2]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
Without hesitation, you open yourself to his seductive call.
An intoxicating warmth spreads across your skin as if you've dipped your body into a lake of liquid fire.
His touch is invigorating, and your body welcomes it with unprecedented hunger.
\<<run setup.choice("[[Absorb his Corruption->Lost_Prisoner_Mid_Rela_Win_Idle_Normal_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
It seeps into your pores, coursing through your veins like molten obsidian.
It's a feverish invasion, an otherworldly connection between you and the beast, a silent promise of power whispered into your soul.
Your body shivers, your bones shifting, stretching, becoming stronger with every drop of cum you absorb.
\<<run setup.choice("[[Absorb his Corruption->Lost_Prisoner_Mid_Rela_Win_Idle_Normal_3_1]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
Your flesh bulges and reshapes. Once lean and defined, your arms now swell, the mass increasing to unnatural levels.
The Corruption weaves into your biceps and triceps, seeping down into your forearms.
Your shoulders and back widen, stretching and growing every muscle it can spread to.
It feels like power pulsating, taking root in your body - a primal and raw force that speaks of dominance and might.
Each drop of Corruption draws out more of your developing fierceness, the savage power lurking deep within you.
Δ: Your muscles grow bigger (<<print setup.applyGrowth($CharacterSheet_Player, "muscles", 4)>> ).
Δ: You gain 9 Corruption.
\<<run setup.choice("[[Continue->Lost_Prisoner_Mid_Rela_Win_Idle_Normal_4]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
The werewolf's grinning maw widens as he lifts his beastly gaze up to you, howling with delight and anticipation.
The raw power of his voice - asserting his triumph, resonates with your slowly transforming self, stirring something primal within you.
Your pulse spikes, your nails lengthen, and a sudden surge of animalistic energy rushes through your veins, making your senses sharpen alarmingly.
\<<run setup.choice("[[Continue->Lost_Prisoner_Mid_Rela_Win_Idle_Normal_5]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
<h2>"Hmmmm look at you~"</h2>
His grin haunts you, becoming the embodiment of the Corruption spreading throughout your being.
His eyes hold an echo of your future.
You're becoming one of them.
\<<run setup.choice("[[Continue->Lost_Prisoner_Mid_Rela_Win_Idle_Normal_6]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
Gradually, with intention, the creature flexes for you, emphasizing the raw power held within his muscles.
The werewolf's pecs ripple under the sun's intense stare, visibly displaying his tremendous strength.
His powerful arms display an equal amount of monstrous power.
"Good luck on your next hunt, warrior."
\<<run setup.choice("[[Leave->Lost_Prisoner_Mid_Rela_Win_Idle_Normal_7]]");>>You watch him sprint off into the Barrens.
As he bounds forward, displaying raw, primal strength, you can't help but feel the sheer size and majesty of his being.
\<<run setup.choice("[[Leave->Village]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
Your climax sends shockwaves through both of you, making his body glow an otherworldy purple.
Every contour of him pulsates, radiating an otherworldly energy that seems to emanate in time with your shared pleasure.
His howls of ecstasy merge with cries of surprise and might be mistaken for pain by someone uninitiated.
But this is nothing to be scared of, nothing to resist.
\<<run setup.choice("[[Continue->Lost_Prisoner_Mid_Rela_Win_Idle_Change_2]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
<h1>"Guhhhh. What are you..."</h1>
His cries fill the air as the moment of ecstasy ripens into something more surreal.
A cascade of pure energy, radiant like the streak of a falling star, explodes from you with an echoing sound like the melody of the cosmos.
It arcs through the air so fast it blurs, embedding itself with a vicious crack into the werewolf's sides.
<h1>"Grraaaaaaaaaahhh!"</h1>
The beast howls out, a sound that echoes through the Barrens.
\<<run setup.choice("[[Continue->Lost_Prisoner_Mid_Rela_Win_Idle_Change_2_1]]");>>\<<set $CharacterSheet_Lost_Prisoner.info.bodyVisual = "BodyVisualSheet_Lost_Prisoner_Ascended">>
\<<set $CharacterSheet_Lost_Prisoner.quest.ascended = true>>
\<<set $CharacterSheet_Lost_Prisoner.quest.tentaclesOut = false>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
The silence settles in again. Everything around you feels amplified.
The werewolf's heavy receding growls grow deeper as you gaze at him, transforming before your very eyes.
It's like the werewolf's flesh and fur are boiling together, churning, and reforming in a pulsating, sinewy mass that sends chills racing down your spine.
This is an evolution - an intimate bond that transforms the body and soul.
\<<run setup.choice("[[Continue->Lost_Prisoner_Mid_Rela_Win_Idle_Change_2_2]]");>>\<<set $CharacterSheet_Lost_Prisoner.quest.extraArms = true>>
\<<run setup.completeAchievement("Achievement_AscendedPrisoner");>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
Two additional arms burst from the werewolf's sides with a rush of corrupted energy.
As the newly formed limbs extend, so does your feeling of dominant pride, the certainty that you've just irrevocably fractured the barrier between mortal and titan.
These new arms, bearing savage claws, writhe wildly as if tasting freedom for the first time.
<h1>"MOOOOOOOORE!"</h1>
∇: The Lost Werewolf has grown <<print setup.getLength(setup.applyGrowth($CharacterSheet_Lost_Prisoner, "height", 15))>> taller.
∇: The Lost Werewolf's cock has grown <<print setup.getLength(setup.applyGrowth($CharacterSheet_Lost_Prisoner, "cock", 5))>> longer.
∇: The Lost Werewolf's balls have grown <<print setup.getLength(setup.applyGrowth($CharacterSheet_Lost_Prisoner, "balls", 2))>> in diameter.
∇: The Lost Werewolf's muscles have grown (<<print setup.applyGrowth($CharacterSheet_Lost_Prisoner, "muscles", 15)>>).
\<<run setup.choice("[[Continue->Lost_Prisoner_Mid_Rela_Win_Idle_Change_2_3]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
The werewolf creature stands taller now, his fury amplified, his being elevated, an even greater nightmare than before.
And you are the mastermind behind this monster.
No longer simply a beast, he is a god among his kind, driven to the brink of madness by his thirst for power.
\<<run setup.choice("[[Continue->Lost_Prisoner_Mid_Rela_Win_Idle_Change_4]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
His deep, purple eyes glow ominously in the dim light, matching the sharp gleam of his sharp fangs.
Yet, you stand undeterred. You both know that he is beneath you.
It instills you with an uncommon sense of command and authority that makes you meet the beast's piercing gaze unflinchingly.
\<<run setup.choice("[[Continue->Lost_Prisoner_Mid_Rela_Win_Idle_Change_5]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
You stand tall, exuding an aura of control that permeates the tense air surrounding you.
The werewolf, sensing your resolve, whines lowly.
"Thank you for this gift~"
\<<run setup.choice("[[Continue->Lost_Prisoner_Mid_Rela_Win_Idle_Change_6]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<set $CharacterSheet_Lost_Prisoner.info.name = "Ferro">>
\<<run setup.ferroJoinsPlayer()>>
The beast flexes for you, showing you the raw power he now possesses.
"Can't wait to test these on some unsuspecting prey."
The rippling muscles across the werewolf's torso undulate under the sun's burning gaze.
His four mighty arms bulge with monstrous strength.
"And by the way, the name's Ferro."
Δ: Ferro will now join you in battle!
\<<run setup.choice("[[Continue->Lost_Prisoner_Mid_Rela_Win_Idle_Change_7]]");>>He sprints into the Barrens, the untouched wilderness extending beyond the clearing.
As he bounds forward with an outward display of primal strength, you can't help but be taken aback by this creature's sheer intensity and majesty.
\<<run setup.choice("[[Continue->Lost_Prisoner_Mid_Rela_Win_Idle_Change_8]]");>>His figure becomes smaller with distance as he seamlessly blends with the desert.
Yet his triumphant howl echoes back to you, a haunting serenade that leaves you with a heightened yearning - a silent, pulsating promise of unimaginable pleasures yet to come.
\<<run setup.choice("[[Leave->Village]]");>>Not long after you embark on your perilous journey to the Barrens, you feel a sudden movement in your periphery.
Your heart pounds in anticipation, and adrenaline surges through your veins.
You turn on your heel to confront the newcomer and grin at the sight.
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Intro_2]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
His muscles ripple and bulge, each fluxing with overwhelming power.
It is as if every fibre of his being pulsates with brutish strength.
Tentacles unfurl from his back, constricting and writhing as each appendage seeks prey to latch on to.
"Found you~"
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Menu]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
<<include setup.getNextNarativeEventPassage(setup.StorySheet_Lost_Prisoner.partnerMenuFlavour)>>
<<print setup.getNextNarativeEventPassageListText(setup.StorySheet_Lost_Prisoner.partnerMenuChoices, 9)>>\
\<<run setup.choice("[[Return home->Village][setup.flagTimePasses($CharacterSheet_Lost_Prisoner)]]");>>\<<if $CharacterSheet_Player.info.tags.partnerSparExhaustion == true>>
<span class = 'inactive'>[[Spar with him->Lost_Prisoner_Partner_Spar]] (You must rest before sparring again.)</span>
<<else>>
[[Spar with him->Lost_Prisoner_Partner_Spar]]
<</if>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
"Hehehe, you thirst for it, don't you?"
He eagerly lunges towards you, not giving you any time to prepare for the fight.
\<<set $CharacterSheet_Player.info.tags.partnerSparExhaustion = true;>>
\<<run setup.choice("[[Fight->FightLogic][$Encounter_Target = $CharacterSheet_Lost_Prisoner]]");>><<include Lost_Prisoner_Partner_Menu>><<include Lost_Prisoner_Partner_Menu>>All four of his arms are extraordinarily muscular, evident even beneath the layers of Corruption.
The beast's presence is unsettling yet comforting.All four of his arms are extraordinarily muscular, evident even beneath the layers of Corruption.
The Barrens shake under the weight of this monstrous titan.The Barrens' air is thick with your combined Corruption.
Mortal minds would melt upon meeting your gaze.
Your partner could only dream of reaching your level of depravity.The Barrens' air is thick with your combined Corruption.
Mortal minds would melt upon meeting your gaze.
Your spawns wriggle in excitement at the sight of their brethren.<span class='inactive'>[[Infest him->Village]]</span>
\[[Infest him->Lost_Prisoner_Partner_Infest]]
\\<<set $CharacterSheet_Lost_Prisoner.quest.tentaclesOut = true>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
Seeing the look of desire flash through your eyes, a wicked grin tugs at the corners of his large, toothy maw.
His tentacles twitch with anticipation.
The scent of lust thickens in the already heavy air, causing his four arms to flex involuntarily, the raw muscular power a silent display of corrupted power.
"Seems like someone's eager." He taunts, a raspy chuckle escaping from his throat.
\<<if $CharacterSheet_Player.info.tags.partnerRecentSex == true>>
You had already unleashed your load today, but whatever refactory period you once had seems gone. You know you will be with him long into the night and into next morning, filling him both with your seed and your precious spawn.
<</if>>
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Infest_2]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
A chuckle rumbles deep within his chest, the sound reverberating through the open, desolate expanse around you.
You tug uncomfortably at your loincloth, your smile growing wider.
As his hands stroke your muscular body in reverence, each touch sends riveting shocks through his skin.
His tentacles respond independently, curling around his wrists. His heightened senses tell him something is different.
Your spawns yearn to infest him. One is ready to emerge from your cock at any point.
\<<run setup.choice("[[Let it out->Lost_Prisoner_Partner_Infest_3]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
A shudder courses through him at the sight of the creature sliding out of your slit.
The sight should be grotesque, but the way the parasite takes hold of this moment, moving like a part of you, only enhances the allure.
It crawls its way to his cock.
\<<run setup.choice("[[Urge it to infest him->Lost_Prisoner_Partner_Infest_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
Your grin is contagious, pulling a rumbling chuckle from the werewolf's maw.
His monstrous paw props the spawn up and leads it to its prize.
"Alright, mate." he quips, muscles tensing as an anticipatory twitch rushes through him.
"Let's see what lies on the other side." He says, a sudden flare of determination washing away any remnants of doubt.
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Infest_5]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
It suddenly dives into his slit, and the sudden intrusion sends a shockwave of pleasure rolling up his spine.
A surprised roar reverberates through the desolate wasteland.
His hands tighten around your torso, anchoring him to you as he embraces the forbidden creature coursing through him.
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Infest_5_2]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
He feels the monster planting itself in him, burrowing deeper... and then, it is starts to be absorbed.
The sensation is like nothing he's ever experienced, a twisting, seething riot of pulsating warmth spreading throughout him.
Almost instantly, growth hits him. His body expands, each muscle filling with power and vigour.
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Infest_5_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
A low growl rumbles in his chest as he feels the euphoria wash over him, the pulses of pleasure getting stronger with each heartbeat.
This new presence, your presence within his body, is transforming him.
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Infest_6]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
\<<run State.variables.CharacterSheet_Lost_Prisoner.applyAbilityRuntimeData(setup.Ability_NyxParasiteInfection)>>
\<<run State.variables.CharacterSheet_Lost_Prisoner.quest.infested = true>>
His massive form quakes under the surges of pleasure.
The sight of his ever-growing body and the feel of his expanding power makes you more and more aroused.
For the briefest moment, he worries about what will happen, about what he's becoming.
But then, he feels the parasite thriving, moving inside him like a primal, intoxicating dance, and these thoughts are washed away.
Δ: Ferro's gains the "Nyx Spawn Infection" Ability.
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Infest_6_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
The palpable sense of widening strength and surging desire becomes his new reality.
He revels in the sensation, his towering form looming over, his four arms pulsating with ever-increasing power.
He manages to growl out between gasps and shudders, "Yesss..." His voice shakes, rendered breathless by the profound changes coursing through him.
His eyes meet yours, glowing with an increasingly alluring light. The reflection of his metamorphosis glares back. It is a dangerous promise of what's yet to come.
\<<run setup.choice("[[Fuck him->Lost_Prisoner_Partner_Infest_7]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
Within seconds, your cock presses upon his entrance, and you push yourself in.
Your spawns yearn for more.
"INFEST MEEEEE!!!" He screams.
\<<run setup.choice("[[Fuck him harder->Lost_Prisoner_Partner_Infest_8]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
Each thrust sends waves of delicious pressure spiralling through him, ripples of pure ecstasy radiating from his core.
The sensation is magnified when the additional parasites make their presence known, ambitions intent on moulding him further.
They spread quickly, their influence seeping into every fibre of his being, transforming him into something... more.
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Infest_9]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
With each surge of their power, he feels his body bulge, his muscles expanding, his skin stretching to accommodate the near-overpowering might swarming within him.
"Hahahaha... HAHAHAHA!" He screams madly at the power and pleasure rushing through him.
He can feel his massive form grow even larger, his body almost obscenely muscular.
\<<set $growth = setup.applyGrowth($CharacterSheet_Lost_Prisoner, "muscles", 22)>>
Δ: Ferro's body grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Lost_Prisoner, "height", 14))>> taller.
Δ: Ferro's muscles grow to become <<print setup.getMusclesDescriptor($CharacterSheet_Lost_Prisoner)>>(+$growth).
Δ: Ferro's cock grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Lost_Prisoner, "cock", 6))>> longer.
Δ: Ferro's balls grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Lost_Prisoner, "balls", 2))>> wider.
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Infest_10]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
Driven by desire, he throws his head back, a deep, carnal moan echoing into the night.
The feel of you, the sensations caused by the creatures within him, all pushing him towards a maddening edge of pleasure.
"More... MORE. MOOOOOOOORE!!!!!" He begs, his voice raspy, echoing deeply around you.
\<<run State.variables.CharacterSheet_Lost_Prisoner.applyAbilityRuntimeData(setup.Ability_NyxParasiteInfection)>>
\<<run State.variables.CharacterSheet_Lost_Prisoner.applyAbilityRuntimeData(setup.Ability_NyxParasiteInfection)>>
\<<run State.variables.CharacterSheet_Lost_Prisoner.applyAbilityRuntimeData(setup.Ability_NyxParasiteInfection)>>
Δ: Ferro's gains the "Nyx Spawn Infection" Ability.
Δ: Ferro's gains the "Nyx Spawn Infection" Ability.
Δ: Ferro's gains the "Nyx Spawn Infection" Ability.
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Infest_11]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
Your repeated thrusts send him spiralling deeper into an abyss of pleasure, each one more potent than the last.
Filled with a chaotic blend of hunger and power, he pulls the other closer, your bodies colliding with each thud of the thrusts.
The further they delve into this frenzied dance of lust, pleasure, and power, the more he loses himself to it.
Every fibre in his body aches for you, yearns for more, for release.
\<<run setup.choice("[[Cum more spawns inside him->Lost_Prisoner_Partner_Infest_12]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
A sudden burst of hot, wriggling life fills him. New spawns have been released into him, each one feeling like an explosive star of pure ecstasy.
There's no room for fear or hesitation this time - he embraces them, welcomes them, and lets them descend upon his being like a rain of transcendental pleasure.
A throbbing, pulsating wave of delight floods him, a tsunami of pleasure that centers on their joining before radiating outwards through every vein and nerve.
\<<run State.variables.CharacterSheet_Lost_Prisoner.applyAbilityRuntimeData(setup.Ability_NyxParasiteInfection)>>
\<<run State.variables.CharacterSheet_Lost_Prisoner.applyAbilityRuntimeData(setup.Ability_NyxParasiteInfection)>>
\<<run State.variables.CharacterSheet_Lost_Prisoner.applyAbilityRuntimeData(setup.Ability_NyxParasiteInfection)>>
\<<run State.variables.CharacterSheet_Lost_Prisoner.applyAbilityRuntimeData(setup.Ability_NyxParasiteInfection)>>
\<<run State.variables.CharacterSheet_Lost_Prisoner.applyAbilityRuntimeData(setup.Ability_NyxParasiteInfection)>>
\<<run State.variables.CharacterSheet_Lost_Prisoner.applyAbilityRuntimeData(setup.Ability_NyxParasiteInfection)>>
\<<run State.variables.CharacterSheet_Lost_Prisoner.applyAbilityRuntimeData(setup.Ability_NyxParasiteInfection)>>
\<<run State.variables.CharacterSheet_Lost_Prisoner.applyAbilityRuntimeData(setup.Ability_NyxParasiteInfection)>>
\<<run State.variables.CharacterSheet_Lost_Prisoner.applyAbilityRuntimeData(setup.Ability_NyxParasiteInfection)>>
\<<run State.variables.CharacterSheet_Lost_Prisoner.applyAbilityRuntimeData(setup.Ability_NyxParasiteInfection)>>
\<<run State.variables.CharacterSheet_Lost_Prisoner.applyAbilityRuntimeData(setup.Ability_NyxParasiteInfection)>>
\<<run State.variables.CharacterSheet_Lost_Prisoner.applyAbilityRuntimeData(setup.Ability_NyxParasiteInfection)>>
Δ: Ferro's gains the "Nyx Spawn Infection" Ability.
Δ: Ferro's gains the "Nyx Spawn Infection" Ability.
Δ: Ferro's gains the "Nyx Spawn Infection" Ability.
Δ: Ferro's gains the "Nyx Spawn Infection" Ability.
Δ: Ferro's gains the "Nyx Spawn Infection" Ability.
Δ: Ferro's gains the "Nyx Spawn Infection" Ability.
Δ: Ferro's gains the "Nyx Spawn Infection" Ability.
Δ: Ferro's gains the "Nyx Spawn Infection" Ability.
Δ: Ferro's gains the "Nyx Spawn Infection" Ability.
Δ: Ferro's gains the "Nyx Spawn Infection" Ability.
Δ: Ferro's gains the "Nyx Spawn Infection" Ability.
Δ: Ferro's gains the "Nyx Spawn Infection" Ability.
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Infest_13]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
His body convulses with overwhelming ecstasy, expanding once again as it's filled with countless wriggling lifeforms.
The sensation of growth is dizzying in its intensity.
His form undergoes a breath-taking transformation in what feels like the blink of an eye.
\<<set $growth = setup.applyGrowth($CharacterSheet_Lost_Prisoner, "muscles", 33)>>
Δ: Ferro's body grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Lost_Prisoner, "height", 33))>> taller.
Δ: Ferro's muscles grow to become <<print setup.getMusclesDescriptor($CharacterSheet_Lost_Prisoner)>>(+$growth).
Δ: Ferro's cock grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Lost_Prisoner, "cock", 20))>> longer.
Δ: Ferro's balls grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Lost_Prisoner, "balls", 17))>> wider.
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Infest_14]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
His once merely impressive muscles are now utterly awe-worthy, pulsating with might that's nothing short of divine.
A Hive Lord, an embodiment of Corruption and power in equal measures.
His mind spins with the new reality, adrift in an ocean of sensory overload.
"Yes... YES!" he roars.
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Infest_15]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
He looks upon you, the source of all this, with amazement.
You have not just gifted him with pleasure but a profound power that holds the potential to reshape everything.
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Infest_16]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<set $CharacterSheet_Lost_Prisoner.quest.tentaclesOut = false>>
Flexing his formidable muscles, his stare never waning from the form before him, he lets out a heady, triumphant roar, filling the desolate wasteland with the sound of his newfound power.
Even as a corrupted Hive Lord, some primal instincts never change.
\<<if $CharacterSheet_Player.info.tags.partnerRecentSex == true>>
Dawn breaks having spent the entire night with your infested partner, feeling your spawn wriggle between the two of you freely.
\<<run setup.addDays(1)>>
<</if>>
\<<set $CharacterSheet_Player.info.tags.partnerRecentSex = true>>
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Menu]]");>>[[Ask what's on his mind->Lost_Prisoner_Partner_Discuss_Apothus]]
\\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
\<<set $CharacterSheet_Lost_Prisoner.quest.available_partnerMenuChoices_discussApothus = false>>
\<<set $CharacterSheet_Lost_Prisoner.quest.available_partnerMenuChoices_findApothus = true>>
You watch your four-armed werewolf partner simmer into fury, his broad features hardening with a ferocity that sets the hairs on your neck at attention.
His focus is miles away, thoughts hovering on a figure that looms mainly in his past - Apothus, his old master.
"This worm... He promised me untold power if I managed to break the Bastion." Ferro grumbles.
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Discuss_Apothus_2]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
His lips curl into a grimace, a grotesque display of sharpened fangs that would have terrified you in the past before you got accustomed to his monstrous appearance.
He turns to you, those eyes burning with fire.
"I remember when he ambushed my tribe, and gave us a taste of Corruption. We quickly succumbed to it."
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Discuss_Apothus_3]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
You watch his four arms clench and unclench, an obvious reflection of the turmoil inside him.
"This power was what we were seeking for years. But Apothus acted like he was the one destined to elevate us."
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Discuss_Apothus_4]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
He hangs his head down low, his shoulders hunching.
You can almost see the vile memories wrapping around him like chains, causing his broad chest to heave.
"Corruption has no master. It's ours to control, always will be."
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Menu]]");>>[[Tease him->Lost_Prisoner_Partner_Sex]]
\\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
He's come to know that enthusiasm on your face, filled with undisguised fascination and a hint of more carnal longings.
Watching you approach, he halts, his large, lupine body still beneath the desert sky looming with night.
Anticipation prickles his hide, his muscles clenching and unclenching beneath your touch.
\<<if $CharacterSheet_Player.info.tags.partnerRecentSex == true>>
Your sex drive is insatiable, your last encounter was mere hours ago, but you know that you can go again through the night.
<</if>>
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Sex_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
Each roaming hand over the waves of his firm abs only stirs a primal urge within him.
Your intrigue and boldness lure him in as no other creature can.
A low growl rumbles deep in his chest, his claws flexing into the scorched earth beneath.
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Sex_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
He raises his four arms, flexing them and showcasing the brute strength they possess.
Each bulging muscle ripples under his gooey skin, a spectacle of power that only you can truly appreciate.
He lowers his gaze to meet the determination in your eyes, acknowledging the strength of your need.
\<<run setup.choice("[[Pull him closer->Lost_Prisoner_Partner_Sex_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
His muscles tighten in expectation, answering the call of your touch.
His impressive cock grows with each teasing stroke of your hands, throbbing against the heat of his body.
The tightness of your legs against him serves only to tease him more.
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Sex_5]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
He sways his body closer to you, his chest brushing against yours, a wet yet satisfying sensation.
He utters a guttural growl, raw need coursing through his veins.
\<<run setup.choice("[[Kiss him->Lost_Prisoner_Partner_Sex_6]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
Your lips meet in a heated, passionate exchange.
The air is thick with rampant desire, and the tension crackles like a live wire.
As your lips part, he takes a moment to savour your taste.
\<<run setup.choice("[[Order him to submit->Lost_Prisoner_Partner_Sex_6_Dom]]");>>
\<<run setup.choice("[[Bend over->Lost_Prisoner_Partner_Sex_6_Sub]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
A primal growl escapes from between his gritted teeth, more animal than sentient being now.
Without any more prodding, he pushes you onto his pulsating cock.
He cradles you against his hardened pectorals.
\<<run setup.choice("[[Beg for more->Lost_Prisoner_Partner_Sex_6_Sub_2]]");>>\<<set $CharacterSheet_Lost_Prisoner.quest.tentaclesOut = true>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
Your plea, raw and carnal, echoes through the air. His body trembles with desire.
He feels an insatiable urge to both claim you completely.
"<<PlayerName>>" he moans, burying his face into your neck and giving a heated nip. His scent mixes with yours.
Moving with renewed vigour, he wraps you tighter in his embrace, his tentacles coiling around your body.
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Sex_6_Sub_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
Each pulsating throb echoes your fervour, each urgent thrust dwindling your restraint.
His hips find a rhythm with yours, encouraging him to go deeper.
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Sex_6_Sub_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
All semblance of control is suddenly lost, and he takes on a primal frenzy.
Every stroke, every pulse, every hard thrust promises a pending climax, a crescendo waiting to crash over you.
With each mounting rise of pleasure, he feels your body tensing against his, your voice matching his growls.
The tension coils tighter, winding you up for an imminent peak.
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Sex_6_Sub_5]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
"Maaaaaate." He growls out amidst your frenetic moans.
A sudden, primal roar rips from his chest, reverberating into the still night air as he succumbs to your shared passion.
It's a triumphant call, a testament to your unique bond.
\<<run setup.choice("[[Cum with him->Lost_Prisoner_Partner_Sex_6_Sub_6]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
Your bodies convulse together, waves of release washing over you, binding you together in a moment that transcends our disparate existences.
He pulls you closer against him, ensuring you feel the full force of his release as he knots you as deep as he can.
\<<run setup.choice("[[Cum with him->Lost_Prisoner_Partner_Sex_6_Sub_7]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
\<<set $CharacterSheet_Lost_Prisoner.quest.tentaclesOut = false>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
Though no words are spoken, the shared heaves of your breathing tell its own story.
You both lie on the desert floor, basking beneath the watchful eyes of the burning sun.
He stretches out his four arms behind him, finding comfort in the arid sand beneath.
Tendrils softly trailing along the length of your spine sends a soft shiver down your back, an intimate language that belongs to only the two of you.
Δ: Ferro's gains the "Apex Predator" Ability.
\<<run State.variables.CharacterSheet_Lost_Prisoner.applyAbilityRuntimeData(setup.Ability_ApexPredator)>>
\<<if $CharacterSheet_Player.info.tags.partnerRecentSex == true>>
Dawn breaks. You realize you have spent the entire night under his comforting gooey mass.
\<<run setup.addDays(1)>>
<</if>>
\<<set $CharacterSheet_Player.info.tags.partnerRecentSex = true>>
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Menu]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
Your command is marked by an insidious power that sends shivers down his spine.
No resistance is met as he relinquishes control, the raw power in your hands stirring corruptive arousal within him.
\<<run setup.choice("[[Fuck him->Lost_Prisoner_Partner_Sex_6_Dom_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
Caught in a moment of reckless abandon, your cock presses upon his entrance, and you push yourself in.
A guttural growl escapes him, a harsh yet gratifying response to your unrelenting assault.
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Sex_6_Dom_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
With each movement, he feels you growing inside him.
The world narrows down to the sensation of your cock buried in his depths, claiming him in ways he has never been taken before.
His claws dig into the sandy terrain beneath you, each breath from his bared fangs cascading onto the nape of your neck.
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Sex_6_Dom_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
The sensation is overpowering, launching him to the brink of the precipice.
The resulting pleasure courses through your veins, wracking his massive form with spasms of ecstasy, every fibrous muscle twitching inches away from release.
Yet you continue to claim him, driving into him with each powerful push.
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Sex_6_Dom_5]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
Each movement sends bolts of pleasure, electrifying him, drawing out an orchestra of primal grunts and roars.
Then, without warning, you lunge forward, delivering one mighty, powerful thrust that pushes you balls deep.
It shakes your connected bodies, lining inner warmth with a final layer of dominant claim.
\<<run setup.choice("[[Cum->Lost_Prisoner_Partner_Sex_6_Dom_6]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
Hot seed floods out, a warm stream that coats his insides.
The sensation reignites the embers of pleasure, making his body tremble anew as the pulsating rhythm of his arousal burns into climax.
Every muscle clenches, a desperate attempt to pull in every last drop of your essence.
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Sex_6_Dom_7]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
The feeling of his warmth triggers a return of the previously dwindling orgasm, and you both shudder under the impact of mutual ecstasy.
The large body of your mate stays lodged around your cock.
Despite the exhausting pulse of pleasure that has your mind spinning, there's something oddly calming about the feeling of being still lodged inside him.
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Sex_6_Dom_8]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
He curls his form around you, locking you together amidst your shared post-coital glow.
He nuzzles into his neck, his breath fanning his skin in small puffs, a steady rhythm that matches the sporadic twitch of your entwined bodies.
A low rumble of contentment rises in his chest and echoes into the silent wasteland around you both.
Δ: You gain the "Apex Predator" Ability.
\<<run State.variables.CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_ApexPredator)>>
\<<if $CharacterSheet_Player.info.tags.partnerRecentSex == true>>
Dawn breaks with him still curled in your arms.
\<<run setup.addDays(1)>>
<</if>>
\<<set $CharacterSheet_Player.info.tags.partnerRecentSex = true>>
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Menu]]");>>[[Ask how to find Apothus->Lost_Prisoner_Partner_Return_To_Apothus]]
\\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
\<<set $CharacterSheet_Lost_Prisoner.quest.available_partnerMenuChoices_findApothus = false>>
You can tell he's thinking about it again - his tribe.
His teeth clenched together as though fighting the visceral urge to lash out.
"Apothus locked me out of our realm and set up some nasty minotaur at its entrance."
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Return_To_Apothus_2]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
The mere thought of being forcefully exiled from his own land, a land that hummed with his essence. It makes his blood boil.
"This coward sent me to the Bastion to kick me out without dealing with the consequences."
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Return_To_Apothus_3]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<set $CharacterSheet_Lost_Prisoner.quest.toldNyxEntrance = true>>
As you watch, the gleaming claws of his multiple hands flex and retract in sync with the rhythm of his wrath.
An eerie and haunting melody that sends chills down your spine, this is no mere displeasure.
It is a deep-seated rage that screams out for retribution.
"I know the way to reach his realm. We can force our way in."
∇: Ferro can now lead you to Nyx's realm.
\<<run setup.choice("[[Continue->Lost_Prisoner_Partner_Menu]]");>>[[Change combat strategy->Lost_Prisoner_Partner_AttackTiming]]
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
"How do you plan to approach the next hunt?"
<<print setup.displayAttackTimingDescription($CharacterSheet_Lost_Prisoner)>>
[[Attack before me->Lost_Prisoner_Partner_Menu][$CharacterSheet_Lost_Prisoner.fight.teammateSettings.attackTiming = setup.AttackTiming.BEFORE_PLAYER]]
[[Attack after me, but before our enemy->Lost_Prisoner_Partner_Menu][$CharacterSheet_Lost_Prisoner.fight.teammateSettings.attackTiming = setup.AttackTiming.BETWEEN_PLAYER_AND_ENEMY]]
[[Attack after me, but after our enemy->Lost_Prisoner_Partner_Menu][$CharacterSheet_Lost_Prisoner.fight.teammateSettings.attackTiming = setup.AttackTiming.AFTER_ENEMY]]
\<<run setup.choice("[[Cancel->Lost_Prisoner_Partner_Menu]]");>>\<<set $CharacterSheet_Swarm.quest.met = true>>
\<<include Swarm_Flavours>>
\<<run $Encounter_Target=$CharacterSheet_Swarm>>
While searching through the wastelands, your ears perk up to a fiendish and gutteral howl.
It was fierce; powerful enough to rattle your ribcage.
The overwhelming presence of this creature could be felt across a massive distance - the aura of a Lost that could only have been birthed from the corrupted seed of your children.
The corrupted <<print setup.getRaceName($CharacterSheet_Swarm)>> <<print setup.processFlavours(
$CharacterSheet_Swarm,
"roars in ecstasy as it catches its master's scent. Soon, a hulking feral monstrosity bounds into view." +
" Black oil drips off of its bulging body, the corrupt colour shimmering across its @[all| heads| a~an]. A @[1| tongues| noverb] hungrily rolls from his mouth as his @[all| cocks| one=hardens~more=hardens] with excitement.\n"
)>>
\<<if setup.sizeCharactercomparison($CharacterSheet_Swarm, $CharacterSheet_Player) > setup.Comparators.BIGGER>>
\<<print setup.getFlavourBasedDescription($CharacterSheet_Swarm, "swarmEncounter", 1, $CharacterSheet_Player)>>
\<<else>>
\<<print setup.getFlavourBasedDescription($CharacterSheet_Player, "swarmEncounter", 1, $CharacterSheet_Swarm)>>
\<</if>>
\<<run setup.choice("[[Go back->Village]]");>>\<<nobr>>
<<run $CharacterSheet_Swarm.addHeightFlavourText(
"swarmEncounter",
1,
"Skidding to a halt in front of you, the towering beast presses its chest down to the floor in a show of respect. Those glistening black eyes would almost pass as cute if " +
"its slavering maw hadn't been the size of your entire body and then some. Your eyes trail downwards as you feel a rush of warm liquid slam against your shins; " +
"you can't help but smile realising how 'excited' he was to see you.\n\nYou scratch his head in approval. Now, what to do?"
)>>
<<run $CharacterSheet_Swarm.addHeightFlavourText(
"swarmEncounter",
2,
"Skidding to a halt in front of you, the gargantuan beast presses its chest down to the floor in a show of respect. You admire the immensity of your beast, his monstrous maw " +
"containing teeth the size of your body. His ever-growing body consumes most of your field of view, pulsating with deliciously bulging muscle. " +
"A torrent of corrupted seed explodes out from behind him, a tidal wave of masculinity! Before you are swept away, " +
"your child's tongue slips from its mouth, wraps around you and holds you still.\n\nYou smile in approval. Now, what to do?"
)>>
<<run $CharacterSheet_Swarm.addHeightFlavourText(
"swarmEncounter",
3,
"Skidding to a halt in front of you, the gargantuan beast presses its chest down to the floor in a show of respect. He is a titan compared to you, the blades of his shoulders rising " +
"high enough into the sky to appear as bulging, growing mountains. His giant mouth alone could be mistaken for the interior of a living cave network. " +
"A flood of corrupted seed erupts from somewhere behind him; a virile sea being forced from his @[all|cocks|noverb]! Before you are swept away, " +
"your child's tongue slips from its mouth and wraps around you before lifting you above the voluminous alabaster sea.\n\nYou smile in approval. Now, what to do?"
)>>
<<run $CharacterSheet_Swarm.addHeightFlavourText(
"swarmEncounter",
4,
"Skidding to a halt in front of you, the gargantuan beast presses its chest down to the floor in a show of respect. The sight is unreal. A beast larger than mountains - so tall " +
"and wide that the entire land around you is caught in its magnificent shadow, is prostrating himself to you. The amount of muscle packed onto its frame billows outwards to an unbelievable " +
"degree; every chord audibly vibrating and creaking like the sound of bending metal. "+
" The ground Shakes. The creature's hot and torrential breath quickens before the sound of a volcano erupting splinters through the ambient noises of growth. " +
"A devastating ocean of virile seed rockets across the land, washing away nearby foliage! Everything and anything it touches is twisted into black versions of its prior self. If living, turning into another one of your new children. " +
" Before you are swept away " +
" your child's tongue slips from its mouth and burrows into the ground beneath you before lifting the hunk of earth upwards and raising you above the voluminous alabaster sea.\n\nYou smile in approval. Now, what to do?"
)>>
<<run $CharacterSheet_Player.addHeightFlavourText(
"swarmEncounter",
1,
"Skidding to a halt in front of you, the towering beast presses its chest down to the floor in a show of respect. Those glistening black eyes would almost pass as cute if " +
"its slavering maw hadn't been the size of your entire body and then some. Your eyes trail downwards as you feel a rush of warm liquid slam against your shins; " +
"you can't help but smile realising how 'excited' he was to see you.\n\nYou scratch his head in approval. Now, what to do?"
)>>
<<run $CharacterSheet_Player.addHeightFlavourText(
"swarmEncounter",
2,
"Skidding to a halt in front of you, the muscular beast presses its chest down to the floor in a show of respect. Glistening eyes stare up at you. "+
"Who knew your hyper muscular child could be so cute? Your eyes trail downwards as you feel a rush of warm liquid slam against your ankles; " +
"you can't help but smile, realising how your presence alone is causing the creature such intense levels of arousal.\n\nYou scratch his head in approval. Now, what to do?"
)>>
<<run $CharacterSheet_Player.addHeightFlavourText(
"swarmEncounter",
3,
"Skidding to a halt in front of you, the muscular beast presses its chest down to the floor in a show of respect. Its pulsating form looks so small in comparison to your "+
"towering figure. Regardless, you can't deny that its prostration was cute.\n\nYour eyes flick to a sudden movement from underneath your pet.\n\nAn explosion of black cum " +
"rockets out from below its hefty bulk and paints the edges of your feet. Its mouth clamps shut, its body shudders and a new wave of growth takes it as your gigantic presence alone " +
"amplifies its arousal by multiple folds. You smile while watching his orgasm chain and intensify for a good ten minutes.\n\nYou scratch his head in approval. " +
"Now, what to do?"
)>>
<<run $CharacterSheet_Player.addHeightFlavourText(
"swarmEncounter",
4,
"Skidding to a halt in front of you, the muscular beast presses its chest down to the floor in a show of respect. Its pulsating form is but a tiny shifting speck of uncontrolled "+
"arousal. Your power, your size, and strength radiates from you with such force that the creature had clearly painted the dunes black with seed in an endless orgasm just trying to reach you. " +
"\n\nCute.\n\nCreaking thunders across the lands as your titanic legs bend. Although your child was small; he easily put everything else in this wasteland to shame. " +
"\n\nYou scratch his head in approval. " +
"Now, what to do?"
)>>
\<</nobr>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "normal")>>
The titan falls to his knees, the sheer weight of his armour is the only thing keeping him from falling over.
"Good, That'll do."
\<<set $CharacterSheet_MQ002_Guard.quest.beaten = true>>
\<<run setup.choice("[[Continue->Quest_MQ002_Entrance_PlayerWins_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "normal")>>
He helps himself up with his axe, and walks towards the gate.
"Follow me, and be mindful of the black sun above. It's power will be completely unfiltered beyond that point."
\<<run setup.choice("[[Continue->Quest_MQ002_Entrance_PlayerWins_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "blushing")>>
The minotaur pushes the gate open and instantly shivers in sudden pleasure.
"Ghhh... Keep it together." He mumbles as a strange purple glow floods out of the doors.
He quickly slides through the massive gate like he is trying to prevent the light from spilling outside.
\<<run setup.choice("[[Continue->Quest_MQ002_Entrance_NoGuard]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "angry")>>
You try to stay up but the minotaur is too powerful to handle.
With an unceremonious thud, you fall down on your back.
The minotaur could strike you down at any moment, but instead, he kneels.
\<<run setup.choice("[[Continue->Quest_MQ002_Entrance_PlayerLoses_1]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "normal")>>
"Leave now before things get worse."
\<<run setup.choice("[[Leave->Village]]");>>\<<set $CharacterSheet_MQ002_NyxParasite.quest.met = true>>
<<print setup.getFightStartPassages($CharacterSheet_MQ002_NyxParasite)>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "purple")>>
\<<set $CharacterSheet_Player.quest.capturedNyxSpawn = true>>
You look down upon the powerless spawn lying before you.
It lies, unmoving, if there's any moment to capture it, it would be now.
\<<run setup.choice("[[Continue->Quest_MQ002_NyxParasiteEncounter_Capture_2]]");>>You quickly grasp the spawn by the tail and seal it in a tight flask.
With it's head stuck in the bottom, it's hard to imagine it could wiggle out of there.
∇: You now carry a spawn of Nyx with you.
\<<print setup.clearWestWingRoom("WestWing_NyxSpawnFight")>>
<<print setup.getNextManorDestination()>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "purple")>>
The <<print setup.getLength(setup.getStatValue($CharacterSheet_MQ002_NyxParasite, "height"))>> spawn falls flat on the ground.
Stuck in a dead-end, it has nowhere to go.
\<<if $CharacterSheet_Player.quest.capturedNyxSpawn == false>>
\<<run setup.choice("[[Capture It->Quest_MQ002_NyxParasiteEncounter_Capture]]");>>
\<<endif>>
\<<if $CharacterSheet_Player.quest.nyxParasiteInfections <= 0>>
\<<run setup.choice("[[Kill it->Quest_MQ002_NyxParasiteEncounter_KillIt]]");>>
\<<else>>
<span class="glitch nyx fucked" data-text="DO NOT̷͓̱͎̘̞̣͎̗̙̦̲͔͒͛͑̋̔̊̀͑̔͒͆̚̚͜͝͠͝͝ͅ">[[Kill it->Quest_MQ002_NyxParasiteEncounter_KillIt]]</span>
\<<endif>>
\<<run setup.choice("[[Let it enter you->Quest_MQ002_NyxParasiteEncounter_ConsentualInfest]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "purple")>>
\<<if $CharacterSheet_Player.quest.nyxParasiteInfections <= 0>>
You look down upon the powerless spawn lying before you. You could kill it, right here and now. But something is stopping you.
The pleasure you felt when it bit you, it throbs within you more than ever. Who knows how pleasurable it will be if you fully let it take you?
Can it truly be called a parasite if you yearn its influence?
\<<else>>
Your brain throbs at the sight of the wounded spawn. You could never bring yourself to kill it.
Not when it could bring you so much...
\<</if>>
You step towards it, openly presenting and rubbing your <<print setup.getLength(setup.getStatValue($CharacterSheet_Player, "cock"))>> cock, letting it taste your arousal as you lick your lips eagerly.
\<<set $NyxParasiteEncounter_Won = true>>
\<<run setup.choice("[[Continue->Quest_MQ002_NyxParasiteEncounter_Infection]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "pink")>>
It crawls towards you with newfound vitality; you soon feel the wet spawn slither up along your legs.
\<<if $NyxParasiteEncounter_Won>>
Quickly, it reaches your chest and stands inches from your mouth, like it was waiting for you to let it in.
You gaze at its featureless form and grin, opening your mouth wide open.
It jumps at the opportunity; your whole body shivers as you taste the oily substance all over its skin.
It is a powerful aphrodisiac. You moan as it pushes deeper. Its body is feeling thicker around your mouth.
Your head lurches back as you rub your hard cock with both hands.
\<<else>>
Quickly, it reaches your chest and stands inches from your mouth, like a tiger about to pounce on its prey.
You gaze at its featureless form and can't stop yourself from gasping in terror.
It jumps at the opportunity; your whole body shivers as you taste the oily substance all over its skin.
It is a powerful aphrodisiac.
Your already exhausted body nearly gives up to the arousal that spikes within you.
Its body quickly feels thicker around your mouth as it crawls in.
\<</if>>
\<<run setup.choice("[[Continue->Quest_MQ002_NyxParasiteEncounter_Infection_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "pink")>>
Your moans are blocked by the monster rushing down your throat. You feel it flick its tail to slide down further inside you.
Soon you feel a hardness build along your waist. It crawls and slowly intrudes your nutsack; your balls bathe in its aphrodisiac oil.
You rub them experimentally; this is almost enough to make you cum on the spot.
They are growing sensitive beyond what is humanly possible, and the constant pressure makes the pulsate wildly.
You slurp on the last bit of the spawn's tail and moan while licking the oil around your lips.
\<<run setup.choice("[[Continue->Quest_MQ002_NyxParasiteEncounter_Infection_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "pink")>>
\<<if $CharacterSheet_Player.quest.nyxParasiteInfections <= 0>>
You rub your balls once more. You are not sure what the spawn is doing to them, but they are changing.
\<<else>>
You remember this feeling well, you rub and moan as your balls grow once again.
\<</if>>
You feel your balls grow. They absorb the aphrodisiac oil of the spawn like a sponge in water.
You rub them hard; every touch now sends bolts of pleasure all over your body.
\<<run setup.choice("[[Continue->Quest_MQ002_NyxParasiteEncounter_Infection_3_1]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "red")>>
The spawn gorges on your incoming load, yet the pressure is becoming too much to bear.
It grows in size, filling your balls even more. The sheer magnitude of your load is too much for the spawn as well.
You lurch your head back and scream as your swelled cock erupts like a fountain, litres and litres of cum jets out of your engorged balls, covering the hallway.
Your screams of utter ecstasy continue for minutes on end.
\<<run setup.choice("[[Continue->Quest_MQ002_NyxParasiteEncounter_Infection_4]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "purple")>>
The hunger of the spawn keeps your arousal at an all-time high.
But it feels like this wasn't the only thing that changed within you.
\<<if $CharacterSheet_Player.quest.nyxParasiteInfections <= 0>>
You feel an urge to spread this gift for yourself as well.
\<<else>>
With more spawns inside you, the urge to spread grows even stronger.
\<</if>>
∇: You gain 8 corruption.
\<<run setup.applyCorruption($CharacterSheet_Player, 8)>>
\<<run setup.MQ002_AddNyxParasiteInfection()>>
∇: You gain the "Nyx Spawn Infection" Ability.
\
\<<print setup.clearWestWingRoom("WestWing_NyxSpawnFight")>>
<<print setup.getNextManorDestination()>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "blue")>>
As soon as you see it fall, you rush towards it to deliver the final blow.
You stomp on the spawn over and over again, fear and adrenaline guiding you instinctively.
Groans of efforts echo along the hall as you keep going for as long as your body allows you to.
High pitched screams soon melt into wet splashes; its body convulses without intent.
You pant and take a few steps back.
The gruesome sight of the dead spawn almost makes you sick.
You hold your breath and move to the door at the end of the hall.
Your eyes stay glued to the monster's corpse, in case it suddenly springs back to life.
\<<print setup.clearWestWingRoom("WestWing_NyxSpawnFight")>>
<<print setup.getNextManorDestination()>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "purple")>>
As you see the spawn crawl hungrily towards you, you crumble.
You only have a few seconds to react before it reaches you
\<<run setup.choice("[[Submit to the spawn->Quest_MQ002_NyxParasiteEncounter_Submit]]");>>
\<<if $CharacterSheet_Player.quest.nyxParasiteInfections <= 0>>
\<<run setup.choice("[[Escape->Quest_MQ002_NyxParasiteEncounter_Escape]]");>>
\<<else>>
<span class="glitch nyx fucked" data-text="DO NOT̷͓̱͎̘̞̣͎̗̙̦̲͔͒͛͑̋̔̊̀͑̔͒͆̚̚͜͝͠͝͝ͅ">[[Escape->Quest_MQ002_NyxParasiteEncounter_Escape]]</span>
\<<endif>>\<<set $NyxParasiteEncounter_Won = false>>
The door you came from lays a few feet behind you, but an overpowering mixture of exhaustion and aroused curiosity keeps you on your knees.
<<include Quest_MQ002_NyxParasiteEncounter_Infection>>Your body is about to give up, but the sheer terror of seeing this spawn crawl towards you gives you a second wind.
You turn your back to the monster and scream, the door is only a few feet away...
Without second thoughts, you hurl yourself back to the room you came from and force the door close with the little energy you have left.
You pant and expect the worst, but the monster does not seem to take chase.
<<print setup.getNextManorDestination()>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/Barrens/northernbarrens.jpg", undefined, undefined, true)>>
You travel through a wasteland of rusted iron covered by sand. It must have been an industrial complex at some point, but it's hard to tell.
Its purpose is long lost, but salvagers are known to take and reuse pieces of these ruins for themselves.
\<<run setup.choice("[[Continue->Shard_Ring_Intro_2]]");>><<include setup.getNextNarativeEventPassage(setup.StorySheet_Shard_Ring.postFightPassagesWin)>><<include setup.getNextNarativeEventPassage(setup.StorySheet_Shard_Ring.postFightPassagesLoss)>>You pick your way through the debris and rubble that litters the ground.
The only sound you can perceive is the crunch of your feet on the gravel and the occasional rustle of rats in the undergrowth.
You keep your head down and your eyes peeled for any signs of life.
\<<run setup.choice("[[Continue->Shard_Ring_Intro_3]]");>>Suddenly, you feel the air thicken. It's like a storm is brewing.
A strong wind of Essence builds in the air, one that rushes through you and fills you with energy.
<<include setup.getNextNarativeEventPassage(setup.StorySheet_Shard_Ring.encounterIntro)>>You catch a glimpse of a familiar ring floating in the air.
It spins and begins to glow with a soft green light. And then, as if drawn by an invisible hand, it begins to move towards you.
<span class='bind1'>"I've been waiting for you."</span> <span class='bind2'>"I've missed you."</span>
\<<run setup.choice("[[Continue->Shard_Ring_LowScoring_Intro_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "normal")>>
You feel heat radiate from it as it gets closer, as the air thickens with Essence.
<span class='bind1'>"You are a fierce opponent."</span> <span class='bind2'>"one that can make me burst with Essence once more."</span>
<<print setup.getFightStartPassages($CharacterSheet_Shard_Ring)>>Your cock ring is cold to the touch, but it sends a warm shiver up your spine nonetheless.
You feel the spirit within quake with excitement.
It can taste the Essence building around you and makes your cock harder than ever.
The ring shifts, becoming slightly ethereal and translucent.
\<<run setup.choice("[[Continue->Shard_Ring_FullDom_Intro_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "normal")>>
It starts to move on its own, swirling around your cock and sending shivers up your spine.
<span class='bind1'>"It's been too long since I last manifested."</span> <span class='bind2'>"You look great from here."</span>
The cock ring morphs and warps as it gathers the Essence in the air, turning into the ghostly humanoid form you know and love.
<span class='bind1'>"How about a spar?"</span> <span class='bind2'>"I've been yearning to feel your power for myself."</span>
<<print setup.getFightStartPassages($CharacterSheet_Shard_Ring)>>The collar suddenly grows warmer, the constant reminder of your submission bursting with life. You feel the spirit within quake with excitement.
He can taste the Essence building around you, making your cock harder than ever.
You feel the ring shift, becoming slightly ethereal and translucent. Then it starts to move on its own, swirling around your neck and sending shivers up your spine.
Part of you feels left out as it detaches from your neck, but you know that seeing your master will make it all worth it.
\<<run setup.choice("[[Continue->Shard_Ring_FullSub_Intro_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "normal")>>
<span class='bind1'>"Show me what you can do."</span> <span class='bind2'>"Let the Gods witness our might."</span>
Your master wants to see your powers, and you feel compelled to show him.
<<print setup.getFightStartPassages($CharacterSheet_Shard_Ring)>>You turn in the direction of this powerful breeze, and your gaze catches a glowing metallic object buried under some scraps.
\<<run setup.choice("[[Continue->Shard_Ring_FirstMeeting_Intro_1]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/bind_ring_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/bind_ring.jpg", undefined, true)>>
It looks like an old ring, glowing in bright, viridian green.
\<<run setup.choice("[[Dig it out->Shard_Ring_FirstMeeting_Intro_2]]");>>
\<<run setup.choice("[[Leave it be->Village]]");>>\<<if setup.getStatValue($CharacterSheet_Player, "strength") > 20>>
You give the ring a closer look and manage to grasp it from under the rubble.
It is buried under quite a bit of debris, and it takes a lot effort to retrieve.
But with a strong tug, you manage to free it from the mountain of scraps above it.
\<<run setup.choice("[[Continue->Shard_Ring_FirstMeeting_Intro_3]]");>>
\<<else>>
You attempt to dig it out and take a closer look.
However with each attempt to tug it free, the ring appears to bury itself deeper.
It seems that you do not have the strength to pull it out for now.
<<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/bind_ring_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/bind_ring.jpg", undefined, true)>>
\<<run setup.choice("[[Leave it be->Village]]");>>
\<</if>>\<<set $CharacterSheet_Shard_Ring.info.known = setup.EncounterKnownState.KNOWN>>
\<<set $CharacterSheet_Shard_Ring.quest.unearthed = true>>
Your hand suddenly recoils back by instinct as if the ring were burning hot, yet you only felt a cool, glassy surface.
It falls to the ground, but never makes impact, continuing to glow and hovering a few inches above the sand.
\<<run setup.choice("[[Continue->Shard_Ring_FirstMeeting_Intro_4]]");>>Suddenly, it rises to the height of your chest.
Green runes pulse across the ring's surface with the rhythm of a beating heart.
It hovers and shakes, condensing the Essence in the air to form sounds in the wind.
You take a careful stance and are ready for anything.
\<<run setup.choice("[[Continue->Shard_Ring_FirstMeeting_Intro_4_1]]");>>A voice burst forth from all around you.
<span class='bind1'>"WARRIOR!"</span>
You watch more Essence rise from the ruins below and rush towards the ring.
<span class='bind1'>"YOUR STRENGTH HAS GROWN ENOUGH FOR YOU TO CALL ME FORTH."</span>
The presence around the ring shakes as a growing mist builds within its center. Its glow becomes nearly blinding, the brilliant green light shimmering, energy crackling through the air.
\<<run setup.choice("[[Continue->Shard_Ring_FirstMeeting_Intro_5]]");>>You notice a figure materializing from the light, transparent at first, but gradually more of its features become apparent.
It is muscular and well-defined, with a broad chest and powerful arms.
A rugged face forms atop this warrior's body, one with a long scar that goes from his left eye to his mouth.
He has no hair, and his eyes seem to shimmer with an inner light, the same green color of the ring's aura.
\<<run setup.choice("[[Continue->Shard_Ring_FirstMeeting_Intro_6]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "angry")>>
He seems almost solid as if it could reach out and touch you.
With a voice that seems to come from every direction, he exclaims:
<span class='bind1'>"ONLY A STRONG WARRIOR CAN GIVE ME WHAT I SEEK."</span> <span class='bind2'>"If you would so kindly oblige to help."</span>
\<<run setup.choice("[[Continue->Shard_Ring_FirstMeeting_Intro_7]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "normal")>>
With an unblinking gaze, his knees bend slightly, sending a gust of Essence around him. His fists are clenched, and he seems ready to fight.
<span class='bind1'>"Essence is what I yearn for. And the passion of us warriors clashing, that is what harnesses it."</span> <span class='bind2'>"I've been yearning for it for so long."</span>
<<print setup.getFightStartPassages($CharacterSheet_Shard_Ring)>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "normal")>>
\
The spirit let out a final, thunderous cough.
A thick, green mist spews forth from his mouth, filling the air with an eerie, otherworldly glow.
It swirls and eddies around him before finally dissipating into his body.
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Idle_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "happy")>>
\
Suddenly, the ghostly figure bends on one knee in respect, and you feel a sudden chill run down your spine.
<span class='bind1'>"YOU..."</span> <span class='bind2'>"You are worthy of my powers."</span>
The Essence in the air seems to drift towards you, slowly infusing your body with strength and vitality.
He gets up and slowly steps closer.
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Idle_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "angry")>>
\
<span class='bind1'>"I HAVE BEEN WORSHIPED BY COUNTLESS WARRIORS"</span> <span class='bind2'>"and have worshiped countless more."</span>
As he gets closer, you start to feel a tingling sensation all over your body.
You can feel your body harden and pulse with desire.
<span class='bind1'>"WHERE DOES YOUR HEART STAND?"</span> <span class='bind2'>"I will bestow power where you wish it most."</span>
[[Say you yearn to be dominant->Shard_Ring_Win_Dominant_Idle]]
[[Say you yearn to be submissive->ShardRing_Win_Sub_Idle]]
[[Leave->Village]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "normal")>>
\
The spirit looks down at you. His eyes are cold, and its mouth is set in a grim line.
You can see some regret in its eyes.
<span class='bind1'>"Keep fighting, warrior, for as long as you are willing to grow in strength."</span> <span class='bind2'>"I will be waiting."</span>
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Loss_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "normal")>>
\
The ring fades away into nothingness, becoming less and less visible until it finally disappears.
Whatever energy or focus it needed to stay whole is now gone.
You slowly stand up and leave the ruins empty-handed.
\<<run setup.choice("[[Leave->Village]]");>>\<<set $CharacterSheet_Shard_Ring.quest.relationshipScoring++>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "angry")>>
\
The spirit grins at you, eyeing you up and down in a confidant gaze.
<span class='bind1'>"YES... YOU ARE BOUND TO BRING PLEASURE TO COUNTLESS OTHERS."</span> <span class='bind2'>"Make them all beg for more."</span>
He grasps your shaft, cutting your breath short as an intense warmth radiates into it.
\<<run setup.choice("[[Continue->Shard_Ring_Win_Dominant_Idle_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "normal")>>
\
<span class='bind1'>"TO BE DOMINANT IS TO BE A SHEPHERD OF PLEASURE, TO SHOW BOUNDLESS MASCULINITY TO ALL WHO YEARN FOR YOU."</span> <span class='bind2'>"You'll take so much Essence within you."</span>
Your cock throbs as you thrust into his warm ethereal hands.
He gets closer and bends down slightly, guiding your cock to push between his pecs.
<span class='bind1'>"GROW, DEAR WARRIOR."</span> <span class='bind2'>"BECOME A TITAN."</span>
You blink, and he is suddenly bending down in front of you. Your cock is pressing hard against his cheeks and angrily throbs with anticipation.
\<<run setup.choice("[[Fuck him->Shard_Ring_Win_Dominant_Idle_3]]");>>\<<set State.variables.CharacterSheet_Shard_Ring.quest.cockOut = true>>
\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring","CharacterSheet_Player"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "angry")>>
\
You feel the warmth of his strangely smooth skin flush against the head of your dick, then thrust in.
<span class='bind1'>"GRRRRRRAHHHHHHH!"</span>
His whole body lights up, his lust burning bright enough to heat him up.
He can't help but moan for more, making you want to fuck him even harder.
\<<run setup.choice("[[Fuck him harder->Shard_Ring_Win_Dominant_Idle_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring","CharacterSheet_Player"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "aroused")>>
\
You swell with a sense of power, a burning flame of pleasure that feeds on his desperate moans. Precum squirts out of his cock in response.
Your cock begins to absorb the overflow of Essence building within him; It grows and pulses as your thrust stretch the limits of what the spirit can hold.
∇: Your cock has grown <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "cock", 1))>> longer.
But you give him more.
\<<run setup.choice("[[Thrust balls deep into him->Shard_Ring_Win_Dominant_Idle_5]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring","CharacterSheet_Player"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "worried")>>
\
He wants to feel a warrior's might, so you grant him his wish.
You thrust balls deep within him with a grin that brings him over the edge.
<span class='bind1'>"OH GODS..."</span>
\<<run setup.choice("[[Cum->Shard_Ring_Win_Dominant_Idle_6]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring","CharacterSheet_Player"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "worried")>>
\
You cum deep within him and roar in pleasure, shattering your limits as a torrent of potent seed bursts within him.
His gut expands with every spurt, and you hold him tightly against you to make sure he takes it all.
<span class='bind1'>"Ahhhh... Ahhhhh. AHHHHHHHH!"</span>
\<<run setup.choice("[[Continue->Shard_Ring_Win_Dominant_Idle_7]]");>><<include setup.getNextNarativeEventPassage(setup.StorySheet_Shard_Ring.dominantExit)>>\<<run setup.stopRealizationPackages(["CharacterSheet_Shard_Ring", "CharacterSheet_Player"]);>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "worried")>>
\
His load spurts out in tandem with yours to build a monstrous mess in the area around you.
With each shot of glowing green cum, you feel his form dissipate in the thick fog of Essence that now fills the air.
His focus is long gone, and you now stand alone in the Barrens once again.
You look down and grin in approval. Your cock has grown through this experience.
∇: Your cock has grown <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "cock", 1))>> longer.
∇: The Bind considers you more dominant.
\<<run setup.choice("[[Leave->Village]]");>>The spirit grins at you, eyeing you up and down in a confidant gaze.
<span class='bind1'>"I FEEL YOUR CONFIDENCE."</span> <span class='bind2'>"The sheer weight of your presence."</span>
Your attitude is inspiring him, leading him to a greater sense of self.
A wave of Essence courses through the air, drawn to the ethereal being.
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Dominant_FirstTF_2]]");>>With a gentle yet commanding touch, it draws it into himself, igniting his core with glowing green flames.
He embraces your dominance, reveling in the intoxicating sensation of becoming a confident, muscular beast.
His once slender neck grows thicker and more powerful. Veins trace a mesmerizing pattern across its surface, coursing an otherworldly energy that fuels the creature's transformation.
<span class='bind1'>"GRRRRRRR. MORE!"</span> <span class='bind2'>"Gods yes!"</span>
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Dominant_FirstTF_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring","CharacterSheet_Player"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "angry")>>
\<<set State.variables.CharacterSheet_Shard_Ring.quest.available_postFightPassagesWin_firstTF = false>>
Each of his deltoid swell with power, greatly widening his frame as he growls.
Their sculpted contours bulge out until they fight for space.
His growth suddenly accelerates, biceps balloon in size, flexing with an impressive display of strength.
Forearms ripple with coiling muscles, bulging his arms and giving him a grip strong enough to shatter steel.
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Dominant_FirstTF_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring","CharacterSheet_Player"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "worried")>>
Ghostly skin clings tightly to his growing limbs, showcasing the intricate network of veins pulsating with otherworldly power.
<span class='bind1'>"MORE! MORE! GIVE IT TO ME!"</span> <span class='bind2'>"Gaaaaahhhhh"</span>
Suddenly, his pectorals swell and harden. The rise and fall of each breath sending ripples of growth through his muscular expanse of a chest.
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Dominant_FirstTF_5]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring","CharacterSheet_Player"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "angry")>>
<span class='bind1'>"BIGGERRRRR!!!!"</span> <span class='bind2'>"MHHHHHHH"</span>
The transformation extends to the entity's core, where muscles emerge like chiseled ridges.
One at a time, rows of deep, hard abs bulge out of his midsection, inviting worshippers to explore their curvy depths.
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Dominant_FirstTF_6]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring","CharacterSheet_Player"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "aroused")>>
His transformation, muscle by muscle, has built a commanding presence and an undeniable aura of dominance.
Yet he knows that you're the one in charge, the dominant beast who bestowed his power upon him.
He turns around and flexes his monstrous back, inviting you in.
<span class='bind1'>"TAKE WHAT'S YOURS, YOU BEAST."</span> <span class='bind2'>"I'm yours..."</span>
\<<run setup.choice("[[Fuck him->Shard_Ring_Win_Dominant_Idle_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring","CharacterSheet_Player"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "worried")>>
His tight hole grips your cock as you thrust in and out of him; the sensation is unbelievable.
You can feel every inch of you inside him, which makes you even more aroused.
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Dominant_Final_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring","CharacterSheet_Player"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "aroused")>>
\
Your cock once again becomes fully erect and starts to leak.
The spirit is moaning in pleasure, and you can tell he's enjoying it just as much as you are.
<span class='bind1'>"I want this to go on. To always feel your godlike cock within me."</span> <span class='bind2'>"pleeeeeease~"</span>
\<<run setup.choice("[[Give him another thrust->Shard_Ring_Low_Rela_Win_Dominant_Final_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring","CharacterSheet_Player"], 2)>>
\<<set State.variables.CharacterSheet_Shard_Ring.quest.cockOut = true>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "aroused")>>
\
It feels as if he is melting on your cock.
His Essence hardens around your shaft, molding itself to your contours and providing an exhilarating sensation as you thrust into him.
The spirit moans as he's filled with your cock, his translucent body trembling with ecstasy.
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Dominant_Final_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring","CharacterSheet_Player"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "worried")>>
You feel power gather around him, binding to his soul as he fully gives in to your dominant might.
His body is changing once more...
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Dominant_Final_4_1]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring","CharacterSheet_Player"], 3)>>
\<<set State.variables.CharacterSheet_Shard_Ring.quest.fullDom = true>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "aroused")>>
His chest expands outward, its pectoral muscles stretching to mammoth proportions. The once-defined pecs now resemble formidable boulders, each curve and crevice accentuating the sheer magnitude of the creature's might.
With every breath, his colossal chest rises and falls, exuding an air of indomitable power.
The muscular wrecking balls devour space under his chin with each pulse of growth, consuming it all and turning it with raw, powerful flesh.
<span class='bind1'>"THIS IS IT! MY FULL POTENTIAL"</span> <span class='bind2'>"Give it to me!"</span>
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Dominant_Final_4_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring","CharacterSheet_Player"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "normal")>>
Simultaneously, the entity's back broadens, transforming into a labyrinth of sculpted muscle.
Each vertebra seems to stack upon the other. The muscles flow across the entity's back like a chiseled landscape, seemingly capable of supporting the weight of worlds.
His thighs thicken and grow, becoming massive pillars of might.
Each quadricep muscle swells to gargantuan proportions, pulsating with an otherworldly power.
<span class='bind1'>"GIVE ME MORE!! MOOOOOOORE!"</span> <span class='bind2'>"Mmgfh! Hnngh!"</span>
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Dominant_Final_4_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring","CharacterSheet_Player"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "happy")>>
You then feel his calves expand, becoming formidable columns of muscle. Each calf muscle appears as if carved from stone, flexing and contracting with every step.
The entity's lower legs now exude a sense of unbreakable stability.
The green ghostly entity gradually transcends the boundaries of his previous size, becoming an awe-inspiring, unnatural colossus.
<span class='bind1'>"MOOOOOOOOOOOOORE!"</span> <span class='bind2'>"MOOOOOOOOOOOOORE!"</span>
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Dominant_Final_4_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring","CharacterSheet_Player"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "aroused")>>
He shudders and clings to you tightly, his body pulsing around your cock as he cums again.
<span class='bind1'>"Ahhhh...!"</span> He whines, clinging to you as his body trembles with pleasure.
The ghostly form begins to take shape around your cock, moulding himself to your every contour. You can feel the spirit's energy entering you, making your cock harder than before.
The spirit slowly becomes a large metallic cock ring as you cum load after load.
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Dominant_Final_5]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Shard_Ring", "CharacterSheet_Player"]);>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "happy")>>
\
You feel its warmth pulse all over your shaft, keeping it rigid and throbbing with lust.
<span class='bind1'>"YESSSSS."</span> <span class='bind2'>"Let's find some warriors to dominate~."</span>
∇: Your cock has grown <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "cock", 4))>> longer.
∇: You gain the "Cock Ring of the Bind" Ability.
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_CockRingOfTheBind)>>
\<<run setup.completeAchievement("Achievement_CockRingOfTheBind");>>
\<<run setup.choice("[[Leave->Village]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Shard_Ring", "CharacterSheet_Player"]);>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "aroused")>>
His tight hole is gripping your cock tightly as you thrust in and out of him.
You can feel every inch of him inside you, which makes you even more aroused.
<span class='bind1'>"I never want this to end."</span> <span class='bind2'>"Gods, being your cock ring is the highest honor."</span>
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Dominant_Idle_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "aroused")>>
\
Your cock once again becomes fully erect and starts to leak.
<span class='bind1'>"I want this to go on. To always feel your godlike cock within me."</span> <span class='bind2'>"pleeeeeease~"</span>
It feels as if he is melting on your cock.
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Dominant_Idle_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "worried")>>
\
His ectoplasm hardens around your cock, moulding itself to your contours and providing an exhilarating sensation as you thrust into him.
He shudders and clings to you tightly, his body pulsing around your cock as he cums.
You feel its warmth pulse all over your shaft, keeping it rigid and throbbing with lust.
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Dominant_Idle_4]]");>>He slowly turns back into your cock ring, except it feels bigger and heavier than before.
<span class='bind1'>"I'm yours..."</span> <span class='bind2'>"All yours..."</span>
∇: Your cock has grown <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "cock", 4))>> longer.
∇: Your "Cock Ring of the Bind" Ability is now stronger.
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_CockRingOfTheBind)>>
\<<run setup.choice("[[Leave->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "normal")>>
\
The spirit looks down at you. His eyes are cold, and its mouth is set in a grim line.
You can see some regret in its eyes.
<span class='bind1'>"Seems you've lost"</span> <span class='bind2'>"that can't be right."</span>
With a blink, the ghost vanishes from your sight, but you feel the familiar pressure of your cock ring building on your shaft again.
The green runes across the ring pulse softly, without the usual bright intensity.
\<<run setup.choice("[[Leave->Village]]");>>\<<set $CharacterSheet_Shard_Ring.quest.relationshipScoring-->>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "normal")>>
\
The spirit gives you a slight smile, eyeing you up and down in a confidant gaze.
<span class='bind1'>"HMMMM YES... OTHER'S GIFTS ARE YOURS TO EXPERIENCE."</span> <span class='bind2'>"You shall be blessed with raw pleasure."</span>
\<<run setup.choice("[[Continue->ShardRing_Win_Sub_Idle_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "happy")>>
\
The spirit approaches you, his eyes alight with hunger. As his hands reach for you, you can feel the warmth emanating from his ethereal form.
Electrifying fingers trace the lines of your body, and you shiver in response.
The touch of the spirit is strangely intoxicating, and you find yourself wanting more.
\<<run setup.choice("[[Continue->ShardRing_Win_Sub_Idle_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring", "CharacterSheet_Player"], 1)>>
\<<set State.variables.CharacterSheet_Shard_Ring.quest.cockOut = true>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "aroused")>>
The spirit presses you against him. You can feel the need pulsing within him, and you are not afraid.
There is an undeniable allure to whatever this spirit has to offer.
His ghostly mouth descends on yours, and you are lost in a fiery kiss.
\<<run setup.choice("[[Kiss Back->ShardRing_Win_Sub_Idle_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring", "CharacterSheet_Player"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "aroused")>>
\
Your body responds to the spirit and melts into it. The kiss deepens, and you are pulled into a whirling vortex of pleasure.
You feel his hot breath on your neck and shiver as his tongue runs up and down your skin.
You're completely helpless as the spirit continues to explore your body, his hands roaming over your skin, sending chills down your spine.
\<<run setup.choice("[[Take a deep breath->ShardRing_Win_Sub_Idle_5]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring", "CharacterSheet_Player"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "worried")>>
The musk radiating from him suddenly strikes you, and your cock instinctively spurts a small blast of pre.
You both become overwhelmed in lust through the intoxicating Essence thickening around you.
The spirit feels an intense need to breed, only worsened by your arousal.
<span class='bind1'>"MOAN FOR ME..."</span>
\<<run setup.choice("[[Moan->ShardRing_Win_Sub_Idle_6]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring", "CharacterSheet_Player"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "aroused")>>
\
His whole body is boiling with lust, and he can't contain it anymore.
The spirit's demanding tone devolves into orgasmic growls as you overwhelm him with pleasure.
Sparing the formalities, he quickly shoves his cock inside you and unleashes a long, drawn-out moan.
\<<run setup.choice("[[Continue->ShardRing_Win_Sub_Idle_6_1]]");>><<include setup.getNextNarativeEventPassage(setup.StorySheet_Shard_Ring.subExit)>>\<<run setup.choice("[[Beg for more->Shard_Ring_Low_Rela_Win_Sub_LowRelaExit]]");>>
<span class = 'inactive'>[[Give yourself up to him->Village]] (The Bind still feels some restraint within you.)</span>\<<run setup.choice("[[Beg for more->Shard_Ring_Low_Rela_Win_Sub_LowRelaExit]]");>>
\<<run setup.choice("[[Give yourself up to him->Shard_Ring_Low_Rela_Win_Sub_FinalExitChoice_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring", "CharacterSheet_Player"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "worried")>>
\
He roars and cums, grasping your neck hard enough for the Essence to burn against your skin.
His load spurts out in tandem with yours to build a monstrous mess in the area around you.
With each shot of glowing green cum, you feel his form dissipate in the thick fog of Essence that now fills the air.
The ring and its spirit have disappeared from the area.
∇: The Bind's cock has grown <<print setup.getLength(setup.applyGrowth($CharacterSheet_Shard_Ring, "cock", 1))>> longer.
∇: The Bind considers you more submissive.
\<<run setup.choice("[[Leave->Village]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring", "CharacterSheet_Player"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "aroused")>>
With a gentle yet demanding touch, it draws it into himself, igniting his core with glowing green flames.
He embraces your submissiveness, revels in the intoxicating sensation of becoming a yearning, muscular slut.
<span class='bind1'>"HMMMMM... YES!"</span> <span class='bind2'>"Gods yes!"</span>
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Submissive_FirstTF_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring", "CharacterSheet_Player"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "angry")>>
\<<set State.variables.CharacterSheet_Shard_Ring.quest.available_postFightPassagesWin_firstTF = false>>
His once slender neck grows thicker and more powerful. Veins trace a mesmerizing pattern across its surface, coursing an otherworldly energy that fuels the creature's transformation.
Each of his deltoid swell with power, greatly widening his frame as he growls. Their sculpted contours bulge out until they fight for space.
His growth suddenly accelerates, biceps balloon in size, flexing with an impressive display of strength.
Forearms ripple with coiling muscles, bulging his arms and giving him a grip strong enough to shatter steel.
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Submissive_FirstTF_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring", "CharacterSheet_Player"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "worried")>>
<span class='bind1'>"GAHHHHH..."</span> <span class='bind2'>"Turning into a b-beast!"</span>
Ghostly skin clings tightly to his growing limbs, showcasing the intricate network of veins pulsating with otherworldly power.
Suddenly, his pectorals swell and harden. The rise and fall of each breath sending ripples of growth through his muscular expanse of a chest.
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Submissive_FirstTF_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring", "CharacterSheet_Player"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "angry")>>
<span class='bind1'>"GIVE ME MORE!"</span> <span class='bind2'>"MHHHHHHH"</span>
The transformation extends to the entity's core, where muscles emerge like chiseled ridges.
One at a time, rows of deep, hard abs bulge out of his midsection, inviting worshippers to explore their curvy depths.
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Submissive_FirstTF_5]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring", "CharacterSheet_Player"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "aroused")>>
His transformation, muscle by muscle, bestows upon it an otherworldly yearning for pleasure.
Yet he knows that you're the one in charge, the submissive slut who bestowed your power upon him.
He turns you around and flexes his monstrous cock, inviting you in.
<span class='bind1'>"TAKE MY COCK!"</span> <span class='bind2'>"All yours..."</span>
\<<run setup.choice("[[Take him->ShardRing_Win_Sub_Idle_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring", "CharacterSheet_Player"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "worried")>>
\
You feel power gather around him, binding to his soul as he fully embraces your submissive urges.
His body is changing once more...
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Sub_FinalExitChoice_2_1]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring", "CharacterSheet_Player"], 2)>>
\<<set State.variables.CharacterSheet_Shard_Ring.quest.fullSub = true>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "aroused")>>
His chest expands outward, his pectoral muscles stretching to mammoth proportions. The once-defined pecs now resemble formidable boulders, each curve and crevice accentuating the sheer magnitude of the creature's might.
With every breath, his colossal chest rises and falls, exuding an air of indomitable power.
The muscular wrecking balls devour space under his chin with each pulse of growth, consuming it all and turning it with raw, powerful flesh.
<span class='bind1'>"THIS IS IT! MY FULL POTENTIAL!"</span> <span class='bind2'>"YOU'RE MINE!"</span>
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Sub_FinalExitChoice_2_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring", "CharacterSheet_Player"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "normal")>>
Simultaneously, the entity's back broadens, transforming into a labyrinth of sculpted muscle.
Each vertebra seems to stack upon the other. The muscles flow across the entity's back like a chiseled landscape, seemingly capable of supporting the weight of worlds.
His thighs thicken and grow, becoming massive pillars of might.
Each quadricep muscle swells to gargantuan proportions, pulsating with an otherworldly power.
<span class='bind1'>"GIVE ME MORE!! MOOOOOOORE!"</span> <span class='bind2'>"YESSSSSSSSS!!"</span>
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Sub_FinalExitChoice_2_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring", "CharacterSheet_Player"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "happy")>>
You then feel his calves expand, becoming formidable columns of muscle.
The entity's lower legs now exude a sense of unbreakable stability.
The green ghostly entity gradually transcends the boundaries of his previous size, becoming an awe-inspiring, unnatural colossus.
<span class='bind1'>"MOOOOOOOOOOOOORE!"</span> <span class='bind2'>"MOOOOOOOOOOOOORE!"</span>
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Sub_FinalExitChoice_2_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring", "CharacterSheet_Player"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "angry")>>
He fucks you hard, and you can feel his cum churning inside you until he explodes again.
The spirit's cum is warm inside you. You can feel every inch of him.
You can feel yourself reaching climax with him.
Nothing could be better than this.
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Sub_FinalExitChoice_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring", "CharacterSheet_Player"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "normal")>>
\
He suddenly pulls you close, his eyes locking into yours.
He grasps your neck with one hand, and you suddenly feel warmth build between his fingers.
<span class='bind1'>"Yesssss"</span> <span class='bind2'>"You're perfect..."</span>
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Sub_FinalExitChoice_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring", "CharacterSheet_Player"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "happy")>>
\
Metal forms under his touch, and an unknown alloy grows around your neck.
<span class='bind1'>"This is for you."</span> <span class='bind2'>"Wear it well."</span>
His voice like a whisper on the wind.
He steps back, admiring its handiwork.
"Now you are bound to me."
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Sub_FinalExitChoice_5]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring", "CharacterSheet_Player"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "normal")>>
\
You look down and see a sizable metallic collar that now adorns your neck.
<span class='bind1'>"I'm going to make you feel things you never thought possible."</span>
The ghostly hands rest on your body, and you shiver as his touch sends a thrill of pleasure through you.
He explores your body, pushing you to the brink of ecstasy.
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Sub_FinalExitChoice_6]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring", "CharacterSheet_Player"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "happy")>>
\
You cry out as the spirit brings you over the edge, your body writhing in pleasure as you float in the afterglow.
The spirit watches you, a satisfied smirk on its face.
<span class='bind1'>"You're mine."</span>
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Sub_FinalExitChoice_7]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Shard_Ring", "CharacterSheet_Player"]);>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "normal")>>
\
His touch is electric. It sends shivers down your spine as the afterglow takes effect.
You feel your body relax, and the stress of the day just melts away under the touch of the spirit.
It's like being wrapped in a warm, comforting blanket, and you can't help but laze and relax into it.
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Sub_FinalExitChoice_8]]");>>Your eyes close for a second, and you have no idea how much time has passed.
You wake up feeling both relaxed and energized at the same time.
The spirit of the ring is now gone, but you can still feel his presence within your collar.
∇: You can feel The Bind's presence within your soul.
∇: You gain the "Collar of the Bind" Ability.
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_CollarOfTheBind)>>
\<<run setup.completeAchievement("Achievement_CollarOfTheBind");>>
\<<run setup.choice("[[Leave->Village]]");>>You moan as the spirit looms over you, his long, hard cock thrusting deep inside you.
He is relentless, repeatedly pounding away at your hole, making you moan and writhe in pleasure.
You are entirely at the spirit's mercy, and he loves it.
<span class='bind1'>"I will always be with you."</span> <span class='bind2'>"All will know who owns you."</span>
\<<run setup.choice("[[Moan for him->Shard_Ring_Low_Rela_Win_Sub_IdleExit_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "angry")>>
\
<span class='bind1'>"You're mine."</span> <span class='bind2'>"Grrrrrrrahhhh!!"</span>
You moan as he fills you with his ectoplasmic cum, your ass throbbing with pleasure.
His seed feels amazing as it gushes into your hole, coating your insides with its slippery goodness.
You can feel it starting to seep out of you, dripping down your thighs.
\<<run setup.choice("[[Continue->Shard_Ring_Low_Rela_Win_Sub_IdleExit_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "normal")>>
\
He grins as he watches you squirm in ecstasy, your ass still dripping with his cum.
You feel his vast knowledge flood your soul. His presence grows within your mind, and with it, your ability to learn from your experiences.
∇: Your "Collar of the Bind" Ability is now stronger.
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_CollarOfTheBind)>>
\<<run setup.choice("[[Leave->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "angry")>>
\
The spirit laughs out in triumph.
<span class='bind1'>"Seems you've lost."</span> <span class='bind2'>"After so many victories, you finally give in?"</span>
He approaches you and starts to stroke your body. His touch is electric.
\<<run setup.choice("[[Continue->Shard_Ring_Sub_Loss_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring", "CharacterSheet_Player"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "aroused")>>
\
He kisses you passionately, and you can feel his ghostly hands exploring your body. He nibbles your neck and gently bites your earlobe.
<span class='bind1'>"It's all a game to you, isn't it?"</span> <span class='bind2'>"Fine, I'll play along."</span>
He presses his body against yours; you can feel his hardness pressing against you. He reaches down and takes your hand, guiding it to his cock.
You stroke him slowly but increase the pace as his breathing becomes heavier.
<span class='bind1'>"I'll be taking some of that sweet essence of yours."</span> <span class='bind2'>"Make you feel minuscule compared to me."</span>
\<<run setup.choice("[[Continue->Shard_Ring_Sub_Loss_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring", "CharacterSheet_Player"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "angry")>>
\
You moan louder and louder as he hovers behind you and brings his cock to your entrance.
Suddenly, you feel his cock thrust inside you, deep and hard.
He fills you, his huge cock stretching you wide.
\<<run setup.choice("[[Continue->Shard_Ring_Sub_Loss_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Shard_Ring", "CharacterSheet_Player"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "aroused")>>
\
You can feel your Essence leave your body as you cum.
<span class='bind1'>"Yesssssss..."</span> <span class='bind2'>"Moooooore..."</span>
Your Essence rushes into him, making him pulse in a brilliant green glow.
His arms bulge with newfound strength, his chest expands, and his legs thicken with newfound might.
Every part of him, muscles, cock and balls, expand as you roar out in ecstasy.
\<<run setup.choice("[[Continue->Shard_Ring_Sub_Loss_5]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Shard_Ring", "CharacterSheet_Player"]);>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Shard_Ring, "worried")>>
\
He flexes his massive muscles, admiring the way they ripple and bulge. A squeeze of his biceps makes him moan as he feels the raw power coursing through his veins.
He is growing into a force to be reckoned with.
<<print setup.bindLossSubEffect()>>
\<<run setup.choice("[[Continue->Shard_Ring_Sub_Loss_6]]");>>With only a blink, the spirit vanishes from your sight, but you feel the familiar pressure of your collar reminding you of his dominance over you.
The green runes across the collar pulses brightly, and it feels much heavier than before.
\<<run setup.choice("[[Leave->Village]]");>>\<<set $CharacterSheet_Slime.info.known = setup.EncounterKnownState.KNOWN>>
\<<if setup.sizecomparison(setup.getStatValue($CharacterSheet_Player, "height"), setup.getStatValue($CharacterSheet_Slime, "height")) >= setup.Comparators.FITS_ON_FINGER>>
As you traverse through the Barrens, you feel something strangely sticky underneath your heel.
Whatever it was, it's gone now, it either ran away or was entirely obliterated by your step.
Perhaps you should be more careful? Or not, after all, what's going to oppose you?
\<<run setup.choice("[[Continue->Village]]");>>
\<<else>>
\<<if $Essence < 200>>
As you traverse through the Northern Barrens, you see an amorphous blob of goo. It seems to pay no attention to you, idly minding its own business.
You consider if it's a wise idea to approach it or not.
\<<run setup.choice("[[Approach->Encounter_Intro_Slime_EssenceLow_1]]");>>
\<<run setup.choice("[[Leave->Village]]");>>
\<<elseif $Essence >= 200 && $Essence < 600>>
As you traverse the Northern Barrens' desertic landscapes, you notice a strange amorphous goo rise from a nearby dune. It seems to be heading towards you, seemingly intrigued by your presence. The sun shines through its wet green surface, letting you perceive the white glow of Essence within its core.
The intents of the being are unclear, would it be wiser to strike or escape?
\<<run setup.choice("[[Attack->Encounter_Intro_Slime_EssenceMedium_1]]");>>
\<<run setup.choice("[[Leave->Encounter_Intro_Slime_EssenceMedium_Leave]]");>>
\<<elseif $Essence >= 600>>
As you traverse through the Northern Barrens, your ears pick up on noisy rustling nearby.
You barely have enough time to react to a blob of goo hurling itself at you.
Whatever the slime wants, it certainly has something to do with you, and with the way it darts around you agitatedly, it doesn't seem to want to let you go so without a fight.
<<print setup.getFightStartPassages($CharacterSheet_Slime)>>
\<</if>>
\<</if>>Whatever it wants, it seems to be drawn to you. Adopting a fighting stance, you decide it's best to attack first before it gets any sudden ideas.
<<print setup.getFightStartPassages($CharacterSheet_Slime)>>You quickly back away from the slime, whatever it wants is none of your business.
It trails behind you, but gives up interest after a moment.
\<<run setup.choice("[[Continue->Village]]");>>As you approach the aberration, it seemingly pays no attention to you. The creature is a strange slime, with a green coat, giving its body a shiny hue.
The slime is shaped into an ellipse, roughly <<print setup.getLength(setup.getStatValue($CharacterSheet_Slime, "height"))>> in height.
It doesn't seem to pose much threat, but it could be a nuisance in the future, who knows what it may be planning.
<<print setup.getFightStartPassages($CharacterSheet_Slime)>>The slime collapses, flattening against the ground, unwilling to continue fighting.
As you approach, it almost bounces with eagerness, as if it wants you to do something to it?
Its surface moves and writhes like it is trying to move limbs it doesn't possess. The way it distorts reminds you of the first time you saw <<SymbioteName>>. Just like with them, your thoughts seem to warp its form.
Perhaps there's more to this creature than it seems.
\<<run setup.choice("[[Reshape the slime->Encounter_Win_Slime_Reshape_Race]]");>>
\<<run setup.choice("[[Leave->Village]]");>>As you consider how you want to reshape the slime, it seems to respond to your thoughts.
First, you inspect its overall being; small nubs push from its gooey form. They steadily grow longer and more defined, building limbs on this previously formless creature. Its core stretches, gaining definition until it becomes the toned upper body of your thoughts.
You eye it warily, thinking about what you want its general appearance to look like.
[[Humanoid->Encounter_Win_Slime_Reshape_Humanoid][$ReshapeRace = "Humanoid"]]
[[Naga->Encounter_Win_Slime_Reshape_Naga][$ReshapeRace = "Naga"]]
[[Minotaur->Encounter_Win_Slime_Reshape_Minotaur][$ReshapeRace = "Minotaur"]]
[[Werewolf->Encounter_Win_Slime_Reshape_Werewolf][$ReshapeRace = "Werewolf"]]You focus the changing slime, reshaping it into a displacer beast. <<SymbioteName>> resonates with your thoughts, enhancing your will beyond the capabilities of a single being.
The slime quickly reshapes.
Its legs take on a more feral form, and a long prehensile tail sprouts from the base of where its spine would be.
It grows an extra set of arms, and dual whip-like tentacles sprout from its back, the tips lined with rows of razor-teeth like appendages.
It remains bipedal, a somewhat humanoid displacer beast with a twin row of arms.
<<include Encounter_Win_Slime_Size>>You focus your thoughts, thinking about reshaping the creature into a werewolf.
<<SymbioteName>> resonates with your thoughts, enhancing your will beyond the capabilities of a single being.
The slime quickly reshapes.
Its legs become more canine-like, a small tail sprouts from the base of where its spine would belong as the rest of the body follows.
Faux-claws shape from its hands and feet, its face stretches into a muzzle adorned with floppy canine ears.
The slime now resembles a werewolf in all its bipedal glory.
<<include Encounter_Win_Slime_Size>>You focus your thoughts, thinking about reshaping the creature into a minotaur.
<<SymbioteName>> resonates with your thoughts, enhancing your will beyond the capabilities of a single being.
The slime quickly reshapes.
Its legs become more bovine-like, a long tail sprouts from the base of where its spine would belong, and its head reshapes into that of a bull's with a clean set of horns.
The slime now resembles a minotaur, head, and legs of a bull, but the torso of a human.
<<include Encounter_Win_Slime_Size>>You focus your thoughts, thinking about reshaping the creature into a naga.
<<SymbioteName>> resonates with your thoughts, enhancing your will beyond the capabilities of a single being.
The slime quickly reshapes.
Its legs merge into a serpent-like tail, but its torso and head remain mostly humanoid-shaped.
The slime now resembles a standard naga, half-human, half serpent.
<<include Encounter_Win_Slime_Size>>You eye the slime, content on having it remain with its humanoid figure.
It has all the standard features you'd expect on a human on the otherwise featureless slime.
<<include Encounter_Win_Slime_Size>>Its current stature is very slim and stands at about 5ft tall. You consider how you'd want to reshape its body.
[[Focus on giving it a slim body->Encounter_Win_Slime_Size_Slim][$ReshapeSize = "Slim"]]
[[Focus on giving it a muscular body->Encounter_Win_Slime_Size_Muscular][$ReshapeSize = "Muscular"]]
[[Focus on giving it a chubby body->Encounter_Win_Slime_Size_Chubby][$ReshapeSize = "Chubby"]]
[[Focus on giving it a hyper body->Encounter_Win_Slime_Size_Hyper][$ReshapeSize = "Hyper"]]You look down at the slime's form.
It's a fairly standard build, if not a little short, but you see no reason to change anything else.
<<include Encounter_Win_Slime_SexualOrgans>>You focus your thoughts on making its form more muscular. The slime shifts slightly, its body quickly morphing further to accompany your desire.
Its arms begin to swell with strength; its torso expands with enhanced musculature.
\<<if $ReshapeRace == "Displacer">>
It raises each arm, flexing its massive biceps as if to entice you.
\<<else>>
It raises two of its arms, flexing its massive biceps as the other two idly stroke its torso
\<</if>>
Perhaps it's not used to the muscular form, but the slime seems to be enjoying its new stature.
\<<if $ReshapeRace == "Naga">>
It flicks its tail about, bringing the tip of its serpentine mass to run along the creases of its abs, admiring the form of its physique.
\<<else>>
Its legs grow in tandem, the muscular quads swell with muscle as it flexes its legs, admiring the form of its physique.
\<</if>>
Its height increases slightly as well, it is at least a foot taller.
It continues its brief bout of self-worship, admiring the muscle tone of its torso and the rest of its body.
But you're not entirely done yet; there's still the final pieces to consider.
<<include Encounter_Win_Slime_SexualOrgans>>You focus your thoughts on making its form a little chubbier.
The slime shifts slightly, its body quickly morphing to accompany your desire further.
Its arms thicken, the weight they carry seems decently strong, but it's not as defined as a bodybuilder's would be.
The slime wriggles and stretches, but otherwise doesn't make any attempts to show off for you.
\<<if $ReshapeRace == "Naga">>
Its tail is more than sturdy enough to support the weight of its new build. It brings its tail up to admire the shape of its round belly.
\<<else>>
Its legs thicken as well, sturdy enough to support the weight of its new figure.
\<</if>>
The rest of the body follows suit, its gut expanding enough to be notable, but shy of what one could consider fat.
Overall, the build it carries is akin to that of a burly yet portly person.
Its height increases slightly as well, it is at least a foot taller.
It runs its hands over its frame, admiring the strange new shape of its stout body.
But you're not entirely done yet; there's still the final pieces to consider.
<<include Encounter_Win_Slime_SexualOrgans>><<run setup.applyGrowth($CharacterSheet_Slime, "height", setup.getStatValue($CharacterSheet_Slime, "height"))>>
You know it can be more, you want it to be more. You draw your focus on its body, the slime jiggles slightly as your thoughts intrude its own.
It responds to your whims, its body swelling with mass—the gooey exterior grows to a massive size.
The sheer height of the creature more than doubles, easily standing over <<print setup.getLength(setup.getStatValue($CharacterSheet_Slime, "height"))>> tall now.
Its arms follow suit, bulging with muscles so massive it seems like there's barely any room for them to move.
\<<if $ReshapeRace == "Displacer">>
The dual set of arms are so massive that they're practically fighting with each other for space.
\<</if>>
The sheer volume of muscle mass the slime is now exuding is causing its entire balance to shift.
\<<if $ReshapeRace == "Naga">>
Even so, it brings its serpentine tail up to its abs, admiring the shape of its tremendous physique.
\<<else>>
Its legs bulge with power, extremely sturdy, if not overbearing.
\<</if>>
The slime is impossibly huge; it seems to be at its limit now.
\<<if setup.sizecomparison(setup.getStatValue($CharacterSheet_Player, "height"), setup.getStatValue($CharacterSheet_Slime, "height") * 2.5) >= setup.Comparators.MUCH_BIGGER>>
Yet its limit can't even escape the shadow of something as massive as you are.
\<</if>>
<<include Encounter_Win_Slime_SexualOrgans>>You're left to consider the final pieces of the slime.
[[Focus on giving it a penis->Encounter_Win_Slime_SexualOrgans_Penis][$ReshapeSexualOrgan = "Penis"]]
[[Focus on giving it a vagina->Encounter_Win_Slime_SexualOrgans_Vagina][$ReshapeSexualOrgan = "Vagina"]]
[[Focus on its ass->Encounter_Win_Slime_SexualOrgans_OnlyAss][$ReshapeSexualOrgan = "None"]]You eye the slime once more, admiring the shape of its form.<<include Encounter_Win_Slime_SexualOrgans_Intro>>
You think that it needs nothing more than an ass to work with, after all, you have a particular goal in mind, and anything else is but a distraction.
It is facing away from you, but you keep a close eye on the translucent slime.
The shape of its ass gains additional mass as well as a proper hole for you to use.
<<include Encounter_Win_Slime_Sex>><<include Encounter_Win_Slime_SexualOrgans_Intro>>
At the junction of the hips, a humanoid vagina begins to take shape. A pair of folded lips emerge along with a half-inch clitoris.
It erects slightly.
You grin in satisfaction at the sight of it, you know very well that it has an ass to play with as well.
<<include Encounter_Win_Slime_Sex>><<include Encounter_Win_Slime_SexualOrgans_Intro>> It just wouldn't be complete without a penis, after all, it's one of the most defining characteristics of a creature.
At the junction of the hips, a humanoid penis begins to take shape, extending outwardly for you.
\<<if $ReshapeSize == "Hyper">>
Like the massive body of the slime, the huge erection swells out, reaching just past its thick pectorals.
\<</if>>
You grin in satisfaction at the sight of it, you know very well that it has an ass to play with as well.
<<include Encounter_Win_Slime_Sex>>With the slime morphed to your desire, you consider what you could do to it.
\<<if $ReshapeSexualOrgan == "Penis" && setup.hasLimb($CharacterSheet_Player.info.anatomy, "vaginas")>>
\<<run setup.choice("[[Ride Vaginal->Encounter_Win_Slime_Sex_RideVaginal]]");>>
\<</if>>
\<<if $ReshapeSexualOrgan == "Penis">>
\<<run setup.choice("[[Ride Anal->Encounter_Win_Slime_Sex_RideAnal]]");>>
\<</if>>
\<<if setup.sizecomparison(setup.getStatValue($CharacterSheet_Player, "cock"), setup.getStatValue($CharacterSheet_Slime, "height")) >= setup.Comparators.BIGGER>>
\<<run setup.choice("[[Attempt to fuck it->Encounter_Win_Slime_Sex_TooBig]]");>>
\<<else>>
\<<if $ReshapeSexualOrgan == "Vagina">>
\<<run setup.choice("[[Penetrate Vagina->Encounter_Win_Slime_Sex_PenetrateVagina]]");>>
\<</if>>
\<<run setup.choice("[[Penetrate Ass->Encounter_Win_Slime_Sex_PenetrateAss]]");>>
\<</if>>
\<<run setup.choice("[[Abandon->Encounter_Win_Slime_Sex_Abandon]]");>>As you approach the slime, you can't resist from eyeing the massive member you've given it.
\<<if $ReshapeSize == "Hyper">>
Especially considering the massive size it is now.
\<</if>>
You push it to the ground, getting it into position for yourself.
You waste no time disrobing, making sure that nothing is obstructing intimacy with this fascinating creature.
\<<if $ReshapeRace == "Naga">>
As you straddle the slime, you can feel its serpentine tail dragging along your back.
\<<elseif $ReshapeRace == "Displacer">>
As you straddle the slime, it brings two arms to hold onto your hips as the other pair rests behind its head in an almost arrogant manner.
\<<else>>
As you straddle the slime, it brings both of its arms up to your hips.
\<</if>>
<<include Encounter_Win_Slime_ShapeDescription>><<include Encounter_Win_Slime_Sex_Intro>>
As you approach the slime, you can't resist from eyeing the massive member you've given it.
\<<if $ReshapeSize == "Hyper">>
Especially considering the massive size it is now.
\<</if>>
You push it to the ground, getting it into position for yourself.
You waste no time disrobing, making sure that nothing is obstructing intimacy with this fascinating creature.
\<<if $ReshapeRace == "Naga">>
As you straddle the slime, you can feel its serpentine tail dragging along your back.
\<<elseif $ReshapeRace == "Displacer">>
As you straddle the slime, it brings two arms to hold onto your hips as the other pair rests behind its head in an almost arrogant manner.
\<<else>>
As you straddle the slime, it brings both of its arms up to your hips.
\<</if>>
<<include Encounter_Win_Slime_ShapeDescription>>
Your hand graps its erection, it's stiff and pliable but doesn't give form beneath your touch.
You don't even have to worry about lubrication considering just how slick it is already.
The slime makes little attempt to advance on you as you rub its tip along your lips, revelling in the warm, slimy feeling. Your lips align with the rod, you inch closer.
You prod at your clit, rubbing yourself in slow, circular motions as you bring its glans to part your lips.
\<<run setup.choice("[[Continue->Encounter_Win_Slime_Sex_RideVaginal_2]]");>>You slowly drive down; it quickly shifts its size to better accommodate your cunt.
You can feel every inch of the throbbing member within you, you gently clench down onto it, working your muscles around its girth as you bring yourself closer to its body.
Your hands hold on to its chest as the slime's tool maintains a soft but unyielding grasp on your hips.
You bring your hips up and down slowly, giving yourself a chance to get accustomed to its size before you take the pace further.
\<<if $ReshapeRace == "Naga" || $ReshapeRace == "Minotaur" >>
You can feel its tail reach up from behind you, tenderly caressing your back in an almost affectionate manner.
\<<elseif $ReshapeRace == "Displacer">>
You notice its tentacles tenderly stroke your shoulders before moving down, rubbing your chest in an almost affectionate manner.
\<</if>>
The slime gently bucks into you, but you don't reprimand it, it seems to be enjoying this just as much as you are.
There's an underlying sensation you cannot describe, perhaps it's the subtle lack of a heartbeat, but the gentle throbbing of its erection is enough to keep your mind distracted from the fact.
The gentle pace is almost intimate, but the slime makes no notable advances on you as if it were perfectly content on the subdued position.
\<<run setup.choice("[[Continue->Encounter_Win_Slime_Sex_RideVaginal_3]]");>>The pace is under your complete control, every time you reach the base of its shaft, you can feel its thick balls press against your rear.
Soon enough you can feel your resistance wearing down as pressure builds within your loins.
You can feel its body contort slightly as a brief moment of weightlessness befalls you. Suddenly your face is planted directly onto its chest.
The slime looks at you with its featureless eyes, you're unsure what it could be thinking, but your thoughts are interrupted by your legs being pulled down onto its body as it then wraps its arms around your back, keeping you closely wound to its body.
Your breathing staggers as you can feel the pressure build within your loins. A long, wet tongue sticks out from its mouth as it gives you a sultry lick across your cheek.
Trapped within its embrace, it bucks almost aggressively into you. You cry out in pleasure as your climax hits, clenching down on its erection.
Your girlcum only serves to lubricate its already slimy erection further.
\<<if setup.hasLimb($CharacterSheet_Player.info.anatomy, "cocks")>>
Your erection pulsates as you shoot ropes of cum all over the slime's torso.
\<</if>>
\<<run setup.choice("[[Continue->Encounter_Win_Slime_Sex_RideVaginal_4]]");>>You can feel its thick erection throb frantically, pulsating with eagerness as it cums as well.
You feel waves upon waves of warm, slimy seed spill into your womb as you press your weight on its body.
You can feel its erection deflate within you as it slowly slips out, trailing its ooze all over your nethers and its groin.
With a sigh of relief, you revel in the afterglow of its presence, enjoying the warm, soothing feeling of its slimy body.
\<<run setup.choice("[[Continue->Encounter_Win_Slime_Sex_RideVaginal_5]]");>>After a few minutes, you decide it's best to move on with the day. You disentangle itself from its grasp with little resistance.
The slime hardly notices your missing presence, still lying on the earth as if you were still there. You pick up your belongings and continue with your day.
\<<run setup.choice("[[Continue->Village]]");>>You admire the shape of its form, \
\<<if $ReshapeSize == "Slim">>
its svelte figure is soft and unimposing.
\<<elseif $ReshapeRace == "Muscular">>
its bulky frame is warm and inviting. You enjoy every crevice born of the shape of its musculature.
\<<elseif $ReshapeRace == "Hyper">>
it's impossibly huge and muscular frame has almost completely inhibited its mobility, this slime is completely subdued, subject only to your will.
\<</if>><<include Encounter_Win_Slime_Sex_Intro>>
You try to get comfortable on top of it,
\<<if $ReshapeSize == "Hyper">>
you bring your hands down to its thick, massive pecs for support as your feet can barely touch the ground.
\<<else>>
you bring your hands down to its chest for support, comfortably straddled on its figure.
\<</if>>
Once you feel like your balance is well, you bring a hand down to admire the slick texture of its erection.
It's so warm and wet; you know you don't even have to worry about lubrication.
\<<run setup.choice("[[Continue->Encounter_Win_Slime_Sex_RideAnal_2]]");>>Aligning the tip of its erection to your backdoor, you gently tease its erection.
The slime doesn't force into you, but rather holds onto you for support with surprising gentleness.
You sink onto its girth, the slime shifts slightly to better accommodate your hole. You breathe heavily as you sink deeper until you've reached the base of its crotch.
You're not entirely sure how many inches of its dick you've just taken, but you relish the warm, gooey sensation.
\<<if $ReshapeRace == "Naga" || $ReshapeRace == "Minotaur">>
You can feel its tail reach up from behind you, tenderly caressing your back in an almost affectionate manner.
\<<elseif $ReshapeRace == "Displacer">>
You notice its tentacles tenderly stroke your shoulders before moving down, rubbing your chest in an almost affectionate manner.
\<</if>>
You bring your hand to your nethers, wanting to get the most out of the situation.
\<<if setup.hasLimb($CharacterSheet_Player.info.anatomy, "cocks")>>
You wrap your fingers around your length, using your precum as sufficient lubrication as you start with a slow, steady rhythm as you slowly bounce up and down its erection.
\<<elseif setup.hasLimb($CharacterSheet_Player.info.anatomy, "vaginas")>>
You gently prod at your clit, rubbing it around in slow circular motions as you slowly bounce up and down its erection.
\<</if>>
\<<run setup.choice("[[Continue->Encounter_Win_Slime_Sex_RideAnal_3]]");>>The slime slowly begins bucking into you, causing you to clench your sphincter around its girthy length.
You lean deeper forward, holding onto its slimy shoulders for support as it wraps its arms behind your rear.
The slime gently gropes at your backside as it continues bucking into you.
With a forceful thrust, the slime causes you to fall on top of it nearly.
With your head now closer to its face, it extends its tongue out toward you, giving your face a long, sultry lick.
It lifts a hand to your nethers,
\<<if setup.hasLimb($CharacterSheet_Player.info.anatomy, "cocks")>>
wrapping its slick fingers around your length, jerking you off as it continues thrusting deeper into you.
\<<elseif setup.hasLimb($CharacterSheet_Player.info.anatomy, "vaginas")>>
prodding at your clit as it digs a finger past your folds. It gently rubs a slick finger over your clit, flitting it back and forth, causing you to clench onto its manhood.
\<</if>>
Your breathing grows staggered as you can feel yourself nearing the edge. You clench your grasp on its erection, wanting to milk it of everything it's worth.
With a cry of pleasure, your orgasm finally hits.
\<<if setup.hasLimb($CharacterSheet_Player.info.anatomy, "cocks")>>
Your aching manhood shoots several jets of seed all over its chest.
\<<elseif setup.hasLimb($CharacterSheet_Player.info.anatomy, "vaginas")>>
You feel yourself quivering slightly as a gentle stream of girlcum leaks down past your lips.
\<</if>>
\<<run setup.choice("[[Continue->Encounter_Win_Slime_Sex_RideAnal_4]]");>>The slime gives you another determined thrust, hilting itself as deep as it can go into your hole as you can feel its throbbing erection pump several waves of seed directly into your ass.
You sink deeper into the slimy embrace as you can feel its erection slowly begin to deflate, slipping out of your rear, trailing links of slimy seed between the two of you.
You revel within the afterglow.
\<<run setup.choice("[[Leave->Encounter_Win_Slime_Sex_RideAnal_5]]");>>You disentangle itself from its grasp with little resistance. The slime hardly notices your missing presence, still lying on the earth as if you were still there.
You pick up your belongings and continue with your day.
\<<run setup.choice("[[Continue->Village]]");>>As you approach the slime, you can't resist from eyeing the admirable shape it's been given.
\<<if $ReshapeSize == "Hyper">>
Especially considering the massive size it is now.
\<</if>>
You push it to the ground, getting it into position for yourself.
\<<if $ReshapeRace == "Naga">>
You climb over the slime, pulling its tail around your waist as you align the tip of your length with the folds of its box.
\<<else>>
You climb over the slime, pulling its legs up around your waist as you align the tip of your dick with the folds of its box.
\<</if>>
You press your glans along the labia; it's so warm and wet you don't even need to worry about lubrication considering the nature of the slime.
You place your hands at its side, keeping it pinned to the ground beneath your body.
\<<run setup.choice("[[Continue->Encounter_Win_Slime_Sex_PenetrateVagina_2]]");>>You drive your manhood deeper into its folds, its walls close in on you, wringing around and massaging your dick almost rhythmically.
You continue pumping into it with a steady rhythm. It feels like this slime only wants to serve you now.
\<<if $ReshapeRace == "Naga" || $ReshapeRace == "Minotaur">>
You can feel its tail reach up from behind you, tenderly caressing your back in an almost affectionate manner.
\<<elseif $ReshapeRace == "Displacer">>
You notice its tentacles tenderly stroke your shoulders before moving down, holding onto your back for support.
\<</if>>
You begin to increase your thrusts' pace, dipping your manhood as deep into the slime as you can reach.
You're perfectly accommodated within it, even to the point where you can press your entire crotch within the slime. Its vagina has completely encompassed your dick, massaging it with rhythmic pulses.
Each thrust causes you to push through its slimy body; its body is perfect for your girth.
You can feel your dick begin throbbing with greater intensity as you close in on your climax.
Your full balls are desperate to unload every ounce of cum directly into the eager slime.
With one last forceful thrust and a cry of pleasure, you hilt as much of your dick as you can into its body, unleashing several waves of cum directly into the slime.
\<<run setup.choice("[[Continue->Encounter_Win_Slime_Sex_PenetrateVagina_3]]");>>The slime clenches and tightens around your erection, desperate to milk you of everything you're worth, eager to accept more of your cum.
You breathe a sigh of relief as your orgasm ends, slipping out of the abused womb. Trails of cum drip from the tip of your length as you take a moment to collect yourself.
You leave the slime alone on the ground after cleaning up and picking up your belongings.
\<<run setup.choice("[[Continue->Village]]");>>As you approach the slime, you can't resist from eyeing the admirable shape it's been given.
\<<if $ReshapeSize == "Hyper">>
Especially considering the massive size it is now.
\<</if>>
You bring it to the ground on its knees, getting it into position as you walk behind it.
You kneel behind the subdued slime, aligning the tip of your length with its rear.
You drag the tip of your manhood along its hole; its slimy exterior is inviting, you know you don't even have to worry about lubrication considering how wet it is already.
\<<if $ReshapeRace == "Naga" || $ReshapeRace == "Minotaur">>
The slime whips its tail around, pulling you closer, practically begging for your entry with the wordless gesture.
\<<elseif $ReshapeRace == "Displacer">>
The slime whips its tentacles back, wrapping around your torso, gently pulling your body closer, practically begging for your entry with the wordless gesture.
\<<else>>
The slime wiggles its hips for you enticingly, practically begging for your entry with the wordless gesture.
\<</if>>
\<<run setup.choice("[[Continue->Encounter_Win_Slime_Sex_PenetrateAss_2]]");>>You slowly begin bucking into the slime, sliding into its gooey backdoor with minimal resistance. It clenches its sphincter around you as you spread it open.
The slime shifts slightly to better accommodate the size of your erection, making sure to be a tight, gooey sleeve for you as it pulsates rhythmically around your length.
As you begin to pick up the pace, the slime suddenly bucks back against you with eagerness, forcing you to stuff as much of your length as possible.
You grip it tightly, hugging the slime by the waist as you thrust into it with greater effort to remind it who's in charge.
Each thrust causes your heavy balls to slap against its body.
You cannot keep up the efforts for as long as you'd hope due to the constant clenching and tugging the slime has on your dick.
You can feel your resistance beginning to wear down as your thrusts become more frantic. Your breaths stagger as you can feel your orgasm building up.
\<<run setup.choice("[[Continue->Encounter_Win_Slime_Sex_PenetrateAss_3]]");>>Giving one last forceful thrust, you hilt as much of your dick inside its ass as you can fit, making sure that it takes as much cum as possible.
The slime eagerly clenches around you, desperate to milk you of as much of your cum as possible.
\<<if setup.hasLimb($CharacterSheet_Slime.info.anatomy, "cocks")>>
It shoots several ropes of cum onto the ground beneath it as well.
\<</if>>
You sigh in relief as the high of your climax dies down, your dick deflates within it trailing links of cum as you slide out.
For a brief moment before taking a moment to collect yourself, you revel in the afterglow.
You leave the slime alone; it falls lazily onto the ground once you let go of it.
\<<run setup.choice("[[Leave->Village]]");>>You eye the tiny slime, sure your creation is beautiful, but what could it do considering the sheer size you have over it?
\<<run setup.choice("[[Penile Masturbation->Encounter_Win_Slime_Sex_TooBig_PenileMasturbation]]");>>
\<<run setup.choice("[[Vaginal Masturbation->Encounter_Win_Slime_Sex_TooBig_VaginalMasturbation]]");>>
\<<run setup.choice("[[Hurl->Encounter_Win_Slime_Sex_TooBig_Hurl]]");>>You look at the slime. So small, so vulnerable. Something about how tiny it is in comparison to your massive body turns you on.
The sight of your erection gives you a wicked idea.
\<<if setup.getStatValue($CharacterSheet_Player, "cock") > 120 && setup.getStatValue($CharacterSheet_Player, "cock") > setup.getStatValue($CharacterSheet_Slime, "height")>>
You grin to yourself as you bring it down to your girth, enjoying the sight of your penis towering over the smaller slime.
\<<else>>
While your dick doesn't tower over the slime, your body's sheer size is enough to satisfy you.
\<</if>>
The slime does its best to wrap around your length as you keep it firmly clutched close to your body.
You almost crush the slime with your grasp, but it holds the form you gave it surprisingly well.
You continue jerking yourself off with slow, repeated strokes as you gradually increase the pace.
The slime continues worshipping your manhood, stroking with increasing eagerness.
Your chest heaves as your breathing becomes more frantic. Your climax quickly approaches, spurred on by the warm feeling of the slime on your length.
You clutch it tightly to your erection as your orgasm hits, shooting waves of cum into the air.
There is so much cum that the slime within your grasp is completely drenched in the white cream.
Satisfied, you laugh to yourself at its predicament, but you think a little reward is in order for the lesser creature.
You bring it to your mouth, licking the slime clean before setting it back down. You clean yourself off before deciding to continue with your day, refreshed from the session.
\<<run setup.choice("[[Continue->Village]]");>>You look at the slime. So small, so vulnerable.
Something about how tiny it is compared to your massive body turns you on. You can feel your clit aching with need, demanding your attention as it erects slightly.
You grin to yourself as you bring the slime down to your labia, placing its head against your clit.
The slime reflexively wraps its hands around you, bringing its face closer to give your throbbing clit a long, wet lick.
You reflexively clench your legs together, wanting to get more from this slime.
The slime eagerly works with your clit, tugging on it gently and making sure to rub it in all the right ways.
You dig a finger past your lips, fingering yourself gently as the slime continues worshipping your clit.
You clench around your fingers; you can feel your orgasm quickly approaching by the eager stimulation.
It doesn't last as long as you'd hoped, but the slime has far greater technique than you would have expected.
Your chest heaves as your breathing grows more frantic. You clench your legs closer together as you wring your cunt around your fingers.
With a cry of pleasure, you finally cum. Girlcum slowly peters out from your lips, spilling out onto the ground beneath you as the slime continues licking and sucking on your clit.
\<<if setup.hasLimb($CharacterSheet_Player.info.anatomy, "cocks")>>
Your dick joins in as well, shooting several ropes of cum far into the sky.
\<</if>>
Satisfied, you loosen your grip on your fingers and the slime. You set it down gently on the ground before deciding to continue with the day, refreshed from the session.
\<<run setup.choice("[[Continue->Village]]");>>You look at the tiny slime. So small, so vulnerable.
You pick it up within your grasp, admiring the futility of its predicament. The slime doesn't show any signs of fear or concern for its well being. This gives you a wicked idea.
Gripping it tightly, you reel your arm back, preparing to throw it. With a forceful swing, you hurl the slime across the horizon.
You can almost swear you hear a squeal of pure glee as it passes your ear.
It flies out of view rapidly, who knows how far exactly you chucked it.
\<<run setup.choice("[[Continue->Village]]");>>You leave the slime to itself. The slime quickly reverts to its spherical blob shape as you abandon it.
\<<run setup.choice("[[Leave->Village]]");>>The slime begins crawling over your form; its slick form glides along your torso as it sinks to your crotch.
\<<run setup.choice("[[Escape->Encounter_Loss_Slime_Escape]]");>>
\<<run setup.choice("[[Submit->Encounter_Loss_Slime_Submit]]");>>You kick and squirm at the slime, but your blows hardly make any impact on its exterior. Seeing your apparent discomfort, the slime slinks off your torso, giving you a chance to escape.
\<<run setup.choice("[[Run back to the Golden Bastion->Village]]");>>Feeling weakened from the ordeal, you do not attempt to resist the encroaching slime. It continues uninterrupted.
\<<run setup.choice("[[Penis Submit->Encounter_Loss_Slime_Submit_Penis]]");>>
\<<run setup.choice("[[Chest Submit->Encounter_Loss_Slime_Submit_Chest]]");>>
\<<run setup.choice("[[Rear Submit->Encounter_Loss_Slime_Submit_Rear]]");>>The slime worms its way past your garments, sliding its slick body uninterrupted until it wraps around your shaft.
The constant assault of groping and squeezing causes your manhood to rise to full mast.
The creature eagerly latches onto your manhood, caressing your balls as its entire body shifts to gently massage your manhood with slow repeated strokes.
Every throb from your erection causes it to wobble slightly in overeagerness. Whatever it wants, it's seemingly enthralled by your girth.
There is hardly any semblance of technique within its actions, just an eager blob pulsating its entire body to massage your length.
The slime is clearly experienced because you can feel yourself growing closer to the edge.
With each pulse of your manhood, the slime writhes tighter around your form, desperate to coax you to release.
Your breathing grows staggered as your resistance falls, with one final thrust into it you finally reach climax.
Waves of your cum are absorbed into its body; you feel yourself growing weary from the exertion.
Is this what it wants? Are you nothing but a supplier to the hungry slime?
Disoriented, you pass out from exhaustion.
You wake up sometime later, not quite sure how much time has passed.
\<<run setup.choice("[[Continue->Village]]");>>You clutch onto the slime; its damp body contorts underneath your grasp as you draw it closer.
The slime wraps around your torso, slinking past your garments as it tenderly caresses your chest.
It wriggles and writhes around your torso, making sure to coat every inch it can reach.
Each attempt you make at touching it only causes it to bounce and squirm even more.
The sentient blob is seemingly content on attempting to latch onto your pectorals, rubbing around your areola, possibly in an attempt to entice you.
It pulsates with an increasingly faster rhythm.
Its presence causes heat to stir within your loins as it gropes your chest.
The slime isn't stopping with the tender caresses, leaving wicks of ooze in its wake.
It seems to take notice of your enjoyment, but before you truly relish the moment, it quickly shoots itself into your mouth, past your lips without drawing its presence away from your chest.
You gag and sputter at the strange taste of the slime, but you don't choke on it yet.
The slime just contorts further as you try to pull your head back, stretching its body to match your attempts at making distance.
Whatever it wants from you, it's going to get it now. You can feel a strange sensation of pressure building up within your chest.
Is it stealing your air? Or perhaps it's crushing your torso beneath its weight.
You're feeling dizzy, the world is spinning, and the difficulty of breathing with the slime down your throat isn't helping.
Disoriented, you pass out from exhaustion and pleasure.
You wake up sometime later, not quite sure how much time has passed.
\<<run setup.choice("[[Continue->Village]]");>>You shift away from the slime, pulling it down from your chest and closer to your rear.
Perhaps it wouldn't be the worst thing to happen if you offered your ass? After all, the slime seemingly does want something from you.
The slime wraps around your thighs, tenderly caressing your taint.
You shift slightly, trying to make room for its presence as it gently presses its body along your glutes.
It snakes its way through your sphincter, pulsating as it shifts several inches of itself deep into your hole.
You clench around it; a faint numbing pleasure fills your body as it digs deeper into your ass.
The muscles of your sphincter stretch out as the slimy creature continues burrowing, wearing down your resistance as you squirm in pleasure.
A rhythmic pulsing gently massages your nethers as it continues, slowly shifting in and out of your rear.
Gentle pumps coax you into relaxing as you give in to the pleasurable sensation.
You gasp as the entirety of the slime slips into your body, you can feel it writhing within you as you feel like you're ready to reach orgasm, but are prevented by a disorienting sensation.
It feels as if your body is going to give in as if at any moment the slime will burst out of you.
Your entire body gives out, consciousness fades as everything turns to black.
You wake up sometime later, not quite sure how much time has passed.
\<<run setup.choice("[[Continue->Village]]");>><<include setup.getNextNarativeEventPassage(setup.StorySheet_Torgar.encounterPassages)>><<include setup.getNextNarativeEventPassage(setup.StorySheet_Torgar.postFightPassagesWin)>><<include setup.getNextNarativeEventPassage(setup.StorySheet_Torgar.postFightPassagesLoss)>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/Barrens/northernbarrens.jpg", undefined, undefined, true)>>
You journey east, past endless dunes and onto ruins of a forgotten village. One filled with cheap scraps that are too much of a bother to carry home.
It has been looted for a long time, years if you were to make a guess.
\<<run setup.choice("[[Continue->Torgar_FirstMeeting_Intro_1]]");>>A thin layer of sand covers everything all but the middle of the road; you can tell that people pass through more than anything.
That is until you notice a few boot prints drifting out of the path.
\<<run setup.choice("[[Inspect the boot prints->Torgar_FirstMeeting_Intro_2]]");>>At nearly <<print setup.getLength(12)>> long, you can tell that their owner must be massive.
You notice a faint chemical smell coming from where they lead.
\<<run setup.choice("[[Investigate->Torgar_FirstMeeting_Intro_3]]");>>
\<<run setup.choice("[[Leave->Village]]");>>\<<set $CharacterSheet_Torgar.info.known = setup.EncounterKnownState.KNOWN>>
\<<set $CharacterSheet_Torgar.quest.relationshipScoring++>>
You enter one of the ruined buildings of crumbling sandstones. Its ceiling is long gone.
While listening for any kind of unwelcome presence, you venture forth.
\<<run setup.choice("[[Keep an eye out for what could lie within->Torgar_FirstMeeting_Intro_3_1]]");>>Sure enough, you hear heavy footsteps nearby and drift your gaze toward their source.
A massive half-orc lifts a massive hand to cover the sun from his eyes; each of his fingers are almost as wide as a normal person's wrists.
\<<run setup.choice("[[Continue->Torgar_FirstMeeting_Intro_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "normal")>>
He gives you a surprised look before chuckling slightly, his breath making his impressive pectorals rise and fall in a raw display of power.
Booming steps resound louder and louder as he steps towards you. Besides his distracting bulge and impressive musculature, you can't help but notice the apparatus that he carries on his back.
The strange liquid within seems to swirl with excitement as he finally notices you.
"Well, I'll be damned..." He exclaims with a deep voice.
\<<run setup.choice("[[Continue->Torgar_FirstMeeting_Intro_5]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "smiling")>>
The half-orc bellows out a hearty laugh before walking up to you.
His clothes stretch tightly on his powerful muscles, making them audibly groan.
"It's been a while since I saw a normal looking man out here. Thought you were all hiding in your cities by now."
He stops to take a closer look at you, his hand idly playing with his short beard. Whatever is on his mind, he seems satisfied with whatever assumption he can make based on your appearence.
\<<run setup.choice("[[Continue->Torgar_FirstMeeting_Intro_6]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "smiling")>>
He extends his hand in a welcoming manner.
"I am Torgar, alchemist of the Shattered Peak!"
His words boom with a warm confidence, but you can't help but be suspicious of him.
\<<run setup.choice("[[Shake his hand->Torgar_FirstMeeting_Intro_7_ShakeHand]]");>>
\<<run setup.choice("[[Greet him from a distance->Torgar_FirstMeeting_Intro_7_DistantGreet]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "smiling")>>
His hand is incredibly firm. He gives you a warm smile, before letting go.
"A nice welcome, that's something I haven't done in a while. But you shouldn't trust those who roam the Barrens so blindly." He exclaims in a somewhat serious tone.
<<include Torgar_FirstMeeting_Intro_7>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "normal")>>
"Very smart of you, you don't want to trust those who roam the Barrens. Still, you could have stumbled upon way worse than me."
He bellows out a hearty laugh before lowering his hand.
<<include Torgar_FirstMeeting_Intro_7>>"Monsters and beasts have a set of rules here. Where city dwellers would learn about someone through words, here they learn through combat. A most intimate kind of communication. Power is to be respected, worshiped even."
He instinctively grins with that last word. You can hear his knuckles crack soon after he says it.
"At first I had a hard time grasping it, but now I have to say it has won me over."
He bends his knees slightly, making you instinctively raise your guard up.
\<<run setup.choice("[[Continue->Torgar_FirstMeeting_Intro_8]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "angry")>>
"So, go on then, show me what you got!"
<<print setup.getFightStartPassages($CharacterSheet_Torgar)>>Orc looks at you, his mind seemingly elsewhere, the goo covering him pulses
peacefully, as if listening to his thoughts curiously.
Tells the player he's close to some kind of breakthrough, this corruption, he
thinks it can be taught to listen. Conquered and used for what we want it to be.
Says he wants to show you.
<<print setup.getFightStartPassages($CharacterSheet_Torgar)>>His whole body shakes, the goo reaches into him instead of reaching to cover
his body.
That's it...
His body grows. He reaches back, opening the container on his back.
The goo jumps to him, digging into his body.
Urghhh...
He shakes, his pecs bloating with mass.
I will master it... Use it to help those in need.
Runes suddenly appear on his body.
A master alchemist, that is who I am.
Arms suddenly burst from his back. He flexes, grinning.
YESSSSS!!!!
(This path will be expanded in later versions)
\<<run setup.choice("[[Leave->Village]]");>>Says he's so close... but he needs to see himself in a different angle, he needs
to find someone who can beat him so he reaches another level of mastery.
//up lost scoring
\<<run setup.choice("[[Leave->Village]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/Barrens/northernbarrens.jpg", undefined, undefined, true)>>
You follow old tracks in the desert. Pathways that traders or other salvagers could have used, it is hard to say for sure.
What's important is that you remember where those tracks lead.
It is the road you have taken to encounter that half-orc, Torgar. Meeting him once more could lead to more exciting outcomes.
\<<run setup.choice("[[Follow the tracks->Torgar_Low_Rela_EncounterStart_Converse_2]]");>>
\<<run setup.choice("[[Return home->Village]]");>>You make your way to the ruined village with relative ease.
The half-orc is not difficult to find; his broad back has grown wider than the doors of the houses surrounding you.
You see him digging through some old rubble, but with only a glance, he drops a handful of rusted scraps to greet you.
"Ah... Good to see you again, Salvager."
\<<run setup.choice("[[Greet Him->Torgar_Low_Rela_EncounterStart_Converse_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "smiling")>>
The half-orc gets up to greet you with a grand, welcoming smile.
He dusts off his hands before letting them rest at his side.
His physique is as impressive as ever, displaying a lifetime of heavy lifting and fighting.
Yet, there seems to be more to it. The half-orc's massive bulge hints towards some more... Unnatural growth.
\<<run setup.choice("[[Continue->Torgar_Low_Rela_EncounterStart_Converse_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "normal")>>
"Got something on your mind? Better to ask now, before we fight."
You take a step back, but it does not seem surprising for him to say such a thing on second thought.
At least he has given you a warning this time.
<<print setup.displayTorgarConverse()>>
<<print setup.getFightStartPassages($CharacterSheet_Torgar)>>\<<set $CharacterSheet_Torgar.quest.available_encounterPassages_lowRelaIdle_GotBig = false>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "smiling")>>
"I wouldn't want to bore with the logistics of it, but I've been studying it for a long time. I've been making some concoctions to help with this. \
Corruption has so many remarkable properties when used in conjunction with Essence. It can awaken changes in one's body, gives them strength beyond what anyone can achieve on their own."
He grazes his hand across his biceps as he gives you a flex. It bursts, turning deliciously massive. Even Torgar himself seems excited at the sight of his bulk.
\<<run setup.choice("[[Continue->Torgar_Low_Rela_EncounterStart_GotBig_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "blushing")>>
The half-orc's face suddenly reddens with a blush.
"Now now... I can't get ahead of myself... I still need to get used to this."
\<<run setup.choice("[[Continue->Torgar_Low_Rela_EncounterStart_GotBig_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
He shakes his head, clenching his fists as his arm drops to his side.
"That being said, we should put our gains to the test!"
<<print setup.getFightStartPassages($CharacterSheet_Torgar)>>\<<set $CharacterSheet_Torgar.quest.available_encounterPassages_lowRelaIdle_Carry = false>>
\
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "smiling")>>
"You mean this?"
His arm reaches back, and he knocks on one of the glass containers.
It agitates whatever is within; purple goo swivels excitedly as an audible ding rings from the impact.
\<<run setup.choice("[[Continue->Torgar_Low_Rela_EncounterStart_Carry_2]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "smiling")>>
"Incredible, aren't they? They're unlike anything I've ever seen."
His enthusiasm is impossible to deny; he is elated at the idea of sharing his discovery.
"I found them in a ruin deep below the surface, almost kicked the bucket on my way back, but it was worth it."
\<<run setup.choice("[[Continue->Torgar_Low_Rela_EncounterStart_Carry_3]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "angry")>>
Upon holding a finger on the glass, you notice how the purple liquid within presses against it.
"The power within these little guys is nothing short of legendary. I've been extracting their power to concoct hundreds of enhancing potions and panaceas. There's probably more Essence within them than in an entire army."
He lets go of the glass cylinder with a frown. His finger waves in your direction like he is teaching a student.
"But the Corruption within is just as potent. Very important to process it into something new entirely. You don't wanna turn into one of those Lost."
\<<run setup.choice("[[Warn him of the dangers of Corruption->Torgar_Low_Rela_EncounterStart_Carry_3_AntiCorr]]");>>
\<<run setup.choice("[[Hint that you'd like to experiment with Corruption yourself->Torgar_Low_Rela_EncounterStart_Carry_3_ProCorr]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "sad")>>
\<<set $CharacterSheet_Torgar.quest.pureScoring++>>
"It sure is, hopefully no one ever needs to consume it as it is. If I were to make a guess I'd say it was used to power whole districts of the Sunken World."
Torgar suddenly realizes how heavy the mood is getting; it makes him slightly uncomfortable.
\<<run setup.choice("[[Continue->Torgar_Low_Rela_EncounterStart_Carry_3_Fight]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "smiling")>>
"Well, that's enough of that. I've been eager to see if you've grown any stronger during your journey. How about another fight?"
With a grin, his fists clench.
It looks like he won't discuss it any further without fighting you again.
<<print setup.getFightStartPassages($CharacterSheet_Torgar)>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
"Under the right circumstances, it can yield some pretty incredible things."
He looks you over with a curious smile.
"You're a weird one, Salvager. Usually, city dwellers treat Corruption as the root of evil itself."
\<<run setup.choice("[[Say you're not a city dweller anymore->Torgar_Low_Rela_EncounterStart_Carry_3_ProCorr_2_NotACityBoy]]");>>
\<<run setup.choice("[[Hint that you're only curious->Torgar_Low_Rela_EncounterStart_Carry_3_ProCorr_2_Curious]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "normal")>>
"Hmmm... You're right; once you enter the Barrens, you never come back the same..."
He seems slightly lost in his thoughts.
"Maybe I should take this place more seriously myself."
\<<run setup.choice("[[Continue->Torgar_Low_Rela_EncounterStart_Carry_3_Fight]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "smiling")>>
\<<set $CharacterSheet_Torgar.quest.ascendedScoring++>>
"Of course! We know so little about it; there's so much to discover!"
His passion is infectious; even when talking about something as dangerous as Corruption, you can't help but feel curious about what it could hold.
\<<run setup.choice("[[Continue->Torgar_Low_Rela_EncounterStart_Carry_3_Fight]]");>>\<<set $CharacterSheet_Torgar.quest.available_encounterPassages_lowRelaIdle_Origin = false>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "sad")>>
"I come from the Shattered Peak along with my clan. I have so many memories of that time, but reminiscing is tiring..."
He looks at the blue sky to hide his expression from you.
"Most of us are out there now; there just weren't enough resources to stay."
\<<run setup.choice("[[Continue->Torgar_Low_Rela_EncounterStart_Origin_2]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "angry")>>
"Alright, enough about the past. Are you going to fight me or what?"
His voice is tense. It feels like you struck a nerve by asking that question.
<<print setup.getFightStartPassages($CharacterSheet_Torgar)>>A short journey through the desert leads you to familiar ruins.
You stand where you first met Torgar, the alchemist.
Memories of your past encounters idly pass through your mind, of how the massive brute seems obsessed with his experiments.
It's hard to fully say whether he's genuinely accustomed to the harshness of the Barrens; his concoctions seem to lead him towards a strange path.
Yet, after having a taste yourself, part of you wishes for more...
\<<run setup.choice("[[Wait for his arrival->Torgar_Low_Rela_EncounterStart_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
It is not long before he reveals himself. He walks towards you, his pants barely holding his growing bulge back. Every throb threatens to tear them into ribbons.
"Here you are... I've been thinking about you more and more." He says, his tongue grazing over one of his tusks.
\<<run setup.choice("[[Continue->Torgar_Low_Rela_EncounterStart_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "blushing")>>
The half-orc grasps his own bulge with a muffled moan, he seems to have grown slightly since you last encounter.
"Just fight me already; there's I have to test the effects of my new concoctions..."
He does not seem interested in discussing with you much more. You brace yourself for the incoming fight.
<<print setup.getFightStartPassages($CharacterSheet_Torgar)>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
\<<if setup.getAvailableStoreFightMoveIDs($CharacterSheet_Player).length < 2>>
"Alright, you win again."
\<<else>>
"Hehehe, you're better than I expected!"
\<</if>>
He catches his breath and focuses on keeping his balance after a tiring battle.
"I gotta say, you fight like a demon."
\<<run setup.choice("[[Continue->Torgar_Low_Rela_Win_Idle_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "smiling")>>
"Not a lot of people can push me to my limit like this, you're something special."
Torgar ponders amidst his exhausted grunts.
"Yes, I feel like you could handle them. I'm sure you've gathered quite a bit of Essence at this point too."
He suddenly gets back up, builds back composure and gives you a warm smile.
"There's something I'd like to offer you, a trade if you will."
\<<run setup.choice("[[Listen to his offer->Torgar_Buy_Sigils]]");>>
\<<run setup.choice("[[Leave->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "smiling")>>
"Great! Maybe you'd offer some Essence to trade for some powerful concoctions I've been working on?" Torgar says with homely warmth.
He reaches for his belt with a groan. It seems like he has not dropped any of his strange potions during the fight.
"Barely anyone even knows about this power anymore, so I'll gladly share it with someone trustworthy."
<<print setup.displayFightMoveStore()>>
\<<run setup.choice("[[Leave->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "smiling")>>
With that, he takes one of the vials adorned on his waist and hands it to you.
"Drink it, and enjoy..." He says with a smirk.
\<<run setup.choice("[[Drink the vial->Buy_First_Sigil_2]]");>>You raise the vial to your mouth, and your eyes widen the instant that the strange liquid comes in contact with your tongue.
It burns, but there is an undeniable sweetness to it, like biting into an apple.
\<<run setup.choice("[[Drink the whole vial->Buy_First_Sigil_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
You feel the burn spread all over your body, like $SigilColor lava pumping into your veins.
Torgar wasn't kidding; this is strong stuff.
"That's it, let it do its thing. It makes it so much easier." He says, holding your shoulders as your whole body shakes.
You nearly lose your balance; only by holding on to Torgar's arms can you steady yourself.
\<<run setup.choice("[[Continue->Buy_First_Sigil_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "blushing")>>
The burning feeling suddenly hits back with a vengeance, but the pain it causes hits you differently...
You moan, tilting your head back as warmth engulfs your core. You feel your balls churn and expand as the concoction finally reaches its goal.
They tingle in the best way; your breath quickens as the unstoppable chemical reaction makes your cock rise to full hardness.
"That's it..." Torgar mumbles before grasping your growing balls.
\<<run setup.choice("[[Moan in pleasure->Buy_First_Sigil_5]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "blushing")>>
You feel like your cum is boiling within your balls, a pleasurable warmth that screams to be unleashed.
Any second now, you feel like you'd explode into the biggest orgasm you ever had.
Any second...
Only the slightest touch...
\<<run setup.choice("[[Jerk yourself off->Buy_First_Sigil_6]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
Your hands grasp your cock and jerk your tool in a panic.
You feel your load coming, but something is different...
That burn is rising through your shaft, that pleasurable pain is reaching to be unleashed. Except now, it is a part of you, something that comes from your own body.
"Hahaha! Unleash it!" Torgar screams, overwhelmed by lust at the sight of your own experience.
\<<run setup.choice("[[Shoot your load->Buy_First_Sigil_7]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming", true)>>
You cum with a neverending torrent of thick seed, knocking Torgar back on his back. Amidst bestial growls, you try to grasp your cock, but it is beyond your control.
Torgar himself is brought to the edge, roaring in arousal at the intense power of your lust.
"GRAHHHHHH!" He screams, adding his own seed to the growing mess.
\<<run setup.choice("[[Continue->Buy_First_Sigil_8]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 1)>>
\<<run setup.stopSoundActions();>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming", true)>>
Suddenly, amongst the exquisite pleasure, you feel your cum move along your skin.
It drifts down your pecs and core, down your legs and onto the ground. The mess you've made condenses, concentrating towards Torgar.
"UURHHHHHHHH!" He groans. Your cum rushes to him faster and faster, condensing along his body.
You recognize this; this is the same technique that the half-orc has been using against you.
With a hard grasp of your balls, you grin; this power is now yours to use.
\<<run setup.choice("[[Continue->Buy_First_Sigil_9]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player", "CharacterSheet_Torgar"]);>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "smiling", true)>>
Torgar gives out a hearty laugh.
"Very good! I knew you'd be able to handle this without issues. \
Best we clean ourselves up before we attract some of the Lost, but I'd say this experiment was a resounding success!"
He gets up, smiling in awe at your combined load.
"I hope we can meet again soon, big guy."
<<print "∇: Your balls have grown "+ setup.getLength(setup.applyGrowth($CharacterSheet_Player, "balls", 1.5)) + " in diameter." >>
<<print "∇: You can now equip a new technique into your moveset." >>
<<run setup.flagHighlightChoice("newCardAvail");>>
\<<run setup.choice("[[Leave->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
"You know, back where I'm from, we don't learn these new techniques by drinking the vial."
His hand suddenly lowers; he seems to be eyeing your bulge.
"There's a much more efficient way to get it done. One that you might enjoy even more..."
\<<run setup.choice("[[Let him continue->Buy_More_Sigil_2]]");>>
\<<run setup.choice("[[Take the vial and drink it->Buy_First_Sigil_1]]");>>\<<set $CharacterSheet_Torgar.quest.usedVialOnPlayerDick = true>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
With a grin, he grasps your bulge and brings the vial to your cock.
"Hold on to me; you're about to get hit pretty hard."
\<<run setup.choice("[[Hold on to him->Buy_More_Sigil_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "blushing")>>
You feel him tip the vial onto the slit of your hardening cock. You instantly recoil back and shiver.
The burn you felt when you previously drank the other concoction is even stronger, as is the powerful throbbing feeling of pleasure rushing through your cock.
You feel it course down towards your urethra; every inch of progress makes your cock throb faster and faster.
\<<run setup.choice("[[Continue->Buy_More_Sigil_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 2)>>
Thick $SigilColor veins burst along the shaft as the urge to breed rises within you. Its raw, animalistic passion is infectious.
Torgar himself seems enthralled by it; he cups your balls in worship, part of him wants to see them grow even bigger...
Something big is coming, the concoction finally reaches your balls.
You growl, feeling your load building into a load that gods would envy.
\<<run setup.choice("[[Continue->Buy_First_Sigil_5]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
"Now the question remains, how would you like to take this one?"
\<<run setup.choice("[[Drink the vial->Buy_First_Sigil_1]]");>>
\<<run setup.choice("[[Tell him to use it on your cock->Buy_More_Sigil_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
"This one is something special..."
He hands you a vial filled with a glowing, golden liquid.
"The Seed of Growth. It's said to grow its user's body when it activates. The effects are permanent too..."
A wide smirk crawls across his brutish maw.
"Of course, letting go of something this powerful comes with a price..."
\<<set $linkDesc = "Buy for "+setup.FightMove_Sigil_Growth.essenceCost+" Essence">>
\<<set $linkPath = setup.getSigilBoughtPassage()>>
\<<run setup.choice("[[$linkDesc->$linkPath][setup.buyFightMove($CharacterSheet_Player, setup.FightMove_Sigil_Growth.id)]]");>>
\<<run setup.choice("[[Go Back->Torgar_Buy_Sigils]]");>>
<<set $SigilColor = "golden">><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
A vial filled with a jet purple liquid catches your attention.
"Hmmm, the Seed of Pain. With enough of it running in someone's body, it can turn any attack into a fatal blow."
A wide smirk crawls up his brutish maw.
\<<set $linkDesc = "Buy for "+setup.FightMove_Sigil_Pain.essenceCost+" Essence">>
\<<set $linkPath = setup.getSigilBoughtPassage()>>
\<<run setup.choice("[[$linkDesc->$linkPath][setup.buyFightMove($CharacterSheet_Player, setup.FightMove_Sigil_Pain.id)]]");>>
\<<run setup.choice("[[Go Back->Torgar_Buy_Sigils]]");>>
<<set $SigilColor = "dark red">><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
A vial filled with a moving turquoise liquid gets your attention.
"This one is the Seed of Vitality. It converts the damaged flesh of your opponents into energy you can take for yourself."
\<<set $linkDesc = "Buy for "+setup.FightMove_Sigil_Vitality.essenceCost+" Essence">>
\<<set $linkPath = setup.getSigilBoughtPassage()>>
\<<run setup.choice("[[$linkDesc->$linkPath][setup.buyFightMove($CharacterSheet_Player, setup.FightMove_Sigil_Vitality.id)]]");>>
\<<run setup.choice("[[Go Back->Torgar_Buy_Sigils]]");>>
<<set $SigilColor = "turquoise">><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
"Looks like I win this time..." He says with a grin.
Right as you're about to collapse out of exhaustion, Torgar reaches out and holds you by the shoulders.
"Woah there, don't collapse on me now." He snaps his fingers inches away from your eyes, but the fight has genuinely taken its toll on you.
"Here, drink this; it'll give you a burst of strength for a while."
You can barely see it, but he is holding what seems to be a glass vial against your hand.
It's hard to say if you should drink what he offers, but it is your only chance to act before you pass out.
\<<run setup.choice("[[Drink the vial->Torgar_Low_Rela_Loss_Idle_2]]");>>
\<<run setup.choice("[[Pass out->Torgar_Low_Rela_Loss_Idle_PassOut]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "smiling")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
As your vision darkens, you take the vial and chug its content as fast as you can.
"Alright, I was worried that you'd pass out before you could even drink it!"
You still feel exhausted, but something jerks you awake, makes your muscles shiver.
"This should get you back on your feet for a few days." Torgar says with a grin. Your whole body burns like after an intense workout. Was this how he got so big himself?
You brush your hands on your tingling pectorals and suddenly shiver in pleasure.
It feels beyond good; every touch feels like a full orgasm that gets increasingly stronger. It takes every bit of willpower not to cum on the spot.
It tingles all over your body, makes you stronger... You feel your muscles grow as you grasp your cock instinctively.
\<<run setup.choice("[[Continue->Torgar_Low_Rela_Loss_Idle_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming")>>
"Feels good, doesn't it?" Torgar groans himself; he can't stop himself from pressing his hands against your pecs, letting him feel them expand.
You moan as he pinches one of your nipples; it is turning inhumanly sensitive. Every touch is bringing you dangerously close to the edge.
\<<run setup.choice("[[Shoot your load->Torgar_Low_Rela_Loss_Idle_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming", true)>>
Part of you tries to hold it in, but nothing can stop the flood of pleasure rushing through your veins.
With a roar, you shoot load after load. Cum spills all over Torgar's pecs and abs.
"Keep going..." He urges you to cum, to bring your pleasure to its natural peak.
\<<run setup.choice("[[Continue->Torgar_Low_Rela_Loss_Idle_5]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming", true)>>
Torgar pulls you in and kisses you as another orgasm rushes through you.
With your heads pulled back, you both unleash your biggest load yet. Carnal lustful roars bellow out of you as uncanny strength and vitality fill your whole being.
You feel more powerful than before...
\<<run setup.choice("[[Continue->Torgar_Low_Rela_Loss_Idle_6]]");>>\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_EmpoweringDrink)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "smiling", true)>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
"Wow... That was something else." Torgar mumbles in between pants of exhaustion.
You nod, feeling more pumped than ever.
"I'll prepare some more concoctions for you, now that I know how well your body takes them."
He pulls you in one last time, giving you a deep kiss. You can taste the remains of your loads in his mouth.
It seems like he's been enjoying the taste...
∇: You gain the "Empowering Drink" Ability for the next four days.
\<<run setup.choice("[[Make your way home->Village]]");>>Your vision fades as does the feeling of the burning sun upon your skin.
\<<run setup.choice("[[Continue->Torgar_Low_Rela_Loss_Idle_PassOut_2]]");>>You wake up soon after, still exhausted but aware enough to recognize your surroundings.
The nearby mountains and dunes are instantly recognizable; you are only an hour's walk away from the Golden Bastion.
Has Torgar carried you there?
\<<run setup.choice("[[Return to the Golden Bastion->Village]]");>>Memories of your past encounters with Torgar idly pass through your mind, of how the massive brute seems obsessed with his experiments.
It's hard to say whether he's genuinely accustomed to the harshness of the Barrens; his concoctions seem to lead him towards a strange path.
Yet, after having a taste yourself, part of you wishes for more...
\<<run setup.choice("[[Meet him->Torgar_Low_Rela_Mid_Rela_Trigger_EncounterStart_1]]");>>
\<<run setup.choice("[[Make your way back home->Village]]");>>\<<set $CharacterSheet_Torgar.quest.available_encounterPassages_lowRelaMidRelaTrigger = false>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "smiling")>>
"Here you are... Let's cut to the chase and fight already!" He says with uncontained excitement.
"The Lost keep growing in power. We must be prepared to face them soon."
<<print setup.getFightStartPassages($CharacterSheet_Torgar)>>\<<set $CharacterSheet_Torgar.quest.available_postFightPassagesWin_lowRelaMidRelaTrigger = false>>
\<<set $CharacterSheet_Torgar.quest.available_postFightPassagesLoss_lowRelaMidRelaTrigger = false>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "sad")>>
Torgar falls to one knee, his strength failing him despite is massive stature.
He clenches his fist.
"I'm glad you can handle yourself, don't get me wrong." He says with clenched teeth.
"But I need to be stronger; I won't let the Lost overpower me."
\<<run setup.choice("[[Continue->Torgar_Low_Rela_Mid_Rela_Trigger_Choices]]");>>\<<set $CharacterSheet_Torgar.quest.available_postFightPassagesWin_lowRelaMidRelaTrigger = false>>
\<<set $CharacterSheet_Torgar.quest.available_postFightPassagesLoss_lowRelaMidRelaTrigger = false>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "sad")>>
Upon seeing you fall to one knee, Torgar gives you a hand.
His own exhaustion is undeniable as his muscular arm shakes as he helps you up.
He sighs.
"I'm glad we can handle ourselves, don't get me wrong." He says before clenching his teeth.
"But I need to be stronger; I won't let the Lost overpower me."
\<<run setup.choice("[[Continue->Torgar_Low_Rela_Mid_Rela_Trigger_Choices]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "angry")>>
The strange purple liquid on his back swirls like a typhoon as emotions flare within the half-orc.
"This body is just not enough... But I can't stay behind and let those beasts rule our land; let them reduce all our advancement into pointless debauchery."
The purple mass expands, fills the cylinder to its very limit.
<h2>CRACK</h2>
"I need to get stronger!"
\<<run setup.choice("[[Warn him about the containers->Torgar_Low_Rela_Mid_Rela_Trigger_Choices_Warn]]");>>
\<<run setup.choice("[[Stay silent->Torgar_Low_Rela_Mid_Rela_Trigger_Choices_NoWarn]]");>>\<<set $CharacterSheet_Torgar.quest.lostScoring-->>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
You yell and warn him about the cracking containers on his back, but as he finally snaps out of his outburst, the cylinder on his right shoulder shatters.
\<<run setup.choice("[[Continue->Torgar_Low_Rela_Mid_Rela_Trigger_Choices_2]]");>>\<<set $CharacterSheet_Torgar.quest.lostScoring-->>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "angry")>>
You keep an eye on the cracking containers but say nothing.
Before he has a chance to snap out of his outburst, the cylinder on his right shoulder shatters.
\<<run setup.choice("[[Continue->Torgar_Low_Rela_Mid_Rela_Trigger_Choices_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Torgar"], 1)>>
His hand reaches for his shoulder in reaction, pressing it in the black goo that now drips down his chest and back.
"Ahhh... This is not good."
All anger suddenly melts into uncertainty; he gives you a confused look as his body begins to rumble and shake.
His whole body throbs, his muscles pumping as a thick layer of the strange black substance crawls down his back towards his waist.
"Oh, gods... This feels..." He stops, his words getting interrupted by a deep moan.
\<<run setup.choice("[[Continue->Torgar_Low_Rela_Mid_Rela_Trigger_Choices_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Torgar"], 2)>>
"Awwwwww..." His face blushes into a deep red as more of the goo pumps into him.
"Something's happening... Oh, fuuuuck!" He screams, thrusting his cock forward in a sudden burst of arousal.
You see his tool growing, filling his pants with more cock than they can handle. They begin to tear under the pressure as he growls.
His whole body begins to throb; each throb makes him moan louder.
\<<run setup.choice("[[Continue->Torgar_Low_Rela_Mid_Rela_Trigger_Choices_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Torgar"], 3)>>
Suddenly, it stops, just as quickly as it has started. Torgar's body is entirely still, his clothes on the brink of bursting into ribbons as he stares at his cock with heavy breaths.
"Oh, gods... It's happening again; I can feel it."
\<<run setup.choice("[[Continue->Torgar_Low_Rela_Mid_Rela_Trigger_Choices_5]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Torgar"], 2)>>
\<<set $CharacterSheet_Torgar.quest.progress = setup.TorgarProgress.INFECTED>>
His core suddenly explodes with growth, sending a surge of mass rushing to his abs and pecs, nearly pushing you back.
"AWWWW... FUUUCK!"
He lifts his right hand; feels each finger grow thicker with every wave of goo entering his body.
The sound of tearing reaches you both, a chorus blaring with his every move. His bulging forearms begin to show under his shredding gloves; he stares at them in complete awe.
"This... This is incredible." He mutters before bursting out of his gloves with a single flex.
\<<run setup.choice("[[Continue->Torgar_Low_Rela_Mid_Rela_Trigger_Choices_6]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Torgar"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "blushing")>>
"Look at these arms. They feel harder than steel!"
You can hear his breath getting faster, his biceps throbbing bigger.
\<<run setup.choice("[[Continue->Torgar_Low_Rela_Mid_Rela_Trigger_Choices_7]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Torgar"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
"If only I knew this would happen..."
His pecs protrude out before he can finish his sentence. They swell, growing into impossibly large mounds of undulating steel.
He gives out a deepening groan as the goo spreads further along his skin, feeding him with more pleasure and power than his clothes could handle.
"I'd have embraced it a long time ago."
\<<run setup.choice("[[Continue->Torgar_Low_Rela_Mid_Rela_Trigger_Choices_8]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Torgar"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming")>>
A black tendril suddenly brushes along his nipple. It completely cut his breath short.
"GAAAHHHHHH... Keep it coming!"
His hands press on his shoulder and chest, spreading the goo further across himself, forcing it into his legs and waist.
He flexes his abs, teasing the goo to enter every crease of his already massive form.
"C'mon... Get in there..."
\<<run setup.choice("[[Continue->Torgar_Low_Rela_Mid_Rela_Trigger_Choices_9]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Torgar"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "smiling")>>
With a loud snap, one of the belts of his harness breaks off, shattered by his growing legs.
"Look at this body... No Lost is going to stand a chance against me now!" He grasps what remains of his pants and tears them into ribbons with one pull.
He looks genuinely massive in every way; every part of him is now bursting with muscles that put his previous body to complete shame. \
He has to have at least doubled his mass since the start of his growth.
Yet, just when you think that the growth was ending, black tendrils suddenly reach for his cock and balls.
\<<run setup.choice("[[Continue->Torgar_Low_Rela_Mid_Rela_Trigger_Choices_10]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Torgar"], 3)>>
<<set $CharacterSheet_Torgar.quest.blackVeinsOnDick = true>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming")>>
<h2>"Ah... Ah.... AHHHHH!"</h2>
His chest pushes forward as his shaft suddenly expands to full hardness. Thick veins throb as his cock consumes the black goo, taking its gift of size and power for itself.
The half-orc yells as it grows his cock into a monstrous fuck tool.
\<<run setup.choice("[[Continue->Torgar_Low_Rela_Mid_Rela_Trigger_Choices_10_1]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Torgar"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming")>>
<h2>"So fucking MASSIVE!"</h2>
He grasps his balls, feels their pulse and swells against his fingers.
"Urrrrrrrghhh" He feels them churn, filling up with thick seed.
His hands then reach for his shaft.
\<<run setup.choice("[[Continue->Torgar_Low_Rela_Mid_Rela_Trigger_Choices_11]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Torgar"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming")>>
<h2>"I'm so... fucking... HUGE!"</h2>
With one hard jerk, his whole body gives in and urges the goo to give its host a monstrous pulse of growth.
<h2>"GRRRRRRRRRRAHHHHHHHHHHHHHHHH!"</h2>
\<<run setup.choice("[[Continue->Torgar_Low_Rela_Mid_Rela_Trigger_Choices_12]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Torgar"], 4)>>
\<<set $CharacterSheet_Torgar.fight.hp += 80>>
\<<set $CharacterSheet_Torgar.fight.stamina += 100>>
\<<set $CharacterSheet_Torgar.fight.strength += 45>>
\<<run setup.applyCorruption($CharacterSheet_Torgar, 500)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming", true)>>
Cum gushes out of his monstrous cock, shooting load upon load on his face, pecs and arms.
<h2>"AHHHHHHHHHHH... FUCK YES!"</h2>
It does not stop; load after load covers the half-orc's bulging form until every inch of him is covered in thick white seed.
∇: Torgar's body has grown <<print setup.getLength(setup.applyGrowth($CharacterSheet_Torgar, "height", 5*12))>> taller.
∇: Torgar's cock has grown <<print setup.getLength(setup.applyGrowth($CharacterSheet_Torgar, "cock", 2*12))>> longer.
∇: Torgar's balls has grown <<print setup.getLength(setup.applyGrowth($CharacterSheet_Torgar, "balls", 0.8*12))>> in diameter.
∇: Torgar's muscles have grown considerably (<<print setup.applyGrowth($CharacterSheet_Torgar, "muscles", 40)>>).
∇: Torgar's strength has increased by 45.
∇: Torgar's health has increased by 80.
∇: Torgar's prowess has increased by 100.
∇: Torgar's Corruption has increased by 50.
\<<run setup.choice("[[Continue->Torgar_Low_Rela_Mid_Rela_Trigger_Choices_13]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Torgar"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "smiling", true)>>
"Hehehe... Look at me now!" He exclaims, jerking his shaft for one more load to gush out.
"Hmmm... I gotta say, I'm not certain what the future holds for me now, but this pleasure is unbelievable."
He flexes his biceps for you to gaze at, but at least he seems to now have some level of clarity.
\<<run setup.choice("[[Urge him to fight Corruption->Torgar_Low_Rela_Mid_Rela_Trigger_Choices_Pure]]");>>
\<<run setup.choice("[[Tell him that power is meant to be embraced->Torgar_Low_Rela_Mid_Rela_Trigger_Choices_Corrupt]]");>>
\<<run setup.choice("[[Say that you believe in him to do the right thing->Torgar_Low_Rela_Mid_Rela_Trigger_Choices_Ascended]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Torgar"])>>
\<<set $CharacterSheet_Torgar.quest.pureScoring++>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "sad", true)>>
Corruption is dangerous, and he doesn't seem to realize how far he's already gone. \
You urge him to stop; he's no better than the Lost if he continues down that path.
"Yes, I see your point... I must go experiment. Unless I understand what is happening to me, I'm afraid I might have the same fate as the Lost."
His gaze is confident but still hides some worry.
\<<run setup.choice("[[Continue->Torgar_Low_Rela_Mid_Rela_Trigger_Choices_Pure_1]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "normal", true)>>
"I hope we'll meet again."
After giving you an understanding nod, he takes off.
You feel the ground shake with him every step, and soon, his form diminishes on the horizon.
\<<run setup.choice("[[Leave->Village]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Torgar"], 1)>>
\<<set $CharacterSheet_Torgar.quest.lostScoring++>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny", true)>>
"I'm starting to feel the same way." He flexes his bicep and licks it lustfully.
It makes you shake to your core...
"But now I must go experiment. Who knows what potential I now hold deep within myself~"
\<<run setup.choice("[[Continue->Torgar_Low_Rela_Mid_Rela_Trigger_Choices_Corrupt_1]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Torgar"])>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny", true)>>
His gaze is confident but still hides some worry.
"We'll meet again, and when we do... You're in for a taste of this monstrous cock."
He takes off.
You feel the ground shake with him every step, and soon, his form diminishes on the horizon.
\<<run setup.choice("[[Leave->Village]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Torgar"])>>
\<<set $CharacterSheet_Torgar.quest.ascendedScoring++>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "normal", true)>>
Corruption is dangerous, as you both are aware. You tell him that you trust that he won't betray what he believes in because of sudden power and pleasure.
"Hmmm... You're right; I must go experiment. Maybe this Corruption can be conquered one way or another. Then who knows what the future holds..."
His gaze is confident but still hides some worry.
\<<run setup.choice("[[Continue->Torgar_Low_Rela_Mid_Rela_Trigger_Choices_Ascended_1]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny", true)>>
"I hope we'll meet again."
After giving you an understanding nod, he takes off.
You feel the ground shake with him every step, and soon, his form diminishes on the horizon.
\<<run setup.choice("[[Leave->Village]]");>>It is not long into your trip that familiar lustful groans resound on the horizon.
They are deep, bestial, desperate, yet booming with intense bliss.
You recognize Torgar's voice.
\<<run setup.choice("[[Approach->Torgar_Mid_Rela_Idle_EncounterStart_2]]");>>
\<<run setup.choice("[[Leave->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
"It's good to see you again." He mumbles, his gaze unable to pull away from his cock.
His hands graze the humongous shaft, and he pulls his head back, shivering with pleasure. \
It throbs with inhuman power, gives out clear signs that his arousal has only increased since you last met him.
Yet he stops himself, his meaty hands sticking to his knees in response to the pleasure rushing through him.
\<<run setup.choice("[[Ask him how he is doing->Torgar_Mid_Rela_Idle_EncounterStart_2_HowDoing]]");>>
\<<run setup.choice("[[Give him a teasing wink->Torgar_Mid_Rela_Idle_EncounterStart_2_Wink]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "smiling")>>
\<<set $CharacterSheet_Torgar.quest.pureScoring++>>
\<<set $CharacterSheet_Torgar.quest.ascendedScoring++>>
He gives you a cheerful smile as he flexes.
"I gotta say, this stuff has been doing some work." With a double biceps pose, he threatens to tear up any clothing that desperately clings to him.
\<<run setup.choice("[[Continue->Torgar_Mid_Rela_Idle_EncounterStart_2_HowDoing_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
"Extreme muscle growth and arousal, increased semen production, overwhelming libido."
Just saying it seems to arouse him. His cock rises until it presses on his pecs, but he manages to stay focused.
"This feels like a more potent Corruption, except for the fact that it doesn't seem to wither down with time..."
\<<run setup.choice("[[Continue->Torgar_Mid_Rela_Idle_EncounterStart_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
\<<set $CharacterSheet_Torgar.quest.lostScoring++>>
"Hmmmm... You're in for the breeding of a lifetime if you keep teasing me like that..."
His voice is so much deeper than since you first met.
You see his cock rise until it presses on his pecs.
But he shakes his head; it seems like he has more pressing matters than satiating his lust at the moment.
\<<run setup.choice("[[Continue->Torgar_Mid_Rela_Idle_EncounterStart_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "normal")>>
His huge legs bend into an impressive flex as he gets up.
"When I think of all this could accomplish, of how many wonderful things could be done with harvesting this power for the good of all, when I fight for what I believe. Then I feel in control."
\<<run setup.choice("[[Continue->Torgar_Mid_Rela_Idle_EncounterStart_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "angry")>>
"Fight me once more! Only through putting it all on the line can I consume this Corruption!"
With a confident grin, his body barrels towards you.
<<print setup.getFightStartPassages($CharacterSheet_Torgar)>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
\<<set $CharacterSheet_Torgar.quest.relationshipScoring++>>
"Guhhhh... I yield."
His massive body fumbles forward as he falls to one knee. He pants in a mixture of exhaustion and arousal.
You can tell how much his lust distracts him, but as always, beating him has made you earn his attention.
\<<run setup.choice("[[Ask him what he plans to do next->Torgar_Mid_Rela_Win_Idle_Ask]]");>>
\<<run setup.choice("[[Leave him be->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
\<<set $CharacterSheet_Torgar.quest.relationshipScoring++>>
"Looks like I win this time..."
The rush of victory excites the entity within him even more. Black veins throb intensely all over him, feeding pleasure and power to his bulking flesh.
He licks his tusks, embraces the lust surging through him. It doesn't seem like he's willing to be reasoned with much further.
\<<run setup.choice("[[Ask him what he plans to do next->Torgar_Mid_Rela_Win_Idle_Ask]]");>>
\<<run setup.choice("[[Leave->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "normal")>>
The question seems to pull him out of his lust induced trance.
"I want... I need to control this thing."
He ponders, his monstrously massive hand grazing the tip of his beard.
"Studying helps me focus... When I'm set on a clear goal, this entity seems to calm down."
\<<run setup.choice("[[Tell him to reject the entity entirely->Torgar_Mid_Rela_Win_Idle_Ask_Reject]]");>>
\<<run setup.choice("[[Encourage him to keep studying its effects->Torgar_Mid_Rela_Win_Idle_Ask_Study]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "normal")>>
"Yes... It's hard to deny how dangerous it could be."
He sits down cross-legged and closes his eyes to focus.
\<<run setup.choice("[[Continue->Torgar_Mid_Rela_Win_Idle_Ask_Reject_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "sad")>>
"I don't know much about the old world before it got turned to ruins. Maybe this thing had a role in its destruction? How can I even be sure?"
You notice the black veins along his body shrink slightly.
"I still have to find a haven for my people too... I can't get distracted so easily."
\<<run setup.choice("[[Hold his hand->Torgar_Mid_Rela_Win_Idle_Ask_Reject_Hold]]");>>
\<<run setup.choice("[[Leave him be->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "blushing")>>
He jumps as you hold his hand onto yours. His eyes widen, his whole face turns red.
He's not used to romantic intimacy; his life of studies and survival didn't leave room for such things.
But soon, he relaxes.
You feel his heartbeat slow down.
And for a while, it feels like things are going to be okay.
\<<run setup.choice("[[Continue->Torgar_Mid_Rela_Win_Idle_Ask_Reject_Hold_2]]");>>\<<set $CharacterSheet_Torgar.quest.pureScoring++>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "smiling")>>
After a few minutes, he suddenly gets up and gives you a warm smile.
"Thank you, I really needed that." He says before letting out a hearty laugh.
"I'll try to get this thing under control for you and my clan."
And just like that, he walks off.
\<<run setup.choice("[[Leave->Village]]");>>\<<set $CharacterSheet_Torgar.quest.ascendedScoring++>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "normal")>>
"I don't know much about the old world before it got turned to ruins."
He looks around him at the ruins surrounding you both.
For a second, you can see the glint of curiosity shining in his eyes.
"Something leads to their ruin, but we can learn from their mistakes instead of rejecting them."
\<<run setup.choice("[[Continue->Torgar_Mid_Rela_Win_Idle_Ask_Study_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "smiling")>>
He suddenly gets up, his volition suddenly restored.
"I'll find a way to make something worthwhile for my people."
He waves you goodbye before heading off.
"Thank you, friend; you're helping more than you might think."
\<<run setup.choice("[[Leave->Village]]");>>\<<set $CharacterSheet_Torgar.quest.available_encounterPassages_midRelaPathChange = false>>
\<<set $CharacterSheet_Torgar.quest.progress = setup.evaluateTorgarPath()>>
\
\<<if $CharacterSheet_Torgar.quest.progress == setup.TorgarProgress.LOST>>
<<include Torgar_Mid_Rela_Path_Change_EncounterStart_Lost>>
\<<elseif $CharacterSheet_Torgar.quest.progress == setup.TorgarProgress.REDEEMED>>
<<include Torgar_Mid_Rela_Path_Change_EncounterStart_Redeemed>>
\<<else>>
<<include Torgar_Mid_Rela_Path_Change_EncounterStart_Ascended>>
\<</if>>Soon after you leave the Golden Bastion, you feel Torgar's presence.
He is nearly impossible to miss through a subtle smell of overwhelming manliness, the sound of deep moans and thumping footsteps.
You feel guided to him.
\<<run setup.choice("[[Find Torgar->Torgar_Mid_Rela_Path_Change_EncounterStart_Lost_2]]");>>
\<<run setup.choice("[[Leave->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
You find the half-orc after less than an hour of travel.
He stands with a lustful grin as the goo pumps more and more of itself in his body.
The once savvy nature of the orc seems buried under the never-ending chorus of moans and throbbing cocks and muscles.
"You... hmmm... Come closer. You would make such a good fuck tool..."
Thick black goo oozing out of his cock as he gets ready to pounce on you.
<<print setup.getFightStartPassages($CharacterSheet_Torgar)>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
(Torgar is on the Path of Mastery)
(Unfortunately, only the path in which you encourage him to embrace the goo is currently available.)
<<print setup.getFightStartPassages($CharacterSheet_Torgar)>>\<<if $CharacterSheet_Torgar.quest.progress == setup.TorgarProgress.LOST>>
<<include Torgar_Mid_Rela_Path_Change_Win_Lost>>
\<<elseif $CharacterSheet_Torgar.quest.progress == setup.TorgarProgress.REDEEMED>>
<<include Torgar_Mid_Rela_Path_Change_Win_Redeemed>>
\<<else>>
(This is the point in Torgar's story when we branch into one of three different paths based on your choices thus far.)
(Unfortunately, only the path of Ascension is not available at the moment.)
\<<run setup.choice("[[Enter the Path of the Embrace->Torgar_Mid_Rela_Path_Change_EmbracePath]]");>>
\<<run setup.choice("[[Enter the Path of Redemption->Torgar_Mid_Rela_Path_Change_RedemptionPath]]");>>
\<<run setup.choice("[[Leave->Village]]");>>
\<</if>>\<<if $CharacterSheet_Torgar.quest.progress == setup.TorgarProgress.LOST>>
<<include Torgar_Mid_Rela_Path_Change_Loss_Lost>>
\<<elseif $CharacterSheet_Torgar.quest.progress == setup.TorgarProgress.REDEEMED>>
<<include Torgar_Mid_Rela_Path_Change_Loss_Redeemed>>
\<<else>>
(This is the point in Torgar's story when we branch into one of three different paths based on your choices thus far.)
(Unfortunately, only the path of Ascension is not available at the moment.)
\<<run setup.choice("[[Enter the Path of the Embrace->Torgar_Mid_Rela_Path_Change_EmbracePath]]");>>
\<<run setup.choice("[[Enter the Path of Redemption->Torgar_Mid_Rela_Path_Change_RedemptionPath]]");>>
\<<run setup.choice("[[Leave->Village]]");>>
\<</if>>After less than an hour of travel, you hear familiar moans. The sound of deep yearning contained in a struggling soul.
At this point, you quickly recognize that voice. The deep moans are coarse and horse-like in tone.
It is Torgar's Voice.
\<<run setup.choice("[[Approach->Torgar_Mid_Rela_Path_Change_EncounterStart_Redeemed_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
"You... I need to fight you once more."
He lets go of his monstrous cock and coils his hands into fists.
"Anything to distract me from this monster inside me."
<<print setup.getFightStartPassages($CharacterSheet_Torgar)>><<include Torgar_Mid_Rela_Path_Change_RedemptionPath>><<include Torgar_Mid_Rela_Path_Change_RedemptionPath>>\<<set $CharacterSheet_Torgar.quest.available_postFightPassagesWin_midRelaPathChange = false>>
\<<set $CharacterSheet_Torgar.quest.available_postFightPassagesLoss_midRelaPathChange = false>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
You notice how the black mass around him seems smaller than before as if it's withering.
Torgar seems conflicted, buried under the pressure of constant pleasure pushing him to give in.
But he firmly pushes back.
"This power. It feels better than anything I have ever felt in my life. It pulses in every muscle, pushes against my loins, day and night."
\<<run setup.choice("[[Continue->Torgar_Mid_Rela_Path_Change_RedemptionPath_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "angry")>>
"But I have things to do, things that my people count on."
He glances at his impossibly huge arms before jerking away.
"Please leave me be for now. I am endlessly grateful for your words earlier, but I don't think I can resist your allure for much longer."
\<<run setup.choice("[[Leave him be->Village]]");>>
\<<run setup.choice("[[Tease him->Torgar_Mid_Rela_Path_Change_RedemptionPath_Tease]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "normal")>>
You approach, and he already shivers in response. But he grasps your hand as it's about to reach him.
"You have no idea how much I want this... But I truly feel that I'll lose myself to this thing if I give in now."
He looks at you with pleading eyes. But his cock clearly throbs with need.
\<<run setup.choice("[[Pleasure him->Torgar_Lost_Path_Trigger_Win_Accept_Tease]]");>>
\<<run setup.choice("[[Leave him be->Village]]");>>The quietness of the barrens is something you've now learned to understand. Between each step, you listen for any sound that would reveal anything out of the ordinary.
\<<run setup.choice("[[Listen carefully->Torgar_Pure_Path_Trigger_EncounterStart_2]]");>>You hear a faint voice in the distance, a familiar one. But something seems off.
The words you can gather are nonsense, talks of a lost tongue.
\<<run setup.choice("[[Follow the voice->Torgar_Pure_Path_Trigger_EncounterStart_3]]");>>
\<<run setup.choice("[[Leave->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "normal")>>
The closer you get, the more you recognize Torgar's deep voice. His words thunder out with an uncanny softness. You feel more relaxed the closer you get.
You finally see him, hunched forward and mumbling within a canyon hidden within unexplored corners of the barrens.
His breathing is heavy, and it quickly hastens once he notices your arrival.
"It's you... You're here just in time."
\<<run setup.choice("[[Continue->Torgar_Pure_Path_Trigger_EncounterStart_4]]");>>\<<run $CharacterSheet_Torgar.fight.fightMoveIDs.push(setup.FightMove_TonicOfStillness.id)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
The strange goo that clads his skin pulses softly, but it's not as substantial as it's once been.
"Corruption is leading him to a path I refuse to follow. Please, fight me once more. I need to taste the essence in the air, harness it to get this thing out of me."
∇: Torgar can now use the "Tonic of Stillness" fight move.
<<print setup.getFightStartPassages($CharacterSheet_Torgar)>><<include Torgar_Pure_Path_Trigger_PostFight>><<include Torgar_Pure_Path_Trigger_PostFight>>\<<set $CharacterSheet_Torgar.quest.available_encounterPassages_purePathTrigger = false>>
\<<set $CharacterSheet_Torgar.quest.available_postFightPassagesLoss_purePathTrigger = false>>
\<<set $CharacterSheet_Torgar.quest.available_postFightPassagesWin_purePathTrigger = false>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "blushing")>>
He groans, physically fighting the goo; it pulses, feeding him with pleasure,
his cock hardens, cum drips out of it, but he fights back, forcing it out.
\<<run setup.choice("[[Fuck him->Torgar_Pure_Path_Trigger_PostFight_FuckHim]]");>>
\<<run setup.choice("[[Stand back and watch->Torgar_Pure_Path_Trigger_PostFight_PostSex]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 1)>>
Torgar yanks the remains of his tattered pants and throws them aside. He gazes at you, arousal burning in his eyes.
He quickly turns over and bends down on his hands and knees.
"Help me <<PlayerName>>... Get it all out of me."
\<<run setup.choice("[[Take him->Torgar_Pure_Path_Trigger_PostFight_FuckHim_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming")>>
<<print setup.processFlavours($CharacterSheet_Player, "You grasp the half-orc's muscular cheeks and force your @[all|cocks|noverb] in. His muscular ass has made his entrance all the tighter. You grunt and force yourself deeper with every thrust.")>>
Torgar could hardly tolerate it. Huge loads of thick seed are already oozing out of his humongous cock. You notice its slightly dark hues lighten with every load.
\<<run setup.choice("[[Keep fucking him->Torgar_Pure_Path_Trigger_PostFight_FuckHim_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 3)>>
You grasp his ass even harder. Torgar moans from the increasing force of your touch.
"Gahhhhh... Keep going... Pleeeeeease"
The half-orc muffles through heavy groans. He grabs his cock with both hands and jerks it desperately.
\<<run setup.choice("[[Continue->Torgar_Pure_Path_Trigger_PostFight_FuckHim_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming")>>
<h2>"Ahhhhh... AHHHHH!!! FUUUUUCK!!!!!!"</h2>
You thrust faster and faster until you cum, building up a chorus of lustful roars that resounds across the Barrens.
\<<run setup.choice("[[Continue->Torgar_Pure_Path_Trigger_PostFight_PostSex]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming")>>
He jerks his monstrous throbbing tool like his life depends on it. You feel his giant balls churn buckets of seed every time he thrusts the air.
"Grrrr... Ghhhhh. AHHHHHHH!!!"
He clenches the rocky ground in a thundering roar to find some balance as his urethra pumps huge bumpy loads towards his glands.
\<<run setup.choice("[[Continue->Torgar_Pure_Path_Trigger_PostFight_PostSex_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming", true)>>
<h2>"GRRRAHHHHHHHHHHHH!!!!!!"</h2>
His cock shoots out thick cum with the strength of a cannon. Monstrously huge loads that never seem to stop coming.
Torgar pants and roars as he holds on to the soil, desperately trying to shoot his load as far away as possible.
\<<run setup.choice("[[Continue->Torgar_Pure_Path_Trigger_PostFight_PostSex_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 1)>>
<<set $CharacterSheet_Torgar.quest.blackVeinsOnDick = false>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming", true)>>
With a few dozen shots, his load begins to whiten. His throbbing veins are getting smaller.
Finally, his muscles begin to deflate, gradually bringing him back to the body he used to know.
\<<run setup.choice("[[Continue->Torgar_Pure_Path_Trigger_PostFight_PostSex_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny", true)>>
After almost an hour of nonstop climax, he sighs in satisfaction and falls on his back. His cock still oozes seed, but its milky white color feels somewhat reassuring to see.
He is beyond exhausted from experience, but he still addresses you nonetheless.
"Gahhhhh... Thank you. I'm finally free."
\<<run setup.choice("[[Continue->Torgar_Pure_Path_Trigger_PostFight_PostSex_5]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player", "CharacterSheet_Torgar"])>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny", true)>>
\<<set $CharacterSheet_Torgar.quest.progress = setup.TorgarProgress.REDEEMED_TEAMMATE>>
He tries to get up but gives up halfway to rest on his back.
"Give me some time to pull myself together, find some clothes and clean myself up. Then please, come back to me."
\<<run setup.choice("[[Return to the Golden Bastion->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "normal")>>
Soon after entering the Barrens, you notice a person waiting for you.
A silhouette of reasonably impressive bulk and stature.
\<<run setup.choice("[[Approach him->Torgar_Redeemed_Path_Idle_Win_Epilogue_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "smiling")>>
Torgar approaches, adjusting his tight tunic; he is still too big for most clothing.
"I must thank you, explorer. Your help and wisdom have truly helped me out of this cycle of greed."
He pulls you into a hug and doesn't let go. He holds you tight, making you feel the warmth of his body and the beating of his heart.
His massive body is a lot to take in, but you do your best to hug him back.
"I still feel the lasting effects of this corruption, but I think I've surmounted its worst."
\<<run setup.choice("[[Kiss him->Torgar_Redeemed_Path_Idle_Win_Epilogue_Join]]");>>
\<<run setup.choice("[[Keep hugging him->Torgar_Redeemed_Path_Idle_Win_Epilogue_End]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "blushing")>>
You close your eyes and kiss him; he quickly pulls you closer in response.
His tongue coils against yours. Warmth builds through our whole body as he moans into your mouth.
"If only you knew how badly I've wanted this <<PlayerName>>... You saved my soul."
You push your tongue in deeper, and he growls in response.
\<<run setup.choice("[[Kiss him->Torgar_Redeemed_Path_Idle_Win_Epilogue_End]]");>>\<<set $CharacterSheet_Torgar.quest.available_encounterPassages_redeemedTeammateFirstTime = false>>
\<<run setup.completeAchievement("Achievement_Redemption");>>
\<<run setup.torgarJoinsPlayer()>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "sad")>>
He hugs you closer still; you feel warm and safe, covered in the warrior's bulk.
Your eyes open for an instant, and you see tears roll down his cheeks.
For once in a long time, Torgar truly feels welcomed and safe.
"Th-Thank you..."
\<<run setup.choice("[[Continue->Torgar_Redeemed_Path_Idle_Win_Epilogue_End_2]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player", "CharacterSheet_Torgar"])>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "blushing")>>
You let time pass and appreciate his warmth.
Δ: Torgar can now join your expeditions.
\<<run setup.choice("[[Leave->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
Torgar is waiting for you near the Golden Bastion. He welcomes you with a warm smile upon seeing you approach.
\<<run setup.choice("[[Continue->Torgar_Redeemed_Teammate_Path_Idle_Menu]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "smiling")>>
While he is smaller than he used to be, his composure shows unparalleled comfort and warmth.
\<<run setup.choice("[[Talk to him about his home->Torgar_Redeemed_Teammate_Path_Idle_Menu_ShatteredPeak]]");>>
\<<run setup.choice("[[Decide when Torgar attacks->Torgar_Redeemed_Teammate_ChangeAttackTiming]]");>>
\<<run setup.choice("[[Leave->Village][setup.flagTimePasses($CharacterSheet_Torgar)]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "smiling")>>
"Of course, all can benefit from a good strategy."
<<print setup.displayAttackTimingDescription($CharacterSheet_Torgar)>>
[[Attack before me->Torgar_Redeemed_Teammate_Path_Idle_Menu][$CharacterSheet_Torgar.fight.teammateSettings.attackTiming = setup.AttackTiming.BEFORE_PLAYER]]
[[Attack after me, but before our enemy->Torgar_Redeemed_Teammate_Path_Idle_Menu][$CharacterSheet_Torgar.fight.teammateSettings.attackTiming = setup.AttackTiming.BETWEEN_PLAYER_AND_ENEMY]]
[[Attack after me, but after our enemy->Torgar_Redeemed_Teammate_Path_Idle_Menu][$CharacterSheet_Torgar.fight.teammateSettings.attackTiming = setup.AttackTiming.AFTER_ENEMY]]
\<<run setup.choice("[[Cancel->Torgar_Redeemed_Teammate_Path_Idle_Menu]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "normal")>>
"My home? It's why I'm out here, really."
His eyes glance down at the endless sand. You can tell that this is a sensitive topic.
"I used to be the leader of my tribe, a clan of warriors that even the Lost didn't dare approach."
\<<run setup.choice("[[Continue->Torgar_Redeemed_Teammate_Path_Idle_Menu_ShatteredPeak_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "sad")>>
"But at some point, the earth we settled on stopped flourishing, and our strongest warriors ventured out to find a better place to live."
\<<run setup.choice("[[Suggest him to let his people move to the Golden Bastion->Torgar_Redeemed_Teammate_Ptah_Idle_Menu_ShatteredPeak_3]]");>>
\<<run setup.choice("[[Say nothing->Torgar_Redeemed_Teammate_Path_Idle_Menu]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "sad")>>
He stays quiet for a few seconds and lets out a deep sigh.
"I would gladly take that offer, friend, but that simply can't happen. The last time I went back to the Shattered Peak, it was completely deserted. My people disappeared without a trace, and I still don't know what happened to them."
\<<run setup.choice("[[Say you'll help him find them->Torgar_Redeemed_Teammate_Ptah_Idle_Menu_ShatteredPeak_4]]");>>
\<<run setup.choice("[[Comfort him->Torgar_Redeemed_Teammate_Ptah_Idle_Menu_ShatteredPeak_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "normal")>>
"I appreciate that... I'm always looking out for them with every chance I get, and now that I got rid of this Corruption, I can get back to it."
\<<run setup.choice("[[Continue->Torgar_Redeemed_Teammate_Path_Idle_Menu]]");>><<include Torgar_Mid_Rela_Path_Change_EmbracePath>><<include Torgar_Mid_Rela_Path_Change_EmbracePath>>\<<set $CharacterSheet_Torgar.quest.available_postFightPassagesWin_midRelaPathChange = false>>
\<<set $CharacterSheet_Torgar.quest.available_postFightPassagesLoss_midRelaPathChange = false>>
\<<set $CharacterSheet_Torgar.quest.lostScoring = 9999>>
\<<set $CharacterSheet_Torgar.quest.progress = setup.TorgarProgress.LOST>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
Torgar gives you a hungry look and nearly drools.
"Grrrr... I need more..."
His legs bend down as he pulls his head back and roars.
\<<run setup.choice("[[Continue->Torgar_Mid_Rela_Path_Change_EmbracePath_2]]");>>Within seconds, you hear monstrous roars answer his call.
The lustful roars of the Lost.
<h2>"I NEED MOOOOOORE!!!!"</h2>
He runs off, grunting hungrily at the thought of delving deeper into Corruption.
\<<run setup.choice("[[Leave->Village]]");>>Lustful moans resound from afar, moans that you now recognize without much of a thought.
It is Torgar's voice, and by the intensity of his lustful roars, you can tell that he has been learning to embrace his lust more and more.
\<<run setup.choice("[[Approach him->Torgar_Lost_Path_Trigger_EncounterStart_2]]");>>
\<<run setup.choice("[[Leave->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
With twisted laughter, he grasps his mighty cock.
You can see the fire in his eyes. What used to be a glint of curiosity is now an apparent devotion to lust and power.
"Feels so good... Every muscle feels more sensitive than my cock used to be."
He flexes both of his arms for you. "Grrrrr... Hmmmmm..."
\<<run setup.choice("[[Continue->Torgar_Lost_Path_Trigger_EncounterStart_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming")>>
His colossal tool twitches, spurting out loads of thick seed instinctively. It pleases him; he jerks his tool as he resumes.
"I followed your advice, gave in to the pleasure that grew ever since this gift came in contact with me."
His arm grasps the other container on his back.
\<<run setup.choice("[[Look at the container on his back->Torgar_Lost_Path_Trigger_EncounterStart_3_1]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming")>>
Even though it is open, the black goo within does not rush onto him; it stands, as if waiting for something.
"I can feel its need... It needs a worthy host."
\<<run setup.choice("[[Continue->Torgar_Lost_Path_Trigger_EncounterStart_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
He finally lets go of his cock, but it nevertheless throbs in hunger.
"You just might be the one..."
<<print setup.getFightStartPassages($CharacterSheet_Torgar)>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
With that last hit, Torgar suddenly drops his guard to look towards his shoulder.
"Yessss..."
His eyes widen, and he licks his lips as the other black mass emerges from its container.
It crawls along his back, heading towards his chest. Torgar bellows out a deep laugh in excitement.
"Come... Embrace it, just like I did."
\<<run setup.choice("[[Embrace his gift->Torgar_Lost_Path_Trigger_Win_Accept]]");>>
\<<run setup.choice("[[Refuse->Torgar_Lost_Path_Trigger_Win_Refuse]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "angry")>>
"Hmmmmrfff... Impossible."
The strange goo seems to react to what you just said, and it bounces back to its container like a snake.
"I'll be there when you're ready for it."
\<<run setup.choice("[[Leave->Village]]");>>\<<set $CharacterSheet_Torgar.quest.available_encounterPassages_lostPathTrigger = false>>
\<<set $CharacterSheet_Torgar.quest.available_postFightPassagesLoss_lostPathTrigger = false>>
\<<set $CharacterSheet_Torgar.quest.available_postFightPassagesWin_lostPathTrigger = false>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming")>>
"Yessss..."
The half-orcs body suddenly shivers in pleasure.
The black goo surrounding him suddenly expands, reaching further across his cock and arms, growing his glutes and legs.
"Hmmmmmffff... Take it. Make us whole!"
\<<run setup.choice("[[Kiss him->Torgar_Lost_Path_Trigger_Win_Accept_Kiss]]");>>
\<<run setup.choice("[[Turn around and tease him->Torgar_Lost_Path_Trigger_Win_Accept_Tease]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming")>>
\<<if setup.sizecomparison(setup.getStatValue($CharacterSheet_Player, "height"), setup.getStatValue($CharacterSheet_Torgar, "height")) >= setup.Comparators.MUCH_BIGGER>>
You kneel to reach Torgar, who pulls your head into a deep kiss.
\<<else>>
You pulls Torgar into a deep kiss.
\<</if>>
He coils his tongue around yours as it suddenly grows.
With each moan, it extends, more lengthy and fatter. You feel his saliva grow thicker.
\<<run setup.choice("[[Continue->Torgar_Lost_Path_Trigger_Win_Accept_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 1)>>
\<<set $CharacterSheet_Torgar.quest.available_encounterPassages_lostPathTrigger = false>>
\<<set $CharacterSheet_Torgar.quest.available_postFightPassagesLoss_lostPathTrigger = false>>
\<<set $CharacterSheet_Torgar.quest.available_postFightPassagesWin_lostPathTrigger = false>>
\<<set $CharacterSheet_Torgar.quest.lostScoring = 9999>>
\<<set $CharacterSheet_Torgar.quest.progress = setup.TorgarProgress.LOST>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
You turn around and give Torgar a wink.
"Mpphh...MMhhffGg...Ggrrarrr... I'm gonna breed you right here."
\<<if setup.sizecomparison(setup.getStatValue($CharacterSheet_Player, "height"), setup.getStatValue($CharacterSheet_Torgar, "height")) >= setup.Comparators.MUCH_BIGGER>>
You kneel so he can reach you, and he quickly climbs you to press his growing tool against your ass.
\<<else>>
He lifts you upon his growing tool, presses it against your entrance.
\<</if>>
\<<run setup.choice("[[Continue->Torgar_Lost_Path_Trigger_Win_Accept_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming")>>
The huge black gooey mass crawls to his cock, he roars in response.
<h2>"GRAHHHHHH"</h2>
His voice warps and deepens, getting more alien by the seconds.
"Yess... Take him... Complete us both... Cover every inch of us!"
The goo crawls and spreads upon his skin like a tight suit.
You feel the tip of his hands expand, growing into razor-sharp claws.
\<<run setup.choice("[[Fuck him->Torgar_Lost_Path_Trigger_Win_Accept_2_TorgarSpread][$bottom = false]]");>>
\<<run setup.choice("[[Make him fuck you->Torgar_Lost_Path_Trigger_Win_Accept_2_TorgarSpread][$bottom = true]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming")>>
\<<if $bottom == true>>
He thrusts inside of you, holding you like a toy as his tongue flicks out in lustful madness.
"I'm gonna turn you into a monster..."
\<<else>>
You hold him tight, grasping his waist before lifting him in a surge of strength.
Your cock presses tightly on his entrance as he moans.
"Oh fuck... Yes!"
\<</if>>
His pecs bloat out, turning shiny and jet black as the goo reaches towards you.
Black spires emerge around his neck, growing higher than his head. You feel the power radiating from him, feel it ooze from his cock and into your body.
"More..."
\<<run setup.choice("[[Continue->Torgar_Lost_Path_Trigger_Win_Accept_2_TorgarSpread_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 3)>>
\<<set $CharacterSheet_Torgar.quest.lost_FullyCovered = true>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming")>>
He growls, deep and monstrous as pleasure rushes through you both. You feel his need, his lust to grow and fuck rushing inside you. It is so potent... so delicious.
You both laugh madly as spurts of black tendrils spread all over your bodies.
<h2>GROOAAHHHHHHHHH!</h2>
\<<run setup.choice("[[Cum->Torgar_Lost_Path_Trigger_Win_Accept_2_TorgarSpread_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming", true)>>
\<<if $bottom == true>>
You both roar as he cums deep inside you.
This alone is enough to bring you to the edge.
\<<else>>
You both roar and cum deep inside Torgar.
This alone is enough to bring him to the edge.
\<</if>>
You both let out an earth-splitting howl, one that pushes the sand around you to form new dunes.
Black veins spread over your body as you snarl in orgasmic bliss.
You feel every fibre of muscle swell, getting infused with enough strength to crush mountains.
You are monsters, bound by lust and strength.
\<<run setup.choice("[[Continue->Torgar_Lost_Path_Trigger_Win_Accept_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny", true)>>
This goo that you now share builds and grows like an intimate bond.
You feel Torgar's lust, pleasure, and strength as if they were your own.
"Do you feel it too?" He asks, flexing his arm into a monstrous peak.
"Your strength... I feel it rushing through me... This is extraordinary!"
\<<run setup.choice("[[Continue->Torgar_Lost_Path_Trigger_Win_Accept_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny", true)>>
"Who knows how powerful we can get if we both push ourselves to our fullest... Hmmmmm..."
His monstrous clawed tries to grasp his cock in response, but it can barely reach it.
"Let's keep growing... See how far we can push this~."
∇: Torgar's cock has grown <<print setup.getLength(setup.applyGrowth($CharacterSheet_Torgar, "cock", 7))>> longer.
∇: Torgar's balls have grown <<print setup.getLength(setup.applyGrowth($CharacterSheet_Torgar, "balls", 3))>> in diameter.
∇: Torgar's muscles have grown (<<print setup.applyGrowth($CharacterSheet_Torgar, "muscles", 5)>>).
\<<run setup.applyCorruption($CharacterSheet_Torgar, 20)>>
∇: Torgar's Corruption has increased by 20.
∇: Your cock has grown <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "cock", 7))>> longer.
∇: Your balls have grown <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "balls", 3))>> in diameter.
∇: Your muscles have grown (<<print setup.applyGrowth($CharacterSheet_Player, "muscles", 5)>>).
\<<run setup.applyCorruption($CharacterSheet_Player, 15)>>
∇: Your Corruption has increased by 15.
∇: You have gained a "Torgar's Corrupted Bond" ability.
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_TorgarsBond)>>
\<<run setup.choice("[[Leave->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny", true)>>
Hmmmmrfff... You need to grow stronger to take this gift.
I'll be there when you're ready for it.
\<<run setup.choice("[[Leave->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
Deep, distorted moans resound from afar. Sounds of warped humanity, of intelligence seduced by pleasure.
You could recognize Torgar voice for hundreds of meters.
His footsteps resound in a thumping beat, shaking the sand beneath your feet.
There, he stands, his cock reaching up to the skies as he jerks it with all his might.
It is a mighty sight, such splendour and elegance bound to monstrous ferocity.
\<<run setup.choice("[[Continue->Torgar_Lost_Path_Idle_EncounterStart_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny", true)>>
With a roar, he thrust forward, sending load upon a load of dark, corrupted seed upon the dunes. He's a beast, a true monster...
One who finally catches a glimpse of you.
"Grrahhhhh... Ahhhhh... Come..."
It is all he can mutter before standing to fight you.
His lust is infectious; you are not sure if he even wants to be on top; your corrupted bodies will guide you both.
<<print setup.getFightStartPassages($CharacterSheet_Torgar)>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "angry")>>
Groans and growls, his body not showing signs of any wounds.
Yet he is now on his knees, both hands clasping his cock in a surge of pleasure.
"Grrrrrr... Get in there. Take me!"
\<<run setup.choice("[[Continue->Torgar_Lost_Path_Idle_Win_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming")>>
His impatence is showing, one of his hand reaches down to finger his own ass.
The power of your bond suddenly surges.
You feel the pleasure rush through him, urging you to take him.
\<<run setup.choice("[[Fuck him->Torgar_Lost_Path_Idle_Win_3]]");>>
\<<run setup.choice("[[Leave->Village]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 1)>>
\<<set $CharacterSheet_Torgar.quest.relationshipScoring++>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "angry")>>
You walk to him, using his desperate lust as a way to tease him.
"Cmon... Fuck me!"
He screams as you grasp his pecs from behind.
\<<if setup.sizecomparison(setup.getStatValue($CharacterSheet_Player, "height"), setup.getStatValue($CharacterSheet_Torgar, "height")) >= setup.Comparators.MUCH_BIGGER>>
You are impossibly huge compared to him; an ordinary mortal would break under the weight of your monstrous cock.
Thankfully, Torgar is no such thing anymore.
\<</if>>
\
\<<run setup.choice("[[Continue->Torgar_Lost_Path_Idle_Win_3_1]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming")>>
You barely need to press your <<print setup.processFlavours($CharacterSheet_Player, "@[all|cocks|noverb]")>> upon his entrance for him to cling to you.
<h2>“GRAAHHHHH!!!”</h2>
He roars, both hands clenching his nipples. Pleasure shakes him to his core as thick loads of black cum gushes out of his cock.
\<<run setup.choice("[[Continue->Torgar_Lost_Path_Idle_Win_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming", true)>>
Yet, you both know that it's only the beginning. Your heart pulses faster and faster with every thrust. Every dominant move makes Torgar's skin shiver.
You feel its lust, the corruption welcoming your body to dig your <<print setup.processFlavours($CharacterSheet_Player, "@[all|cocks|noverb]")>> even deeper.
<h2>"Deeper..."</h2>Torgar says in response.
By uttering those words, you feel your cock throb, every inch of it that's now surrounded by corrupted flesh.
You feel it reach for you, digging into your man meat, pumping it longer, more prominent, fatter.
\<<run setup.choice("[[Thrust deeper->Torgar_Lost_Path_Idle_Win_5]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming", true)>>
Your mouth opens as you join Torgar's lustful growls. It is like your cock is growing hard all over again.
Every thrust becomes tighter and much more pleasurable.
<h2>"Yessssss"</h2> Torgar moans, feeling your powerful thrusts reach him to his core.
\<<run setup.choice("[[Thrust deeper still->Torgar_Lost_Path_Idle_Win_6]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming", true)>>
You both growl; every thrust is now so deep that you feel your balls slap against the half-orc's corrupted form.
Every contact sends a sudden burst of growth upon them, sloshing more of your potent seed for him to enjoy.
They ripple with pleasure, embracing the dark powers of Torgar's corruption.
It only makes you hornier, so brimmed to the edge with pleasure.
\<<run setup.choice("[[Continue->Torgar_Lost_Path_Idle_Win_7]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming", true)>>
You feel climax come to you like a freight train as you thrust balls deep into him. But it can't seem to arrive.
You're stuck on the edge, with the limits of pleasure being pushed further and further away from you. It is so good, so good it's maddening.
You can only thrust deeper in the hopes that you can achieve pleasure beyond what it will now support.
\<<run setup.choice("[[Thrust even deeper->Torgar_Lost_Path_Idle_Win_7_1]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming", true)>>
You clench your balls and nipples and focus on Torgar's mad pleasurable growls. His lust seeps into your thoughts, pushing you to grow even more...
<h2>"Ohhhhh YESSSSSS!"</h2> He roars, shooting loads of thick black ooze all over you both. It rains upon you both as he desperately jerks himself off, but his climax never seems to end.
<h2>“YESSSSSSSS!!!!”</h2> You don't notice how much bigger you're growing, but you feel your cock burst in size.
With one final thrust, you finally break the dam.
\<<run setup.choice("[[Cum->Torgar_Lost_Path_Idle_Win_8]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "cumming", true)>>
Vivid images of being surrounded by Lost fill your mind.
You stand among them, fucking and getting fucked by everthing around you in an endless chorus of lust and power.
<h2>"Grahhhhhh!!!!" </h2>
Togar roars once more, pulling you back to reality as you unleash your load inside of him. His clawed hands dig into the ground, forcing him to take every drop.
He gasps for air, desperately holding on as he keeps on shooting his corrupted load.
\<<run setup.choice("[[Continue->Torgar_Lost_Path_Idle_Win_9]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny", true)>>
You feel compelled to hold him, to feel his gooey cock with your tongue.
You soon both fall, nearly passing out from the mind-shattering pleasure surging through you both.
"This... Nothing could ever be better than this." Torgar says with surprising clarity.
\<<run setup.choice("[[Continue->Torgar_Lost_Path_Idle_Win_10]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player", "CharacterSheet_Torgar"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny", true)>>
"Thank you for opening my mind to all of this." He says before resting his head on your pecs.
You hold him, letting time pass without a care in the world.
At your size and stature, no one would dare disturb either of you.
∇: Torgar's cock has grown <<print setup.getLength(setup.applyGrowth($CharacterSheet_Torgar, "cock", 7))>> longer.
∇: Torgar's balls has grown <<print setup.getLength(setup.applyGrowth($CharacterSheet_Torgar, "height", 3))>> in diameter.
∇: Torgar's muscles have grown (<<print setup.applyGrowth($CharacterSheet_Torgar, "muscles", 5)>>).
\<<run setup.applyCorruption($CharacterSheet_Torgar, 200)>>
∇: Torgar's Corruption has increased by 200.
∇: Your cock has grown <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "cock", 7))>> longer.
∇: Your balls has grown <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "height", 3))>> in diameter.
∇: Your muscles have grown (<<print setup.applyGrowth($CharacterSheet_Player, "muscles", 5)>>).
\<<run setup.applyCorruption($CharacterSheet_Player, 15)>>
∇: Your Corruption has increased by 15.
∇: You have gained a rank for "Torgar's Corrupted Bond".
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_TorgarsBond)>>
\<<if $CharacterSheet_Torgar.quest.relationshipScoring >= 11>>
\<<run setup.choice("[[Continue->Torgar_Lost_Path_Idle_Win_Epilogue]]");>>
\<<else>>
\<<run setup.choice("[[Leave->Village]]");>>
\<</if>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player", "CharacterSheet_Torgar"])>>
\<<set $CharacterSheet_Torgar.quest.progress = setup.TorgarProgress.LOST_TEAMMATE>>
\<<run setup.torgarJoinsPlayer()>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
"Our bond is so strong; it truly feels like we could take on anything.
Maybe finding a haven for my people was not the best way to look at it.
Maybe I need to present everyone this power, let the hungry feed on our seed, let the weak grow into powerful beasts."
His massive tendrils wrap around your waist, grazing your cock.
"Let me accompany you, grow with you, so we can make things right."
∇: Torgar has joined your party.
\<<run setup.choice("[[Leave->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
You fall, overwhelmed by the strength of the corrupted half-orc. His strength has increased; every hit comes with the might of whatever is now a part of him.
"Guhhhhh... This is not enough..." He moans.
\<<run setup.choice("[[Continue->Torgar_Lost_Path_Idle_Loss_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
The half-orc looks up to the skies and roars, his cock throbbing and standing completely upright as he does so.
It is impossibly loud, louder than hundreds of canons shooting simultaneously. You cover your ears in response.
When he's done, he idly jerks himself off, awaiting a response.
"Until you show me what true power is, those Lost will have to do."
It only takes a few seconds for an equally loud screech to answer back, and he rushes towards it.
\<<run setup.choice("[[Leave->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "horny")>>
It only takes a short trek before Torgar finds and joins you in your expedition.
\<<run setup.choice("[[Decide when Torgar attacks->Torgar_Lost_Teammate_ChangeAttackTiming]]");>>
\<<run setup.choice("[[Leave->Village][setup.flagTimePasses($CharacterSheet_Torgar)]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Torgar, "smiling")>>
"Of course, even monsters like us can benefit from a good strategy."
<<print setup.displayAttackTimingDescription($CharacterSheet_Torgar)>>
[[Attack before me->Torgar_Lost_Teammate_EncounterStart][$CharacterSheet_Torgar.fight.teammateSettings.attackTiming = setup.AttackTiming.BEFORE_PLAYER]]
[[Attack after me, but before our enemy->Torgar_Lost_Teammate_EncounterStart][$CharacterSheet_Torgar.fight.teammateSettings.attackTiming = setup.AttackTiming.BETWEEN_PLAYER_AND_ENEMY]]
[[Attack after me, but after our enemy->Torgar_Lost_Teammate_EncounterStart][$CharacterSheet_Torgar.fight.teammateSettings.attackTiming = setup.AttackTiming.AFTER_ENEMY]]
\<<run setup.choice("[[Cancel->Torgar_Lost_Teammate_EncounterStart]]");>><<set $CharacterSheet_town_guard.quest.met = true>>\
Tendrils of black curl down your forearm as <<SymbioteName>> reacts to your rising anger. You feel the ethereal presence hug your mind, affirming that it has your back, that you have no reason to be afraid.
You charge at the man, fist raised!
"As I thought! Submit or die!" the guard roars, drawing his weapon!The dust riled up by your battle begins to settle; a shimmering sheen of brown that acts as a backdrop to your hulking form standing over the fallen guardsman.
Power still sizzles within your core; a rabid beast of strength battering at the cages of your senses.
<<set $CharacterSheet_town_guard.quest.beatenOnce = true>>
\<<run setup.choice("[[Leave him->leave_guard]]");>>
\<<run setup.choice("[[Knock him out->knock_guard]]");>>
<<if $CharacterSheet_Player.hasAbility("Ability_MemoriesOfNyx")>>\
\<<run setup.choice("[[Corrupt him->corrupt_guard]]");>>
<</if>>\<<set $CharacterSheet_town_guard.quest.fled = true>>\
You shake your head and drop the man to the floor. He lands on the ground with a heavy thud and skitters toward the town, never taking his eyes off of you. "M-monster!" He cries, before turning and fleeing.
Light coughing from behind catches your attention as the familiar face of Abel wades into view through the cloud of dirt. "What in the name of the Eldest is going on here!?"
\<<run setup.choice("[[Continue->abel_gets_better_look_guard_alive]]");>>Even through the haze of adrenaline fueling every one of your pulsing veins, you notice the fear glaze over the eyes of the guardsman.
You decide that the best course of action is to knock him out cold.
A dull thud resounds off of his skull from your blow as his body falls limp at your feet.
\<<run setup.choice("[[Continue->abel_gets_better_look_guard_unconscious]]");>><<set $CharacterSheet_town_guard.quest.corrupted = true>>\
It's too much to contain!
The building pressure of lust within you has been screaming at you the entire journey.
The sudden flourish in your loins leaves you panting, steam rolling from your mouth in misty puffs.
There is no point in this violence. There is no point in having someone against you.
<span class="glitch nyx fucked" data-text="G̶̠͉͖͐R̴̛̎̔̚͜Ȍ̵̹̹̹̖̅W̷̨͊̾̚͠">All shall</span><span class="glitch nyx" data-text="S̶͔̣͈͕̥̆̎̔͑́́̈̿̾̆͝͝ͅP̶̼̺̪̘͚̱͓̙̭̙͐̇̄̐̍̋̅̅̆̕͘͘͠R̴̦̩͕̙̿͆͌̾̈́̏͐̕E̶̡̧̝̭̩̪̜͙͋̓̿̓͝A̴̜̘͚̜͕̜̙̺͎̤͋̀̓̀̊̂̔̿͑̾̐̀̃͐̑̾͜͜ͅD̶̢̘͚̹̦̟̈́͒͐͆́͘"> gaze upon </span><span class="glitch nyx fucked" data-text="C̷̛̛̱̹̟͚͕̱̗͎͙̳̞̜̘̬̝͖̖̟̻̐̎́̌̈͐̉͑͐̋̽̔̋͂̋͝ͅƠ̶̢̱̯̬̖̥̠̬̼̼̼̜͔̬̜͚̯̺̹̩̐̍̅͒̅̓̀̚͠R̷̨̡̛̪̣͚̲͕̝̥̩͚̗̭̫̯̪͙̯̥̓͐̉̈́̒͐̃͒̽͊͛̀͋̅̕͜R̷̠̎U̵̧̫͙̺̤̰͎͓̦̓̎̿̈́̈̅́͌͝P̸̘͔̺̘̮̼̱̭̜̲͕̬̩̋̑́͜T̷͓̱͎̘̞̣͎̗̙̦̲͔͒͛͑̋̔̊̀͑̔͒͆̚̚͜͝͠͝͝ͅ">the host of Nyx</span>
You hold him tightly against you, your hand moving to support his head rather than choke him out. He offers a muffled squeal in fear before you silence him be locking your lips with his.
<<print setup.processFlavours($CharacterSheet_Player, "His body goes limp in your @[all|arms|noverb]. You feel his cock hardening alongside your own, your @[all|cocks|noverb] joining in the ascent of heated lust.", true)>>
You hold him tightly against you. His deep breaths push his stomach tightly against yours. Your eyes close as your tongues begin to dance together. Spit mixes with spit and your breaths intermingle in each others' throats.
A power wells up within you, flows upwards from your core and drips from your tongue directly into the guard's throat.
Black veins begin to appear from the man's neck and slowly begins to work over his body. You feel his initial reluctance completely simmer away. \
His body pulses against yours, sliding upwards and outwards. He embraces you, his form bulking up ever so slightly.
Light coughing from behind catches your attention and forces the two of you to break your kiss. The familiar face of Abel wades into view through the cloud of dirt. "What in the name of the Eldest is going on here!?"
\<<run setup.choice("[[Continue->abel_gets_better_look_guard_corrupted]]");>>You find yourself frozen with the tip of a sword poised at your throat. A single movement and your journey would be at an end.
"Any last words?" he barks.
\<<run setup.choice("[[Continue->Quest_MQ001_EchoPostMerge_3_Meet_Abel_aggressive]]");>>You turn to face your friend proper, leaving the fleeing guard to disappear into the distance.
You notice that Abel is wearing the ceremonial kit reserved for the Herald of the Eldest. Questions spin within your mind like a frenzied flock of crows.
"$CharacterSheet_Player.info.name!? Is that you?" Abel blurts out while wrapping some cloth around his nose, "What happened here!? What in the blazes was that all about?"
"No, nevermind," he stammers, "It's dangerous to talk here. Meet me at my house, you can explain where the hell you have been and what just happened when we're there."
\<<run setup.choice("[[Continue->Village]]");>>You turn to face your friend proper.
You notice that Abel is wearing the ceremonial kit reserved for the Herald of the Eldest. Questions spin within your mind like a frenzied flock of crows.
"$CharacterSheet_Player.info.name!? Is that you?" Abel blurts out while wrapping some cloth around his nose, "What happ-?"
He stammers, looking at the limp guardsman, "Did... did you do this? Why?"
The joyful expression he donned when he came into view simmers away into a colour of sadness and fear.
"What happened to you out there? The $CharacterSheet_Player.info.name I knew would never lift a finger to one of our own!" Abel takes a few steps backwards, moving back toward the town, "Leave him here, I'll see to it he gets medical attention. You've done enough as it is. Get inside, and come to my house. We need to talk. About you. About this. About everything."
\<<run setup.choice("[[Continue->Village]]");>>You turn to face your friend proper.
You notice that Abel is wearing the ceremonial kit reserved for the Herald of the Eldest. Questions spin within your mind like a frenzied flock of crows.
"$CharacterSheet_Player.info.name!? Is that you?" Abel blurts out while wrapping some cloth around his nose, "What happ- oh... Am I interrupting something?"
"N-no! Nothing at all!" The guardsman steps away as he begins to register what had happened. A bashful blush washes across his face, "I'll return to my duties. You may pass."
"Uh..." Abel stammers as he watches the guard shamble away, his cheeks burning bright red, "What was that about, exactly? Nevermind that, please, let's get you into the Golden Bastion. Come meet me in my house, we have a lot of catching up to do!"
\<<run setup.choice("[[Continue->Village]]");>><<include Ending_OneWithApothus>>
<<include Ending_OneWithNyx>>
<<include Ending_MemoriesOfCray>>
<<include Ending_NyxChosenAscension>>
<<set $EndingSheet =
[
$Ending_OneWithApothus,
$Ending_MemoriesOfCray,
$Ending_NyxChosenAscension,
$Ending_OneWithNyx,
];>>A figure gradually emerges from the opaque void, moving steadily in your direction, evidently driven by the purpose of wrenching you from the encroaching abyss.
Every heavy step this stranger takes is telegraphed to your ears, amplified by the eerie silence that has swallowed any and all other sounds.
You suddenly realize who the silouhette belongs to.
<<print setup.getNextNarativeEventPassageListText(setup.StorySheet_Player.apothusPostFightLinks, 10)>>\[[Reach for Kanathar->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerWins_Companions_Kanathar]]You believe you've glimpsed a shimmering shadow of your mischievous companion, but he is absent.
His moment exists somewhere else, vaguely tethered to the present.
His time has passed, and is yet to come.
\<<run setup.choice("[[Continue->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerWins_Companions]]");>>[[Reach for Tiadane->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerWins_Companions_Tiadane]]<<include Feed_The_Chosen_Final_Minotaur>>[[Reach for Ferro->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerWins_Companions_Ferro]]<<include Ferro_Ending>>[[Reach for Ethrex->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerWins_Companions_Ethrex]]<<include Ethrex_Ending>>[[Struggle alone->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerWins_Struggle]]<<include Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerWins_7>>[[Consume Apothus->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerWins_Consume]]<<include Feed_The_Chosen_Final_CorruptEverything>>All you can hear is your heavy breathing as a wave of corruptive energy washes over you.
You stare back at Apothus and grin, knowing how much of a failure he has become in the eyes of Nyx.
Your veins glow in otherworldy purple; A glow that taints the air and soil.
\<<run setup.choice("[[Continue->Feed_The_Chosen_Final_CorruptEverything_1]]");>>Countless Lost immediately cum as your vision is overwhelms by the Black Sun growing within you.
It fills your mind with visions of a corrupted world, one where people's deepest desires can be achieved.
Your grin widens in response, clenching your fist. Countless Lost start worshiping you as the god that you are.
\<<run setup.choice("[[Merge with Nyx->Feed_The_Chosen_Final_CorruptEverything_2]]");>>You welcome the worships of the Lost, let them pleasure every inch of your growing form.
Their slick gooey selves rubbing and licking every part of your body that they can reach.
Your lift an arm towards the Lost, one that shines brighter than the flame of a thousand suns.
The dark light seeps into their skin, feeds them with the mass and power of giants.
\<<run setup.choice("[[Continue->Feed_The_Chosen_Final_CorruptEverything_2_1]]");>>They hiss and moans in pleasure as their muscles surge with the power of gods.
Soon the ruins shatter and crumble under the mass of worshippers growing around them.
Like the hungry beasts that they are, they lunge at you.
Countless wet tongues, cocks and tendrils worship your cocks and muscles.
You feel their devotion warp your form, their unadulterated lust <span class="glitch nyx" data-text="fueling your ascension. ">fueling your ascension. </span>
\<<run setup.choice("[[Ascend->Feed_The_Chosen_Final_CorruptEverything_3]]");>>Your body suddenly lurches forward, multiple new appendages bulging against the skin of your back, demanding freedom!
Countless tendrils burst from you, wriggling this way and that, as if they had a will of their own, seeking out ambitious warriors and leaders,
securing them within their coils, fucking them, turning them, <span class="glitch nyx" data-text="corrupting them">corrupting them</span>, growing them into new, gigantic corrupt gods.
\<<run setup.choice("[[Continue->Feed_The_Chosen_Final_CorruptEverything_3_1]]");>>Meanwhile some of your cocks begin birthing legions of spawns that seek out those dedicated few who spread and disseminate your <span class="glitch nyx fucked" data-text="words of power">words of power</span>.
Their bodies shred their clothing to grow into the enormous, hyper-endowed brutes of brawn and lust that they had always desired to be.
Other dicks begin belching thick waves of tainted seed upon the ground that seeps within the shattered ruins,<span class="glitch nyx" data-text=" c̴̡͂̇o̶̖͚̹͌̐̾n̴̖͓̒͂ q̸͓͉̊̅u̵̩͕̦̅e̸̝͐͋͠ŕ̶͖̑i̶̮̫̿͝n̵͓̣̥̒͝g̸̨̬̪͒ ̴̝̽ t̷͓͛͐h̴̢̙̐̂ĕ̷̢̧͕̀ ̸̛͓͉̟͝p̷͓̀͋̕l̶̯̺̾͌̄ǎ̶̡̓͝n̶̖͉̝͛̾̕ę̵͉͍͆ẗ̷̓̅͜"> corrupting the soil</span>.
Even Apothus loses himself to the fire in your eyes.
\<<run setup.choice("[[Continue->Feed_The_Chosen_Final_CorruptEverything_3_2]]");>>Twisted, tainted plants begin growing in patches spreading outward from you as you begin to mutate the immediate surroundings into a realm of infectious lust where arousal fills the air.
Thick, veiny, wriggling vines tipped with massive phallic like buds begin sprouting from the ground, plunging into and filling your new followers with even more power, making them cum onto the rich, fertile ground.
<span class="glitch nyx fucked" data-text="feeding the cycle and spread">feeding the cycle and spread</span> of corruption as it begins to spread horizon to horizon...
\<<run setup.choice("[[Spread...->Feed_The_Chosen_Final_CorruptEverything_4]]");>><<run setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.PURPLE)>>\
Like a shadow creeping across the surface of the planet, your corruption continues to engulf all it reaches.
As the taint spreads from realm to realm, darkening the endless barren's sands, you feel each new god awaken with an overwhelming tsunami of pleasure.
It cascades over you as they ascend into their own eruptions of bliss that feed the spreading corruption <span class="glitch nyx fucked" data-text="c̴̡͂̇o̶̖͚̹͌̐̾n̴̖͓̒͂q̸͓͉̊̅u̵̩͕̦̅e̸̝͐͋͠ŕ̶͖̑i̶̮̫̿͝n̵͓̣̥̒͝g̸̨̬̪͒ ̴̝̽t̷͓͛͐h̴̢̙̐̂ĕ̷̢̧͕̀ ̸̛͓͉̟͝p̷͓̀͋̕l̶̯̺̾͌̄ǎ̶̡̓͝n̶̖͉̝͛̾̕ę̵͉͍͆ẗ̷̓̅͜">conquering the planet</span>.
You feel their power enhancing yours, growing and mutating your body further!
\<<run setup.choice("[[Spread...->Feed_The_Chosen_Final_CorruptEverything_4_1]]");>>Two new massive arms burst from your sides, bulging with sinew and muscle, expanding to match your <<print setup.processFlavours($CharacterSheet_Player, "@[all|arms|noverb]")>>.
Your <<print setup.processFlavours($CharacterSheet_Player, "@[all|hands|noverb]")>> grab and stroke some of your dicks, tendrils lashing from your back, <span class="glitch nyx" data-text="coiling around new cocks">coiling around new cocks</span> as they grow from between your legs in response.
These new prehensile lengths <span class="glitch nyx fucked" data-text="s̶͓͗è̸̘̥̚ë̶̱̫͐k̷͍̗͒ ̵̛͕̖̓ó̵͓̈ ǔ̴͇͘t̷̖̙͒">seek out</span> newly converted acolytes to spread your gift to, fucking them and growing them into massive horny beasts.
\<<run setup.choice("[[Spread...->Feed_The_Chosen_Final_CorruptEverything_4_2]]");>><span class="corruptText75">The howls of corrupted beasts and raging lusts overwhelm your newly heightened deific senses and your eyes drift closed against the din of <span class="glitch nyx fucked" data-text="ḙ̷̒x̷̥͗͋u̷͔̿̃l̴͖̓t̷̡̻̆̒a̸͈͖͌͝t̶̨̋̇ì̵̮ő̷̫n̷̫͑ ̷̡̩̓̈́ a̷̧̛̔n̴̝͍̆̃d̴̝͍̚ ̶̺͙͊̊d̷̻͐͗e̵̹̞̾p̴̨̫̈́ṙ̶̭̪ä̴̤́͘͜v̴̹͒i̶͖͍͝ẗ̵̞́̾y̶̙̆͘">exultation and depravity</span>.
Your face contorts as a new pair of <span class="glitch nyx fucked" data-text="g̸͓̜̚l̴̖̥̈́̑o̶̠̞͒͗w̶̡̛i̴̢͉̿n̸͍̣̓̉g̵̯̀,̶̢̓ ̴̝̦͊̾ p̴͎̰͠u̴͖̒r̴͓̆p̶̝̍̚l̴͉̎͑e̶̩͚̓̎ ̷͕̮̋ ę̵̂̑y̵͔͉̐͑e̴̮͕̊s̸̝̗̊̈́">glowing, purple eyes</span> suddenly settle into place.
When they once again open, <<print setup.processFlavours($CharacterSheet_Player, "@[all|eyes|noverb]")>> burn with <span class="glitch nyx" data-text="e̵̝̽n̵̹̈͛d̷̖͕̔͘l̵̜̯̎̈́e̵̖͑ŝ̵͉͈s̵̲̽ ̵͍̣͠ ̴̡̬̈̾ ̶̜̍ṕ̷̘͉̓ỏ̴͍͔͂w̷̜̣̐͊ȩ̴͉̿̔ṟ̵̍ ̴͚̘̿͝ ̷͍̌ ̴͈͂a̴̢͈̐̾n̵̯̔̆d̸̢̛̹ ̵̤͛͜͠ ̵̺̮̈ ̸̥̆ͅc̷̯̬̈́ô̶̖͜r̶̖͘r̶̰̘͋ȗ̴͙̘̀p̸̦̩̂t̴̳̝̽̉i̸͍̚͝ō̸̡̢͝ń̴͚">endless power and corruption</span>, \
illuminating your surroundings with their <span class="glitch nyx fucked" data-text="S̶̠̊͝E̵͓͇͋À̷̝Ȓ̵̹̥Ị̴͙́̔N̵̜͍͂̽G̵͈͚͒ ̷̞̙̔͠ P̸̞̐Ǘ̸̩̏R̸̮̫̀P̷̮̉̕L̶̗͘͠Ē̴̦͓ ̵͎̤̆̒Ǵ̵͍̞́A̴͎̠̒Z̷̛̥̅E̵̼̘͐.̷̢͈̀̎">searing purple gaze.</span></span>
\<<run setup.choice("[[Usher in a New Age->Feed_The_Chosen_Final_CorruptEverything_5]]");>>\<<set $CorruptSidebar = true>>
<span class="corruptText100">\
<span class="glitch nyx fucked" data-text="G̶̠͉͖͐R̴̛̎̔̚͜Ȍ̵̹̹̹̖̅W̷̨͊̾̚͠">All shall</span>\
<span class="glitch nyx" data-text="S̶͔̣͈͕̥̆̎̔͑́́̈̿̾̆͝͝ͅP̶̼̺̪̘͚̱͓̙̭̙͐̇̄̐̍̋̅̅̆̕͘͘͠R̴̦̩͕̙̿͆͌̾̈́̏͐̕E̶̡̧̝̭̩̪̜͙͋̓̿̓͝A̴̜̘͚̜͕̜̙̺͎̤͋̀̓̀̊̂̔̿͑̾̐̀̃͐̑̾͜͜ͅD̶̢̘͚̹̦̟̈́͒͐͆́͘"> gaze upon </span>\
<span class="glitch nyx fucked" data-text="C̷̛̛̱̹̟͚͕̱̗͎͙̳̞̜̘̬̝͖̖̟̻̐̎́̌̈͐̉͑͐̋̽̔̋͂̋͝ͅƠ̶̢̱̯̬̖̥̠̬̼̼̼̜͔̬̜͚̯̺̹̩̐̍̅͒̅̓̀̚͠R̷̨̡̛̪̣͚̲͕̝̥̩͚̗̭̫̯̪͙̯̥̓͐̉̈́̒͐̃͒̽͊͛̀͋̅̕͜R̷̠̎U̵̧̫͙̺̤̰͎͓̦̓̎̿̈́̈̅́͌͝P̸̘͔̺̘̮̼̱̭̜̲͕̬̩̋̑́͜T̷͓̱͎̘̞̣͎̗̙̦̲͔͒͛͑̋̔̊̀͑̔͒͆̚̚͜͝͠͝͝ͅ">[[ the host of Nyx->Feed_The_Chosen_Final_CorruptEverything_6]]</span>\
</span>
\<<run setup.applyCorruption($CharacterSheet_Player, 9999999)>><span class="corruptText100">\
<span class="glitch nyx fucked" data-text="C̷̛̛̱̹̟͚͕̱̗͎͙̳̞̜̘̬̝͖̖̟̻̐̎́̌̈͐̉͑͐̋̽̔̋͂̋͝ͅƠ̶̢̱̯̬̖̥̠̬̼̼̼̜͔̬̜͚̯̺̹̩̐̍̅͒̅̓̀̚͠R̷̨̡̛̪̣͚̲͕̝̥̩͚̗̭̫̯̪͙̯̥̓͐̉̈́̒͐̃͒̽͊͛̀͋̅̕͜R̷̠̎U̵̧̫͙̺̤̰͎͓̦̓̎̿̈́̈̅́͌͝P̸̘͔̺̘̮̼̱̭̜̲͕̬̩̋̑́͜T̷͓̱͎̘̞̣͎̗̙̦̲͔͒͛͑̋̔̊̀͑̔͒͆̚̚͜͝͠͝͝ͅ">AN</span>\
<span class="glitch nyx" data-text="S̶͔̣͈͕̥̆̎̔͑́́̈̿̾̆͝͝ͅP̶̼̺̪̘͚̱͓̙̭̙͐̇̄̐̍̋̅̅̆̕͘͘͠R̴̦̩͕̙̿͆͌̾̈́̏͐̕E̶̡̧̝̭̩̪̜͙͋̓̿̓͝A̴̜̘͚̜͕̜̙̺͎̤͋̀̓̀̊̂̔̿͑̾̐̀̃͐̑̾͜͜ͅD̶̢̘͚̹̦̟̈́͒͐͆́͘"> UNSTOPPABLE </span>\
<span class="glitch nyx fucked" data-text="G̶̠͉͖͐R̴̛̎̔̚͜Ȍ̵̹̹̹̖̅W̷̨͊̾̚͠"> [[FORCE->Feed_The_Chosen_Final_CorruptEverything_7]]</span>\
</span><span class="corruptText100">\
<span class="glitch nyx fucked" data-text="C̷̛̛̱̹̟͚͕̱̗͎͙̳̞̜̘̬̝͖̖̟̻̐̎́̌̈͐̉͑͐̋̽̔̋͂̋͝ͅƠ̶̢̱̯̬̖̥̠̬̼̼̼̜͔̬̜͚̯̺̹̩̐̍̅͒̅̓̀̚͠R̷̨̡̛̪̣͚̲͕̝̥̩͚̗̭̫̯̪͙̯̥̓͐̉̈́̒͐̃͒̽͊͛̀͋̅̕͜R̷̠̎U̵̧̫͙̺̤̰͎͓̦̓̎̿̈́̈̅́͌͝P̸̘͔̺̘̮̼̱̭̜̲͕̬̩̋̑́͜T̷͓̱͎̘̞̣͎̗̙̦̲͔͒͛͑̋̔̊̀͑̔͒͆̚̚͜͝͠͝͝ͅ">TO FULLFILL</span>\
<span class="glitch nyx" data-text="S̶͔̣͈͕̥̆̎̔͑́́̈̿̾̆͝͝ͅP̶̼̺̪̘͚̱͓̙̭̙͐̇̄̐̍̋̅̅̆̕͘͘͠R̴̦̩͕̙̿͆͌̾̈́̏͐̕E̶̡̧̝̭̩̪̜͙͋̓̿̓͝A̴̜̘͚̜͕̜̙̺͎̤͋̀̓̀̊̂̔̿͑̾̐̀̃͐̑̾͜͜ͅD̶̢̘͚̹̦̟̈́͒͐͆́͘"> THE CREATOR'S </span>\
<span class="glitch nyx fucked" data-text="G̶̠͉͖͐R̴̛̎̔̚͜Ȍ̵̹̹̹̖̅W̷̨͊̾̚͠"> [[WILL->Feed_The_Chosen_Final_CorruptEverything_8]]</span>\
</span><span class="corruptText100">\
<span class="glitch nyx fucked" data-text="C̷̛̛̱̹̟͚͕̱̗͎͙̳̞̜̘̬̝͖̖̟̻̐̎́̌̈͐̉͑͐̋̽̔̋͂̋͝ͅƠ̶̢̱̯̬̖̥̠̬̼̼̼̜͔̬̜͚̯̺̹̩̐̍̅͒̅̓̀̚͠R̷̨̡̛̪̣͚̲͕̝̥̩͚̗̭̫̯̪͙̯̥̓͐̉̈́̒͐̃͒̽͊͛̀͋̅̕͜R̷̠̎U̵̧̫͙̺̤̰͎͓̦̓̎̿̈́̈̅́͌͝P̸̘͔̺̘̮̼̱̭̜̲͕̬̩̋̑́͜T̷͓̱͎̘̞̣͎̗̙̦̲͔͒͛͑̋̔̊̀͑̔͒͆̚̚͜͝͠͝͝ͅ">[[GRAHH->Ending][State.variables.CorruptSidebar = undefined]]</span>\
<<print setup.displayRandomNyxGibberish(1000)>>
\<<run setup.triggerEnding("Ending_OneWithNyx")>>\<<set $CharacterSheet_Ethrex.quest.nyxEnding = true>>
“I don’t think so.”
Without even looking in your direction, Ethrex walks past you.
\<<run setup.choice("[[Continue->Ethrex_Ending_2]]")>>You watch your companion reaches out and roughly grab Apothus's head with his meaty, claw-tipped fingers.
His hand lunges forward, barbed claws sinking into Apothus's skull.
His hold is unyielding, wrenching the head back with a savage jerk, forcing eye contact between them.
The words he purrs ring chillingly tender, bordering seductively grim.
"Quite the reserve of strength tucked away in that worn-out vessel of yours."
\<<run setup.choice("[[Continue->Ethrex_Ending_3]]")>>Abruptly, the gentleness within his tone evaporates, replaced by a deep-rooted malevolence.
"Time to put it all to better use."
The widening of Apothus's eyes speaks of his stark disbelief.
As if time has decelerated, his entire being seems to liquefy under the incubus's ruthless grip.
\<<run setup.choice("[[Continue->Ethrex_Ending_4]]")>>As though pulled by an invisible tether, his vital spirit flows towards the incubus, defying logic as he becomes its new center of gravity.
Tendrils of energy snake along his form, slithering beneath the skin with an echo of a last, rebellious roar.
Muscles ripple along his forearm and bicep, quivering under the immense strain of their flexing, then distend even more violently.
The sudden amplification of raw power beneath his skin signals new flesh being woven into reality right before your eyes.
\<<run setup.choice("[[Continue->Ethrex_Ending_5]]")>>\<<run setup.boostNyxEthrexStats()>>
He turns back to face you once more.
That faint purple glimmer in that once was once hidden within his eyes is now a brilliant glow.
You feel it burn past the edges of his figure as if it were some intangible flame.
Δ: Ethrex gains an immense upgrade to health, prowess, strength and Corruption.
\<<run setup.choice("[[Continue->Ethrex_Ending_6]]")>>“Didn’t want to give him the chance to regenerate. Surely he would have done something stupid like try to forcibly draw more of Nyx’s power and go completely mad in the process.”
His attention shifts abruptly, gaze drifting to the ominous swell of muscle on his arm.
A hint of admiration flickers in his eyes as his tongue slides over his lips.
"I have control over it. I am no mere animal overwhelmed by power. I control it as freely as I control my own limbs."
\<<run setup.choice("[[Continue->Ethrex_Ending_7]]")>>His words taper to a softer timbre, touched with a sense of veneration and fascination.
"This power is alive. It calls to me and tells me of its true purpose, its true origin. And it begs to return there once more."
\<<run setup.choice("[[Continue->Ethrex_Ending_8]]")>>Straightening his back, Ethrex lets his voice return to normal as he addresses the listener more formally, as though a noble knight issuing a challenge.
"My claim to this power is inevitable. You will kneel~"
\<<run setup.choice("[[Fight!->FightLogic][$Encounter_Target = $CharacterSheet_Ethrex]]");>>With a final, powerful blow, you send your former companion sprawling.
"Never fail to surprise me, do you, big guy?" He croaks hoarsely through his partially crushed throat and larynx.
"Even now your power is well beyond expectation."
As encouraging as the sight and sound of the treacherous demon before you should be, the confident, if strained, way he speaks is concerning.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Win_NyxEnding_2]]");>>Sparks of unnatural power jump back and forth across large gashes and circle around deep bruises to close wounds.
His body starts healing.
Such injuries would have taken even the more powerful Lost at least a couple of hours to regenerate.
But Ethrex is standing in less than a minute with no visible battle signs whatsoever.
"Do you see, my friend? You can't stop me. You can't even hurt me," he says, unable to keep a slight tinge of smug satisfaction out of his words.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Win_NyxEnding_3]]");>>Even if he is sincere about not having meant them any harm, it's clear he is enjoying feeling superior to you once more.
"If I must beat the defiance out of you to keep you from doing something truly foolish, then I shall, over and over."
Without warning, more concentrated arcs of purple lightning, far stronger and larger than those which have healed his injuries, burst into existence.
They crawl across his body like snakes.
Everywhere they touch, Ethrex grows.
\<<print setup.growNyxEthrexStats()>>
\<<run setup.choice("[[Continue->Encounter_Ethrex_Win_NyxEnding_4]]");>>His jaw clenches and a low but building growl wells up from deep within his scaly chest.
The thick, interlocking fangs lining his jawline visibly thicken and swell to more monstrous and intimidating proportions.
The horns on his head and the bony protrusions along his shoulders and forearms thicken and harden with the end of each scaly plate sharpening to a wicked point.
Even his mane fluffs out, growing longer and thicker until he has a far more monstrous appearance.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Win_NyxEnding_5]]");>>Were it not for the gleam of intelligence still visible in his glowing eyes, it would be easy to mistake him as another wild Lost.
That too changes when his body starts to grow. His biceps and forearms bulge with additional muscle that stretches the scales covering them to their limit.
His pectorals swell outwards. His thighs expand and swell thicker.
Even his hands and feet swell to more monstrous proportions.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Win_NyxEnding_6]]");>>Though the surge of growth seems to have halted for now, he isn't entirely back to normal.
Faint flickers of lavender light pulse rhythmically beneath his skin, an otherworldly glimmer hinting at the power within.
His once coarse and untamed mane now undulates softly as if caressed by an ethereal breeze, a spectacle of spectral grace.
Strands of energy emanate from him, shedding an uncanny radiance from his mane.
The Corruption doesn't just live within him, it thrives. An energy festering with purpose.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Win_NyxEnding_7]]");>>\<<run setup.boostNyxEthrexStats()>>
\<<run setup.completeAchievement("Achievement_EndlessStruggle");>>
He lingers for mere moments in his monstrous new form, savoring the transformation with a look of delight.
Your former companion, now an incubus incarnate, directs his intense, glowing gaze back towards you.
Δ: Ethrex gains an immense upgrade to health, prowess, strength and Corruption.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Win_NyxEnding_8]]");>>His lips curl into a wicked grin, and he takes a step – a step that seems to make the world tremble.
His footfall doesn’t just thud against the earth; it slams with such force that a crater forms beneath it, sending cracks radiating outwards in a spider-web design.
Despite his colossal size, such weight and force seemed unnatural, hinting that he’s grown not just taller but denser, too.
This entity is a titan of strength, a being far more formidable than even his beastly appearance suggested.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Win_NyxEnding_9]]");>>“Now then...” The incubus growls.
His once sophisticated, slightly arrogant voice has transformed into a menacing rumble, akin to that of a savage beast.
“YOU WILL KNEEL!"
\<<run setup.choice("[[Fight!->FightLogic][$Encounter_Target = $CharacterSheet_Ethrex]]");>>“Foolish little mortal! Now do you see?!”
The voice of Ethrex resounds across the barren landscape, far louder than his colossal stature should logically allow.
His monstrous silhouette towers over you, even more terrifying than when your duel initially sparked into being.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Loss_NyxEnding_2]]");>>His backbone contorts, forcing him into a hunched posture that only amplified his beastly demeanor.
His fangs, talons, and various spiky outgrowths, glint menacingly.
Every trace of humanity, if such an attribute could ever apply to a demon such as him, has utterly vanished.
In its place, stands a monstrosity.
Ethrex's bellow echoes into the starry dome above, shaking the very foundation of existence.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Loss_NyxEnding_3]]");>>A horde of the Lost surge around you, lunging with wild desperation towards the monster that seizes center stage.
They swarm him, relentless and ravenous, each one consumed by an insatiable lust for the intoxicating power of Nyx.
Yet despite the ferocious onslaught, Ethrex exudes a tangible aura of authority—a corrupting dominance birthed from the intoxicating essence of Nyx.
It pulses around him, a pulsating fog of inky zurshite that worms its way into your senses, an addicting aroma seductive as a siren's song.
You can see why the Lost yearns so desperately for it.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Loss_NyxEnding_4]]");>>In a blind rampage, they aren't even seeking to harm Ethrex. They crave to tear him apart to access the warped energies he harbours, akin to famished hounds sniffing out succulent meat.
Overridden by sheer instinct, their forms melt into one another. Ethrex's legs and one stabilizing arm, fixed against the earth, shroud in an pool of formless, onyx-tinged goo.
The surge of this fused horde snakes its way up the colossal titan that is Ethrex.
"Ghhhhh... GRAHHHHHHH!"
\<<run setup.choice("[[Continue->Encounter_Ethrex_Loss_NyxEnding_5]]");>>The mass of seething, writhing forms pulsates and shifts, a grotesque semblance of sentient life, its hill-like silhouette looming menacingly in your vision.
Half-made werewolves, spectral human limbs, bulging minotaur heads - each emerges only to be torn back into the pulsating bulk.
Unrecognizable creatures lurk in the shadows of the writhing heap.
Each time a beast attempts to wrench itself free of the quivering mass, dozens of clawed hands, monstrous paws, and scalpel-sharp talons rip it back into the heart of the beast.
Rippling. Pulsating. Consuming. It is the stuff of legends twisted into a terrifying reality, and you are the unwilling witness to its monstrous majesty.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Loss_NyxEnding_6]]");>>A monstrous, bone-rattling roars echoes across the vast realm, its reverberating intensity strong enough to make the earth tremble beneath your feet.
Your heart jolts from the resonance of the sound, blood pulsating in your veins like a war drum.
As you look on in stark terror, the colossal entity before you distorts in a ripple.
The corrupted, amorphous substance seems to be forcing something out, like beast emerging from within.
Only this time, this is no ordinary lost soul struggling from within the monstrous mass.
A terrifying and massive head begin to form.
The familiarity of its defined silhouette is not lost upon you.
Its beastly muzzled head, lined with cruel fangs, imposing forward-pointing horns, and its jawline rugged with bony protrusions, are too uncanny to be a coincidence.
It is Ethrex.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Loss_NyxEnding_7]]");>>A wicked grin etches across his monstrous visage as he towers over the desolate realm, clenching the infernal power within his massive cock.
Searing energy writhes from it, reflecting within the glint of their demonic eyes.
His body, bulging with an obscene display of muscular prowess, trembles in anticipation of the transformation to come.
"Are you afraid, <<PlayerName>>?" he rumbles, his voice echoing like thunder across the desolate landscape.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Loss_NyxEnding_8]]");>>His gaze drops to the tiny speck of a warrior that dares to engage with him.
There's a hunger within him that grows endlessly, a desire far beyond the comprehension of any mere mortal.
It's a lust for power, chaos, and domination. If he had something that could be likened to a heart, it would be pounding in his chest.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Loss_NyxEnding_9]]");>>His balls churns and throb, hosting fist-sized corruptive parasites that quiver for release, ready to spread his influence, his infestation, across the world.
"With this power, I will be unstoppable... I will reshape the world."
The corruptive energy pulses once more, then abruptly quietens, like the calm preceding a catastrophic storm.
His skin tightens, bristling with raw, unadulterated power.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Loss_NyxEnding_9_1]]");>>Every pulsating vein in his colossal body screams for what is to come, for the power he's about to unleash.
He can't wait any longer.
"Behold, <<PlayerName>>," he roars, the raw power in his voice enough to spark lightning across the barren sky. "Witness the ascendancy of the true God of Lust."
An ear-splitting howl splits the air as pain and ecstasy surge through his hellish form, transforming him... ascending him.
His already grotesque muscles bloat and expand.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Loss_NyxEnding_10]]");>>Writhing in a frenzy, his muscles pulsate under the skin, each fiber eagerly drinking in the corruptive energy.
His body stretches and swells, growing in grotesque synchronicity with the wracking waves of the tormenting pleasure coursing through him.
With every beat at his core, his muscles distend further, reshaping his monstrous form into a godly hulk.
The lust kindled deep in the pit of his gut catches on, exploding into an insatiable, savage desire.
An uncontrollable, primeval hunger courses along his veins, reaching out to every fiber of his being.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Loss_NyxEnding_11]]");>>With a guttural roar that could make mountains shudder, tentacles burst from his back and whip about in a frenzied dance.
They shoot towards his cock, pleasure it like their lives depended on it.
"More... I want more!"
The spikes in power elicit primal roars from deep within his belly, shaking the earth and the heavens.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Loss_NyxEnding_12]]");>>His arms surrounds you and he pulls you close as an unending torrent of followers continues to throw themselves into him.
You feel your lust feeding him, empowering him.
His screams and frightful bleats of ecstasy ring through the air, mingling with the guttural grunts and roars of the Lost.
It is a symphony of chaos and desire, an ode to his limitless growth.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Loss_NyxEnding_13]]");>>A wave of raw, indomitable satisfaction crashes over him, and he raises his enormous head to the dark heavens, a thunderous roar of triumph ripping from his throat.
"Look upon your god, <<PlayerName>>!" he booms, his voice echoing across the vast and twisted landscape.
His laughter resounds with power.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Loss_NyxEnding_14]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "purple")>>
With a grasps of his cock with his colossal clawed hand, a spawn of Nyx emerges, wriggling free from his hulking form with a slurp.
It crawls up to you with devilish hunger, its contact with your skin infusing you with the same corruptive power coursing through Ethrex's veins.
Without warning, it crawls along your hard shaft, keeping it wet and hard before pushing itself into your slit.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Loss_NyxEnding_15]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
Your eyes widen, you feel your soul tainting as a monstrous transformation takes hold.
Your muscles begin to expand, bulging out in a grotesque display, edging closer to the monstrous mass that your god exhibits.
Pain and pleasure paint your face in equal measure, a beautiful picture of torment and euphoria.
He grins down at you.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Loss_NyxEnding_16]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "purple")>>
A fresh wave of parasites emerges from the depths of him, writhing in sensual delight — another reward for your worship.
Their squirming shapes move of their own accord toward your, eager to join their siblings in your ever-growing form.
You feel then push into your ass, mouth and cock. Pleasure spikes mercilessly, like a primal beast of lust awakening within your, forming an unsustainable surge of pleasure threatening to consume you whole.
Meanwhile, Ethrex's tentacles undulate madly, whipping around you, their unearthly dance adding to the surreal debauchery of your monstrous union.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Loss_NyxEnding_17]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
His laughter booms out again, ringing out in the desolate landscape, mingling with your panting breaths and guttural moans.
"No more games," he growls in a voice that rumbles the heavens.
With a growl of insatiable lust, his massive claws circle your waist, lifting you easily due to the horrific strength his monstrous form possesses.
The sensation of dominance, overwhelming power, and the anticipation of what's to come sends tremors of pleasure through his gigantic form.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Loss_NyxEnding_18]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
Never breaking his gaze with yours, he positions his monstrous member at your ass, teetering on the precipice of an abyss of unrestrained debauchery.
Without any hesitation, he plunges balls deep into you, his monstrous manhood fully sheathed within you.
A roar of satisfaction tears from his throat, echoing across the barren wasteland, it's an announcement, an indisputable claim of his conquest.
His monstrous thrusts become erratic, a thunderous drumroll before the climax of your wicked dance.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Loss_NyxEnding_19]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "purple")>>
Suddenly, with a shudder that shakes his towering form, he erupts.
A volatile blend of corrupting fluid and parasitic spawn floods into you.
They scatter inside, exploring their new domain, while his essence marks you as his inwardly for all in the infernal realm to see.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Loss_NyxEnding_20]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
Your gigantic form trembles, the afterwaves of his mighty release coursing through your veins, echoing across the barren landscape.
With one final thrust, he buries himself as deeply as possible within you. The fullness of his release fills you to the brink, his corrupted seed spreading, claiming you as it fuses with your soul.
The sight of your body swelling in response to his potent release stokes his carnal desire anew.
He hisses through clenched teeth, his voice a thunderous rumble under the desolate sky, "the birthright of a new monster, my new god. Look upon yourself, <<PlayerName>>!"
\<<run setup.choice("[[Continue->Encounter_Ethrex_Loss_NyxEnding_21]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
A monstrous, earth-shaking laughter pours out from the depth of your gut, vibrating across the vast and twisted landscape.
The act is done, the unholy ritual completed.
The pleasure of it all blurs his vision for a moment before you return his gaze, alive, breathing, and irrevocably transformed.
\<<run setup.choice("[[Continue->Encounter_Ethrex_Loss_NyxEnding_22]]");>>Breathlessly, your body writhes underneath his, adjusting to the corruptive power coursing through you.
There's a demented satisfaction in his eyes as he witnesses your transformation - the power that he's been treasuring is now also part of you.
He gently lowers you onto the ground, fluids seeping, forming unnatural streams in the dusty plains.
A tired yet satisfied grunt escapes his throat as he watches you, your eyes reflecting a trace of Nyx.
"The night is young" he purrs, his voice thick with promise. "Now that you're... one of us, the pleasure has just begun."
\<<run setup.choice("[[Continue->Encounter_Ethrex_Loss_NyxEnding_23]]");>>And with that, he allows his colossal body to relax, the afterwaves of monstrous mating still surging down his spine in reminiscing waves.
As he takes in the sight of the transformed you beneath him, he knows his debauched story is yet to unfurl completely.
The journey of monstrous lust, growth, and corruption will never truly end.
\<<run setup.completeAchievement("Achievement_MemoriesOfEthrex");>>
\<<run setup.choice("[[The End->Ending]]");>>\<<set $CharacterSheet_Player.info.limitBreaks.cap.balls = 999>>
\<<set $CharacterSheet_Player.info.limitBreaks.cap.cock = 999>>
\<<set $CharacterSheet_Player.info.limitBreaks.cap.muscles = 999>>
\<<set $CharacterSheet_Player.info.limitBreaks.cap.height = 999>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
Deep, pounding footsteps run through the grass, growing louder and louder.
The vibrations reverberate through the ground.
"Hands off, he's mine" Ferro's voice reaches you before you become truly lost.
\<<run setup.choice("[[Reach for Ferro->Ferro_Ending_2]]");>><<print setup.displayEncounterImage($CharacterSheet_Apothus_2nd_Form.info.picture)>>
A strong sense of relief washes over you as two massive paws wrap around your thick chest.
You feel Apothus’ grip on you begin to slip as your body is pulled backwards.
His red eyes snap open, an intense desire burning behind them as his sharp teeth bare at you.
He is now fully able to take both of you in as he readies himself for the next fight. Just before the armored enemy begins to speak, a different aura fills the air.
\<<run setup.choice("[[Look up->Ferro_Ending_3]]");>>A radiating light burns down onto you from above with a unique type of energy that you have never felt in your life.
Peering up at the sky, your eyes scan for the source as they finally land on it.
The Black Sun.
\<<run setup.choice("[[Continue->Ferro_Ending_4]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
It illuminates a midnight glow that feels both bright and dark at the same time.
A whirlwind of emotions flush through your face as you realize the full extent of what this means.
To be in the path of the black sun means one thing.
To grow into, and become, a corrupted beast.
\<<run setup.choice("[[Continue->Ferro_Ending_5]]");>>The flare of light is sudden, and you can already feel its corruptive properties begin to take hold.
An intense wave of power flushes from the tips of your toes and up through your head as a connection merges with you so deeply, that you’ve almost sworn that it was meant to be.
You aren’t certain why, but you can feel its disdain for Apothus.
How little it values him.
And how much Ferro's presence empowers it.
Like its emotions have become yours.
\<<run setup.choice("[[Continue->Ferro_Ending_6]]");>>It seems to have taken notice of you. It senses your deepest desires to grow and spread corruption to the deepest depths of your very soul, taking note of all that it can use you for.
It is aware of your feelings for your partner, a corruptive beast of the Lost who your kind never typically mingled with.
Ferro feels the same effects as you do to an even larger degree as his breathing catches in his throat and his grip on you loosens.
\<<run setup.choice("[[Continue->Ferro_Ending_7]]");>><<print setup.displayEncounterImage($CharacterSheet_Apothus_2nd_Form.info.picture)>>
A look of envy lights itself behind Apothus’ eyes as he takes a step back in intimidation.
The power that is spreading through you feels positively orgasmic.
You feel as if you’ve somehow already grown a little stronger.
It has only been a few seconds since you have fallen into the light and were chosen, but it all happened so quickly from there.
\<<run setup.choice("[[Continue->Ferro_Ending_8]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
Ferro’s body begins to convulse and throb rapidly as guttural grunts of pleasure force their way through his maw.
You find your own body doing the same, nearly bringing you to your knees.
They shake as your feet try to make sense of the ground underneath you, but the warming sensation that is blooming throughout your body is so intense that you can barely steady yourself.
\<<run setup.choice("[[Continue->Ferro_Ending_9]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
“Fuck…” is all Ferro can grunt as your rock-hard dick begins to throb in front of you with the sturdiness of a boulder.
It is already leaking an intense amount of precum.
It steadily sprinkles towards the ground with every pulse as you place a supporting hand on Ferro’s shoulder.
But your hands don’t land on his shoulder. They land on his pecs.
\<<run setup.choice("[[Continue->Ferro_Ending_10]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
Your eyes slowly work their way up his obscenely muscular body as you notice just how much bigger he has already become.
The beasts’ cock is already close to cumming without any stimulation at all as his black, corruptive seed drips down his engorged thighs.
His deep set of eight-pack abs is overshadowed by his boulder-like pecs, which only compliments how sturdy his thick neck is on top of that.
Before you can compliment his form, Ferro’s head snaps towards you and growls the final words that will change everything.
“No more holding back, <<PlayerName>>!”
\<<run setup.choice("[[Continue->Ferro_Ending_11]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
His words help you embrace it all.
Your body burns hotter than it has ever felt as the changes smash into you.
You yell, feeling the corruptive light activate throughout your entire body.
The lust you felt before increases so quickly that your mindset almost instantly transforms into that of the Lost, who only wants to grow and spread their corruption.
Δ: Your body grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "height", setup.getStatValue($CharacterSheet_Player, "height")))>> taller.
\<<set $growth = setup.applyGrowth($CharacterSheet_Player, "muscles", setup.getStatValue($CharacterSheet_Player, "muscles"))>>
Δ: Your muscles grow to become <<print setup.getMusclesDescriptor($CharacterSheet_Player)>>(+$growth).
Δ: Your cock grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "cock", setup.getStatValue($CharacterSheet_Player, "cock")))>> longer.
Δ: Your balls grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "balls", setup.getStatValue($CharacterSheet_Player, "balls")))>> wider.
\<<run setup.choice("[[Continue->Ferro_Ending_12]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
You’re growing. You’re already growing so fast. The ominous star is like an energy ray that is focusing all of its attention on you, and this is only an ounce of its power.
You keel over, overwhelmed by the sudden vibrations of your body.
Your cock is already inching outwards, making its already-large size look slightly bigger.
Its girth is already well beyond being able to wrap your hands around it, but it is astonishing to see it grow even thicker and longer!
\<<run setup.choice("[[Continue->Ferro_Ending_13]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
A shuddering breath escapes your lips as hundreds of pounds of fresh muscle steadily settle across your broad frame.
The corrupted wolf receives the same, his huge arm gripping your firm triceps as he lets out a low howl.
Already Apothus has begun to look just a bit smaller in comparison. His red eyes stare longingly at your bodies as his posture begins to slump.
Before the current wave of growth has even resolved, another jolt of energy rattles your body to its core. Both of you find yourselves moaning as another wave of growth tacks onto the current one.
Δ: Your body grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "height", setup.getStatValue($CharacterSheet_Player, "height")))>> taller.
\<<set $growth = setup.applyGrowth($CharacterSheet_Player, "muscles", setup.getStatValue($CharacterSheet_Player, "muscles"))>>
Δ: Your muscles grow to become <<print setup.getMusclesDescriptor($CharacterSheet_Player)>>(+$growth).
Δ: Your cock grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "cock", setup.getStatValue($CharacterSheet_Player, "cock")))>> longer.
Δ: Your balls grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "balls", setup.getStatValue($CharacterSheet_Player, "balls")))>> wider.
\<<run setup.choice("[[Continue->Ferro_Ending_14]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
Globs of precum shoot from your loins with incredible pressure as your balls sink lower, like two balloons that are being blown up past their capabilities.
“It’s getting…stronger!” Ferro yells, your eyes bringing themselves from the floor and up towards the wolf.
Whereas his growth had begun just before yours, you were now the same size.
Ferro. His sculpted body looks like something straight out of legends.
Each bend of his arms as he feels up his own body causes your dick to throb, growing with every heartbeat as your breath catches in your throat.
\<<run setup.choice("[[Continue->Ferro_Ending_15]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
A small sheen of sweat glistens over his corrupted fur, his aroma shooting straight to your heart.
He isn’t just hot to you anymore. He is the hottest. The sexiest. A complete magnet of lust and attraction that pulls you in.
Your libido has built so much in just the last minute alone that your attraction for him is spiking beyond belief.
\<<run setup.choice("[[Continue->Ferro_Ending_16]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
Your mind completely taken off of the world around you, you find your arms tenderly wrapping around Ferro as you pull him in. Naturally, he doesn’t resist and leans back into it.
Your pecs collide as your erect cocks come between you, frotting graciously as seed slides down them.
Pushed enough off to the side, your lips lock onto one another's. Your eyes snap shut with satisfaction as your arms slide along each other’s engorged bodies.
You can already feel it. Muscles sliding against muscles. Every moment, their size increases further, forcing you to adapt your body to a new position just to continue performing the same actions.
\<<run setup.choice("[[Continue->Ferro_Ending_17]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
You feel drops of precum fall onto your right shoulder.
Is it Ferro’s seed or yours? As you grow taller, more muscular, and more well-endowed, you become even more entranced with him, knowing well that you’re on a path that you can’t come back from.
The lust of the moment feels impossible, but yet it takes another step up once again.
A bassy reverb shoots through the two of you as the glowing aura spikes your bodies with another dose of size.
Δ: Your body grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "height", setup.getStatValue($CharacterSheet_Player, "height")))>> taller.
\<<set $growth = setup.applyGrowth($CharacterSheet_Player, "muscles", setup.getStatValue($CharacterSheet_Player, "muscles"))>>
Δ: Your muscles grow to become <<print setup.getMusclesDescriptor($CharacterSheet_Player)>>(+$growth).
Δ: Your cock grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "cock", setup.getStatValue($CharacterSheet_Player, "cock")))>> longer.
Δ: Your balls grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "balls", setup.getStatValue($CharacterSheet_Player, "balls")))>> wider.
\<<run setup.choice("[[Continue->Ferro_Ending_18]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
“Ohhhh FUCK. Our growth is only just beginning, <<PlayerName>>. Keep at it!” Ferro yells, his voice noticeably deeper than it was just minutes ago.
You open your eyes to find that your head is now perched a little higher than your lover’s.
In fact, your surroundings are beginning to noticeably decrease in size around you as every foot of height creaks into your legs.
This is what matters. Growing beyond what you ever thought was obtainable.
\<<run setup.choice("[[Continue->Ferro_Ending_19]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
You both enjoy every moment as over a thousand pounds of muscle and multiple feet pound into your bodies.
Nyx doesn’t seem satisfied, however.
Your skin feels like it is burning as a small shockwave emits through the sky above, radiating from the sun.
It’s small, but the power that bursts forth from it is unlike anything you’ve ever experienced.
The two of you throw your heads to the sky, your arms rolling back as far as they can as the real changes begin.
Δ: Your body grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "height", setup.getStatValue($CharacterSheet_Player, "height")))>> taller.
\<<set $growth = setup.applyGrowth($CharacterSheet_Player, "muscles", setup.getStatValue($CharacterSheet_Player, "muscles"))>>
Δ: Your muscles grow to become <<print setup.getMusclesDescriptor($CharacterSheet_Player)>>(+$growth).
Δ: Your cock grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "cock", setup.getStatValue($CharacterSheet_Player, "cock")))>> longer.
Δ: Your balls grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "balls", setup.getStatValue($CharacterSheet_Player, "balls")))>> wider.
\<<run setup.choice("[[Continue->Ferro_Ending_20]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
Both your and Ferro’s cocks begin to ooze precum at a constant pace, never missing a moment to stop the flow as your balls pull down on your groin like anvils.
The seed inside of them is burning for release, but yet you are enjoying this so much that you opt to wait a little bit longer.
Your height is definitely increasing slower than Ferro’s before, but now he is growing slower.
The next time your eyes drift to him, he is nearly up to your collarbone, his eyes beaming up at you from between your pecs.
\<<run setup.choice("[[Continue->Ferro_Ending_21]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
You reflect back to your first encounter. How big and monstrous he was. How scary he was. Your sizes then are nearly incomparable to now.
Your mind doesn’t pay attention at all to Apothus at this point. He is an irrelevancy.
The sounds of muscles growing are filling your ears as you feel Ferro’s immense shaft cram its way between your pecs.
Your chest is so immense that each of your pecs are able to hold it in place as he begins to pec-fuck you.
\<<run setup.choice("[[Continue->Ferro_Ending_22]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
The beast slowly gyrates his hips as precum waterfalls down his thick cock, coating your upper body as you press your own mass into him as hard as you can muster.
Your own cock finds its way under his legs as he squeezes his wrecking-ball sized thighs together, milking you for all you are worth.
Another beam of corrupted light showers over both of you.
Δ: Your body grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "height", setup.getStatValue($CharacterSheet_Player, "height")))>> taller.
\<<set $growth = setup.applyGrowth($CharacterSheet_Player, "muscles", setup.getStatValue($CharacterSheet_Player, "muscles"))>>
Δ: Your muscles grow to become <<print setup.getMusclesDescriptor($CharacterSheet_Player)>>(+$growth).
Δ: Your cock grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "cock", setup.getStatValue($CharacterSheet_Player, "cock")))>> longer.
Δ: Your balls grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "balls", setup.getStatValue($CharacterSheet_Player, "balls")))>> wider.
\<<run setup.choice("[[Continue->Ferro_Ending_23]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
Your thoughts become foggy as your eyes jog around loosely in your head as you are pushed from huge into massive.
In fact, you can now hear a pulsing sound from the Black Sun as it steadily pumps you up.
It’s faint, but audible.
Very rapidly you feel a swift change in stature as your body ascends above Ferro’s even further, causing his cock to slide down the gorges of your sculpted torso, over your abs, and eventually against your own manhood.
Speaking of which, it is unreeling at almost a record breaking pace as Ferro steps back further and further, both to give your own brawn more space, but also to fulfill a different fantasy he has in mind.
\<<run setup.choice("[[Continue->Ferro_Ending_24]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
His paws grasp onto the end of your dick, stroking away as he feels the vibrations of your own growth run through his arms.
This growth burst is showering you with a fraction of the Black Sun’s gifts, causing you to swell much faster than either of you anticipate.
So much so, that Ferro finds himself as tall as the bottom of your plateau-like pecs in no time.
Without warning, he takes his throbbing endowment and begins to fuck your own dick.
\<<run setup.choice("[[Continue->Ferro_Ending_25]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
The sensation causes your entire overly muscled body to jolt and shift as your hands wrench themselves up to shield your eyes, as if that would lessen the pleasure running through you.
“Flex for me, big guy.” Ferro demands, bucking his hips in and out of you over and over again.
You don’t hesitate, throwing up your gargantuan arms to be worshiped as incalculable mounds rise up all over them.
Your traps are already rising above your ears, beginning to muffle the sounds occurring behind you as your chest nearly bumps into your jawline.
\<<run setup.choice("[[Continue->Ferro_Ending_26]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
This riles up the corrupted wolf as you feel gallon after gallon of spunk shoot into your shaft.
Is it precum? From the small force of it, it almost has to be, but it is causing his growth to roll up his frame even quicker.
It is almost as if the hornier the two of you become, the faster you are destined to grow.
“That’s good. Keep flexing for me, <<PlayerName>>. Show me what a monstrous God you really are.” Ferro spits out with pure lust.
\<<run setup.choice("[[Continue->Ferro_Ending_27]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
<<print setup.displayEncounterImage($CharacterSheet_Apothus_2nd_Form.info.picture)>>
You can’t help yourself. Before you know it, you are posing in any way you can to impress your mate.
Showing off every angle. Every muscle. All the while the two of you continue to grow as he fucks your cock.
The sight is so erotic that Apothus finally submits. He gives up any kind of ambitions he once had of apotheosis after seeing how godlike the two of you have become.
Δ: Your body grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "height", setup.getStatValue($CharacterSheet_Player, "height")))>> taller.
\<<set $growth = setup.applyGrowth($CharacterSheet_Player, "muscles", setup.getStatValue($CharacterSheet_Player, "muscles"))>>
Δ: Your muscles grow to become <<print setup.getMusclesDescriptor($CharacterSheet_Player)>>(+$growth).
Δ: Your cock grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "cock", setup.getStatValue($CharacterSheet_Player, "cock")))>> longer.
Δ: Your balls grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "balls", setup.getStatValue($CharacterSheet_Player, "balls")))>> wider.
\<<run setup.choice("[[Continue->Ferro_Ending_28]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
As the biggest growth spurt of them all smashes into you, any Lost in the surrounding region are attracted to your growing gigantic forms like a hive mind going back to their nest.
The goal of the lost from the very beginning is to spread corruption and growth, and this is their best opportunity yet.
Apothus finds himself mixed into the horde as they surround your expanding feet, desperate to worship you for everything you are worth.
\<<run setup.choice("[[Continue->Ferro_Ending_29]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
Up at the top, the growth sends another intense shockwave through your entire nervous system as growing bigger becomes the number priority.
The two of you are becoming more like ravenous beasts by the moment.
Greedy for size. Greedy for pleasure.
\<<run setup.choice("[[Continue->Ferro_Ending_30]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
The entirety of the environment around you is quickly shrinking as trees, hills, and even Apothus start to look like ants.
Your mobility is starting to become impeded as your traps rise up to the top of your head.
Ferros attempts to embrace your lips once more, only to find your chests colliding with his long before they ever have a chance to meet.
His growth has quickly caught up, beginning to level out with yours as you realize the roof of the Hollow Earth has grown closer. Much closer. In fact, the shining star looked reachable.
\<<run setup.choice("[[Continue->Ferro_Ending_31]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
At once, you and Ferro begin to grin as you reach the same conclusion.
“I dare you to reach for it.” Ferro start teasing you.
“To embrace the energy of the Black Sun.” He says as his hands stroke both of your cocks at once.
\<<run setup.choice("[[Continue->Ferro_Ending_32]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
The thought drives you wild like nothing ever has.
Your thick, corruptive seed rains down onto the countless Lost below as parasites begin to emerge from the black liquid.
The Lost begin to greedily take them in as they work their way up your lengthening and widening frame, growing larger than ever as they worship every striation and crevice of your form.
And now an orgasm is beginning to build.
\<<run setup.choice("[[Continue->Ferro_Ending_33]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
You try to hold onto the wonderful feeling for as long as you can, but you’ve never been this horny before.
You’ve never been this sensitive before. You’ve never been this BIG before.
The same word echoes in your brain over and over again.
Grow.
GROW.
GROWWWW.
\<<run setup.choice("[[Continue->Ferro_Ending_34]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
Your bodies are quivering in anticipation, causing the entire region beneath to shake like an earthquake.
You grit your teeth as the Lost begins to worship both of your manhoods, now having climbed halfway up your body.
There isn’t a muscle or crevice that isn’t being pleasured by now, and it is too much to hold on any longer.
Δ: Your body grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "height", setup.getStatValue($CharacterSheet_Player, "height")))>> taller.
\<<set $growth = setup.applyGrowth($CharacterSheet_Player, "muscles", setup.getStatValue($CharacterSheet_Player, "muscles"))>>
Δ: Your muscles grow to become <<print setup.getMusclesDescriptor($CharacterSheet_Player)>>(+$growth).
Δ: Your cock grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "cock", setup.getStatValue($CharacterSheet_Player, "cock")))>> longer.
Δ: Your balls grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Player, "balls", setup.getStatValue($CharacterSheet_Player, "balls")))>> wider.
\<<run setup.choice("[[Cum->Ferro_Ending_35]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
The moment you start cumming, an explosion of unprecedented force erupts from the tip of your cock as it begins to grow even faster.
Your balls inflate infinitely fuller with entire lakes worth of cum.
For as fast as they are expelling liquid, they only continue to grow.
Ferro's muscle bound arms begin to feverishly jerk your cock off, milking you beyond possibility.
In return, you grasp his shaft and push it deeper between your pecs as your chest continues to grow around it.
\<<run setup.choice("[[Continue->Ferro_Ending_36]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
Your cum soars for miles, coating trees, overflowing rivers, and cratering hills with corruption.
Most of these lands had already been overtaken by the Lost, but if this is what growth on this scale feels like, then what is yet to come excites you even more.
Your entire bodies pour outwards in all directions at once as your musculature seizes up.
It’s almost like every time each muscle flexes, all of the size retains, but yet you can’t stop flexing.
\<<run setup.choice("[[Continue->Ferro_Ending_37]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
Hundreds of thousands of pounds of muscle per second annihilate your frame, causing each muscle group to twist and contort as your muscles bunch up and rub all over Ferro's.
The two of you can’t stop crashing your own mass into each other.
Your traps and pecs begin to surround your head more heavily, making it difficult to look down at all anymore.
Your endless moans spill forth from your mouth as volley after volley of cum empties from your cum factories.
\<<run setup.choice("[[Continue->Ferro_Ending_38]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
“Keep... GROWING!” Ferro roars, as you set your sights on the Black Sun above.
You’ve already closed more than half the distance!
In fact, you can physically see it getting closer! The heat of it burns, but in a pleasurable way that only forces you to grow faster!
As your dick begins to ease up on the amount of cum you are actively dispensing, countless spawns continue to infiltrate and infect all of the Lost that are praising your entire body.
Even Apothus takes in spawns of his own, but he’ll always be overshadowed by those that the Black Sun favors.
\<<run setup.choice("[[Continue->Ferro_Ending_39]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
The Lost that originally were hovering between 6 and 20 feet find themselves doubling, perhaps even tripling in size as they take in spawns even larger than their entire bodies.
They were corrupted before, but now they are so much bigger than the competition they once tried to corrupt up on the surface.
Not even a minute later, your own bodies ascend into the Black Sun’s radius.
The 500 foot ball of corruptive energy pulses like a beating heart, causing the symbiotic presence that fills your body to spread a higher degree of mind-numbing pleasure to anywhere it could reach.
\<<run setup.choice("[[Continue->Ferro_Ending_40]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
The two of you both take a step backwards as your bodies begin to swell past it, the sun now coming between you. At your current size, it’s more akin to the size of a beach ball.
Its full circumference doesn’t cover even one of your titanic pecs. At the same time, you realize your growth is beginning to slow down as you become parallel with the mysterious sphere.
Although you can hardly see Ferro’s face over his own chest, and over the unnatural midnight glow that is basking itself across your expanse, you notice the ever-increasing grin that begins to widen along his maw.
You know this, because yours is increasing too.
An idea so wild that it could change everything.
“I dare you to grow even bigger.” Ferro’s voice oozes seductively, sliding his tongue across his sharpened teeth as he flexes for you.
\<<run setup.choice("[[Continue->Ferro_Ending_41]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
His voice isn’t just deep. It is a whole new tone that no man or beast has ever muttered on this planet before.
Another word doesn’t need to be spoken. The two of you take a step forward at the same moment.
At your current size, only the tops of your feet breach through the skyline, uprooting every tree in its path, no matter how gigantic.
Hundreds of Lost continue to worship and climb your body, continuing their life’s work to fulfill your every desire.
\<<run setup.choice("[[Continue->Ferro_Ending_42]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
Your pecs collide with one another, squishing the Black Sun in the middle as it begins to glow much brighter than it ever has before.
A low pulsing sound rumbles through it, vibrating your bodies as an unprecedented energy starts to build up.
If your own bulk wasn’t blocking most of the direct light, it would have been positively blinding.
\<<run setup.choice("[[Continue->Ferro_Ending_43]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
Ferro let out a beefy roar of satisfaction.
You can’t see it, but you can hear his tail swishing rapidly from pure joy as erotic bliss funnels into his veins.
In fact, you both feel it. It’s almost like you’re leeching the very energy that the sun gives off and turning it directly into growth.
The sounds of muscle fibers tearing and reforming themselves fills your ears once more.
\<<run setup.choice("[[Continue->Ferro_Ending_44]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
“Let’s…take…ALL OF IT!” Ferro grunts, already feeling your libido work its way up towards another, even bigger orgasm.
It spreads all the way from your fingers to your toes like pure electricity.
“Push... HARDER... <<PlayerName>>! GROW... BIGGER!” Ferro thunders.
His voice is positively animalistic now. Like a feverish growl that is filled to the brim with lust.
\<<run setup.choice("[[Continue->Ferro_Ending_45]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
Your feet work in tandem with his paws and crater into the Hollow Earth’s floor as your bodies begin pressing more heavily into each other.
The sphere emits shockwave after shockwave, your musculature absorbing every pulse as a solar flare erupts through the air.
An explosion of energy bursts forth, instantly being pulled into your body over and over again as it starts to shrink.
The entire region begins to shake as a growth spurt of unknown size releases itself.
\<<run setup.choice("[[Continue->Ferro_Ending_46]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
Your hands shake as they grip onto Ferro’s corrupted fur. At your current size, every muscle is continuously colliding with each other, and it’s only bound to get more extreme.
The connection you have with the star feels prophetic. Deep down, this was always meant to be.
It chose you. It wanted you, and you wanted this.
\<<run setup.choice("[[Continue->Ferro_Ending_47]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
You feel the breath catch in your throat as every part of you swells and lengthens all at once.
Like a fresh resurgence of life is being pumped into you again and again. The power being absorbed is unlike anything else on the planet.
“F-fuck. Need to fuck.” Ferro moans as endless torrents of precum ooze forth from your phallus.
You’ve never been this horny in your entire life, and the need to release is unbearable.
\<<run setup.choice("[[Continue->Ferro_Ending_48]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
As the Black Sun shrinks to no more than the size of a grapefruit, becoming almost completely absorbed between your and Ferro’s statuesque bodies, the beast shoots a look back at you.
Without saying a word, the two of you pull yourselves into a tussle.
Apex predator vs apex predator, both leaning to gain dominance over the other corrupted being.
You force your gargantuan arms up towards Ferro's shoulders, trying to spin him around as your muscles expand with hundreds of thousands of pounds of fresh mass per minute.
\<<run setup.choice("[[Continue->Ferro_Ending_49]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
Each of your arms are built like mountains, with traps that could cross entire lakes.
They rise so high that they are now officially the tallest part of you.
Ferro wants you to grow so badly, that many of them are giving up all of their size to you altogether as endless spawns pour into your body.
All that matters now is to grow, fuck, cum, and corrupt.
\<<run setup.choice("[[Continue->Ferro_Ending_50]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
Your feet shift down on the ruined ground, causing debris to fly hundreds of feet as entire canyons are dug out.
The grunts of the two of you wrestling echo for tens of miles across the Hollow Earth, becoming both louder and deeper as your heights slingshot towards the roof of the enormous cavern.
Each step causes your pendulum-like balls to swing with enough force to suck the wind around, causing dust devils and windstorms on the surface as its massive shadow careens across the lands.
Not a single muscle on the two of you are left to the imagination as each one flexes endlessly bigger, both growing and being flexed to their max potential as you try to assert authority over each other.
Ferro slides one of his arms up your shaft, causing him to gain the upper hand momentarily as euphoria takes over your body.
\<<run setup.choice("[[Continue->Ferro_Ending_51]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
You push back, feeling up his sculpted set of abs, before squeezing his pecs and kneading them like dough.
Simultaneously, you slide your own mass against his dick. As you begin to win the tussle, your body starts to grow faster as Ferro’s size is outpaced.
When two immovable objects are placed in front of each other, it only becomes a matter of raw lust that determines the winner.
Ferro is going absolutely wild by now as countless Lost feel up and pleasure any part of the wolf.
In combination with the growth, he can’t resist any longer.
\<<run setup.choice("[[Continue->Ferro_Ending_52]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
With that, he willingly turns around, his broad stature taking many moments to fully rotate.
You get to see every detail as Ferro turns. Each striation. Every pound of muscle. Even his endlessly growing cock.
What sits on his back is incredulous. The animal’s lats are like wings, almost seamlessly merging his back with his sides like a staircase.
His back is even more impressive. It’s difficult to tell where each muscle starts or ends.
\<<run setup.choice("[[Continue->Ferro_Ending_53]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
You grab your package in your arms, barely able to even reach it from how voluminous your chest and biceps have become.
You can’t possibly hope to wrap your arms around it, but with how astoundingly aroused you are, it’s actually impressive that you aren’t any less erect.
Your manhood sticks out from you like a spire, a beacon of masculinity.
\<<run setup.choice("[[Continue->Ferro_Ending_54]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
Your chest is pushing out so fast now that you can’t see anything below it. The horizon and the approaching ceiling is all your eyes can feast on. Besides Ferro, of course.
You align yourself with his engorged ass, which proved to be easier than you think when each cheek was so distended from his body that it acted like a funnel!
“Fuck me, <<PlayerName>>! We need to grow... TOGETHER.”
\<<run setup.choice("[[Continue->Ferro_Ending_55]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
With a mighty grunt, you press forward. Effortlessly, you find yourself sliding into him.
The copious amounts of cum that was outpouring from your dick made the lubed entrance even easier to fit into.
Both of your voices explode out with deafening moans as you send endless feet of your package through Ferro.
It is like the pleasure of your bodies are linked, causing the growth in both of you to punch outwards all at once!
\<<run setup.choice("[[Continue->Ferro_Ending_56]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
“WE. NEED. MOREEEE!!” He growls, your hips starting to pick up the pace as you begin to buck your hips back and forth with a sensual pace.
Sonic booms fly off of your muscles as you become wider, thicker, taller, and longer in every way.
Your original encounter with Apothus buries itself so far in the back of your mind that it is likely it’ll never be thought of again.
As the scale in which you are growing increases over and over again, you look up to realize something staggering! The trees below are now like blades of grass.
You already quickly surpassed and absorbed The Black Sun.
\<<run setup.choice("[[Continue->Ferro_Ending_57]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
That means all that is left is..
You look up as much as you can, in total awe.
The ceiling of the Hollow Earth is approaching, and fast.
A landmark that seemed so far away, and also so unobtainable just this morning.
It’s coming at you so fast that you can hardly brace your own body for it, before…
\<<run setup.choice("[[Outgrow it all->Ferro_Ending_58]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
Your traps make contact first, careening into the roof of the enormous cavern so quickly that you are taken off guard.
Ferro crashes into it with you, letting out a confused whimper.
Whether it was from the pleasure of being impaled on the biggest manhood on the planet, or from the impact, is lost on you.
Endless feet of rock, dirt, and grass crater out of the way instantly as your frighteningly large bulk bulldozes it with ease.
Those on the surface find an earthquake of unprecedented scale to rattle the region as they stumble around aimlessly, unsure of the phenomenon that is occurring.
\<<run setup.choice("[[Continue->Ferro_Ending_59]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
Just as instantly as you hit the ceiling, you are emerging from the other side.
True sunlight showers you for the first time in a long time as you feel its warmth cover you like a blanket.
For a fleeting moment, you are reminded of home. The Barrens. Your home village. Your friends. Even the scent is reminiscent of something you once knew.
All it takes is another thrust into Ferro for all those thoughts to be pulled into the void once more.
Ferro finds himself pushing his own mass into you with every opportunity he can as you settle into a steady rhythm.
\<<run setup.choice("[[Continue->Ferro_Ending_60]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
Already, the pressure on your balls is far too large to ignore, but you can’t stop. Your body is on autopilot now.
Even if you want to, it is impossible to come back from growth on this scale. After absorbing the powers of The Black Sun, everything that happens after is a self-fulfilling prophecy.
In an instant, both of your bodies grow past the treeline as your shoulders, now multiple miles across, erupt through the ground alongside you.
For your body, there was simply no pain. In fact, it is quite pleasurable.
\<<run setup.choice("[[Continue->Ferro_Ending_61]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
At this point, the Lost begin to spread out across the Barrens at a terrifying speed.
Endless amounts of them sprint across the lands at their largest sizes yet. More energetic. Bigger, stronger, and much more aroused than ever before.
You can’t hold out any longer. With another deafening plea, an orgasm of unrivaled power ejects from your monstrous manhood.
Pulse after pulse of your orgasm begins to fill Ferro up as his own dick begins to launch wildly.
His toned abs, which are each as big as plateau’s, quickly melt as his belly distends further and further.
\<<run setup.choice("[[Continue->Ferro_Ending_62]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
At first just by a little, but nearly a minute later, it is so enormous that it begins to droop towards his knees.
Meter by meter, cum fills him up, forcing his stomach forwards to the extreme. You quickly realize that this isn’t an orgasm that is dying down.
In fact, it’s getting stronger.
\<<run setup.choice("[[Continue->Ferro_Ending_63]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
Communicating through a series of moans, you both understand the need to pull out. Not to prevent Ferro’s belly from growing even bigger, but to spread corruption to the lands.
You take a step back to pull out, realizing that nearly half of you is still buried underground in the Hollow Earth.
The step alone causes another major chunk of the region to fall into the endless pit. Even so, you continue to step back as the ground levels out with your thighs.
Your eyes can see so far off in the distance, yet you are hardly able to see at all from how much muscle is surrounding your head at this point.
Your pecs and traps have completely surrounded it like a canyon, and it’s only getting deeper. You bend your body at the hips as your ominous shadow casts itself as far as the eye can see.
\<<run setup.choice("[[Continue->Ferro_Ending_64]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
By the time you pull out of Ferro, his belly is quickly morphing back into an even more impressive set of abs.
It seems that your cum has a growing effect that only causes Ferro to swell even faster.
Seeing as you are both still cumming so much corruptive, black liquid, you both set into action at once.
By now, all of the Barrens is completely overwhelmed by your presence. Your body itself puts mountains to shame. Hell, it makes this entire region look like a miniature.
By the time you fully turn around to set your eyes on your home village, the Hollow Earth is barely up to your shins.
\<<run setup.choice("[[Continue->Ferro_Ending_65]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
An entire ocean’s worth of cum seems to fill your cum factories, and it isn’t even close to being over.
Black ropes of corruptive seed shower across an enormous radius as your growth accelerates again.
No matter how big you grow, your body only wants more!
Rivers, lakes, and valleys transform into black wastelands in an instant.
Thousands of The Lost climb from it, spreading outwards with a freshened vigor as entire villages, cities, and kingdoms begin to fall.
Ferro cums along with you, raining corruption on the opposing side. Each heart beat sends out a shot of cum for hundreds, if not thousands of miles.
\<<run setup.choice("[[Continue->Ferro_Ending_66]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
You can already imagine the scene now. Thousands of people per landmark transforming into hyper muscled, hyper endowed, aroused beasts.
Nothing can stop this change.
Corruption is spreading to every corner of the globe. As the Barrens is completely shrouded in darkness, you feel the condensation of the clouds rest upon your skin.
They hold a darker, purple hue to them.
You realize that your own seed has been turned into a form of condensation that these very same clouds would rain down in the very near future.
\<<run setup.choice("[[Continue->Ferro_Ending_67]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
“GROWWWW!!!” Ferro moans with enough volume to circle the globe.
You will always be next to him.
Your companion.
Your partner.
“SPREAAAAAAAD!!” The world moans back.
\<<run setup.choice("[[Continue->Ferro_Ending_68]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
Even as your growth finally begins to taper off, your cum still shoots like it just began. Each muscle that surrounds your body is larger than any easily perceptible comparison.
Each muscle group is nearly unidentifiable.
Your forearms, biceps, triceps, and shoulders, all look like a staircase of overinflated bumps and mounds.
Your traps are so far beyond your head that you can’t ever hope to see the top of them.
They rise like such a wall behind your ears that you will never hear anything behind you again.
\<<run setup.choice("[[Continue->Ferro_Ending_69]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
Your pecs are like entire territories of volume, shoving deeply up into your jaw as they bulk up, nearly blotting out your vision from their undeniable heft.
Only a fraction of the horizon is visible through the space between your chest.
If it weren’t for that, you feel positive that you’d only be able to see what is above you for the rest of time.
Your back, lats, and abs look like they were sculpted by the Gods of size. Your titanic thighs are so thick that you can’t part them any longer.
\<<run setup.choice("[[Continue->Ferro_Ending_70]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<run setup.completeAchievement("Achievement_MemoriesOfFerro");>>
For the rest of eternity, they would grind into each other with every step you take. Even then, a waddle is a better fitting description.
Every decision, action, or judgment will cause new, stronger, and more unstoppable, corruptive orgasms to rattle the Earth from your monster of a cock.
It extends so far from your body, and yet it looks perfect when being paired with each of your balls, which already look like landmarks on their own.
Part of you can’t believe you grew to be this monstrous. The other part of you thinks there is more room to grow.
As you and Ferro flex your titanic bodies for the entire world to see, you grin deeply as a familiar sensation begins to build up in your body.
Power... For all eternity.
\<<run setup.choice("[[The End->Ending]]");>>You feel yourself being surrounded by a cold, shifting void. Purple mist twists and curls around your legs in sinuous trails.
Like dancing tongues, they lick at your feet. A glacial caress.
A deep violet sky stretches across the horizon while bright reddish hues dance above you - as though you're at the bottom of an ethereal magenta coloured sea.
\<<run setup.choice("[[Continue->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerWins_7_1]]");>>Isolation. An endless void.
An eternity of nothing that stretches on and on.
\<<run setup.choice("[[Look Around You->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerWins_8]]");>>You turn around, and the endless void is suddenly replaced by a gaping chasm. An infinite drop.
Peering into the abyss, your eyes lock onto a faint, distant light.
\<<run setup.choice("[[Continue->Quest_MQ002_Apothus_2nd_Form_Encounter_PlayerWins_9]]");>>You stand there for what feels like hours, enraptured by the distant realm.
The biting, otherworldly, cold gnaws at your skin and pulls at your sanity.
But deep within your soul, you know.
One of these lights contains a way to stop this madness.
\<<run setup.completeAchievement("Achievement_IncompleteMemories");>>
\<<run setup.choice("[[Head towards another reality->Ending]]");>><<set $Ending_MemoriesOfCray =
{
id: "Ending_MemoriesOfCray",
unlocked: false,
onPostWorldReset: function()
{
},
onPreWorldReset: function()
{
setup.completeAchievement("Ability_MemoriesOfCray");
}
};>><<set $Ending_NyxChosenAscension =
{
id: "Ending_NyxChosenAscension",
unlocked: false,
onPostWorldReset: function()
{
State.variables.CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_MemoriesOfTheChosen);
}
};>><<set $Ending_OneWithApothus =
{
id: "Ending_OneWithApothus",
unlocked: false,
onPostWorldReset: function()
{
},
onPreWorldReset: function()
{
setup.completeAchievement("Ability_MemoriesOfApothus");
}
};>><<set $Ending_OneWithNyx =
{
id: "Ending_OneWithNyx",
unlocked: false,
onPostWorldReset: function()
{
},
onPreWorldReset: function()
{
setup.completeAchievement("Ability_MemoriesOfNyx");
}
};>>(Congratulations on reaching the end of the current content of the main story. You can now begin a newgame+ in order to explore and trigger different endings.)
\<<run setup.choice("[[The End (for now)->Ending_UncertainFate_2]]");>>
\<<run setup.choice("[[Go back->Village]]");>>\<<run setup.completeAchievement("Achievement_IncompleteMemories");>>
<<include Ending>>((To be implemented at a later stage!))
\<<run setup.choice("[[Leave->Village]]");>>Your eyelids flutter as you feel yourself slipping away. A tendril of unease coils in your gut, but it's quickly forgotten as darkness takes over.
There's a brief moment of disorientation as your soul feels like it's being shaken awake.
And then you're falling, tumbling through the darkness.
\<<run setup.choice("[[Continue->Death_NyxDungeon_2]]");>>A burning light surrounds your formless self.
Some fragment of what you remember as "sense" slowly come back to you.
You see the light. It's so powerful it feels like you're on fire.
\<<run setup.choice("[[Continue->Death_NyxDungeon_3]]");>>Nyx shines down upon you, bathing you in its warm embrace. But as you try to move closer, it seems to pulse and shimmer, rejecting your presence.
The light bursts and you wake up. You're disoriented for a moment, but then you recognize the entrance of the castle.
\<<run setup.choice("[[Get up->Quest_MQ002_Manor_MainHall]]");>>\<<run $CharacterSheet_Player.removeAbilityRuntimeData(setup.Ability_EmbracedByNyxsLight);>>
You black out...
\<<if $DeathText == setup.DeathTextEnum.POST_APOTHUS>>
Your soul shakes with unease.
\<</if>>
\<<run setup.choice("[[Continue->Death 2]]");>>
\<<if $DeathText != setup.DeathTextEnum.POST_APOTHUS>>
\<<run setup.choice("[[Skip->Village]]");>>
\<</if>>Time moves on...
\<<if $DeathText == setup.DeathTextEnum.POST_APOTHUS>>
Apothus's rampage only grows with each passing days.
\<</if>>
\<<if $DeathText == setup.DeathTextEnum.POST_APOTHUS>>
\<<run setup.choice("[[Continue->Death_Post_Apothus]]");>>
\<<else>>
\<<run setup.choice("[[Continue->Death 3]]");>>
\<</if>>A burning light surrounds your formless self.
Some fragment of what you remember as "sense" slowly come back to you.
You see the light. It's so powerful it feels like you're on fire.
You recognize this feeling.
\<<run setup.choice("[[Get up->Village]]");>>A shadow is cast over your reforming body.
The shape of a demon, so massive and tainted it overshadows the eclipse itself.
A terrifying grins curls from Apothus's lips.
The monsters around him try to run, only to be taken by the flood of corruption dripping from his body.
You must leave...
\<<run setup.choice("[[Use the Talisman to escape->Village]]");>>You walk along the empty streets of your ruined village, great plumes of smoke rising from homes and stalls.
Debris forces you to walk with caution, taking slow and careful steps as you wander through the eerily quiet remnants.
Through the barred windows of small shacks lining the street, you couldn't see a single soul, doors half ajar, creaking on their rusted hinges.
The Golden Bastion is eerily quiet- more so than usual after an attack.
Your tired eyes, filled with melancholy, turn upwards to gaze at the sky.
The sun is low on the horizon, bathing the barren sands with a soft orange glow.
Soon, that last bastion of light and warmth would sink below the shifting sands, swallowed by the march of time.
The expanse of the world- the vast, eerie emptiness of the desert, and the yawning abyss of the sky above. It all makes your troubles feel meaningless;
a single grain of sand in a sea of millions, a sea which was shifted and warped by the winds and the storms.
Infinitesimally small.
\<<run setup.choice("[[Continue->Intro02]]");>>A glint catches your eye in the purple twilight sky above.
One of the stars shines brighter than those around it, a magnificent mixture of oranges and reds, blazing like the flame of a brazier. It was quite beautiful, steadily growing larger and larger up in the sky.
Though... as you watch the spectacle, you hear an alarming sound. A rumble which starts as the dull roar of an engine quickly grows into an explosive scream.
The dancing light suddenly burst forth with a brilliant flash of white and orange, filling your vision.
Your heart begins to pound as you realize what was coming.
Before you can react, you are overwhelmed by an earth-shattering blast.
You hear the sounds of crumbling stone and the cries of warped steel.
The world quickly grows dark.
\<<run setup.choice("[[Continue->Intro03]]");>>You awaken sometime later, your thoughts murky and body heavy.
Instead of pain, you feel as if you've been submerged in a pool of warm honey.
A thick liquid gathers around you and rushes into your body from every orifice.
You try to scream, but the air in your lungs clashes with some thick goo entering your throat. It thrusts inside you without mercy.
It enters through your ears, your nose, and soon, you feel it swirling around the inside of your skull.
As quickly as it appeared, it fully disappears in your body.
\<<run setup.choice("[[Continue->Intro04]]");>>You suddenly gasp, your lungs filling with air once more. You gulp for air for a few more moments, your erratic breaths slowly stabilizing as the world once again turns peaceful.
As you plant your hands to the ground to get up, you feel as though you touched hot metal. Looking around, you noticed what little grass there was had been turned to ash.
You lay in the center of a large crater, its still-flaming edges licking at the street, staining the adobe exterior of nearby buildings with the harsh black of ash.
You quickly scramble backward away from the flaming center, crawling up the slope of the pit.
What had happened?
Something that you'd never quite witnessed before.
Something dangerous, something deadly.
Yet, here you stand without a scratch.
You think it best to reflect once you make it back home- it certainly doesn't feel safe to be outside. Looking down, you notice your body and clothes are stained with ash and dirt.
You decide to return home, where your bed is waiting for you.
\<<run setup.choice("[[Go Home->Intro05]]");>>You enter your home. Closer to the center of town, it was fortunately spared from the chaos near the fringes. Everything is as you left it, bathed in soft moonlight coming in through the windows.
It feels like something is moving inside of you.
Your stomach turns, muscles growing increasingly sore as you stand in your dark kitchen.
It's as though your blood has a mind of its own. You feel it pumping through your veins. You try to relax on your bed and eventually fall asleep out of exhaustion.
\<<run setup.choice("[[Sleep->Intro06]]");>>You are surrounded by a cold, shifting void. Deep purple mist twists and curls around your legs; curling and twisting in wisps and trails.
It licks at your feet, caressing your skin with a glacial embrace.
A dim violet sky stretches across the horizon, the brightest hues found directly above you- as though you're at the bottom of a deep, purple sea.
There was nothing for miles...
...and miles.
...and miles.
\<<run setup.choice("[[Look Around You->Intro06_2]]");>>Behind you, the harsh black plane seems to stretch as far as the eye could see, the distance occluded by a murky, dark fog.
Before you, there is naught but a single, endless, infinite drop.
The expanse descends into darker shades of purple.
And at the very bottom- if there even was one- your eyes are scorched by one of the strongest and harshest lights you have ever seen.
That intense purple light almost seems to throb like a heartbeat, shifting and simmering, writhing, growling, moaning, pulsing.
\<<run setup.choice("[[Continue->Intro06_3]]");>>You stand there for what feels like hours.
The biting, otherworldly cold gnaws at your skin, and pulls at your mind. The mist around your feet dances almost tauntingly, bouncing and twirling in no way a gaseous substance should.
This place is not meant for mortals.
Beyond all of that- beyond the unknowable, unspeakable sensations, beyond the empty and cold landscape, you felt something.
Something wonderful.
Something beautiful.
You begin to feel a comforting warmth wash over you, beating back that harsh cold, pulling you into a loving embrace of life and love.
This feeling is your oasis in this strange, alien desert.
\<<run setup.choice("[[Continue->Intro06_4]]");>>The life-bearing warmth which caresses your skin and fills your bones grows steadily stronger as time passes, expanding from the mere simmer of a candle to the comforting heat of a large hearth fire.
The mist around your feet suddenly disperses, pushed back by some unseen force.
You can feel something moving around you, some thick and heady mass curling around your body playfully.
It teasingly pushes against your chest for a moment, with a strength that nearly makes you fall over.
You feel the force suddenly step away, its writhing aura growing stronger a few feet in front of you.
From the black, reflective ground before you rises a huge, writhing mass of semi-solid goo. It seems unstable, its color rolling through all different hues and shades.
The goo slowly morphs into different forms, seemingly indecisive of its own nature.
Curiously, you aren't terrified at all- whatever this strange, goopy creature was, it appeared to be the source of that blazing warmth that surrounded you.
You could feel in your soul that it was not here to hurt you.
You stare curiously as it cycles in and out of the appearance of creatures you have seen. Some even based on beasts you've only heard of in stories- and some that none in your homeland could ever hope to imagine.
As you focus on it, its shape seems to be desperately trying to define itself.
You feel as though it was looking to you for help.
That it should become...
[[A Monstrous Symbiote->Intro07][setup.setRace($CharacterSheet_Player.symbiote, setup.RacePool.SYMBIOTE)]]
[[A Naga->Intro07][setup.setRace($CharacterSheet_Player.symbiote, setup.RacePool.NAGA)]]
[[A Minotaur->Intro07][setup.setRace($CharacterSheet_Player.symbiote, setup.RacePool.MINOTAUR)]]
[[A Werewolf->Intro07][setup.setRace($CharacterSheet_Player.symbiote, setup.RacePool.WOLF)]]\<<if (setup.getRaceName($CharacterSheet_Player.symbiote) == "Symbiote")>>
You see the gooey head form into a vaguely humanoid shape, a chiseled jaw poking through the formless blob.
It is accompanied by a sharply defined chin, casting heavy shadows on the monster's increasingly lean neck.
Several dozen thin, white veins begin to snake in all directions down from his head, spreading across his arms and torso, racing towards his feet.
Twisted white patches slowly take shape where his eyes should be, forming into solid shapes from milky trails that swirled around his face.
He stares down at you with his featureless, marble-white eyes, flexing the sharp claws that form at the tips of his long fingers.
His mouth curls into a long, hungry grin, several rows of gnarled and sharp teeth rising out from the goopy interior of his jaw.
He lets out a low, rumbling, sensual growl; one that makes your chest vibrate, one that makes your body tremble as the sound waves pass through your bones.
A long, thick, deliciously slimy tongue slides out from his mouth, as thick as your wrist and as long as your entire body.
It flicked eagerly at you, flinging saliva throughout the air.
What a monstrous, yet beautiful hunk.
\<<elseif (setup.getRaceName($CharacterSheet_Player.symbiote) == "Naga")>>
The otherwise goopy, shapeless form begins to shift, tightening and defining itself as though it was clay being molded by an invisible hand.
It rises upwards, growing taller as the shape of a head rises out from the top, shoulders widening as the torso grows steadily more defined.
Lower down, the form stretches out longways, bent and molded into a long, thick, serpentine tail that merges seamlessly with the humanoid upper-body of the muscle-bound beast.
Its head quickly morphed into a serpentine muzzle, whose form was accompanied by scales which pushed out from beneath the monster's goopy exterior.
Two large, fan-like protrusions of scales flanked the head, reminding you of an opulent head-dress fit for a king.
The beast opens its mouth, flexing its powerful, scaly jaw as two massive fangs rise out of the roof of its maw.
They drip with a sickly green venom, curving inwards like two daggers.
Two cold, reptilian eyes form above the muzzle, blood-red pupils staring deeply into your soul. That frosty gaze makes your skin grow cold.
His tail slithered around in a hypnotic arc, multi-colored scales cascading in an endless loop of intricate patterns.
The naga's unnerving mouth curls into a coy grin as it leers down at you, lower half stretching even further, into a <<print setup.getLength(70)>> long body.
What a terrifying, yet gorgeous monster.
\<<elseif (setup.getRaceName($CharacterSheet_Player.symbiote) == "Minotaur")>>
The otherwise goopy, shapeless form begins to shift, tightening and defining itself like wet clay pinched by invisible fingers.
Broad, powerful shoulders appear below the still-formless shape of the head, arms thickening and stretching outwards, legs growing longer, torso growing thicker.
Its calves begin to bend backwards, formless feet defining into the powerful hooves of a massive bovine beast.
Its head stretches forward, a primal muzzle forming as the goop recedes into the monster's body.
Two thick, curled horns push out from the top of his head, each one as thick as your arms, their exterior the color of volcanic soil.
From behind, the thin tail of a bull began to swing between his legs.
In the wake of the vanishing goop is left thick tufts of fur, coating the legs and head, trailing down the center of the minotaur's muscular torso; a large patch of fur blooms out from the deep valley of his powerful pecs, forming a V-shape with a long, thin trail dividing his expertely chiseled abs.
The minotaur glances down at his bulging body, thick chest rising and falling with each of his strong huffs.
His nostrils flex with each breath, hot air and the smell of testosterone wafting past your face each time he opened his mouth.
There was a deeply hungry look in his eyes as he stared down at you, as though he was looking for more.
What a primal, yet mighty creature.
\<<elseif (setup.getRaceName($CharacterSheet_Player.symbiote) == "Werewolf")>>
The otherwise goopy, shapeless form begins to shift, tightening and defining itself like wet clay pinched by invisible fingers.
The vague shape of a narrow, lean-muzzled head rises out from the top of its morphing mass, accompanied by a thick neck and incredibly broad shoulders.
A pair of large ears sprouts from the head as the goopy beast opens its maw wide, letting out a gargled yet undeniably wolfish howl.
It pierces your ears, breaking the otherwise crushing silence of this otherworldly plane.
Several sets of large, pearly-white teeth emerge inside his mouth, their tips as sharp as daggers and curves as elegant as sickles.
Two wild, hungry eyes then appeared beneath his ears, pupils dilated in the intense euphoria the beast was no-doubt experiencing.
His chest widens, filling out the space in front of his torso rather nicely. His waist also widens, a gap appearing in the shifting goo as the unmistakable shapes of digitigrade legs form on his lower half.
His feet tilt upwards, the beast flexing his pawed toes as he rises taller and taller.
His fingers grow longer, ends morphing into massive, sharp claws that look ready to rip through steel.
Then, all along his body, the writhing goo begins to recede, leaving in its wake a thick layer of soft canine fur.
Behind his legs falls a thick, fluffy tail, curling in a gorgeous arc.
He raises his stretching, shifting arms up high, flexing his powerful claws as the soft crack of bones signal the end of his transformation to a mighty beast.
His wild, wolfish eyes stare down at you, your face level with his thick, furry chest.
What a hungry, yet handsome beast.
\<</if>>
\<<run setup.choice("[[Continue->Intro07_2]]");>>The air around the <<SymbioteRace>> seems to grow a little hotter, the edges of their beautiful form shimmering with an eminent power.
You can feel it in the air, steadily building in intensity around them, the feeling as tense as a bowstring drawn to its utter limit.
It permeates your bones, resonating deep within your soul, filling you with an utterly indescribable feeling.
You've never quite felt such an intimate link to another being before.
The goo around him suddenly speeds up, it rushes to every inch of his body. It grows the <<SymbioteRace>> into a beast of muscles and power.
It then gathers to its waist. You blush as a fat humanoid cock grows on the monster's crotch.
The <<SymbioteRace>> looks at his body, he seems enthralled with the form you've expressed for him. He gropes his pecs and his <<print setup.getLength(12)>> cock.
Suddenly, his whole form shakes with incoming growth...
He looks straight at you and moans eagerly. He urges you to gaze at his body.
You focus on
[[His cock->Intro08][$SymbioteBoost = "cock"]]
[[His muscles->Intro08][$SymbioteBoost = "muscles"]]
[[His whole body->Intro08][$SymbioteBoost = "height"]]\<<if $SymbioteBoost == "cock">>
You focus on his cock. You immediately see it throb and expand. The <<SymbioteRace>> can't stop moaning as his shaft crawls along his legs.
He grasps the base and jerks off intensely.
\<<elseif $SymbioteBoost == "muscles">>
You focus on his muscles. You immediately see his abs burst with size and power. His biceps expand until they become bigger than bowling balls.
He then roars in delight as his pecs explode with growth. They inch bigger and bigger as he pinches his hard fat nipples in a torrent of pleasure and lust.
\<<elseif $SymbioteBoost == "height">>
The <<SymbioteRace>>'s whole body shakes in pleasure. His deep moans turn even deeper as he grows in size. He grins as your vision fills with the changing <<SymbioteRace>>.
His moans fill the void as his body becomes <<print setup.getLength(90)>> tall. He comes closer to you triumphantly, his mass thumping across the blackness.
\<</if>>
He looks so hot... Your creation approaches as precum oozes from both of your cocks. You blush as his hands slowly feel your chest and slide down lower.
You press your head on his thick juicy pecs as you reach for his rear end and firmly squeeze his muscular cheeks. He releases a deep alien moan in approval.
Some of his goo drips on your body, it quickly enters you through your skin. Your arousal suddenly skyrockets.
Some colours start to gain definition along the <<SymbioteRace>>'s body. The dripping goo that surrounds the monster slowly stabilizes into a single colour.
[[Amber->Intro09][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.AMBER; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.AMBER)]]
[[Beige->Intro09][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.BEIGE; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.BEIGE)]]
[[Black->Intro09][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.BLACK; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.BLACK)]]
[[Blue->Intro09][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.BLUE; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.BLUE)]]
[[Brown->Intro09][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.BROWN; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.BROWN)]]
[[Crimson->Intro09][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.CRIMSON; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.CRIMSON)]]
[[Emerald->Intro09][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.EMERALD; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.EMERALD)]]
[[Golden->Intro09][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.GOLDEN; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.GOLDEN)]]
[[Green->Intro09][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.GREEN; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.GREEN)]]
[[Grey->Intro09][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.GREY; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.GREY)]]
[[Indigo->Intro09][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.INDIGO; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.INDIGO)]]
[[Obsidian->Intro09][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.OBSIDIAN; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.OBSIDIAN)]]
[[Orange->Intro09][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.ORANGE; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.ORANGE)]]
[[Pink->Intro09][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.PINK; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.PINK)]]
[[Purple->Intro09][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.PURPLE; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.PURPLE)]]
[[Red->Intro09][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.RED; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.RED)]]
[[Sapphire->Intro09][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.SAPPHIRE; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.SAPPHIRE)]]
[[Violet->Intro09][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.VIOLET; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.VIOLET)]]
[[Tan->Intro09][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.TAN; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.TAN)]]
[[White->Intro09][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.WHITE; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.WHITE)]]
[[Yellow->Intro09][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.YELLOW; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.YELLOW)]]\<<run setup.colourAllLimbs($CharacterSheet_Player.symbiote, $CharacterSheet_Player.symbiote.info.colour)>>\
He grins at the sight of his <<SymbioteColor>> gooey body.
It did not seem like he could talk, yet you could feel his gratitude for granting him this form.
He kisses you deep and grinds his cock along your own. His thick, monstrous tongue coils around yours as you feel his gooey body slowly crawl all over your skin.
Your moans fill the dark void as the goo changes you. Your cock grows as you grind yourself on the <<SymbioteRace>>'s body.
It grows bigger with every throb, it soon reaches further than the <<SymbioteRace>>'s own monstrous tool.
He pulls back from the kiss and grins upon seeing your form. You are utterly drenched with <<SymbioteColor>> goo. He takes you into a massive bear hug.
\<<run setup.choice("[[Let him in...->Intro10]]");>>His whole being enters you. You scream at the deluge of pleasure covering your every pore. Lustful moans emerge from your lips as your muscles explode with size and strength.
Along with his strength, you feel his needs enter you... A need for sex and power... A need for more...
You grasp your cock and try to keep it still as litres of goo rushes into your urethra. Your need for more keeps rising, you pull him closer as he covers your form.
Your whole body grows in size. You soon become <<print setup.getLength(86)>> tall. It feels like your cock is about to explode into the biggest orgasm of your life.
The last of the goo finally enters you as you jack off furiously while flicking your thick <<SymbioteColor>> tongue in the air.
Your <<print setup.getLength(86)>> <<SymbioteRace>> body now stands proudly in the dark void. His need for more burned inside your soul. You were ready to take on the world.
The monster's name appeared in your mind as orgasm hit you in a tidal wave of pleasure.
<<textbox "$CharacterSheet_Player.symbiote.info.name" "Echo">>
\<<run setup.choice("[[Wake Up->Intro11]]");>>You get up from bed and see your throbbing cock. It has clearly grown since yesterday...
\<<run setup.applyGrowth($CharacterSheet_Player, "cock", 4)>>
It now reaches <<PlayerCock>> and begs for your attention. You can't help but grasp it at the base.Your muscles throb, you reach for your pecs and moan softly. You look at yourself in the mirror and smile.
You have definitely grown since yesterday. Your hand slides across your abs.
\<<run setup.applyGrowth($CharacterSheet_Player, "muscles", 8)>>\<<run setup.applyGrowth($CharacterSheet_Player, "cock", 1)>>\
\<<run setup.applyGrowth($CharacterSheet_Player, "height", 7)>>\
Your whole body throbs. When you get up from bed you feel like something about you is different.
You look at yourself in the mirror and smile. Your whole body has grown to <<print setup.getLength(setup.getStatValue($CharacterSheet_Player, "height"))>> tall, you barely fit in the mirror's frame anymore.You wake up feeling energized, invigorated even. Your heart beats faster than you thought possible.
One look at yourself confirmed you still had your regular appearance, but something seemed different.
\<<if $SymbioteBoost == "cock">>
<<include Intro11_Cock>>
\<<elseif $SymbioteBoost == "muscles">>
<<include Intro11_Muscles>>
\<<elseif $SymbioteBoost == "height">>
<<include Intro11_Height>>
\<</if>>
Moans escape through your heavy breathing, you can't control your ever increasing arousal...
You gaze at your changed body while grasping your cock. It definitely feels thicker...
After only a few jerks of your throbbing cock, your moans turn deeper.
You feel whatever is inside you... It rushes into your cock, turning it harder than it's ever been. Cum drips from it like an open faucet.
Your balls churn with seed, they also seem to have grown.
You cum all over yourself, thick shot after thick shot reaches up to the ceiling.
Yet it keeps going.
Your arousal doesn't stop growing.
After 15 shots, cum stops shooting from you. But you feel that your body is still begging you for more...
\<<run setup.choice("[[Keep jerking off->Intro12]]");>>You keep jerking off, your moans grow louder.
After a few more minutes, you explode once again.
This one goes on for 10 minutes straight. Your brain floods with orgasmic pleasure beyond what anyone can achieve.
You never want to stop...
You cum again... You go back to jerking off once more...
You keep going for hours and hours until you pass out of sheer exhaustion.
\<<run setup.choice("[[Rest->Intro13]]");>><<run setup.addDays(1)>>
Slowly, you begin to get used to your inhuman libido. You realize that you have pleasured yourself for a full day.
You slowly remember that tomorrow is too important to keep indulging in your inhuman lust.
For years you have trained to eventually become one of the protectors of the Golden Bastion. Today is supposed to be the final assignment for your training.
Even with the strange things that were happening to your body, you couldn't miss this for anything.
You quickly dressed and left for the temple of the Eldest.
\<<run setup.choice("[[Leave->Village]]");>>\<<set $drank_corruption = 1>>
Yes. This is your path of ascension. You realise that the passion that ignites your loins as you touch the Lost's thick, hot seed is merely a taste of what is to come; of what you will become.
You feel it run down your arm. Liquid fire. Hunger. You need it in you.
Cupping your hands, you fill them with as much Corruption as you can and bring it to your lips. The sensation is beyond divinity. Your groin grows hot, erect and pulses with a supernatural hardness.
The flood gates open. Down below, and within your mind as you euphoria takes you in one of the most mind bending orgasms that should never be achieved by a mortal.
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_TaintedByTheLost)>>
[Your soul has been corrupted slightly.]
You cum again, and again, and again. Somewhere in the back of your mind, you hear your colossal corrupted kin scream in pain.
Why? Why or who would harm him?
You force your eyes open.
\<<run setup.choice("[[Continue -> intro_cray_kill]]");>>You run your fingers through the thick, steaming sludge. You could have it all. Power beyond your ken, right at your fingertips.
Power. At the cost of what? Your sanity?
The small voice that has been screaming in the back of your mind suddenly reaches a terrifying crescendo as you realise what you and Abel are about to do.
You fill your lungs with air and pull back, utterly horrified. Grabbing Abel's shoulder, you rip your bodies away from the alluring blight.
The Lost roars with renewed anger. You brace for the sudden impact, but it never comes. Something else had its attention.
\<<run setup.choice("[[Continue -> intro_cray_kill]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
\<<run setup.stopSoundActions();>>
"Raaaargh!" A loud warcry bellows out from somewhere between mighty mounds of muscle.
The sound of steel piercing flesh reaches your ears. The Lost howls in agony. Whipping around, it attempts to grab its attacker, but fails to stop a greatsword from plummeting into its skull.
"C-Cray!" You hear Abel shout out as the beast tumbles to the side. He gracfully lands on his feet and sheaths his sword in a large makeshift scabbard strapped to his back.
You face the lead explorer of the Golden Bastion. He is the hallmark of physique and prowess that keeps your home prosperous. The werewolf is an idol.
\<<if $drank_corruption == 1>>
The heavily built wolf cocks his head to the side as he looks at you, an unsettling expression colouring his features.
\<<run setup.choice("[[Continue->intro_cray_gets_jealous]]");>>
\<<else>>
\<<run setup.choice("[[Thank him->intro_cray_leaves]]");>>
\<<run setup.choice("[[Ask him how you can aid the fight->intro_cray_leaves]]");>>
\<</if>>"Why did it choose you?" He asks.
\<<run setup.choice("[[Ask him what he means -> intro_cray_leaves]]");>>The words leave your mouth. You can feel each syllable pass through your lips, but they fall on deaf ears.
Cray's expression remains petrified in some combination of excitement, irritation and... hunger. His immense bulks rotates toward the Outer Wall.
His eyes never leave yours until his back faces you.
"Cray! Hey! Are you leaving? Where are you going!?" Abel shouts, clearly shaken from your encounter.
No answer.
"Come on, you can't just leave us!" Abel begins to jog toward Cray but is interrupted with a frightening growl. Abel stops dead in his tracks.
"Go home." The explorer's voice rasps, "Only I can end this cycle."
\<<run setup.choice("[[Leave him be->intro_cray_leaves_2]]");>>
\<<run setup.choice("[[Run after him->intro_cray_knockout]]");>>You and Abel watch, open mouthed, as the imposing figure leaves the Golden Bastion.
He does not look back.
After exchanging worried words, you decide to hide in the rubble and recover from your wounds until the sound of fighting dies out.
It is hard to rest within the wreckage of one's home. It is even harder with the memories of the night playing across the back of your eyelids on loop.
The monsters. The growth. The corruption.
Cray...
You find the thoughts whirring in your mind like a swarm of angry hornets. Yet, eventually, as restless as your mind may be.
You drift into the darkness of slumber.
<<include intro_post_cray_encounter>>You shout after Cray, running past the stunned Abel.
\<<if $drank_corruption == 1>>
He stops moving and growls, "I see you are not content to simply steal what is rightfully mine, but to stick your nose even further into where it does not belong."
\<<else>>
He stops moving and growls.
\<</if>>
In the blink of an eye, the werewolf backsteps and grabs you by the throat. He pushes his snout as close to your face as he can.
Black veined eyes stare at you as if you're just another monster.
"Don't get in my way..." he whispers menacingly.
You cough and gasp for air, yet he squeezes tighter. Abel runs at him, but is easily slapped away. This level of strength is unnatural!
"I will remember you, pup," he continues, "Make sure we never meet again."
The lack of air, the exhaustion of the day and the lack of strength to fight back results in darkness creeping in from the edges of your vision. You feel your body become numb before it is dropped unceremoniously onto the dirt.
The explorer's words play on loop within your mind as your consciousness fades into oblivion.
<<include intro_post_cray_encounter>>\<<if !$CharacterSheet_Player.hasAbility("Ability_TaintedByTheLost")>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_SurvivorOfTheFirstEclipse)>>
\<</if>>
\<<run setup.choice("[[Continue -> intro_sleep]]");>>\<<set $IntroCountdown = $IntroCountdown - 1>>
\<<if $IntroCountdown == 2>>
The shuddering beneath your feet is intensifying. It is getting closer.
\<<elseif $IntroCountdown == 1>>
The beast is almost upon you!
\<<elseif $IntroCountdown == 0>>
<<goto [[intro_out_of_time]]>>
\<</if>>You are vaguely aware of the sound of renewed shock from people around you. Muffled voices panicking about... the sky?
Your eyes peel open ever so slightly to the darkness of a room. You recognise it as your own. Abel must have carried you back in your sleep.
"Yeah, I know. I saw the ball of fire in the sky." Abel's voice startles you. He is standing at the door, talking to someone out of sight.
"Bloody thing scared me half to death while we were out in the combat zone. Shockwave from its landing nearly tore apart what was left of the house we were hiding in." He nods at the prompt of whispered dialogue, \
"Listen, I get the urgency. I get why the Eldest wants him to go, but can't you give $CharacterSheet_Player.info.name a break? At least until morning?"
The argument goes backwards and forwards, but you find your mind slipping back into the caress of sleep. You can't help but feel a sense of unease. A meteorite?
\<<run setup.choice("[[Wake up->intro_wake_up]]");>>\<<if $CharacterSheet_Player.info.name == "Kanathar">>
<<include Kanathar_EasterEgg>>
\<<else>>
Your eyes peel open to a blurry sky.
Each blink brings back a little more clarity and awakens a deep rooted sense of urgency and panic.
You feel surrounded, pressed to defend yourself, but it's hard to remember why.
\<<run setup.choice("[[Take in your surroundings->intro_start_2]]");>>
\<</if>>"Hmmmm... Feeling cheeky, are we?"
\<<run setup.choice("[[Continue->Kanathar_EasterEgg_2]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1.jpg", undefined, true)>>
"You think you can just take my name away from me, maybe taste some of it's power for yourself?"
\<<run setup.choice("[[Continue->Kanathar_EasterEgg_3]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1.jpg", undefined, true)>>
"Lemme show you where you stand, pet. Give you a name that's a better fit for you."
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_Loss_3][$CharacterSheet_Player.info.name = 'Perovsky']]");>>Small withering buildings of sandstone and marbles cover the sides of a huge canyon.
Some of them have clearly been damaged by what seems to be huge boulders.
Were they launched here? Did one of these cause you to fall unconscious? Thinking about it only hurts your head even more.
\<<run setup.choice("[[Continue->intro_start_3]]");>>As you rock your body to get back onto your feet, you begin to remember...
This is your home, the Golden Bastion.
It is currently under attack!
\<<run setup.choice("[[Continue->intro_start_4]]");>>You rock your body to get back onto your feet.
The outer wall; a fortified fence that acted as a barrier between the populace and the beasts outside is breached.
Gaping holes and piles of debris could be seen, even from this distance.
\<<run setup.choice("[[Look around you->intro_start_5]]");>>You twist around to face behind you and a wave of relief rolls through your body.
The fighting is still going on but the defense of the Inner Wall is still holding.
For the attacker to be threatening the safety of the inner clusters, it's all surreal.
\<<run setup.choice("[[Go help protect the Inner Wall->intro_start_6]]");>>Grunts and roars resound all around you as you reach the chaos of battle.
Guards hide amongst the wounded, ready for what's coming next.
You push onward.
\<<run setup.choice("[[Continue->intro_start_7]]");>>After only a few steps, a shrill cry from a familiar voice gives you just enough warning to notice the rumbling earth.
Footsteps. Large ones. A low baritone growl.
You could recognize these sounds anywhere.
A Lost is here, a beast completely consumed by Corruption, enthralled by its urges to mate and grow stronger.
\<<run setup.choice("[[Help protect the Golden Bastion->intro_start_8]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "angry")>>
"Look out!"
A mass of writhing black hurdles above you. Ebony claws barely miss you. Acting fast, you spin around. \
A thick black liquid cascades outwards from the massive beast as it lands in front of you, its body a formless blob of ink. It roars, spewing more of the substance out of its monstrous muzzle.
\<<run setup.choice("[[Continue->intro_start_9]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
It kicks back into the sand with its powerful legs, launching itself at you!
"Not on my watch!" You hear a voice on your left.
\<<run setup.choice("[[Dodge!->intro_monster_ambush_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "angry")>>
The monster yowls as it plummets into one of the standing walls behind you.
"Now's our chance!" Abel screams as he jumps on the beast's back. His sword rises as he lifts it with both hands and gets ready the thrust it in the beasts back.
\<<run setup.choice("[[Fight!->FightLogic][$Encounter_Target = $CharacterSheet_Wounded_Lost]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
With one strong hit to the beast's chest, it steps back in disbelief of your strength.
"Guhhhhh..." It groans before letting out a pitiful wimp and falling face first on the village's gravel road.
\<<run setup.choice("[[Continue->intro_fight_won_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
Abel quickly jumps off of the beast back as it falls.
You can tell how the excitement of the fight still rushes within him.
"Hell yeah! We did it!"
He jumps in place happily but quickly realizes that while you won this battle, there's still more of them out there.
"Thanks for the help back there, but we really should get moving soon."
\<<run setup.choice("[[Continue->intro_first_crossroads]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "angry")>>
"Cmon... You gotta help me out here!" Abel screams to you in growing frustration.
He holds on to the beasts back and hits him in the back of the head.
Over and over, he grunts as he smacks him with enough strength to make you squint.
"I won't let you hurt my people!"
The beast desperately tries to grasp at Abel, but his unbelievably muscular body makes it impossible. He's simply out of reach.
\<<run setup.choice("[[Continue->intro_fight_lost_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "angry")>>
With one final hit, the beast lets out a pitiful wimp and falls face first on the village's gravel road.
Abel quickly jumps off of the beast back as it crumbles.
He seems cold, unceremonious even.
"Next time, at least try to help out man..."
\<<run setup.choice("[[Continue->intro_first_crossroads]]");>>The sound of fighting echoes across the ruins of the Golden Bastion between the Inner and Outer Walls.
Writhing at your feet is the unconscious body of one of the attacking monsters. Its muscles expand and contract, seemingly with a life of its own.
Abel is a few steps away, bouncing on his heels and ready to get moving.
\<<run setup.choice("[[Get moving->intro_get_moving]]");>>
\<<run setup.choice("[[Inspect the monster's body->intro_inspect_monster]]");>>Kneeling down, you lean in closer toward the felled beast. It appears to be wolfish in shape, at least going by the facial structure: long snout, square jaw with a pair of triangular ears. \
That's where the similarities to the werewolf race ends, however, as the rest of its body from neck downwards balloon with egregious amounts of muscle.
You've seen these types of beasts before.
They're called The Lost.
\<<run setup.choice("[[Continue->intro_inspect_monster_2]]");>>There's a black oil-like substance that seeps out from beneath its fur.
If you listen closely, you can hear the sound of bursting bubbles which is promptly followed by a few more streamers of the inky substance dripping off of his body and onto the floor.
It's size is unbelievable.
\<<run setup.choice("[[Continue->intro_inspect_monster_3]]");>>It's head is resting on massive boulder like shoulders that are a good distance off of the floor; propped up by gigantic arms.
Its chest barrels so far forward that you doubt it would be able to see anything that stood close enough to its trunk like legs.
It is still growing...
You squint. Your eyes do not deceive you. Each muscle is slowly stretching outwards.
Higher. Bigger. Harder.
\<<run setup.choice("[[Continue->intro_inspect_monster_4]]");>>Your eyes flick toward its throbbing cock. Every loud thud of its head slamming into its chest is a perverse drum beat that grows deeper and heavier.
The shaft is growing too; slowly inching upwards across the Lost's pectorals.
Two watermelon sizes balls churn right below that, digging into the dirt with increasing weight and size.
Given a few days, would this creature even be able to walk without the rod jutting in front of its vision?
\<<run setup.choice("[[Continue->intro_inspect_monster_5]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "angry")>>
Abel startles you as he speaks out from behind your shoulder, "See what I mean? This bastard is massive and this is one of the smaller ones."
[[Ask about the black liquid->intro_corruption]]
[[Leave the monster->intro_first_crossroads]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "blushing")>>
"It's definitely Corruption."
You notice Abel's hand moves to rub a hardening bulge near his crotch. "Any salvager worth his salt says that this stuff is extremely dangerous. Gets under your skin. Maybe that's what is turning this thing into such a big, burly beast."
Abel's hand suddenly pulls away from his pants, "Are we done here? I don't want to stay near this fiend any longer."
[[Say it doesn't feel too bad->intro_hot]]
[[Say it looks dangerous->intro_disgusting]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "blushing")>>
Abel's face flushes bright red, "You think so too?" He shakes his head. "S-shut up! Don't tease me at a time like this! That's just the corruption talking..."
\<<run setup.choice("[[Leave the monster->intro_first_crossroads]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
Abel remains silent. He begins to wring his hands; a telltale sign that something is bothering him.
"Y-yeah. I guess you're right."
\<<run setup.choice("[[Leave the monster->intro_first_crossroads]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
"Alright, then we best get going before any more of them show up."
You and your companion begin walking, using the tight spaces between standing shacks to your advantage.
"These attacks have been happening more and more, and they always come back bigger than before."
\<<run setup.choice("[[Stop and listen->intro_FastEnd]]");>>You reach the central hub of the village, you can make out a handful of guards patrolling the vicinity, their faces set in stern expressions.
The warriors here are all incredibly strong, their bodies honed by years of hard work and combat. They wear light armor and carry a variety of weapons, from swords and spears to bows and arrows.
They move with purpose, patrolling the village and keeping a sharp eye out for any more attackers.
But the attack itself seems to be taken care of.
[[Continue->intro_FastEnd_2]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
Abel aubibly sighs.
"I'll have to let the Herald know about what happened, but I'm glad it's over for now."
[[Continue->intro_FastEnd_3]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
He glances at you, and his expression then fills with unease.
"You should take some rest friend. You look like you've seen a ghost or something."
[[Ask him what he means->intro_FastEnd_Means]]
[[Go Home->intro_FastEnd_4]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
"Must just be the shock of it all, you should just rest on it."
He starts to move towards the central tower, where the Heral is surely waiting for him.
"I got a feeling it's not the last time we'll have to face the Lost. Make sure you're ready for it."
[[Continue->intro_FastEnd_4]]The village is arranged in a circle, with homes of varying sizes.
There are a few larger stone houses in the center of the village, some of which are adorned with markings that seem to denote rank or status.
Here, the warriors come together to plan their next moves, to share stories and to pass on their knowledge and wisdom.
They are a close-knit group, fiercely loyal to one another and dedicated to protecting their home.
Your home is but a few steps away.
[[Go Home and rest->intro_wake_up]]The scent... the virility of the beast in front of you. It is almost too much to bear. You drop your sword and fall to your knees.
You hear the clatter of Abel's weapon as he joins you next to the growing pool of its ambrosia.
Power. Mass. Growth. You could have it right now if you give in. This Lost is not hunting you, it's offering you a chance to be something more. To be something greater.
All it would take is a little push...
\<<run setup.choice("[[Drink its seed -> intro_drink_corruption]]");>>
\<<run setup.choice("[[Resist! -> intro_resist_drinking]]");>>You rest, dreamlessly, and are only awoken by the kiss of sunlight. Covering your face from the intruding rays you push yourself upright, letting your tattered blanket fall onto the dusty floor.
Your wound stings and your body aches with fatigue.
Although today would be yet another in this wasteland of a home; it feels as if last night is only the first of something far greater...
... and far more dangerous.
\<<run setup.choice("[[Get dressed -> intro_get_dressed]]");>>You take a moment to put your gear back on, Corruption off of your clothes with some scrap fabric you had collected for just this occasion.
When you finish, you find yourself holding two separate textiles.
One is stained black. You find yourself clutching onto the cloth tightly.
\<<run setup.choice("[[Breathe it in -> intro_inhale_cloth]]");>>
\<<run setup.choice("[[Throw it away -> intro_throw_away_cloth]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
Luck is on your side. There is enough here to have at least one mind bending orgasm - just enough to feel the forbidden pleasure.
Closing your eyes, you place the cloth over your mouth and inhale deeply. Searing warmth rushes through your body and you flush with intense arousal.
You need more.
Far more!
\<<run setup.choice("[[Continue->intro_inhale_cloth_1]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
Your breath quickens into a frenzy. With every breath, pleasure builds and builds and builds until a mind-shattering orgasm rips through your senses.
It is beyond your expectation; the heavenly bliss expanding out from your groin and across your entire body.
You feel as if you've somehow grown a little stronger.
\<<set $growth = setup.applyGrowth($CharacterSheet_Player, "muscles", 2)>>
\<<run setup.applyCorruption($CharacterSheet_Player, 10)>>
Δ: You gain 10 corruption.
\<<run setup.choice("[[Leave -> intro_leave_home][setup.stopRealizationPackages(['CharacterSheet_Player'])]]");>>Tearing your eyes from it, you ball the fabric and throw it across the room.
Disgusting.
You cannot help but be simultaneously angered and afraid of the inky toxin.
Taking a mental note of the potency of the foul Corruption, you get up to leave.
\<<if $CharacterSheet_Player.hasAbility("Achievement_MemoriesOfTheLost")>>
\<<run setup.choice("[[Leave -> intro_no_herald]]");>>
\<<else>>
\<<run setup.choice("[[Leave -> intro_leave_home]]");>>
\<</if>>Leaving the comfort of your home, you walk through what feels like a wall made of dry, hot air. The desert would not be kind to explorers today.
The Herald is nowhere to be seen.
<span class="glitch nyx fucked" data-text="C̷̛̛̱̹̟͚͕̱̗͎͙̳̞̜̘̬̝͖̖̟̻̐̎́̌̈͐̉͑͐̋̽̔̋͂̋͝ͅƠ̶̢̱̯̬̖̥̠̬̼̼̼̜͔̬̜͚̯̺̹̩̐̍̅͒̅̓̀̚͠R̷̨̡̛̪̣͚̲͕̝̥̩͚̗̭̫̯̪͙̯̥̓͐̉̈́̒͐̃͒̽͊͛̀͋̅̕͜R̷̠̎U̵̧̫͙̺̤̰͎͓̦̓̎̿̈́̈̅́͌͝P̸̘͔̺̘̮̼̱̭̜̲͕̬̩̋̑́͜T̷͓̱͎̘̞̣͎̗̙̦̲͔͒͛͑̋̔̊̀͑̔͒͆̚̚͜͝͠͝͝ͅ">Good...</span>
\<<run setup.choice("[[Continue->Village]]");>>Leaving the comfort of your home, you walk through what feels like a wall made of dry, hot air. The desert would not be kind to explorers today.
"G'morning sleepy head!" You hear Abel call out. He is standing next to a man covered from tip to toe in a frayed cassock. "Come over here for a second."
You recognise the mysterious figure next to Abel as the Herald. Only those chosen to be a Herald may enter the temple in the center of the village and speak with the Eldest.
These people are your leader's voice, his eyes and ears.
The older man smiles at you from underneath his hood, his blue eyes sunken into his aged skull and canopied by a mat of silver hair.
"Ah, $CharacterSheet_Player.info.name. I am so relieved to see that you have recovered."
\<<run setup.choice("[[Approach the Herald -> intro_approach_herald]]");>>Taking your hand, he smiles up at you, "I am truly grateful that you were not slain in the attack last night and, too, am I truly, truly sorry that I must request that you are put in danger again so suddenly."
Abel grunts and folds his arms, seems like he has been told the news beforehand.
\<<run setup.choice("[[Continue->intro_approach_herald_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
"You are next in line, apparently. Curse of being too good with those fists of yours, buddy."
"That is not a curse, Abel!" The Herald scowls, silencing your friend, "It is one of the highest honours to hold the title of explorer. Especially considering how frequent these attacks are getting. Now please, time is of the essence. Proceed to the Barrens and report back to us what you find."
Giving you little room to respond, the man leaves you and Abel and hobbles back toward the village center.
"Well," Abel sighs and then puts a hand on your shoulder, his tone growing slightly sarcastic "Congratulations. One battle and straight into the other. You stay safe out there, okay?"
\<<run setup.choice("[[Ask Abel to accompany you -> intro_abel_company]]");>>
\<<run setup.choice("[[Thank him and depart -> intro_depart]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
"I would if I could! I just don't think the guards will let the Herald's apprentice leave the village like that." \
He suddenly wraps his arms around you and gives you a squeeze, "Make sure you get back here alive and in one piece. I'm not letting this forsaken world steal you too."
After a few moments of conversation, you say goodbye to each other and watch Abel's form disappear into the village proper.
\<<run setup.choice("[[Continue->Village]]");>>There is no reason to delay. If a Herald gave you an order, it is priority to deal with it immediately.
After a few moments of conversation, you thank Abel for his help and say your farewells.
\<<run setup.choice("[[Continue->Village]]");>>You wake up in your bed, a cloth empty of the corruption from the night before fogging your mind.
You feel as though you have been here before...the attack from the lost, the call from the Herald. You are ready for what comes...
\<<set $growth = setup.applyGrowth($CharacterSheet_Player, "muscles", 2)>>
\<<run setup.applyCorruption($CharacterSheet_Player, 10)>>
Δ: You gain 10 corruption.
<<print setup.getFightReward($CharacterSheet_Wounded_Lost)>>
\<<run setup.choice("[[Leave -> Village]]");>><<include MeasurementSystem>>
\<<if $Debug>>
<<include LanguageSelection>>
\<</if>>
<<include ChoicesWindowSettings>>
I am <<textbox "$CharacterSheet_Player.info.name" $CharacterSheet_Player.info.name>>.
I sound like this. (You can adjust the volume at the bottom of the stats panel)
<<print setup.displayVoiceRadio($CharacterSheet_Player, ["AudioSheet_Voice1_Player","AudioSheet_Voice2_Player"])>>
And I am a
<<print setup.addDOMHook("Setup_Race_Select_div", setup.getRaceSelect)>>
\<<if $Debug>>
[[Something else...->CustomRaceDisclaimer]]
\<</if>><<run setup.stopTestVoices()>>
Welcome to the custom race menu! This is a debug level tool which allows you to inject your own race into the game.
Please be advised that this race is NOT included into the main game and only exists within your save. Thus, please note:
- This race will NOT be carried into the next version if the save is incompatible
- I cannot guarantee that the text will cater for all aspects of your new race
[[I accept->CustomRaceCreator]]
[[I decline->Name Setup]]Instructions:
Select a combination of Racial Bonuses and Anatomy up to the point cost total allotted.
You can add a list of adjectives to describe the textures of individal limbs. Please separate them with the ',' character.
I am <<textbox "$CharacterSheet_Player.info.name" $CharacterSheet_Player.info.name>>.
I sound like this. (You can adjust the volume at the bottom of the stats panel)
<<print setup.displayVoiceRadio($CharacterSheet_Player, ["AudioSheet_Voice1_Player","AudioSheet_Voice2_Player"])>>
\<<run setup.AbilityScripts.Form.initializeCustomPointsParams()>>
<<print setup.addDOMHook("Setup_CustomRace_Select_div", setup.AbilityScripts.Form.getCustomRaceTable)>>
[[Done->$Intro_Passage][setup.AbilityScripts.Form.saveCustomPointsParams(); console.log($CustomRace); console.log(setup.RacePool); setup.parseIntStats(); setup.setRace(State.variables.CharacterSheet_Player, setup.RacePool.CUSTOM); setup.stopTestVoices();]]
[[Back->Name Setup]]\<<if !$Encounter_Target>>
You find nothing exciting in your journey. All those that could have crossed your path are no more.
\<<run setup.choice("[[Go Home->Village]]");>>
\<<elseif setup.hasKnownEncounter()>>
<<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/Barrens/northernbarrens.jpg", undefined, undefined, true)>>
The Barrens are hard to get used to, but you have travelled them enough to trail some of your previous encounters.
\<<run setup.choice("[[Explore the Barrens->KnownEncounter]]");>>
<<print setup.displayKnownEncounters()>>
\<<else>>
<<include KnownEncounter>>
\<</if>><<print $Encounter_Target.fight.encounterIntroText>>\<<set $CharacterSheet_Player.info.choiceHighlight.newCardAvail = false;>>
Change Combo Moves!
\<<set $FightMovesLeft = 6>>
<<print setup.displayChangeFightMoves()>>You reminisce about the beings you've encountered along your adventure and how their size compares to one another.
<<print setup.renderGraph()>>
\<<run setup.choice("[[Leave->Home]]");>>\<<if $CharacterSheet_Player.quest.corruptionVillageExiled == true>>
Your camp rests on top of a vast canyon. you're confident that you won't get too disturbed here.
You notice some weapons and trinkets from travellers past. Seems that you're not the first exile to take camp in this place.
<<print setup.displayVideo("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/Exiles_Rest.mp4", false)>>
\<<else>>
<<print setup.getFlavourBasedDescription($CharacterSheet_Player, "homeFlavour")>>
\<</if>>
[[Check appearance->mirror_player]]
\<<if $CharacterSheet_Player.hasAbility("Ability_HostOfEcho")>>
[[View Symbiote->mirror_symbiote]]
\<</if>>
[[Ponder about encounter sizes->ChartPage]]
[[Recount your adventure->Journal]]
\<<run setup.choice("[[Leave->Village]]");>><<print setup.displayJournal()>>
\<<run setup.choice("[[Continue->Home]]");>><<print setup.getFlavourBasedDescription($CharacterSheet_Player, "mirror_player_Flavour", 1)>>
You are currently a <<print setup.displayStatValue($CharacterSheet_Player, "height", true)>> tall <<print setup.getRaceName($CharacterSheet_Player)>> with <<print setup.getMusclesDescriptor($CharacterSheet_Player)>> muscles.
\<<run setup.choice("[[Continue->mirror_player_2]]");>><<print setup.getFlavourBasedDescription($CharacterSheet_Player, "mirror_player_HeadFlavour", 1)>>
<<if $CharacterSheet_Player.info.anatomy.horns != undefined && $CharacterSheet_Player.info.anatomy.horns.number >= 1>>
<<print setup.getFlavourBasedDescription($CharacterSheet_Player, "mirror_player_HornsFlavour",1 )>>
<</if>>
You smile. This was just the tip of the iceberg.
\<<run setup.choice("[[Continue->mirror_player_3]]");>><<print setup.getFlavourBasedDescription($CharacterSheet_Player, "mirror_player_UpperBodyFlavour", 1)>>
<<if $CharacterSheet_Player.info.anatomy.wings != undefined && $CharacterSheet_Player.info.anatomy.wings.number >= 1>>
<<print setup.getFlavourBasedDescription($CharacterSheet_Player, "mirror_player_WingsFlavour",1 )>>
<</if>>
\<<run setup.choice("[[Continue->mirror_player_4]]");>><<print setup.getFlavourBasedDescription($CharacterSheet_Player, "mirror_player_LowerBodyFlavour", 1)>>
<<if $CharacterSheet_Player.info.anatomy.tails != undefined && $CharacterSheet_Player.info.anatomy.tails.number >= 1>>
<<print setup.getFlavourBasedDescription($CharacterSheet_Player, "mirror_player_TailFlavour", 1)>>
<</if>>
Then your eyes travel along your navel and to your crotch, your pride and joy.
\<<run setup.choice("[[Continue->mirror_player_5]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
<<print setup.getFlavourBasedDescription($CharacterSheet_Player, "mirror_player_CrotchFlavour", 1)>>
\<<run setup.choice("[[Back->Home][setup.stopRealizationPackages(['CharacterSheet_Player'])]]");>>\<<if $CharacterSheet_Player.hasAbility("Ability_ToLiveForEcho")>>
<<print "You feel <<SymbioteName>> demanding to be released. Who are you to deny your master's wishes?">>
\<</if>>
\<<if setup.getStatValue($CharacterSheet_Player, "corruption") <= setup.CorruptionComparators.PURE>>
<<print "In the safety of your own claimed space, you find it surprisingly easy to come to a forceful orgasm, coaxing <<SymbioteName>> out into the open.">>
\<<elseif setup.getStatValue($CharacterSheet_Player, "corruption") <= setup.CorruptionComparators.NEUTRAL>>
<<print "You eagerly start to pleasure yourself, feeling the now-familiar moment when <<SymbioteName>> erupts from you, surround you in its warm, slick embrace.">>
\<<elseif setup.getStatValue($CharacterSheet_Player, "corruption") <= setup.CorruptionComparators.TAINTED>>
<<print "You flush at the thought of releasing <<SymbioteName>>, eager to feel his flesh against yours. Quickly you reach down to your already throbbing genitals to eagerly seek release and let out your companion.">>\
\<<else>>
<<print "You put on a show, masturbating for those around you, adding your voice to the constant chorus of pleasure surrounding you.">>
\<</if>>\
\<<if $CharacterSheet_Player.hasAbility("Ability_OrgasmicGrowth")>>\
<<print "However, without the rush of battle--even against a lowly imp--your orgasm does not seem to push your body further past its limits.">>
\<</if>>
<<print setup.getFlavourBasedDescription($CharacterSheet_Player, "mirror_symbiote_Flavour", 1, undefined, true)>>
<<print "<<SymbioteName>> is a " + setup.displayStatValue($CharacterSheet_Player, "height", true) + " tall <<SymbioteRace>> with "+ setup.getMusclesDescriptor($CharacterSheet_Player) + " muscles.">>
\<<if $CharacterSheet_Player.hasAbility("Ability_ToLiveForEcho")>>
<<print setup.processFlavours($CharacterSheet_Player, "Now unleashed, <<SymbioteName>> takes the lead in admiring itself for you. Starting with its @[all| heads| noverb]. It tries out a few expressions showing off its own jawline, opening its mouth occasionally to admire the view. <<SymbioteName>> seems to love admiring the shape of its pronounced cheeks and the way it draws attention to its own mouth. There, <<SymbioteName>>'s @[all|eyes|noverb] linger before it opens its @[all| jaws | noverb] wide and lets its @[all| tongues| noverb] gloss out over its @[all| teeths| noverb]. <<SymbioteName>> seems to give you a salacious glower as it does so.")>>
\<<else>>
<<print setup.processFlavours($CharacterSheet_Player, "You find yourself admiring the gooey glistening of <<SymbioteName>> covering your @[all| heads| noverb]. You try out a few expressions showing off its jawline and admiring the form of its face. From there, your @[all|eyes|noverb] linger before you spend a moment prodding a hand at your @[all| jaws | noverb], opening its mouth to take a look at its @[all| tongues| noverb] and @[all| teeths| noverb]. You spend a moment admiring the sensation of the new face.")>>
\<</if>>
<<print setup.getFlavourBasedDescription($CharacterSheet_Player, "mirror_symbiote_HeadFlavour", 1, undefined, true)>>
\<<if $CharacterSheet_Player.symbiote.info.anatomy.horns != undefined && $CharacterSheet_Player.symbiote.info.anatomy.horns.number >= 1>>
<<print setup.getFlavourBasedDescription($CharacterSheet_Player, "mirror_symbiote_HornsFlavour", 1, undefined, true)>>
\<</if>>
\<<if $CharacterSheet_Player.hasAbility("Ability_ToLiveForEcho")>>
<<print setup.getFlavourBasedDescription($CharacterSheet_Player, "mirror_symbiote_UpperBodyFlavour_LiveForEcho", 1, undefined, true)>>
\<<else>>
<<print setup.getFlavourBasedDescription($CharacterSheet_Player, "mirror_symbiote_UpperBodyFlavour", 1, undefined, true)>>
\<</if>>
<<if $CharacterSheet_Player.symbiote.info.anatomy.wings != undefined && $CharacterSheet_Player.symbiote.info.anatomy.wings.number >= 1>>
\<<if $CharacterSheet_Player.hasAbility("Ability_ToLiveForEcho")>>
<<print setup.getFlavourBasedDescription($CharacterSheet_Player, "mirror_symbiote_WingsFlavour_LiveForEcho", 1, undefined, true)>>
\<<else>>
<<print setup.getFlavourBasedDescription($CharacterSheet_Player, "mirror_symbiote_WingsFlavour", 1, undefined, true)>>
\<</if>>
<</if>>
\<<if $CharacterSheet_Player.hasAbility("Ability_ToLiveForEcho")>>
<<print setup.getFlavourBasedDescription($CharacterSheet_Player, "mirror_symbiote_LowerBodyFlavour_LiveForEcho", 1, undefined, true)>>
\<<else>>
<<print setup.getFlavourBasedDescription($CharacterSheet_Player, "mirror_symbiote_LowerBodyFlavour", 1, undefined, true)>>
\<</if>>
<<if $CharacterSheet_Player.symbiote.info.anatomy.tails != undefined && $CharacterSheet_Player.symbiote.info.anatomy.tails.number >= 1>>
\<<if $CharacterSheet_Player.hasAbility("Ability_ToLiveForEcho")>>
<<print setup.getFlavourBasedDescription($CharacterSheet_Player, "mirror_symbiote_TailFlavour_LiveForEcho", 1, undefined, true)>>
\<<else>>
<<print setup.getFlavourBasedDescription($CharacterSheet_Player, "mirror_symbiote_TailFlavour", 1, undefined, true)>>
\<</if>>
<</if>>
You feel <<SymbioteName>>'s attention turning lower.
<<print setup.getFlavourBasedDescription($CharacterSheet_Player, "mirror_symbiote_CrotchFlavour", 1, undefined, true)>>
<<print "Eventually, though, the presence of <<SymbioteName>> fades, relenting back to your <<PlayerRace>> form.">>
\<<run setup.choice("[[Back->Home]]");>>It takes a few minutes to walk toward Abel's house, a relatively small shack erected from pieces of limestone, metal and rebar. As you approach, you find your eyes drifting towards scattered curios of an origin you do not recognise. Each trinket appears to be ancient. Ancient and junk.
The door is ajar, a slice of carefully cut corrugated iron which you knock on with three resounding thuds.
After a moment, the door opens and Abel invites you inside.Abel's house was a relatively small shack erected from pieces of limestone metal and rebar within the Inner Ring. However, you can not help but notice how much smaller the shack appears next to your height. What would be a modest home for maybe two people looks like it would struggle to accomodate you through the door.
You find it difficult to make it to the entrance without one of your @[one|legs|noverb] stepping on scattered piles of curios you do not recognise.
The door is ajar, a slice of carefully cut corrugated iron which you knock on with three thunderous thuds.
After a moment, the door opens and Abel invites you inside. It is a tight squeeze to make it through the entryway.At some point in time, Abel's house could have been considered a decently sized shack for comfortable family living. Now, the roof barely reaches your midriff.
Each of your massive steps causes piles of ancient curios to rattle in cacophany.
A slice of cleanly cut corrugated iron slides open and Abel's familiar form slips out into the open to greet you.Abel's house is merely another roof of many from your viewpoint.
Bending down, you use your fingertip to gently tap on the corrugated metal roof.
Not a moment later, Abel slides out from the doorway and into the open, his head having to tilt completely backwards to meet your titanic gaze.Abel's house is small and minimalistic in every way. The work he has done for the rest of the Golden Bastion vastly outweighs the effort he has put into his home.\You have to kneel to not bump your head on the ceiling of Abel's home. The work he has done for the rest of the Golden Bastion vastly outweighs the effort he has put into his home.\Abel stands in front of his doorway, his neck bending up to look at you.\You have to focus on hearing Abel from where you stand. His form is impossibly small compared to yours.\<<print setup.getFlavourBasedDescription($CharacterSheet_Player, "visitHouse")>>
\<<run setup.choice("[[Continue->Village_AbelHouse]]");>><<set $CharacterSheet_Abel.quest.naked = false>>\
\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
<<if setup.hasAvailableNarativeEvent(setup.StorySheet_Abel.houseIntro);>>\
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
Abel looks you over and sighs.
"There's a lot we should talk about."
<<include setup.getNextNarativeEventPassage(setup.StorySheet_Abel.houseIntro)>>
<<else>>\
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
<<print setup.getFlavourBasedDescription($CharacterSheet_Player, "abelHouseMenu")>>
<<print setup.getNextNarativeEventPassageListText(setup.StorySheet_Abel.flavourDialogue, 3)>>\
<<print setup.getNextNarativeEventPassageListText(setup.StorySheet_Abel.nyxDialogue, 3)>>\
\<<run setup.choice("[[Leave -> abelHouseDialogue_outro]]");>>
<</if>>\[[Talk about Cray->abelHouseDialogue_aboutCray]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
Abel shakes his head and folds his arms, "No information for you that makes sense, I'm afraid. The mystery is still out to debate between me, myself and I."
"What do you want to know?"
<<print setup.getNextNarativeEventPassageListText(setup.StorySheet_Abel.crayDialogue, 3)>>
[[Talk about something else->Village_AbelHouse]][[Ask about Cray's whereabouts->abelHouseDialogue_aboutCray_whereabouts]]<<set $CharacterSheet_Abel.quest.available_crayDialogue_whereabouts = false>>\
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
"Well," he sighs, "After you had both disappeared, we sent out a few sweeping patrols."
"Some of the guards reported seeing sightings of Cray behind dunes in the distance; a massive shimmering werewolf shrouded by the heat. At first, I had chalked it up to coincidence, but eventually there were too many guards saying the same thing."
"We had to send our patrols further into the Barrens to catch a glimpse of the wayward explorer."
[[Continue->abelHouseDialogue_aboutCray_whereabouts_2]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "angry")>>
Abel's mouth screws into a frown, "Every sighting came back more exaggerated. Cray was always bigger. More monstrous."
"That is until..." Abel pauses, his eyes staring into the distance.
"A single man returned back out of a group of seven. He was frantic, bruised and covered in patches of Corruption. Apparently, this time, Cray had found them first."
"He made quick work of the party and had sent him back as an example of what he could and would do to us. We didn't need a second hint."
<<print setup.getNextNarativeEventPassageListText(setup.StorySheet_Abel.crayDialogue, 3)>>
[[Talk about something else -> Village_AbelHouse]][[Ask about the day Cray left->abelHouseDialogue_aboutCray_dayLeft]]<<set $CharacterSheet_Abel.quest.available_crayDialogue_dayLeft = false>>\
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
Abel shrugs, his brow furrowing, "Yeah, that moment has never left me."
"It felt so out of place, him just walking off like that. He dropped the prosperity of the Golden Bastion entirely."
<<print setup.getNextNarativeEventPassageListText(setup.StorySheet_Abel.crayDialogue, 3)>>
[[Talk about something else -> Village_AbelHouse]][[Ask about Cray's motives->abelHouseDialogue_aboutCray_motives]]<<set $CharacterSheet_Abel.quest.available_crayDialogue_motives = false>>\
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
"This is just speculation, but when I was younger, I used to follow Cray around with stars in my eyes," Abel smiles, "He was the village hero after all. My idol."
"One day sticks out though, that has never left my memory. I had once gotten the opportunity to speak to him and I asked him what the most important thing in the world was to him."
"He said power. Power is the only solution to survival of the people." Abel pauses, ruminating on the memory.
\<<run setup.choice("[[Continue->abelHouseDialogue_aboutCray_motives_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
"I just hope he doesn't lose himself along the way."
<<print setup.getNextNarativeEventPassageListText(setup.StorySheet_Abel.crayDialogue, 3)>>
[[Talk about something else -> Village_AbelHouse]][[Ask about Cray's life in the village->abelHouseDialogue_aboutCray_villageLife]]<<set $CharacterSheet_Abel.quest.available_crayDialogue_villageLife = false>>\
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
"Who doesn't know the name Cray, even now?" Abel answers, "He was a brute of a man who made it his mission to solve any and every village problem with words, tooth or claw."
"Not the most humorous of sort," Abel muses, "No. That man was all work and no play."
<<print setup.getNextNarativeEventPassageListText(setup.StorySheet_Abel.crayDialogue, 3)>>
[[Talk about something else -> Village_AbelHouse]][[Tell him about the spirit within the ring you've encountered->abelHouseDialogue_aboutTheBind]]\<<set $CharacterSheet_Abel.quest.relationship++>>
<<set $CharacterSheet_Abel.quest.available_flavourDialogue_talkAboutTheBind = false>>\
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
"A spirit inside of a ring?" Abel ponders.
"I don't know about this specific one, but I've read about something close to that in old tomes of the world below."
\<<run setup.choice("[[Continue->abelHouseDialogue_aboutTheBind_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
"They had magic that could be imbued onto tools to strengthen them. A sort of 'intent' that would be grafted onto it. 'Shards'... That's what they called them."
\<<run setup.choice("[[Continue->abelHouseDialogue_aboutTheBind_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
"Do be careful around any kind of technology of that kind. I'm not sure how sentient or aware those things could be. We know frighteningly little about them."
\<<run setup.choice("[[Continue->Village_AbelHouse]]");>>[[Ask about Cray's achievements->abelHouseDialogue_aboutCray_achievements]]<<set $CharacterSheet_Abel.quest.available_crayDialogue_achievements = false>>\
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
"Where do I even begin?" Abel shakes his head, "The guy was a legend. He holds the records for most Lost slain. Most fauna slain. Longest surviving explorer. Biggest in the village, all in all departments. There's honestly too many to recount."
"The guy even had suitors fawning over him like he was the only ray of sunlight in the village," Abel chuckles. "Every kid, even myself, wanted to be Cray when they grew up."
<<print setup.getNextNarativeEventPassageListText(setup.StorySheet_Abel.crayDialogue, 3)>>
[[Talk about something else->Village_AbelHouse]][[Talk about his role as the Herald's apprentice->abelHouseDialogue_Herald]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
"What would you like to know, specifically?"
<<print setup.getNextNarativeEventPassageListText(setup.StorySheet_Abel.heraldDialogue, 2)>>
[[Talk about something else->Village_AbelHouse]][[Ask about Abel's duties->abelHouseDialogue_Herald_duty]]<<set $CharacterSheet_Abel.quest.available_heraldDialogue_duty = false>>\
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
Abel sighs, "I'm one step away from being the village leader at this point. I do my part to make sure we live prospoerously."
"That, and," Abel pauses, his eyes turning toward the direction of the tower, "To commune with the Eldest when and if the time calls for it."
<<print setup.getNextNarativeEventPassageListText(setup.StorySheet_Abel.heraldDialogue, 2)>>
[[Talk about something else->Village_AbelHouse]][[Ask about The Eldest->abelHouseDialogue_Herald_eldest]]<<set $CharacterSheet_Abel.quest.available_heraldDialogue_eldest = false>>\
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
"Sadly I cannot tell you more than what you already know. I've been inside" Abel sighs.
"It frightens me, truth be told, What's in there. I feel like if I place one foot in the wrong place then thousands of years of -" Abel catches himself before he finishes the sentence, "Nevermind that. I've said too much."
[[Push him for more information->abelHouseDialogue_Herald_eldest_2]]
<<print setup.getNextNarativeEventPassageListText(setup.StorySheet_Abel.heraldDialogue, 2)>>
[[Talk about something else->Village_AbelHouse]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
"No really, I can't say more," Abel stammers, "All I can say is that the Eldest requires an open mind, and I intend to be said mind."
"I promise, I will tell you more if and when the time comes," he smiles at you warmly, "You'll be the first to know as long as the Corruption doesn't take us first."
<<print setup.getNextNarativeEventPassageListText(setup.StorySheet_Abel.heraldDialogue, 2)>>
[[Talk about something else->Village_AbelHouse]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
You bid the Herald's apprentice farewell.
"Alright then, good luck out there"
\<<run setup.choice("[[Continue->Village]]");>>[[Feel his Corruption->abelHouseDialogue_DeepCorruption]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
Abel looks at you with a sudden sultry look that seems more eager than usual. His eyes, usually soft and unhurried, are ablaze with a seductive fervour.
They sear into yours with an emergent sense of eagerness.
His voice, a smooth, low timbre, rises above the mundane chatter of the room. He confesses,
"I've been thinking about you a lot since last time."
\<<run setup.choice("[[Continue->abelHouseDialogue_DeepCorruption_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
It carries an undertone of sinful pleasure, setting shivers coursing down your spine.
He approaches you, his cock so hard it could tear his pants apart at any point.
As he bares his teeth in a twisted smile, you see an ethereal purple glow illuminating from his eyes.
A hypnotic, inward radiance that hints at something far beyond the realm of normalcy.
\<<run setup.choice("[[Continue->abelHouseDialogue_DeepCorruption_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
He leans closer, his captivating gaze arresting your movements to the point where the air in your lungs seems to freeze.
His words resonate sharply amidst the tranquil night air, echoing with raw honesty.
"All that Corruption you've gathered during your arduous journey..." he murmurs, his voice carrying an undercurrent of mutual understanding.
His gaze intensifies, a cataclysm of silent emotions whirling within the violet depths.
"... I feel it deep within me, too."
\<<run setup.choice("[[Continue->abelHouseDialogue_DeepCorruption_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "blushing")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
<<set $CharacterSheet_Abel.quest.naked = true>>\
Closing the gap between you with a single bound, he surprises you, his groin pressed against your towering form.
His lips find yours. His taste is familiar yet alarming - a startling mix of humanity and the bitter tang of Corruption.
A wild desire stirs within you, a dangerous longing.
Sweat trickles down his brow, his hardened muscles straining under some unseen effort, the Corruption seemingly pulsating beneath his skin.
\<<run setup.choice("[[Continue->abelHouseDialogue_DeepCorruption_5]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
Pulling away completely, you can't help but cast one more look down at his straining form.
A sinister grin stretches across your face.
Your beastly curiosity, now unabated; thoughts of witnessing Abel transforming into a monstrous entity, a demonic presence you could spar with, flood your mind.
Very soon, the world will bow to the power of Corruption, and you can't help but be filled with a twisted sense of anticipation.
\<<run setup.choice("[[Continue->abelHouseDialogue_DeepCorruption_6]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
Finally breaking his silence, his voice rumbles.
"I'm just an apprentice, you know. The apprentice of the Herald, who's supposed to be the big shot guardian of balance and peace in the Bastion."
He flicks his tail with a hint of disdain. "But the more I see you, the more he realizes he's full of it."
\<<run setup.choice("[[Continue->abelHouseDialogue_DeepCorruption_7]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
He takes a step closer, studying the Corruption's tendrils under your skin. He can't deny the appeal of it.
"The Bastion won't hold as it currently stands. We need to use that power for good before others abuse it."
He takes a step back, crossing his massive arms.
\<<run setup.choice("[[Continue->abelHouseDialogue_DeepCorruption_8]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
He knew it is a risky move, helping kickstart a new era. But you can tell he is very attracted to the idea.
"And perhaps," he says, his voice dropping lower, the glint of anticipation shining in his eyes.
"After everything... after we've transformed ourselves, we might find ourselves living in a world untouched by outdated anxieties and superstitions... a world run by strength... by us."
\<<run setup.choice("[[Continue->abelHouseDialogue_DeepCorruption_9]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
"And your transformation, <<PlayerName>>," he continues, his mind consumed by the imagery of ancient, formidable beasts, "Could serve as the defining moment. A sign that the dawn of Corruption is finally here."
He flashes a predator's grin, "Not that you need any reminders, do you?"
But deep within, his beast's heart trembles in vague apprehension, whether from fear or excitement, even he couldn't quite discern.
\<<run setup.choice("[[Continue->abelHouseDialogue_DeepCorruption_10]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
His intense gaze fixates on you, adding a strange tension to the room.
The Corruption under his skin seems to pulsate with its own beat.
"I want it..." he blurts out. "I want that same power to flow through your own... To embrace the raw potential."
The words slip out unexpectedly, but they hang in the air. Abel is caught off guard, not sure if it's because of what he said, or what he plans to do.
\<<run setup.choice("[[Continue->abelHouseDialogue_DeepCorruption_11]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
With a confident swagger, he prepares for the next move.
His rough paws encompass your robust manhood, exploring it with an impossible curiosity that mirrors his quest for power.
"Infest me," a low growl passes through his clenched teeth, "show me your Corruption firsthand." His words are wrapped with a reckless audacity that elicits a growl from you.
This is the moment, the turning point he has been dragging himself towards. He tightens his grip on your cock, embracing the enticing call of power.
\<<run setup.choice("[[Infest him->abelHouseDialogue_DeepCorruption_12]]");>>
\<<run setup.choice("[[Refuse->Village_AbelHouse]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
\<<set $CharacterSheet_Abel.quest.available_flavourDialogue_deepCorruption = false>>
"There is a raw, feral hunger burning in his eyes. As if in a trance, his jaws relax and stretch, taking in every inch of your manhood.
Involuntary moans take him over. Your scent, a blend of potent masculinity and an onyx-dark aura of Corruption, shrouds him completely. The very air seems to thicken as he takes more of your cock.
Nothing else exists beyond this moment.
Taking you in deeper, he surrenders utterly to the sensations flooding his senses.
\<<run setup.choice("[[Continue->abelHouseDialogue_DeepCorruption_13]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
The feel of your manhood – warm, hard, throbbing – is his solitary focus. Each gulp and contraction is a step closer to accepting his fate and embracing his transformation.
His movements become more frantic, more daring. He sucks you off faster, his moans now escaping in between breaths.
Each sound reverberates into the hushed intimacy of his den.
\<<run setup.choice("[[Continue->abelHouseDialogue_DeepCorruption_14]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
A feverish desire takes hold of him, a thrilling mix of Corruption and latent power. His mind thrums with the growing urgency.
As the rhythm of his actions swiftly picks up, every lingering doubt is overpowered by an unquenchable craving to attain ultimate power, to rise triumphantly in this life of survival.
"More..." he finds himself growling out the plea, his voice laced with the primal ruggedness that befits his nature.
This isn't just a plea for pleasure; it mirrors a deeper hunger.
\<<run setup.choice("[[Continue->abelHouseDialogue_DeepCorruption_15]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
His eyes shift back to you, the glowing violet orbs filled with unrestricted anticipation and surrender.
"Infest me!"
A twisted grin graces your face, his eyes gleaming with boundless lust as you feel precum rushing from your cock.
The pulsations in your stature strengthen, signalling the inevitable rush of his climax.
\<<run setup.choice("[[Continue->abelHouseDialogue_DeepCorruption_16]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
A tidal wave of near-devastating energy bursts forth from within him, and cascading currents of pleasure crackle through every fibre of his being.
His muscles, bathed in hot midday sun, quiver and twitch, in tune with the electric ecstasy he experiences.
"Yessss..."
As the tingling sensation signals the rush of your seeds, the essence of the Corruption that courses through your body, he braces himself.
\<<run setup.choice("[[Cum->abelHouseDialogue_DeepCorruption_17]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
His heart hammers in his chest, his anticipation reaching a feverish crescendo.
"Finally... I'm going to become huge!"
You roar as a surge of warm cum fills his mouth.
As he steadily swallows your seed, the Corruption within him spreads.
\<<run setup.choice("[[Continue->abelHouseDialogue_DeepCorruption_18]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
It resonates with an uncanny eagerness, vibrating with a raw and primal energy that alters the state of his existence.
The world around you seems to shift, accommodating the untamed power spreading onto your partner.
And all he could feel... was anticipation.
"Yessssss..."
\<<run setup.choice("[[Continue->abelHouseDialogue_DeepCorruption_19]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
He feels his muscles twitching and then stretching - expanding as if a wild force is now uncaged within them.
Involuntarily, he arches his back, each straining fibre of his muscle swelling, pushing against the confines of his skin.
He watches, with a sense of surreal detachment, as his muscles become hulkish, almost grotesque in their power.
Each movement, every breath now whispers tales of raw dominance, echoing the silent battle to control this newfound might.
"MORE... MORE!!!!"
\<<run setup.choice("[[Continue->abelHouseDialogue_DeepCorruption_20]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
Unprecedented ecstasy crashes into him like waves in a stormy tide.
His body tenses, the secret channels in him awaken as their contents prepare to surge outward.
It feels like a tripwire has been tripped, a countdown has begun.
And with a euphoria-laden grunt, he ejects his own load onto the stone-cobbled floor.
\<<run setup.choice("[[Continue->abelHouseDialogue_DeepCorruption_21]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
\<<set $CharacterSheet_Abel.quest.deepCorruption = true>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
He casts a glance at his arms, already sturdy and marked by scars of past battles — proof of his triumphs and perseverance.
Yet, in this sublime moment, they begin to grow. His muscles throb, his veins standing out starkly against the fabric of his skin as they swell tantalizingly.
The sensation rippling across his broad expanse is pure, unadulterated raw power.
\<<run setup.choice("[[Continue->abelHouseDialogue_DeepCorruption_22]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
His roar, primal and filled with heady satisfaction, resounds across the stone chamber, reverberating with the intensity of his transformation.
His chest, broad and hardened from non-stop training of the past, expands, becoming more pronounced.
But his transformation isn't restricted to his forearms and chest alone.
Every muscle in his body follows the primal rhythm, strands of sinewy muscles coiling and tightening like armoured layers, then surging forth in glorious expansion.
\<<run setup.choice("[[Continue->abelHouseDialogue_DeepCorruption_23]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
His granite abs moulds into a riveted landscape.
His back broadens further, the ridgeline of muscles becoming a hulking mass.
Ignited by the Corruption within him, his lower body matches the intense rhythm; his thighs and calves bulge, transforming into solid pillars of might.
\<<run setup.choice("[[Continue->abelHouseDialogue_DeepCorruption_24]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
A surge of pleasure accompanies each new wave of growth. The moment of climax surges within him; it's both unexpected and inevitable.
Still trembling from the ecstatic waves, his formidable erection unleashes an explosive load.
More warm seed shoots out, a powerful testament to this transformation, showering the cool stone floor beneath him.
Domination, might, untapped power - he is the Herald of it all, a symbol of your new world taking form.
\<<run setup.choice("[[Continue->abelHouseDialogue_DeepCorruption_25]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
The cum that stains the stone floor rapidly darkens. It pools around his hefty feet - some splatter against the hard stone, others snake their way into the grooves.
It seems as if the Corruption is trying to mark territory.
Watching the blackened seed slowly stain the ground only furthers your pride.
This is not just physical change but an alteration of the soul, a silent annunciator of the power growing within.
He shares a glance with you, relishing the pleasure of the change.
\<<run setup.choice("[[Continue->abelHouseDialogue_DeepCorruption_26]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
Standing taller now, his hulking figure casts an even more gigantic shadow as he approaches you, stepping over the now darkened obsidian seed staining the floor.
Each step vibrates with the raw and unruly might within him.
His massive paws reach out to you, the rough pads making contact with your warm, muscular skin.
\<<run setup.choice("[[Continue->abelHouseDialogue_DeepCorruption_27]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
He traces a path around your bulk, tracing the lines where you morphed from man to monument, where the grip of Corruption had overtaken your once mortal recesses.
A low, rumbling purr rolls from his chest, eyes glittering in worshipful adoration.
The mere sight of you, marked by the unyielding strength of the Corruption, stirs a sense of exhilaration within him.
\<<run setup.choice("[[Continue->abelHouseDialogue_DeepCorruption_28]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
<<set $CharacterSheet_Abel.quest.naked = false>>\
The intensity of his lust intertwines with his admiration for you. He delves deeper into the kiss, demanding and giving in the same breath.
His taste fills your senses – raw, potent, subtly flavoured with the underlying power that now defines him.
As he pulls away, he ensures to graze the man's lips one final time, a silent promise lingering in the slowness of his touch.
"Let us make this world ours~"
\<<run setup.choice("[[Continue->Village_AbelHouse]]");>>[[Give him a seductive smile->abelHouseDialogue_InspectMaxRela]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
\<<if setup.getStatValue(State.variables.CharacterSheet_Player, "corruption") <= 0>>
Your teasing does not go unnoticed, and he grins in response.
\<<else>>
Corruption's stench invades his senses, dense, insinuating.
A potent, heady high that could seduce even the staunchest warrior.
\<</if>>
"I believe it might be prudent for me to inspect you, just in case you've been corrupted~" his voice rumbles, deep.
\<<run setup.choice("[[Continue->abelHouseDialogue_InspectMaxRela_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
He slides up to you and his hands settle on your shoulders.
Probing fingers map the rippling expanse of my steel-cut torso, each caress embedded with a deep vibration emanating from your chest.
\<<if setup.getStatValue(State.variables.CharacterSheet_Player, "corruption") <= 0>>
"Let us see how much stronger you've become..." He says, a twisted grin snaking across his features.
\<<else>>
"Let us see how deep this corruption runs..." He says, a twisted grin snaking across his features.
\<</if>>
\<<run setup.choice("[[Continue->abelHouseDialogue_InspectMaxRela_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
Each contour of your carved body is explored, illuminated by his light touch, from the valleys of your abs to the sharp ridges of defined muscles.
The heavy atmosphere swells with anticipation, each passing second heightening your lust.
You tenses under his touch, reacting to each caress.
\<<if setup.getStatValue(State.variables.CharacterSheet_Player, "corruption") <= 0>>
No sign of Corruption yet, but lust is already sown, waiting to sprout.
\<<else>>
The Corruption within you stirs and awakens.
\<</if>>
\<<run setup.choice("[[Continue->abelHouseDialogue_InspectMaxRela_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "blushing")>>
Heat flushes his cheeks, an unfamiliar sensation that coaxes an amused purr from his chest.
He isn’t normally prone to blushing, yet, the thrill of these uncharted sensations leaves him no choice.
He nudges closer, pressing his large figure against your body.
They seem to fuse together, their warmth mingling in a way Abel has never felt before.
\<<run setup.choice("[[Continue->abelHouseDialogue_InspectMaxRela_5]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "blushing")>>
He instinctively hides his face in your chest, taking refuge in the hard curves of sinewy strength.
His blush darkens, his cheeks ablaze, betraying his typically cool exterior.
Nestled between your concrete-like pecs, Abel’s deep purr vibrates against your body.
You feel his heart hammers against your chest.
\<<run setup.choice("[[Continue->abelHouseDialogue_InspectMaxRela_6]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "blushing")>>
Amidst the chaotic world outside, this moment of shared intimacy feels like a quiet solace.
[[Kiss him->abelHouseDialogue_InspectMaxRela_Sex]]
[[Pull back->Village_AbelHouse]][[Reach out to him->abelHouseDialogue_InspectMaxRela_Sex]]<<set $CharacterSheet_Abel.quest.available_flavourDialogue_inspectMaxRela = false>>\
<<set $CharacterSheet_Abel.quest.available_flavourDialogue_sexMaxRela = true>>\
<<set $CharacterSheet_Abel.quest.available_flavourDialogue_sexMaxRela_daily = false>>\
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "blushing")>>
The pressure shatters under the weight of your unpredictable move.
Caught breathless and wide-eyed, he's momentarily paralyzed.
However, as the initial shock wanes, he sinks into the warmth of your touch.
He wraps his large arms around you, drawing you in closer, surrendering to the moment.
\<<run setup.choice("[[Continue->abelHouseDialogue_InspectMaxRela_Sex_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "blushing")>>
He savors your essence, a heady blend of bravery and latent desire.
Instinctively, your grip tightens around him as you press him to your muscular chest, your hearts pounding a wild rhythm.
His eyes close completely.
\<<run setup.choice("[[Kiss him->abelHouseDialogue_InspectMaxRela_Sex_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
His golden eyes blink open, ablaze with a fresh brightness.
The blush that decorated his cheeks a moment ago seem trivial compared to the heat that now pulses in his veins.
Desires blaze through your veins like fiery lava, smoldering and unpredictable.
\<<run setup.choice("[[Continue->abelHouseDialogue_InspectMaxRela_Sex_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
The taste of his lips was a mere ignition, but now the desire blazes uncontrollably.
"<<PlayerName>>," you murmur with a huskiness you barely recognize. His voice shakes with sheer want.
"I need more... I need..." He stumble over the words.
\<<run setup.choice("[[Continue->abelHouseDialogue_InspectMaxRela_Sex_5]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
The beast within you growls, succumbing to these raw, untempered urges.
"Make me yours, <<PlayerName>>," he pleads, his voice trembling with the depth of desire.
\<<run setup.choice("[[Continue->abelHouseDialogue_InspectMaxRela_Sex_6]]");>><<set $CharacterSheet_Abel.quest.naked = true>>\
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
His heavy tail slides rhythmically across the floor, a wild pendulum driven by arousal.
Emotion roars within him, primal and fervent, intensifying in the face of what's ahead.
He aches to be taken, to be ravished, to be possessed in a manner that transcends the physical.
His flushed face, his husky voice, his begging words articulate the urgency of his plea.
"Please... Take me... I... need you..."
\<<run setup.choice("[[Fuck him->abelHouseDialogue_InspectMaxRela_Sex_7]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "blushing")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
Feeling your turgid erection straining at the brim of his ass shoots an anticipatory shudder.
Lust cascades down his spine.
Abruptly, you reclaim his mouth in a searing kiss, nearly consuming him whole as you plunge into his depths.
\<<run setup.choice("[[Continue->abelHouseDialogue_InspectMaxRela_Sex_8]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "blushing")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
The sound that claws its way up his throat is half moan, half growl; a surrender to the undiscovered pleasure.
The sudden invasion is a delightful spike of euphoria, raw and sensitive.
The ensuing wave of pleasure is heady, dizzyingly reckless.
His body convulses, spine lifting off the chilly, stone wall as he vocalize his carnal desire.
\<<run setup.choice("[[Continue->abelHouseDialogue_InspectMaxRela_Sex_9]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
"<<PlayerName>>!” Your name grates from his throat, a raspy mating call to your united pleasure.
The world beyond your passion is a meaningless blur as you thrust deeper inside him.
Each driving thrust from you is a thunderous burst of pleasure within your veins.
\<<run setup.choice("[[Continue->abelHouseDialogue_InspectMaxRela_Sex_10]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
Your persistent thrusts coax out a groan from his lips that rises to a lustful roar.
Your name is a sacred chant on his lips.
He blindly grasps at the wall behind him for support, a desperate attempts to grapple with the passionate frenzy.
"<<PlayerName>>! Yes! YESSSS!" Every touch, every gasp, every moan pulls him further into erotic bliss.
Your strong gaze holds his, locking you in a world that exist only for you.
\<<run setup.choice("[[Continue->abelHouseDialogue_InspectMaxRela_Sex_11]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
Your thrusts becomes more desperate, the pleasure coursing between you, increasing your urgency.
His heart raises in tempo, matching the pounding rhythm of your bodies.
Lighting a trail of ecstasy throughout his body, your lingering caresses flares in his loins.
\<<run setup.choice("[[Continue->abelHouseDialogue_InspectMaxRela_Sex_12]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "blushing")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
Your lust engulfs you.
He scrapes his clawed fingers against the wall, a feeble attempt to anchor himself amidst the tempest of your entwined ecstasy.
"Deeper... I need you... all of you..."
\<<run setup.choice("[[Cum->abelHouseDialogue_InspectMaxRela_Sex_12_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
The sheer magnitude of this allure-filled surrender takes you by surprise, and so he braces for one final powerful thrust.
You ignite every cell within him, penetrating the deepest corners of his soul until he cums all over your chest.
"YEsssss... YESSSSS!!!!"
Your climax fills him, a very real presence amidst their mingled warmth promising endless nights of sultry enjoyment to come.
\<<run setup.choice("[[Cum->abelHouseDialogue_InspectMaxRela_Sex_13]]");>><<set $CharacterSheet_Abel.quest.naked = false>>\
<<run setup.applyCorruption($CharacterSheet_Abel, setup.getStatValue($CharacterSheet_Player, "corruption"))>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_TimelessBond)>>
\<<run $CharacterSheet_Abel.applyAbilityRuntimeData(setup.Ability_TimelessBond)>>
The high of pleasure starts to recede, yet leaves behind an echo in each corner of his room, a symphony only understood by the two of you.
"I've craved for this... For as long as I can remember" he surrenders, a low rumble of a confession resonating from his taut chest.
With the confession lingering like a ghost in the silence, he knows that despite the specter of darkness looming on the world's horizon, you have birthed your own beacon of light.
∇: You gain the "Timeless Bond" ability.
∇: Abel gain the "Timeless Bond" ability.
∇: Abel gains <<print setup.getStatValue($CharacterSheet_Player, "corruption")>> Corruption.
\<<run setup.choice("[[Continue->Village_AbelHouse]]");>>[[Approach him->abelHouseDialogue_OfferCure]]\<<set $CharacterSheet_Abel.quest.relationship++>>
\<<set $CharacterSheet_Abel.quest.available_flavourDialogue_firstCorruption = false>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
A deep, resonant rumble vibrates from your chest, your voice is low, resonant.
Ethereal light flickers across the expanse of muscle and sinew that define your formidable form, and Abel takes notice.
"You seem... different. There's an odd scent clinging to you. Could it be... Corruption?"
\<<run setup.choice("[[Continue->abelHouseDialogue_OfferCure_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
He's close enough now for you to inhale the lingering scent of the sweat on his skin.
An earthy, masculine undertone – grounding and intoxicating.
The battle to temper the beast within you intensifies.
The lurking monster inside rumbles with a potent urging: to pounce, to claim.
"Did you fight one of the Lost? Kinda smells like it."
\<<run setup.choice("[[Continue->abelHouseDialogue_OfferCure_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "blushing")>>
He approaches, a heat emanates from his frame, encasing you both in a bubble of intimate proximity.
Your instincts spark ablaze, to life, and your inner tiger stirs.
Every breath he draws, every rhythm of his pulse drowns out the world around you, amplifying the pounding within your own chest.
"Getting kinda hot in here..."
\<<run setup.choice("[[Continue->abelHouseDialogue_OfferCure_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
Suddenly, a low, primeval growl rolls off your tongue, the sound shimmering through the hushed room and entangling itself within the tension-charged air between you two.
It is unmistakable, a bold communication, a warning of the savage yearning that the Corruption cradles.
With a surge of self-control, he manages to step back, establishing safe distance between you two.
His voice is gruff with want as he murmurs, "<<PlayerName>>... Corruption is dangerous."
\<<run setup.choice("[[Continue->abelHouseDialogue_OfferCure_5]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
Your gaze flits down to his lips for a moment before you forcefully rip it back up to lock onto his eyes.
"Its allure might seem seductive - the power, the transformation... But it could consume you whole."
Sliding away, you approach a nearby cabinet, acquiring a petite vial.
The elixir inside dances under the narrowing sunlight, casting an otherworldly gleam.
\<<run setup.choice("[[Continue->abelHouseDialogue_OfferCure_6]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
"The Herald told me to give this to you if I noticed Corruption taking hold of you. Said it would dampen its influence."
The seductive twinkle in his gaze dims distinctly.
"Speaking of... We must be cautious of the Herald. He's very vigilant and won't hesitate to banish you if you show signs of infection."
A shudder courses through him. His eyes tell the full story.
Despite his strength, nothing terrifies him more than the potential of losing you to the desolate plains of the Barrens.
"I can't..." His voice dissipates as you force down the knot in your throat, "I couldn't bear to lose you, <<PlayerName>>."
\<<run setup.choice("[[Continue->abelHouseDialogue_OfferCure_7]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
Your eyes take on a tender look as they find <<PlayerName>>'s, your hand tentatively reaching out to gently rake over the curve of his cheek.
"Swear it to me, <<PlayerName>>, no matter what happens, you'll hold onto this bond that we have," He implore you, his eyes shine with a desperate sincerity.
A hush drops onto the room once more.
The threat of banishment looms like a storm cloud, casting a shadow over the precious, fragile moment you've woven together.
\<<run setup.choice("[[Continue->abelHouseDialogue_OfferCure_8]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
A part of you relishes the potential power the Corruption could ignite, the demon of lust within you compels as much.
Yet, you're torn, caught between your primal instincts and the safety of life in the Bastion.
[[Take the cure->abelHouseDialogue_OfferCure_Accept]]
[[Refuse the cure->abelHouseDialogue_OfferCure_Refuse]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
Your fingers wrap tightly around the potion, your grasp resolute and stern.
But them, you let it slip from your grasp.
The jarring echo of shattering glass against stone surrounds you both, the potion spreading out across the ground in a waste.
\<<run setup.choice("[[Continue->abelHouseDialogue_OfferCure_Refuse_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
You stand there, stark and unyielding, choosing the alluring tendrils of Corruption over the safety of the Barrens.
"No turning back then." He says, unsure of what happens next.
You reach for him, your touch engulfing him in a tenacious embrace.
The taste of your willful betrayal envelops you, consumes you in its fiery wave.
\<<run setup.choice("[[Continue->abelHouseDialogue_OfferCure_Refuse_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "blushing")>>
<<PlayerName>>..." Your name escapes his lips, an emotional plea etched in turmoil.
The smoky fragrance of your resolve spreads to him, a heady mixture of power trembling on the edge of an abyss.
The rhythm of his heartbeat pounds in your ears, an anthem of desperation echoing fear and desire.
Your choice bears the weight of a tempest, sudden and formidable, threatening to forever alter the foundation of our relationship.
\<<run setup.choice("[[Continue->abelHouseDialogue_OfferCure_Refuse_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "blushing")>>
He reels in closer, the scorching warmth of his body imprinting itself on yours.
He is pulled in your gravitational pull, a maelstrom of lust, and a dark curiosity to see the monster you’ve chosen to awaken within yourself.
As though on instinct, his grip on you tightens.
\<<run setup.choice("[[Continue->abelHouseDialogue_OfferCure_Refuse_5]]");>>\<<set $CharacterSheet_Abel.quest.corrupted = true>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_PromiseOfCorruption)>>
This palpable shift sends a thrilling shiver coursing down your spine.
"I'm with you, <<PlayerName>>," He affirms, drawing you even closer, welcoming the heat of your body as it mingles with my own. "Whatever path we walk."
Beneath the stirring waves of his primal urges, there's an undeniable attraction to your stubborn tenacity.
Yet he pulls back once more, still shaken by the choice you've made.
∇: You gain the "Promise of Corruption" ability.
\<<run setup.choice("[[Continue->Village_AbelHouse]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
As the thick potion slides down your throat, ripples of distaste contort your usually composed features.
The draft is a vile thing—bitter and biting—and tests the very mettle of your courage.
Yet you brave it, gulping it down with determination that far eclipses its foul flavor.
\<<run setup.choice("[[Continue->abelHouseDialogue_OfferCure_Accept_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
Witnessing your steadfast resolution against the Corruption, Abel's swells his chest with a pride so fierce it's nearly tangible.
The empty vial clinks as you set it down on the worn wooden table beside you, finalizing your harrowing ordeal.
Without a moment's hesitation, Abel bridges the gap between you, drawing your body into a firm embrace.
"<<PlayerName>>," His voice rumbles low.
\<<run setup.choice("[[Continue->abelHouseDialogue_OfferCure_Accept_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
His eyes meet yours, the prior tension diffusing into a shared understanding.
Moments of tranquility and comfort, a shared solace only you could provide to each other.
"Remember this, <<PlayerName>>." He whispers into the quiet room, his voice a gentle, coaxing echo.
"The hard choices we make... they define us. They always will. And today, you've shown incredible strength and resilience."
\<<run setup.choice("[[Continue->abelHouseDialogue_OfferCure_Accept_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_CorruptionInhibitor)>>
A feline grin unfurls across his features, softening the grim stoicism of a warrior to something playful, something that dares to revel in admiration.
The silence that follows resettles you into reality: the humble surroundings of his home and the lingering bitterness of the potion on your tongue.
∇: You gain the "Corruption Inhibitor" ability.
\<<run setup.choice("[[Continue->Village_AbelHouse]]");>>corruptTalisman:
{
available: function()
{
return State.variables.CharacterSheet_Abel.quest.available_flavourDialogue_talisman;
},
condition: function()
{
return State.variables.CharacterSheet_Abel.quest.available_flavourDialogue_sexMaxRela;
},
passage: "abelHouseDialogue_CorruptTalisman_Link",
},
giveTalisman:
{
available: function()
{
return State.variables.CharacterSheet_Abel.quest.available_flavourDialogue_talisman;
},
condition: function()
{
return State.variables.CharacterSheet_Abel.quest.available_flavourDialogue_sexMaxRela;
},
passage: "abelHouseDialogue_GiveTalisman_Link",
},[[Talk about that guard...->abelHouseIntro_firstDialogueAttackedGuard]]<<set $CharacterSheet_Abel.quest.available_houseIntro_attackGuard = false>>\
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
"That was quite a scuffle out there by the looks of it, though I honestly can't blame him. You do look different."
Abel's brow creases as he inspects your face.
\<<if $CharacterSheet_town_guard.quest.beatenOnce == false>>
Abel's eyes drift over your body, his hand gently touching the skin under a cut on your shoulder.
"Most of these wounds are superficial, but they'll leave a mark in the morning," he frowns, "Wish I had gotten there sooner..."
\<</if>>
\<<run setup.choice("[[Continue->abelHouseIntro_firstDialogueAttackedGuard_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "angry")>>
"I had never expected you to attack one of our own people," his gaze meets yours, "What was that about?"
[[It was self defense->abelHouseIntro_attackGuardSelfDefense]]
[[It felt right->abelHouseIntro_attackGuardFeltRight]]It was an act of self defense.
You elaborate on how the guard gave you no opportunity to defend your case.
\<<run setup.choice("[[Continue->abelHouseIntro_attackGuardSelfDefense_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
The cat nods as he listens to your account of the story, his lips curling downward in sadness.
"Sorry about that, the Golden Bastion has been pretty high-strung. Whispers of gloom travel quickly among the villagers when explorers go missing and young blood is appointed as the new Herald."
Abel sighs.
"Your return is probably the best news we've had in a long time."
\<<if $CharacterSheet_town_guard.quest.fled == true>>
"Here's hoping the guard doesn't stretch the story," Abel continues, "I saw him running into the village proper. Perhaps his words about you will be kinder considering you spared him."
\<<else>>
"Well, that news may be watered down when they realise how hard you hit our guard," Abel continues, "Words of what you did will spread."
\<</if>>
"Regardless," Abel's frustration simmers away with a deep breath, "We'll cross that bridge when we come to it. Now..."
\<<run setup.choice("[[Continue->abelHouseIntro_firstDialogue]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "angry")>>
Abels' brow furrows as you explain your actions away with the primal urges you have felt.
"I don't know how I feel about that answer. I've always held you in high regard, but fighting the guard because you felt it was right is not really an acceptable excuse. This wasn't a tavern brawl, you or the guard could have been killed!"
\<<if $CharacterSheet_town_guard.quest.fled == true>>
"Here's hoping the guard doesn't stretch the story," Abel continues, "I saw him running into the Village proper. Perhaps his words about you will be kinder considering you spared him."
\<<else>>
"I've taken him to a healer for mending," Abel continues, "But word of those wounds and their source will spread. I hope that your explanation will be good enough to appease the people."
\<</if>>
"Regardless, " Abel's frustration simmers away with a deep breath, "We'll cross that bridge when we come to it. Now..."
\<<run setup.choice("[[Continue->abelHouseIntro_firstDialogue]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "angry")>>
Abel shakes his head, "Being hotheaded in a situation like that could have led to your or the guards death!"
"What am I supposed to tell people who ask about what happened?" Abel sighs, "People are going to be afraid of you if you keep this up."
\<<if $CharacterSheet_town_guard.quest.fled == true>>
"Here's also hoping the guard doesn't stretch the story," Abel continues, "I saw him running into the Village proper. Perhaps his words about you will be kinder considering you spared him."
\<<else>>
"I've taken him to a healer for mending," Abel continues, "But word of those wounds and their source will spread. Please $CharacterSheet_Player.info.name, the Village has fallen on tough times. Next time, I can only ask on behalf of all of us that you control your anger."
\<</if>>
"Regardless, " Abel's frustration simmers away with a deep breath, "We'll cross that bridge when we come to it. Now..."
\<<run setup.choice("[[Continue->abelHouseIntro_firstDialogue]]");>>[[Talk to Abel->abelHouseIntro_firstDialogue]]<<set $CharacterSheet_Abel.quest.available_houseIntro_baseFirstDialogue = false>>\
<<set $CharacterSheet_Abel.quest.playedHouseIntro = true>>\
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
"Really, any of us should be no stranger to death with the primal ferocity of the Barrens, but to lose someone that close to me... I just refused to believe it."
"And, here you are," he pauses, releasing a long drawn out sigh, "Alive and making my head spin with so many questions its nigh overwhelming."
The cat's legs fold beneath him as he sits cross legged on the dusty floor.
His hand finds purchase on a small metallic ball next to him which he picks up.
It rolls between his fingertips as he continues.
"What happened out there? That is something I still don't know..."
\<<run setup.choice("[[Continue->Village_AbelHouse]]");>>[[Share your experience with the meteor->abelHouseIntro_tellAll]]<<set $CharacterSheet_Abel.quest.available_flavourDialogue_introTellAll = false>>\
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
The ball stops moving between Abel's fingers as you tell him everything. You recount finding the crater, and the strange orb at its center.
You tell him about the other world, and the entity that seemed to bond with you. Finally, you end your story with how you ended up at the gates of the city, affronted by the guard.
Abel remains silent for several minutes. His eyes fixate on the object within his shaking hands.
"I... I don't know what to say. If it came from anyone else, I would have sworn the desert heat had gotten to their brain." Abel speaks in soft and measured tones.
"If anyone in this village ever finds out, they would exile you at best..."
"Just, coming back from the dead like this and with this thing inside of you; people will think you are one of the Lost."
"How do you feel about your situation?"
[[Tell him you embrace what you've become->abelHouse_tellAll_GivingIn]]
[[Tell him that you are resisting it->abelHouse_tellAll_resisting]]
[[Tell him you are unsure->abelHouse_tellAll_unsure]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
You feel power pulsing in the back of your mind and within the core of your being. There is so much untapped potential. So much more you could coax out of the proverbial shell.
Abel's brow furrows as your expression morphs in reaction to your fantasizing.
You feel how the power within you could make you a ruler. A monster. An unstoppable force of nature. Bigger. Better. More.
"Not so different from Corruption, it seems," Abel whispers, "We have to find a way to stop it $CharacterSheet_Player.info.name"
[[Disagree with Abel->abelHouse_tellAll_disagree]]
[[Agree with Abel->abelHouse_tellAll_agree]]\<<set $CharacterSheet_Abel.quest.relationship++>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
You nod.
Abel's shoulders slump, as if they have been unhooked off of strings attached to the roof. The sigh of relief that follows confirms your suspicion of the tension that had built up within him.
A smile touches the corners of his lips, "You and I both know what its like to be affected by that stuff. It's dangerous and if it stays in your system for long, who knows what would happen to you."
"I will not lose you again."
\<<run setup.choice("[[Continue->Village_AbelHouse]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "angry")>>
You shake your head.
Abel's eyes close and a sigh escapes from his lips, "You can't be serious?"
[[Argue that the power is a useful tool->abelHouse_tellAll_disagree_itHasUses]]
[[Argue that the power has potential->abelHouse_tellAll_disagree_wantMore]]
[[Argue that the power can help the Village->abelHouse_tellAll_disagree_forThePeople]]
[[Argue that the power can protect Abel->abelHouse_tellAll_disagree_forAbel]]\<<set $CharacterSheet_Abel.quest.relationship++>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "blushing")>>
Abels cheek visibly flush as you tell him about your desire to protect him from harm.
The power, the potential to tackle the trouble of the world drops from your lips, only adding to the redness in the man's cheeks.
"That... that is incredibly sweet of you," Abel stammers bashfully, "This is bigger than you and I though, right?"
[[Agree->abelHouse_protectAbel_agree]]
[[Disagree->abelHouse_protectAbel_disagree]]
[[Hug him->abelHouse_protectAbel_hug]]
<<if $CharacterSheet_Player.hasAbility("Ability_MemoriesOfNyx")>>\
<span class="glitch" data-text="Corrupt him">[[Corrupt him->abelHouse_protectAbel_corrupt]]</span>
<</if>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
You agree with Abel, a wave of empathy washing over you.
"You hold the title of explorer," he hums softly, "Which means the safety of everyone is your priority... Our priority."
\<<run setup.choice("[[Continue->abelHouse_protectAbel_agree_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "blushing")>>
Abel smiles, "Though, I do appreciate the kindness of your words."
\<<run setup.choice("[[Continue->Village_AbelHouse]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "blushing")>>
You disagree with Abel. You tell him about your desire to protect him above the rest.
The cat's paws begin to fidget with his clothing, his cheeks burning.
Abel stutters, "I uh... I don't know how to react to all of this. Thank you $CharacterSheet_Player.info.name. However, the people deserve to be cared for as well. We can't just ignore their plight, they are family too."
\<<run setup.choice("[[Continue->Village_AbelHouse]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "blushing")>>
You decide to hug Abel instead of answering directly.
The cat sinks into your firm embrace, his tension melting away by the second.
"I'm so glad to have you back" Abel stammers, "You are the closest thing I have to family in this barren world. However, we can't just run away from those around us. They need our help."
\<<run setup.choice("[[Continue->Village_AbelHouse]]");>>//let's only do this if got an ending related to abel, this escalates too quickly otherwise
You decide to swoop in for a kiss instead of answering directly.
Abel is completely taken by surprise as your lips meet his. There is a moment of hesitation, before his tension melts away and his arms wrap around as much of you as he can.
A blissful moment of silence and unannounced passion consumes the room before Abel breaks the kiss.
"I... what?" Abel stammers before gently pushing out of your embrace, "Have you always felt this way about me? No wait..."
Abel shakes his head, "We can talk about this another time. We have more important things to discuss right now. There is still so much to do to get the village on its feet."
\<<run setup.choice("[[Continue->Village_AbelHouse]]");>>\<<set $CharacterSheet_Abel.quest.relationship++>>
\<<set $CharacterSheet_Abel.quest.relationship++>>
\<<set $CharacterSheet_Abel.quest.relationship++>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "blushing")>>
Just like before, you feel the power within you roiling and ready to burst.
<span class="glitch nyx fucked" data-text="G̶̠͉͖͐R̴̛̎̔̚͜Ȍ̵̹̹̹̖̅W̷̨͊̾̚͠">All shall</span><span class="glitch nyx" data-text="S̶͔̣͈͕̥̆̎̔͑́́̈̿̾̆͝͝ͅP̶̼̺̪̘͚̱͓̙̭̙͐̇̄̐̍̋̅̅̆̕͘͘͠R̴̦̩͕̙̿͆͌̾̈́̏͐̕E̶̡̧̝̭̩̪̜͙͋̓̿̓͝A̴̜̘͚̜͕̜̙̺͎̤͋̀̓̀̊̂̔̿͑̾̐̀̃͐̑̾͜͜ͅD̶̢̘͚̹̦̟̈́͒͐͆́͘"> gaze upon </span><span class="glitch nyx fucked" data-text="C̷̛̛̱̹̟͚͕̱̗͎͙̳̞̜̘̬̝͖̖̟̻̐̎́̌̈͐̉͑͐̋̽̔̋͂̋͝ͅƠ̶̢̱̯̬̖̥̠̬̼̼̼̜͔̬̜͚̯̺̹̩̐̍̅͒̅̓̀̚͠R̷̨̡̛̪̣͚̲͕̝̥̩͚̗̭̫̯̪͙̯̥̓͐̉̈́̒͐̃͒̽͊͛̀͋̅̕͜R̷̠̎U̵̧̫͙̺̤̰͎͓̦̓̎̿̈́̈̅́͌͝P̸̘͔̺̘̮̼̱̭̜̲͕̬̩̋̑́͜T̷͓̱͎̘̞̣͎̗̙̦̲͔͒͛͑̋̔̊̀͑̔͒͆̚̚͜͝͠͝͝ͅ">the host of Nyx</span>
You suddenly swoop in to kiss Abel, surprising him with your speed. As your lips meet, your tongue dives into his maw.
He melts into your embrace as you will your influence into his being through your tongue.
\<<run setup.choice("[[Continue->abelHouse_protectAbel_corrupt_2]]");>>\<<set $CharacterSheet_Abel.quest.corrupted = true>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "blushing")>>
A mote of black liquid slips down his lips, as you fill his throat with mild Corruption. His body reacts immediately.
You feel his engorging shaft press up against your body. Hands rove across your limbs, your face and he dives in for one more kiss.
"I never realised how much I..." Abel stammers, suddenly pushing himself away from you, "W-we have far more important things to talk about right now."
He quickly turns around to pick up a book and awkwardly holds it in front of his erection, hiding it from view.
\<<run setup.choice("[[Continue->Village_AbelHouse]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
You answer Abel to the best of your ability, explaining how the Corruption appears to have affected you differently.
His eyes scrutinize you as you speak of turning this new power into something useful and practical, to be able to reach where no explorer could go before.
You catch a sparkle of interest behind Abel's eyes.
"I suppose that could be useful. I may even have a few of those 'untouchable' places for you to explore if you would be interested. However! If you feel whatever that stuff is doing to you is too much, you come to me, okay?"
\<<run setup.choice("[[Continue->Village_AbelHouse]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
<<print setup.processFlavours($CharacterSheet_Player, "Your smile widens, your chest swells with pride and you lift your @[one|arms|noverb] into the air in a powerful display of new strength.")>>
Abel listens to you intently as you explain the euphoria you feel with this new power. You tell him of your potential to grow, to become more and beyond even that.
A worried expression crawls over Abel's face. His cheeks are flush and you catch movement around the area of his crotch.
His body betrays his mind.
"Just please don't let it get to your head, okay? As much as I would love to see you grow stronger; I care more for my friend than a wall of muscle."
\<<run setup.choice("[[Continue->Village_AbelHouse]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
You surprise Abel with your answer, explaining how this new power could be put to use for the betterment of the people in the Village.
Abel looks shocked.
"That's... Well, when you put it that way, I can't really argue."
"Still, what's happening to you does worry me... It's like I'm hearing Cray again."
\<<run setup.choice("[[Continue->Village_AbelHouse]]");>>The uncertainty of this creature still plagues your being. The dark void, the power, the time that had passed - it's a mix of anxiety and excitement.
You tell Abel exactly how it feels.
\<<run setup.choice("[[Continue->abelHouse_tellAll_unsure_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
He nods sagely, his hand scratching the bottom of his chin, "I guess there really is no telling what's happening to you. By all means, you should be seeping black ooze about now, but you aren't."
"There isn't much to be said or done about this now. We just need to watch it closely and please, let me know if you start feeling like you can't control it."
\<<run setup.choice("[[Continue->Village_AbelHouse]]");>>\<<set $CharacterSheet_Abel.quest.relationship++>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
The power is intoxicating, a pounding presence at the back of your mind waiting to be unleashed in its purest form. Yet, you feel you must resist its temptations.
You tell Abel of your plan to ignore it's effects on your mind and body and your plan to keep it in check.
The cat seems to relax the longer you speak, a weight slowly peeling off of his shoulders.
"I think that's probably the best response I could have hoped for. I can only imagine how hard it's going to be at times, but I'll be there for you, Okay? If you ever need help, talk to me."
\<<run setup.choice("[[Continue->Village_AbelHouse]]");>>Among your partners, who do you wish to bring with you during your adventures?
<<print setup.displaySelectTeammate()>>
\<<run setup.choice("[[Return->Village]]");>>\<<run console.log("allvariables")>>
\<<run console.log(State.variables)>>
\<<run setup.stopAllRealizationPackages()>>
\<<run setup.stopSoundActions();>>
\<<include setup.getNextNarativeEventPassage(setup.StorySheet_Player.enterVillage)>>\<<print setup.getVillageDescriptor()>>
\<<if $CharacterSheet_Player.quest.corruptionVillageExiled == true>>
<<print setup.displayVideo("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/Exiles_Rest.mp4", false)>>
\<<else>>
<<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/golden_bastion_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/golden_bastion.jpg", undefined, true)>>
\<</if>>
\
\<<include Village_Menu>>
\\<<if setup.canLevelUp($Level) >>
\<<run setup.choice("[[Level Up->Level Up]]");>>
\<</if>>
\
\<<if $CharacterSheet_Player.quest.corruptionVillageExiled == true>>
\<<run setup.choice("[[Look Around->Home]]");>>
\<<else>>
\<<run setup.choice("[[Home->Home]]");>>
\<</if>>
\
\<<if $Debug>>
[[Debug Menu->DebugMenu]]
\<</if>>
<<print setup.highlightChoice("[[Modify Metabolism->Modify_Metabolism]]", $CharacterSheet_Player.info.choiceHighlight.limitBreakAvail || $CharacterSheet_Player.info.choiceHighlight.overgrowthAvail || $CharacterSheet_Player.info.choiceHighlight.mutationAvail);>>
\
<<print setup.highlightChoice("[[Change Fight Moveset->Change_Combo_Moves_Menu]]", $CharacterSheet_Player.info.choiceHighlight.newCardAvail);>>
\
[[Options->GameplaySettings]]
\
<<print setup.getVillagePassages()>>
\<<if $CharacterSheet_Player.quest.corruptionVillageExiled == false>>
[[Abel's House->Village_AbelHouse_Intro]]
[[Lukka's Laboratory->LukkaHouse]]
[[Palace Prisons->LostPrisoner]]
\<<elseif $CharacterSheet_Player.fight.unlockedTeammates.includes("CharacterSheet_Abel")>>
[[Talk to Abel->Village_Exiled_Abel_Menu]]
\<</if>>
[[Gaze to the Stars->VillageStars]]
\
\<<if $CharacterSheet_Player.fight.unlockedTeammates.length > 0>>
[[Select Teammate->Select_Teammate]]
\<</if>>
\
\<<if $WorldState.cultManor.monolithBroken>>
\ <<if setup.getNextNarativeEventPassage(setup.StorySheet_Jorm.encounterPassages) != undefined>>
\<<run setup.choice("[[Investigate the Fallen Realm->Encounter_Jorm]]");>>
\ <<else>>
\<<run setup.choice("[[Return to an uncertain fate->Ending_UncertainFate]]");>>
\ <</if>>
\<</if>>
\
\<<set $NorthGateEvent = setup.getNextNarativeEventPassage(setup.StorySheet_Player.exploration.villageGateNorth)>>
\
\<<if $NorthGateEvent != undefined && $CharacterSheet_Player.quest.corruptionVillageExiled == false>>
\<<run setup.choice("[[Northern Barrens->$NorthGateEvent][$Explore_Destination = $Explore_Destination_North; setup.setKnownEncounterList(setup.LOCATIONS.NORTH);]]");>>
\<<else>>
\<<run setup.choice("[[Northern Barrens->$Explore_Destination_North][$Explore_Destination = $Explore_Destination_North; $Encounter_Target = setup.getRandomEncounter(setup.LOCATIONS.NORTH); setup.setKnownEncounterList(setup.LOCATIONS.NORTH);]]");>>
\<</if>>
\
\<<set $EastGateEvent = setup.getNextNarativeEventPassage(setup.StorySheet_Player.exploration.villageGateEast)>>
\<<if $EastGateEvent != undefined && $CharacterSheet_Player.quest.corruptionVillageExiled == false>>
\<<run setup.choice("[[Eastern Barrens->$EastGateEvent][$Explore_Destination = $Explore_Destination_East; setup.setKnownEncounterList(setup.LOCATIONS.EAST);]]");>>
\<<else>>
\<<run setup.choice("[[Eastern Barrens->$Explore_Destination_East][$Explore_Destination = $Explore_Destination_East; $Encounter_Target = setup.getRandomEncounter(setup.LOCATIONS.EAST); setup.setKnownEncounterList(setup.LOCATIONS.EAST);]]");>>
\<</if>>[[Mention the black sun within the chasm->abelNyxDialogue_MentionNyx]]\<<set $CharacterSheet_Abel.quest.available_nyxDialogue_mentionNyx = false>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "happy")>>
"Hmm," he muses aloud, a thoughtful hum echoing through the dimly lit shelter. His penetrating gaze shifts onto the figure before him.
"That's quite a revelation, <<PlayerName>>." The claws sprouting from his intimidating hands tap an agitated cadence against the coarse wood of his chair's armrests.
Visions of the ominously silent chasm flood his mind, the paralyzing dread oozing from it.
\<<run setup.choice("[[Continue->abelNyxDialogue_MentionNyx_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
"Descending into Nyx's lair, nothing good can come out of that." he unfurls, presenting a clawed hand that thoughtfully rummages his fur.
The feeble firelight dances off the rivulets of nervous sweat cascading down his biceps.
\<<run setup.choice("[[Continue->abelNyxDialogue_MentionNyx_2_1]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
"Underground passages teeming with perverse abominations, and treacherous traps. Amongst countless horrors we’ve yet to come across." His low rumble of a voice descends to a growl.
His furred tail lashes back and forth in restless anticipation.
\<<run setup.choice("[[Continue->abelNyxDialogue_MentionNyx_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
A transient smirk pulls at his fanged mouth.
"But we're left without options, aren't we? Lest we let this realm engulf ours."
He arches down lithely, pulling out an old miniature chest from amongst his belongings.
With a grunt of brute strength, the cobwebbed lock splinters apart and he throws open the creaky lid.
\<<run setup.choice("[[Continue->abelNyxDialogue_MentionNyx_3_1]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
His hand dives into the relic, retrieving a confounding artifact; a fractured talisman, a symphony of cryptic scrawlings etched into nearly intangible onyx, wreathed in primitive silver.
Despite severe damage, the talisman pulses with a spectral energy, a mere echo of the mighty force it once housed.
\<<run setup.choice("[[Continue->abelNyxDialogue_MentionNyx_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
A wry smirk stretches across his grizzled visage, eyes glazing over the damaged keepsake.
"This is the Eye of the Void..."
\<<run setup.choice("[[Continue->abelNyxDialogue_MentionNyx_5]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
"It has been battered and ravaged, shattered by its previous owners, tossed aside by The Herald, but I retrieved the biggest piece."
His grip tightens, his fingers tracing the many cracks and crevices of the artifact.
\<<run setup.choice("[[Continue->abelNyxDialogue_MentionNyx_5_1]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "happy")>>
"It isn't at its peak potential." He stands, looming tall as skies, forcing himself to lock eyes with yours.
"But it was said to be instrumental in keeping old gods in previous eras. I feel deep within my soul that it could be done again."
His irises gleam with a fiery resolve that you’ve known him for.
\<<run setup.choice("[[Continue->abelNyxDialogue_MentionNyx_6]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "angry")>>
“Our two previous salvagers couldn't resist tinkering with anything they thought would give them an edge over Corruption.” Abel’s voice drips with contempt.
"And so they split the Eye, wielding fragments singularly, hoping it would grant them power to resist Corruption."
\<<run setup.choice("[[Continue->abelNyxDialogue_MentionNyx_7]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "angry")>>
His tail lashes impatiently. "They set off from the Bastion bearing the fragments, swearing to return victorious. But, they never came back."
Abel's voice deepens to a menacing growl.
\<<run setup.choice("[[Continue->abelNyxDialogue_MentionNyx_8]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
“If you were to reach Nyx without a way to overcome it, I’m worried it’ll change you into something you’re not…”
Despite the gargantuan task at hand, despite the gradually diminishing hope, despite the insurmountable odds, he chooses to possess undying faith in you.
"We have crossed paths with impossible terrors before, but this is something else." There's a ferocious snarl on his furred face, a mixture of disgust and horror.
\<<run setup.choice("[[Continue->abelNyxDialogue_MentionNyx_9]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_EyeOfTheVoid)>>
\<<set $CharacterSheet_Player.quest.hasIncompleteEyeOfTheVoid = true>>
"A little more shouldn't be a problem, right? Find those missing pieces, so we can make the Eye as powerful as it once was."
He hands over the broken talisman to you.
∇: You gain the Eye of the Void
\<<run setup.choice(setup.getAbelMenuMenuPassage());>>[[Ask about who holds the missing talisman shards->abelNyxDialogue_MissingShards]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
"They were formidable beings." Abel murmurs, his gaze losing its focus.
\<<run setup.choice("[[Continue->abelNyxDialogue_MissingShards_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "happy")>>
"First came Eroth, the Warden," He recounts, letting his heavy emerald eyes fall shut as he envisions the colossal titan.
"His might was as steadfast as the Bastion itself. But I could always feel some kind of demonic urges within him."
\<<run setup.choice("[[Continue->abelNyxDialogue_MissingShards_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
He lets out a sigh, a muffled rumble of regret that nudges at the stagnating warmth of the sun.
"And then, there was Silas, the Wise," he resumes. Upon the mention of the name, a subtle ease flows through his broad shoulders.
"A hybrid of man and serpent. His mind was as deadly as his venom, his intellect... unparalleled."
\<<run setup.choice("[[Continue->abelNyxDialogue_MissingShards_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "happy")>>
A faint laughter reverberates off the rocky walls of their haven. "A crafty trickster he was, yet brilliantly so."
"Nonetheless, even their immense might and keen intelligence... became prey to the allures of Nyx. That accursed dark sun whittled away at their courage, unearthing their deepest desires, baring their nearly erased weaknesses."
\<<run setup.choice("[[Continue->abelNyxDialogue_MissingShards_5]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "worried")>>
"Their names are empty of meaning now, I’d be surprised if they use them for themselves. But we must find them, succeed where they once failed."
\<<run setup.choice(setup.getAbelMenuMenuPassage());>>[[Give him a shard of the Eye of the Void->abelNyxDialogue_GiveFirstShard]]\<<set $CharacterSheet_Abel.quest.available_nyxDialogue_firstMissingShard = false>>
\<<set $CharacterSheet_Player.quest.gatheredShard-->>
\<<set $CharacterSheet_Player.quest.givenShards++>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
His eyes suddenly gleam wider with unprecedented hope, his coarse brows lifting a bit like a bold mountain range thrusting from the landscape.
Grasping the shard in his massive hand, he discerns the soothing rhythm of its energy pulsating beneath his skin.
Cool as the quintessential winter night, yet deceivingly sharp.
\<<run setup.choice("[[Continue->abelNyxDialogue_GiveFirstShard_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
With the practiced precision of a skilled craftsman, he maps the shard to its matching fracture in the grand talisman.
The surrounding air hums and prickles electrically with the powerful resonance between the two aged pieces.
\<<run setup.choice("[[Continue->abelNyxDialogue_GiveFirstShard_2_1]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
As the shard blends seamlessly back into the heart of the artifact, an enchanting, melodious vibration resonates throughout their chamber.
The Eye of the Void seems to breathe with fresh vitality.
\<<run setup.choice("[[Continue->abelNyxDialogue_GiveFirstShard_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_EyeOfTheVoid)>>
"It stirs towards regaining power, yet it's far from its prime." he declares, his solid grip tightening around the partially restored talisman.
His gaze darts towards you, a solemn certainty blazing fiercely.
"We must find the last remaining fragment, so that the Eye can be made whole again."
∇: The Eye of the Void has been strengthened.
\<<run setup.choice(setup.getAbelMenuMenuPassage());>>[[Give him a shard of the Eye of the Void->abelNyxDialogue_GiveLastShard]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
\<<set $CharacterSheet_Player.quest.gatheredShard-->>
\<<set $CharacterSheet_Player.quest.givenShards++>>
A breath lodges itself in Abel’s throat as you extend the final shard of the Eye of the Void to him.
His heart pulsates with a building anticipation, the throbbing melody in sync with the subtle growl low in his chest.
He cradles it from your grasp with the gentle precision of a hunter cradling his kill, palming the last shard of the Eye.
\<<run setup.choice("[[Continue->abelNyxDialogue_GiveLastShard_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
As he brings it closer to the Eye's remnant in his other hand, an almost magnetic force is palpable between them, an inherent desire to be whole once again.
His heart drumbeat strengthens at this point, louder and faster in response to the sensation.
With meticulous precision, he positions the shard to its missing slot in the Eye – slowly, cautiously.
\<<run setup.choice("[[Continue->abelNyxDialogue_GiveLastShard_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
The two pieces unite, a surge of power released, a ripple of energy that stirs the air around them.
A burst of radiant light ripples forth, and the Eye of the Void is complete once more.
It pulsates its strength anew, an aura of untouched energy radiating from it and cocooning your forms.
\<<run setup.choice("[[Continue->abelNyxDialogue_GiveLastShard_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
The light casts a spectacle of shimmering, dancing beams.
"Hmm," he rumbles, a slow grin unfurling across his maw as he hoists the restored artifact.
The Eye feels robust in his grip, its might vibrating beneath his claws.
A halo of potent energy sheds anew from the mended artifact, painting everything nearby in a soothing, ethereal glow.
\<<run setup.choice("[[Continue->abelNyxDialogue_GiveLastShard_5]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_EyeOfTheVoid)>>
"We've done it, <<PlayerName>>," he announces, the resonating growl of his voice amplifying his veiled thrill.
"The Eye of the Void is finally back at its full strength!"
His tail flicks behind him, keeping time with his heart's excited beat.
“Now, if you ever come face to face with Nyx, keep the talisman close, bring it to your chest, and face the black sun head on."
∇: The Eye of the Void has been strengthened.
\<<run setup.choice("[[Continue->abelNyxDialogue_GiveLastShard_6]]");>>\<<run setup.completeAchievement("Achievement_BearerOfTheEye");>>
\<<set $CharacterSheet_Abel.quest.available_nyxDialogue_lastMissingShard = false>>
\<<set $CharacterSheet_Player.quest.hasIncompleteEyeOfTheVoid = false>>
\<<set $CharacterSheet_Player.quest.hasCompleteEyeOfTheVoid = true>>
(Hey, Sombreve talking directly to you here. This is currently the end of that questline but I'll add on to it for next month.)
(Still, congrats! Here's some xp and Essence for getting this far <3)
\<<run setup.gainEssence(2000)>>
\<<run State.variables.Exp += 3000;>>
∇: You gain 3000 EXP!
∇: You gain 2000 Essence!
\<<run setup.choice(setup.getAbelMenuMenuPassage());>>As you move closer to the Golden Bastion, the massive gates do not open as they usually would.
Instead, a small battalion of men rises from the ramparts, weapons in hand.
Others lie in waiting in front of the closed gate, including the Herald.
\<<run setup.choice("[[Continue->Village_Corruption_CorruptedAbel_2]]");>>In one swift motion, he draws his sword.
The steel's deadly edge reflects the barren surroundings' chilling emptiness, a sinister harbinger of death in this desolate land.
Around him, a cadre of formidable guards, equally austere and battle-hardened, forms an impenetrable wall of flesh and steel that you cannot hope to bypass without a confrontation.
"You corrupted my apprentice," the herald growls, his voice as harsh as the jagged peaks lining the horizon.
\<<run setup.choice("[[Continue->Village_Corruption_CorruptedAbel_3]]");>>There's a storm brewing in his eyes, a deep-seated fury that sends an icy cold chill down your spine.
His accusation seems to hang in the chilled wind like a death sentence, assaulting your senses more fiercely than the suffocating bleakness of the Barrens.
The word "corrupted" reverberates in the deathly still air, echoing treachery, betrayal, and poisoned beliefs.
"May you forever roam the Barrens like him, never to return."
\<<run setup.choice("[[Continue->Village_Corruption_CorruptedAbel_4]]");>>The herald commands with cold authority, each word feeling like a blade ripping through your resolve.
His words, so bitter and damning, threaten to fracture your spirit, to exile you into the inhospitable Barrens.
The Herald's guards remain silent spectators to the unfolding drama, their impassive eyes boring into you with restrained contempt.
Each carries a weapon, sharp and gleaming under the dull and lifeless sky, a stark reminder of the undeniable truth.
\<<run setup.choice("[[Continue->Village_Corruption_CorruptedAbel_5]]");>>You are not welcome here.
\<<run setup.choice("[[Leave the Golden Bastion->Village_Exiled]]");>>
\<<run setup.choice("[[Refuse to leave->Village_Confrontation]]");>>As you return to the Golden Bastion, something catches your attention. There seems to be some tension in the air. Guards give you uneasy glances, and some even grasp their weapons nervously.
\<<run setup.choice("[[Approach the gate->Village_Corruption_FirstWarning_1]]");>>Two guards gesture at you to stop as you reach the gate.
The Herald is standing by them; his usual warmth nowhere to be seen.
Before you have a chance to react or explain, he exclaims:
"The barrens have been doing its effect on you, <<PlayerName>>. Like other explorers who cross that threshold, you are to be exiled until you process the Corruption flowing within you."
His tone is assertive, his expression unblinking. You can tell that he has been through this speech many times before.
\<<run setup.choice("[[Leave the Golden Bastion->Village_Exiled]]");>>
\<<run setup.choice("[[Refuse to leave->Village_Confrontation]]");>>The tension you have felt when last approaching the gate is ever-present.
Guards watch you closely, and some even grasp their weapons firmly.
\<<run setup.choice("[[Continue->Village_Corruption_Warning_Idle_1]]");>>Upon reaching the eastern gate, you witness a guard whispering to another before he leaves in a rush; he soon returns with the Herald by his side.
\<<if setup.getStatValue(State.variables.CharacterSheet_Player, "corruption") <= setup.CorruptionComparators.NEUTRAL>>
\<<run setup.choice("[[Continue->Village_Corruption_Return]]");>>
\<<else>>
"I'm afraid that your Corruption is still too strong to let you back in. Let a few more days pass, and avoid those monsters who roam the Barrens."
\<<run setup.choice("[[Leave the Golden Bastion->Village_Exiled]]");>>
\<<run setup.choice("[[Confront him->Village_Confrontation]]");>>
\<</if>>\<<set $CharacterSheet_Player.quest.corruptionVillageExiled = false>>
The Herald looks you over with a stoic and unblinking expression. He then raises his hand with two extended fingers, and he approaches to press it between your eyes.
A subtle white aura emanates from his fingers, yet it's hard to determine the effect of his magic.
He suddenly breaks into a smile.
"Seems like you've surmounted the temptations of Corruption after all."
Dozens of guards seem to sigh in relief, having failed to hide how worried they have been.
"You're welcome back in, but do steer clear of those monsters from now on."
\<<run setup.choice("[[Continue->Village_Normal]]");>>The surrounding guards' eyes widened. Some raise their weapons, but the Herald raises his hand in response. Everyone stands and waits for someone to make the first move.
The Herald breaks the silence.
"Do not approach him! He's infectious and bound to corrupt us all!'"
He stares directly at you with unquestionable resolve. His arms begin to glow in a subtle white aura as he clenches his fists.
"Let me handle this, for the Eldest's sake."
<<print setup.getFightStartPassages($CharacterSheet_Herald)>>\<<set $CharacterSheet_Player.quest.corruptionVillageExiled = true>>
You walk off, without a specific direction to go to.
Your first instinct is to find a safe area to make camp.
\<<run setup.choice("[[Continue->Village_Exiled]]");>>\<<if $CharacterSheet_Player.quest.corruptionVillageExiled == false>>
<<include Village_Exiled_FirstTime>>
\<<else>>
<<include Village_Exiled_Menu>>
\<</if>>\<<print setup.getFlavourBasedDescription($CharacterSheet_Player, "village_exiled_menu", 1)>>
<<include Village_Normal>>\
\<<run setup.choice("[[Return to the Golden Bastion->Village_Corruption_Warning_Idle]]");>>The Corruption within you is barely visible at this point. You could pass off as a typical inhabitant of the Golden Bastion.
\<<print setup.getFlavourBasedDescription($CharacterSheet_Player, "village_exiled_menu_underThreshold", 1)>>Except for your mountainous body, of course.Except for your impossibly massive body, of course.You feel aroused. This lingering lust throbs within your body like an oversized drum. Deep moans escape your every breath.
There is no way you can hide how corrupted you've become.At this point, every part of you drips with the oily darkness of Corruption. Blood, sweat, saliva, even your cum, all of these have been replaced by the thick black substance.
A pool of black constantly grows under where you stand. Your cock oozes enough Corruption to turn even the purest of souls into a lustful beast.
You Must Grow...
You Must Spread...<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
Abel stands proudly, his monstrous form taking most of your camp.
<<print setup.getNextNarativeEventPassageListText(setup.StorySheet_Player.villageAbelExiledLinks, 10)>>\
<<print setup.getNextNarativeEventPassageListText(setup.StorySheet_Abel.nyxDialogue, 3)>>\
\<<run setup.choice("[[Continue->Village_Exiled]]");>>\<<set $CharacterSheet_Player.quest.available_enterVillage_exiled_AbelReturn = false;>>
Drunken shadows playfully dance by the bonfire of your camp, elongating and shortening as relentless desert winds alter their shapes.
Yet something feels different about its movement, as if distant steps jerked them outwards, through consistent thunderous pulses.
As you gaze upon the fire, you notice that there lies something more; a powerful current. You can feel it tingle along your skin.
It lingers in the arid air around you, a Corruption different to your own.
\<<run setup.choice("[[Continue->Village_Exiled_Abel_FirstTime_2]]");>>Soon the ground shakes as massive footsteps become impossible to ignore, a beast is heading this way, confrontation is unavoidable.
Yet, an unspoken connection between you and the intruder vibrates in the air, visible like the billowing waves of heat from the fire.
Your anticipation is not hidden, it shines like the naked blade of a warrior.
Finally, the beast rises from a nearby dune, and you instantly recognize him.
\<<run setup.choice("[[Continue->Village_Exiled_Abel_FirstTime_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
”I finally found you.”
Lust and excitement swirl within you, as potent a mix as any battle frenzy. Abel is safe, and you’re together once again.
A surge of relief courses through you as he takes you into his arms.
A part of him thought you'd be wandering these deserts eternally, lost in the vast emptiness.
\<<run setup.choice("[[Continue->Village_Exiled_Abel_FirstTime_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
"Goddamn it, I was so worried" he speaks softly under your breath, his voice a mere whisper now, quivering under the weight of emotions.
His hands tighten around you, pulling your muscular form closer.
The scent of sweat mixing with Corruption, the warmth radiating from him...
It sends tremors shuddering through you, an all-too familiar sensation.
\<<run setup.choice("[[Continue->Village_Exiled_Abel_FirstTime_5]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
The pent-up apprehension, the bottled fear of solitude, it all rushes through him as tears flow down his face.
"<<PlayerName>>..." he pulls away slightly from his embrace, ruby eyes boring into your with undeniable sincerity.
\<<run setup.choice("[[Continue->Village_Exiled_Abel_FirstTime_6]]");>>\<<run setup.abelJoinsPlayer()>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
Despite his feral strength, he feels overcome with raw unwieldy emotions.
"I’m so glad you’re okay." With that, he pulls you back into his warmth, firmly secure in his hold.
∇: Abel joined your party.
\<<run setup.choice("[[Continue->Village_Exiled]]");>>\[[Talk about what's next->Village_Exiled_Abel_WhatNext]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
The increasing nearness of you sends his senses spiraling, every fiber of his being aflame with a potent mix of anticipation and desire.
His eyes bore into yours, your gazes locked in a silent exchange of untamed emotions.
"<<PlayerName>>..." he murmurs, his voice a resonating purr vibrating between you.
Each syllable of your name feels laced with an inexplicable heat and longing.
\<<run setup.choice("[[Continue->Village_Exiled_Abel_WhatNext_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
Despite the dense air filled with the familiar scent of dust and roaring bonfire, there's an underlying hint of you in it.
And it stirs something deep inside him, something primeval and insatiable.
"Now that we’re together, where do we go from here?" he asks, allowing a teasing grin to spread across his face.
\<<run setup.choice("[[Continue->Village_Exiled_Abel_WhatNext_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
The question holds within it so much more than a mere query about your path forward.
It's an invitation, a provocative proposal that he knows will pave the way for an enticing dance of power and corruption both of you desire.
Yet, as his rippling muscles brush against yours, and the firelight dances upon the intricate tapestry of desirous engravings scattered across your surroundings, there's more at stake here.
For beyond the allure of power and the thrill of chaos, the spark of something equally intoxicating ignites within him.
\<<run setup.choice("[[Continue->Village_Exiled_Abel_WhatNext_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
His hand traces the expanse of your muscular form, lingering just a moment longer at each contour, before his fingers find themselves entangled with yours.
As he squeezes your hand, his pearls of anticipation drip into your intertwined fingers — a silent plea, a carnal invitation for what's to come.
"What should we do about the Bastion? Do you seek vengeance? Or should we abandon their ignorance to their own fate?" He asked, each word a ripple through our tight embrace.
His eyes lifted to meet your gaze yet again, the low wavering flames from the embers reflecting in his darkened eyes.
\<<run setup.choice("[[Yearn for vengeance->Village_Exiled_Abel_WhatNext_Vengeance]]");>>
\<<run setup.choice("[[Leave them be->Village_Exiled_Abel_WhatNext_Leave]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
The determination in your voice, the fire in your eyes — it's all too consuming.
Your heart pounds against your rib cage, the echo loud in your ears, akin to war drums. A part of you revels at the thought of chaos, retaliation.
"But…" A hesitant tremor laces Abel words. "Is revenge really the path we want to take?"
\<<run setup.choice("[[Continue->Village_Exiled_Abel_WhatNext_Vengeance_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
The idea of sating his wrathful desires tantalizes him, yet a spark of caution still sparkles dimly amidst the wild flames of your shared ambitions.
“Retribution would give me satisfaction, that's for sure. But I have another adventure in mind... \
Embracing our powers, reaching unprecedented strength and creating a world where you both can exist without prejudice.”
\<<run setup.choice("[[Continue->Village_Exiled_Abel_WhatNext_Vengeance_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
Even as he says this, your yearning for revenge intrigues him, catering to the thirst within him.
As much as he wants to discourage it, he can't ignore the enticing draw of vengeance brewing within you.
\<<run setup.choice("[[Continue->Village_Exiled_Abel_Menu]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
As two outcasts exiled from a once-shared tribe, you've found a new purpose, a new challenge.
The notion of revenge shrinks to insignificance, amounting to pettiness in light of your approaching ascension.
"Yes!" Abel affirms, voice laden with concord and esteem.
\<<run setup.choice("[[Continue->Village_Exiled_Abel_WhatNext_Leave_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
A predator's grin takes shape on his face, baring an array of deadly white teeth that gleam in the dim glow of the firelight.
"Let them binge on their ignorance. Power brings an element of insight, something they are incapable of comprehending."
A surge of fervor engulfs him, his heart pulsating like a war drum.
\<<run setup.choice("[[Continue->Village_Exiled_Abel_WhatNext_Leave_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
The gratification of unified purpose, it stirs something deep within him.
When your eyes lock again, they gleam with the reflective glow of flames, fueled by your thirst for power, your shared aspirations, and a raw, instinctual craving.
You offer a slow nod, acknowledging the mutual decision before moving closer.
\<<run setup.choice("[[Continue->Village_Exiled_Abel_WhatNext_Leave_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "blushing")>>
As the deep rumble within you morphs into a thundering roar, you no longer manage to suppress the waves of anticipation and desire.
It's a flawless convergence—unhindered power, a bare desire for each other.
You kiss, deeply and longingly, tasting the warmth of his soul. You hold him tight, with the shared certainty that nothing can stop you as long as you’re together.
You forget how long your kiss lasts, each moment blending harmoniously with the rhythm of your heartbeats.
\<<run setup.choice("[[Continue->Village_Exiled_Abel_Menu]]");>>\<<if $CharacterSheet_Player.hasAbility("Ability_Mutant") || $CharacterSheet_Player.hasAbility("Ability_Mutant_2")>>
<h1> IMPROVE YOUR FORM </h1>
\<<run setup.choice("[[Apply->Modify_Metabolism][setup.AbilityScripts.Mutant.saveMutantChangeParams($CharacterSheet_Player)]]")>>
\<</if>>
\<<run setup.AbilityScripts.Mutant.initializeMutantChangeParams()>>
\<<set $CharacterSheet_Player.info.choiceHighlight.mutationAvail = false;>>
<<include Show_Form>>
<<run setup.choice("[[Back->Modify_Metabolism]]")>><<print setup.addDOMHook("MUT_TABLE_DIV", function(){setup.AbilityScripts.Mutant.getMutantChangeTable()})>>\<h1>Your body is no longer bound by mortal limits.
Adapt, overcome.</h1>
<<print setup.highlightChoice("[[Overgrowth->Modify_Metabolism_Overgrowth]]",$CharacterSheet_Player.info.choiceHighlight.overgrowthAvail);>>
<<print setup.highlightChoice("[[Limit Break->Modify_Metabolism_LimitBreak]]",$CharacterSheet_Player.info.choiceHighlight.limitBreakAvail);>>
\<<if $CharacterSheet_Player.hasAbility("Ability_Mutant") || $CharacterSheet_Player.hasAbility("Ability_Mutant_2")>>
<<print setup.highlightChoice("[[Alter Form->Modify_Form]]",$CharacterSheet_Player.info.choiceHighlight.mutationAvail);>>
\<<else>>
[[View Form->Modify_Form]]
\<</if>>
\<<run setup.choice("[[Leave->Village]]");>>\<<set $CharacterSheet_Player.info.choiceHighlight.overgrowthAvail = false;>>
\<h2>Upon reaching the limits of your sizes, all acquired growth will be stored as Essence.</h2>
You can consume <<print setup.getOvergrowthToEssence()>> Essence.
\<<run setup.choice("[[Consume->Modify_Metabolism][setup.convertOvergrowthToEssence()]]");>>
\<<run setup.choice("[[Cancel->Modify_Metabolism]]");>><<nobr>>
<<set $CharacterSheet_Player.info.choiceHighlight.limitBreakAvail = false;>>
<<run setup.Metabolism.initMetabolismParams();>>
<</nobr>>
\<h1>Your hidden powers reach deep within, let it break the limits of your mortal shell.</h1>
\<<print setup.addDOMHook("Modify_Metabolism_Div", setup.Metabolism.getTable)>>
\<<run setup.choice("[[Apply->Modify_Metabolism][setup.Metabolism.applyMetabolismParams($CharacterSheet_Player)]]");>>
\<<run setup.choice("[[Cancel->Modify_Metabolism]]");>>\<<include Stars_header>>
Gazing up a the Stars, you can feel a presence of power within them. A power you can utilize for yourself.
[[Call upon the power of a Star->Stars_changeStar]]
[[Change your Fate->Stars_changeFate]]
\<<run setup.choice("[[Leave->Village]]");>>\<h1> Call upon the Stars </h1>
\<<include Stars_header>>
\<<run setup.initActiveStarParams();>>
\<<print setup.addDOMHook("STAR_CHANGE_DIV", setup.getActiveStarTable)>>
\<<run setup.choice("[[Leave->VillageStars]]");>><h1> THE STARS ANSWER </h1>
<h2> The <<print setup.Stars.getTodaysStarName()>> ascends.</h2>
\<<run setup.choice("[[Leave->Village]]");>>\<h1> Fate is yours to Wield </h1>
<h2>The Stars smile upon those who face impossible odds.</h2>
\<<include Stars_header>>
\<<run setup.initModifyStarBonusParams();>>
\<<print setup.addDOMHook("STAR_BONUS_TABLE", setup.getStarBonusTable)>>
\<<run setup.choice("[[Change Fate->Stars_changeBonus_outro][setup.saveModifyStarBonusParams(_ModifyStarBonusParams)]]");>>
\<<run setup.choice("[[Cancel->VillageStars]]");>><h1> THE STARS OBEY </h1>
\<<run setup.choice("[[Leave->Village]]");>>
/*-------------------------------------Includes----------------------*/<<print setup.Stars.getTodaysStarHeader()>>
<<print setup.Stars.getNextStarHeader()>><<set $Quest_MQ001_01 =
{
id:"MQ001_01",
description: "I found the impact site of the meteor, I should check it out when I'm ready.",
villagePassage: "[[Go to the meteor's impact site->Quest_MQ001_EchoFirstEncounter_Lake]]",
onComplete: function()
{
}
}>>The train of thought hardly has time to flourish as movement on the horizon catches your eye.
Dark smoke.
Looks like you found where the impact site lies.
\<<run setup.choice("[[Investigate->Quest_MQ001_EchoFirstEncounter_Lake]]");>>
\<<run setup.choice("[[Go back to the village->Village]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
It takes a few more minutes of travel for you to arrive at the edge of the crater. The desert is hot, but this area in particular feels as if it could overcome you if you dawdled.
The sand, usually a dull yellow, has vitrified into a concave sheet of a reflective glass. Black glass. Although dazzling, your mind struggles to make sense of it. Regardless of its colour, it reflects the sunlight above in vibrant hues as if the light's properties were amplified instead of dulled.
Shading your eyes and squinting, you follow the curvature of the ground until you settle on a human-sized spherical shape nestled at its center. The surface of the object warps the light into waves of colour, not unlike the glass around it.
It's beautiful. You fail to notice your feet taking steps forward into the crater. It is impossible to appreciate its full beauty without getting closer. You had to. You wanted to.
In what feels like a blink of an eye, you find yourself standing in front of it. A sudden sense of unease grips you. Now that you are closer, you begin to see that the tar-like substance is more like a shell than a solid sphere.
Something is moving inside: shapes that make no sense and colours that you cannot pin words to. It feels as if you are staring into a pit of endless chaos; chaos that somehow stares back at you from every direction, and those in between that.
Your ears ring. The sound of the desert is drowned out by cacophany; jagged spikes, pops and an eternity of every voice and whisper compressed into packets of tumultuous... noise.
Yet, you are still drawn to it. To you these sounds are the wails of a newborn child, a child seeking refuge in the hands of someone capable.
Your hands.
\<<run setup.choice("[[Touch the sphere->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_2]]");>>
\<<run setup.choice("[[Go back to the village->Village]]");>>Feeling with no feeling. Colour with no concept of colour. Shapes with no concept of space. A whisper with no breath.
The moment your skin makes contact with the meteorite it explodes outwards, as a wave crashing on a distant shore. Black surrounds you. Chaos surrounds you.
Light, dark and the uncertainty of the unknown blend before swallowing you whole.
Reality itself flees from you.
\<<run setup.choice("[[Continue->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_3]]");>>You are surrounded by a cold, shifting void. Purple mist twists and curls around your legs in sinuous trails.
Like dancing tongues, they lick at your feet. A glacial caress.
A deep violet sky stretches across the horizon while bright reddish hues dance above you - as though you're at the bottom of an ethereal magenta coloured sea.
Isolation. An endless void.
An eternity of nothing that stretches on...
...and on.
\<<run setup.choice("[[Look Around You->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_4]]");>>You turn around, and the endless void is suddenly replaced by a gaping chasm. An infinite drop.
Peering into the abyss, your eyes are scorched by the harshest light you have ever seen.
A colossal vein of purple energy throbs like a heartbeat; shifting, simmering, writhing, growling and moaning.
\<<run setup.choice("[[Continue->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_5]]");>>You stand there for what feels like hours, enraptured by the vista.
The biting, otherworldly, cold gnaws at your skin and pulls at your sanity.
This place is not meant for mortals.
Beyond all of that - beyond the unknowable and unspeakable sensations, beyond the empty and cold landscape; you feel something.
Something wonderful.
Something beautiful.
You begin to feel a comforting warmth wash over you; a warmth that pulls you into the loving embrace of possibility which washes away the sting of the cold.
This feeling is your oasis in this strange, alien expanse.
\<<run setup.choice("[[Continue->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_6]]");>>The soothing heat seeps into your bones.
The mist around your feet suddenly disperses, blasted away by some unseen force.
Something is moving around you; a powerful aura that spins around your body, playfully.
Teasingly, it pushes against your chest with strength that nearly topples you over. It suddenly retreats as if it realised it may have caused you harm. The presence in front of you seems to grow stronger.
From the black, reflective ground before you rises a huge and writhing mass of semi-solid ooze. It seems unstable; its very being rolling through a spectrum of shapes and colours.
It seems indecisive.
Curiously, you aren't terrified in the slightest - whatever this strange creature was, it appears to be the source of the embrace that surrounds you. Your soul resonates with it. It means you no harm, as you mean none to it.
You smile as it cycles in and out of the appearance of creatures from your memory; some even based on beasts you've only heard of in stories. Your mirth increases as it shifts into forms that you and your people could never have dreamed of.
It calls out to you for help, as if it is asking you to shape it.
That it should become a...
[[Behemoth->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_7_behemoth][setup.setRace($CharacterSheet_Player.symbiote, setup.RacePool.BEHEMOTH)]]
[[Dragonborn->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_7_dragonborn][setup.setRace($CharacterSheet_Player.symbiote, setup.RacePool.DRAGONBORN)]]
[[Naga->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_7_naga][setup.setRace($CharacterSheet_Player.symbiote, setup.RacePool.NAGA)]]
[[Minotaur->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_7_minotaur][setup.setRace($CharacterSheet_Player.symbiote, setup.RacePool.MINOTAUR)]]
[[Monstrous Symbiote->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_7_symbiote][setup.setRace($CharacterSheet_Player.symbiote, setup.RacePool.SYMBIOTE)]]
[[Werewolf->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_7_werewolf][setup.setRace($CharacterSheet_Player.symbiote, setup.RacePool.WOLF)]]The amorphous creature begins to shift, moulding itself as though it was clay.
A massive profile builds up in front of you, dwarfing you in size. It does not stop there as it seems to bulge and widen into a terrifyingly muscular form.
You watch veins sprawl across the body, pumping blood into each swollen mound of strength. Pecs just out from its chest, a shelf that canopies rows of bulging abdominals.
Above each boulder of strength, a bullish neck rises upwards and is crowned by a muzzle that seems to be a cross of a canine and feral cat. With a beastly roar, sharp teeth form from its gums and a pair of dangerously curved horns sprout from the side of its head. Details flood the face; strong cheekbones, a rugged jaw and a gorgeous mohawk that runs from the top of its head down into a mane across its back.
You hear the cracking of bone as its legs shift into a digitigrade stance and its back hunches forward to take on the typical posture of a behemoth.
Finally, a thick tail sprouts from its rear, ridged with webbed spines that frill outwards at its tip.
It kneels down in front of you, it leathery skin stretching across its muscular shape. Even though a behemoth is known for its aggressive and domineering tendencies; this one shows you its full respect and adoration.
\<<run setup.choice("[[Continue->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_8]]");>>A head forms out of the amorphous creature and a vaguely humanoid shape cascades down from it.
It rolls its shoulders, limbs bulking up with the smooth and elegant motion. The neck, bulging wider, tapers up to a wedge-shaped muzzle.
A forked tongue slips past its lips as teeth forms from its gums. Soon after, a wave of scales and ridges are etched into its skin and eventually covers its entire brawny mass. With a pleased rumble, a pair of slitted eyes flick towards you. You cannot help but admire the sharp angles that define a divine example of a dragonborn.
Raising its arms and pushing one of its digitgrade legs forward, it flexes, and in an instant, major crests and troughs flourish across its body into a canvas of perfectly sculpted musculature.
The mighty beast bows before you as wings erupt from its back, one arm pressed against its voluminous pectorals, the other outstretched showing off its arm's immaculate contour, tipped by vicious looking talons.
An Adonis. A being of perfect balance, strength, wisdom and elegance. A being showing its utter adoration and devotion to you, wordlessly, through its awe-inspiring body language.
\<<run setup.choice("[[Continue->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_8]]");>>The amorphous creature begins to shift, moulding itself as though it was clay.
It rises upwards, growing taller as the shape of a head rises out from the top. Features like shoulders cascade outward, widening as the upper torso grows steadily more defined.
Lower down, the form stretches out longways, extruded into a long, thick, prehensile tail that merges seamlessly with the humanoid upper-body of the muscle-bound beast.
More detail floods onto its visage; quickly morphing into a serpentine muzzle. From the tip of its head, a wave of scales pop out from its forming flesh and roll down the length of its back and tail. A hood forms on either side of its skull; a crown fit for a cold-blooded king.
The beast opens its mouth, showing you a pair of powerful fangs that descend from the roof of its mouth. They drip with a sickly green venom.
A pair of slitted eyes take shape above the muzzle, blood-red pupils dilating to stare deeply into your soul. A frigid gaze. A loving gaze. It grins as it leers down at you, lower half stretching even further, into a <<print setup.getLength(70)>> long body.
\<<run setup.choice("[[Continue->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_8]]");>>The amorphous creature begins to shift, moulding itself as though it was clay.
Broad, powerful shoulders ripple outwards from its neck, taking form below the outline of a head. Arms roll down from each boulder, thickening and stretching downwards while legs simultaneously grow from its waist. Knees form, jut backwards and end in strong hooves. From behind, the thin tail of a bull begins to swing between its legs.
Its head then ripples as detail creeps onto it; stretching forward into a primal flat-nosed muzzle.
Two thick, curled horns push out from the top of its skull, each one as thick as your arms.
Ooze recedes only to be replaced by a lucious coat of fur; fine enough to show off its bulging muscles. A larger tuft of fur sprouts from betwene the cleft of its massive pecs, forming a treasure trail down to its genitals.
The minotaur glances down at its burgeoning body; thick chest rising and falling with each of its strong huffs. Its nostrils flare with each breath. The strong musk of testosterone overwhelms your senses.
There is a hungry look in its eyes as he stares down at you. He is a beast of desire, of strength and of loyalty, to you.
\<<run setup.choice("[[Continue->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_8]]");>>A head forms out of the amorphous creature and a vaguely humanoid shape is embossed into it.
Details fill out the visage; a strong jaw and a sharply defined chin which casts heavy shadows on its lean neck.
Several dozen thin, white veins begin to snake in all directions down from its head, spreading across its arms and torso which race towards its feet.
Writhing alabaster patches slowly take shape where its eyes should; formed from the milky trails that swirl around its face. He stares down at you with featureless, marble-like eyes.
Claws form on the tips of a hand. It raises them to cusp your chin. It smiles, gently, with newfound jagged lips which stretches into a hungry grin, filled with several rows of sharp teeth.
He lets out a low, rumbling and sensual growl; one that makes your chest vibrate.
A long, thick, deliciously slimy tongue slides out from its mouth, as thick as your wrist and as long as your entire body. It flicks at you eagerly.
\<<run setup.choice("[[Continue->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_8]]");>>The amorphous creature begins to shift, moulding itself as though it was clay.
The vague shape of a narrow, lean-muzzled head rises out from the top of its morphing mass and is accompanied by a thick neck flanked by incredibly broad shoulders.
A pair of triangular ears sprouts from the head as the creature opens its maw wide, letting out a gargled yet undeniably wolfish howl.
It pierces your ears, breaking the otherwise crushing silence of this otherworldly plane.
Several sets of large, pearly-white teeth emerge from its gums, their tips as sharp as daggers and curved as elegantly as sickles.
A pair of wild, hungry eyes then appear, their pupils dilating as its expression contorts into that of extreme euphoria.
Its chest widens, forming a shelf of muscle above rows of chiselled abdominals. Below the waist, underneath a gratuitous package, powerful digitigrade legs form which are capped by dangerous claw-tipped paws. A similarly dangerous set of tools form on its hands, ready to rend any of your foes into ribbons.
Sprouting from its rear, a fluffy tail plumes outward and begins wagging ecstatically. The fur continues to roll upwards from the tail's base and across the body until a luscious coat covers it entirely.
Its wild eyes stare down at you with the look of pure adoration.
\<<run setup.choice("[[Continue->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_8]]");>><<print setup.processFlavours(
$CharacterSheet_Player,
"The amorphous creature begins to shift, moulding itself as though it was clay.\n\n" +
"The ooze bubbles at its apex, rising until it forms @[all|heads|a~an]. Smiling at you, @[all|teeths|noverb] forms out of the gum from beneath @[all|eyes|noverb] that stare at you with unwavering adoration.",
true
)>>
\<<if $CharacterSheet_Player.symbiote.info.anatomy.horns != undefined && $CharacterSheet_Player.symbiote.info.anatomy.horns.number >= 1>>
<<print setup.processFlavours(
$CharacterSheet_Player,
"A gutteral roar suddenly takes the beast. With the sound of cracking bone, its flesh parts to make space for @[all|horns|noverb].",
true
)>>
\<</if>>
<<print setup.processFlavours(
$CharacterSheet_Player,
"Detail begins to flood into the rest of its muscular body; @[all|arms|noverb] form from growing stumps and swell with chords of vibrating strength. Nestled between those battering rams are @[all|pecs|noverb] which canopy a glorious wall of @[all|abdominals|noverb].\n\n" +
"Below its waist, another set of writhing puddles expand into the shape of @[all|legs|noverb].",
true
)>>
\<<if $CharacterSheet_Player.symbiote.info.anatomy.wings != undefined && $CharacterSheet_Player.symbiote.info.anatomy.wings.number >= 1>>
<<print setup.processFlavours(
$CharacterSheet_Player,
"Its back arches, its smile widens into picturesque euphoria as @[all|wings|noverb] erupt from behind its shoulder blades.",
true
)>>
\<</if>>
\<<if $CharacterSheet_Player.symbiote.info.anatomy.tails != undefined && $CharacterSheet_Player.symbiote.info.anatomy.tails.number >= 1>>
<<print setup.processFlavours(
$CharacterSheet_Player,
"Sprouting from its glutes, its @[all|tails|one=wags~more=wag] with uncontained affection and pleasure.",
true
)>>
\<</if>>
\<<run setup.choice("[[Continue->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_8]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
The scalding aura of the inky <<SymbioteRace>> grows in intensity. The edges of its beautiful form vibrate with imminent power, like a tense bowstring drawn to its utter limit.
It resonates with the air, with your bones, and ultimately, your soul. The feeling is impossible to describe. The intimacy you feel with this creature is overwhelming; a bond stronger than love.
The sound of water fills your ears as the ooze on its form begins to spin and rush. You feel the connection with it, you feel your own adoration spike and you channel it into it's already burgeoning form.
His gaze meets yours and then he moans. He urges you onward...
You focus on:
[[His cock->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_9][$SymbioteBoost = "cock"]]
[[His muscles->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_9][$SymbioteBoost = "muscles"]]
[[His whole body->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_9][$SymbioteBoost = "height"]]\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
\<<if $SymbioteBoost == "cock">>
<<print setup.processFlavours($CharacterSheet_Player,
"You focus on his @[all|cocks|noverb]. It swells larger and fatter, throbbing with uncontained size. It reaches its previous limit, but then shatters that with even more size.\n\n Its package crawls across its abdomen, up towards its heaving chest.",
true
)>>
\<<run setup.applyGrowth($CharacterSheet_Player, "cock", 4)>>
\<<elseif $SymbioteBoost == "muscles">>
<<print setup.processFlavours($CharacterSheet_Player,
"You focus on his musculature, wishing it larger! You immediately see its @[all|abdominals|noverb] burst with impossible size and power. It flexes its @[all|arms|noverb], showing off how its biceps expand - consuming more and more space on each limb with every passing second." +
"\n\nA tremendous baritone roar erupts from its throat as its @[all|pecs|noverb] explode with size. The cleft deepens. Each bulging boulder barrels outwards, more and more! The rest of its titanic body rejoices in growth, as each muscle group tries to outdo the others.",
true
)>>
\<<run setup.applyGrowth($CharacterSheet_Player, "muscles", 8)>>
\<<elseif $SymbioteBoost == "height">>
The <<SymbioteRace>>'s expression contorts in pleasure. Its deep moans dive in pitch, reaching brassy baritone notes as its body erupts upwards. It grins as your vision is utterly filled with the body of the growing <<SymbioteRace>>.
Its lustful gasps fill the void as its form reaches a height of <<print setup.getLength(90)>>. As the growth ends, it steps closer to you and then presses you against his warm flesh.
\<<run setup.applyGrowth($CharacterSheet_Player, "cock", 1)>>\
\<<run setup.applyGrowth($CharacterSheet_Player, "height", 7)>>\
\<</if>>
You can't help but flush with arousal. This creature was beyond good looking, beyond the concept of your ideal.
A sticky wet spot grows within your pants. You gasp, as you feel its massive hand roll over your chest. Gentle. Loving. Strong.
The limb slides down lower.
You look up, only to meet its gaze a hairs breadth away from your face. You can taste its powerful breath. Closing your eyes instinctively, you lock lips.
Divine euphoria. The proverbial match made in the heavens. Your body leans in closer to the creature, craving every inch of contact with it. Goo from its body rushes past your dancing tongues and into your throat. Some of it drips off of your body in sticky strings.
Your arousal suddenly skyrockets!
You begin to picture more detail on its body as you kiss; the colours and patterns that make it unique:
[[Amber->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_10][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.AMBER; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.AMBER)]]
[[Beige->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_10][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.BEIGE; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.BEIGE)]]
[[Black->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_10][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.BLACK; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.BLACK)]]
[[Blue->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_10][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.BLUE; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.BLUE)]]
[[Brown->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_10][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.BROWN; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.BROWN)]]
[[Crimson->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_10][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.CRIMSON; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.CRIMSON)]]
[[Emerald->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_10][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.EMERALD; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.EMERALD)]]
[[Golden->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_10][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.GOLDEN; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.GOLDEN)]]
[[Green->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_10][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.GREEN; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.GREEN)]]
[[Grey->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_10][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.GREY; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.GREY)]]
[[Indigo->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_10][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.INDIGO; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.INDIGO)]]
[[Obsidian->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_10][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.OBSIDIAN; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.OBSIDIAN)]]
[[Orange->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_10][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.ORANGE; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.ORANGE)]]
[[Pink->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_10][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.PINK; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.PINK)]]
[[Purple->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_10][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.PURPLE; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.PURPLE)]]
[[Red->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_10][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.RED; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.RED)]]
[[Sapphire->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_10][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.SAPPHIRE; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.SAPPHIRE)]]
[[Violet->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_10][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.VIOLET; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.VIOLET)]]
[[Tan->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_10][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.TAN; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.TAN)]]
[[White->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_10][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.WHITE; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.WHITE)]]
[[Yellow->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_10][$CharacterSheet_Player.symbiote.info.colour = setup.ColourPool.YELLOW; setup.colourLimbs($CharacterSheet_Player, "eyes", setup.ColourPool.YELLOW)]]\<<unset $SymbioteBoost>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
\<<run setup.colourAllLimbs($CharacterSheet_Player.symbiote, $CharacterSheet_Player.symbiote.info.colour)>>\
It presses you in tightly, closer to its glorious body, now coloured <<SymbioteColor>>.
Amidst the floods of passion and love, you feel gratitude join in the divine union of you and this beast.
<<print setup.processFlavours($CharacterSheet_Player,
"It continues to kiss you deeply and grinds its @[all|cocks|noverb] along your own.",
true
)>>
Passion flares. Love ignites. Bonds strengthen.
<<print setup.processFlavours($CharacterSheet_Player,
"Your moans fill the dark void as the goo begins to change you. Your @[all|cocks|one=grows~more=grow] as you rut against the <<SymbioteRace>>'s body. " +
"Soon, it reaches further than the <<SymbioteRace>>'s monstrous tool. " +
"He pulls back from the kiss and smiles, filled with pride. You are utterly drenched with <<SymbioteColor>> slime. He takes you into a massive bear hug."
)>>
\<<run setup.choice("[[Let him in...->Quest_MQ001_EchoFirstEncounter_InvestigateImpact_11]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
Its whole being enters you. You scream as the deluge instills deep rooted pleasure across every pore. Your lips part as your muscles explode with immense size and strength.
More than just strength enters you. You feel a waterfall of lust wrack your psyche - the creature's needs and desires becoming your own.
<<print setup.processFlavours($CharacterSheet_Player,
"Grasping your @[all|cocks|noverb], you hold on for dear life as the thick meat begins devouring litres of goo through its tip. Your need keeps escalating! Exponentially reaching higher and higher heights!"
)>>
You erupt in size as the power pushes your form upwards, becoming <<print setup.getLength(86)>> tall! It feels like your mind is about to shatter with the most intense orgasm of your life!
The last of the goo finally enters you as you jack off furiously while flicking your thick <<SymbioteColor>> tongue in the air.
You both stand together in the void. Titans in the endlessness. Rulers of this space. Yet you know you can both be so much more.
Even though you are both screaming in ecstasy and coating the purple plains in layers of seed; the monster's name appears in your mind with extreme clarity.
<<textbox "$CharacterSheet_Player.symbiote.info.name" "Echo">>
\<<run setup.completeQuest($Quest_MQ001_01)>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_EchoForm)>>
[[Be Reborn->Quest_MQ001_EchoPostMerge][$CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_HostOfEcho)]]\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
You find your eyes peeling open to the warm hues of an afternoon sky.
Visions of that empty eternity flood your mind.
Whatever was in that crater, is now a part of you.
\<<if $CharacterSheet_Player.quest.corruptionVillageExiled == false>>
\<<run setup.choice("[[Go back home->Quest_MQ001_EchoPostMerge_1]]");>>
\<<else>>
\<<run setup.choice("[[Go back home->Village]]");>>
\<</if>>You head back in the direction of the Golden Bastion. You feel dizzy through the entire trip, as if your center of gravity is not quite where it should be. It is not unlike a child learning to walk all over again.
"Halt!" The voice of a gruff guard startles you. He was a dragonkin with a solid build. You can see fresh scars across his exposed scales; clearly a survivor of last night's assault.
"State your intentions, stranger!" He barked.
The remark confuses you. By now, the Eldest should have communicated to everyone that you had become the new explorer. You realise you have no idea how much time has passed since you touched the strange orb.
\<<run setup.choice("[[Tell him who you are -> Quest_MQ001_EchoPostMerge_2_who_are_you]]");>>You state your name and your position as the Golden Bastion's explorer.
He pauses for a moment, as if examining you closer. His expression is hard to make out; a blend between distrust and hope.
"You look nothing like $CharacterSheet_Player.info.name, how do I know you are truly who you say you are?" The man's stance shifts and his hand hovers over the pommel of his sword.
You blink in confusion and then look at yourself. The shock shakes you to the core. You look nothing like you did before: you are taller, far more muscular and your nether region has certainly become more pronounced.
"$CharacterSheet_Player.info.name has been gone for weeks; if it is you, where have you been?" he presses.
\<<run setup.choice("[[Say you encountered something strange->Quest_MQ001_EchoPostMerge_2_Truth]]");>>
\<<run setup.choice("[[Say that only the Herald should know->Quest_MQ001_EchoPostMerge_2_Eldest]]");>>
\<<run setup.choice("[[Punch Him->FightLogic][$Encounter_Target=$CharacterSheet_town_guard]]");>>You decide to tell the guard everything. The more you speak, the more the colour drains from his face.
"Even if it is true and you are $CharacterSheet_Player.info.name, I can not let you pass!" He states sternly, "It's too risky to allow you inside if you have been... tainted."
"I'm sorry, but it would be safer if I just ended you here." The guard draws his sword and takes a step toward you. A strange wave of power washes over you. You could snap him like a twig, show him the extent of your building lust.
\<<run setup.choice("[[Continue->Quest_MQ001_EchoPostMerge_3_Meet_Abel_aggressive]]");>>There is a sense of pride that wells up within you as you realise how much more you have become, but at the same time the feeling is laced with the fear that you may not actually be the same person that left in the morning.
A bluff escapes your lips; that you were sent out in the morning to collect materials. A lie laced with truth.
The guard raises an eyebrow, "Is that so? Who sent you? Who was manning this post when you left?"
\<<run setup.choice("[[Make up a name->Quest_MQ001_EchoPostMerge_3_Lie_mildred]]");>>You blurt out the name Mildred. A generic name that you ocassionally heard within the markets.
"Okay fine, but then which guard let you out?" he grunts, his hand hovering over the pommel of his sword.
\<<run setup.choice("[[Abel->Quest_MQ001_EchoPostMerge_3_Lie_Abel]]");>>
\<<run setup.choice("[[Senna, The Drill Sergeant->Quest_MQ001_EchoPostMerge_3_senna]]");>>
\<<run setup.choice("[[Trent, The Inner Wall Watchman->Quest_MQ001_EchoPostMerge_3_Lie_Trent]]");>>The name Trent escapes your lips. It was one of three guards you remember working with extensively during your training.
"Trent, eh?" The guard relaxes his stance towards you, "If you know a guard that works exclusively at the Inner Wall, then it has to be you."
He hesitates for a moment, looking you up and down and then finally opens his mouth to speak in hushed tones, "Is it really you, $CharacterSheet_Player.info.name? When you disappeared, you look... different"
\<<run setup.choice("[[Continue->Quest_MQ001_EchoPostMerge_3_Meet_Abel_passive]]");>>You think back to a number of guards you had worked with in the past. The name Senna comes to the fore of your mind; one of the drill masters that helped train you and Abel.
"Senna?" The guard drops his aggressive stance, but his shoulders slump and lines of sadness creep into his expression, "Well that's one way to prove its you, though you could have picked something less somber."
"Senna is dead, $CharacterSheet_Player.info.name. He was killed in combat the day before you left," he hesitates for a moment, looking you up and down, "I am sorry I treated you with mistrust."
\<<run setup.choice("[[Continue->Quest_MQ001_EchoPostMerge_3_Meet_Abel_passive]]");>>You say that you were sent by Abel, the Herald's apprentice.
The guard's face scrunches into a scowl, "He's not even a guard, but of course an outsider wouldn't know that."
The guard unsheaths his sword, the sound of ringing steel interrupting your thoughts, "I don't know who you are or what you want with us, but turn away or be slain!"
\<<run setup.choice("[[Continue->Quest_MQ001_EchoPostMerge_3_Meet_Abel_aggressive]]");>>The guard's body tenses and there is a flash of distrust that manifests in his hand gripping the handle of his sword. He does not draw it. A frustrated growl rasps from his throat.
"If you are here on business of our leader, then you must speak with those who can hear it's words. Wait here, I will fetch someone," he says in flat and measured tones, "If you are lying, there will be hell to pay."
The man assigns a colleague to stand watch over you as he disappears into the Golden Bastion.
\<<run setup.choice("[[Continue->Quest_MQ001_EchoPostMerge_2_Eldest_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
It feels like an agonizing wait before he arrives with a familiar face.
It is Abel.
He motions for you to join him within the Golden Bastion walls.
\<<run setup.choice("[[Enter the Golden Bastion->Quest_MQ001_EchoPostMerge_3_Meet_Abel_p2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "angry")>>
"Stop!" A familiar voice immediately cuts through your boiling blood.
"No honoured voice," he answers, "My apologies. If this stranger-"
"$CharacterSheet_Player.info.name." Abel corrects.
"If this is indeed $CharacterSheet_Player.info.name, then we shall let him pass." The guard eyes you warily but drops his aggressive stance towards you and steps out of the way.
\<<run setup.choice("[[Enter the town->Quest_MQ001_EchoPostMerge_3_Meet_Abel_p2]]");>>"Wait here," he smiles.
"I'll go fetch Abel. He has been visiting the wall every day in hopes that you would return. In truth, we all have been praying for the return of a Scavenger."
\<<run setup.choice("[[Continue->Quest_MQ001_EchoPostMerge_3_Meet_Abel_passive_2]]");>>It takes some time for the man to return.
"The Herald's apprentice is waiting for you within the walls, please proceed and go in the grace of the Eldest," the guard salutes and lets you pass.
As you enter the village proper, you see a familiar figure. The beaming visage of Abel greets you, garbed in what looks to be the cermonial kit.
\<<run setup.choice("[[Speak to Abel->Quest_MQ001_EchoPostMerge_3_Meet_Abel_p2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Abel, "normal")>>
"It's good to see you are alive and well, $CharacterSheet_Player.info.name." Abel says as he looks you up and down.
"By the gods... I made it a ritual to visit this wall every day in the hopes you would come back, but I never thought I would be blessed with such luck," he smiles brightly.
"This is not the place for that kind of talk. Come find me in my house," he says as he turns toward the Golden Bastion proper, "We can try and make sense of this all."
\<<run setup.choice("[[Continue->Village]]");>><<include setup.getNextNarativeEventPassage(setup.StorySheet_Player.oasisIntro)>><<set $CharacterSheet_Player.quest.available_meteorQuest_firstTime = false>>
The distant smoke of the crash site makes it easy to spot, but reaching it is a journey nonetheless.
You hear the faint crackling of flames and smell the charred scent that lingers in the air.
The closer you get, the more the site reveals itself, and you can't help but marvel at the sheer magnitude of it.
The meteor itself is surrounded by an oasis of dark, jet-black water. The smell of Corruption hangs heavy in the air.
A small island lies at the center of it, where ash and flames rise, shimmering the horizon.
The light illuminates a thick fog over the oasis, creating a surreal and mysterious atmosphere.
\<<run setup.choice("[[Continue->Quest_MQ001_EchoFirstEncounter_Lake_Menu]]");>>You are at the edge of the oasis, the thick, viscous corruptive goo lapping at your feet.
The bubbles and splashes created by the goo's movement create an eerie, alien-like sound that echoes.
It's a strange contrast to the peacefulness of the oasis and the surrounding area.
You can feel the meteor's power reverberating through the air, and the ripples on the lake's surface seem to be magnified by the eerie glow.
This pool of Corruption is about <<print setup.getLength(12 * 12)>> in radius.
<<print setup.getNextNarativeEventPassageListText(setup.StorySheet_Player.oasisChoices, 5)>>\
\<<run setup.choice("[[Leave->Village]]");>>[[Inspect the oasis->Quest_MQ001_EchoFirstEncounter_Lake_LookAtPool]]
\You can almost feel the energy radiating from the lake as the goo seems to come alive with its pulsing energy.
Tiny bubbles of black goo rise to the surface.
It would be dangerous to try to cross it without a plan.
\<<run setup.choice("[[Continue->Quest_MQ001_EchoFirstEncounter_Lake_Menu]]");>>[[Step over the oasis->Quest_MQ001_EchoFirstEncounter_Lake_StepOverIt]]
\<span class='inactive'>[[Step over the oasis->Village]]</span>
\You take a deep breath as you stand before the corrupted oasis.
Looking down, you see the lush green foliage that used to fill this place now wilted and blackened.
With a determined stride, you step into the corrupted oasis. Your giant feet make deep impressions in the ground, and the sickly plants crumble beneath your weight.
[[Push Onwards->Quest_MQ001_EchoFirstEncounter_Lake_StepOverIt_2]]\<<run setup.applyCorruption($CharacterSheet_Player, 3)>>
As you progress, you can feel the darkness emanating from the oasis, trying to spread to you.
You can feel the goo pressing against your skin, trying to take hold and spread endless pleasure to your soul, but it simply can't reach you.
∇: You gain 3 corruption.
[[Push Onwards->Quest_MQ001_EchoFirstEncounter_Lake_StepOverIt_3]]Finally, you emerge on the other side, only slightly affected by Corruption.
You have not only survived the corrupted oasis, but you have conquered it.
You stand tall, proud of your success and confident in your strength.
\<<run setup.choice("[[Continue->Quest_MQ001_EchoFirstEncounter_InvestigateImpact]]");>>[[Cross the oasis safely->Quest_MQ001_EchoFirstEncounter_Lake_CrossIt_DemonicEssence]]
\<span class='inactive'>[[Cross the oasis safely->Village]]</span>
\The goo reacts to your presence as it moves faster and faster.
You can feel it reaching your legs, but it suddenly stops.
\<<run setup.choice("[[Push Onwards->Quest_MQ001_EchoFirstEncounter_Lake_CrossIt_DemonicEssence_2]]");>>\<<run setup.applyCorruption($CharacterSheet_Player, 2)>>
You take a few more steps and can feel the goo getting even more intense, its warmth and texture making you quiver with anticipation.
The lake's energy radiates through your body, but your mind is at ease.
Your hand holds your shard of demonic Essence as tight as it can. The fear of dropping it grows stronger with every step.
∇: You gain 2 corruption.
\<<run setup.choice("[[Push Onwards->Quest_MQ001_EchoFirstEncounter_Lake_CrossIt_DemonicEssence_3]]");>>Finally, you emerge on the other side, only slightly affected by Corruption.
You have not only survived the corrupted oasis, but you have conquered it.
You stand tall, proud of your success and confident in your strength.
\<<run setup.choice("[[Continue->Quest_MQ001_EchoFirstEncounter_InvestigateImpact]]");>>[[Attempt to cross the oasis without assistance->Quest_MQ001_EchoFirstEncounter_Lake_CrossIt]]
\<span class='inactive'>[[Attempt to cross the oasis without assistance->Village]]</span>
\The goo reacts to your presence as it moves faster and faster.
You can feel it reaching up your legs, massaging them and sending waves of pleasure through your body.
You begin to blush as you realize what is happening.
[[Push onwards->Quest_MQ001_EchoFirstEncounter_Lake_CrossIt_2]]You take a few more steps and can feel the goo getting even more intense, its warmth and texture making you quiver with anticipation.
The lake's energy radiates through your body. Its strange power courses through your veins.
Your muscles start twitching and contracting, growing stronger with each passing second. Heat radiates off of your body, and your muscles swell and ripple.
[[Push onwards->Quest_MQ001_EchoFirstEncounter_Lake_CrossIt_3]]\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
Your breathing quickens as your heart races, and your body aches with need.
The goo is swirling through your veins, intensifying your desire and making you desperately crave physical touch.
Your body quivers with pleasure.
You start to feel a little dizzy.
[[Push onwards->Quest_MQ001_EchoFirstEncounter_Lake_CrossIt_4]]\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
It's like a thousand tiny fingers caressing your skin from the inside.
Your body starts to quiver as the goo reaches your core.
It feels like a volcano erupting inside you. Your muscles tense and then relax as wave after wave of pleasure washes over you.
Your toes curl as you let out a moan that echoes through the Barrens.
[[Push onwards->Quest_MQ001_EchoFirstEncounter_Lake_CrossIt_5]]\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
You can feel the goo surging through you, intensifying your pleasure and sending you into an orgasmic bliss you never knew existed.
Your eyes roll back in your head as you gasp, feeling the goo up your spine, radiating warmth and pleasure as it goes.
Your breath comes in short, shallow bursts as it continues its journey, setting every nerve ending in your body on fire.
[[Push onwards->Quest_MQ001_EchoFirstEncounter_Lake_CrossIt_6]]\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
You feel like you're about to burst with anticipation as it reaches the center of your being and finally unleashes its full force.
You arch your back and scream as you reach the peak of pleasure, feeling the goo seeping through every part of you and making you a never-ending volley of thick loads.
It's simply too much to bear.
<span class="glitch nyx" data-text="CORRUPT GROW FUCK">"Give in..."</span>
[[Give in->Quest_MQ001_EchoFirstEncounter_Lake_CrossIt_7]]\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
\<<run setup.applyCorruption($CharacterSheet_Player, 8)>>
Your needy moans fade as you start to sink into the black goo.
∇: You pass out.
∇: You gain 8 corruption.
\<<run setup.choice("[[Continue->Village]]");>>[[Attempt to cross the oasis without assistance (Corrupted)->Quest_MQ001_EchoFirstEncounter_Lake_CrossIt_Corrupted]]
\The goo reacts to your presence as it moves faster and faster.
You can feel it reaching up your legs, massaging them and sending waves of pleasure through your body.
You begin to blush as you realize what is happening.
[[Push onwards->Quest_MQ001_EchoFirstEncounter_Lake_CrossIt_Corrupted_2]]You take a few more steps and can feel the goo getting even more intense, its warmth and texture making you quiver with anticipation.
The lake's energy radiates through your body.
Its strange power courses through your veins.
[[Push onwards->Quest_MQ001_EchoFirstEncounter_Lake_CrossIt_Corrupted_3]]\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
Your breathing quickens as your heart races, and your body aches with need.
The goo is swirling through your veins, intensifying your desire and making you desperately crave physical touch.
Your body quivers with pleasure.
But you are used to this feeling.
[[Push onwards->Quest_MQ001_EchoFirstEncounter_Lake_CrossIt_Corrupted_4]]\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
Your feet sink into the murky depths of the corrupted water with each step, the sensation of it heightening your arousal.
The feeling of power radiating through your body with each movement is undeniable as you walk through the water.
It is warm and inviting. It caresses your skin until it wraps around your body and starts to seep into your veins.
You feel yourself growing, your body expanding and becoming more alive with each passing second.
You feel invincible, unstoppable.
A pure soul would have passed out by now, but you are far too corrupted to be overwhelmed by this feeling.
You keep moving forward, feeling the power of the water coursing through your body.
Your steps become more confident and purposeful.
\<<run setup.applyCorruption($CharacterSheet_Player, 4)>>
∇: You gain 4 corruption.
[[Push onwards->Quest_MQ001_EchoFirstEncounter_Lake_CrossIt_Corrupted_5]]\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
Before you know it, you reach the center of the oasis. The feeling of Corruption feels more refreshing to your tainted soul.
Part of you yearns for more and needs to return to the dark waters you've grown to love so much.
But you still need to investigate what lies in the center of the oasis.
\<<run setup.choice("[[Investigate the crash site->Quest_MQ001_EchoFirstEncounter_InvestigateImpact]]");>>
\<<run setup.choice("[[Return to the corrupted waters->Quest_MQ001_EchoFirstEncounter_Lake_CrossIt_Corrupted_Return]]");>>You feel pleasure the moment you step back into the water.
Its warmth envelops you in a sensual embrace, and you can feel the power of the water coursing through your veins.
Your skin tingles with anticipation as you sink deeper, the water rising above your waist.
You can feel the water's Corruption seeping into your pores, awakening your body and setting it aflame.
\<<run setup.choice("[[Sink deeper->Quest_MQ001_EchoFirstEncounter_Lake_CrossIt_Corrupted_Return_2]]");>>The corrupted water seeps into you. Its warmth radiates through your body, giving you an intense, full-body orgasm that feels like nothing you've experienced.
The pleasure builds, quickly becoming overwhelming and leaving you trembling with anticipation. Every inch of your body is alive and tingling as if every nerve has been electrified.
You find yourself lost in waves of ecstasy, unable to control yourself as the pleasure takes over.
[[Push onwards->Quest_MQ001_EchoFirstEncounter_Lake_CrossIt_Corrupted_6]]\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
You feel like you're about to burst with anticipation as it reaches the center of your being.
It unleashes its full force.
You arch your back and scream as you reach the peak of pleasure, feeling the goo seeping through every part of you and making you a never-ending volley of thick loads.
It's simply too much to bear.
<span class="glitch nyx" data-text="CORRUPT GROW FUCK">"Give in..."</span>
[[Give in->Quest_MQ001_EchoFirstEncounter_Lake_CrossIt_Corrupted_7]]\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
\<<run setup.applyCorruption($CharacterSheet_Player, 8)>>
Your needy moans fade as you start to sink into the black goo.
∇: You pass out.
∇: You gain 8 corruption.
\<<run setup.choice("[[Continue->Village]]");>><<include LostPrisoner_Intro>><<include setup.getNextNarativeEventPassage(setup.StorySheet_Player.lostPrisonerMainMenu)>>
<<print setup.getNextNarativeEventPassageListText(setup.StorySheet_Player.lostPrisonerLinks, 3)>>\
\<<run setup.choice("[[Leave -> Village]]");>>[[Approach him->LostPrisoner_Withdrawal_Approach]]
\\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
The beast growls as you step closer.
Black drool oozes from his mouth, and his claws dig deep into stone tiles.
His muscles are even bigger than the last time you saw him.
\<<run setup.choice("[[Take a step closer->LostPrisoner_Withdrawal_Approach_2]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
You take a deep breath and steel yourself as you approach the angry werewolf.
His muscles bulge, and he looks like he can rip through his binds with a single flex of his biceps.
His purple eyes are blazing with rage.
\<<run setup.choice("[[Take another step->LostPrisoner_Withdrawal_Approach_3]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
You can feel the tension in the air. The werewolf's fury is palpable.
He shifts his weight, and you can see the chains around his wrists and ankles rattle with his movement.
Suddenly, he lets out a fierce series of barks.
His eyes are filled with rage, and you can practically feel the heat coming off him.
"It's you..."
He looks like he wants nothing but to tear you to shreds.
\<<run setup.choice("[[Continue->LostPrisoner_Withdrawal_Approach_4]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
You stand your ground but can feel your body shake slightly in reaction.
The werewolf snarls, his hot breath fogging up the air.
∇: He does not seem open to talking now.
\<<run setup.choice("[[Continue->LostPrisoner_MainMenu]]");>>[[Ask him his name->LostPrisoner_Name]]
\\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
<<set $CharacterSheet_Player.quest.available_lostPrisoner_name = false>>
"There's no more room in my soul for thoughts like these. All I think about are what I would do if I got my hands on you right now."
Your question bores him somewhat.
His gaze drifts down to his throbbing cock.
\<<run setup.choice("[[Continue->LostPrisoner_MainMenu]]");>>[[Approach him->LostPrisoner_NormalApproach]]
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
You take a step closer, and he snarls, baring his teeth.
Slowly, you reach out and caress his fur, feeling the power beneath it.
He shudders, and you can feel his body relax. His breathing deepens, and his eyes close in pleasure.
\<<run setup.choice("[[Pet him->LostPrisoner_NormalApproach_2]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
You continue to stroke his fur, and his arousal is evident.
Desire coils tightly in his body.
He looks up at you, his eyes begging. "Please," he whispers.
"I need to cum. If you help me get one load out, I'll tell you anything."
\<<run setup.choice("[[Jerk him off->LostPrisoner_NormalApproach_HelpHim]]");>>
\<<run setup.choice("[[Refuse->LostPrisoner_MainMenu]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
\<<set $CharacterSheet_Player.quest.available_lostPrisoner_cameFrom = true>>
\<<set $CharacterSheet_Player.quest.lostPrisonerRelaxed = true>>
His cock surges and throbs angrily before you even reach him.
He is desperate for any touch.
You reach out and run your palms across his broad chest.
His muscles ripple beneath your touch, and he growls in pleasure.
\<<run setup.choice("[[Continue->LostPrisoner_NormalApproach_HelpHim_2]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
You feel your arousal growing as you continue to explore his body, feeling the heat radiating from him.
His body is like a work of art, every muscle perfectly defined and glistening with Corruption.
"Please... I need to cum."
You move lower, trailing your fingers over his abs and feel the tension in each muscle.
\<<run setup.choice("[[Continue->LostPrisoner_NormalApproach_HelpHim_3]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
You take your time, savouring every inch of him before finally reaching his groin.
He is already hard, and you can feel the heat radiating from his cock. You cup your hands around him, stroking up and down his shaft.
Your mouth waters as you feel his thick, gooey precum seeping out of him. You spread it around with your fingers, coating his length in the viscous liquid.
"Oh fuck!"
His chains rattle against the wall as he pants.
\<<run setup.choice("[[Continue->LostPrisoner_NormalApproach_HelpHim_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
Every every jerk since lightning bolts of pleasure all over his body.
His muscles rumble and shiver lustfully as he fully gives in to your touch.
You grip his cock tightly and stroke it with increasingly fast and frantic movements. His moans become louder and more passionate.
"Please. Don't. Stop!"
He is entirely at your mercy, moaning and panting with every touch to his monstrous werewolf cock.
His corrupted seed starts to ooze off his cock, and you feel the potent power it contains.
\<<run setup.choice("[[Keep jerking->LostPrisoner_KeepJerking]]");>>
\<<run setup.choice("[[Suck him off->LostPrisoner_SuckHimOff]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
"Oh fuck!"
He rattles back in surprise but then pants and whines.
You feel his infectious lust take over the air and can't help but grow hard yourself.
\<<run setup.choice("[[Keep Jerking->LostPrisoner_KeepJerking_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
"Oh, gods! I can feel it! I'm so close!"
His eyes and mouth burn like a rekindled forge.
His huge, hard cock pulses beneath your touch as he roars in pleasure.
\<<run setup.choice("[[Make him cum->LostPrisoner_KeepJerking_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace", true)>>
"Aaaaaarrrrrggggggghhhhhhh!!"
Suddenly, his cum begins to gush forth, coating the room with the thick, gooey, black liquid.
The werewolf's breathing grows more ragged as his orgasm intensifies, and his cum flows from his shaft in loud, powerful spurts.
\<<run setup.choice("[[Make him cum->LostPrisoner_KeepJerking_4]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace", true)>>
"Hmmmm... That felt good." Says the werewolf with an approving purr.
∇: The werewolf is now more open toward you.
\<<run setup.choice("[[Continue->LostPrisoner_MainMenu]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
You give the werewolf a devilish grin and lick the oozing corrupted cum.
"Oh fuck!"
He rattles back in surprise but then pants and whines.
\<<run setup.choice("[[Keep sucking->LostPrisoner_SuckHimOff_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace")>>
You feel his infectious lust take over the air and can't help but grow hard yourself.
You take his cock into your mouth, and your eyes widen.
The forbidden lust of Corruption takes you over. You lick the tip, hungrily tasting his pre.
"Oh, gods! I can feel it! I'm so close!"
\<<run setup.choice("[[Make him cum->LostPrisoner_SuckHimOff_3]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace", true)>>
His cum lurches forward as if answering your call.
"Aaaaaarrrrrggggggghhhhhhh!!"
He roars out in pleasure, his eyes and mouth burning like a rekindled forge.
You feel it run down your throat. Liquid fire. Hunger.
\<<run setup.choice("[[Continue->LostPrisoner_SuckHimOff_4]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "ohFace", true)>>
You need more of it in you.
Your groin grows hot, and erect and pulses with a supernatural hardness.
You subconsciously bounce your pecs and flex your abs as they grow heavier and more muscular.
Your hands start to stroke them, and you feel their growing hardness.
\<<run setup.choice("[[Continue->LostPrisoner_SuckHimOff_5]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal", true)>>
The Lost gives you a monstrous but satisfied smile.
"Hmmmm... Feels good, doesn't it?" Says the werewolf with an approving purr.
∇: The werewolf is now more open toward you.
∇: You gain 6 corruption.
\<<run setup.applyCorruption($CharacterSheet_Player, 6)>>
\<<run setup.choice("[[Continue->LostPrisoner_MainMenu]]");>>[[Ask him why he came here->LostPrisoner_GotHere]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
He chuckles slightly and grins.
"I normally wouldn't tell you, but he led me here. He'll get what's coming to him."
\<<run setup.choice("[[Continue->LostPrisoner_GotHere_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
His fists clench, and his muscles tense up.
"A sorcerer, Apothus, sent me here."
You can almost feel the heat radiating from his body as his anger intensifies.
\<<run setup.choice("[[Continue->LostPrisoner_GotHere_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
"That damn sorcerer tricked me, told me that this bastion would hide powerful artifacts that would make me even bigger."
He snarls, his teeth showing even more than before.
"All I got was this village of fools who would rather stay in their hole than embrace power."
\<<run setup.choice("[[Continue->LostPrisoner_FindApothus]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
His corrupted mind is no longer used to being this deep in thoughts.
Finally, he lifts his head up and speaks.
"I first noticed his realm when exploring the eastern barrens."
\<<run setup.choice("[[Continue->LostPrisoner_FindApothus_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
"It's all a ploy by Apothus. His magic hides a massive chasm leading to his corrupted realm."
He then growls in frustration.
"Travel to the Eastern Barrens when the golden star shines its brightest. It weakens his illusion."
\<<run setup.choice("[[Continue->LostPrisoner_MainMenu]]");>>[[Loosen his ties->LostPrisoner_Untie]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
\<<set $CharacterSheet_Player.quest.available_lostPrisoner_untie = false>>
The werewolf seems to have something to say.
His voice is low and quiet like he doesn't want to be eavesdropped on.
"So uh... You know I never meant to attack this place, right? Apothus used me, led me to this place for whatever scheme he's playing."
\<<run setup.choice("[[Continue->LostPrisoner_Untie_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
He suddenly shifts his arms against his bindings and releases fake grunts of pain.
"And these bindings hurt so much. Ow ow ow... You guys are beyond cruel!"
His acting is the worst you've ever seen.
\<<run setup.choice("[[Continue->LostPrisoner_Untie_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "normal")>>
"Tell you what, if you loosen these ties, I'll escape in the middle of the night and never set foot in this place again. I'll go mad if I have to spend another day here."
If his performance shows anything, he is too bad of a liar to lie about this.
\<<run setup.choice("[[Untie Him->LostPrisoner_Untie_Untie]]");>>
\<<run setup.choice("[[Leave->LostPrisoner_Untie_Leave]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "happy")>>
<<set $CharacterSheet_Player.quest.lostPrisonerUntied = true>>
You reach behind the werewolf and quickly loosen his ties enough for him to set himself free without it being too noticeable.
"You won't regret this."
He gives you a seductive growl.
\<<run setup.choice("[[Continue->LostPrisoner_MainMenu]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
You step back, and he instantly lashes out, pulling hard on his bindings.
"Have it your way! I'm sure you're having a blast watching me rot in here!"
\<<run setup.choice("[[Continue->LostPrisoner_Untie_Leave_2]]");>>\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lost_Prisoner, "angry")>>
His muscles throb and grow for an instant before deflating back.
"Scums, all of you. I hope The Black Sun swallows you whole!"
\<<run setup.choice("[[Continue->LostPrisoner_MainMenu]]");>>\<<include setup.getNextNarativeEventPassage(setup.StorySheet_Player.lostPrisonerIntro)>><<set $CharacterSheet_Player.quest.available_lostPrisonerIntro_firstTime = false>>
You step into the large entrance hall of the Herald's palace. The walls are lined with faded paintings, and the floor is covered in a thick red carpet stretching before you.
You take a moment to take it all in, and then you hear a voice from the shadows.
"Welcome," says one of the guards, who notices your arrival and steps out from behind a large column.
[[Continue->LostPrisoner_Intro_FirstTime_2]]He's wearing a crisp uniform, and you can see the gleam of a sword at his hip. He smiles at you, eyes crinkling in the dim light.
"The Herald has asked me to show you something." He quietly leads you forward.
[[Continue->LostPrisoner_Intro_FirstTime_3]]As you step inside a brightly lit jail, you take a deep breath and try to prepare yourself for what you're about to see.
The air is heavy with the smell of sweat and fear. You pass the corridor through cells full of broken souls and hardened criminals.
Your gaze finally settles on the last cell in the corner of the room.
[[Continue->LostPrisoner_Intro_FirstTime_4]]Inside, you spot a monstrously muscular werewolf chained to the far wall. Its fur is a matted, filthy mess, and its eyes are full of rage and despair.
Despite the chains, it looks as if it could break free at any moment. You can feel its glare burning into you, and you know this creature is dangerous.
But you also know it is a prisoner and must be contained.
[[Continue->LostPrisoner_MainMenu]]The air is heavy with the smell of sweat and fear. You pass the corridor through cells full of broken souls and hardened criminals.
Your gaze finally settles on the last cell in the corner of the room.
[[Continue->LostPrisoner_MainMenu]]\<<set $CharacterSheet_Lost_Prisoner.info.known = setup.EncounterKnownState.KNOWN>>
The air is heavy with the smell of sweat and fear. You pass the corridor through cells full of broken souls and hardened criminals.
Your gaze finally settles on the last cell in the corner of the room.
The Lost werewolf has escaped from his prison.
[[Leave->Village]]The hulking werewolf's muscles ripple with strength even as he is chained to the wall.
He wears a heavy iron collar, and his hands and feet are bound with thick binding ropes.
He growls deeply at your every move.The hulking werewolf's muscles ripple with strength even as he is chained to the wall.
He wears a heavy iron collar, and his hands and feet are bound with thick binding ropes.
His lips twitch in a smirk.The hulking werewolf's muscles ripple with strength even as he is chained to the wall.
He wears a heavy iron collar, and his hands and feet are bound with thick binding ropes.
His corrupted body calls to you.
<span class="glitch nyx" data-text="CORRUPT GROW FUCK">"Grow. Fuck. Spread."</span>The hulking werewolf's muscles ripple with strength even as he is chained to the wall.
He wears a heavy iron collar, and his hands and feet are bound with thick binding ropes.
You can feel the primal hunger emanating from him.
He stares at you seductively, and you can feel the sexual energy pulsing from his body.
"I've been stuck here for days. Gods, my cock aches so much..."
His eyes plead with you, and his voice is a deep rumble. "Please," he begs.The hulking werewolf bathes in the afterglow.
He seems open to discussing other matters.<<include LukkaHouse_Intro>><<print setup.getFlavourBasedDescription($CharacterSheet_Player, "lukkaHouseMenu")>>
<<print setup.getNextNarativeEventPassageListText(setup.StorySheet_Player.lukkaHouseLinks, 3)>>\
\<<run setup.choice("[[Leave -> Village]]");>>Dust lies in all corners of Lukka's lab. The faint smell of Corruption is noticeable but not invasive. It must be coming from some of his countless experiments.You stand in Lukka's backyard with him, as there are no possible ways for you to fit in his laboratory.[[Ask about Corruption->LukkaHouse_CorruptionLore_Low]]
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lukka, "sus")>>
<<set $CharacterSheet_Player.quest.available_lukkaHouse_askCorruption = false>>
"This goo is something you don't want to mess with. It's a dangerous, corrupt substance that causes rapid muscle growth."
Out of the corner of your eyes, you notice a small flask around his waist that suddenly churns as if it reacted to the topic at hand.
"It's precarious, and any contact with it could have catastrophic results. It's best to stay as far away from it as possible."
[[Ask why he is carrying some on him->LukkaHouse_CorruptionLore_Carry]]
[[Continue->LukkaHouse_MainMenu]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lukka, "angry")>>
He seems shaken that you've noticed. He quickly looks down and puts the flask on a nearby table.
"Oh, come on... It's not what you think!"
\<<run setup.choice("[[Continue->LukkaHouse_CorruptionLore_Carry_2]]");>>\<<set $CharacterSheet_Lukka.quest.coatOff = true>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lukka, "sus")>>
"My right arm became paralyzed after a bad injury, and I needed something to help me use it again."
He tries to look you in the eyes but gives up halfway. He nervously scours out some lab equipment as he speaks.
"At first, I was hesitant to try it out, but I had no other options. \
So I applied it to my arm and massaged it into the muscles for a few minutes each day. My arm is getting stronger, and I can move it better already. \
I only use enough to fix myself. You can trust me on this!"
[[Reassure him->LukkaHouse_CorruptionLore_Carry_Reassure]]
[[Warn him about the risks->LukkaHouse_CorruptionLore_Carry_Warn]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lukka, "normal")>>
\<<set $CharacterSheet_Lukka.quest.coatOff = false>>
He sighs as he finally starts to relax.
"I know it's not the most conventional way to treat my paralyzed arm, but it's been surprisingly effective."
He finally gathers to courage to look at you once more.
"We can't solve this Corruption problem without understanding how it works, and maybe we can turn it into something good."
\<<run setup.choice("[[Continue->LukkaHouse_MainMenu]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lukka, "sus")>>
\<<set $CharacterSheet_Lukka.quest.coatOff = false>>
"I just wanted to be able to move it again, <<PlayerName>>. And the Herald already knows. He's got me on watch for a few months now..."
You can tell how nervous this topic makes him. He keeps moving around the lab, cleaning whatever he can come across before changing the subject.
\<<run setup.choice("[[Continue->LukkaHouse_MainMenu]]");>>[[Ask about Corruption->LukkaHouse_CorruptionLore_High]]
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lukka, "sus")>>
<<set $CharacterSheet_Player.quest.available_lukkaHouse_askCorruption = false>>
He nervously shuffles around. He has clearly noticed that you've been using it yourself.
"So, uh... You've been in contact with this dangerous, corruptive goo? It's, uh, really nasty stuff, and it's been causing a lot of trouble lately."
\<<run setup.choice("[[Continue->LukkaHouse_CorruptionLore_High_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lukka, "sus")>>
Out of the corner of your eyes, you notice a small flask around his waist that suddenly churns as if it reacted to the topic at hand.
"It's hazardous, and it's been known to cause all sorts of mutations, from increased strength and size to even more bizarre changes."
[[Ask why he is carrying some on him->LukkaHouse_MainMenu]]
[[Continue->LukkaHouse_MainMenu]][[Ask about the Lost->LukkaHouse_LostLore]]
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lukka, "angry")>>
<<set $CharacterSheet_Player.quest.available_lukkaHouse_askLost = false>>
You can almost feel the tension as Lukka clears his throat.
"The Lost are terrifying creatures. They're incredibly powerful and spread Corruption to anything they come in contact with."
\<<run setup.choice("[[Continue->LukkaHouse_LostLore_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lukka, "sus")>>
He pulls out a notebook in one fast motion and flicks through various references.
"Their souls contain so much Corruption that their bodies began to produce it. \
They have become slaves to its influence. Do not treat them lightly."
\<<run setup.choice("[[Continue->LukkaHouse_MainMenu]]");>>[[Ask what he is planning next->LukkaHouse_LookingForCure]]
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lukka, "normal")>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_LukkasBox);>>
\<<set $CharacterSheet_Player.quest.lukkaQuest.askedForDemonEssence = true>>
He begins with an air of gentle curiosity and softness in his voice.
"Actually, it's a good thing you're the one asking. I've been going through a breakthrough with my current research."
His gaze lingers on you, and he holds a big round-bottom flask with some soil inside.
\<<run setup.choice("[[Take a closer look->LukkaHouse_LookingForCure_2]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/Flask/flask_goo.jpg", undefined, undefined, true)>>
Upon closer inspection, you see a single gooey jet-black flower at the center, its roots pulsating softly.
The flower's petals are dark and glossy, almost like oil, and the blossom's center is a deep and mysterious black.
"See this? This flower was exposed to Corruption just yesterday, and I've been experimenting to see what could stop it from spreading Corruption around itself."
\<<run setup.choice("[[Continue->LukkaHouse_LookingForCure_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lukka, "happy")>>
He then pulls out boxes of supplies and starts rummaging through them.
"And one particular element has been reacting in a promising way. Ah, this isn't it. This isn't it either..."
He sighs in frustration.
"Where is it?"
He suddenly stops and lets out a devilish grin before picking up a small red vial.
"Aha! This is it - the shard of concentrated demonic Essence!"
\<<run setup.choice("[[Continue->LukkaHouse_LookingForCure_4]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/Flask/flask_essence.jpg", undefined, undefined, true)>>
His enthusiasm is slightly worrying, but you soon see what he means.
He introduces the demonic Essence to the flask containing the corrupted flower, and it seems to react almost instantly.
Like oil and water, the black ooze slithers away from the red shard and leaves a small area of clean soil behind it.
"See what I mean? This is the breakthrough we've been looking for!"
\<<run setup.choice("[[Continue->LukkaHouse_LookingForCure_5]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lukka, "happy")>>
He smiles victoriously and instantly brings his focus back to you.
"I'm going to need more of that Essence to experiment. A few demons are roaming the Barrens. I'm sure you can convince them to manifest some of that Essence for us to work with!"
The way he brushes that part off is slightly worrying.
\<<run setup.choice("[[Continue->LukkaHouse_LookingForCure_6]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lukka, "normal")>>
You watch as Lukka pulls out a small cylindrical tank from his pocket.
Determination glints in his eyes as he hands it to you.
"This should absorb some of the Essence in the air and keep it safe," he says.
\<<run setup.choice("[[Continue->LukkaHouse_LookingForCure_7]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lukka, "normal")>>
"You'll need a few samples before it can solidify. Three should be enough."
His pace is dizzying, and his confidence somewhat worrying, but the potential of preventing Corruption from spreading is too valuable to ignore.
You pocket the small reservoir for later.
∇: You have acquired "Lukka's Essence reservoir".
∇: A tiny sample of Essence will be sent to the reservoir for every battle won.
\<<run setup.choice("[[Continue->LukkaHouse_MainMenu]]");>>[[Show him the Essence reservoir->LukkaHouse_LookingForCure_Progress]]
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lukka, "happy")>>
The clear glass container is glowing with a luminous red mist, and you can feel a gentle energy emanating from it.
"Oh! You managed to gather demonic Essence! Lemme see!"
[[Give him the reservoir->LukkaHouse_LookingForCure_Progress_NotEnough]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lukka, "normal")>>
Lukka carefully lifts the lid off the essence reservoir, letting out a small puff of red fog in the room.
He takes a closer look before quickly shutting the container tight.
"That's the stuff... But it's not enough to solidify it yet."
[[Continue->LukkaHouse_MainMenu]][[Show him the Essence reservoir->LukkaHouse_LookingForCure_Complete]]
\<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lukka, "happy")>>
Lukka carefully lifts the lid off the essence reservoir, letting out a small puff of red fog in the room.
His eyes sparkle with excitement.
"Yes! That should be enough for me to solidify it into something useful!"
He then quickly shuts the container tight and holds it to his chest like a priceless treasure.
∇: You no longer hold "Lukka's Essence reservoir."
[[Continue->LukkaHouse_LookingForCure_Complete_2]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lukka, "happy")>>
\<<set $CharacterSheet_Player.quest.lukkaQuest.complete = true>>
\<<run $CharacterSheet_Player.removeAbilityRuntimeData(setup.Ability_LukkasBox);>>
"Thank you for the hard work <<PlayerName>>. I'll use this Essence on something that can help you in your adventures!"
He carefully places the reservoir on a nearby table and rushes to hug you tightly.
"Actually, you can have the shard of demonic Essence I showed you previously since I can make some new ones with the reservoir."
[[Continue->LukkaHouse_LookingForCure_Complete_3]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lukka, "sus")>>
The kobold lets go of you and rush to a pile of boxes.
He sighs in frustration.
"Now, where did I put it?"
He nearly dives into the box of the pile and starts rummaging through it.
"Aha! There it is! My shard of concentrated demonic Essence!"
[[Continue->LukkaHouse_LookingForCure_Complete_4]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_Lukka, "normal")>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_DemonicEssenceShard);>>
He puts the jagged shard of Essence in your hand, and it pulses softly with a deep, red glow.
You can feel the demonic energy radiating from it.
"It won't make you immune to Corruption, but if you come across Corruption of minimal concentration, it should slowly crawl away from you."
∇: You have gained a shard of demonic Essence.
[[Continue->LukkaHouse_MainMenu]]\<<include setup.getNextNarativeEventPassage(setup.StorySheet_Player.lukkaHouseIntro)>><<set $CharacterSheet_Player.quest.available_lukkaHouseIntro_firstTime = false>>
You stand before an old house nestled against the desert sand.
The sun beats down, its harsh rays emphasizing the building's ancient structure.
You know, this laboratory of old crumbling brick. This is where Lukka has studied corruption for as long as you can remember.
Surely he would have jobs for you as the new explorer.
\<<run setup.choice("[[Enter the lab->LukkaHouse_Intro_Idle]]");>><<print setup.getFlavourBasedDescription($CharacterSheet_Player, "lukkaHouse_Intro")>>You walk into the old laboratory, feeling the waves of heat that radiate from the desert sand just outside the walls.
The room is filled with a strange mix of dusty books and mysterious machines.
You gradually feel the air grow heavier with the scent of old chemicals.
In the center of the room are a large wooden table that is covered with tools, jars of different coloured liquids, and odd-looking instruments.
The walls are lined with shelves filled with glass vats containing mysterious liquids and items.
\<<run setup.choice("[[Continue->LukkaHouse_Intro_HeightFlavour_small_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lukka, "happy")>>
Suddenly, the green kobold scientist strides into the room, enthusiasm radiating from their face.
His eyes shine with excitement, and he gestures widely with their arms.
"Welcome <<PlayerName>>! Good to see our new explorer humble me with their presence."
You can almost feel the energy radiating off of him as he approaches you with a warm smile.
\<<run setup.choice("[[Continue->LukkaHouse_MainMenu]]");>>You stand in front of the entrance of Lukka's laboratory, where the alchemist stands in front of the door.
It seems like he heard you coming. Not surprising, considering the booming thud you bring forth with every step.
\<<run setup.choice("[[Continue->LukkaHouse_Intro_HeightFlavour_large_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Lukka, "happy")>>
His eyes shine with excitement, and he gestures widely with their arms.
"Welcome!"
You can almost feel the energy radiating off him as he approaches you with a warm smile.
\<<run setup.choice("[[Continue->LukkaHouse_MainMenu]]");>>You step forward and immediately feel an overwhelming heaviness in the air. It's humid, musky, tainted with corruption.
A black, empty sky surrounds you; the all-encompassing presence of Nyx only amplifies its darkness.
Your skin burns under its unholy light like each ray is coated with acid. The black sun is overwhelming; it consumes most of the space above you.
Standing on a platform made of uneven rocks and soil, you notice that there is no ground behind you. The land simply ends into a sharp cliff that drops into nothingness.
It is floating high above the realm, like Nyx itself was sucking it up towards it. Purple runes swirl around the edges. The cursed symbols pulse with an aggressive radiance; they look barely stable.
Their power is undeniable; this is what stops this realm from falling.
The Black Sun's light seeps into your skin; your heart beats like a drum.
\<<if setup.MQ002_Manor_IsCorruptedInManor($CharacterSheet_Player)>>
You bask yourself in its corrupting power. You cock throbs madly already. There better be something for you to fuck nearby.
\<<else>>
Its alluring power is undeniable, you try to control your lust, but your cock throbs madly with need. Your hunger for power intensifies.
You try to supress a moan.
\<</if>>
∇: You gain the "Embraced by Nyx's Light" ability for as long as you stay in Apothus's realm.
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_EmbracedByNyxsLight);>>
\<<run setup.MQ002_LeavingManor($CharacterSheet_Player)>>
\<<if $CharacterSheet_Imp.quest.knowsAboutNyx>>
\<<run setup.choice("[[Approach the Structure->Quest_MQ002_ApothusRealm_ImpInvasion]]");>>
\<<elseif $CharacterSheet_Player.quest.apothusRealmFirstTime>>
\<<run setup.choice("[[Explore this Realm->Quest_MQ002_ApothusRealm_ApproachStructure]]");>>
\<<else>>
\<<run setup.choice("[[Approach the Structure->Quest_MQ002_ApothusRealm_ApothusMenu]]");>>
\<</if>>\<<run setup.MQ002_GiveNyxLightAbility()>>
\<<run $CharacterSheet_Player.removeAbilityRuntimeData(setup.Ability_EmbracedByNyxsLight);>>
You leave Apothus's tainted realm behind through the invisible portal you came from.
\<<run setup.choice("[[Leave->Quest_MQ002_Manor_MainHall]]");>>Massive ruins reveal themselves near the horizon. Deep distorted moans of the Lost begin to reach you as you approach.
\<<if setup.MQ002_Manor_IsMassiveInManor($CharacterSheet_Player)>>
But they get buried under the booming sound of your footsteps.
\<<elseif setup.MQ002_Manor_IsGiganticInManor($CharacterSheet_Player)>>
The ground cracks under the weight of your immense body, sprawling like countless serpents across the old stone. Each step toward the ruins weakens it even further.
It's a miracle that the platform is still floating.
\<</if>>
Taint seeps through the cracks in the stone bricks, warping their surface into a deep black hue.
The smell is dangerously potent; every breath fills your lungs with burning lust. Your cock grows harder every time you exhale.
Corruption flows along the floor and walls of the ruin like pulsating veins, inching around the center of the ruins like a black vortex.
At the center of the ruined site lies a massive egg-shaped cocoon, as black as the void of space surrounding you, yet its presence is undeniable. A bright aura of dark purple circles it, swirling around the monument, sucking the unholy light into itself.
Countless Lost are at its base, engaging in mad debauchery more intense than anything you've ever seen.
Their muscular forms writhe and moan with raw sexual intensity as they eternally give in to their lust.
<<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_2_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_2.jpg", undefined, true)>>
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ApproachStructure_2]]");>>A deep monstrous roar rumbles throughout the ruins as thick black seed shoots from one of the Lost, more joining him seconds later.
Their passion is endless, forever pushed to the very limit of pleasure that flesh can provide. Time has lost all of its meaning here; there is only pure ecstasy.
Numerous root-like veins throb along the cocoon's base, absorbing more of the Lost corrupted essence into itself.
Veins, thicker than trees, thunderously pump across the platform.
The cocoon shakes violently in response.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ApproachStructure_2_2]]");>>A muffled moan resounds from within its black surface.
It is mighty, bestial, gigantic, bigger than any beast you've encountered before.
The cocoon pulses with power as it drains more of the Lost's essence; the moan grows more piercing.
The black cocoon slowly expands, gaining more mass and spreading along more surface for Nyx's light to bless.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ApproachStructure_2_1]]");>>A monstrous howl emanates from within the orb; it suddenly expands in all directions.
Shots of thick white seed shoot to its surface from whatever lies inside—the surrounding Lost all roar and cum in unison.
"Wonderful, isn't it?" Purrs an otherworldly voice. Its warmth is charming, but you know better than to let it draw you in.
\<<run setup.choice("[[Turn towards the voice->Quest_MQ002_ApothusRealm_ApproachStructure_3]]");>>\<<if setup.MQ002_Manor_IsMassiveInManor($CharacterSheet_Player)>>
You look down, a tiny being seems to ask for your attention.
\<<else>>
You turn to face whoever is addressing you.
\<</if>>
They seem to be a <<print setup.getLength(12 * 12)>> tall man wearing tattered rags that barely covers his waist. On his left pectoral is a glowing deep purple tattoo of a swirling vortex.
There is an alluring sweetness to his voice, yet the musky smell of corruption clings to him. He gazes at you with a lusty, hungry grin.
\<<if setup.MQ002_HasBrokenSeal()>>
"So... you've managed to free us from our little prison. That fool finally got what he deserved too."
\<<else>>
"So... you entered our prison but kept the seal up? You're an interesting one." He laughs inauspiciously.
\<</if>>
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ApproachStructure_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Apothus, "normal")>>
He sounds weirdly delighted- as though he is in complete control. The influence of corruption is evidently gnawing at him.
His breathing grows heavy, his eyes glow with an intense purple hue, loincloth stretching to contain his throbbing cock.
Yet he is schockingly clear-minded as though he has learned to live with his constant arousal.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ApproachStructure_5]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Apothus, "normal")>>
"I've forgotten how long we have been sealed here, but no matter. There is no reason for us to go back to the Barrens now; the warm embrace of Nyx and the growth of our chosen one are all we need."
He grins at you, unsure if he either should give in or resist the urge to have his way with you.
"You may call me Apothus."
<<include Quest_MQ002_ApothusRealm_ApothusMenu>>\<<if $CharacterSheet_Player.quest.apothusRealmFirstTime>>
\<<set $CharacterSheet_Player.quest.apothusRealmFirstTime = false>>
\<<else>>
The Lost's corrupted cum flows along the ruins floor and walls. Their taint seeps through the stone ruins, warps it into a deep black.
<<print setup.processFlavours($CharacterSheet_Player, "Your @[all|cocks|one=throbs~more=throb] harder with every breath you take.")>>
The blackness crawls on the stone's surface, inches onward around the ruins' center, like an all-consuming vortex.
\<<if $WorldState.apothusTransformed>>
Apothus stands at the center of the platform, roaring in pleasure, fucking his army of lust-driven worshippers.
\<<else>>
At the center lies a massive egg-shaped cocoon, as dark as the void surrounding you, scale utterly breathtaking.
A profound aura of purple emanates from it, swirls around the monument, sucking the dark light into itself.
Countless Lost are at its base. Their muscular forms writhe and moan in raw sexual intensity as they eternally engage in forbidden debauchery.
\<</if>>
\<</if>>
\<<if $WorldState.apothusTransformed>>
[[Challenge Apothus->FightLogic][$Encounter_Target = $CharacterSheet_Apothus_2nd_Form]]
\<<else>>
[[Ask about him->Quest_MQ002_ApothusRealm_AskAboutHim]]
[[Ask about the Lost->Quest_MQ002_ApothusRealm_AskAboutTheLosts]]
[[Say you're here to save Cray->Quest_MQ002_ApothusRealm_HereToSaveCray]]
\<<if $CharacterSheet_Player.quest.apothusRealmStatus == setup.ApothusRealmStatus.IDLE>>
[[Attempt to bring his cult down->Quest_MQ002_ApothusRealm_HereToKillThem]]
[[Usurp Apothus's cult->Quest_MQ002_ApothusRealm_ChallengeApothus]]
\<<else>>
[[Feed the Chosen->Quest_MQ002_ApothusRealm_Feed_The_Chosen]]
\<</if>>
\<<if $CharacterSheet_Player.quest.apothusRealmStatus != setup.ApothusRealmStatus.JOINED>>
[[Join him to unleash Nyx->Quest_MQ002_ApothusRealm_HereToUnleashNyx]]
\<</if>>
\<</if>>
\<<run setup.choice("[[Leave->Quest_MQ002_ApothusRealm_Exit]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Apothus, "normal")>>
A disarming smile clads his face.
"I'm glad to see you're not here to attack us blindly." He comes closer, his cock dripping with thick black corruption under his robes.
"I stumbled upon this realm ages ago by wandering the barrens, I was a salvager like yourself, you know?"
Corruption flows overtly through his black scleras.
\<<if !setup.MQ002_Manor_IsCorruptedInManor($CharacterSheet_Player)>>
They made his attempt at being relatable completely hollow.
\<</if>>
He sighed. "This is such a long time ago it doesn't feel like I'm talking about myself anymore..." His eyes drifted to stare directly at the Black Sun.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_AskAboutHim_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Apothus, "mischievious")>>
"Its warm light embraced me like I was its son. It whispered answers to my pleas and granted me the strength to face my foes," he keeps staring at it, his whole body shaking with arousal.
"But we deserve better; we deserve to live free of fear, to be united under a common ideal," he lifts both of his arms wide like he was taking the sun into a warm embrace.
"For the sun only gives... no one can deny it. I know you feel it too. The burning vigour that is growing within your loins."
\<<if setup.MQ002_Manor_IsCorruptedInManor($CharacterSheet_Player)>>
He looks at you, feels the rapid beating of your heart and the throbbing of your <<print setup.getLength(setup.getStatValue($CharacterSheet_Player, "cock"))>> cock.
\<</if>>
"So, why is it that you came all the way here, Salvager? Have you come to help us bring Nyx's blessing to the world?"
\<<set $CharacterSheet_Apothus.quest.askedAboutHim = true>>
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ApothusMenu]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Apothus, "normal")>>
"People fear corruption, and yet here we are all working together to create something bigger than ourselves.
Something that fulfills us, that ultimately makes us happy to be alive."
He turns to look at the neverending orgy, his lips curling into a warm smile.
"People call them the Lost, but I just don't see it..."
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ApothusMenu]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Apothus, "mischievious")>>
The dragonborn laughs, exposing his razor-sharp canines.
"Oh yes... I knew somebody would come for him at some point. It has taken longer than I expected," his purple eyes gaze directly within yours like he is reading an open book.
"Your friend is here... But there is no way to reach him for now," he turns to look at the ever-growing cocoon.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_HereToSaveCray_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Apothus, "normal")>>
"He's evolving. We all see him in our dreams, growing and growing until he reaches Nyx itself. Only he who can make direct contact with the Black Sun is worthy of its power," Apothus keeps looking at the cocoon, completely mesmerized.
"He is the one, the god we need to guide us, to stop us from succumbing to madness," he turns to you suddenly.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ApothusMenu]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Apothus, "mischievious")>>
He chuckles madly.
"And then what? We'll just keep coming back, cycle after cycle after cycle. Nyx is eternal, and so is our dedication to it." A thick purple mist suddenly gathers around his hands.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_HereToKillThem_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Apothus, "grumpy")>>
"Even if I die, my spell to keep this realm afloat will prevail. It lives through my will, deep within my immortal soul."
His black eyes give you a piercing look.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_HereToKillThem_3]]");>>\<<set $CharacterSheet_Player.quest.apothusRealmStatus = setup.ApothusRealmStatus.FIGHTGOOD>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Apothus, "angry")>>
"You can try, just like your friend did, but you'll eventually fall to corruption..."
He walked towards you, his hands pulsating with dark magic.
"Time is on our side."
\<<run setup.choice("[[Fight Him->FightLogic][$Encounter_Target = $CharacterSheet_Apothus]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Apothus, "licky")>>
The feeling of Nyx flowing through your skin is undeniable; it is more than arousing. It is glorious; You feel like you could fuck for days without stopping.
\<<if $CharacterSheet_Player.quest.nyxParasiteInfections > 0>>
You love the spawns writhing within you as well.
\<</if>>
You approach the corrupted dragonborn; your hand clasps your throbbing cock. You could cum at any moment.
\<<run setup.choice("[[Kiss him->Quest_MQ002_ApothusRealm_HereToUnleashNyx_1]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Apothus, "blushing")>>
\<<if setup.MQ002_Manor_IsMassiveInManor($CharacterSheet_Player)>>
Purple magic clads his hands as he hovers towards your head.
\<</if>>
You don't need to say another word. The two of you kiss, with countless Lost looking at you with envy.
Your tongues wrestle for dominance.
His saliva is more corrupted than anything you've encountered.
The smell is acidic; you feel your tongue numbing as his poison flows inside you.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_HereToUnleashNyx_1_2]]");>>\<<set $CharacterSheet_Apothus.quest.arousalProgress = setup.Apothus_Arousal.REVEALING>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Apothus, "mischievious")>>
You growl as your hand goes down to his loincloth. It comes off in one pull.
He giggles sinisterly.
His hands cupping your <<print setup.getLength(setup.getStatValue($CharacterSheet_Player, "cock"))>> balls before turning around.
He presents his ass teasingly, eagerly waiting to be filled by your monster.
"Take me... Oh god, I need your cock inside me..."
\<<run setup.choice("[[Fuck Him->Quest_MQ002_ApothusRealm_HereToUnleashNyx_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Apothus, "licky")>>
You grasp the back of his shoulders and push him down. He moans and laughs in response.
"Cmon, take me, big guy... Show those Lost how a real monster does it," he says as his hands glow with a dark purple aura.
You push yourself in, once inch at a time.
Apothus screams lovingly as the first 6 inches of your monstrous tool fills him.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_HereToUnleashNyx_2_1]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Apothus, "mischievious")>>
His hands fill with an otherworldly magic, like Nyx itself is seeping its power directly onto him.
His insides stretch and push tightly around your cock.
You howl in pleasure; some Lost immediately rush to answer the call.
Their oily tongues worship your pecs and arms.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_HereToUnleashNyx_2_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Apothus, "licky")>>
You feel their corruption seep into your skin. Your nipples thicken as some Lost suck them eagerly.
"Join us $CharacterSheet_Player.info.name, let Nyx guide you for it is our only salvation in this cursed world. Our only way to experience the pleasures of corruption without losing our minds."
\<<run setup.choice("[[Fuck Him Harder->Quest_MQ002_ApothusRealm_HereToUnleashNyx_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Apothus, "licky")>>
His speech is cut short as you thrust the rest of your cock into him.
"Ahhhhh... By the gods... Yessss..." He moans as countless Lost rush to him as well.
A swarm of aroused musclebound beasts worship you.
Multiple tongues fight for the space to enter your asshole.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_HereToUnleashNyx_3_1]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Apothus, "licky")>>
Countless others worship every inch of your muscles and take turns to kiss you with the passion of newfound love.
Apothus lifts his hand to you; it now glows brighter than a flame. A bleeding wound sits on his open palm.
"Mrrrffff... Ahhhh... Let us unleash The Black Sun upon the world!"
\<<run setup.choice("[[Seal the Oath of Nyx->Quest_MQ002_ApothusRealm_HereToUnleashNyx_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Apothus, "mischievious")>>
\<<set $CharacterSheet_Apothus.quest.arousalProgress = setup.Apothus_Arousal.NAKED>>
You bite your hand, pressing it against his, sealing the promise.
A swirl of purple magic surrounds you both. Lost roar in arousal and cum at being inched away from the immense power of Nyx.
Dark magic coils around you both, it swirls into whirlpools that target your respective chests.
Apothus is affected first, vortex shaped tattoo absorbing the dark energy.
His voice cracks and strains under his own moans.
It builds upon the design, making it bigger and more detailed; it reaches up to his shoulder. You feel it touch you next. It imprints itself on your skin; you cum on the spot.
Every pore of your skin opens up, giving more room for Nyx's light to enter you.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_HereToUnleashNyx_4_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Apothus, "mischievious")>>
Your <<print setup.processFlavours($CharacterSheet_Player,"@[all|cocks|one=shoots~more=shoot]")>> gallons upon gallons of cum, the pleasure is all-consuming.
Every lick of the Lost, every inch of your <<print setup.processFlavours($CharacterSheet_Player,"@[all|cocks|noverb]")>> entering Apothus becomes pleasurable enough to unleash additional orgasms on their own.
You feel magic push deeper into your flesh, spinning and spreading along your chest.
The Lost roar at the arrival of the new member of their cult, shots of corrupted cum starts covering everything in sight.
You roar as the Oath completes into a tattoo of a purple vortex covering your left pectoral.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_HereToUnleashNyx_5]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Apothus, "normal")>>
The Lost collapse around you, exhausted by your initiation.
Apothus helps you to your feet.
"With your help, I feel like we can have our chosen one reach Nyx in no time..."
\<<set $CharacterSheet_Player.quest.apothusRealmStatus = setup.ApothusRealmStatus.JOINED>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_Oath_Nyx);>>
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ApothusMenu]]");>>\<<set $CharacterSheet_Player.quest.apothusRealmStatus = setup.ApothusRealmStatus.FIGHTEVIL>>
You feel Nyx's call; it is more intimate than a lover's whisper.
His Lost should be yours. Their corruption pulsates through your heart. They all look at you as their true master already.
You look at Cray in his growing cocoon. This impostor should never be in between you two.
You look at him, a black fire burning in your eyes. For once in countless days, the moans of the Lost grow silent.
They stare as you approach Apothus.
He immediately senses your intention.
A thick purple mist suddenly gathers around his hands.
\<<run setup.choice("[[Fight Him->FightLogic][$Encounter_Target = $CharacterSheet_Apothus]]");>>The Lost move aside as you approach the <<print setup.getNyxChosenCocoonSize()>> black cocoon. \
They shake with anticipation, drooling at the power within your flesh. Part of them yearns to take you, to overwhelm you in their Corruption, but the call of Nyx is too strong.
<<print setup.processFlavours($CharacterSheet_Player, "Your @[all|hands|one=presses~more=press] on the base; it pulses with the Essence of countless beings. The chosen's presence is undeniable.")>> \
His mountainous muscles shudder within the cocoon's surface. He needs more; Only once he reaches the Black Sun above will he feel satisfied.
You dream of seeing him over the barrens; your old mentor now turned into a god; the whole world would bow in worship.
\<<if $WorldState.apothusChosen.essenceLevel == 0>>
\<<if $Essence >= setup.getNyxChosenFeedEssenceCost($CharacterSheet_Player)>>
<<print "[[Feed him Essence ("+setup.getNyxChosenFeedEssenceCost($CharacterSheet_Player)+")->Feed_The_Chosen_Level1][$Essence -= "+setup.getNyxChosenFeedEssenceCost($CharacterSheet_Player)+"]]">>
\<<else>>
<<print "<span class = 'inactive'>[[Feed him Essence ("+setup.getNyxChosenFeedEssenceCost($CharacterSheet_Player)+")->Feed_The_Chosen_Level1]]</span>">>
\<</if>>
\<<elseif $WorldState.apothusChosen.essenceLevel == 1>>
\<<if $Essence >= setup.getNyxChosenFeedEssenceCost($CharacterSheet_Player)>>
<<print "[[Feed him More... ("+setup.getNyxChosenFeedEssenceCost($CharacterSheet_Player)+")->Feed_The_Chosen_Level2][$Essence -= "+setup.getNyxChosenFeedEssenceCost($CharacterSheet_Player)+"]]">>
\<<else>>
<<print "<span class = 'inactive'>[[Feed him More... ("+setup.getNyxChosenFeedEssenceCost($CharacterSheet_Player)+")->Feed_The_Chosen_Level2]]</span>">>
\<</if>>
\<<elseif $WorldState.apothusChosen.essenceLevel == 2>>
\<<if $Essence >= setup.getNyxChosenFeedEssenceCost($CharacterSheet_Player)>>
<<print "[[Complete the chosen's ascension ("+setup.getNyxChosenFeedEssenceCost($CharacterSheet_Player)+")->Feed_The_Chosen_Final][$Essence -= "+setup.getNyxChosenFeedEssenceCost($CharacterSheet_Player)+"]]">>
\<<else>>
<<print "<span class = 'inactive'>[[Complete the chosen's ascension ("+setup.getNyxChosenFeedEssenceCost($CharacterSheet_Player)+")->Feed_The_Chosen_Final]]</span>">>
\<</if>>
\<</if>>
\<<run setup.choice("[[Go Back->Quest_MQ002_ApothusRealm_ApothusMenu]]");>><<print setup.processFlavours($CharacterSheet_Player, "Essence flows from your @[all|arms|noverb] and into the cocoon.")>> \
The whole platform suddenly rumbles. The Lost surrounding you moan as you strengthen their god.
Anticipation fills you all, a sense that the world will forever change after the cocoon finally hatches.
It accepts your gift; Thick root-like tendrils emerge from the power rising from your hands. They writhe across the cracking soil, growing bigger than the Losts surrounding them.
A monstrous, lustful roar pushes through the confines of the cocoon. The Lost moan in response; their god is growing closer to the Black Sun.
\<<set $WorldState.apothusChosen.essenceLevel = 1>>
His prison grows up to <<print setup.getNyxChosenCocoonSize()>>.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ApothusMenu]]");>>The black fleshy cocoon grows upwards, directly towards the light of Nyx. You step back as it pulses and expands to contain the Chosen's growing muscles and cock. \
His body is unbelievably massive, the epitome of power and virility. He flexes uncontrollably within the cocoon, sending ripples across its growing surface.
The Losts look at you in complete awe as you step towards the chosen one. They kneel, letting you walk freely towards the cocoon. \
<<print setup.processFlavours($CharacterSheet_Player, "Your @[all|hands|one=presses~more=press] upon its surface once more, it pulls you in, drinking your Essence like dry soil.")>> \
You feel Nyx's will through your own, to carve a vessel so it can walk the Barrens.
To have all eyes pulled onto its light.
\<<set $WorldState.apothusChosen.essenceLevel = 2>>
The Lost all roar and cum in unison at the sight of their god towering over the ruins.
The platform is barely holding on to the mountainous black cocoon. At <<print setup.getNyxChosenCocoonSize()>>, Nyx is almost within its reach.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ApothusMenu]]");>>\<<set $WorldState.apothusChosen.essenceLevel = 3>>
Apothus looks at you with a smile of pure, utter bliss. One that only displays a fraction of the euphoria he feels at seeing a new god's birth.
His hands glow with a golden hue; the whole ruins shake in response.
You feed the cocoon with more Essence, enough to grow anyone into a titan of unbelievable strength.
Yes... To worship Nyx is to free the world of doubts and fear!
All shall bathe in its light!
Free from the fear of being broken by cursed beasts! All shall be perfect, blessed by the all-consuming embrace of a new god!
Apothus grins, his eyes shine with the unholy glow of Nyx's light. He joins your effort, his hand pressing on the base of the cocoon.
The surrounding Lost soon follow, giving away their Essence to their god. A muffled roar shakes the whole platform. The silhouette within bursts with sudden growth, stretching the cocoon as if an explosion triggered within.
\<<run setup.choice("[[Continue->Feed_The_Chosen_Final_2]]");>>You gaze at the black sun, marvel at how the cocoon grows closer and closer to its surface. \
Its light deviates, condenses towards the monster below. The Chosen roars, piercing your soul with instincts of bestial lust. The half-formed god unleashes his first word.
"More..."
His voice slithers under your skin, filling you with new forbidden power.
The ground under your feet pulses to the god's heartbeat. His monstrous cock hardens, pushing against his chrysalis until it suddenly breaks free. \
The Black Sun flows into its new host. It shrinks until it becomes smaller than the platform you're standing on.
"Moooooorrreeee"
Like an order to the world around him, his word seeps into all it can reach.
The Lost roar, every one of them instantly brought to the edge of a mind-shattering orgasm. Their corrupted seed spews out until the whole platform is damp with a layer of thick cum. \
The Chosen's power reaches you as well, making your teeth clench. Your body shakes with an unholy need for more; more size, more pleasure, more power—a need to overcome any opposition, even the limits of mortality itself.
\<<run setup.choice("[[Continue->Feed_The_Chosen_Final_3]]");>>Claws pierce out of the cocoon like a knife through butter; each of them glows with a powerful dark gleam as if the black sun courses behind their glass-like edge. \
Seeing them is mesmerizing; it's as if they pulsed with power, spreading the infectious light on all that dared gazed upon them. One look is enough to bring you to the edge.
You cum and roar as reality bends under the Chosen's light.
\<<run setup.choice("[[Absorb Nyx's Light->Feed_The_Chosen_Final_4]]");>>\<<run setup.applyGrowth($CharacterSheet_Player, "muscles", 35)>>\
Your body bursts with size and power, making you join the chorus of pleasure.
The cocoon crumbles.
The old body of the werewolf that protected the Golden Bastion is a shallow memory of the being he has become. His black glow of corruption pulses between each strands of his fur; massive veins cover his gigantic form. \
He pants, struggling to control the all-consuming power of the Black Sun. His glowing purple eyes gaze at his knotted cock. Every throb pushes it higher along his booming pecs. \
<<if setup.sizecomparison(setup.getStatValue($CharacterSheet_Player, "height"), 16896) >= setup.Comparators.BIGGER>>\
He grasps it with his paw and looks up to you.
<<else>>\
He grasps it with his paw and looks down on you.
<</if>>\
"MORE!"
His whole form suddenly bursts in a bright purple light, one that seeps into your being.
Instantly, your muscles explode with impossible strength, more and more mass piles up on your frame.
The Lost scream and cum once more, rushing in to worship every inch of their god.
Apothus looks on, utterly consumed by adoration, yet his duty forces him back to reality, if only for an instant. \
His hands glow with the power of a ritual he prepared for this very moment, his final task as the prophet of Nyx.
A blinding teal light bursts out of him, one that engulfs even the newborn god.
\<<run setup.choice("[[Continue->Feed_The_Chosen_Final_5]]");>>The barrens form all around you as if the realm you were standing in was merely an illusion.
This feeling quickly dissipates as the roars of the Chosen sweep across the endless sands. The beast is right next to you, unleashed onto the world. \
He keeps growing, his form quickly towering over the horizon as countless Lost throw themselves at him.
Yet as his form rises over the dunes, you feel the tone of his monstrous voice change. It lowers, going from dominant roars to defiant gurgles.
It feels wrong...
His hands clasp his head as bright purple light pulses under his skin. He seems on the verge of madness like his body and mind are raging in an all out war. \
Yet the Lost are none the wiser. They worship every inch of him as if their life depends on it.
"No... How could he go against Nyx's will?" Apothus groans as he nervously approaches his chosen.
Suddenly, his eyes widden; before he has any chance to react, the Chosen's massive paw crashes into him. You look on as the prophet is launched hundreds of feet away.
There is chaos rising within his very being, clashing ambitions fighting for dominance. Massive clawed paws cut across the dune as he lashes out in increasing madness.
\<<run setup.choice("[[Try to help the Chosen->Feed_The_Chosen_Final_HelpHim]]");>>There are voices within the Chosen that are clashing like two beasts fighting for survival.
You feel something deep within your core, something you've experienced in the past already.
A feeling that you can align the chaos raging within him.
\<<run setup.choice("[[Get closer->Feed_The_Chosen_Final_HelpHim_2]]");>>You step towards the Chosen.
His roars become increasingly vicious and conflicted; madness creeps onto him. The sheer power of his voice unleashes sandstorms around him, approaching him is becoming increasing difficult.
Yet as you get closer, the purpose of his roars seems more apparent. It sounds like he is yearning for more, that his need for greatness drove him to this point.
Suddenly, his tone changes. His deep screams warp into something different, a howl to call upon his brethren.
"Spread... We must spread!"
It feels like an answer to a cosmic plight, a promise to bring all to the path of eternal pleasure.
\<<run setup.choice("[[Reach out to him->Feed_The_Chosen_Final_HelpHim_3]]");>>His roars suddenly stop. A heavy silence falls on the Barrens, one that speaks louder than the monstrous bellows from before.
You feel his passion, the same that you've seen even when people knew him as Cray, the Salvager. Your shared need for power pulls you ever closer as if you are the only speakers of a wordless language.\
This yearning for more is what brought you both here in the first place. Your loins throb eagerly as an unspoken link builds between your souls, a shared hunger that all shall bow down to.
Thick <<SymbioteColor>> goo spreads to cover you both, pulls you closer than you ever could be.
Instantly, your arms bulge as Nyx itself flows within you. You shiver with lust, your eyes suddenly burst with a bright purple light. \
A beast lives within its core and crawls towards your soul. You feel the all-consuming urge to change reality itself into something else, to spread this dark light on every corner of this world.
Nyx clutches onto your soul as Cray pulls you into a deep kiss.
<<if setup.sizecomparison(setup.getStatValue($CharacterSheet_Player, "height"), 16896) >= setup.Comparators.BIGGER>>\
Even the Black Sun struggles to cover you completely. Your <<print setup.getLength(setup.getStatValue($CharacterSheet_Player, "height"))>> body pulses with power as it desperately tries to reach every inch of your being.
<<else>>\
<<run setup.applyGrowth($CharacterSheet_Player, "cock", 1495)>>\
<<run setup.applyGrowth($CharacterSheet_Player, "balls", 528)>>\
<<run setup.applyGrowth($CharacterSheet_Player, "height", 16896)>>\
<<run setup.applyGrowth($CharacterSheet_Player, "muscles", 250)>>\
Your body instantly shoots upwards, growing and growing as the non-stop rush of power fills your being.
"Grow..! GROW-!" Cray roars as he pulls you ever closer.
You groan, booming with impossible strength as your cock instantly unloads ever-growing shots of thick seed upon the infected soil below.
<</if>>\
<<SymbioteName>> resonates with the chaos raging within you both, but through your journey, a clear ambition forms.
\<<run setup.choice("[[Align with Cray and keep growing->Feed_The_Chosen_Final_OnlyGrowPath]]");>>You both explode with size and power as <<SymbioteName>> spreads to him, making him feel the growth you have experienced during your journey here.
It speaks to Cray more than the strength of the black sun itself.
His lips lock with yours, and for the first time you feel like Cray is at peace, like he has finally found what he was seeking.
You are being pulled to him as he is to you.
\<<run setup.choice("[[Merge with Cray->Feed_The_Chosen_Final_OnlyGrowPath_2]]");>><<print setup.processFlavours($CharacterSheet_Player, "The Lost look on in adoration as your forms gradually merge into one. @[all|arms|one=lifts~more=lift] up towards the sky in expectation. Your feet curl upon the warm sand, carving new dunes onto it with your sole.")>> \
<<print setup.processFlavours($CharacterSheet_Player, "Finally, your mouth with a roar, one that shakes the foundation of the world itself. You emerge from the <<SymbioteColor>> goo. All bow to you in response.")>>
You are more than you used to be, in every way possible. The world has no choice but to bend to your presence as permanent landmarks form under each of your steps. \
Such is the presence of a <<SymbioteRace>> who is now bigger than all that breathes.
<<print setup.processFlavours($CharacterSheet_Player, "Yet the need is still there; your @[all|cocks|one=throbs~more=throb] eagerly with every beat of your heart.")>>
You need more...
More so that you can become the epitome of strength.
\<<run setup.choice("[[Grow->Feed_The_Chosen_Final_OnlyGrowPath_3]]");>><<run setup.applyGrowth($CharacterSheet_Player, "cock", setup.getStatValue($CharacterSheet_Player, "cock"))>>\
<<run setup.applyGrowth($CharacterSheet_Player, "balls", setup.getStatValue($CharacterSheet_Player, "balls"))>>\
<<run setup.applyGrowth($CharacterSheet_Player, "height", setup.getStatValue($CharacterSheet_Player, "height"))>>\
<<run setup.applyGrowth($CharacterSheet_Player, "muscles", setup.getStatValue($CharacterSheet_Player, "muscles"))>>\
Cray's soul burns with impossible fervour along with yours.
Your wills are one, to become the one who cannot be denied.
Even Nyx has no choice but to bow to your will.
"GRAAHHHHHH!" Your voice booms, making the world shake in both terror and fascination. A cacophony of moans rises from the Lost.
You lick your lips, feeling them worshipping every inch of your god-like body. Their passion seeps within you, tingles with raw, unadulterated pleasure.
Your body expands as you revel in their worship; you soon grow to become a <<print setup.getLength(setup.getStatValue($CharacterSheet_Player, "height"))>> tall titan.
\<<run setup.choice("[[Grow->Feed_The_Chosen_Final_OnlyGrowPath_4]]");>><<run setup.applyGrowth($CharacterSheet_Player, "cock", setup.getStatValue($CharacterSheet_Player, "cock"))>>\
<<run setup.applyGrowth($CharacterSheet_Player, "balls", setup.getStatValue($CharacterSheet_Player, "balls"))>>\
<<run setup.applyGrowth($CharacterSheet_Player, "height", setup.getStatValue($CharacterSheet_Player, "height"))>>\
<<run setup.applyGrowth($CharacterSheet_Player, "muscles", setup.getStatValue($CharacterSheet_Player, "muscles"))>>\
A monstrous grin curls upon your face for countless tiny beings fall to their knees. One look upon you is enough to make most shiver. \
The rest are brought to the edge, overwhelmed by the sheer masculinity and power you exude. \
You change with every heartbeat, growing with every worship.
"Hhhh... Hhhhrrrfff..." Words can't pass through the pulsing pleasure of power filling your body. You flex for your people, making countless people cum at your display of strength. \
Soon your cock rises up to your pecs with unbridled need. Your hand grasps it and jerks it eagerly as you grow taller than any structure of this world.
\<<run setup.choice("[[Grow->Feed_The_Chosen_Final_OnlyGrowPath_5]]");>><<run setup.applyGrowth($CharacterSheet_Player, "cock", setup.getStatValue($CharacterSheet_Player, "cock"))>>\
<<run setup.applyGrowth($CharacterSheet_Player, "balls", setup.getStatValue($CharacterSheet_Player, "balls"))>>\
<<run setup.applyGrowth($CharacterSheet_Player, "height", setup.getStatValue($CharacterSheet_Player, "height"))>>\
<<run setup.applyGrowth($CharacterSheet_Player, "muscles", setup.getStatValue($CharacterSheet_Player, "muscles"))>>\
The Lost, demons, beasts; none of them can get even close to matching your power, for you are a god, a force without equal and yet you need more.
A grin rises from you as you reach the tallest mountain you can see in only a few steps. All eyes lay on you, both in anticipation and fear. The world is unsure of your intention; no one can look away.
Your claws pierce the base of the mountain, and with a god-like roar, you start lifting it.
People's admiration, envy and lust rush within you. They already know that you are their god, but you show them nonetheless.
"GRAHHHHHHH!"
<<print setup.processFlavours($CharacterSheet_Player, "The base of the mountain shatters, and with a victorious roar, you lift it over your @[all|heads|noverb].")>>
You are the strongest being of this world, there is no question about it, but the urge remains.
You need more...
\<<run setup.choice("[[Grow->Feed_The_Chosen_Final_OnlyGrowPath_6]]");>><<run setup.applyGrowth($CharacterSheet_Player, "cock", setup.getStatValue($CharacterSheet_Player, "cock"))>>\
<<run setup.applyGrowth($CharacterSheet_Player, "balls", setup.getStatValue($CharacterSheet_Player, "balls"))>>\
<<run setup.applyGrowth($CharacterSheet_Player, "height", setup.getStatValue($CharacterSheet_Player, "height"))>>\
<<run setup.applyGrowth($CharacterSheet_Player, "muscles", setup.getStatValue($CharacterSheet_Player, "muscles"))>>\
One look below is enough to confirm that which you have wished for is now a reality. You are massive, more significant than all that came before you. \
With one strike of your fist, you could smite any foe, anyone that would dare stand in your way.
But to grow is its own reward; all must know you're the strongest so that nothing can even come close to challenge you.
Your body shakes once more in a miasma of pleasure and strength as mass piles up upon you once more.
"GRURHHHHHH!"
<<print setup.processFlavours($CharacterSheet_Player, "Your @[all|cocks|one=throbs~more=throb] with hunger; the need to fuck grows maddening. Out of instincts, you drop the mountain you're holding and thrust into it.")>>
Your flesh is stronger than stone; the mountain can only crack and bend under your might.
"FUUUCK!"
<<print setup.processFlavours($CharacterSheet_Player, "With a monstrous roar, you pull your @[all|heads|noverb] back as wave upon waves of growth rushes over you.")>>
\<<run setup.choice("[[Grow->Feed_The_Chosen_Final_OnlyGrowPath_7]]");>><<run setup.applyGrowth($CharacterSheet_Player, "cock", setup.getStatValue($CharacterSheet_Player, "cock"))>>\
<<run setup.applyGrowth($CharacterSheet_Player, "balls", setup.getStatValue($CharacterSheet_Player, "balls"))>>\
<<run setup.applyGrowth($CharacterSheet_Player, "height", setup.getStatValue($CharacterSheet_Player, "height"))>>\
<<run setup.applyGrowth($CharacterSheet_Player, "muscles", setup.getStatValue($CharacterSheet_Player, "muscles"))>>\
Cum churns from your balls with boiling eagerness to fill the mountain's newly created cave.
"GRAAHHHHHHHHH!"
Shots upon shots of <<SymbioteColor>> seed bursts out of you with no signs of stopping. It floods the mountain, completely overwhelming it like a leaking dam. \
You scream as an explosion of growth rushes through you; your orgasm keeps going.
Your pecs engorge outward as you cum over and over.
"FUCK... F-FUCK!!!"
<<print setup.processFlavours($CharacterSheet_Player, "The sound of your deep moans travels across the world as your @[all|cocks|one=doubles~more=double] in size, completely obliterating the mountain and covering the world with your now impossibly massive @[all|cocks|noverb].")>>
You grow so much that you end up losing sight of your followers. Yet, their presence is undeniable. Their worship fuels your ascension; no one can deny the reality of the god growing over them.
You laugh in an outburst of pleasure and madness; you need more, always more!
\<<run setup.choice("[[Grow->Feed_The_Chosen_Final_OnlyGrowPath_8]]");>><<run setup.applyGrowth($CharacterSheet_Player, "cock", setup.getStatValue($CharacterSheet_Player, "cock"))>>\
<<run setup.applyGrowth($CharacterSheet_Player, "balls", setup.getStatValue($CharacterSheet_Player, "balls"))>>\
<<run setup.applyGrowth($CharacterSheet_Player, "height", setup.getStatValue($CharacterSheet_Player, "height"))>>\
<<run setup.applyGrowth($CharacterSheet_Player, "muscles", setup.getStatValue($CharacterSheet_Player, "muscles"))>>\
<<print setup.processFlavours($CharacterSheet_Player, "Your thighs bulge into massive teardrops shaped muscles, eating away all space around your @[all|legs|noverb].")>>
<<print setup.processFlavours($CharacterSheet_Player, "Your upper body consumes your view. You cup and squeeze your @[all|pecs|noverb], revelling at the fact that it is now impossible for you to see what lies under them.")>> \
Soon, all are forced to witness your ascension as mountains become smaller than your toes.
<<print setup.processFlavours($CharacterSheet_Player, "You pant, eagerly jerking your nearly planet-sized @[all|cocks|noverb], feeling a monstrous wave of arousal coursing through you.")>>
This is it...
\<<run setup.choice("[[Grow->Feed_The_Chosen_Final_OnlyGrowPath_9]]");>>There's no going back now; you look down upon the world, not even able to see the people worshiping you. Not that you would want it any other way.
The growth, the power, the pleasure, it all feels so good.
This is all that matters.
<<print setup.processFlavours($CharacterSheet_Player, "You feel cum rush through your @[all|cocks|noverb] and roar in victory as the void of space fills with your presence. Orgasm courses through you once more; another cataclysmic surge of growth fuels your ascension.")>>
"MOOOOOOOORE!"
Your body bulges out in the void of space; nothing can stop the growth of a god.
\<<run setup.choice("[[Grow->Feed_The_Chosen_Final_OnlyGrowPath_10]]");>>The sweet song of pleasure fills every available space in your mind; you give yourself away to its embrace.
You do not know where you are, not sure where you're going.
<<print setup.processFlavours($CharacterSheet_Player, "Yet once your @[all|cocks|one=springs~more=spring] back to life; growth rushes over you once more.")>>
With a world-shattering roar, pleasure takes over all thoughts you could have had.
\<<run setup.triggerEnding("Ending_MemoriesOfCray")>>
\<<run setup.choice("[[The End->Ending]]");>><<set $Quest_MQ002 =
{
id:"MQ002",
description: "While exploring, I found a strange chasm. It reeks of Corruption.",
villagePassage: '[[Go to the chasm->Quest_MQ002_Entrance]]',
onComplete: function()
{
}
}>>The desert stretches out before you, an endless sea of sand and rock.
As always, the horizon is a blurry line, where sand and sky seem to merge together, except something in the distance catches your attention.
In a certain corner of the endless horizon, where dunes would normaly rise, there seems to be nothing instead.
It's not that there is nothing in the horizon, but that there is a total absence of anything.
\<<run setup.choice("[[Investigate further->Quest_MQ002_Entrance_FirstTime_2]]");>>
\<<run setup.choice("[[Go back to the Golden Bastion->Village]]");>>You walk for what feels like hours, and the strangeness of what you saw becomes more and more apparent.
No sand, no rocks, no plants, no animals, not even the wind.
It's as if the very fabric of reality has been ripped away, leaving only an empty void in its place.
\<<run setup.choice("[[Continue->Quest_MQ002_Entrance_FirstTime_3]]");>>\<<run $Quest_InProgress.push($Quest_MQ002)>>
In the distance, you see the jagged outline of a chasm, a deep cut in the earth that seems to go on forever.
A strange ominous purple glow seems to be coming down from it, and you cannot see where it possible ends.
<<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/Barrens/chasm.jpg", undefined, undefined, true)>>
You keep a note of its location for future expeditions.
\<<run setup.choice("[[Continue->Village]]");>>
<<script>>
var i;
for(i = 0; i < State.variables.Explore_Destinations.length; i++)
{
if(State.variables.Explore_Destinations[i] == setup.ExplorationData.findChasm.id)
{
State.variables.Explore_Destinations.splice(i, 1);
break;
}
}
<</script>>In the distance, you see the jagged outline of a chasm, a deep cut in the earth that seems to go on forever.
A strange, ominous purple glow seems to be coming down from it, and you cannot see where it possibly ends.
<<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/Barrens/chasm.jpg", undefined, undefined, true)>>
\<<run setup.choice("[[Venture down the chasm->Quest_MQ002_Entrance_2]]");>>
\<<run setup.choice("[[Go back to the Golden Bastion->Village]]");>>You walk down the steep ledge of the chasm.
A burning light at the bottom makes it hard to tell how deep it is, but you feel the cave expand with every step.
The cave walls become increasingly hot, and the air becomes thick with a metallic smell.
\<<run setup.choice("[[Keep going down->Quest_MQ002_Entrance_3]]");>>You descend for what feels like hours.
The heat is intense, and a bright, blinding light at the top of the cave makes it challenging to grasp how deep it reaches.
Your eyes slowly adapt to the light, and you can finally grasp the scale of this underground realm.
\<<run setup.choice("[[Gather your surroundings->Quest_MQ002_Entrance_4]]");>>This place is massive, and it seems to be much more expansive than you would have assumed.
<<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/NyxRealm/nyx_realm.jpg", undefined, undefined, true)>>
The sight is otherworldly.
\<<run setup.choice("[[Venture deeper->Quest_MQ002_Entrance_5]]");>>You travel down a river leading directly towards the black sun above.
The strange light makes your heart beat faster.
Your body warms up, pleasure surges out from every inch of skin it touches.
But something in the distance catches your attention, a tall gate of paved stones.
\<<run setup.choice("[[Travel along the river->Quest_MQ002_Entrance_6]]");>>You find yourself becoming more and more aroused with each step, your cock hard with desire, your nipples hard and begging for attention.
Its intensity only increases the more you walk towards the gate.
Whatever lies beyond surely is the source of this lustful feeling rising within you.
\<<if !$CharacterSheet_MQ002_Guard.quest.beaten>>
\<<run setup.choice("[[Approach the gate->Quest_MQ002_Entrance_Guard]]");>>
\<<else>>
\<<run setup.choice("[[Approach the gate->Quest_MQ002_Entrance_NoGuard]]");>>
\<</if>>A massive armoured figure stands in front of the gate.
The <<print setup.getLength(setup.getStatValue($CharacterSheet_MQ002_Guard, "height"))>> horned figure is kneeling and immobile, his heartbeat and breathing so still you could have mistaken him for a statue.
As you approach, his head rises up.
\<<run setup.choice("[[Continue->Quest_MQ002_Entrance_Guard_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "angry")>>
His gaze is burning with an otherworldly pink glow and his expression is inhumanly stern.
\<<run setup.choice("[[Continue->Quest_MQ002_Entrance_Guard_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "angry")>>
Suddenly, his piercing eyes lock directly into yours.
"Who do you seek?" He bellows.
\<<run setup.choice("[[Answer his question->Quest_MQ002_Entrance_Guard_Prompt]]");>>
\<<run setup.choice("[[Run Away->Village]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "angry")>>
Who do you seek? <<textbox "$WorldState.minoWords" "">>
\<<set $CharacterSheet_MQ002_Guard.quest.met = true>>
[[Continue->Quest_MQ002_Entrance_Answer]]<<include setup.getMinoPromptPassage($WorldState.minoWords)>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "normal")>>
The minotaur pauses. It is hard to tell what he's thinking.
\<<run setup.choice("[[Continue->Quest_MQ002_Entrance_Answer_Invalid_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "angry")>>
The minotaur plants his axe on the corrupted soil and steps towards you.
He seems unfazed by your answer.
\<<run setup.choice("[[Fight Him->FightLogic][$Encounter_Target = $CharacterSheet_MQ002_Guard]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "angry")>>
"Nyx is not like the Corruption you've come across. One is fuel, and one is fire itself. It infests the soul like a virus, spreading into every corner of your thoughts."
He plants his axe on the corrupted soil and steps towards you.
"Show me that you can bear it."
\<<run setup.choice("[[Fight Him->FightLogic][$Encounter_Target = $CharacterSheet_MQ002_Guard]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "angry")>>
"Another poor lost taken under Apothus's wing."
He plants his axe on the corrupted soil and steps towards you.
"Your intentions are pure, but they are misguided. If you truly wish to find him, I must ensure your soul won't be torn apart by what's beyond this gate."
\<<run setup.choice("[[Fight Him->FightLogic][$Encounter_Target = $CharacterSheet_MQ002_Guard]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "blushing")>>
"This name... It rings of some distant power..."
The minotaur pauses. It is hard to tell what he's thinking about your answer.
\<<run setup.choice("[[Continue->Quest_MQ002_Entrance_Answer_Kanathar_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "normal")>>
"Your goals are unknown to me, but this name will guide you further than you can imagine."
He plants his axe on the corrupted soil and rises suddenly.
"Regardless, I must ensure your soul won't be torn apart by what's beyond this gate."
\<<run setup.choice("[[Fight Him->FightLogic][$Encounter_Target = $CharacterSheet_MQ002_Guard]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "blushing")>>
His eyes widen.
He grasps his head, loses himself in thoughts.
"This name..."
\<<run setup.choice("[[Continue->Quest_MQ002_Entrance_Answer_Tiadane_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "blushing")>>
"My god has given it to me, and I've never shared it with anyone."
His determined scowl melts into a look of confused consternation as he stares you down, trying to make sense of something only he seems to be aware of.
\<<run setup.choice("[[Continue->Quest_MQ002_Entrance_Answer_Tiadane_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "blushing")>>
Suddenly Something moves inside of you, something buried deep within your soul.
"Master?"
The single word rumbles out in the deep baritone of the Minotaur's voice.
For a split second purple veins course across your sclera and fills your pupils with bright violet light that leaves the minotaur staring in wonder.
\<<run setup.choice("[[Continue->Quest_MQ002_Entrance_Answer_Tiadane_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "blushing")>>
You remember the feeling of the minotaur's power expanding so far beyond what was before you.
Despite that, as you look upon the minotaur now you feel no threat of any kind.
\<<run setup.choice("[[Continue->Quest_MQ002_Entrance_Answer_Tiadane_5]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "blushing")>>
As if responding to your thoughts, the minotaur finally lowers his guard.
He bends down to one knee and bows his head before you, eyes firmly on the ground.
In a deep, rumble that seemed to vibrate through the air itself, he delacres.
"Master, your power awaits you."
Δ: Tiadane joins your party.
\<<set $CharacterSheet_MQ002_Guard.quest.beaten = true>>
\<<set $CharacterSheet_MQ002_Guard.info.name = "Tiadane">>
\<<run setup.completeAchievement("Achievement_SafePassage");>>
\<<run setup.tiadaneJoinsPlayer()>>
\<<run setup.choice("[[Continue->Quest_MQ002_Entrance_PlayerWins_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "angry")>>
The minotaur pauses.
"So many souls have been taken under his wings. I hope you know what you're getting into."
He plants his axe on the corrupted soil and rises suddenly.
"I am not one of his pawns, I must only ensure that your soul won't be torn apart by what's beyond this gate."
\<<run setup.choice("[[Fight Him->FightLogic][$Encounter_Target = $CharacterSheet_MQ002_Guard]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "angry")>>
This name... You should not know it.
\<<run setup.choice("[[Fight Him->FightLogic][$Encounter_Target = $CharacterSheet_MQ002_Guard]]");>>The entrance is freed from the minotaur's protection, nothing is stopping you from crossing the gate.
\<<run setup.choice("[[Open the Gate->Quest_MQ002_MoveInsideGate]]");>>
\<<run setup.choice("[[Leave->Village]]");>>
<<run setup.MQ002_LeavingManor($CharacterSheet_Player)>>\<<set $CharacterSheet_Imp.quest.available_encounterPassages_nyxHint = false>>
Soon after you leave the Golden Bastion, you notice a winged figure flying overhead.
Immediately, you recognize Kanathar, your master, flying above and coming your way.
Your mouth waters, your cock hardens.
With one sweep of his demonic wings, he lands in front of you.
\<<run setup.choice("[[Continue->Imp_ServantPath_NyxHint_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
Your master looks at you with visible curiosity; he grins before licking his lips.
"Seems like you've been busy, pet. I can tell that your expeditions have led you to some interesting places."
He comes close, his voice being no louder than a whisper.
"Do you have something you'd like to share to your master?"
\<<run setup.choice("[[Talk about your experience in Nyx's Realm->Imp_ServantPath_NyxHint_2_Share]]");>>
\<<run setup.choice("[[Say you have nothing particular to talk about->Imp_ServantPath_NyxHint_2_Hide]]");>>\<<set $CharacterSheet_Imp.quest.knowsAboutNyx = true>>
\<<run setup.completeAchievement("Achievement_DamnatoryKnowledge");>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
You share what you've learned about the realm of Nyx, beyond the guard that you've defeated at the gate.
His expression lights up when you mention the black star that burns everything with its unholy light.
\<<run setup.choice("[[Continue->Imp_ServantPath_NyxHint_2_Share_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
The mention of how its sheer presence has made you aroused beyond what anything the Barrens could offer greatly intrigues him.
"Hehehe, I'll have to seek out this realm myself. It sounds like something very special. But for now, I have to show you how much I've grown~"
<<print setup.getFightStartPassages($CharacterSheet_Imp)>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
"Whatever suits you, runt. But for now, I have to show you how much I've grown~"
<<print setup.getFightStartPassages($CharacterSheet_Imp)>>The realm of Nyx is barren and dry, containing no sounds of life beyond the constant moans and wet sounds of corruption hitting raw flesh.
After only a few steps, you freeze. Huge thumping sounds shake the ground all around you in a way that seems oddly familiar.
Something big is coming.
\<<run setup.choice("[[Turn Around->Quest_MQ002_ApothusRealm_ImpInvasion_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
You see the demon whose sheer presence makes your whole body shiver with lust. Kanathar has followed your trails and has made his way here.
"Hehehe, this looks even more decrepit than I imagined."
He raises his arms, taking in Nyx's light with his whole body. His monstrous cock rises in response; it thumps and throbs in excitement as cum oozes down along the demon's shaft.
"Hmmmmm... Yes. This is something else, and you did well by leading me here, runt."
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
He takes a deep breath and lets his colossal chest expand to take more of the black sun's light.
He could feel his body stretch to contain the sheer size, this new raw power that shakes him to his core.
You could see him shiver with pleasure as he moans under his muffled breath.
"I feel it in me, this power... It's like it's calling me by my name."
His wings flex and stretch; his knees bend slightly as his gaze remains stuck on Nyx.
"I've yearned for its power ever since I had my first look, and now it's so close... It's like I could reach it myself."
\<<run setup.choice("[[Ask what he plans to do->Quest_MQ002_ApothusRealm_ImpInvasion_4]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_2_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_2.jpg", undefined, true)>>
You ask your master what he plans to do next. Nyx is as close as it's ever been, but surely there would be others seeking its powers.
He looks upon the horizon and leads your gaze towards the massive round structure that pierces the sky of this cursed realm.
It is a massive egg-shaped cocoon, as black as the void of space surrounding you, yet its presence is undeniable. A bright aura of dark purple circles it, swirling around the monument, sucking the unholy light into itself.
Countless Losts are at its base, engaging in mad debauchery more intense than anything you've ever seen.
Their muscular forms writhe and moan with raw sexual intensity as they eternally give in to their lust.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_5]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
Your master can help but release a devilish laugh.
"Look at these fools, trying to reach a sun by slowly growing a cocoon until it reaches up to it."
His monstrous hands clench into fists; he bends his knees forward slightly.
"I bet they all wish they could just fly there, right, pet?"
The sight of your master flexing his back and flapping his wings is a sight even more entrancing than the Black Sun itself.
His wings are tiny compared to the rest of his body, but the power behind them is undeniable.
One flap pushes forth gusts of wind, enough to send a burst of dirt all around him.
"Watch me. I'm going to take what's mine."
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_6]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "cumming")>>
His whole body sweats with visible strain, but every flap of his wings pushes him higher than the previous one.
You can feel how much more powerful he has grown, how much stronger you've made him.
"Mrrrfff... And when I do, you'll be the first to have a taste."
Nothing could stop him now.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_7]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 1)>>
"Grahhhh!"
He bursts out in-flight, his body ascending more than 100ft in less than a second.
Strength rushes through him; thick veins bulge out, his cock is fully hard.
Every flap of his wings pushes him further as if the sun was pulling him closer.
"MINE! IT'S ALL MINE!"
He roars, his voice taking the attention of all who stand in this cursed realm.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_8]]");>>You suddenly hear a voice coming from where the cocoon stands. It is agitated, fearful even, and it screams out in despair.
"What? Who is this?"
You turn to see a muscular warlock of some sort. His hands are glowing in a bright purple hue, and you can tell that he's preparing some spell. Whoever he is, he must be stopped, for your master's sake.
\<<run setup.choice("[[Charge at him->Quest_MQ002_ApothusRealm_ImpInvasion_9]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Apothus, "angry")>>
You charge towards him, putting all your strength into your shoulders and striking him with a tackle.
He is too distracted by his spell to see you coming; only when you're less than a few feet away from him does he exclaim.
"No! Not now!"
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_10]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Imp, "normal")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 2)>>
\<<run setup.applyCorruption($CharacterSheet_Imp, 200)>>
\<<set $CharacterSheet_Imp.fight.strength += 130>>
\<<set $CharacterSheet_Imp.fight.hp += 500>>
\<<set $CharacterSheet_Imp.fight.stamina += 400>>
\<<set $CharacterSheet_Imp.quest.ascended = true>>
As you strike down the warlock, you hear a monstrous roar burst out as the sky explodes in bright purple light.
"ALL MINE!"
The sky darkens as deep, thundering laugh booms from above. The sun finally condenses towards the imp, seeping into his body.
Δ: Kanathar's Corruption has increased by 200.
∇: Kanathar's strength has increased by 130.
∇: Kanathar's health has increased by 500.
∇: Kanathar's prowess has increased by 400.
Δ: Kanathar's body grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Imp, "height", 1500))>> taller.
\<<set $growth = setup.applyGrowth($CharacterSheet_Imp, "muscles", 100)>>
Δ: Kanathar's muscles grow to become <<print setup.getMusclesDescriptor($CharacterSheet_Imp)>>(+$growth).
Δ: Kanathar's cock grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Imp, "cock", 500))>> longer.
Δ: Kanathar's balls grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Imp, "balls", 200))>> wider.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_11]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_2_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_2.jpg", undefined, true)>>
\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 2)>>
An evil demonic laugh bellows out of his as he feels the burning spirit of Nyx filling his muscles.
His chest fills up, growing, pumping with raw strength until his chin hits his pecs.
It burns more than anything he has ever experienced, but it feels impossibly good.
"Grrrrrrrahhhh... Look at me <<PlayerName>>. I'm turning into a god!"
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_12]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1.jpg", undefined, true)>>
\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 2)>>
The warlock beside you can't help but look in confused wonder.
His plans are ruined, but seeing Kanathar growing and absorbing the Black Sun seems to excite him all the same.
Your master suddenly groans. His whole body shakes as a burning purple aura covers his entire body.
He yells in a mix of pain and pleasure, and it's not long until the bliss completely takes over.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_13]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_Apothus, "licky")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 3)>>
With one quick motion, the warlock drops to his knees. He ultimately gives it, one reaching his cock and another pinching his nipple.
"Haaaa... Take it, Kanathar. Take what's yours."
Neither you nor the imp has seen this corrupted man before. Yet Kanathar's name now thumps in his mind, a word now constantly growing in power.
It's not long until you also drop to your knees, all to worship your growing god.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_14]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_2_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_2.jpg", undefined, true)>>
\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 4)>>
"GRAAHHHHHH!"
Your master roars, his wings suddenly spreading out beside him, growing wider to more than double the width of his body.
They are bigger than buildings at this point and powerful enough to lift the <<print setup.getLength(setup.getStatValue($CharacterSheet_Imp, "height"))>> demon with ease. His whole frame grows impossibly fast; each burst of size makes you and the warlock ready to cum at his command.
"Fuck... FUCK YES! LOOK AT YOUR GROWING GOD!"
Massive spikes bulge out of his shoulder and chest as what remains of the Black Sun rests above the demon's head like a gigantic crown.
His whole body radiates with Nyx's light, and it is driving everyone within this realm to the edge.
The lustful roars of countless Lost rise from far away ruin, joining Kanathar's chorus of assertive pleasure.
"Hehehehe, HAHAHAHA!"
\<<run setup.applyCorruption($CharacterSheet_Imp, 400)>>
Δ: Kanathar's Corruption has increased by 400.
Δ: Kanathar's body grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Imp, "height", 6000))>> taller.
\<<set $growth = setup.applyGrowth($CharacterSheet_Imp, "muscles", 200)>>
Δ: Kanathar's muscles grow to become <<print setup.getMusclesDescriptor($CharacterSheet_Imp)>>(+$growth).
Δ: Kanathar's cock grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Imp, "cock", 2000))>> longer.
Δ: Kanathar's balls grows <<print setup.getLength(setup.applyGrowth($CharacterSheet_Imp, "balls", 800))>> wider.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_15]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1.jpg", undefined, true)>>
\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 5)>>
The imp roars, bringing the Lost to orgasm only by grasping his cock and glancing at their general direction. He could taste their lust, revel in their now endless worship, and it only makes him more powerful.
Yet his attention remains on you, his pet who has led him here.
"Get ready, my little pet; you're about to feel the power of your new GOD!"
\<<run setup.choice("[[Fight!->FightLogic][$Encounter_Target = $CharacterSheet_Imp]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1.jpg", undefined, true)>>
As he stands over your exhausted body, his enormous cock dribbles a constant stream of pre that pools in an increasingly large puddle underneath you.
Before you could collapse face-first into it, powerful, reddish-purple fingers grab your throat and effortlessly hoist you into the air.
Even as they grip your throat, you could feel his fingers expanding and swelling larger with each passing second.
Held there, dangling with your feet above the ground, you find yourself face-to-face with the wickedly grinning monster of an imp.
No, not a monster.
A god.
Your god.
"Looks like I win this time, runt."
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_Loss_2]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1.jpg", undefined, true)>>
It is like admitting that to yourself unleashed something bigger than you could ever dream of becoming.
You watch his expression change from gleeful to one of utter, orgasmic bliss.
The power of Nyx has held itself back and given you a final chance not to save the world, not to stop this overgrown demon, but to take it for yourself.
And as it turns out, that power well and truly belonged to Kanathar.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_Loss_3]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1.jpg", undefined, true)>>
\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 1)>>
Power ripples through the imp both physically and metaphysically.
In an instant, you feel his fingers around your neck grow to be thicker than his forearm had been only moments ago.
As his body grows in sync with the corrupting power merging with him, you could feel that otherworldly attraction, that overwhelming sense of superiority and presence that was Nyx itself spread throughout its new master.
"You're mine..."
Any sense of restraint you have shatters within a second of looking into those endless chasms that are his eyes.
\<<run setup.choice("[[Submit->Quest_MQ002_ApothusRealm_ImpInvasion_Loss_4]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_2_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_2.jpg", undefined, true)>>
\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 1)>>
He drops you to the ground, and you are immediately on your hands and knees, kissing his feet.
His foot grows along with the rest of his monstrous self, enough to push you away from it.
You continue to cling onto and shower that tiny bit of your new, growing god with affection and adoration.
Overhead the Kanathar grins and raises both arms.
He flexes in the most monstrous double bicep pose in all of existence.
\<<run setup.choice("[[Cum for your god->Quest_MQ002_ApothusRealm_ImpInvasion_Loss_5]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_2_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_2.jpg", undefined, true)>>
\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 2)>>
His pectorals bulge outwards to such massive proportions that the demon's chin perpetually rests within the top of his pectoral cleft.
His thighs swell beyond what his waistline had once been in width.
He could crush mountains into diamonds between them with ease.
His cock has grown to an absurd size; it stretches out before him like an endless mountain range of masculinity.
Simply by laying on the ground and growing, the titanic phallus tears an increasingly deep chasm into the earth as it shoves itself forward to take up more and more space.
And yet, even as your master expands beyond all reasonable scale, he still was not done.
\<<run setup.choice("[[Cum for your god->Quest_MQ002_ApothusRealm_ImpInvasion_Loss_6]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1.jpg", undefined, true)>>
\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 2)>>
The demon's attention turns towards The Losts that have gathered around him.
If it hadn't been for their otherworldly connection to Corruption, they would have been beneath the growing demon's notice.
A wicked grin spread across the ascendant imp's face as an idea rises within his mind.
Instead of taking them in and adding their infinitesimally minuscule mass to himself, he chooses to change the Corruption within them instead.
He doesn't so much suppress as he does alter their overwhelming urges and cravings.
The beasts feel some sense of sanity build within their passionate, obsessed, sex-crazed minds. Only enough to give guidance to those otherwise base instincts.
Specifically, to direct them to their god. As the impossibly powerful imp grows beyond the strength of the greatest demon lords, he determines that an army of beasts is not necessary to him.
Nothing could challenge his power, and he needs no assistance to prove that fact.
No, the demon neither wants nor needs an army of monsters; he wants an army of worshipers.
\<<run setup.choice("[[Cum for your god->Quest_MQ002_ApothusRealm_ImpInvasion_Loss_7]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1.jpg", undefined, true)>>
\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 2)>>
All the while, all you can do is watch and worship as the imp redefines the world around you.
You drag your tongue across the ever-growing wall of flesh that is one of his toes in worship—the overwhelming compulsion to aggrandize him.
As the formerly little demon swells into the darkening sky and expands across the mutating landscape, there's still a tiny part of you would dare resist.
\<<run setup.choice("[[Surrender completely->Quest_MQ002_ApothusRealm_ImpInvasion_Loss_8]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 2)>>
Years pass.
No one knows exactly how many. Time had long since lost its meaning.
There is only one thing that matters, and that's the Lord's pleasure.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_Loss_9]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 2)>>
Sitting atop the largest mountain in the world, Kanathar, the demon god, surveys his surroundings.
Even being the largest natural structure in the world, painstakingly carved by millions of his loyal follower's hands, the demon's landscape of a throne struggles to contain his impossible bulk.
His enormous hips and thighs make the stonework creak and groan ominously every time he shifts his incalculable weight.
The back of the mountain echoes with the cracking sound of fracturing stone every time he leans back against it.
The entire structure is far inferior to a proper throne for him.
But Kanathar has taken great pleasure in watching the world's population work themselves to the bone to carve such a thing for him, simply because he desires it.
And you are there to watch it all.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_Loss_10]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1.jpg", undefined, true)>>
\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 2)>>
Even now, as you stand on the landscape that was the top of your god's dick, stretching dozens of miles into the distance, you still marvel at his enormity.
You are the biggest, the strongest of the new Lost, and you have earned that title and your place as his favourite plaything.
Just the thought of knowing that you have gained your god's attention is almost enough to bring you to orgasm all by itself.
The very idea of one of his enormous, infinitely deep eyes turning their attention to you for even a second is bliss beyond anything your own body could ever hope to produce on its own.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_Loss_11]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1.jpg", undefined, true)>>
\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 2)>>
Somewhere deep in the recesses of your mind. You know that you once had impure thoughts about your god.
Hilarious, nonsensical fantasies that you could have challenged him for his rightful place above everyone else.
The very idea that someone as small as you could ever contest him is almost ridiculous.
For his part, the imp-turned-God takes great pleasure in his reordering of the world.
He has rewritten The Lost into what he now calls "The Seen".
A world soon overrun by a new Corruption of ever-growing power, one who spreads power and pleasure to all who worship him.
Their most basic, primal instinct is now to do whatever would bring their god the most pleasure.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_Loss_12]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_2_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_2.jpg", undefined, true)>>
\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 3)>>
"Faster" Kanathar thunders.
His voice now is as much supernatural compulsion to the minds of everyone within miles as it was audible sound.
The thousands of mutated werewolves, minotaurs and humans sprawling out across his dick obey immediately.
Hands and feet ranging from the size of dinner plates to the size of houses rub and grind against the imp god's monstrous erection.
Tongues big enough to cover mountains desperately lick at whatever tiny fraction of a percent of his dick's surface area they could reach.
Titans that could have destroyed cities or countries, or even entire worlds on their own, bow down on their hands and knees.
They all devote their entire existence simply to getting him off.
It is wonderful.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_Loss_13]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_2_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_2.jpg", undefined, true)>>
\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 3)>>
The demon god's own pleasure radiates out from him in waves of psychic force.
Every time one of his minuscule minions hit a sweet spot on his cock, an orgasm surges through every single creature within miles.
Every time he growls out his lust like a roll of thunder, his subjects spasm uncontrollably from the overwhelming psychic stimulation.
Kanathar's existence is now a show of dominance, and his pleasure is a worldwide event. But for once, this wasn't him simply enjoying his new godhood.
This time his pleasure had a purpose.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_Loss_14]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1.jpg", undefined, true)>>
\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 3)>>
As the masses push him closer and closer towards release, the imp god gathers up all of the passion and drive radiating from himself and all those down below.
He has taken over this planet, this entire reality, but even that is not enough for him.
He wants more people to sing his praises, to bathe him in their worship and adoration.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_Loss_15]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_2_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_2.jpg", undefined, true)>>
\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 3)>>
As he nears his release, the demon god speaks a single word. In that word, he forces every last ounce of divine power he had gathered from himself and all of his followers.
That single word echoes and ripples through the laws of reality itself.
The word is to be as fundamental as gravity or inertia.
Its meaning becomes intuitive across the collective unconscious, and all sentient beings who hear the word understand its meaning.
It is a name.
The name of someone great and powerful. Of someone that deserves the adoration and worship of all those around him.
<h2>Kanathar</h2>
\<<run setup.choice("[[Scream his name->Quest_MQ002_ApothusRealm_ImpInvasion_Loss_16]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1.jpg", undefined, true)>>
\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 4)>>
He turns his attention back towards you. Towards the greatest, the strongest, of his little pet worshipers.
The one who had come so close to taking all of this from him.
The one evolved into the perfect servant, who has been given size and strength beyond anything the old gods could have imagined.
Part of the demon god is curious about what things would have been like if you had defeated him.
But as he stares down at you, watching you throw yourself at whatever tiny fraction of his endlessly cumming cock you could reach, he knows that he likes this outcome the best.
And with his name now bearing power beyond the shackles of reality, he knows that he'll never be a puny weakling again.
"Grrrahhhhh... get ready to take my load, <<PlayerName>>." your god growls at you, grinning as the sound of his voice sends you into a spasmatic orgasm. "Cum for your god, cum for Kanathar!"
\<<run setup.choice("[[Cum->Quest_MQ002_ApothusRealm_ImpInvasion_Loss_17]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Imp"], 4)>>
\<<run setup.completeAchievement("Achievement_MemoriesOfKanathar");>>
<<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_3_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_3.jpg", undefined, true)>>
<h2>“GRAAAAAAAAAAAAAAAAAAAAHHHHH!!!”</h2>
\<<run setup.choice("[[The End->Ending][setup.stopRealizationPackages(['CharacterSheet_Imp']);]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1.jpg", undefined, true)>>
Even as the imp lays defeated at your feet, his strength continues to grow.
Every couple of seconds, his body pulsates and swells larger.
Entire lakes worth of cum spurts weakly from his monstrous cock where it lays splayed out across the ground beside him.
Yet for all his enormity and endlessly-increasing strength, you are the one that stands victorious.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_Win_2]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1.jpg", undefined, true)>>
His wounds visibly knit together with every pulsation of new size and strength. Even if you could defeat him as he is now, you aren't sure if he even is mortal anymore.
Soon he would recover and outgrow you and anything else that would dare challenge him.
Your master is now unstoppable.
No matter how often you beat him in combat, he will always come back stronger.
Except, something about him seems different since you landed the last blow. His eyes seem to glow in an otherworldly purple, a light that burns you to your core.
You feel the Black Sun reaching into your mind with a thundering voice.
"<<PlayerName>>! Give yourself to me!"
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_Win_3]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1.jpg", undefined, true)>>
You grasp your head with your <<Hands>>; its presence makes it hard to think.
Within a blink, you're now directly in front of your master, whose face is now inches away from you.
\<<run setup.choice("[[Step Back->Quest_MQ002_ApothusRealm_ImpInvasion_Win_3_StepBack]]");>>
\<<run setup.choice("[[Reach out to Kanathar->Quest_MQ002_ApothusRealm_ImpInvasion_Win_3_ReachOut]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1.jpg", undefined, true)>>
There is no way to tell what would happen to you if you took that inherently corrupting power into yourself.
Even standing near the imp, you could feel its siren call beckoning you, enticing you to sample just a taste.
A taste that you know would only be the beginning.
The only other option was to try to flee. You have no idea how you would do that, but you have come this far after all.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_Win_3_StepBack_2]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_2_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_2.jpg", undefined, true)>>
You have barely taken one step away before powerful fingers wrap around your ankle in a vice-like grip.
Even as you turn to look, you could feel the fingers thickening and enlarging as they hold on to you.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_Win_4]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_1.jpg", undefined, true)>>
You turn your attention back towards him, determination set in your mind.
It is like you could feel the power coursing through the imp calling out to you. It screams at you to take it for yourself.
It wants to be used, and it needs to be yours! The imp had proven the inferior host. It desires, deserves and demands only the most powerful lay claim.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_Win_3_ReachOut_2]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_2_lowres.jpg","https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/voidlesky_dawn_of_corruption_9_2.jpg", undefined, true)>>
When you reach for the imp, his arms jerk and grab your wrist.
Even as he holds your arm in his vice-like grip, you could feel his fingers still growing and encompassing more and more of your arm with each passing second.
The demon locks eyes with you; a determined and wicked grin spreads across his face. As he does, his body begins to melt into a goo-like substance and flow into you.
The power of both Nyx and Kanathar flows into you and invades your body, mind, and very soul.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_Win_4]]");>>Kanathar reaches out eagerly within you.
His mind and spirit coil against yours in a powerful, intimate embrace.
Even after all this, even after ascending to godhood, he still sees you as his powerful, unstoppable lover.
\<<run setup.choice("[[Embrace Kanathar->Quest_MQ002_ApothusRealm_ImpInvasion_Win_5]]");>>Everything he is, every thought, emotion and aspect of his existence tightly wraps around you.
And as you merge, Nyx flows into you like a tidal wave in acceptance of your triumph.
\<<run setup.choice("[[Ascend->Quest_MQ002_ApothusRealm_ImpInvasion_Win_6]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
Your muscles bulge and grow with such abruptness that each one creates a thunderclap as they double in size, then double again in a fraction of a second.
Within moments, your body had grown so impossibly muscular you no longer could even move.
Your titanic traps, delts, and pectorals bloat to such impossibly muscular proportions that they engulf your head.
Your arms thicken with so much muscle that they rise outwards, muscle groups all fighting against each other for even the tiniest extra inch of space.
It is a scale of power and strength that could have smashed mountains into dust had you been able to move. Thankfully, the rest of you catches up.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_Win_7]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
Your body begins to grow larger as well as thicker, eventually increasing in height even faster than your muscles do.
While still impossibly ripped, your proportions soon even out enough that you could walk and move your arms once again. You are growing impossibly fast; thousands of feet add to your already impossible size every second.
It feels like anything that wasn't within arms reach would be, if you but wait for a few heartbeats.
Your feet bulldoze their way across the landscape down below, tidal waves of flesh crushing everything in their path.
Your cock stretches out in front of you as it tears an increasingly deep canyon in the ground by its sheer weight alone.
Literal floods of sexual fluids leak from your tip and drown anything under you.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_Win_8]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
Suddenly, more than just your size begins to change.
Your body takes on a jagged appearance.
Spikes of bone erupt from your elbows and along your chin. Enormous, curved demonic horns rip from the back of your head while bony protrusions grow from your forehead into a shape reminiscent of a crown.
Moments after growing, the ivory bones turn dark as a blackish ichor spreads across it and then appears to ignite.
It bursts in wicked black flames that are both liquid and fire;
A demonic crown that beckons all who see it.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_Win_9]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
All the Lost and every other insignificant creature still trapped within this realm cum at the sight of your growing mass.
Letting themselves be bulldozed by whatever limb is closest, only to be absorbed and added to your already endlessly growing body.
You feel Kanathar's demonic instincts influencing your thoughts and personality, and they feed your ego to monstrous proportions.
The seemingly-infinite power of Nyx only exacerbates the situation until even the most humble part of yourself urge you to roar your godhood to all who can hear it.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_Win_10]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
Your hands, each big enough now to palm mountains, reach out and grab at the very fabric of the realm around you.
With only a thought, you brace yourself against the fabric of the spell that brought you here.
The whole world shakes around you as your very existence takes over the limits of this realm.
\<<run setup.choice("[[Shatter the bounds of this realm->Quest_MQ002_ApothusRealm_ImpInvasion_Win_11]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
Like shattering glass, the space around you fractures and breaks apart into a thousand pieces; the entire realm shutters from earth to sky.
Your feet hit the ground first as you land on the sands of the Barrens, and the impact sends earthquakes shaking across the countryside.
Soon after, the impossible enormity of your cock slams to the ground and shakes the continent itself.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_Win_12]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
As your booming demonic laughter thunders across the landscape like a series of sonic booms, your cock continues to spurt lakes worth of cum as casually as someone might produce a single droplet of pre.
Any touched by even a single drop of your juices find themselves turned and corrupted within seconds.
But this Corruption is not the one you once knew.
It is yours to shape and control.
\<<run setup.choice("[[Continue->Quest_MQ002_ApothusRealm_ImpInvasion_Win_13]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
You have become something greater; the world has a new god.
There is no longer anything, neither rival nor champion, that could challenge you anymore.
And more importantly, there is no longer anything that could stop you from becoming what you want to be, need to be. What you are destined to become.
A demon who is finally his own master.
\<<run setup.completeAchievement("Achievement_MemoriesOfDemonicAscent");>>
\<<run setup.choice("[[The End->Ending]]");>>You stand in the main hall of the strange castle, intricate gold-clad markings course along the cobblestone floor.
They cover the whole room, with them gathering towards a structure in the center of it.
It's a grand golden monolith. Black markings swirl along its surface like water in a river.
<<print "You notice " + ($WorldState.cultManor.westWing_ClearedRooms.length > 3 ? "all" : $WorldState.cultManor.westWing_ClearedRooms.length) + " of them are glowing with a bright purple light.">>
The minotaur you've previously fought rests kneeling besides it.
\<<if $CharacterSheet_MQ002_Guard.quest.lustIncrease == true>>
He looks much more aroused than before.
\<</if>>
\<<set $MQ002_Manor_Destinations = setup.getManorDestinations()>>
\<<run setup.choice("[[Explore the West Wing->MQ002_Manor_WestWing_Entrance]]");>>
\<<run setup.choice("[[Examine the Monolith->Quest_MQ002_Manor_MainHall_ExamineMonolith]]");>>
\<<run setup.choice("[[Talk to the minotaur->Quest_MQ002_Manor_MainHall_TalkMinotaur]]");>>
\<<run setup.choice("[[Leave the castle->Quest_MQ002_Entrance_NoGuard]]");>>\<<if $WorldState.cultManor.monolithBroken>>
You approach the grand monolith and look closely.
It is completely clean of the black ink-like substance that once crawled upon its golden surface.
\<<else>>
You approach the grand monolith and look closely.
A black ink-like substance moves along the golden surface.
It is a dark, foreboding thing.
As you get closer, it crawls and merges until it forms readable letters.
\<span class = "monolith">
\<<if setup.MQ002_Manor_IsCorruptedInManor($CharacterSheet_Player)>>
\<<if $WorldState.cultManor.mainHall.isBroken>>
//"As destructive as you've been, we still welcome you to our halls."//
\<</if>>
//"Break the seal of our realm. We can grant you what you truly seek."//
\<<else>>
\<<if $WorldState.cultManor.mainHall.isBroken>>
//"Your senseless destruction of our halls will be accounted for. We will show no mercy."//
\<<else>>
//"There is nothing for you here. Leave now or your soul will rot in these halls for all eternity."//
\<</if>>
\<</if>>
\</span>
\<<if $WorldState.cultManor.westWing_ClearedRooms.length >= 3>>
It is covered in a strange oil that forms three grand sigils.
Their glow is pulsating with unbriddled power. You can feel reality crumbling all around it.
\<<run setup.choice("[[Enter Apothus's Realm->Quest_MQ002_ApothusRealm_Entrance]]");>>
\<<else>>
It is covered in a strange oil that forms three grand sigils.
<<print "You notice " + $WorldState.cultManor.westWing_ClearedRooms.length + " of them are glowing with a bright purple light.">>
\<</if>>
\<</if>>
\<<run setup.choice("[[Go Back->Quest_MQ002_Manor_MainHall]]");>>There are voices within Apothus that are clashing like two beasts fighting for survival.
You feel something deep within your core, something you've experienced in the past already.
A feeling that you can align the chaos raging within him.
But this feeling resonates with a bond you've forged before coming here, a loyal servant whose devotion remains unjustified.
\<<run setup.choice("[[Continue->Feed_The_Chosen_Final_Minotaur_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "happy")>>
He is here, looking up at you from the entrance of this realm.
Your feelings for him flare within your soul, and the black sun takes notice.
You reach out for it, with your body and soul.
The minotaur has seen the god hidden without the deepest parts of yourself, and the black sun reacts the same way.
Its otherworldly glow travels through the chosen and shoots out towards you like a hurling ball of fire.
\<<run setup.choice("[[Take Nyx for yourself->Feed_The_Chosen_Final_Minotaur_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "normal")>>
You roar, feeling the burning corruptive flame rushing through you.
Your lust is exponentially rising, your body throbs and pulses with an untammed, animalistic urge to <span class="glitch nyx" data-text="GROW CORRUPT">fuck and spread</span>.
But as the minotaur stares at you in absolute devotion, you feel in control.
Your eyes lock on the minotaur, your loyal guide. His cock is raging hard and his knees shake with excitement.
He eagerly waits for your commands.
\<<run setup.choice("[[Make him yours->Feed_The_Chosen_Final_Minotaur_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "blushing")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
<span class="glitch nyx" data-text="SERVE">"Suck."</span>
The word thunders out in a voice that both is and is not your own. The single word is not a request, not even a command, but a fact.
Powerful lips wrap around your tool with an almost greedy fervour.
The hot, wet cavern of the minotaur's mouth caresses every inch of your heavy shaft as it pushes deeper and deeper into his maw.
His powerful bovine tongue drags across the underside of your shaft as it slides towards his throat.
\<<run setup.choice("[[Continue->Feed_The_Chosen_Final_Minotaur_5]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "blushing")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
Deeper and deeper your shaft slides.
Yet even when his mouth is large enough to swallow you several times over, he struggles to take you all in.
You could feel your girth stretching his lips and jaw to their absolute limit irrespective of actual size.
The tip of your massive cock pushes agains his throat and forces itself through.
\<<run setup.choice("[[Face fuck him->Feed_The_Chosen_Final_Minotaur_6]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "cumming")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
You grab at his horns and thrust against his face, forcing every last inch of your impossibly filling cock into his mouth.
His snout bumps against your groin, and you feel his hot breath blow across the sensitive skin as he struggles to breathe.
Slowly, but with increasing speed, you begin to buck over and over into his mouth as if he were nothing more than a sex toy for you to use to your heart's content.
To any other creature, those wicked horns are dangerous weapons, but to you, they are handlebars to use while giving him a good throat fucking.
\<<run setup.choice("[[Cum->Feed_The_Chosen_Final_Minotaur_7]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "cumming")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
You finally cum, and he doesn't even try to pull away. He pushes his face harder against your crotch.
Slow, powerful breaths create intense suction around your immense shaft as if he were trying to inhale the flesh.
You could hear the bobbing and gulping of his throat as he struggles to swallow down every spurt of cum.
Pulse after pulse of your orgasm surges into him, each one visibly distending his belly several inches larger.
But it wasn't just cum inflating the minotaur with each throb of your cock. For with your seed brings strength, power.
With it comes the blessings of a corrupted god.
\<<run setup.choice("[[Unleash your blessings->Feed_The_Chosen_Final_Minotaur_8]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "cumming")>>
\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
His body bulges obscenely with newfound power.
Dark purple veins spider-web out from his engorged but rapidly shrinking gut, and in an instant, his muscles more than double in size.
He falls down with a resounding crash as his legs shove themselves apart by the explosion of newfound meat forcing its way into his thigh muscles.
\<<run setup.choice("[[Continue->Feed_The_Chosen_Final_Minotaur_9]]");>>His whole body writhes on the ground before you as he rolls over onto his front, thickening and swelling in disproportionate spurts that barely could barely even out before starting up again.
But it isn't just his muscles that grow.
His body stretches out across the landscape at a frightening speed.
Dozens, then hundreds of feet of newfound height pile on top of his increasing musculature every passing second.
\<<run setup.choice("[[Continue->Feed_The_Chosen_Final_Minotaur_10]]");>>Soon trees and nearby hills bulldoze out of the way of his impossibly growing bulk.
His fists slam into the ground with enough force to crack deep open canyons in the landscape as he struggles to keep his body under control.
His hips raise and, without thinking about it, thrust his titanic shaft.
\<<run setup.choice("[[Continue->Feed_The_Chosen_Final_Minotaur_11]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
Like spearing deep into the planet's rocky flesh, his dick pounds its way into the landscape hard enough to shake the ground for miles.
A flood of pre explodes with enough volume to overflow the edges of the instantly-filled chasm.
His hips rise then slam down again as his cock surges abruptly larger even in proportion to the rest of his enormity.
But the third impact comes so much harder than the previous two. It isn't that the minotaur puts extra force into it; instead, you are the one thrusting.
An irresistible weight settles on the growing titan as you lay down atop him and thrust your way deep into his ass.
\<<run setup.choice("[[Continue->Feed_The_Chosen_Final_Minotaur_12]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
The thunderous groan escapes the minotaur's lips.
Arms as long as mountain ranges and fingers big enough to crush cities claw at the earth—the behemothian monster whimpers out incoherent, desperate moans.
The moans are muffled, then cut off as you grip the back of his head and shove the fledgling god's face into the dirt as you fuck him from behind.
To be so massive, so unstoppably powerful, and still put in his place makes the minotaur nearly cum on the spot.
Even now, as the beast grows beyond what any mortal could comprehend, beyond what any average mortal would consider a god unto themselves, the minotaur still knows his place beneath you.
As your warrior. As your weapon. As your fucktoy.
\<<run setup.choice("[[Breed him once more->Feed_The_Chosen_Final_Minotaur_13]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
\<<run setup.completeAchievement("Achievement_MemoriesOfTheMinotaur");>>
No matter how large he gets or how powerful he becomes, you are still superior.
Every thrust into the titan's backside is unstoppable. Every push back against you only succeeds in bringing you more pleasure.
Every grunt, growl, and groan declares superiority and dominance. A reminder that no matter how powerful he becomes, he would still be yours.
With a final thrust, you pin the minotaur to the land below. He, in turn, thrust deeper into the earth until the planet itself began to split apart.
With a thunderous roar that shakes the gods themselves, you cum a second time.
\<<run setup.choice("[[Continue->Feed_The_Chosen_Final_Minotaur_14]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
Combined, the force of your collective orgasms shatters reality itself. You utter one more command to your minion before bursting out of this mortal realm.
\<<run setup.choice("[[Awaken, Tiadane->Ending]]");>>\<<run setup.updateMinoLust()>>
<<include setup.getMinoTalkMenuPassage()>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "normal")>>
The minotaur is kneeling in a corner of the entrance.
He seems focused on keeping his own lust in check.
[[Ask what kind of monsters live here->Quest_MQ002_Manor_MainHall_TalkMinotaur_AskMonsters_Lust1]]
[[Ask about this castle->Quest_MQ002_Manor_MainHall_TalkMinotaur_AskCastle_Lust1]]
[[Ask why he is here->Quest_MQ002_Manor_MainHall_TalkMinotaur_AskWhyHere_Lust1]]
[[Ask how he is feeling->Quest_MQ002_Manor_MainHall_TalkMinotaur_AskFeeling_Lust1]]
\<<run setup.choice("[[Go Back->Quest_MQ002_Manor_MainHall]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "blushing")>>
"Such is the will of Nyx. My master has tasked me to serve it for as long as I can remember."
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_MainHall_TalkMinotaur]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "normal")>>
"I don't know much about them either."
He takes long steady breaths, as if to stop himself from thinking too much about this place.
"All I know is, the things that hide in this castle are born of Nyx's never ending hunger for pleasure and power."
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_MainHall_TalkMinotaur]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "normal")>>
"Right now it's a castle, but I've seen it as a manor and a palace. Its size seems to constantly shift too."
He looks around with a hint of curiosity in his eyes.
"Its ruler uses Nyx to shape reality around us. Their thoughts are ripples that Nyx strengthens into waves."
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_MainHall_TalkMinotaur]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "blushing")>>
"Nyx's presence weighs heavily on my mind, but it is my duty to be here for the one who can take its power."
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_MainHall_TalkMinotaur]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "blushing")>>
The minotaur is breathing heavily in a corner of the entrance.
His cock is constantly hard, and he has taken his armor off completely.
[[Ask how he is feeling->Quest_MQ002_Manor_MainHall_TalkMinotaur_AskFeeling_Lust2]]
[[Ask about the spawns of Nyx->Quest_MQ002_Manor_MainHall_TalkMinotaur_AskMonsters_Lust2]]
\<<run setup.choice("[[Go Back->Quest_MQ002_Manor_MainHall]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "happy")>>
"They carry so much corruption and lust... Who knows how they feel?"
He gropes his own cock and moans. Seems like he's lost in his own thoughts for now.
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_MainHall_TalkMinotaur]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "blushing")>>
"It's so warm here, and the light feels so good against my skin."
His cock throbs harder with every beat of his heart.
"But I have a duty to fulfill, my lust has to wait."
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_MainHall_TalkMinotaur]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "happy")>>
His gaze is desperate, his breathing is fast and constantly interupted by long moans.
A potent aura of corruption is pulsing from his muscular naked body.
[[Ask how he is feeling->Quest_MQ002_Manor_MainHall_TalkMinotaur_AskFeeling_Lust3]]
[[Ask about the spawns of Nyx->Quest_MQ002_Manor_MainHall_TalkMinotaur_AskMonsters_Lust3]]
\<<run setup.choice("[[Go Back->Quest_MQ002_Manor_MainHall]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "happy")>>
I've had one come here just before. The way it crawled on my cock, pushed itself inside me.
He grasps his cock with both hands starts licking it. His tongue seems longer than you remember.
"I've never felt anything this <span class="glitch nyx" data-text="MOOOOOOOORE">pleasurable~</span>"
\<<run setup.choice("[[Approach him->Quest_MQ002_Manor_MainHall_TalkMinotaur_Sex_1]]");>>
\<<run setup.choice("[[Stay back->Quest_MQ002_Manor_MainHall_TalkMinotaur]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "cumming")>>
"Gods... I could cum at any moment, paint this whole place with my seed. Everything here feels so good."
He grasps his balls and shivers.
"Especially those slithering spawns. I took a few of them in me, god it felt amazing. I feel them pleasure my balls, pumping bigger."
\<<run setup.choice("[[Approach him->Quest_MQ002_Manor_MainHall_TalkMinotaur_Sex_1]]");>>
\<<run setup.choice("[[Stay back->Quest_MQ002_Manor_MainHall_TalkMinotaur]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "happy")>>
The corruptive light burns your skin, makes your cocks pulse with thunderous blasts of pleasure that spreads all over your body.
His eyes gaze at you with need as he flexes his pecs and drools.
"I need this more than you can imagine." his eyes close and he pinches his nipples with both hands.
\<<run setup.choice("[[Grope his balls->Quest_MQ002_Manor_MainHall_TalkMinotaur_Sex_2]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "happy")>>
You can feels the spawns of Nyx pleasuring his balls from within, pumping them bigger than ever.
His cock throbs like an angry beast.
"Fuck me..."
He reaches over and kiss you. His tongue reaches out deep into your mouth and desperately coils against yours.
\<<run setup.choice("[[Return the kiss->Quest_MQ002_Manor_MainHall_TalkMinotaur_Sex_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "happy")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
You kiss back, join him in his infectious lust. He gives out a long, deep moan in response.
"Please, take me."
He turns around and bends over. The minotaur truly is a sight to behold. The hulking, massive beast moaning and begging you to breed him.
\<<run setup.choice("[[Fuck him->Quest_MQ002_Manor_MainHall_TalkMinotaur_Sex_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "cumming")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
He roars with pleasure as you thrust deep into him. His eyes glow bright enough to light up the whole room.
Screams of lust make the walls shake as your eyes begin to glow with Nyx's corrupted light. You feel it infest your thoughts, to make those worthy into lustful beasts of endless lust and power.
You grunts with pleasure, letting more of Nyx within your soul.
Stomping your feet downward, you crack the stone floor as you thrust deep into the minotaur's ass.
"Gaahhhh!!! Gods... YES!"
\<<run setup.choice("[[Fuck him harder->Quest_MQ002_Manor_MainHall_TalkMinotaur_Sex_5]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "cumming")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
He flexes his whole body for you, pressuring his glutes around your cock before thrusting himself deeper on your cock.
"Take me, cum in me. TAKE IT ALL!"
You growl with pleasure as the ground bellow crumbles and breaks.
\<<run setup.choice("[[Cum inside him->Quest_MQ002_Manor_MainHall_TalkMinotaur_Sex_6]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "cumming")>>
\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
With a thrust that would have broken lesser men, you force your pulsing cock balls deep and unleash the flood gates into him.
"Please, take the black sun for yourself! BECOME A GOD AND MAKE ME YOUR LOYAL SERVANT!"
Load after load of potent seed spurts inside him and oozes out, you press him closer to take it all, but it quickly pools under him from the sheer excess seeping out of his ass.
Your balls throb, they ache from the sheer amount they just unloaded, but the sheer lust built up within you makes them bulge and bloat with seed once more.
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_MainHall_TalkMinotaur_Sex_7]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "cumming")>>
You pull out and grin at the mess you've made. The monstrous minotaur pants and moans, his subsmissive instincts finally free for the both of you to enjoy.
\<<if $CharacterSheet_MQ002_Guard.quest.nyxPromise == false>>
\<<set $CharacterSheet_MQ002_Guard.quest.nyxPromise = true>>
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_MainHall_TalkMinotaur_Sex_Promise]]");>>
\<<else>>
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_MainHall_TalkMinotaur]]");>>
\<</if>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "happy")>>
You glance up at the windowed ceiling and reminisce on the words of the minotaur.
This power could be <span class="glitch nyx" data-text="ALL YOURS">yours...</span>
\<<run setup.applyCorruption($CharacterSheet_Player, 18)>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_PromiseOfServitude);>>
Δ: You gain 18 Corruption.
Δ: You gain the "Promise of Servitude" ability.
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_MainHall_TalkMinotaur]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "happy")>>
"This place has never been so active before. Your presence is awakenening the black sun."
His hands drift towards his balls as they throb and bulge. His cock hardens and he adjusts his legs to make room for its sheer bulk.
"There's a fire within you, and I can't get enough of it. Take me once more. Please... I need this!"
\<<run setup.choice("[[Approach him->Quest_MQ002_Manor_MainHall_TalkMinotaur_Sex_1]]");>>
\<<run setup.choice("[[Go Back->Quest_MQ002_Manor_MainHall]]");>>\<<if setup.MQ002_Manor_IsMassiveInManor($CharacterSheet_Player)>>
From your height, you can see what lies beyond the gate. A vast empty field with no end in sight.
\<<else>>
You stare <<if setup.MQ002_Manor_IsCorruptedInManor($CharacterSheet_Player)>>in fascination<<else>>with apparent unease<</if>> as the black light warps and darken the soft light of the torches besides the gate.
Every blade of grass that touches the invading glow shakes and grows slightly in size.
Soon they are blacker than the night surrounding you. They flail violently in all directions.
\<</if>>
\<<if setup.MQ002_Manor_IsCorruptedInManor($CharacterSheet_Player)>>
Your heart beats like a drum upon seeing the corruption you've just witnessed.
Who knows what it will do to you once you step through the gate?
\<<else>>
It feels like you are gazing at something from another world. One in which you do not belong...
\<</if>>
\<<run setup.choice("[[Fully Open the Gate->Quest_MQ002_MoveInsideGate_2]]");>>
\<<run setup.choice("[[Close it and Go Back->Quest_MQ002_Entrance_NoGuard]]");>>The old gate hard grinds along the corrupted soil.
Deep, cold fog seeps out and cuts your breath short.
The strange light inevitably covers you as you push the gate fully open.
\<<run setup.choice("[[Continue->Quest_MQ002_MoveInsideGate_3]]");>>You stand beyond the gate and feel the infectious lust of the black sun all over your body.
\<<if setup.MQ002_Manor_IsCorruptedInManor($CharacterSheet_Player)>>
Your corrupted body openly welcomes it...
Lust rushes inside you as you open yourself to its dark temptation.
\<<else>>
Warm tingles softly pierce your exposed limbs.
Even with the deep fog dimming it, you feel its influence seeping inside you.
Lustful images slowly appear in your thoughts.
\<</if>>
The a strange warmth brushes over your skin.
Moans resound in your mind as your cock throbs with need.
It is calling to you...
∇: You gain the "Touched by Nyx's Light" ability for as long as you stay in this realm.
\<<run setup.MQ002_GiveNyxLightAbility()>>
\<<set $CharacterSheet_Player.quest.knowsAboutNyx = true>>
\<<if $MQ002_LookedUpwards == undefined>>
\<<run setup.choice("[[Look Upwards->Quest_MQ002_MoveInsideGate_LookUpwards]]");>>
\<</if>>
\<<if $MQ002_LookedAround == undefined>>
\<<run setup.choice("[[Look Around You->Quest_MQ002_MoveInsideGate_LookAround]]");>>
\<<else>>
\<<run setup.choice("[[Go to the castle->Quest_MQ002_MoveInsideGate_3_GoToManor]]");>>
\<</if>>You look upwards...
You get a glance at what lies above, beyond the deep fog.
A black star burns brightly, reaching everything with its unholy light.
This glimpse is enough to make you grunt in pain, you instinctively close your eyes and look away.
Yet the fierceness of the black sun keeps burning inside your pupils. Like it has imprinted itself in your mind.
∇: You gain 7 points of Corruption.
\<<run setup.applyCorruption($CharacterSheet_Player, 7)>>
\<<set $MQ002_LookedUpwards = true>>
\<<run setup.choice("[[Continue->Quest_MQ002_MoveInsideGate_3]]");>>As your eyes burn from the strange corruptive light, you see the structure standing beyond the gate.
\<<set $MQ002_LookedAround = true>>
\<<run setup.choice("[[Continue->Quest_MQ002_MoveInsideGate_3]]");>>From under the gaze of the black star, you push forward to the large edifice.
As you approach, it becomes clear that the structure is a large castle.
What is even more striking than its formidable stature is its condition.
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_Entrance_2]]");>>\<<if $CharacterSheet_MQ002_Guard.quest.movedToCastle == false>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_Guard, "normal")>>
\<</if>>
It looks like the structure was built recently, with otherworldly jet black stones more fabulous than any material you've seen in the Barrens.
Golden glyphs and markings curl up and rise along the contour of its silhouette.
\<<if setup.MQ002_Manor_HasBrokenPartOfManor()>>
Yet the previously imposing structure now shows damage beyond repair.
\<</if>>
\<<if $WorldState.cultManor.mainHall.isBroken>>
You walk along an unusually clean cobblestone path to reach the destroyed entrance of the castle.
\<<else>>
You walk along an unusually clean cobblestone path to reach the castle's entrance.
\<</if>>
\<<if $CharacterSheet_MQ002_Guard.quest.movedToCastle == false>>
\<<set $CharacterSheet_MQ002_Guard.quest.movedToCastle = true>>
The minotaur silently takes the lead and enters the castle.
\<</if>>
\<<if setup.MQ002_Manor_IsMassiveInManor($CharacterSheet_Player)>>
<<include Quest_MQ002_Manor_Entrance_Massive>>
\<<else>>
<<include Quest_MQ002_Manor_Entrance_Normal>>
\<</if>>\<<run setup.choice("[[Enter the castle->Quest_MQ002_Manor_MainHall]]");>>
\<<run setup.choice("[[Go Back to the Gate->Quest_MQ002_Entrance_NoGuard]]");>>\<<if $WorldState.cultManor.mainHall.isBroken>>
\<<run setup.choice("[[Enter the castle->Quest_MQ002_Manor_MainHall]]");>>
\<<else>>
The door is too small for you to get in.
There's really only one way to get inside with your current size.
\<<run setup.choice("[[Barge In->Quest_MQ002_Manor_Entrance_Massive_BargeIn]]");>>
\<</if>>
\<<run setup.choice("[[Go Back to the Gate->Quest_MQ002_Entrance_NoGuard]]");>>\<<if setup.getStatValue($CharacterSheet_Player, "corruption") < 50>>
You pull the door off its frame with relative ease, but trying to get by causing as little damage as possible is not so easy.
\<<else>>
You grin and rip the door off its frame like it's nothing. Seeing how small the castle is to you makes your cock throb...
\<</if>>
The whole face of the structure cracks and groans as you lift the roof off like it's a dollhouse.
The foundation of black stones and wood shatters under your might.
\<<run setup.choice("[[Enter the castle->Quest_MQ002_Manor_MainHall]]");>>The door to the room is plain and unassuming. As you reach for the handle, you feel the castle shift and change.
Wood grain warps and swirls, and the metal handle turns to liquid.
The door opens of its own accord, revealing a shifting, changing landscape beyond. The floor undulates and the walls move like ripples in water.
What lies beyond is in a state of flux, and it's impossible to tell what will happen next.
<<print setup.getNextManorDestination()>>
\<<run setup.choice("[[Go Back->Quest_MQ002_Manor_MainHall]]");>>As the door opens, the room seems to grow larger and the walls move further apart.
The ceiling becomes higher and darker, and the floor turns to cold stone.
The air is thick with tension and evil, but it is familiar as well.
You recognize the main hall of the castle taking shape before your eyes.
\<<run setup.choice("[[Go Back->Quest_MQ002_Manor_MainHall]]");>>\<<set $CharacterSheet_MQ002_NyxParasite.info.height = setup.getStatValue($CharacterSheet_Player, "cock") * 3>>
\<<if setup.MQ002_Manor_RandomEncounter()>>\
<<include Quest_MQ002_Manor_WestWing_Path_SeeParasite>>
\<<else>>
\<<if $WorldState.cultManor.westWingHallway.isBroken>>
Your destruction is apparent, the previously glamourous hall is now completely destroyed by your gigantic form.
\<<run setup.choice("[[Move to the Next Wing->$MQ002_Manor_Destination]]");>>
\<<elseif setup.MQ002_Manor_IsMassiveInManor($CharacterSheet_Player)>>
Your gigantic form cannot be contained by the hallway leading to the next wing.
With every step, stones and wood flies out in a destructive display of sheer size and power.
\<<set $WorldState.cultManor.westWingHallway.isBroken = true>>
\<<run setup.choice("[[Barge in->$MQ002_Manor_Destination]]");>>
\<<else>>
The hallway is eerily quiet.
Your footsteps echo along the large corridor until you reach a single door at the end.
\<<run setup.choice("[[Open the door->$MQ002_Manor_Destination]]");>>
\<</if>>
\<</if>>The stand of the west wing's living room is impressive. You assume it could host more than two dozen guests.
Yet some things strike you as odd. The room is empty of any sign of being lived-in.
Other than the slow waving of curtains in front of half-open windows, it seems frozen in time.
After some examination, the only thing of interest here is a door leading further west.
\<<run setup.choice("[[Enter the Room->Quest_MQ002_Manor_DragonRoom]]");>>
\<<set $MQ002_Manor_Destination = "Quest_MQ002_Manor_MainHall">>
\<<run setup.choice("[[Go Back to the Main Hall->Quest_MQ002_Manor_WestWing_Path]]");>><<include setup.getNextNarativeEventPassage(setup.StorySheet_MQ002_DragonMonk.encounterPassages)>>You carefully enter the next room, and instantly recognize the place where you encountered the aggressive Dragonborn.
\<<if $CharacterSheet_MQ002_DragonMonk.quest.infected == true || $CharacterSheet_MQ002_DragonMonk.quest.beaten == true>>
It is strangely quiet.
\<<else>>
He notices you coming in.
\<</if>>
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_DragonRoom]]");>>\<<if $CharacterSheet_MQ002_DragonMonk.quest.infected == true>>
The master bedroom is empty but the smell of Drenth's cum still lingers in the air...
\<<run setup.choice("[[Leave->Quest_MQ002_Manor_DragonRoom_Leave]]");>>
\<<elseif $CharacterSheet_MQ002_DragonMonk.quest.beaten == true>>
The master bedroom is empty...
\<<run setup.choice("[[Leave->Quest_MQ002_Manor_DragonRoom_Leave]]");>>
\<<elseif $CharacterSheet_MQ002_DragonMonk.quest.threatened == true>>
\<<include Quest_MQ002_Manor_DragonRoom_Threatened>>
\<<else>>
\<<include Quest_MQ002_Manor_DragonRoom_Safe>>
\<</if>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "angry")>>
\<<include Quest_MQ002_Manor_DragonRoom_ParasiteHint>>
"Why won't you just leave this cursed place behind?"
He jumps back and raises his arms into an attack stance.
"Leave me be or fight..."
\<<run setup.choice("[[Fight him->Quest_MQ002_Manor_DragonRoom_Fight]]");>>
\<<run setup.choice("[[Leave->Quest_MQ002_Manor_DragonRoom_Leave]]");>>\<<if $CharacterSheet_Player.quest.nyxParasiteInfections <= 0>>
The dragonborn hunches over slightly.
He seems in pain, but there doesn't seem to be any visible wounds on his body.
\<<else>>
The dragonborn hunches over slightly.
He seems in pain, a pain you recognize all too well.
You can see his veins pulsating, his expression of pain mixed with arousal, the subtle bulge throbbing along his tunic.
It feels like spawns of Nyx are within his body as well. Your own spawns press on your balls and prostate excitedly.
\<</if>>\<<if setup.MQ002_HasIntactOath()>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "angry")>>
\<<else>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "blushing")>>
\<</if>>
\<<include Quest_MQ002_Manor_DragonRoom_ParasiteHint>>
\<<if $CharacterSheet_Player.quest.nyxParasiteInfections > 0 && $CharacterSheet_MQ002_DragonMonk.quest.askedWhoAreYou>>
<span class="glitch" data-text="Spread your spawns...">[[Spread your spawns...->Quest_MQ002_Manor_DragonRoom_InfestHim]]</span>
\<<else>>
[[Ask about him->Quest_MQ002_Manor_DragonRoom_WhoAreYou]]
\<</if>>
\
\<<if $CharacterSheet_Player.quest.nyxParasiteInfections > 0 && $CharacterSheet_MQ002_DragonMonk.quest.askedWhyAreYouHere>>
<span class="glitch" data-text="Fill him with spawns...">[[Fill him with spawns...->Quest_MQ002_Manor_DragonRoom_InfestHim]]</span>
\<<elseif $CharacterSheet_MQ002_DragonMonk.quest.askedWhoAreYou>>
[[Ask why he is here->Quest_MQ002_Manor_DragonRoom_WhyAreYouHere]]
\<</if>>
\
\<<if $CharacterSheet_Player.quest.nyxParasiteInfections > 0 && $CharacterSheet_MQ002_DragonMonk.quest.askedLookingForSomeone>>
<span class="glitch" data-text="Let your spawns take him over...">[[Let your spawns take him over...->Quest_MQ002_Manor_DragonRoom_InfestHim]]</span>
\<<elseif $CharacterSheet_MQ002_DragonMonk.quest.askedWhyAreYouHere && !$CharacterSheet_MQ002_DragonMonk.quest.askedLookingForSomeone>>
[[Tell him that you're looking for someone->Quest_MQ002_Manor_DragonRoom_ImLookingForSomeone]]
\<</if>>
\<<if $CharacterSheet_Player.quest.nyxParasiteInfections > 0>>
[[Infest Him Further...->Quest_MQ002_Manor_DragonRoom_InfestHim]]
\<</if>>
\<<run setup.choice("[[Fight Him->Quest_MQ002_Manor_DragonRoom_Fight]]");>>
\<<run setup.choice("[[Leave->Quest_MQ002_Manor_DragonRoom_Leave]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "blushing")>>
\<<if setup.MQ002_Manor_IsMassiveInManor($CharacterSheet_Player)>>
\You tell him that you're not here to fight, but your massive body is intimidating nevertheless.
\<<else>>
\You tell him that you're not here to fight, but he seems troubled nevertheless.
\<</if>>
"G-Gugh... What do you want from me?" He mutters under heavy breaths as he presses his hand on his forehead.
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_DragonRoom_Safe]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "blushing")>>
The back of the dragonborn slides down the base of the bedframe until he hits the floor with an audible thud.
"It's a long story..." He says, his lower body gets engulfed by the layer of fog covering the floor.
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_DragonRoom_WhyAreYouHere_2_1]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "angry")>>
"I was sent here to get rid of the master of this realm, a vile monster of a dragonborn named Apothus."
Just saying the name seems to disgust him, like there is poison in the word itself.
"I came here and confronted him for his crimes against our values, hoping he could be reasoned with.
But his greed for power blinded him, ever since he came here and gazed upon the Black Sun, he was lost to the our tribe." He sighs, those memories look heavy on his soul.
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_DragonRoom_WhyAreYouHere_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "angry")>>
"And so we fought. I'd beat him without mercy, and wait for him to show his pathetic self to the gate of Nyx's once more.
He'd show up within a few days, always more corrupted, more muscular and more monstrous." His previously proud tone suddenly drops.
"It reached a point where I couldn't stop him. He went back to Nyx and gave himself to its corruption.
He... Changed. Became an abomination, one who spawned horrors and beasts to spread depravity across the Barrens." His voice grows quieter.
"I had to put a stop to this, so for days, I tried to fight my way in."
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_DragonRoom_WhyAreYouHere_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "angry")>>
"But one day, rumours of an important ritual managed to reach me; this was my chance to strike.
I managed to sneak in, and as I thought, these cursed halls were empty. Every member of this horrible cult was in Apothus's personal realm.
And so... I made a ritual of my own, one to seal off their only exit." He grinned through the pain in triumph.
"Only I can ever free these monsters from their prison now... As long as I keep my oath, they can't escape."
\<<set $CharacterSheet_MQ002_DragonMonk.quest.askedWhyAreYouHere = true>>
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_DragonRoom]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "blushing")>>
He begins to calm down a little.
"The name's Drenth, Drenth of Kaldir" He pauses.
"Look, I don't know why you're here, but... There's evil sealed within these halls. And even with its power contained, it still sends monsters here, hoping they'll corrupt us into abominations like them."
He sighs deeply, dispersing the fog somewhat.
"Maybe it would be best for you to leave."
\<<set $CharacterSheet_MQ002_DragonMonk.quest.askedWhoAreYou = true>>
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_DragonRoom]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "blushing")>>
"And who could this person be? We're the only beings with an ounce of sanity remaining here..."
You describe him Cray's appearance down to the most minute detail, down to the scars laid across his sturdy build.
Everyone in the Golden Bastion knows stories about him, of how hundreds of expeditions have turned him into the mountain of a man he is today.
Of how even the most dangerous beasts would flee upon seeing the bright blue eyes behind his full iron helmet.
Drenth stayed silent, just for long enough to make it worrying.
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_DragonRoom_ImLookingForSomeone_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "blushing")>>
"This ritual I mentioned... Your friend was there."
Your eyes widen.
"And from what I heard of what this ritual was meant to be, he was a centrepiece in it." He pauses slightly.
"This cult looked for a warrior who could become a host to Nyx, the Black Sun itself.
And from what I saw, it did not look like he was here against his will either..."
Drenth cuts himself short.
"Look, no matter what happened to him, you can assume he's gone. Keeping all of them sealed here is the only way to keep the world safe..."
[[Let him know that you need to save him->Quest_MQ002_Manor_DragonRoom_ImLookingForSomeone_SaveHim]]
[[Give up->Quest_MQ002_Manor_DragonRoom_ImLookingForSomeone_GiveUp]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "angry")>>
You firmly believe that Cray can still be saved, but Drenth does not look convinced.
"Absolutely not."
Drenth shakes his head, a hint of anger rises within him.
"I did not spend this long protecting this seal only to break it. This is a risk I just can't take, do you even know how dangerous these monsters are?"
[[Tell him that you can take them on->Quest_MQ002_Manor_DragonRoom_ImLookingForSomeone_SaveHim_2]]
[[Agree with him->Quest_MQ002_Manor_DragonRoom_ImLookingForSomeone_GiveUp]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "blushing")>>
Drenth glances at you, examining your body. He tries to hide how impressed he is...
"Even if you did, some of them could escape"
His tone weakens.
"Why would we ever take that risk?" He says as his voice lowers, pleading you to not do this.
[[Tell him to reactivate your seal once you enter their realm->Quest_MQ002_Manor_DragonRoom_ImLookingForSomeone_SaveHim_3]]
[[Stop pressing->Quest_MQ002_Manor_DragonRoom_ImLookingForSomeone_GiveUp]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "angry")>>
"You're insane... This would mean sealing you with them forever..." He sighs.
A long silence seeps in as the dragonborn ponders. He seems to be looking at his arm.
"I hate myself for offering you this, but I don't think you can be reasoned with."
Drenth unsheathes a dagger and brings it to his hand.
"Among our tribe, an oath is more powerful than any kind of magic. By promising to protect our virtues, you could pass the blockade."
He looks at you, the strength of his beliefs burning bright in his eyes.
[[Make an oath with Drenth->Quest_MQ002_Manor_DragonRoom_ImLookingForSomeone_MakeOath]]
[[Refuse his proposal->Quest_MQ002_Manor_DragonRoom_ImLookingForSomeone_RefuseOath]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "blushing")>>
"For as long as you strive to fight Nyx's corruption, you shall be allowed through my seals."
He slashes his own hand, blood quickly gushing from the open wound.
"For as long as your cause is virtuous, I will respect it."
You present your hand to him and flinches as the dagger enters your flesh.
He then presses his scaled hand on yours, his cold blood quickly pools with your own.
"Through the chain of our oath, we will remain strong, free from temptation."
[[Hold his hand tightly->Quest_MQ002_Manor_DragonRoom_ImLookingForSomeone_MakeOath_2]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "blushing")>>
You feel a burning sensation rise from your palm.
"Don't let go..." Drenth says firmly.
It feels like keeping your hand over fire, you clench your teeth as the pain suddenly moves.
Like molten lava coursing through a trench, the pain spreads up to your wrist.
[[Continue->Quest_MQ002_Manor_DragonRoom_ImLookingForSomeone_MakeOath_3]]You can hear your flesh sizzling as black marks slowly form around your hands.
They swirl, burning every inch of skin they come upon, and spread outwards toward your arm.
You breathe faster, the pain is becoming too hard to bear as the marks circle up towards your bicep.
Then they slow down; they revolve around your arm, slow enough for you to discern what they represent.
They form into series of black chains that coil around your bicep.
[[Continue->Quest_MQ002_Manor_DragonRoom_ImLookingForSomeone_MakeOath_4]]<<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "blushing")>>
You look up to Drenth to see the same tattoo locking on his arm as well, only his chain is just the newest among countless others.
He simply nods as he lets go of your hand. The burning sensation slowly fades, but you feel an unnatural tightness around the limb.
"The entrance to Apothus's realm is the golden monolith at the entrance of this cursed manor. Just know that our oath is sacred, breaking it is not an option."
He then lets his hand drop to his side. This whole ordeal seems to have taken a toll on him.
\<<set $CharacterSheet_MQ002_DragonMonk.quest.askedLookingForSomeone = true>>
\<<set $CharacterSheet_Player.quest.oaths.drenth = setup.Oath.ACTIVE>>
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_Oath_Containment);>>
\<<print setup.clearWestWingRoom("WestWing_DrenthRoom")>>
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_DragonRoom]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "blushing")>>
"I must say, I was hoping you'd refuse. Please leave me be now, this is the only way to make sure their evil doesn't spread."
He gives you an empathic look before hunching back in pain again.
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_DragonRoom]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "blushing")>>
"I know it's hard, but this is the only way to make sure their evil doesn't spread."
He gives you an empathic look before hunching back in pain again.
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_DragonRoom]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "almostCumming")>>
Something within you throbs with need. It's your spawns, they aggressively shake and swirl within your balls.
Gallons of aphrodisiac course within you as they respond to the sweet smell of virtuousness.
You moan as you feel your cock and balls expand.
They pulsate so hard it looks like they are flexing, your breath quickens as your heart beats faster and faster.
The dragonborn looks on with despair until he suddenly doubles over.
\<<run setup.choice("[[Feel his spawns Awaken->Quest_MQ002_Manor_DragonRoom_InfestHim_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "almostCumming")>>
"Ghhhh... No... Not now!" He yells as his cups his own bulge frantically.
But soon even he can't resist the potent nectar of his own spawns.
He moans, quietly at first, until he unbuttons his tunic in a panic.
"U-uhh... HHHhh... Fo-forgive me, gods... GAHHHhhh!"
\<<run setup.choice("[[Gaze at his Growing Cock->Quest_MQ002_Manor_DragonRoom_InfestHim_3]]");>>\<<set $CharacterSheet_Player.quest.naked = true>>
<<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "almostCumming")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
He fails to remove his pants in time before his cock bursts out of them.
<<print setup.processFlavours($CharacterSheet_MQ002_DragonMonk, "Your mouth waters at the sight of the @[all|cocks|noverb].")>>
It's already glistening with pre, it looks... Perfect.
You come closer as your balls expand even more...
The dragonborn looks at you in a mix of confusion and arousal, he tries to speak, but only moans come out of his mouth.
\<<run setup.choice("[[Ease him into it->Quest_MQ002_Manor_DragonRoom_InfestHim_4]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "almostCumming")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
A long deep moan escapes him as you utter these words.
<<print setup.processFlavours($CharacterSheet_Player, "He gives himself away to your @[all|pecs|noverb] and @[all|abdominals|noverb].")>>
You caress the back of his head and then kiss him deeply.
<<print setup.processFlavours($CharacterSheet_Player, "Your @[all|tongues|one=thrusts~more=thrust] deep into his throat, his lust is intoxicating.")>>
<<print setup.processFlavours($CharacterSheet_MQ002_DragonMonk, "Just like yours, his @[all|cocks|one=throbs~more=throb] aggressively.")>>
Through the pulses you feel along your fingers, you know now that not only blood travels through those veins.
<<print setup.processFlavours($CharacterSheet_Player, "The dragonborn stares at your @[all|cocks|noverb], he marvels at the size and girth.")>>
"Please... I... I..." He mutters.
\<<run setup.choice("[[Rub your cock on him->Quest_MQ002_Manor_DragonRoom_InfestHim_5]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "cumming")>>
<<print setup.processFlavours($CharacterSheet_Player, "You rub your @[all|cocks|noverb] on his abs, his moans extend, grow more profound.")>>
You present your <<print setup.processFlavours($CharacterSheet_Player, "@[all|cocks|noverb]")>> to him.
He draws his head to the tip of <<print setup.processFlavours($CharacterSheet_Player, "@[1|cocks|noverb]")>>, his whole body shaking in utter need. He kisses it softly, just enough to have a taste.
A small amount of pre touches his tongue, he can feel them, their essence in your seed.
He wants more...
\<<run setup.choice("[[Give him more...->Quest_MQ002_Manor_DragonRoom_InfestHim_6]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "cumming")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
His tongue drenches your glans, he tastes every inch before taking it all in. You feel him pushing down your slit, reaching down toward his prize.
He cups your <<print setup.processFlavours($CharacterSheet_Player, "@[all|balls|noverb]")>>, feeling the spawns inside, caressing them.
"HHNNnnnn..."
You feel them respond, they course through your balls and slither up towards your <<print setup.processFlavours($CharacterSheet_Player, "@[all|cocks|noverb]")>>.
The feeling is more than orgasmic. You feel complete, like spreading the spawns is your reason for existing.
"T-Take me..."
The dragonborn fully gives in.
He can feel them bulging along your shaft, he sucks like his life depends on it, his tongue reaching deep within your cock.
\<<run setup.choice("[[Let the spawns out->Quest_MQ002_Manor_DragonRoom_InfestHim_7]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "cumming")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
You feel them rising up, inch by inch as your <<print setup.processFlavours($CharacterSheet_Player, "@[all|teeths|noverb]")>> clench. The pressure keeps building, his tongue reaches deeper.
He gazes at you, with a deranged arousal burning in his eyes. His slurping moans grow louder and louder as he feels small spawns moving along your veins.
And finally, you feel it coming. You pull his head in, as deep as his body allows it, and you roar.
You roar as an all-embracing orgasm breaks out. Your <<print setup.processFlavours($CharacterSheet_Player, "@[all|churning|balls| one=throbs~more=throb]")>> as liters of cum pumps out of you.
<<print setup.processFlavours($CharacterSheet_Player, "The dragonborn unleashes a muffled roar himself as his load shoots up your @[all|abdominals|noverb] and pools under your @[all|pecs|noverb].")>>
Your head thrashes back, only for another load to shoot out, making you roar even more passionately.
And then you feel it. Something monstrous moving along your shaft, your urethra widens more and more...
The dragonborn grins. He caresses the base, pressures it to keep moving. Every inch it travels shocks you with inhuman pleasure.
Your roars turn into ecstatic moans.
You moan and moan as it keeps slithering up to your slit. The dragonborn pulls back and grins madly.
A large spawn shaped like a <<print setup.getRaceName($CharacterSheet_Player)>>'s cock stretches your slit to its limit. It seems to have evolved with the time it passed inside you.
"Fuck... Yessssss..." The dragon moans.
\<<run setup.choice("[[Infest him Further...->Quest_MQ002_Manor_DragonRoom_InfestHim_8]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "unique")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
His mind is already made up, he opens his mouth and rolls out his tongue, licking his lips sensually.
You scream in pleasure as your spawn pulls itself out of you.
It slithers like a snake towards the dragon's open mouth and immerses itself in.
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_DragonRoom_InfestHim_8_1]]");>><<print setup.displayEncounterImage($CharacterSheet_MQ002_DragonMonk.info.pictureCorrupt)>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
His eyes roll in the back of his head as pleasure overwhelms him, he cums once again.
Thick white creamy seed full of his own spawns bursts onto your <<print setup.processFlavours($CharacterSheet_Player, " @[all|pecs|noverb]")>> as the monster fully enters him.
"Ahhhhhh... This feels amazing..." He moans as he attempts to catch his breath.
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_DragonRoom_InfestHim_8_2]]");>><<print setup.displayEncounterImage($CharacterSheet_MQ002_DragonMonk.info.pictureCorrupt)>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
"Hmmm... Haaahahahaaha... YESSSS..." The dragonborn laughs madly as his right arm suddenly starts glowing.
A fiery light fills the room as he tears off his tunic to ribbons.
Your eyes widen as you see the source of this burning light.
Numerous tattoos, all of them resembling chains, burn the dragonborn's skin. Like they are made of molten lava.
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_DragonRoom_InfestHim_8_3]]");>><<print setup.displayEncounterImage($CharacterSheet_MQ002_DragonMonk.info.pictureCorrupt)>>
\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
"Feels so good to give in..." He exclaims as his tattoos break, all at the same time. Each link of every chain burst into fragments of ink under his skin.
"To finally be free."
He peers at you, deep into your eyes, no longer is he tired or in pain. He looks ready to bring the world its knees.
"I feel so alive... And it's all thanks to you."
\<<run setup.breakOath("drenth")>>
\<<run setup.choice("[[Kiss him wildly->Quest_MQ002_Manor_DragonRoom_InfestHim_10]]");>><<print setup.displayEncounterImage($CharacterSheet_MQ002_DragonMonk.info.pictureCorrupt)>>
You both pull eachother into a deep, messy kiss. Your <<print setup.processFlavours($CharacterSheet_Player, " @[all|tongues|one=wrestles~more=wrestle]")>> his own as you cup each others balls lovingly.
He then pushes back and snickers.
"With all my oaths broken," He trails his broken tattoos with his fingers. "The evils of this place really have nothing to stop them anymore..."
He looks affected by this, but at the same time. It also feels like these aren't his concerns anymore.
He cups his balls once more while fixating your own.
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_DragonRoom_InfestHim_11]]");>><<print setup.displayEncounterImage($CharacterSheet_MQ002_DragonMonk.info.pictureCorrupt)>>
"The monolith at the entrance, this is where the leader of this cult lies." A grin slowly rises across his mouth.
"You look strong enough to take them on. Please, get rid of their leader for me, for all the time he made me waste in this rotten hell."
He stands up, giving you one last look before heading to the door.
"I'll be seeing you around, the Barrens is a small place after all..."
As his smile grows, two tongues roll down. They are thicker and longer than ever before.
"And now that I'm free, I have endless of pleasure ahead of me."
\<<run setup.changeLimbsNumber($CharacterSheet_MQ002_DragonMonk,"tongues", 2, setup.mod.ATLEAST)>>
\<<set $CharacterSheet_MQ002_DragonMonk.quest.infected = true>>
\<<print setup.clearWestWingRoom("WestWing_DrenthRoom")>>
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_DragonRoom]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "angry")>>
"I should have known you were just another monster."
He jumps back and raises his arms into an attack stance.
"This is your last warning, leave me be or fight..."
\<<set $CharacterSheet_MQ002_DragonMonk.quest.threatened = true>>
\<<run setup.choice("[[Fight Him->FightLogic][$Encounter_Target = $CharacterSheet_MQ002_DragonMonk]]");>>
\<<run setup.choice("[[Leave->Quest_MQ002_Manor_DragonRoom_Leave]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
The massive door at the end of the bedroom shakes and pulses as you approach, as if what lies beyond shifts and warps to better suit your current self.
<<print setup.getNextManorDestination()>>\<<set $CharacterSheet_MQ002_DragonMonk.quest.available_encounterPassages_firstTime = false>>\
<<include WestWing_DrenthRoom_BreakRoof>>
The copper-colored floor is swarmed by fog.
The only things not engulfed in it are the grand bed at the center of the room and a person beside its base.
Sitting flat with his head looking down. The bright blue scales of his arms shine through the fog of the room.
\<<run setup.choice("[[Continue->WestWing_DrenthRoom_FirstTime_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "angry")>>
He suddenly lifts his head up, as if he had just awoken from a nightmare.
His slitted, draconic eyes meet with yours, and he pulls back slightly.
"Who are you?" He says with a cracking voice as he stands on his clawed, scaly feet.
He looks very nervous, but his movement is graceful and precise. His long grey tunic lands upon the thick layer of fog.
Based on his clothing and posture, he looks like a monk of some kind.
\<<run setup.choice("[[Attempt to Reassure Him->Quest_MQ002_Manor_DragonRoom_Reassure]]");>>
\<<run setup.choice("[[Fight Him->Quest_MQ002_Manor_DragonRoom_Fight]]");>>\<<set $CharacterSheet_MQ002_DragonMonk.quest.available_encounterPassages_firstTime = false>>\
<<include WestWing_DrenthRoom_BreakRoof>>
Hanging on the far wall is a massive, detailed painting of a panther-shaped Lost.
The detail of their musculature is exceptionally elaborate, making their muscles appear to bulge and strain against the skin and fur containing them as if the image itself were a living thing.
Drool drips from their chin as their bright yellow-painted eyes hungrily stare out into the empty room as if waiting for someone willing to satiate their lust.
The smell of freshly spilled seed hits you as you step in.
\<<run setup.choice("[[Continue->WestWing_DrenthRoom_FirstTime_Came_2]]");>>The copper-colored floor is swarmed by fog.
The only things not engulfed in it are the grand bed at the center of the room and a person beside its base.
Sitting flat with his head looking down. The bright blue scales of his arms shine through the fog of the room.
\<<run setup.choice("[[Continue->WestWing_DrenthRoom_FirstTime_Came_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "blushing")>>
He suddenly lifts his head up, as if he had just awoken from a nightmare.
His slitted, draconic eyes meet with yours, and he freezes.
"I... uh." He says with a cracking voice as he stands on his clawed, scaly feet.
He looks slightly nervous, but his movement is graceful and precise. His long grey tunic lands upon the thick layer of fog.
Based on his clothing and posture, he looks like a monk of some kind.
You feel like you recognize his voice.
\<<run setup.choice("[[Attempt to Reassure Him->Quest_MQ002_Manor_DragonRoom_Reassure]]");>>
\<<run setup.choice("[[Fight Him->Quest_MQ002_Manor_DragonRoom_Fight]]");>>\<<set $CharacterSheet_MQ002_DragonMonk.quest.available_encounterPassages_firstTime = false>>\
<<include WestWing_DrenthRoom_BreakRoof>>
Hanging on the far wall is a massive, detailed painting of a panther-shaped Lost.
The detail of their musculature is exceptionally elaborate, making their muscles appear to bulge and strain against the skin and fur containing them as if the image itself were a living thing.
Drool drips from their chin as their bright yellow-painted eyes hungrily stare out into the empty room as if waiting for someone willing to satiate their lust.
You are basked in the smell of freshly released spawns of Nyx.
\<<run setup.choice("[[Continue->WestWing_DrenthRoom_FirstTime_Infected_2]]");>>The copper-colored floor is swarmed by fog.
The only things not engulfed in it are the grand bed at the center of the room and a person beside its base.
Sitting flat with his head looking down. The bright blue scales of his arms shine through the fog of the room.
\<<run setup.choice("[[Continue->WestWing_DrenthRoom_FirstTime_Infected_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_DragonMonk, "cumming")>>
He suddenly lifts his head up, as if he had just woken.
His slitted, draconic eyes meet with yours, and he freezes.
"Hmmmm..." He says with a deep, monstrous voice as he stands on his clawed, scaly feet.
"You should keep your distance, I feel like I could turn at any moment."
He looks slightly nervous, but his movement is graceful and precise. His long grey tunic lands upon the thick layer of fog.
Based on his clothing and posture, he looks like a monk of some kind.
You feel the spawns within him, they urge you to corrupt him once more.
\<<run setup.choice("[[Attempt to Reassure Him->Quest_MQ002_Manor_DragonRoom_Reassure]]");>>
\<<run setup.choice("[[Fight Him->Quest_MQ002_Manor_DragonRoom_Fight]]");>>\<<if setup.MQ002_Manor_IsMassiveInManor($CharacterSheet_Player)>>
The structure crumbles, and the thunderous sound of wood shattering under your massive body roll across the castle once again.
You tear off parts of the roof and see what lies within.
\<<set $WorldState.cultManor.dragonRoom.isBroken = true>>
\<</if>>\<<if setup.MQ002_Manor_IsMassiveInManor($CharacterSheet_Player)>>
As you walk along the broken hallway, you hear the familiar sound of a portal opening, the same as the one you've heard countless times after being reborn.
Staring down, you see the strange dark light condense further down the hall.
Something heavy pushes through to it, causing the whole structure to shake until it breaks open.
\<<else>>
As you walk along the hallway, something catches your attention.
A thick liquid is dripping from the ceiling.
You look upwards and see a black spot grows and spread; it seems like the whole thing is about to cave in from whatever is up there.
After you quickly step back, it happens. Dust flies everywhere as something falls in front of you.
You can see it slithering behind the dust.
\<</if>>
A featureless, black snake-like body prods through. A large eye stares directly at you from where his head would have been.
It is surrounded by what looks like black dripping leaves, each of them gilstening with the otherworldly glow of Nyx's light.
\<<run setup.choice("[[Continue->Quest_MQ002_Manor_WestWing_Path_SeeParasite_2]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "purple")>>
Finally, it crawls until its <<print setup.getLength(setup.getStatValue($CharacterSheet_MQ002_NyxParasite, "height"))>> long body is fully exposed, its attention is completely focused on you...
\<<run setup.choice("[[Defend Yourself->FightLogic][$Encounter_Target = $CharacterSheet_MQ002_NyxParasite]]");>>At first glance, it would seem to be an empty room that had yet to be used.
However, closer inspection reveals a small latch opposite the entrance connected to a barely visible circular seam in the wall itself.
\<<run setup.choice("[[Pull the latch->WestWing_GloryHole_2]]")>>
\<<run setup.choice("[[Leave->WestWing_GloryHole_Leave]]")>><<include setup.getNextNarativeEventPassage(setup.StorySheet_MQ002_DragonMonk.gloryHoleStartPassage)>>The latch makes a barely audible click as its well-oiled mechanism pushes against something inside the wall.
An instant later, a large circular section of the wall pops out towards you, revealing an opening into the adjacent room.
But there is no one on the other side.
\<<run setup.choice("[[Leave->WestWing_GloryHole_Leave]]")>>The latch makes a barely audible click as its well-oiled mechanism pushes against something inside the wall.
An instant later, a large circular section of the wall pops out towards you, revealing an opening into the adjacent room.
You can barely make out the sounds of someone, or something, moving around and muttering to themselves.
\<<if $CharacterSheet_MQ002_DragonMonk.quest.met == true>>
The voice is familiar; you have definitely heard it before.
\<</if>>
\<<run setup.choice("[[Listen carefully->WestWing_GloryHole_3]]")>>The sound of footsteps can be faintly heard from the other side. A soft groan slips out.
"Come on big guy, show me what you got"
\<<run setup.choice("[[Do it->WestWing_GloryHole_4]]")>>
\<<run setup.choice("[[Leave->WestWing_GloryHole_Leave]]")>>The urge is too overwhelming to resist.
\<<if setup.MQ002_Manor_IsGiganticInManor($CharacterSheet_Player)>>
Despite the hole being designed for something much larger than the average person you still are forced to get down on your knees to line yourself up with it.
\<<elseif setup.MQ002_Manor_IsMassiveInManor($CharacterSheet_Player)>>
It's no effort to line yourself up with the hole despite its higher-than-normal height.
\<<else>>
You must stand up on your tiptoes to reach the hole.
\<</if>>
\<<if setup.MQ002_Manor_IsCockGiganticInManor($CharacterSheet_Player)>>
With a loud grunt, you shove your giant cock through the wall. The hole simply can't take it, and so the wall explodes in a shower of dust and debris.
\<<elseif setup.MQ002_Manor_IsCockMassiveInManor($CharacterSheet_Player)>>
A smug grin spreads across your lips unbidden when you stuff your massive fuck stick through the hole and feel the edges pressing in around the girth of your shaft.
\<<else>>
The hole is pretty spacious, again almost certainly to accommodate the typical proportions of the intended users, but you can't help but be a bit proud of how much your dick fills it.
\<</if>>
You can only imagine the look on their face as they see your cock.
You hear the muffled sound of a single voice, assumedly the person on the other side of the wall talking to themselves, but you can't make out their words.
Eventually, that too goes quiet, and you're left there waiting.
\<<run setup.choice("[[Keep waiting->WestWing_GloryHole_5]]")>>A second later, an unexpected gentle tickle of fingers brushing along the side of your shaft causes your cock to jerk and throb powerfully in reaction.
The light touch becomes a firm grip as thick, powerful fingers grip around the middle of your shaft to restrict its ability to jerk about wildly of its own accord.
Then, just as quickly, the hands release you and pull away as if they had been electrocuted as more incoherent, muffled words spill out from the person on the other side of the wall.
You don't need to hear what they're saying to understand the hesitation in their actions.
\<<run setup.choice("[[Tease him->WestWing_GloryHole_6]]")>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
Your hips roll forward to grind against the wall and force your waistline flush with the glory hole to press every last bit of your cock through the hole.
Thankfully their hesitation doesn't last much longer. You feel their strong fingers grip your dick once more.
\<<if setup.MQ002_Manor_IsCockMassiveInManor($CharacterSheet_Player)>>
Or at least what small part of your large endowment they can get their hands around.
\<</if>>
The grip is more assertive this time, possessive in a way if how their fingers squeeze into the iron-hard rod of your cock is any indication.
It's almost like they're afraid of you pulling away now that they've decided to hold you in place.
\<<run setup.choice("[[Continue->WestWing_GloryHole_7]]")>>Hot breath washes over the head of your leaking cock, sending a shiver down your spine as their hot breath contrasts the cool moisture of your pre.
You can imagine their mouth hovering directly in front of your dick, jaw hanging open, tongue dangling from one edge of their lips as they take in your scent.
If you weren't already flush with the wall, you would push further through the hole to thrust into their waiting mouth.
\<<run setup.choice("[[Tease him->WestWing_GloryHole_8]]")>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
Soft, wet lips press against the tip of your cock in a kiss.
It is the gentle, tentative kiss of someone testing the waters to see if there would be any objection to their show of affection.
When the only response they get is another pulse of your dick and a fresh spurt of pre dribbling down your underchannel, they take that as approval.
\<<run setup.choice("[[Continue->WestWing_GloryHole_9]]")>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
The next kiss is more energetic.
Their lips press down firmly against the side of your cockhead and create a seal just long enough to suckle on the heated flesh.
They repeat the same action on the opposite side as if wanting to maintain symmetry to their increasingly fervent worship of your erection.
By this point you can feel their lips and the front of their face is soaked in your pre.
They leave a trail of kisses down the length of your shaft until they reach the base.
Once there, your mystery partner slides their tongue out along the girth of your cock, letting out a tiny groan of lust and hunger.
\<<run setup.choice("[[Keep going->WestWing_GloryHole_10]]")>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
Once reaching the head, their powerful semi-prehensile tongue stroke its way across your tip.
Again their hot breath washes over your cock, making you shiver as the hot breath contrasts the layer of saliva along your dick.
Your mystery worshipper finally moves in to take you in their mouth.
\<<run setup.choice("[[Continue->WestWing_GloryHole_11]]")>>\<<run setup.playSoundActionParams(["action_Suck"], true)>>
\<<if setup.MQ002_Manor_IsCockGiganticInManor($CharacterSheet_Player)>>
<<include WestWing_GloryHole_11_Gigantic>>
\<<elseif setup.MQ002_Manor_IsCockMassiveInManor($CharacterSheet_Player)>>
<<include WestWing_GloryHole_11_Massive>>
\<<else>>
<<include WestWing_GloryHole_11_Normal>>
\<</if>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
Their mouth slips easily over your cock.
Their plump lips seal themselves around the middle of your shaft as their tongue dance along your tip and tease your slit.
Your hips buck, and the wall vibrates from the impact.
It only seems to amuse them as they slowly draw their lips back until only your cockhead is in their lips.
\<<run setup.choice("[[Continue->WestWing_GloryHole_11_Normal_2]]")>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
The pressure in their mouth changes, and a strong suction begins tugging and pulling at the sensitive nerve clusters around your cockhead.
They spend almost a full minute suckling at your tip, gently coaxing out bead after bead of your pre and eagerly lapping it up to swallow it.
Inch after inch of your shaft pushes itself through their lips as they slide their way along your length.
You could feel their tongue sliding along your under channel, they bury you deeper and deeper until you feel your tip brush the fleshy ring that was the entrance to their throat.
Just as their lips reach the base of your cock, a soft, muffled groan comes from your anonymous cocksucker.
\<<run setup.choice("[[Continue->WestWing_GloryHole_11_Normal_3]]")>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
Their mouth vibrates blissfully around your shaft for an instant. They pull back a few inches to press down and bury themselves in their mouth.
Over and over, they repeat the movement, keeping a firm seal around your cock and sucking away at it all the while.
They could feel your heartbeat throbbing through the thick veins lining your length, feel your arousal building towards your peak.
Rather than drag things out longer by slowing down, they speed up their ministrations, bobbing their head faster and faster along your cock.
It doesn't take much more of that before they finally push you over the edge.
\<<run setup.choice("[[Continue->WestWing_GloryHole_11_Cum]]")>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
Spurt after spurt of your thick white cum splatters the insides of their mouth as they hold their lips shut tight around your length.
You feel their tongue and the entrance to their throat shift and spasm every second or so as they dutifully swallow down each spurt of your load.
Only once your twitching and spasming have died down, and they are sure you have run dry, do they slowly pull themselves off of your dick, spending a few moments to lick it clean of any lingering mess.
\<<run setup.choice("[[Continue->WestWing_GloryHole_12]]")>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
They force their mouth wide to fit the head of your cock, but it is futile.
Their mouth is too small, and your dick is simply too big.
There is no way they'd be able to fit the entire thing in their mouth.
That doesn't stop them from trying, though, as they remove their hands from your cock base to brace against the wall and push themselves further down your dick one inch at a time.
\<<run setup.choice("[[Continue->WestWing_GloryHole_11_Massive_2]]")>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
You can feel the insides of their mouth pulsating and spasming as they struggle not to gag. Your tip bumps up against the entrance to their throat.
They are forced to swallow every few seconds as their mouth fills up with too much of your pre.
With how tightly your shaft is filling out their lips, their mouth is practically sealed.
Swallowing is the only way they can handle it.
\<<run setup.choice("[[Continue->WestWing_GloryHole_11_Massive_3]]")>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
With a final, almost desperate grunt, they push themselves forward one last time, and you feel the thick crown of your cockhead squeeze through their throat.
That is the most they are able to manage. It doesn't stop them from working with what they can, though.
Their lips pull back and let a few inches of your huge shaft out, only to forcibly push themselves back down on it again.
Each subsequent thrust of themselves onto your cock comes a little bit easier for them.
Their dedication and fervour more than makeup for their inability to take more of you.
\<<run setup.choice("[[Continue->WestWing_GloryHole_11_Massive_4]]")>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
That doesn't stop them from doing their best to suck and squeeze their lips around as much of your dick as they can to force you closer toward your peak.
Feeling the anonymous cock sucker using themselves like a living fleshlight is enough to rapidly bring you to orgasm.
\<<run setup.choice("[[Continue->WestWing_GloryHole_11_Cum]]")>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
Thick, heavy ropes of cum blast from your tip, each one slaming against the back of their throat hard enough to make your partner grunt and gag.
They are buried too deep on your cock to back out now.
All they can do is swallow the best they can, the shifting pressure around your dick.
It isn't hard to imagine the look on their face then it becomes clear you have more than just a few tablespoons of cum to give them.
But no matter how much they grunt and protest, they do their best to swallow it all.
\<<run setup.choice("[[Continue->WestWing_GloryHole_12]]")>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
There is no possible way your monster of a cock could possibly fit in his mouth.
That doesn't stop him from trying, though.
You can feel his jaws spread wide and push against the head of your cock in a desperate attempt to force it in.
No matter how much he pushes, how much he forces it, even unhinging his jaw wouldn't be enough to fit even your cockhead in his mouth.
\<<run setup.choice("[[Continue->WestWing_GloryHole_11_Gigantic_2]]")>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
Rather than keep trying and failing to get you in his mouth, he relegates to making out with your slit.
His lips squeeze and suckle at the soft flesh around the opening while his tongue probes the sensitive folds that lead into your dick.
Your body shudders and bucks each time his tongue pushes a fraction of an inch inside, only to retreat out again.
Each time your body smacks against the wall hard enough to shake it.
All the while, his hands reach out to squeeze and stroke along your monstrous shaft.
\<<run setup.choice("[[Continue->WestWing_GloryHole_11_Gigantic_3]]")>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
His fingers brush along the nearly pencil-thick veins sticking out against your flesh, causing shudders along your body.
It is taking all your willpower not to thrust against the wall hard enough to break it down.
Even if he could only please a fraction of your cock's overall mass, he does so expertly enough you are soon nearing orgasm.
You growl lustfully and deeply. The walls shake as you near the edge.
\<<run setup.choice("[[Continue->WestWing_GloryHole_11_Cum]]")>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
That is the only warning he gets before you finally come.
Even considering the size of your cock he has been unprepared for the sheer force of your ejaculation.
The first shoots straight into his mouth as he still makes out with your slit.
His head is knocked away, he audibly cough and gags but keeps his grip on your shaft.
\<<run setup.choice("[[Continue->WestWing_GloryHole_11_Gigantic_5]]")>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
You can feel his lips push back against your cockhead as if he is trying to create a seal and drink it all down. But it is just too much for him.
When your orgasm finally dies, you don't have to see them to know they must be absolutely soaked in your load.
Enough, so he is probably dripping globs of the thick, musky liquid on the floor all over him.
Though considering your volume, the floor is drenched.
\<<run setup.choice("[[Continue->WestWing_GloryHole_12]]")>>\<<run setup.stopSoundActions();>>
\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
Finally satisfied, you lean against the wall for a few moments as your cock softens before finally pulling free from the hole. Still basking in the afterglow, you leave without looking through the hole.
Letting your imagination fill in the gaps is more than enough reward for you.
<<print setup.clearWestWingRoom("WestWing_GloryHole")>>
<<print setup.getNextManorDestination()>>\<<set State.variables.CharacterSheet_MQ002_DragonMonk.quest.came_GloryRoom = true>>
<<include setup.getNextNarativeEventPassage(setup.StorySheet_MQ002_DragonMonk.gloryHoleCumPassages)>>You head for the exit, leaving behind what could only be another cursed contraption orcastrated by the evils of this place.
<<print setup.getNextManorDestination()>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
Your load rises along your shaft, orgasm rushes over you.
But as your pleasure peaks, you feel something call deeply within your soul.
A corrupted presence that is now so familiar.
\<<run setup.choice("[[Continue->WestWing_GloryHole_Infect_2]]")>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
You feel spawns of Nyx beyond the hole, within the one that begs for your tainted seed.
It seems your cock sucker has indulged in forbidden pleasures themselves.
"Fuck... Do it... <span class="glitch nyx" data-text="CORRUPT GROW FUCK">"Infest me!"</span>"
Their mouth take your cock all the way, and it pushes you over the edge.
\<<run setup.choice("[[Cum->WestWing_GloryHole_Infect_3]]")>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
Thick bumps rise from your balls and along your shaft, making you roar in pleasure.
Jet black seed gushes out. It stretches your urethra as spawns push their way out to dig deep into the hungry throat beyond.
You hear him jerk off as he desperately tries to take you all in.
The sensation of his tight throat is too much. You growl in pleasure, feeling the pleasure of your climax coursing through your veins.
You thrust for a final time, going as deep as you can. Your balls pump one more spawn down their throat, leading them further down a path of endless pleasure.
\<<run setup.choice("[[Continue->WestWing_GloryHole_Infect_4]]")>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
The flow of spawn runs dry, your balls start to ache as the chorus of the black sun booms into your mind, making you feel endlessly validated.
"Grow... Fuck... Spread..."
Endless lust courses through their veins as the sweet sound of his mind shattering orgasm seep through the glory hole.
You grasp your balls, feel them getting full as new spawns emerge.
The chorus of Nyx booms again, this time more intense and passionate than before.
The spawns surge with energy as they become attuned with your corrupted soul.
"Grow... Fuck... Spread..."
\<<set State.variables.CharacterSheet_MQ002_DragonMonk.quest.infected_GloryRoom = true>>
\<<run setup.choice("[[Continue->WestWing_GloryHole_12]]")>>You step into the next room and immediately notice the smell of freshly polished steel.
This room is vast and filled with what training equipment you've used at home.
Benches, power racks, cages, and dumbbells all seem to be brand new, something that's exceedingly rare to come across in the ruined world above.
It has been a while since you last trained, and this place seems empty of dangers.
\<<run setup.choice("[[Approach one of the benches->WestWing_GymRoom_2]]");>>
\<<run setup.choice("[[Leave->WestWing_GymRoom_Leave]]");>>As you approach a bench, your eyes lock on the Olympic bar. Anticipation builds as you reach for it and feel the smooth coldness of metal in your hands.
You set some weights and start to lift, feeling the satisfying burn in your muscles as you work hard.
It's as if your muscles are begging to be used, and they respond eagerly to the challenge.
As you heft the barbell, you cannot help but feel a thrill of anticipation for what's coming next.
\<<run setup.choice("[[Lift->WestWing_GymRoom_3]]");>>You lift the weights above your head, pressing them together until your arms are straight.
Your pecs bulge with the effort, and the satisfying clang of the metal echoes in the room.
As you push the weight up, your eyes notice something different about the scene around you.
\<<run setup.choice("[[Quickly look around->WestWing_GymRoom_3_1]]");>>Massive, monstrously muscular figures seem to be working out around you, lifting and groaning with effort as if they've been there all along.
Their muscles strain and flex as they lift weights and move from one exercise to the next.
As you watch them, you start to feel a stirring in your own body.
Heat builds in your core and spreads through your limbs. Your heart starts to race, and your breathing quickens.
You can feel your nipples harden and your bulge pulses between your legs.
You would love to look at them more, but your own lift takes you back to the matter at hand.
\<<run setup.choice("[[Keep lifting->WestWing_GymRoom_4]]");>>Erotic moans of effort echo across the gym, providing a soundtrack to the atmosphere of hard work and determination.
The grunts and groans become more fervent as you lift, signalling the immense strain on your body.
Despite the obvious pain, there is a particular pleasure in overcoming challenges.
Each moan is a sign of strength, will, and power; a reminder that overcoming obstacles is what you do.
\<<run setup.choice("[[Lift->WestWing_GymRoom_5]]");>>You feel eyes on you as you slide up and down, pushing against the weights.
As you finish your last repetition, you can finally grasp the true scale of the scene around you.
Dozens of Lost, all with massive glistening muscles, dominate the gym.
Your heart is pounding, your muscles are burning, and you can feel the sweat pouring down your body. The intense flow of working out is infectious, and soon you're back lifting for your next set.
\<<run setup.choice("[[Lift->WestWing_GymRoom_6]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
The Lost look at your performance and some get aroused by how you effortlessly lift these weights.
They adore your strength and can't get enough of your muscular body.
You notice the intense heat emanating from your body as you catch your breath. You feel the sweat dripping down your skin.
Your heart is pounding, and you can feel the adrenaline coursing through your veins.
You feel alive, and the Lost take notice.
\<<run setup.choice("[[Lift->WestWing_GymRoom_7]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
You're so focused that you don't even hear the steps coming toward you until you feel someone's presence.
A Lost looms over you with an intense look in their eyes. He admires your strength and determination.
\<<run setup.choice("[[Lift->WestWing_GymRoom_7_1]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
His hands roam your sweaty body. The intensity of his touch ignites a fire within you, and you lose yourself in the burning arousal of the lift.
Your workout is turning into something more, and your body responds eagerly to the Lost's touch.
He trails his hands and tongue all over you, worshipping you with every touch.
Tribute to your strength is being paid.
You are his god.
\<<run setup.choice("[[Finish your set->WestWing_GymRoom_8]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
\<<run setup.playSoundActionParams(["action_Suck"], true)>>
The last bench press rep is always the hardest, but the worship of the Lost fills you with energy.
You strain to push the weight up as your muscles burn with effort.
More Lost join in worshiping you. Tongues and fingers invade every inch of your bulging body as you growl like a beast.
A wave of pleasure washes over you, starting at your core and radiating through your limbs.
It builds until you're gasping for air and trembling all over.
The weight on your chest feels suddenly heavier, but you don't care. You push hard as pleasure courses through you, making your toes curl and your back arch.
\<<run setup.choice("[[Cum->WestWing_GymRoom_9]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
You close your eyes and push the bar to the top, moaning uncontrollably as the orgasm builds and peaks.
The Lost reach orgasm with you, and the sound of moaning, growling beasts fills the room.
"GRAHHHHHHH~" Countless Lost cry out in sheer ecstasy.
The weights fall from your hands as you clench your fists, digging your nails into the flesh of some nearby Lost as you cum over and over and over.
\<<run setup.choice("[[Cum->WestWing_GymRoom_10]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
You cum, and they all follow suit, cumming and roaring in a monstrous chorus of lust and pleasure.
All are consumed by the sheer display of power you went through, brought to the edge by your never-ending growth.
The gym floods with seed as everyone reaches orgasm. It quickly starts pooling on the floor, and the walls drip with it. The smell of sex and sweat grows overpowering, and the air thickens with lust.
Cum is everywhere, coating everything in sight. It's on the weights, the machines, and even the ceiling.
Soon it's impossible to tell where one person's cum ends, and another begins.
It's a beautiful sight, and everyone is revelling in it.
\<<run setup.choice("[[Continue->WestWing_GymRoom_11]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
\<<run setup.stopSoundActions()>>
You are drenched in sweat, and your heart races, but you slowly return to yourself.
You take a deep breath and look around, noticing how the Lost have all disappeared.
Only the wet stains of sweat, Corruption and cum remain.
You are left with an otherworldly feeling of growth that pulses within your muscles.
You are bigger than before.
∇: You gain the "Nyx Induced Workout" Ability.
\<<run $CharacterSheet_Player.applyAbilityRuntimeData(setup.Ability_NyxInducedWorkout)>>
\<<print setup.clearWestWingRoom("WestWing_GymRoom")>>
\<<run setup.choice("[[Leave->WestWing_GymRoom_Leave]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
You approach the gym exit and feel the castle walls shift.
<<print setup.getNextManorDestination()>>The room around you is eerily non-descript.
It's as if your mind can't retain the memory of what you're seeing.
The only thing that seems to stand out is a massive mirror that spans one entire side of the room.
\<<if setup.MQ002_Manor_IsMassiveInManor($CharacterSheet_Player)>>
It's enormous even compared to you.
\<<else>>
It's absolutely massive.
\<</if>>
\<<run setup.choice("[[Inspect the mirror->WestWing_MirrorRoom_2]]");>>
\<<run setup.choice("[[Leave->WestWing_MirrorRoom_Exit]]");>>You find yourself unnaturally drawn towards the mirror.
Curiosity gets the better of you and you move over to inspect it.
You only see yourself in the reflection; not even the vague idea of what the room looks like.
The next thing you notice is that the reflection of yourself looks slightly off.
\<<if setup.MQ002_Manor_IsCorruptedInManor($CharacterSheet_Player)>>
\<<set $CharacterSheet_Doppleganger.quest.corruptionState = setup.Doppleganger_CorruptionState.PURE>>
\<<else>>
\<<set $CharacterSheet_Doppleganger.quest.corruptionState = setup.Doppleganger_CorruptionState.CORRUPTED>>
\<</if>>
\
\<<run setup.setDopplegangerStats()>>
\<<run setup.choice("[[Keep looking->WestWing_MirrorRoom_3]]");>>
\<<run setup.choice("[[Leave->WestWing_MirrorRoom_Exit]]");>><<include setup.getNextNarativeEventPassage(setup.StorySheet_Doppleganger.encounterPassages)>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player", "CharacterSheet_Doppleganger"])>>
You open the door and hear the mirror crack behind you.
<<print setup.getNextManorDestination()>>You arrive at a room of damp stones. The metallic smell of Corruption fills your nose.
You can feel the moisture in the air clinging to your skin.
It's thick and cloying, making it difficult to breathe.
A large, deep pit lies before you. You can feel a presence within its depths.
\<<run setup.choice("[[Approach the pit->WestWing_NyxSpawnPit_2]]");>>
\<<if $CharacterSheet_Player.quest.nyxParasiteInfections <= 0>>
\<<run setup.choice("[[Enter the next room->WestWing_NyxSpawnPit_Leave]]");>>
\<<else>>
<span class="glitch nyx fucked" data-text="DO NOT̷͓̱͎̘̞̣͎̗̙̦̲͔͒͛͑̋̔̊̀͑̔͒͆̚̚͜͝͠͝͝ͅ">[[Enter the next room->WestWing_NyxSpawnPit_Leave]]</span>
\<</if>>The smell of Corruption is enticing, but one glance at what's within is enough to make you shiver.
You can see the darkness lurking, but there's also a hint of something else. Something thrilling and exciting.
It is filled with long, snake-like creatures that stand on their tail. Their unblinking eye gaze at you in evident need.
You can see more than 20 of them in there, their tail wagging as if they're ready to pounce.
\<<run setup.choice("[[Continue->WestWing_NyxSpawnPit_3]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "blue")>>
An otherworldly glow coming from these spawns of Nyx dances off the surfaces of the room and invites you to reach into the pit.
Corrupted thoughts rush through your mind, tempting you with dark desires.
You can't help but wonder what these spawns would do to you if you were to give in to lust and temptation.
\<<run setup.choice("[[Give in to those thoughts->WestWing_NyxSpawnPit_4]]");>>
\<<run setup.choice("[[Enter the next room->WestWing_NyxSpawnPit_Leave]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "blue")>>
Your heart races as you imagine giving in to those impulses, giving yourself over to pleasure.
Who knows what kind of power these things hold within them?
The monsters feel your corrupted thoughts and excitedly await the right moment to strike.
\<<run setup.choice("[[Invite them in->WestWing_NyxSpawnPit_5]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "purple")>>
With increasingly heavy breaths, you drop to your knees and reach down with your arm.
They all slither towards you eagerly. Some even try to leap to reach your arm but barely miss.
A spawn steps over the others; its Corruption bathes you in its musky aroma.
You shiver as its warm, slimy skin touches yours.
\<<run setup.choice("[[Continue->WestWing_NyxSpawnPit_6]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "purple")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
Another spawn follows close behind, and its body crawls on your arm.
You can feel its Corruption seeping into your skin, and you can't help but moan.
It makes your cock hard and throbbing with lust.
\<<run setup.choice("[[Let them infest you->WestWing_NyxSpawnPit_7]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "pink")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
You beg for them to come closer, to infest you to your core.
One of the spawn drops from your arm and slithers down your body.
It pauses at your waist, then crawls up your leg, leaving a trail of pleasurable pulses in its wake.
When it reaches your thigh, your whole body shudders with anticipation.
\<<run setup.choice("[[Let into your cock->WestWing_NyxSpawnPit_8]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "pink")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
The spawns start to crawl along your shaft, sending shivers down your spine.
It winds its way around your cock, tightly gripping it.
You can feel it throbbing, pulsing with a hunger for your cum.
It eagerly pushes itself into your cock slit in a sudden dive.
You arch your back as pleasure rushes through you, every nerve alive and crackling with electricity.
\<<run setup.choice("[[Moan->WestWing_NyxSpawnPit_9]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "red")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 2)>>
Moans fill the room as lust strikes you over and over.
You grasp your shaft, desperately guiding it. Your cock thickens as the spawn pushes itself deeper.
You rock your hips, moving faster and faster as the pleasure builds to impossible highs.
\<<run setup.choice("[[Scream for more->WestWing_NyxSpawnPit_10]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "red")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
Its slender body writhes inside of you, igniting a fire in your belly that consumes you whole.
You feel more aroused than ever before. Every movement sends pleasure shuddering through your body.
You can feel it thrumming through you, a deep vibration that ignites every nerve.
Desire races through you and consumes you in its lust.
Your head pulls back, and you let out a long moan that makes the spawns all the more excited.
\<<run setup.choice("[[Jump in the pit->WestWing_NyxSpawnPit_11]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "red")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
Your skin prickles as you turn to glance at the deep pit. You take a step forward, your heart pounding in anticipation.
You take a deep breath and leap into the abyss.
\<<run setup.choice("[[Give in->WestWing_NyxSpawnPit_12]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "red")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
The creatures that once were foreign to your skin are now invading it by the hundreds.
With every twist and turn, the spawns strike you with an endless onslaught of pleasure.
Excitement pulses through you as hundreds of them push themselves eagerly into your cock and ass.
On and on they go, creating an ever-growing sense of ecstasy until you're trembling and panting with anticipation.
\<<run setup.choice("[[Give in->WestWing_NyxSpawnPit_13]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "red")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
Their undulating bodies fill you up, stroking your most sensitive spots as they squirm inside of you. You can feel every inch of them, and the sensation is amazing.
You want more spawns inside you.
You ache for them.
You need them.
Their presence fills you with a longing that can never be quenched.
\<<run setup.choice("[[Become their host->WestWing_NyxSpawnPit_14]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "red")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
You yearn for the feel of their wriggling bodies inside you, the pleasure burrowing deep into your flesh.
You desire nothing more than to be a host for their dark desires.
They move and writhe inside you, bringing you to new heights of pleasure.
\<<run setup.choice("[[Give in->WestWing_NyxSpawnPit_15]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "red")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
You surrender to them, letting them take control of your body and bring you to endless ecstasy.
Your body screams for release, but the spawns inside your cock won't let you cum.
They keep building and building until you're ready to explode.
You can feel them squirming inside you, making your dick ache and throb. Every twitch and spasm is torture as you edge closer and closer to an explosive release that never seems to come.
\<<run setup.choice("[[Jerk off desperately->WestWing_NyxSpawnPit_16]]");>><<print setup.setAndDisplayBodyVisual($CharacterSheet_MQ002_NyxParasite, "red")>>
\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
You are one with them; an unbreakable bond.
Instincts and images of you spreading these spawns to others flood your mind.
You must spread.
You must fuck.
You must grow.
\<<run setup.choice("[[Continue->WestWing_NyxSpawnPit_17]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
Desire grows deep within you, a primal urge that must be sated. Your need builds with each passing moment until you can think of nothing but giving in to the overwhelming lust.
You touch yourself, and it feels so good that you can't help but moan in pleasure.
Each stroke ignites a new fire in your loins, and you can feel yourself getting closer and closer to the edge.
Your balls churn and move as the spawns invade your balls, their movement hitting you with a constant surge of pleasure.
\<<run setup.choice("[[Give in->WestWing_NyxSpawnPit_18]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 3)>>
You're inching closer to ecstasy, but a part of you is resisting, struggling to maintain control.
But then, as you feel yourself about to reach the point of no return, you surrender.
\<<run setup.choice("[[Cum->WestWing_NyxSpawnPit_19]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 4)>>
These spawns are a part of you now and will serve you for as long as you live.
You can feel them moving through your veins, throbbing and pulsing as they travel through your body.
Cum drips down your thighs and coats them in the same aphrodisiac tainted oil that coats your spawns.
You let go and allow yourself to be consumed by the waves of pleasure crashing over you.
The ecstasy is too much to bear. You cum and cum for minutes, harder than you ever have before.
Orgasm sweeps over you in waves, crashing against you like a storm.
\<<run setup.choice("[[Continue->WestWing_NyxSpawnPit_20]]");>>\<<run setup.playRealizationPackage(["CharacterSheet_Player"], 1)>>
You're so exhausted that you can barely move.
You lay there, panting and sweaty, feeling the aftershocks of pleasure ripple through your body.
As you gradually return to reality, you realize that you're absolutely drenched in your cum.
It's everywhere - on your chest, your stomach, your thighs.
You feel the essence of your spawns within it, a corrupted power that makes your body absorbs hungrily.
\<<run setup.choice("[[Climb out of the pit->WestWing_NyxSpawnPit_21]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
\<<run setup.applyCorruption($CharacterSheet_Player, 8)>>
You climb out of the pit, your face stuck in a lust-induced grin.
Thoughts of taking more of those spawns invade your thoughts and never go away.
You need more...
∇: You gain the "Nyx Spawn Infection" Ability.
∇: You gain 8 corruption.
\<<run setup.MQ002_AddNyxParasiteInfection()>>
\<<print setup.clearWestWingRoom("WestWing_NyxSpawnPit")>>
\<<run setup.choice("[[Leave->WestWing_NyxSpawnPit_Leave]]");>>\<<run setup.stopRealizationPackages(["CharacterSheet_Player"])>>
You reach the exit of this accursed room and feel the castle warp into something different.
<<print setup.getNextManorDestination()>>Sounding rod on an altar. Becomes alive when you use it.
<<print setup.getNextManorDestination()>>\<<set $CharacterSheet_Player.quest.available_exploration_villageGateEast_eastFirstTime = false>>
\<<if $Level > 5>>
A guard stops you as you try to cross through the eastern gate.
Though his stance relaxes once he recognizes you.
"ha, <<print $CharacterSheet_Player.info.name>>... You're probably the only one who should be allowed here at this point."
He sighs.
"This is where the Lost lie, beasts whose sole goal is to grow and break others into monsters like themselves. Be careful out there."
\<<run setup.choice("[[Cross the gate->$Explore_Destination][$Encounter_Target = setup.getRandomEncounter(setup.LOCATIONS.EAST)]]");>>
\<<run setup.choice("[[Go back->Village]]");>>
\<<else>>
A guard stops you as you try to cross through the eastern gate.
"Woah there, are you sure you wanna go that way?" He looks you over doubtfully.
"This is where the Lost lie, monsters whose sole goal is to grow and spread their vile corruption."
\<<run setup.choice("[[Cross the gate anyway->$Explore_Destination][$Encounter_Target = setup.getRandomEncounter(setup.LOCATIONS.EAST)]]");>>
\<<run setup.choice("[[Go back->Village]]");>>
\<</if>>\<<set $CharacterSheet_Player.quest.available_exploration_villageGateEast_eastGrownParasites = false>>
Your heart throbs as you reach the eastern gate.
The spawns within ache to be freed, to spread their otherworldly lust to the beasts of the Barrens.
Finally, you're almost free to revel in your lust like the monster that you are. Some guards look at you with hidden interest, the arousal that taints the air seeping into them like a demonic spirit.
The need to corrupt everything is becoming nearly impossible to hide.
\<<run setup.choice("[[Explore the Barrens->$Explore_Destination][$Encounter_Target = setup.getRandomEncounter(setup.LOCATIONS.EAST)]]");>>\<<set $CharacterSheet_Player.quest.available_exploration_villageGateEast_eastGrownDemonic = false>>
The guards of the eastern gate eye you carefully as their hands hold on to their weapons tightly. They have seen countless demons before, have fought them alongside the Lost for as long as they remember.
Your demonic features are disturbing to them, but deep inside, they know that they are entirely powerless to stop you anyway.
\<<run setup.choice("[[Explore the Barrens->$Explore_Destination][$Encounter_Target = setup.getRandomEncounter(setup.LOCATIONS.EAST)]]");>>\<<set $CharacterSheet_Player.available_exploration_villageGateEast_eastGrownMacro = false>>
You walk to the eastern gate, where guards look up to you in awe. They used to open the gate for you, but there is no point in that anymore.
With one step, you walk over the gate, its height proving useless to your gigantic body. The guards hold on to the walls, bracing themselves as your thunderous stomp pass towards the eastern Barrens.
\<<run setup.choice("[[Explore the Barrens->$Explore_Destination][$Encounter_Target = setup.getRandomEncounter(setup.LOCATIONS.EAST)]]");>>\<<set $CharacterSheet_Player.quest.available_exploration_villageGateEast_eastGrownLordOfLust = false>>
You reach the eastern gate only to notice that it is empty of any guards.
None of them dares to look at you in the eyes; no one wants to act as if they had any authority over you.
Nothing stands in the way of a Lord of Lust.
\<<run setup.choice("[[Explore the Barrens->$Explore_Destination][$Encounter_Target = setup.getRandomEncounter(setup.LOCATIONS.EAST)]]");>>\<<set $CharacterSheet_Player.quest.available_exploration_villageGateEast_eastGrownMegaMacro = false>>
Upon arriving at the Eastern Gate its hard to imagine this puny fortification could keep out much of anything. \
The Eastern Barrens are supposed to be where the more dangerous corrupted creatures make their home; a few that are even powerful enough to be worth your attention despite your monstrous size.
As you step over the wall like it were nothing more than a piece of debris in your path you fail to lift your foot high enough and one of your toes grazes the top of the wall. You barely feel any resistance but a shower of stone and debris explodes outwards like the fortification had been hit from the inside by a catapult.
A glance down reveals the wall isn't compromised. It still stands tall and strong enough to keep out invaders, though now it has a big chunk missing out of part of an upper battlement.
It's becoming hard to process collateral damage when the world around you is so fragile.
\<<run setup.choice("[[Explore the Barrens->$Explore_Destination][$Encounter_Target = setup.getRandomEncounter(setup.LOCATIONS.EAST)]]");>>\<<set $CharacterSheet_Player.quest.available_exploration_villageGateNorth_northFirstTime = false>>
<<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/Barrens/northernbarrens.jpg", undefined, undefined, true)>>
A guard waits for you at the entrance of the eastern gate. His expression is hard to read, a sorrow paved by the routine of a harsh existence.
"I've been informed that you're the new Salvager." He looks you over.
Suddenly he turns to push the sizeable battered gate. It creaks out, leaving a small enough gap for you to squeeze through.
"Be careful out there; we need you in one piece." He mumbles out.
"Both in body and mind."
\<<run setup.choice("[[Cross the gate->$Explore_Destination][$Encounter_Target = setup.getRandomEncounter(setup.LOCATIONS.NORTH)]]");>>
\<<run setup.choice("[[Go back->Village]]");>>\<<set $CharacterSheet_Player.quest.available_exploration_villageGateNorth_northMeteorFall = false>>
\<<run $Quest_InProgress.push($Quest_MQ001_01)>>
<<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/Barrens/northernbarrens.jpg", undefined, undefined, true)>>
As you cross the gate to the northern Barrens, you feel the ground shaking beneath your feet.
It feels like the world braces itself..
[[Continue->Explore_NorthMeteorFall_2]]You look up and see the sky lighting up with sparks of light as a blazing ball of fire streaks across the sky, trailing smoke and sparks.
In a mixture and awe from the nearby guards, the meteor travels down to the horizon, and crashes a few miles away.
The impact shakes the ground again and sending a plume of dirt and dust up into the air.
[[Brace yourself->Explore_NorthMeteorFall_3]]You hear a loud thud and a roar of flames as the meteor engulfs your vision in a bright orange glow.
The heat of the fire can be felt from where you stand, and the smell of smoke and burning soil fills the air.
∇: You can now explore the crash site.
\<<run setup.choice("[[Keep exploring->$Explore_Destination]]");>>
\<<run setup.choice("[[Return to the Bastion->Village]]");>>\<<set $CharacterSheet_Player.quest.available_exploration_villageGateNorth_northGrownMuscular = false>>
<<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/Barrens/northernbarrens.jpg", undefined, undefined, true)>>
As usual, a guard waits for you at the entrance of the eastern gate. The gate creaks out as he pushes it open slightly, yet it's nowhere near enough to fit your muscular frame.
You walk to the gate and throw it open further than five men ever could. The loud creaking of the damaged gate pulls all eyes towards you; you stomp towards the northern Barrens.
A voice rises from the guard by the entrance.
"Thank the gods he's on our side."
\<<run setup.choice("[[Cross the gate->$Explore_Destination][$Encounter_Target = setup.getRandomEncounter(setup.LOCATIONS.NORTH)]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/Barrens/northernbarrens.jpg", undefined, undefined, true)>>
\<<set $CharacterSheet_Player.quest.available_exploration_villageGateNorth_northVisibleCorruption = false>>
A guard waits for you at the entrance of the eastern gate. You recognize him; he is the same guard who opened the gate for you the first time you stepped out onto the Barrens.
His expression has not changed, his rugged face showing years of fighting to keep the Golden Bastion safe. His eyes squint as he notices the Corruption flowing through your eyes and veins.
He opens the door for you without a word, takes an extra step back to let you through.
\<<run setup.choice("[[Cross the gate->$Explore_Destination][$Encounter_Target = setup.getRandomEncounter(setup.LOCATIONS.NORTH)]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/Barrens/northernbarrens.jpg", undefined, undefined, true)>>
\<<set $CharacterSheet_Player.quest.available_exploration_villageGateNorth_northGrownHeight = false>>
You reach the northern gate and suddenly stop upon realizing something.
You stand taller than the entrance of the Golden Bastion.
The guards below grunt with effort as they open the gate as far as it could go before looking up to you, unsure of what happens next.
You crouch and squeeze yourself through, carefully managing to keep the walls of the city safe, but this is as big as you can be before this gate becomes too small for you.
\<<run setup.choice("[[Cross the gate->$Explore_Destination][$Encounter_Target = setup.getRandomEncounter(setup.LOCATIONS.NORTH)]]");>><<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Scenes/Barrens/northernbarrens.jpg", undefined, undefined, true)>>
\<<set $CharacterSheet_Player.quest.available_exploration_villageGateNorth_northGrownHeightMassive = false>>
Once towering over you like an impenetrable barrier, the northern gate now seems little more than a minor inconvenience.
After taking a moment to admire the powerful defensive structure you raise one foot and simply step over it like it were little more than a fallen log in your path.
You've already grown far beyond anyone's imagination; even your own.
\<<run setup.choice("[[Cross the gate->$Explore_Destination][$Encounter_Target = setup.getRandomEncounter(setup.LOCATIONS.NORTH)]]");>><<run setup.addRaceToPool("BEHEMOTH", {
id: 3,
name: "Behemoth",
namePlural: "Behemoths",
adjective: "behemothian",
description: "Typically large, imposing, and showing their musculature well, the Behemoth evokes impressions of a mixture between a mammoth, feline, and boar wrapped into one.",
anatomy: {
heads: {
raceTexture: ["maned", "fierce", "canine-like", "feral"]
},
eyes: {
defaultNumber: 2,
raceTexture: ["predatory", "piercing"]
},
jaws: {
defaultNumber: 1,
raceTexture: ["imposing", "fanged"]
},
teeths: {
defaultNumber: 1,
raceTexture: ["sharp"]
},
hands: {
defaultNumber: 2,
raceTexture: ["clawed", "padded"]
},
horns: {
defaultNumber: 2,
raceTexture: ["forward-facing"]
},
tongues: {
defaultNumber: 1,
raceTexture: ["barbed"]
},
arms: {
defaultNumber: 2
},
pecs: {
defaultNumber: 2,
raceTexture: ["barrelled"]
},
abdominals: {
defaultNumber: 8
},
cocks: {
defaultNumber: 2,
raceTexture: ["barbed", "knotted"]
},
balls: {
defaultNumber: 4,
raceTexture: ["churning"]
},
legs: {
defaultNumber: 2,
raceTexture: ["digitigrade"]
},
tails: {
defaultNumber: 1,
raceTexture: ["webbing-tipped", "spined"]
},
},
racialBonus: [
{type: "musclesMods", mod: setup.mod.ADD, value: 5},
{type: "strengthMods", mod: setup.mod.ADD, value: 10},
]
})
>><<run setup.addRaceToPool("DRAGONBORN", {
id: 5,
name: "Dragonborn",
namePlural: "Dragonborn",
adjective: "draconian",
description: "According to their traditional religion, they are descendants of ancient winged creatures that used to claim dominion over this land, though this has not been proven.",
anatomy: {
heads: {
raceTexture: ["draconic"]
},
eyes: {
raceTexture: ["draconic", "slitted"]
},
jaws: {
raceTexture: ["serpentine", "draconic"]
},
teeths: {
raceTexture: ["sharp"]
},
hands: {
raceTexture: ["clawed", "scaled"]
},
horns: {
defaultNumber: 2,
raceTexture: ["backward-bending"]
},
wings: {
defaultNumber: 2,
raceTexture: ["webbed"]
},
tongues: {
raceTexture: ["forked", "prehensile"]
},
arms: {
raceTexture: ["scaled"]
},
pecs: {
defaultNumber: 2,
raceTexture: ["scaled"]
},
abdominals: {
raceTexture: ["scaled"]
},
cocks: {
defaultNumber: 1,
raceTexture: ["tapered", "oily"]
},
balls: {
raceTexture: ["scaly"]
},
tails: {
defaultNumber: 1,
raceTexture: ["whip-like", "draconic", "serpentine"]
},
},
racialBonus: [
{type: "maxHPMods", mod: setup.mod.ADD, value: 20},
{type: "growthMods", mod: setup.mod.ADD, value: 0.1},
]
})
>><<run setup.addRaceToPool("FELINE", {
id: 6,
name: "Feline",
namePlural: "Felinids",
adjective: "feline",
description: "Perhaps the most diverse race in the world, those of feline ancestory range in sub-races from the strong and imposing Leonine to the gentle and curious catfolk.",
anatomy: {
heads: {
raceTexture: ["furry", "muzzled", "perk"]
},
eyes: {
raceTexture: ["predatory", "slitted"]
},
jaws: {
raceTexture: ["furry", "whiskered"]
},
teeths: {
raceTexture: ["sharp"]
},
hands: {
raceTexture: ["clawed", "padded"]
},
arms: {
raceTexture: ["furry", "feline"]
},
pecs: {
raceTexture: ["furry", "feline"]
},
abdominals: {
raceTexture: ["furry", "feline"]
},
cocks: {
raceTexture: ["barbed", "tapering"]
},
balls: {
raceTexture: ["furry"]
},
legs: {
raceTexture: ["furry", "feline"]
},
tails: {
defaultNumber: 1,
raceTexture: ["fluffy", "long"]
},
},
racialBonus: [
{type: "maxStaminaMods", mod: setup.mod.ADD, value: 10},
{type: "critChanceMods", mod: setup.mod.ADD, value: 0.05},
]
})
>><<run setup.addRaceToPool("HALFORC", {
id: 4,
name: "Half-Orc",
namePlural: "Half-Orcs",
adjective: "orcish",
description: "Tusked, muscular and generaly darker skinned humanoids. They are imposing and powerful. Despite their name in the common tongue, they are a full race in of their own right.",
anatomy: {
heads: {
raceTexture: ["tusked", "fierce"]
},
eyes: {
raceTexture: ["determined", "imposing"]
},
jaws: {
raceTexture: ["tusked", "strong"]
},
teeths: {
raceTexture: ["sharp"]
},
pecs: {
raceTexture: ["imposing"]
},
balls: {
raceTexture: ["churning"]
},
},
racialBonus: [
{type: "maxHPMods", mod: setup.mod.ADD, value: 10},
{type: "strengthMods", mod: setup.mod.ADD, value: 5},
]
})
>><<run setup.addRaceToPool("DEFAULT", {
id: 0,
name: "Human",
namePlural: "Humans",
adjective: "humanoid",
description: "A common species, making up a bulk of nearly all population centers. Highly social and adaptable.",
racialBonus: [
{type: "xpMultiplierMods", mod: setup.mod.ADD, value: 0.05},
{type: "essenceMultiplierMods", mod: setup.mod.ADD, value: 0.05},
]
})
>><<run setup.addRaceToPool("MINOTAUR", {
id: 2,
name: "Minotaur",
namePlural: "Minotaurs",
adjective: "minotauren",
description: "Bipedal, hooved bovines. Their torsos and arms are remarkably light on fur, but make up for it with their shaggy backs and legs.",
anatomy: {
heads: {
raceTexture: ["bovine", "bull shaped"]
},
eyes: {
raceTexture: ["determined"]
},
jaws: {
raceTexture: ["furry"],
},
hands: {
raceTexture: ["human shaped"]
},
horns: {
defaultNumber: 2,
raceTexture: ["forward-facing"]
},
tongues: {
raceTexture: ["flat tipped"]
},
arms: {
raceTexture: ["furry", "thick", "bovine"]
},
pecs: {
raceTexture: ["furry", "thick", "bovine"]
},
abdominals: {
raceTexture: ["furry", "thick", "bovine"]
},
cocks: {
raceTexture: ["flaring", "flat-tipped", "mottled"]
},
balls: {
raceTexture: ["furry"]
},
legs: {
raceTexture: ["hoofed"]
},
tails: {
defaultNumber: 1,
raceTexture: ["tuft-bearing"]
},
},
racialBonus: [
{type: "heightMods", mod: setup.mod.ADD, value: 10},
{type: "ballsMods", mod: setup.mod.ADD, value: 10},
]
})
>><<run setup.addRaceToPool("WOLF", {
id: 1,
name: "Werewolf",
namePlural: "Werewolves",
adjective: "wolven",
description: "Appears to be a combination of both human and wolf, though they trace their lineage to neither. Despite common legends, does not shift forms in the light of the moon.",
anatomy: {
heads: {
raceTexture: ["furry", "wolfish", "muzzled"]
},
eyes: {
raceTexture: ["predatory", "wolfish", "lupine"]
},
jaws: {
raceTexture: ["furry", "wolven", "wolfish", "lupine", "canid"]
},
teeths: {
raceTexture: ["sharp"]
},
hands: {
raceTexture: ["clawed", "padded"]
},
arms: {
raceTexture: ["furry", "wolven", "wolfish", "lupine", "canid"]
},
pecs: {
raceTexture: ["furry", "wolven", "wolfish", "lupine", "canid"]
},
abdominals: {
raceTexture: ["furry", "wolven", "wolfish", "lupine", "canid"]
},
cocks: {
raceTexture: ["knotted", "rocket-shaped", "wolven", "lupine"]
},
balls: {
raceTexture: ["furry"]
},
legs: {
raceTexture: ["furry", "wolven", "wolfish", "lupine", "canid"]
},
tails: {
defaultNumber: 1,
raceTexture: ["fluffy", "long"]
},
},
racialBonus: [
{type: "maxStaminaMods", mod: setup.mod.ADD, value: 5},
{type: "critDamageMods", mod: setup.mod.ADD, value: 0.05},
]
})
>><<run State.variables.CustomRace = {
id: 999,
name: "",
namePlural: "",
description: "",
anatomy: {},
racialBonus: [],
};
for (const [key, limb] of Object.entries(setup.Anatomy.LIMB_REF))
{
State.variables.CustomRace.anatomy[key] = {
defaultNumber: 0,
raceTexture: [],
}
};
>><<run setup.addRaceToPool("HYBRID", {
id: 990,
name: "Hybrid",
namePlural: "Hybrids",
description: "A mix of multiple races.",
anatomy: {},
racialBonus: [
{type: "maxHPMods", mod: setup.mod.ADD, value: 2},
{type: "maxStaminaMods", mod: setup.mod.ADD, value: 1},
{type: "strengthMods", mod: setup.mod.ADD, value: 2},
{type: "critChanceMods", mod: setup.mod.ADD, value: 0.01},
{type: "critDamageMods", mod: setup.mod.ADD, value: 0.01},
{type: "heightMods", mod: setup.mod.ADD, value: 1},
{type: "musclesMods", mod: setup.mod.ADD, value: 1},
{type: "growthMods", mod: setup.mod.ADD, value: 0.01},
{type: "xpMultiplierMods", mod: setup.mod.ADD, value: 0.01},
{type: "essenceMultiplierMods", mod: setup.mod.ADD, value: 0.01},
]
})
>><<run setup.addRaceToPool("ABOMINATION", {
id: 105,
name: "Abomination",
namePlural: "Abominations",
adjective: "abominationoid",
description: "A Roiling mass composed of pure corruption. It appears able to shape its glistening, organless body into a hollow mimicry of other shapes.",
racialBonus: [
{type: "corruptionPerDayMods", mod: setup.mod.ADD, value: 4},
{type: "corruptionMods", mod: setup.mod.ADD, value: 100},
{type: "growthMods", mod: setup.mod.ADD, value: 0.25},
]
})
>><<run setup.addRaceToPool("INCUBUS", {
id: 101,
name: "Demon",
namePlural: "Demons",
adjective: "demonic",
anatomy: {
heads: {
raceTexture: ["demonic"]
},
eyes: {
raceTexture: ["demonic", "slitted"]
},
jaws: {
raceTexture: ["sharp", "demonic"]
},
teeths: {
raceTexture: ["sharp"]
},
hands: {
raceTexture: ["clawed", "scaled"]
},
horns: {
defaultNumber: 2,
raceTexture: ["straight"]
},
tongues: {
raceTexture: ["flexible", "forked"]
},
arms: {
raceTexture: ["scaled"]
},
pecs: {
raceTexture: ["scaled"]
},
abdominals: {
raceTexture: ["scaled"]
},
cocks: {
raceTexture: ["slick", "oily"]
},
balls: {
raceTexture: ["churning"]
},
legs: {
raceTexture: ["scaled"]
},
tails: {
defaultNumber: 1,
raceTexture: ["forked", "demonic"]
}
},
racialBonus: [
{type: "arousalGainMods", mod: setup.mod.ADD, value: 5},
{type: "minArousalMods", mod: setup.mod.ADD, value: 5},
]
})
>><<run setup.addRaceToPool("LORD_OF_LUST", {
id: 102,
name: "Lord of Lust",
namePlural: "Lords of Lust",
adjective: "demonic",
anatomy: {
heads: {
raceTexture: ["demonic"]
},
eyes: {
raceTexture: ["demonic", "slitted"]
},
jaws: {
raceTexture: ["sharp", "demonic", "devilish"]
},
teeths: {
raceTexture: ["razor sharp", "monstrous"]
},
hands: {
raceTexture: ["clawed", "scaled"]
},
horns: {
defaultNumber: 4,
raceTexture: ["straight", "demonic"]
},
tongues: {
raceTexture: ["flexible", "forked"]
},
arms: {
raceTexture: ["scaled"]
},
pecs: {
raceTexture: ["scaled"]
},
abdominals: {
raceTexture: ["scaled"]
},
cocks: {
raceTexture: ["slick", "oily"]
},
balls: {
raceTexture: ["churning"]
},
legs: {
raceTexture: ["scaled"]
},
tails: {
defaultNumber: 1,
raceTexture: ["forked", "demonic"]
}
},
racialBonus: [
{type: "arousalGainMods", mod: setup.mod.ADD, value: 10},
{type: "minArousalMods", mod: setup.mod.ADD, value: 10},
]
})
>><<run setup.addRaceToPool("NAGA", {
id: 103,
name: "Naga",
namePlural: "Naga",
adjective: "serpentine",
anatomy: {
heads: {
raceTexture: ["serpentine"]
},
eyes: {
raceTexture: ["slitted"]
},
jaws: {
raceTexture: ["serpentine"]
},
teeths: {
raceTexture: ["sharp"]
},
hands: {
raceTexture: ["clawed", "scaled"]
},
tongues: {
raceTexture: ["forked"]
},
arms: {
raceTexture: ["scaled"]
},
pecs: {
raceTexture: ["scaled"]
},
abdominals: {
raceTexture: ["scaled"]
},
cocks: {
defaultNumber: 2,
raceTexture: ["tapered", "oily"]
},
balls: {
defaultNumber: 4,
raceTexture: ["scaly"]
},
tails: {
defaultNumber: 1,
raceTexture: ["sprawling", "serpentine"]
},
legs: {
defaultNumber: 0,
}
},
racialBonus: [
{type: "maxStaminaMods", mod: setup.mod.ADD, value: 5},
{type: "critChanceMods", mod: setup.mod.ADD, value: 0.05},
{type: "critDamageMods", mod: setup.mod.ADD, value: 0.05},
]
})
>><<run setup.addRaceToPool("SYMBIOTE", {
id: 104,
name: "Symbiote",
namePlural: "Symbiotes",
adjective: "gooey",
anatomy: {
heads: {
raceTexture: ["sinister"]
},
eyes: {
raceTexture: ["glowing"]
},
jaws: {
raceTexture: ["wide"]
},
teeths: {
raceTexture: ["sharp"]
},
hands: {
raceTexture: ["clawed"],
defaultNumber: 0,
},
tongues: {
raceTexture: ["prehensile", "slimy"]
},
cocks: {
raceTexture: ["goo-dripping"],
defaultNumber: 0,
},
ears: {
defaultNumber: 0,
},
horns: {
defaultNumber: 0,
},
wings: {
defaultNumber: 0,
},
arms: {
defaultNumber: 0,
},
pecs: {
defaultNumber: 0,
},
abdominals:
{
defaultNumber: 0,
},
balls: {
defaultNumber: 0,
},
legs: {
defaultNumber: 0,
},
tails: {
defaultNumber: 0,
},
},
racialBonus: [
{type: "growthMods", mod: setup.mod.ADD, value: 0.25},
{type: "xpMultiplierMods", mod: setup.mod.ADD, value: 0.1},
{type: "essenceMultiplierMods", mod: setup.mod.ADD, value: 0.05},
]
})
>>/* Dependant on Sheets_Anatomy */
<<set setup.RacePool = {
/* Setup CUSTOM (999) to operate like all other races */
get CUSTOM() {
return State.variables.CustomRace;
},
get 999() {
return State.variables.CustomRace;
},
Ordered: [],
};>>
/* Note: the order they are shown here is the order they will be presented to user */
/* Base Races */
<<include "_human_race_sheet">>
<<include "_halforc_race_sheet">>
<<include "_wolf_race_sheet">>
<<include "_feline_race_sheet">>
<<include "_minotaur_race_sheet">>
<<include "_dragonborn_race_sheet">>
<<include "_behemoth_race_sheet">>
/* NPCS/Unlockable */
<<include "_incubus_race_sheet">>
<<include "_lord_of_lust_race_sheet">>
<<include "_naga_race_sheet">>
<<include "_symbiote_race_sheet">>
<<include "_abomination_race_sheet">>
/* Custom */
<<include "_hybrid_race_sheet">>
<<include "_custom_race_sheet">>Choices are shown:
<label><<radiobutton '$ChoicesWindow' true autocheck>>Outside the main window</label>
<label><<radiobutton '$ChoicesWindow' false autocheck>>Inside the main window</label>This version comes with a new combat system so here is a small guide to explain how it works.
A list of randomized moves are given to you every turn.
You can chain a move if its Link Value (the number in the top right corner) is adjacent to that of the following move.
So a move with a value of 3 can only combo with moves that have a value of 2 or 4!
Here's a little visual guide:
<<print setup.displayEncounterImage("https://sombreve.github.io/Dawn-of-Corruption-Site/Images/combo_guide.png")>>
\<<run setup.choice("[[Continue->Village]]");>><p style="text-align:center">
<h2>Directed by</h2>
Sombreve
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/sombreve.png][http://www.furaffinity.net/user/sombreve/]]
<h2>Art by</h2>
Winty
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/wintech3112.gif][http://www.furaffinity.net/user/wintech3112/]]
Deriaz
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/deriaz.jpg][https://www.furaffinity.net/user/deriaz]]
Zhenelov
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/lerchief2007.gif][https://www.furaffinity.net/user/lerchief2007/]]
Rethxus
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/rethxus.gif][http://www.furaffinity.net/user/rethxus/]]
<h2>Programming by</h2>
Sombreve
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/sombreve.png][http://www.furaffinity.net/user/sombreve/]]
Myst
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/mechanodragon.gif][http://www.furaffinity.net/user/mechanodragon/]]
<h2>Voice Acting/Sounds by</h2>
AudioElk
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/deckardholiday.gif][https://www.furaffinity.net/user/deckardholiday]]
Mithane
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/mithane.gif][https://www.furaffinity.net/user/mithane]]
Dandicoot
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/dandicoot.gif][https://www.furaffinity.net/user/dandicoot]]
GiganticBeast
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/giganticbeast.jpg][https://twitter.com/Gigantic_Beast]]
<h2>Music by</h2>
Ardolf
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/ardolf.jpg][https://twitter.com/ardolf_official]]
<h2>Written by</h2>
Sombreve
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/sombreve.png][http://www.furaffinity.net/user/sombreve/]]
Jagaz
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/jagaz.gif][http://www.furaffinity.net/user/jagaz/]]
Delta-Tango
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/delta-tango.gif][https://www.furaffinity.net/user/Delta-Tango]]
Ninjasy2667
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/ninjasy2667.gif][https://www.furaffinity.net/user/ninjasy2667]]
Draco of Zeradaith
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/draco.png][http://www.furaffinity.net/user/dracoofzeradaith/]]
Dragonien
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/dragonien.gif][https://www.furaffinity.net/user/dragonien/]]
<h2>UI By</h2>
Sombreve
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/sombreve.png][http://www.furaffinity.net/user/sombreve/]]
Musclemage
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/musclemage.jpg][https://twitter.com/the_musclemage]]
Ghost
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/ghostboy.gif][https://www.furaffinity.net/user/ghostboy]]
Furyalpha123
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/Furyalpha123.jpg][https://www.furaffinity.net/user/Furyalpha123]]
<h2>Localization By</h2>
Project Red (Simplified Chinese)
<h2>Marketing Assets By</h2>
Winty
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/wintech3112.gif][http://www.furaffinity.net/user/wintech3112/]]
Psychedelic Hydra
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/hydra.jpg][https://www.furaffinity.net/user/lsdscreen/]]
<h2>Testing By</h2>
Vertigo
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/vertigolapse.gif][https://www.furaffinity.net/user/vertigolapse]]
Whiteleo
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/whiteleo.gif][https://www.furaffinity.net/user/whiteleo]]
Shadowlost25
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/shadowlost25.gif][https://www.furaffinity.net/user/shadowlost25]]
Legdim
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/legdim.png][https://www.furaffinity.net/user/legdim/]]
bassman97
[img[https://sombreve.github.io/Dawn-of-Corruption-Site/Images/bassman97.gif][https://www.furaffinity.net/user/bassman97]]
Tomi
Garryn
AizelTheUncultured
MikeLovesPecs
</p><<include Credits>>
\<<run setup.choice("[[Return->GameplaySettings]]");>><<include Credits>>
\<<run setup.choice("[[Main Menu->Main Menu]]");>><<include Ending_Text>>
<<silently>>
<<run setup.triggerCompleteGame()>>
<</silently>>
<<include Ending_Reset>><<include Ending_Text>>
<<include Ending_Reset>>This world has reached the end of its story, cracked under the weight of its own ambitions.
Yet the seed of corruption lives on; In other lands yet untouched by your will to become something more.
[[Be Reborn->Name Setup][$Intro_Passage = "intro_wake_up"]]<<silently>>
<<set $CycleBackup = $Cycle +1>>
<<set $NameBackup = $CharacterSheet_Player.info.name>>
<<run setup.backupEndingAbilities()>>
<<run setup.backupAchievements()>>
<<run setup.triggerEndingsPostWorldCallbacks()>>
<<set $Cycle = $CycleBackup>>
<<set $CharacterSheet_Player.info.name = $NameBackup>>
<<silently>>
<<run SimpleAudio.lists.clear()>>
<<run SimpleAudio.tracks.clear()>>
<<include StoryReInit>>
<</silently>>
<<run setup.loadBackedUpAchievements()>>
<<unset $CycleBackup>>
<<unset $NameBackup>>
<</silently>>(It seems that this save file is from an older version than the current one.)
(Unfortunately, older files are not compatible with this version.)
(This save can still be used to start a new game with all the Essence, Achievements and XP you've gathered so far.)
[[Do it->Reload_Unsupported][$Intro_Passage = "intro_wake_up"]]
\<<run setup.choice("[[Go back to the Golden Bastion->Village]]");>><<set $Version = 10806.4>>
<<set $VersionStr = '0.8.6.4'>>
<<set $ExpBackup = $Exp>>
<<set $EssenceBackup = $Essence>>
\<<run setup.stopSoundActions()>>
\<<run setup.stopAllRealizationPackages()>>
<<include Ending_NotComplete>>
<<set $Exp = $ExpBackup>>
<<set $Essence = $EssenceBackup>>
<<unset $ExpBackup>>
<<unset $EssenceBackup>>Are you sure you want to quit?
All unsaved progress will be lost.
<div class="ExitPopupButtons">
\<<button "Cancel">>
\<<run Dialog.close();>>
\<</button>>
\
\<<button "Exit">>
\<<run window.close();>>
\<</button>>
</div><h2>Will you choose how the world is seen and felt?</h2>
<<include MeasurementSystem>>
<<include ChoicesWindowSettings>>
\<<run setup.choice("[[Credits->CreditsInGame]]");>>
\<<run setup.choice("[[Return->Village]]");>><<nobr>>
<<unset $AbilityOptions>>
<<set $LevelUpParams =
{
hp: {name: "Health", value: $CharacterSheet_Player.fight.hp},
stamina: {name: "Stamina", value: $CharacterSheet_Player.fight.stamina},
strength: {name: "Strength", value: $CharacterSheet_Player.fight.strength},
arousalGain: {name: "Arousal Gain per turn", value: $CharacterSheet_Player.fight.arousalGain},
limitBreaks: {name: "Size Limit Break", value: $CharacterSheet_Player.info.limitBreaks.points},
}>>
<<set setup.LevelUpStatGainTable =
[
{
hp: 20,
limitBreaks: 8,
},
{
strength: 5,
stamina: 4,
},
{
hp: 20,
limitBreaks: 8,
},
{
stamina: 4,
strength: 5,
},
{
hp: 20,
limitBreaks: 8,
},
{
strength: 5,
stamina: 4,
},
]>>
<</nobr>>
<h1>With experience, power builds within you.</h1>
<<print setup.displayStatsUp($CharacterSheet_Player, $LevelUpParams)>>
You can acquire a new ability. Click on it to select it.
<<print setup.displayAbilitiesUp($CharacterSheet_Player)>>
\<<run setup.choice("[[Apply->Village][setup.levelUp($CharacterSheet_Player, $LevelUpParams)]]");>>
\<<run setup.choice("[[Cancel->Village]]");>><div class="MainMenu">\
Warning, this game is nsfw 18+ only.
It features male gay characters and fetishes such as:
Muscle Growth, Macro, Hyper, Goo, Transformation, Corruption
If you like the game and wanna see the next versions in advance, check out
Patreon: https://www.patreon.com/sombreve
Gumroad: https://gumroad.com/sombreve
[[Credits->CreditsMainMenu]]
<h1>[[Begin->Name Setup][$Intro_Passage = "intro_start"]]</h1>
\<<if $Debug>>
<h2>[[Debug: Skip Intro after Name->Name Setup][$Intro_Passage = "intro_skip"]]</h2>
\<</if>>
</div>There is only one way to measure the size and scale of magnificent beasts.
<label><<radiobutton '$Measurement' setup.Units.IMPERIAL autocheck>>Imperial</label>
<label><<radiobutton '$Measurement' setup.Units.METRIC autocheck>>Metric</label>\<<if $ChoicesWindow == false>>
/* Creates a Choice window in the passage to be populated in the PassageDone section*/
<<print setup.addDOMHook("internalChoiceWindow", setup.createInternalChoiceWindow)>>
\<</if>>/* Populate all the DOM Hooks we have made. */
\<<run setup.populateDOMHooks();>><<run document.getElementById("story").scroll(0,0);>>
<<print setup.printActiveSound()>>Your soul is one of a kind, and the gods have taken notice.
Will you cross the gate between memories? All character and story progress will be lost.
Reaching into a new cycle will be noticed by otherworldly onlookers. As such, your achievements will grant special abilities upon starting a new playthrough.
<div class="ExitPopupButtons">
\<<button "Cancel">>
\<<run Dialog.close();>>
\<</button>>
\
\<<button "Begin a new journey">>
\<<run Dialog.close();>>
\<<set $Intro_Passage = "intro_wake_up">>
\<<goto [[Ending_NotComplete]]>>
\<</button>>
</div>This save file is not compatible with the current version, but you can still restart a new life with your accumulated Essence, Achievements and Exp.
<div class="ExitPopupButtons">
\<<button "Begin a new journey">>
\<<run Dialog.close();>>
\<<set $Intro_Passage = "intro_wake_up">>
\<<goto [[Reload_Unsupported]]>>
\<</button>>
</div>\<<if $CorruptSidebar>>
\<<print setup.displayCorruptSidebar(State.variables.CharacterSheet_Player)>>
\<<link [img[setup.getSaveIcon($CharacterSheet_Player)]]>><<script>>setup.saves()<</script>><</link>>
\<<link [img[setup.getSaveIcon($CharacterSheet_Player)]]>><<script>>setup.saves()<</script>><</link>>
\<<link [img[setup.getSaveIcon($CharacterSheet_Player)]]>><<script>>setup.saves()<</script>><</link>>
\<<link [img[setup.getSaveIcon($CharacterSheet_Player)]]>><<script>>setup.saves()<</script>><</link>>
\<<link [img[setup.getSaveIcon($CharacterSheet_Player)]]>><<script>>setup.saves()<</script>><</link>>
\<<link [img[setup.getSaveIcon($CharacterSheet_Player)]]>><<script>>setup.saves()<</script>><</link>>
\<<link [img[setup.getSaveIcon($CharacterSheet_Player)]]>><<script>>setup.saves()<</script>><</link>>
\<<link [img[setup.getSaveIcon($CharacterSheet_Player)]]>><<script>>setup.saves()<</script>><</link>>
\<<link [img[setup.getSaveIcon($CharacterSheet_Player)]]>><<script>>setup.saves()<</script>><</link>>
\<<link [img[setup.getSaveIcon($CharacterSheet_Player)]]>><<script>>setup.saves()<</script>><</link>>
\<<link [img[setup.getSaveIcon($CharacterSheet_Player)]]>><<script>>setup.saves()<</script>><</link>>
\<<link [img[setup.getSaveIcon($CharacterSheet_Player)]]>><<script>>setup.saves()<</script>><</link>>
\<<link [img[setup.getSaveIcon($CharacterSheet_Player)]]>><<script>>setup.saves()<</script>><</link>>
\<<link [img[setup.getSaveIcon($CharacterSheet_Player)]]>><<script>>setup.saves()<</script>><</link>>
\<<link [img[setup.getSaveIcon($CharacterSheet_Player)]]>><<script>>setup.saves()<</script>><</link>>
\<<link [img[setup.getSaveIcon($CharacterSheet_Player)]]>><<script>>setup.saves()<</script>><</link>>
\<<link [img[setup.getSaveIcon($CharacterSheet_Player)]]>><<script>>setup.saves()<</script>><</link>>
\<<link [img[setup.getSaveIcon($CharacterSheet_Player)]]>><<script>>setup.saves()<</script>><</link>>
\<<link [img[setup.getSaveIcon($CharacterSheet_Player)]]>><<script>>setup.saves()<</script>><</link>>
\<<link [img[setup.getSaveIcon($CharacterSheet_Player)]]>><<script>>setup.saves()<</script>><</link>>
\<<link [img[setup.getResetIcon($CharacterSheet_Player)]]>><<script>>setup.restart()<</script>><</link>>
\<<else>>
\<<print setup.displayInfoStats(State.variables.CharacterSheet_Player)>>
\<<print setup.displayFightStats(State.variables.CharacterSheet_Player)>>
\<div class='SidebarIcons'>
\<<link [img[setup.getAchievementIcon($CharacterSheet_Player)]]>><<script>>setup.achievements()<</script>><</link>>
\<<link [img[setup.getSaveIcon($CharacterSheet_Player)]]>><<script>>setup.saves()<</script>><</link>>
\<<link [img[setup.getResetIcon($CharacterSheet_Player)]]>><<script>>setup.restart()<</script>><</link>>
\<img src='https://sombreve.github.io/Dawn-of-Corruption-Site/UI/VoidUI/text_logo/text_logo_color_bg_small.png'>
\</div>
\<div class="sidebar-footer">
\ <div class="volume-control-container">
\ <span class="volumeLabel">
\ <<link Volume>> <<script>>setup.volumeMenu()<</script>><</link>>
\ </span>
\ <<volume>>
\ </div>
\
\<<if $SpecialBuild>>
\ <div class="VersionNumber"><<print "v" + $VersionStr + " s">></div>
\<<else>>
\ <div class="VersionNumber">v$VersionStr</div>
\<</if>>
\</div>
\<</if>>WIP: Language Selection
<<set _langSelect = settings.lang_label>>
<<listbox "_langSelect" autoselect>>
<<optionsfrom setup.i18n.labels()>>
<</listbox>>
\<<done>>
\<<script>>
$('#listbox--langselect').on('change', function (event){
settings.lang_label = State.temporary.langSelect;
setup.i18n.initLanguage();
setup.i18n.changeLanguage();
});
<</script>>
<</done>>
<<include exampleText>>Language Example:
"Now Ya'll listen here..."Exemple de langue:
"~Omellete Du Fromage~"