diff --git a/src/js/porn.js b/src/js/porn.js index f646c25d68c73825a8a718a4be70d13bb9313073..c9ee2b723ba6ab8c4e29f9c95d910eb8f20dcca5 100644 --- a/src/js/porn.js +++ b/src/js/porn.js @@ -620,10 +620,14 @@ App.Porn.getGenresByType = function(type) { return _.values(App.Porn.Genre).filter((g) => g.type === type); }; -/** Returns a string with the pipe-separated SugarCube links necessary to set any valid genre for this slave. +/** Returns the links necessary to set any valid porn genre for this slave. * @param {string} page SugarCube passage name to redirect to when the link is clicked + * @param {App.Entity.SlaveState} slave + * @returns {HTMLElement} */ App.Porn.genreChoiceLinks = function(page, slave) { - let makeLink = function(genre) { return App.UI.link(genre.uiName(), (s, g) => s.porn.focus = g.focusName, [slave, genre], page); }; - return this.getAllGenres().filter((g) => g.valid(slave)).map((g) => makeLink(g)).reduce((acc, cur) => `${acc} | ${cur}`); + let makeLink = function(genre) { return App.UI.DOM.link(genre.uiName(), (s, g) => s.porn.focus = g.focusName, [slave, genre], page); }; + let links = this.getAllGenres().filter((g) => g.valid(slave)).map(makeLink); + links.push(App.UI.DOM.link("No focus", (s) => s.porn.focus = "none", [slave], page)); + return App.UI.DOM.generateLinksStrip(links); }; diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw index c80382f4ac85b0cd74029d32c7a8df79057db214..a8fb058ab4e56565d3236713c9025b0efecc246b 100644 --- a/src/uncategorized/slaveInteract.tw +++ b/src/uncategorized/slaveInteract.tw @@ -316,7 +316,7 @@ <<else>> You are focusing attention on the <<= getSlave($AS).porn.focus>> aspect of $his content. <</if>> - <<= App.Porn.genreChoiceLinks("Slave Interact", getSlave($AS))>> | [[No focus|Slave Interact][getSlave($AS).porn.focus = "none"]] + <<includeDOM App.Porn.genreChoiceLinks("Slave Interact", getSlave($AS))>> <</if>> <</if>> <</if>>