Skip to content
Snippets Groups Projects
Commit 2b7b25b0 authored by svornost's avatar svornost
Browse files

Agent Company to JS. Fixes bugs related to AS Dump, enables jumping away from the passage.

parent 0246efad
No related branches found
No related tags found
No related merge requests found
......@@ -54,3 +54,12 @@ new App.DomPassage(
return huskSwapSelection(getSlave(V.AS));
}
);
new App.DomPassage(
"Agent Company",
() => {
V.nextButton = "Continue";
V.nextLink = "Neighbor Interact";
return App.UI.SlaveInteract.agentCompany(getSlave(V.AS));
}, ["jump-from-safe"]
);
/** Reassign your agent's lover to the arcology run by your agent
* @param {App.Entity.SlaveState} lover
* @returns {DocumentFragment}
*/
App.UI.SlaveInteract.agentCompany = function(lover) {
const frag = document.createDocumentFragment();
const agent = getSlave(lover.relationshipTarget);
const neighborArcology = V.arcologies.find((a) => agent.ID === a.leaderID);
const {he, him, his, himself} = getPronouns(lover);
const {He2, His2, he2, him2, his2, wife2} = getPronouns(agent).appendSuffix('2');
const {say} = getEnunciation(lover);
const {say: say2} = getEnunciation(agent);
// make the assignment
assignJob(lover, Job.AGENTPARTNER);
// clear rivalry if applicable
const rival = getSlave(lover.rivalryTarget);
if (rival) {
rival.rivalry = 0;
rival.rivalryTarget = 0;
}
lover.rivalry = 0;
lover.rivalryTarget = 0;
// output text
let r = [];
r.push(`Working in ${neighborArcology.name}'s penthouse office, ${agent.slaveName} gets a video call from you. Naturally, ${his2} personal assistant program has been instructed to give these the highest priority, and your face appears in front of ${him2} immediately. ${He2} greets you properly, and asks you what ${he2} can do to serve you. You tell ${him2} you're planning to send one of your slaves over to ${his2} arcology to assist ${him2}. Exchanges of this kind are neither unusual nor particularly interesting, so a slight look of perplexity clouds ${agent.slaveName}'s face as ${he2} wonders why this merits a personal call. Normally, ${S.HeadGirl ? S.HeadGirl.slaveName : V.assistant.name} would handle it with ${him2} directly.`);
App.Events.addParagraph(frag, r);
r = [];
r.push(`${His2} question is answered when you bring ${contextualIntro(agent, lover)} in close, putting ${him} in ${agent.slaveName}'s view. ${agent.slaveName}'s ${App.Desc.eyesColor(agent)} fly open with pleased surprise, but before ${he2} can speak, ${lover.slaveName} goes first.`);
if (!canTalk(lover)) {
r.push(`Unable to speak ${himself}, ${he} simply makes a heart shape with ${his} ${hasBothArms(lover) ? "hands" : "hand"} in view of the video call, and blows ${his} ${lover.relationship === 4 ? "lover" : wife2} a kiss.`);
} else {
r.push(Spoken(lover, `"Hi ${lover.relationship === 4 ? 'lover' : 'sweetheart'},"`));
r.push(`${he} ${say}s in a syrupy tone.`);
r.push(Spoken(lover, `"Miss me?"`));
}
App.Events.addParagraph(frag, r);
r = [];
r.push(`${agent.slaveName} smiles back at ${him}, glowing with pleasure, and responds with exaggerated arousal.`);
switch (agent.fetish) {
case "submissive":
r.push(Spoken(agent, `"Looking forward to sleeping in your arms, babe,"`), `the submissive`);
break;
case "cumslut":
r.push(Spoken(agent, `"Can't wait to kiss you, babe,"`), `the orally fixated`);
break;
case "humiliation":
r.push(Spoken(agent, `"Can't wait to take you right in the middle of the plaza here,"`), `the exhibitionist`);
break;
case "buttslut":
r.push(Spoken(agent, `"I can't wait to fuck you in your hot little ass,"`), `the anally fixated`);
break;
case "boobs":
r.push(Spoken(agent, `"Looking forward to feeling your breasts again,"`), `the boob-loving`);
break;
case "pregnancy":
r.push(Spoken(agent, `"Can't wait to share all the pregnant girls here with you,"`), `the impregnation fetishist`);
break;
case "dom":
r.push(Spoken(agent, `"Looking forward to shoving you facedown, bitch,"`), `the dominant`);
break;
case "sadist":
r.push(Spoken(agent, `"Looking forward to making you bite the pillow again, bitch,"`), `the sadistic`);
break;
case "masochist":
r.push(Spoken(agent, `"Can't wait to feel you hurt me again, babe,"`), `the masochistic`);
break;
default:
r.push(Spoken(agent, `"Babe, I can't wait to ${hasAnyArms(agent) ? "give you a hug and" : ""} tell you about ${neighborArcology.name},"`), `the loving`);
}
r.push(`leader of an entire arcology ${say2}s.`);
App.Events.addParagraph(frag, r);
return frag;
};
:: Agent Company [nobr]
<<set $nextButton = "Continue", $nextLink = "AS Dump", $returnTo = "Neighbor Interact">>
<<= assignJob(getSlave($AS), "live with your agent")>>
<<if getSlave($AS).rivalry > 0>>
<<set _i = $slaveIndices[getSlave($AS).rivalryTarget]>>
<<if def _i>>
<<set $slaves[_i].rivalry = 0, $slaves[_i].rivalryTarget = 0>>
<<else>>
@@.red;Error, slave rival not found.@@
<</if>>
<<set getSlave($AS).rivalry = 0, getSlave($AS).rivalryTarget = 0>>
<</if>>
<<set _neighborArcology = $arcologies.find(function(s) { return $subSlave.ID == s.leaderID; })>>
<<setLocalPronouns $subSlave 2>>
Working in _neighborArcology.name's penthouse office, $subSlave.slaveName gets a video call from you. Naturally, _his2 personal assistant program has been instructed to give these the highest priority, and your face appears in front of _him2 immediately. _He2 greets you properly, and asks you what _he2 can do to serve you. You tell _him2 you're planning to send one of your slaves over to _his2 arcology to assist _him2. Exchanges of this kind are neither unusual nor particularly interesting, so a slight look of perplexity clouds $subSlave.slaveName's face as _he2 wonders why this merits a personal call. Normally, <<if $HeadGirlID>>_S.HeadGirl.slaveName<<else>>$assistant.name<</if>> would handle it with _him2 directly.
<br><br>
_His2 question is answered when you bring <<= contextualIntro($subSlave, getSlave($AS))>> in close, putting $him in $subSlave.slaveName's view. $subSlave.slaveName's <<= App.Desc.eyesColor($subSlave)>> fly open with pleased surprise, but before _he2 can speak, <<= getSlave($AS).slaveName>> goes first.
<<if !canTalk(getSlave($AS))>>
Unable to speak $himself, $he simply makes a heart shape with $his hand<<if hasBothArms(getSlave($AS))>>s<</if>> in view of the video call, and blows $his <<if getSlave($AS).relationship == 4>>lover<<else>>_wife2<</if>> a kiss.
<<else>>
<<run Enunciate(getSlave($AS))>>
"Hi <<if getSlave($AS).relationship == 4>>lover<<else>><<s>>weetheart<</if>>," $he <<say>>s in a syrupy tone. "Mi<<ss>> me?"
<</if>>
<br><br>
$subSlave.slaveName smiles back at $him, glowing with pleasure, and responds with exaggerated arousal.
<<run Enunciate($subSlave)>>
<<switch $subSlave.fetish>>
<<case "submissive">>
"Looking forward to <<s>>leeping in your arm<<s>>, babe," the submissive
<<case "cumslut">>
"Can't wait to ki<<ss>> you, babe," the orally fixated
<<case "humiliation">>
"Can't wait to take you right in the middle of the pla<<z>>a here," the exhibitionist
<<case "buttslut">>
"I can't wait to fuck you in your hot little a<<ss>>," the anally fixated
<<case "boobs">>
"Looking forward to feeling your brea<<s>>t<<s>> again," the boob-loving
<<case "pregnancy">>
"Can't wait to <<sh>>are all the pregnant girl<<s>> here with you," the impregnation fetishist
<<case "dom">>
"Looking forward to <<sh>>oving you fa<<c>>edown, bitch," the dominant
<<case "sadist">>
"Looking forward to making you bite the pillow again, bitch," the sadistic
<<case "masochist">>
"Can't wait to feel you hurt me again, babe," the masochistic
<<default>>
"Babe, I can't wait to <<if hasAnyArms($subSlave)>>give you a hug and <</if>>tell you about _neighborArcology.name," the loving
<</switch>>
leader of an entire arcology <<say>>s.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment