<<set $EDreamLiveDons.Mode = "fromInput">>\n<div class="ulHeader"><h4>''New Donsair''</h4></div><center>\n/% ========================================= %/\t\n<p>Enter your donsair's <b>current stats</b> below, then click the button to continue.<br> \nIf you don't have a value, you can leave it empty.</p>\n</center>\n\n<hr><div>\n<div class="indent">\n\t\n\t<div class="vSpace"><b>Name</b> <<textbox "$EDreamDonsInput.Name" "Donsair" autofocus>></div><br>\n\n\t<div class="vSpace">\n\t\t<b>Species</b> <<textbox "$EDreamDonsInput.Species" "Revec*ai">> \n\t\t<b>Subspecies/Subtype</b> <<textbox "$EDreamDonsInput.Subspec" "Subspecies">>\n\t</div><br>\n\n\t<center><div class="vSpace">\n\t\t<b>Self-Concept</b> <<listbox "$EDreamDonsInput.Self">>\n\t\t\t\t<<optionsfrom $EDreamLiveDons.Selfs>><</listbox>> \n\n\t\t<b>Personality</b> <<listbox "$EDreamDonsInput.Mood">>\n\t\t\t\t<<optionsfrom $EDreamLiveDons.Moods>><</listbox>>\n\t</div><br>\n\n\t<div class="vSpace2">\n\t\t<b>Image</b> <<listbox "$EDreamDonsInput.img">>\n\t\t\t\t<<optionsfrom $EDreamLiveDons.Images>><</listbox>>\n\n\t\t<b>Home Region</b> <<listbox "$EDreamDonsInput.Region">>\n\t\t\t\t<<optionsfrom $EDreamLiveDons.Regions>><</listbox>>\n\t</div></center>\n\n</div>\n</div><hr>\n/% ========================================= %/\t\n<div><b>Statistics</b><br>\n\n<div class="indent">\n<b>Vitality</b> <<textbox "$EDreamDonsInput.vit" "0">> \n<b>Armor</b> <<textbox "$EDreamDonsInput.arm" "0">><br>\n<b>Strength</b> <<textbox "$EDreamDonsInput.str" "0">> \n<b>Will</b> <<textbox "$EDreamDonsInput.will" "0">><br>\n<b>Finesse</b> <<textbox "$EDreamDonsInput.fin" "0">>\n<b>Perception</b> <<textbox "$EDreamDonsInput.perc" "0">> \n<p></p>\n</div>\n\n<div class="indent">\n<b>Whimsy</b> <<textbox "$EDreamDonsInput.whim" "0">> \n<b>Sanity</b> <<textbox "$EDreamDonsInput.san" "0">><br>\n</div>\n\n<div class="indent">\n<b>Gain</b> <<textbox "$EDreamDonsInput.gain" "0">>\n<b>Stretch</b> <<textbox "$EDreamDonsInput.stretch" "0">><br>\n<b>Stock Multiplier</b> <<textbox "$EDreamDonsInput.fxStockX" "0">>\n</div>\n\n</div><hr>\n/% ========================================= %/\t\n<div><b>Proportions</b><br>\n<div class="indent">\n<b>Chest</b> <<textbox "$EDreamDonsInput.chest" "0">> \n<b>Belly</b> <<textbox "$EDreamDonsInput.belly" "0">><br>\n<b>Limbs</b> <<textbox "$EDreamDonsInput.limbs" "0">> \n<b>Body</b> <<textbox "$EDreamDonsInput.body" "0">><br>\n<b>Thighs</b> <<textbox "$EDreamDonsInput.thigh" "0">> \n<b>Tail</b> <<textbox "$EDreamDonsInput.tail" "0">><br>\n</div>\n\n</div><hr>\n\n/% ========================================= %/\t\n<div><b>Production</b><br>\n<div class="indent">\n<b>Egg Type</b> <<textbox "$EDreamDonsInput.prodEgg" "">> \n<b>Milk Type</b> <<textbox "$EDreamDonsInput.prodMilk" "">><br>\n<b>Venom Type</b> <<textbox "$EDreamDonsInput.prodVenom" "">><br>\n</div>\n\n/% ========================================= %/\t\n<hr><h5>Genetics</h5>\n<b>Color/Pattern</b><br>\n<div class="indent">\n<b>Base Color</b> <<textbox "$EDreamDonsInput.baseColor" "">> \n\t<b>Base Dilute</b> <<textbox "$EDreamDonsInput.baseDilute" "">><br> \n<b>Belly Color</b> <<textbox "$EDreamDonsInput.bellyColor" "">> \n\t<b>Belly Dilute</b> <<textbox "$EDreamDonsInput.bellyDilute" "">><br> \n<b>Complimentary Color</b> <<textbox "$EDreamDonsInput.compColor" "">> \n\t<b>Complimentary Dilute</b> <<textbox "$EDreamDonsInput.compDilute" "">><br> \n<b>Marking Color</b> <<textbox "$EDreamDonsInput.markColor" "">> \n\t<b>Marking Dilute</b> <<textbox "$EDreamDonsInput.markDilute" "">><br> \n\n<b>Pattern Presence/Location</b> <<textbox "$EDreamDonsInput.patPres" "">><br> \n\n<b>White Spotting</b> <<textbox "$EDreamDonsInput.whiteSpot" "">>\n<b>Grey</b> <<textbox "$EDreamDonsInput.Grey" "">> <br>\n\n<b>Freckle</b> <<textbox "$EDreamDonsInput.Freckle" "">>\n<b>Gradient</b> <<textbox "$EDreamDonsInput.Gradient" "">><br>\n<b>Filigree</b> <<textbox "$EDreamDonsInput.Filigree" "">>\n<b>Harlequin</b> <<textbox "$EDreamDonsInput.Harlequin" "">><br> \n<b>Stripe</b> <<textbox "$EDreamDonsInput.Stripe" "">>\n<b>Ink</b> <<textbox "$EDreamDonsInput.Ink" "">><br> \n<b>Anomaly</b> <<textbox "$EDreamDonsInput.Anomaly" "">>\n</div>\n\n<b>Phenotype</b>\n<div class="indent">\n<b>Ear</b> <<textbox "$EDreamDonsInput.phnEar" "">> \n\t<b>Snoot</b> <<textbox "$EDreamDonsInput.phnSnoot" "">><br> \n<b>Eye</b> <<textbox "$EDreamDonsInput.phnEye" "">> \n\t<b>Pupil</b> <<textbox "$EDreamDonsInput.phnPupil" "">><br> \n<b>Head Decoration</b> <<textbox "$EDreamDonsInput.phnHeadDeco" "">> \n\t<b>Rierbien</b> <<textbox "$EDreamDonsInput.phnRbien" "">><br> \n<b>Teeth</b> <<textbox "$EDreamDonsInput.phnTeeth" "">> \n\t<b>Paw</b> <<textbox "$EDreamDonsInput.phnPaw" "">><br> \n<b>Limb</b> <<textbox "$EDreamDonsInput.phnLimb" "">> \n\t<b>Bean</b> <<textbox "$EDreamDonsInput.phnBean" "">><br> \n<b>Scale</b> <<textbox "$EDreamDonsInput.phnScale" "">> \n\t<b>Belly</b> <<textbox "$EDreamDonsInput.phnBelly" "">><br> \n<b>Spine</b> <<textbox "$EDreamDonsInput.phnSpine" "">> \n\t<b>Tail</b> <<textbox "$EDreamDonsInput.phnTail" "">><br> \n<b>Wing</b> <<textbox "$EDreamDonsInput.phnWing" "">> \n\t<b>Theme</b> <<textbox "$EDreamDonsInput.phnTheme" "">><br>\n</div>\n\n/% ========================================= %/\t\n<hr><b>Mutations</b><br>\n<div class="indent">\n<<checkbox "$EDreamDonsInput.mutViviere" false true>> <b>Viviere</b> \n<<checkbox "$EDreamDonsInput.mutOvian" false true>> <b>Ovian</b> \n<<checkbox "$EDreamDonsInput.mutSlime" false true>> <b>Slime</b> \n<<checkbox "$EDreamDonsInput.mutPudding" false true>> <b>Pudding</b> \n<<checkbox "$EDreamDonsInput.mutBalloon" false true>> <b>Balloon</b> \n<<checkbox "$EDreamDonsInput.mutPlushie" false true>> <b>Plushie</b><br>\n \n<<checkbox "$EDreamDonsInput.mutAdiposa" false true>> <b>Adiposa</b> \n<<checkbox "$EDreamDonsInput.mutConfection" false true>> <b>Confection</b> \n<<checkbox "$EDreamDonsInput.mutEpicurean" false true>> <b>Epicurean</b> \n<<checkbox "$EDreamDonsInput.mutEvian" false true>> <b>Evian</b> \n<<checkbox "$EDreamDonsInput.mutHoneypot" false true>> <b>Honeypot</b> <br>\n\n<<checkbox "$EDreamDonsInput.mutGreenhouse" false true>> <b>Greenhouse</b> \n<<checkbox "$EDreamDonsInput.mutRosebelly" false true>> <b>Rosebelly</b> \n</div>\n\n<hr><b>Transformations</b><br>\n<div class="indent">\n<<checkbox "$EDreamDonsInput.tfRealization" false true>> <b>Realization</b> \n<<checkbox "$EDreamDonsInput.tfFyynmorph" false true>> <b>Fyynmorph</b> \n<<checkbox "$EDreamDonsInput.tfOmniphage" false true>> <b>Omniphage</b> \n<<checkbox "$EDreamDonsInput.tfMirlait" false true>> <b>Mirlait</b> \n</div>\n\n</div><hr>\n/% ========================================= %/\t\n\n<center><div><b>\n<<button "Start!" "DonsairMain">><</button>>\n\n</b></div></center>
/% Header image animation, for fun! %/\n/% either("donsAngy","donsBreathe","donsHappy","donsBounce","donsDance","donsJiggle","donsStretch","donsWeeOo","donsSeethe") %/\n<<set _animate = "donsSeethe">> \n\n<center><h2><b>EVERDREAM <span class="cMagenta">♦</span></b> Living Donsair</h2>\n<div style="height:200px;"><<print "<img class='" + _animate +"' src='img/revecai_" + either("classic","diamond") + ".png'>">></div>\n<h3>Changelog</h3><hr></center>\n\n<div class="indent" style="font-size: .8rem;">\t\n\t<b>03/25/26</b><ul>\n\t<li>UI: Moved the Genetics panel beneath the Actions panel.</li> \n\t<li>UI: Added Not Yet Implemented (NYI) signifiers on buttons that haven't been coded yet.</li> \n\t<li>Animation: Added Seethe animation, for when that gueggy is SO going to bite you.</li> \n\t<li>AI: Began implementing Trust for Angry and Grumpy donsair. Their reactions will change-- and even improve-- based on how they feel about you!</li> \n\t<li>Animation: Tweaked Stretch animation to stabilize the image vertically.</li> \n\t<li>Engine/UI: Added Groom (for now, equivalent to Pet) and Kiss actions.</li> \n\t<li>Engine: Added tick tracking in preparation of time-based processes to come.</li> \n\t<li>Engine/UI: Added first pass of Autonomous Mode, which will allow the donsair to act freely (not relying on player clicks) based on its personality.<br>\n\tActions will automatically disable Auto Mode, but it can always be toggled on again.</li>\n\t<li>Bugfix: Calm Down! should now force the breathing animation again.</li>\n\t<li>Engine: Added Explore Processor, in preparation for the region-based Micro-Explore system.<br>\n\t\tDonsair will explore their home region with you-- usually. Some Personality types may offer resistance..!</li>\n\t<li>Changelog: Added punctuation to bullet lists, because not punctuating sentences drives me <i>insane</i>...</li>\n\t<li>Donsair Input: Added Random options for Self-Concept, Personality, and Image, which will select one at random for you during processing.</li>\n\t<li>Donsair Input: Renamed "Mood" to "Personality".</li>\n\t<li>Engine: Added "Self Concept" option for Donsair, which will determine pronouns used when acting/reacting to interactions.</li>\n\t<li>Engine: Added Action Processor for determining Donsair responses based on mood and circumstance; species and phenotype-based modifiers to come.</li>\n\t<li>Engine/UI: Added Pet button.</li>\n\t<li>UI: Replaced Refresh button with Watch button.</li>\n\t<li>Engine/UI: Added toggleable Genetics tab.</li>\n\t<li>Donsair Input: Switched the position of checkboxes for Mutations and Transformations.</li>\n</ul></div>\n\n\n<div class="indent" style="font-size: .8rem;">\t\n\t<b>03/24/26</b><ul>\n\t<li>Added a "Calm Down!" button to the Donsair UI for if you need to get your gueggy to stop doing backflips all over the menu bar.</li>\n\t<li>Added a temporary refresh button to the Donsair UI for testing purposes.</li>\n\t<li>Added gentle randomization of Donsair animations based on mood category.</li>\n\t<li>New test animations/moods: Dance, Bounce, Jiggle, Stretch, WeeOo.</li>\n\t<li>Went ahead and added a dedicated Changelog page, and a button for it on the main screen.</li>\n\t<li>Made some progress on building the Donsair Interface + setting up the Input data process.</li>\n\t\t<ul><li>Built the div frames for the donsair interface and started setting up inner contents.</li>\n\t\t<li>Donsair Name, Image, and Mood are all being saved and read from successfully.</li>\n\t\t</ul>\n\t<li>Added the changelog. <i>Oh shit,</i></li>\n\t\t<ul><li>Eventually I'll give it its own page and link/button, rather than just slapping it at the bottom of the title.</li></ul>\n\t<li>Added W3.css so I can hopefully make things relatively clean from the start, UI-wise.</li>\n\t<li>Started building the Donsair Input page.</li>\n\t<li>Did some experimental CSS animations for Donsair living/mood animations \n\t(Happy, Breathing, Angy-- yes, spelled exactly like that).</li>\n</ul></div>\n\n\n<h4>Pending Tasks</h4>\n<div class="indent" style="font-size: .8rem;"><ul>\n\t<li><b>Implement Donsair Input (In Progress)</b></li>\n\t<li><b>Build Donsair Main Interface (likely in tandem with implementing Donsair input function) (In Progress)</b></li>\n\t<li>Implement Global Species Database Data</li>\n\t\t<ul><li>Enable pulling relevant donsair data-- interactions, squeaks, genepools, etc--<br> \n\t\tfrom the GDB as-needed; this will allow for building individual species sub-applets<br> \n\t\tand functions such as new donsair generation per-species</li></ul>\n\t<li>Implement GDB Explore Data (regional micro-encounters)</li>\n\n</ul></div>\n\n<center><p><b>\n<<button "Back" "Start">><</button>>\n</b></p></center>
<<set $EDreamLiveDons = {\n\tDisplayTitle: "EVERDREAM♦",\n\tSpecVer: "Development Freeform",\n\tStartGame: 0, Mode: "", \n\ttimeTick: 0,\n\tNewRoll: 0, Roll: "",\n\tpAction: "", \n\tautoMode: 0, timerSpeed: 8,\n\tgeneTab: 0,\n\n\tSelfs: ["random","none/neuter","they/them","she/her","he/him","jei/jem"],\n\tMoods: ["random","angry","calm","playful","happy","bouncy","energetic","grumpy","goofy","weird"],\n\tRegions: ["Chimre","Dreamsong","Mooncradle"],\n\tImages: ["random","classic","diamond"]\n }>>\n\n<<set $EDreamDonsair = {\n\tName: "Donsair",\n\tSpecies: "", Subspec: "",\n\timg: "", baseMood: "", \n\tanimOverride: "", actOverride: "",\n\tasleep: 0, Trust: 0,\n\tAnim: "donsHappy",\n\tMuts: ["ph mutation"],\n\tSelf: "none/neuter", pnRef1: "it", pnRef2: "it", pnPos: "its", pnSelf: "itself",\n\thomeRegion: "", \n\tNewRoll: 0, Roll: "", \n\tAction: "actGreet", lastAct: "",\n\tMode: "", \n\n\tmaxVit: 0, vit: 0, \n\tarm: 0, str: 0, will: 0, fin: 0, perc: 0, whim: 0, san: 0,\n\tchest: 0, belly: 0, body: 0, limbs: 0, thighs: 0, tail: 0,\n\tgain: 0, stretch: 0, stock: 0, \n\tmaxBloat: 0, bloat: 0, \t\n\n\teggType: "", eggs: 0,\n\tmilkType: "", milk: 0,\n\tvenomType: "", venom: 0,\n }>>\n\n<<set $EDreamDonsDNA = {\n\tvit: 0, arm: 0, str: 0, will: 0, fin: 0, perc: 0, whim: 0, san: 0,\n\tchest: 0, belly: 0, body: 0, limbs: 0, thighs: 0, tail: 0,\n\tgain: 0, stretch: 0,\n\n\teggs: "", milk: "", venom: "",\n\tclutchRate: 0, milkRate: 0, venomRate: 0,\n\n\tbaseColor: "", baseDilute: "",\n\tbellyColor: "", bellyDilute: "",\n\tcompColor: "", compDilute: "",\n\tmarkColor: "", markDilute: "",\n\tpatPres: "",\n\twhiteSpot: "", Grey: "",\n\tFreckle: "", Gradient: "",\n\tFiligree: "", Harlequin: "",\n\tStripe: "", Ink: "",\n\tAnomaly: "",\n\n\tphnEar: "", phnSnoot: "", \n\tphnEye: "", phnPupil: "",\n\tphnHeadDeco: "", phnRbien: "", phnTeeth: "",\n\tphnPaw: "", phnLimb: "", \n\tphnBean: "", phnScale: "",\n\tphnBelly: "", phnSpine: "", phnTail: "",\n\tphnWing: "", phnTheme: "",\n }>>\n\n\n<<set $EDreamDonsInput = {\n\tName: "", img: "", Species: "Revec*ai", Subspec: "", \n\tSelf: "none/neuter", Mood: "happy", Region: "",\n\n\tvit: 0, arm: 0, str: 0, will: 0, fin: 0, perc: 0, whim: 0, san: 0,\n\tchest: 0, belly: 0, body: 0, limbs: 0, thighs: 0, tail: 0,\n\tgain: 0, stretch: 0, \n\n\teggType: "", milkType: "", venomType: "",\n\tclutchRate: 0, milkRate: 0, venomRate: 0,\n\n\tbaseColor: "", baseDilute: "",\n\tbellyColor: "", bellyDilute: "",\n\tcompColor: "", compDilute: "",\n\tmarkColor: "", markDilute: "",\n\tpatPres: "",\n\twhiteSpot: "", Grey: "",\n\tFreckle: "", Gradient: "",\n\tFiligree: "", Harlequin: "",\n\tStripe: "", Ink: "",\n\tAnomaly: "",\n\n\tphnEar: "", phnSnoot: "", \n\tphnEye: "", phnPupil: "",\n\tphnHeadDeco: "", phnRbien: "", phnTeeth: "",\n\tphnPaw: "", phnLimb: "", \n\tphnBean: "", phnScale: "",\n\tphnBelly: "", phnSpine: "", phnTail: "",\n\tphnWing: "", phnTheme: "",\n\n\tmutViviere: 0, mutOvian: 0,\n\tmutSlime: 0, mutPudding: 0,\n\tmutBalloon: 0, mutPlushie: 0,\n\tmutAdiposa: 0, mutConfection: 0,\n\tmutEpicurean: 0, mutEvian: 0,\n\tmutHoneypot: 0, mutGreenhouse: 0,\n\tmutRosebelly: 0,\n\n\ttfRealization: 0, tfFyynmorph: 0,\n\ttfOmniphage: 0, tfMirlait: 0,\t\n\n }>>\n\n\n\n\n
<<if $EDreamDonsair.animOverride neq "">>\n\t<<set $EDreamDonsair.Anim = $EDreamDonsair.animOverride>>\n\n<<else>>\n\t<<switch $EDreamDonsair.baseMood>>\n\t\t<<case "happy" "cheerful" "playful">>\n\t\t\t<<set $EDreamDonsair.Anim = either("donsHappy","donsDance")>>\n\n\t\t<<case "bouncy" "energetic">>\n\t\t\t<<set $EDreamDonsair.Anim = either("donsHappy","donsBounce","donsDance","donsJiggle","donsStretch")>>\n\n\t\t<<case "goofy" "weird">>\n\t\t\t<<set $EDreamDonsair.Anim = either("donsJiggle","donsStretch","donsDance","donsBreathe","donsWeeOo")>>\n\n\t\t<<case "grumpy">>\n\t\t\t<<set $EDreamDonsair.Anim = either("donsBreathe","donsAngy")>>\n\n\t\t<<case "angry">>\n\t\t\t<<set $EDreamDonsair.Anim = either("donsBreathe","donsAngy","donsSeethe")>>\n\n\t\t<<default>>\n\t\t\t<<set $EDreamDonsair.Anim = "donsBreathe">>\n\t<</switch>>\n\n<<endif>>\n\n/% Cleanup %/\n\t<<set $EDreamDonsair.animOverride = "">>\n
Config.history.controls = false;\nConfig.history.maxStates = 1;\n\nConfig.macros.maxLoopIterations = 2000;\n\nConfig.passages.nobr = true;\n\nConfig.ui.stowBarInitially = false;\n\nConfig.saves.autoload = false;\n\nConfig.saves.id = "ED-LDonsair-Gueggy";\n\n\n// Autosaves on passages tagged with "doAutosave"\nConfig.saves.autosave = ["doAutosave"]; \n\n// Transition shit; DO NOT REMOVE THIS OR THE TRANSITION CSS!\nConfig.passages.transitionOut = 5;
// Hotkeys\n//====================================================================\n \n(function() { \n//===========================\n//==================================================================== \t\t\n\tdocument.onkeyup=function(e){ var e = e || window.event;\n//==================================================================== \n\t\n// W\n\t\tif(e.which === 87) { if(document.getElementById("navW") != null) { \t\t\n\t\t\tdocument.getElementById("navW").click();}}\t\t\t\t\n// A\n\t\tif(e.which === 65) { if(document.getElementById("navA") != null) { \t\t\n\t\t\tdocument.getElementById("navA").click();}}\t\t\t\t\n// S\n\t\tif(e.which === 83) { if(document.getElementById("navS") != null) {\t\t\n\t\t\tdocument.getElementById("navS").click();}}\t\t\t\t\t\t\n// D\n\t\tif(e.which === 68) { if(document.getElementById("navD") != null) {\t\t\n\t\t\tdocument.getElementById("navD").click();}}\t\t\t\t\t\t\n// F\n\t\tif(e.which === 70) { if(document.getElementById("navF") != null) {\t\t\n\t\t\tdocument.getElementById("navF").click();}}\t\n// B\n\t\tif(e.which === 66) { if(document.getElementById("navB") != null) {\t\t\n\t\t\tdocument.getElementById("navB").click();}}\t\t\n// C\n\t\tif(e.which === 67) { if(document.getElementById("navC") != null) {\t\t\n\t\t\tdocument.getElementById("navC").click();}}\t\t\t\t\t\t\n// E\n\t\tif(e.which === 69) { if(document.getElementById("navE") != null) {\t\t\n\t\t\tdocument.getElementById("navE").click();}}\t\t\t\t\t\t\t\n// G\n\t\tif(e.which === 71) { if(document.getElementById("navG") != null) {\t\t\n\t\t\tdocument.getElementById("navG").click();}}\t\t\t\t\t\n// H\n\t\tif(e.which === 72) { if(document.getElementById("navH") != null) {\t\t\n\t\t\tdocument.getElementById("navH").click();}}\t\t\t\t\t\t\n// I\n\t\tif(e.which === 73) { if(document.getElementById("navI") != null) {\t\t\n\t\t\tdocument.getElementById("navI").click();}}\t\t\t\t\t\t\t\n// J\n\t\tif(e.which === 74) { if(document.getElementById("navJ") != null) {\t\t\n\t\t\tdocument.getElementById("navJ").click();}}\t\t\t\t\t\t\t\n// K\n\t\tif(e.which === 75) { if(document.getElementById("navK") != null) {\t\t\n\t\t\tdocument.getElementById("navK").click();}}\t\t\t\t\t\t\t\t\n// L\n\t\tif(e.which === 76) { if(document.getElementById("navL") != null) {\t\t\n\t\t\tdocument.getElementById("navL").click();}}\t\t\t\t\t\t\n// M\n\t\tif(e.which === 77) { if(document.getElementById("navM") != null) {\t\t\n\t\t\tdocument.getElementById("navM").click();}}\t\t\t\n// N\n\t\tif(e.which === 78) { if(document.getElementById("navN") != null) {\t\t\n\t\t\tdocument.getElementById("navN").click();}}\t\t\t\t\t\t\t\n// O\n\t\tif(e.which === 79) { if(document.getElementById("navO") != null) {\t\t\n\t\t\tdocument.getElementById("navO").click();}}\t\t\t\t\t\t\t\n// P\n\t\tif(e.which === 80) { if(document.getElementById("navP") != null) {\t\t\n\t\t\tdocument.getElementById("navP").click();}}\t\t\t\t\t\t\n// Q\n\t\tif(e.which === 81) { if(document.getElementById("navQ") != null) {\t\t\n\t\t\tdocument.getElementById("navQ").click();}}\t\n// R\n\t\tif(e.which === 82) { if(document.getElementById("navR") != null) {\t\t\n\t\t\tdocument.getElementById("navR").click();}}\t\n// T\n\t\tif(e.which === 84) { if(document.getElementById("navT") != null) {\t\t\n\t\t\tdocument.getElementById("navT").click();}}\t\n// U\n\t\tif(e.which === 85) { if(document.getElementById("navU") != null) {\t\t\n\t\t\tdocument.getElementById("navU").click();}}\t\n// V\n\t\tif(e.which === 86) { if(document.getElementById("navV") != null) {\t\t\n\t\t\tdocument.getElementById("navV").click();}}\t\t\t\t\t\n// X\n\t\tif(e.which === 88) { if(document.getElementById("navX") != null) {\t\t\n\t\t\tdocument.getElementById("navX").click();}}\t\n// Y\n\t\tif(e.which === 89) { if(document.getElementById("navY") != null) {\t\t\n\t\t\tdocument.getElementById("navY").click();}}\t\n// Z\n\t\tif(e.which === 90) { if(document.getElementById("navZ") != null) {\t\t\n\t\t\tdocument.getElementById("navZ").click();}}\t\n\t\t\t\n\n//==================================================================== \n//Numerical\n\t\n// 0\n\t\tif(e.which === 48) { if(document.getElementById("nav0") != null) {\t\t\n\t\t\tdocument.getElementById("nav0").click();}}\t\t\t\n\n// 1\n\t\tif(e.which === 49) { if(document.getElementById("nav1") != null) {\t\t\n\t\t\tdocument.getElementById("nav1").click();}}\t\t\t\t\n\t\t\t\t\t\n// 2\n\t\tif(e.which === 50) { if(document.getElementById("nav2") != null) {\t\t\n\t\t\tdocument.getElementById("nav2").click();}}\t\t\t\n\n// 3\n\t\tif(e.which === 51) { if(document.getElementById("nav3") != null) {\t\t\n\t\t\tdocument.getElementById("nav3").click();}}\t\t\t\n\n// 4\n\t\tif(e.which === 52) { if(document.getElementById("nav4") != null) {\t\t\n\t\t\tdocument.getElementById("nav4").click();}}\t\t\t\n\n// 5\n\t\tif(e.which === 53) { if(document.getElementById("nav5") != null) {\t\t\n\t\t\tdocument.getElementById("nav5").click();}}\t\t\t\t\n\t\t\t\t\t\n// 6\n\t\tif(e.which === 54) { if(document.getElementById("nav6") != null) {\t\t\n\t\t\tdocument.getElementById("nav6").click();}}\t\t\t\n// 7\n\t\tif(e.which === 55) { if(document.getElementById("nav7") != null) {\t\t\n\t\t\tdocument.getElementById("nav7").click();}}\t\t\t\t\n\t\t\t\t\t\n// 8\n\t\tif(e.which === 56) { if(document.getElementById("nav8") != null) {\t\t\n\t\t\tdocument.getElementById("nav8").click();}}\t\t\t\n\n// 9\n\t\tif(e.which === 57) { if(document.getElementById("nav9") != null) {\t\t\n\t\t\tdocument.getElementById("nav9").click();}}\t\t\t\n\n\n\n\n//==================================================================== \n\t\t\t}}());\n//==================================================================== \n//==================================================================== \n
/% =========={ Store the prior action %/\n\t<<set $EDreamDonsair.lastAct = $EDreamDonsair.Action>>\n\n/% =========={ Action Override %/\n<<if $EDreamDonsair.actOverride neq "">>\n\t<<set $EDreamDonsair.Action = $EDreamDonsair.actOverride>>\n\n<<else>><<switch $EDreamDonsair.Action>>\n/% =========={ Greeting %/\n\t<<case "actGreet">><<switch $EDreamDonsair.baseMood>>\n\t\t\t<<case "happy" "cheerful">>\n\t\t\t\t<<set $EDreamDonsair.Action = either("chirps ","squeaks ") + "hello to you!">>\n\n\t\t\t<<case "playful" "bouncy" "energetic">>\n\t\t\t\t<<set $EDreamDonsair.Action = either("chirps hello to you~!","squeaks hello to you~!","is SO happy to see you..!!")>>\n\n\t\t\t<<case "goofy" "weird">>\n\t\t\t\t<<set $EDreamDonsair.Action = either("chirps ","squeaks ","croaks ") + " hello to you~!">>\n\n\t\t\t<<case "grumpy" "angry">>\n\t\t\t\t<<set $EDreamDonsair.Action = either("gives you a look, then glances away again.","shoots you a glance.","doesn't react to your arrival...","just looks at you.","takes note of you, but doesn't react.")>>\n\n\t\t\t<<default>>\n\t\t\t\t<<set $EDreamDonsair.Action = either("inclines its head in slight greeting to you.","gives a little trill of greeting.")>>\n\t\t<</switch>>\n\n/% =========={ Idling/Autonomous %/ /% Todo - trust variants %/\n\t<<case "actIdleLiving">><<switch $EDreamDonsair.baseMood>>\n\t\t\t<<case "happy" "cheerful" "playful" "bouncy" "energetic">>\n\t\t\t\t<<set $EDreamDonsair.Action = either("is having a good time!","seems in bright spirits.","seems playful!","fell asleep...","autoExplore")>>\n\t\t\t\t<<if $EDreamDonsair.Action eq "fell asleep...">><<set $EDreamDonsair.animOverride = "donsBreathe"; $EDreamDonsair.asleep = 1>>\n\t\t\t\t<<elseif $EDreamDonsair.Action eq "autoExplore">><<set $EDreamDonsair.animOverride = "donsBounce">>\n\t\t\t\t\t<<set $EDreamDonsair.Action = "went off exploring " + $EDreamDonsair.homeRegion + " on " + $EDreamDonsair.pnPos + " own, and returned home with [thing xQt] for you!">>\t\t\t\t\t\n\t\t\t\t\t<<endif>>\n\n\t\t\t<<case "goofy" "weird">>\n\t\t\t\t<<set $EDreamDonsair.Action = either("is having a good time!","seems in bright spirits.","seems playful!","actWeird","actChill","fell asleep..!","autoExplore")>>\n\t\t\t\t<<if $EDreamDonsair.Action eq "actWeird">><<set $EDreamDonsair.Action = either("is goofing off!","is being weird!","is acting silly!","is... doing something odd again...")>>\n\t\t\t\t\t<<set $EDreamDonsair.animOverride = either("donsWeeOo","donsStretch")>>\n\t\t\t\t<<elseif $EDreamDonsair.Action eq "actChill">><<set $EDreamDonsair.Action = "seems to be experiencing a moment of calm, for now...">>\n\t\t\t\t\t<<set $EDreamDonsair.animOverride = "donsBreathe">>\n\t\t\t\t<<elseif $EDreamDonsair.Action eq "fell asleep..!">><<set $EDreamDonsair.animOverride = "donsBreathe"; $EDreamDonsair.asleep = 1>>\n\t\t\t\t<<elseif $EDreamDonsair.Action eq "autoExplore">><<set $EDreamDonsair.animOverride = "donsBounce">>\n\t\t\t\t\t<<set $EDreamDonsair.Action = "went off exploring on " + $EDreamDonsair.pnPos + " own, and returned home with [thing xQt] for you!">>\t\t\t\t\t\n\t\t\t\t\t<<endif>>\n\n\t\t\t<<case "grumpy" "angry">><<set $EDreamDonsair.animOverride = either("donsBreathe","donsBreathe","")>>\n\t\t\t\t<<set $EDreamDonsair.Action = either("ignores you.","looks annoyed...","glances at you and sighs...","looks like " + $EDreamDonsair.pnRef1 + " wants to bite you.","watches you carefully.","settles down, but keeps their eye on you...")>>\n\t\t/% Pronoun grammar fix %/\n\t\t\t\t\t\t<<if $EDreamDonsair.Action eq "looks like they wants to bite you.">><<set $EDreamDonsair.Action = "looks like they want to bite you.">>\n\t\t\t\t\t\t<<elseif $EDreamDonsair.Action eq "looks like jei wants to bite you.">><<set $EDreamDonsair.Action = "looks like jei want to bite you.">><<endif>>\n\n\t\t\t<<default>>\n\t\t\t\t<<set $EDreamDonsair.Action = either("seems to be relaxing...","looks calm.","squeaks at you!","makes little noises to " + $EDreamDonsair.pnSelf + ".","fell asleep..!")>>\n\t\t\t\t<<if $EDreamDonsair.Action eq "fell asleep..!">><<set $EDreamDonsair.animOverride = "donsBreathe"; $EDreamDonsair.asleep = 1>>\n\t\t\t\t<<endif>>\n\t\t<</switch>>\n\n/% =========={ Pet/Groom %/\n\t<<case "actPetted" "actGroomed">><<switch $EDreamDonsair.baseMood>>\n\t\t<<case "angry">> /% Trust variants %/\n\t\t\t<<if $EDreamDonsair.Trust gte 55>> /% Trusting %/\n\t\t\t\t<<set $EDreamDonsair.animOverride = "donsBreathe"; $EDreamDonsair.Trust += either(0,1)>>\n\t\t\t\t<<set $EDreamDonsair.Action = either("purrs faintly...","purrs softly.","purrs softly.","purrs deeply!","leans into your touch!","seems to trust you..!","looks content...")>>\n\n\t\t\t<<elseif $EDreamDonsair.Trust gte 35>> /% Accepting %/\n\t\t\t\t<<set $EDreamDonsair.animOverride = "donsBreathe">>\n\t\t\t\t<<set $EDreamDonsair.Action = either("makes a soft little sound of confusion.","makes a soft little sound.","purrs weakly...","purrs weakly...","leans into your touch...","seems to be warming up to you...")>>\t\n\n\t\t\t<<switch $EDreamDonsair.Action>>\n\t\t\t\t<<case "makes a soft little sound." "purrs weakly..." "leans into your touch..." "seems to be warming up to you...">>\n\t\t\t\t\t<<set $EDreamDonsair.Action = $EDreamDonsair.Trust += either(0,0,1)>>\n\t\t\t\t<<default>>\n\t\t\t<</switch>>\n\n\t\t\t<<elseif $EDreamDonsair.Trust gte 20>> /% Wary %/\n\t\t\t\t<<set $EDreamDonsair.Action = either("allows it...","makes a little sound of apprehension.","holds perfectly still.","purrs weakly.","tenses up!","leans away from your paw!","chatters " + $EDreamDonsair.pnPos + " teeth irritably!","looks like " + $EDreamDonsair.pnRef1 + " wants to bite you.","snaps at you!","tries to bite you!","bites you!!")>>\n\t\t\t\n\t\t\t<<switch $EDreamDonsair.Action>>\n\t\t\t\t<<case "purrs weakly." "allows it...">>\n\t\t\t\t\t<<set $EDreamDonsair.Trust++; $EDreamDonsair.animOverride = "donsBreathe">>\n\t\t\t\t<<case "snaps at you!" "tries to bite you!" "bites you!!">>\n\t\t\t\t\t<<set $EDreamDonsair.animOverride = either("donsAngy","donsSeethe")>>\n\t\t\t\t<<default>><<set $EDreamDonsair.animOverride = either("donsAngy","donsBreathe")>>\n\t\t\t<</switch>>\n\n\t\t\t<<else>> /% Mistrustful %/\n\t\t\t\t<<set $EDreamDonsair.Action = either("allows it...","tenses up!","leans away from your paw!","growls softly...","looks like " + $EDreamDonsair.pnRef1 + " wants to bite you.","snaps at you!","tries to bite you!","bites you!!")>>\n\t\t\t\n\t\t\t<<switch $EDreamDonsair.Action>>\n\t\t\t\t<<case "allows it...">>\n\t\t\t\t\t<<set $EDreamDonsair.Trust++; $EDreamDonsair.animOverride = "donsBreathe">>\n\t\t\t\t<<case "snaps at you!" "tries to bite you!" "bites you!!">>\n\t\t\t\t\t<<set $EDreamDonsair.animOverride = either("donsAngy","donsSeethe")>>\n\t\t\t\t<<default>><<set $EDreamDonsair.animOverride = either("donsBreathe","donsAngy","donsSeethe")>>\n\t\t\t<</switch>>\n\n\t\t\t\t\t/% Pronoun grammar fix %/\n\t\t\t\t\t\t<<if $EDreamDonsair.Action eq "looks like they wants to bite you.">><<set $EDreamDonsair.Action = "looks like they want to bite you.">>\n\t\t\t\t\t\t<<elseif $EDreamDonsair.Action eq "looks like jei wants to bite you.">><<set $EDreamDonsair.Action = "looks like jei want to bite you.">><<endif>>\n\t\t\t<<endif>>\n\n\t\t<<case "grumpy">> /% Trust variants %/\n\t\t\t<<if $EDreamDonsair.Trust gte 35>> /% Trusting %/\n\t\t\t\t<<set $EDreamDonsair.animOverride = "donsBreathe">>\n\t\t\t\t<<set $EDreamDonsair.Trust += either(0,1); $EDreamDonsair.Action = either("purrs contentedly...","purrs softly.","purrs deeply!","leans into your touch!","really seems to trust you..!","looks happy...")>>\n\n\t\t\t<<elseif $EDreamDonsair.Trust gte 20>> /% Accepting %/\n\t\t\t\t<<set $EDreamDonsair.animOverride = "donsBreathe">>\n\t\t\t\t<<set $EDreamDonsair.Action = either("makes a soft little sound of confusion.","makes a soft little sound.","purrs faintly...","purrs faintly...","leans into your touch!","seems to be warming up to you...")>>\t\n\t\t\n\t\t\t<<switch $EDreamDonsair.Action>>\n\t\t\t\t<<case "makes a soft little sound." "purrs faintly..." "leans into your touch!" "seems to be warming up to you...">>\n\t\t\t\t\t<<set $EDreamDonsair.Trust++; $EDreamDonsair.animOverride = "donsBreathe">>\n\t\t\t\t<<default>><<set $EDreamDonsair.animOverride = "donsBreathe">>\n\t\t\t<</switch>>\n\n\t\t\t<<elseif $EDreamDonsair.Trust gte 10>> /% Wary %/\n\t\t\t\t<<set $EDreamDonsair.Action = either("makes a soft little sound of apprehension.","purrs softly.","purrs faintly...","tenses up!","holds perfectly still.","leans away from your paw!","looks uncomfortable.","looks like " + $EDreamDonsair.pnRef1 + " wants to bite you.","tries to bite you!")>>\n\t\t\t\n\t\t\t<<switch $EDreamDonsair.Action>>\n\t\t\t\t<<case "purrs softly." "purrs faintly...">>\n\t\t\t\t\t<<set $EDreamDonsair.Trust++; $EDreamDonsair.animOverride = "donsBreathe">>\n\t\t\t\t<<case "makes a soft little sound of apprehension." "tenses up!" "holds perfectly still" "leans away from your paw!" "looks uncomfortable.">>\n\t\t\t\t\t<<set $EDreamDonsair.animOverride = either("donsAngy","donsBreathe")>>\n\t\t\t\t<<default>><<set $EDreamDonsair.animOverride = either("donsAngy","donsSeethe")>>\n\t\t\t<</switch>>\n\n\t\t\t<<else>> /% Mistrustful %/\n\t\t\t\t<<set $EDreamDonsair.Action = either("allows it...","makes a soft little sound of apprehension.","holds perfectly still.","tenses up!","leans away from your paw!","growls softly...","looks like " + $EDreamDonsair.pnRef1 + " wants to bite you.","tries to bite you!")>>\n\t\t\t\n\t\t\t<<switch $EDreamDonsair.Action>>\n\t\t\t\t<<case "allows it...">>\n\t\t\t\t\t<<set $EDreamDonsair.Trust++; $EDreamDonsair.animOverride = "donsBreathe">>\n\t\t\t\t<<case "makes a soft little sound of apprehension." "tenses up!" "holds perfectly still" "leans away from your paw!">>\n\t\t\t\t\t<<set $EDreamDonsair.animOverride = either("donsAngy","donsBreathe")>>\n\t\t\t\t<<default>><<set $EDreamDonsair.animOverride = either("donsAngy","donsSeethe")>>\n\t\t\t<</switch>>\n\n\t\t\t\t\t/% They pronoun grammar fix %/\n\t\t\t\t\t\t<<if $EDreamDonsair.Action eq "looks like they wants to bite you.">><<set $EDreamDonsair.Action = "looks like they want to bite you.">>\n\t\t\t\t\t\t<<elseif $EDreamDonsair.Action eq "looks like jei wants to bite you.">><<set $EDreamDonsair.Action = "looks like jei want to bite you.">><<endif>>\n\t\t\t<<endif>>\n\n\t\t<<default>><<set $EDreamDonsair.animOverride = either("donsBreathe","donsBreathe","donsDance","donsStretch")>>\n\t\t\t<<set $EDreamDonsair.Action = either("purrs contentedly...","purrs brightly!","purrs happily!","purrs LOUDLY!","squiggles joyfully under your paw!","leans into your touch!")>>\n\t\t<</switch>>\n\n/% =========={ Kiss %/\n\t<<case "actKissed">><<switch $EDreamDonsair.baseMood>>\n\t\t<<case "angry">> /% Trust variants %/\t\t\t\n\t\t\t<<if $EDreamDonsair.Trust gte 30>> /% Accepting %/ <<set $EDreamDonsair.animOverride = "donsBreathe">>\n\t\t\t\t<<set $EDreamDonsair.Trust += either(0,0,1); $EDreamDonsair.Action = either("allows it...","allows it. You think " + $EDreamDonsair.pnRef1 +" looks a little bit happier...")>>\n\n\t\t\t<<elseif $EDreamDonsair.Trust gte 20>> /% Wary %/\n\t\t\t\t<<set $EDreamDonsair.Action = either("tenses up...","allows it...","allows it. You think " + $EDreamDonsair.pnRef1 +" looks a little bit happier...","grumbles at you, but doesn't fight...","makes a little indignant sound and leans away!")>>\n\t\t\t\n\t\t\t<<switch $EDreamDonsair.Action>>\n\t\t\t\t<<case "allows it..." "allows it. You think it looks a little bit happier..." "allows it. You think they looks a little bit happier..." "allows it. You think he looks a little bit happier..." "allows it. You think she looks a little bit happier..." "allows it. You think jei looks a little bit happier...">>\n\t\t\t\t\t<<set $EDreamDonsair.Trust++; $EDreamDonsair.animOverride = "donsBreathe">>\n\t\t\t\t<<default>><<set $EDreamDonsair.animOverride = either("donsAngy","donsSeethe")>>\n\t\t\t<</switch>>\n\n\t\t\t<<else>> /% Mistrustful %/ <<set $EDreamDonsair.animOverride = either("donsAngy","donsSeethe")>>\n\t\t\t\t<<set $EDreamDonsair.Action = either("tenses up...","tries to bite you!","bites you!!","hisses angrily, warding you off!","snarls ferociously, warding you off!","makes a little indignant sound and leans away!")>>\n\t\t\t<<endif>>\n\n\t\t\t\t\t/% They pronoun grammar fix %/\n\t\t\t\t\t\t<<if $EDreamDonsair.Action eq "allows it. You think they looks a little bit happier...">><<set $EDreamDonsair.Action = "allows it. You think they look a little bit happier...">>\n\t\t\t\t\t\t<<elseif $EDreamDonsair.Action eq "allows it. You think jei looks a little bit happier...">><<set $EDreamDonsair.Action = "allows it. You think jei look a little bit happier...">><<endif>>\n\n\t\t<<case "grumpy">> /% Trust variants %/\t\t\n\t\t\t<<if $EDreamDonsair.Trust gte 30>> /% Accepting %/ <<set $EDreamDonsair.animOverride = "donsBreathe">>\n\t\t\t\t<<set $EDreamDonsair.Trust += either(0,1); $EDreamDonsair.Action = either("allows it...","allows it. You think " + $EDreamDonsair.pnRef1 + " looks a little bit happier...")>>\n\n\t\t\t<<elseif $EDreamDonsair.Trust gte 20>> /% Wary %/\n\t\t\t\t<<set $EDreamDonsair.Action = either("tenses up...","allows it...","allows it. You think " + $EDreamDonsair.pnRef1 +" looks a little bit happier...","grumbles at you, but doesn't fight...","makes a little indignant sound and leans away!")>>\n\t\t\t\n\t\t\t<<switch $EDreamDonsair.Action>>\n\t\t\t\t<<case "allows it..." "allows it. You think it looks a little bit happier..." "allows it. You think they looks a little bit happier..." "allows it. You think he looks a little bit happier..." "allows it. You think she looks a little bit happier..." "allows it. You think jei looks a little bit happier...">>\n\t\t\t\t\t<<set $EDreamDonsair.Trust++; $EDreamDonsair.animOverride = "donsBreathe">>\n\t\t\t\t<<default>><<set $EDreamDonsair.animOverride = either("donsAngy","donsSeethe")>>\n\t\t\t<</switch>>\n\n\t\t\t<<else>> /% Mistrustful %/ <<set $EDreamDonsair.animOverride = either("donsAngy","donsSeethe")>>\n\t\t\t\t<<set $EDreamDonsair.Action = either("tenses up...","tries to bite you!","bites you!!","hisses angrily, warding you off!","snarls ferociously, warding you off!","makes a little indignant sound and leans away!")>>\n\t\t\t<<endif>>\n\n\t\t\t\t\t/% Pronoun grammar fix %/\n\t\t\t\t\t\t<<if $EDreamDonsair.Action eq "You think they looks a little bit happier...">><<set $EDreamDonsair.Action = "You think they look a little bit happier...">>\n\t\t\t\t\t\t<<elseif $EDreamDonsair.Action eq "You think jei looks a little bit happier...">><<set $EDreamDonsair.Action = "You think jei look a little bit happier...">><<endif>>\n\n\t\t<<default>><<set $EDreamDonsair.animOverride = either("donsBreathe","donsBreathe","donsDance","donsStretch")>>\n\t\t\t<<set $EDreamDonsair.Action = either("squeals in delight!!","squeaks in delight!!","purrs happily!","purrs LOUDLY!","kisses you back!!")>>\n\t\t<</switch>>\n\n/% =========={ Calm Down! %/ /% Todo - trust variants %/\n\t<<case "actShh">><<set $EDreamDonsair.animOverride = "donsBreathe">><<switch $EDreamDonsair.baseMood>>\n\t\t\t<<case "grumpy" "angry">>\n\t\t\t\t<<set $EDreamDonsair.Action = either("looks pissed, but quiets.","looks like " + $EDreamDonsair.pnRef1 + " wants to bite you.")>>\n\n\t\t\t\t\t/% Pronoun grammar fix %/\n\t\t\t\t\t\t<<if $EDreamDonsair.Action eq "looks like they wants to bite you.">><<set $EDreamDonsair.Action = "looks like they want to bite you.">>\n\t\t\t\t\t\t<<elseif $EDreamDonsair.Action eq "looks like jei wants to bite you.">><<set $EDreamDonsair.Action = "looks like jei want to bite you.">><<endif>>\n\t\t\t<<default>>\n\t\t\t\t<<set $EDreamDonsair.Action = either("takes a deep breath and calms " + $EDreamDonsair.pnSelf + " for you...","stops squiggling around.","stops squiggling around, and bleps.")>>\n\t\t<</switch>>\n\n\n/% =========={ Explore! %/ /% Todo - trust variants %/\n\t<<case "actExplore">><<switch $EDreamDonsair.baseMood>>\n\t\t\t<<case "grumpy">>\n\t\t\t\t<<set $EDreamDonsair.Action = either("seems pleased with the idea, and willingly explores " + $EDreamDonsair.homeRegion + " with you!","begrudgingly explores " + $EDreamDonsair.homeRegion + " with you...","gives you a hard time as you put their lead on, but eventually, begrudgingly explores " + $EDreamDonsair.homeRegion + " with you...","gives you a hard time as you put their harness on, but eventually, begrudgingly explores " + $EDreamDonsair.homeRegion + " with you...","refusal")>>\n\n\t\t\t\t<<if $EDreamDonsair.Action eq "refusal">>\n\t\t\t\t\t<<set $EDreamDonsair.Action = either("growls when you approach with the lead!","tries to bite you!","grumbles thunderously!","throws a tantrum!","simply flops down on the floor and refuses to move.","whines loudly and at great length.") + "<br>You guess you aren't going anywhere after all...">>\n\t\t\t\t<<else>><<set $EDreamDonsair.animOverride = "donsDance">> /% Explore result %/<<include ProcessExplore>>\n\t\t\t\t<<endif>>\n\n\t\t\t<<case "angry">>\n\t\t\t\t<<set $EDreamDonsair.Action = either("begrudgingly explores " + $EDreamDonsair.homeRegion + " with you...","refusal","refusal")>>\n\t\t\t\t<<if $EDreamDonsair.Action eq "refusal">>\n\t\t\t\t\t<<set $EDreamDonsair.Action = either("growls when you approach with the lead!","tries to bite you!","bites you!","snarls ferociously!") + "<br>You guess you aren't going anywhere after all...">>\n\t\t\t\t<<else>><<set $EDreamDonsair.animOverride = "donsDance">> /% Explore result %/<<include ProcessExplore>>\n\t\t\t\t<<endif>>\n\n\t\t\t<<default>><<set $EDreamDonsair.animOverride = "donsDance">>\n\t\t\t\t<<set $EDreamDonsair.Action = "explores " + $EDreamDonsair.homeRegion + " with you!">>\n\t\t\t\t\t/% Explore result %/<<include ProcessExplore>>\n\t\t<</switch>>\n\n\n/% =========={ No Directive %/\n\t\t<<default>><<switch $EDreamDonsair.baseMood>>\n\t\t\t<<case "grumpy" "angry">>\n\t\t\t\t<<set $EDreamDonsair.Action = either("ignores you.","looks annoyed...","watches you carefully.","settles down, but keeps their eye on you...")>>\n\t\t\t<<default>>\n\t\t\t\t<<set $EDreamDonsair.Action = either("seems to be relaxing...","looks calm.","squeaks at you!","makes little noises to " + $EDreamDonsair.pnSelf + ".")>>\n\t\t<</switch>>\n\n\t<</switch>>\n\n<<endif>>\n\n/% Cleanup %/\n\t<<set $EDreamDonsair.actOverride = "">>
<center><h2><b>EVERDREAM <span class="cMagenta">♦</span></b></h2>\n<div style="height:200px;">\n<img class="donsHappy" src="img/revecai_classic.png">\n</div>\n<h3>Living Donsair - $EDreamLiveDons.SpecVer Edition</h3>\n<hr>\n<p><b>\n<<button "Input Donsair" "DonsairInput">><</button>>\n<<button "Generate Donsair (NYI)" "DonsairGenerate">><</button>>\n<<button "Load Donsair">><<script>>UI.saves();<</script>><</button>>\n</b></p>\n<p style="margin-top: -1rem"><b>\n<<button "Living Donsair Species Database (NYI)">><</button>><br>\n<<button "Changelog" "Changelog">><</button>>\n</b></p></center>
/% ======================================== %/\n/% Migrate Inputs into final objects %/\n<<if $EDreamLiveDons.Mode eq "fromInput">><<include ProcessInput>><<endif>>\n\n/% Donsair base responses %/<<include ProcessAction>>\n/% Mood animations %/<<include ProcessMood>>\n\n/% Tick timer, for time-based processes %/\n<<set $EDreamLiveDons.timeTick++>>\n\n/% ======================================== %/\n<div class="contentframe">\n/% Applet Title %/ \n\t<div class="w3-row-padding" style="margin-bottom: -1.2rem;">\n\t\t<h6><b>EVERDREAM <span class="cMagenta">♦</span></b> Living Donsair</h6>\n\t</div>\n\n/% Donsair Info "Title Bar" %/ \n\t<center><div class="w3-row-padding cardtitle">\n\t\t<h4><b><<print $EDreamDonsair.Name>></b> the \n\t\t<<if $EDreamDonsair.Subspec gt 0>><<print $EDreamDonsair.Subspec>><</if>> \n\t\t<<print $EDreamDonsair.Species>>\n\t\t</h4>\n\t</div>\n\n\n<<if $EDreamLiveDons.autoMode eq 1>> /% Auto Mode Badge %/\n\t<div class="w3-row-padding cardtitle autoBadge"><b>AUTONOMOUS MODE</b>\n\t</div>\n\n<<endif>>\n\n</center>\n/% ======================================== %/\n/% Two-Column Split Start %/\n<div class="w3-row-padding" style="display: flex; min-height: 350px;">\n\n/% ------------------------------ %/\n\t/% Left Column %/\n\t<div class="w3-half w3-container paddedcard" style="align-self: flex-end; margin-top: -2rem;">\n\t\t<center><div class="donsairPen">\n\t\t\n\t\t<<print "<img class='" + $EDreamDonsair.Anim + "' src='img/revecai_" + $EDreamDonsair.img + ".png'>">>\t\t\t\n\n\t\t</div></center>\n\t</div>\n\n/% ------------------------------ %/\n\t/% Right Column %/\n\t<div class="w3-half w3-container paddedcard rcolumn">\n\t<h6 class="titleMini">Right Column</h6><center>\n\n\t<<include DisplayStats>>\n\n\t</center></div>\n</div>/% End Columns %/\n\n/% ======================================== %/\n/% Donsair Feedback %/ <div class="w3-row-padding" style="padding-top: 1rem;"><center>\n\n\t<<print $EDreamDonsair.Name>> <<print $EDreamDonsair.Action>>\n\n</center></div>\n\n/% ======================================== %/\n/% Menu Bar %/ <div class="w3-row-padding hMenu">\n<h4 class="titleMini">Actions</h4><center>\n\n\t<<button "Watch" "DonsairMain">><<set $EDreamLiveDons.autoMode = 0; $EDreamDonsair.Action = "actIdleLiving">><</button>>\n\t<<button "Pet" "DonsairMain">><<set $EDreamLiveDons.autoMode = 0; $EDreamDonsair.Action = "actPetted">><</button>>\n\t<<button "Groom" "DonsairMain">><<set $EDreamLiveDons.autoMode = 0; $EDreamDonsair.Action = "actGroomed">><</button>>\n\t<<button "Kiss" "DonsairMain">><<set $EDreamLiveDons.autoMode = 0; $EDreamDonsair.Action = "actKissed">><</button>>\n\t<<button "Feed (NYI)" "DonsairMain">><<set $EDreamLiveDons.autoMode = 0; $EDreamDonsair.Action = "actFeed">><</button>>\n\t<<button "Calm Down!" "DonsairMain">><<set $EDreamLiveDons.autoMode = 0; $EDreamDonsair.Action = "actShh">><</button>>\n\t<<button "Explore!" "DonsairMain">><<set $EDreamLiveDons.autoMode = 0; $EDreamDonsair.Action = "actExplore">><</button>>\n\n<br>\n\n\t<<if $EDreamLiveDons.geneTab neq 1>><<button "Toggle Genetics" "DonsairMain">><<set $EDreamLiveDons.autoMode = 0; $EDreamLiveDons.geneTab = 1>><</button>>\n\t<<else>><<button "Toggle Genetics" "DonsairMain">><<set $EDreamLiveDons.autoMode = 0; $EDreamLiveDons.geneTab = 0>><</button>><<endif>>\n\n\t<<if $EDreamLiveDons.autoMode neq 1>>\n\t\t<<button "Toggle Autonomous Mode" "DonsairMain">><<set $EDreamLiveDons.autoMode = 1; $EDreamDonsair.Action = "actIdleLiving">><</button>>\n\t<<else>>\n\t\t<<button "Toggle Autonomous Mode" "DonsairMain">><<set $EDreamLiveDons.autoMode = 0; $EDreamDonsair.Action = "actIdleLiving">><</button>><<endif>>\n\n\t</center></div>\n\n\n/% ======================================== %/\n/% Genetics Tab (Toggleable) %/<<if $EDreamLiveDons.geneTab eq 1>> \n<div class="w3-row-padding hMenu" style="padding-top: 1rem;">\n<h4 class="titleMini">Genetics</h4>\n\t<div class="indent hMenu cMenu"><center>\n\t\t<<include DisplayGenetics>>\n\t</center></div>\n</div><<endif>>\n\n/% ======================================== %/\n/% Horizontal Footer %/ <div class="w3-row-padding">\n\n\t/% Footer content here, if we need it %/\n\n\t</div>\n</div>\n\n/% ======================================== %/\n/% Invisible Processes %/\n\n<<if $EDreamLiveDons.autoMode eq 1>> /% Todo; more complex AI scripts per personality %/\n\t\t<<set $EDreamLiveDons.timerSpeed = random(7,16)>> /% Gently randomize the amount of time before the donsair takes another action %/\t\n\n\t<<if $EDreamDonsair.asleep>>/% Longer timer before the donsair wakes and continues acting %/\n\t\t<<set $EDreamLiveDons.timerSpeed = random(26,72)>>\n\t\t<<print "<<timed " + $EDreamLiveDons.timerSpeed + "s>><<set $EDreamDonsair.Action = 'actIdleLiving'; $EDreamDonsair.asleep = 0>><<goto DonsairMain>><</timed>>">>\n\n\t<<else>><<print "<<timed " + $EDreamLiveDons.timerSpeed + "s>><<set $EDreamDonsair.Action = 'actIdleLiving'>><<goto DonsairMain>><</timed>>">>\n\t<<endif>>\n\n<<else>> /% If Auto Mode is off, unset the "asleep" flag. %/<<set $EDreamDonsair.asleep = 0>>\t\n<<endif>>\n
<link rel="stylesheet" href="css/w3.css">\n\n<b>EVERDREAM ♦</b> Living Donsair <br>\nDevelopment Edition\n/% this has to be manually typed for now to get the browser tab to name properly, ugh! %/
/% This is the right column!<br>\n\nTrust: <<print $EDreamDonsair.Trust>> %/
<<set $EDreamDonsair.Name = $EDreamDonsInput.Name>>\n<<set $EDreamDonsair.Species = $EDreamDonsInput.Species; $EDreamDonsair.Subspec = $EDreamDonsInput.Subspec>>\n\n/% Image setup %/\n<<if $EDreamDonsInput.img eq "random">>\n\t<<set $EDreamDonsair.img = either("classic","diamond")>>\n<<else>>\n\t<<set $EDreamDonsair.img = $EDreamDonsInput.img>>\n<<endif>>\n\n/% Personality setup %/\n<<if $EDreamDonsInput.Mood eq "random">>\n\t<<set $EDreamDonsair.baseMood = either("angry","calm","playful","happy","bouncy","energetic","grumpy","goofy","weird")>>\n<<else>>\n\t<<set $EDreamDonsair.baseMood = $EDreamDonsInput.Mood>>\n<<endif>>\n\n\t<<if $EDreamDonsair.baseMood eq "angry">><<set $EDreamDonsair.Trust = random(0,6)>>\n\t<<elseif $EDreamDonsair.baseMood eq "grumpy">><<set $EDreamDonsair.Trust = random(6,17)>>\n\t<<else>><<set $EDreamDonsair.Trust = 100>>/% Only relevant for potentially aggressive donsair %/<<endif>>\n\n\n/% Those nouns have gone pro! %/\n<<if $EDreamDonsInput.Self eq "random">>\n\t<<set $EDreamDonsInput.Self = either("none/neuter","they/them","she/her","he/him","jei/jem")>><<endif>>\n\n<<set $EDreamDonsair.Self = $EDreamDonsInput.Self>>\n\t<<switch $EDreamDonsair.Self>>\n\t\t<<case "they/them">>\n\t\t\t<<set $EDreamDonsair.pnRef1 = "they"; $EDreamDonsair.pnRef2 = "them"; $EDreamDonsair.pnPos = "their"; $EDreamDonsair.pnSelf = "themself">>\n\t\t<<case "she/her">>\n\t\t\t<<set $EDreamDonsair.pnRef1 = "she"; $EDreamDonsair.pnRef2 = "her"; $EDreamDonsair.pnPos = "her"; $EDreamDonsair.pnSelf = "herself">>\n\t\t<<case "he/him">>\n\t\t\t<<set $EDreamDonsair.pnRef1 = "he"; $EDreamDonsair.pnRef2 = "him"; $EDreamDonsair.pnPos = "his"; $EDreamDonsair.pnSelf = "himself">>\n\t\t<<case "jei/jem">>\n\t\t\t<<set $EDreamDonsair.pnRef1 = "jei"; $EDreamDonsair.pnRef2 = "jem"; $EDreamDonsair.pnPos = "jeir"; $EDreamDonsair.pnSelf = "jemself">>\n\t\t<<default>>\n\t\t\t<<set $EDreamDonsair.pnRef1 = "it"; $EDreamDonsair.pnRef2 = "it"; $EDreamDonsair.pnPos = "its"; $EDreamDonsair.pnSelf = "itself">>\n\t<</switch>>\n\n\n<<set $EDreamDonsair.homeRegion = $EDreamDonsInput.Region>>\n\n\n\n\n\n/% Finish; Unflag Input mode %/\n<<set $EDreamLiveDons.Mode = "">>
/* ============================================ */\n/* ============================================ */\n/* Transitions*/\n/* ============================================ */\n\n* {\n -o-transition-property: none !important;\n -moz-transition-property: none !important;\n -ms-transition-property: none !important;\n -webkit-transition-property: none !important;\n transition-property: none !important;\n\t-ms-overflow-style: none; /* IE and Edge */\n\tscrollbar-width: none; /* Firefox */\n}\n\nbody::-webkit-scrollbar { display: none; }\n\n.error-view { background-color: #677eb6; }\n\n\n/* Development Tools */\n\n.cardHilite {\n\tbackground-color: red !important;\n\tborder: 2px solid #1a7be1 !important;\n\tborder-radius: 3px !important;\n}\n.cardOutline {\n\tborder: 2px solid #4b4a6c !important;\n\tborder-radius: 3px !important;\n}\n\n\n/* ============================================ */\n/* Styling */\n\n.contentframe {\n\tpadding: 1.5rem;\n\tpadding-top: 2rem;\n\tmargin-top: -1rem;\n\tz-index: 0;\n}\n\n.indent { margin-left: 3rem; }\n.titleMini { margin-top: -0.6rem; margin-left: 1rem; }\n\n.autoBadge { \n\tbackground-color: #ff5f939e;\n\twidth: 33%; height: 3rem;\n\tpadding: .5rem !important;\n\tmargin-top: 0.2rem !important;\n\tborder: 1px solid #4b4a6c;\n}\n\n.cardtitle { \n\tborder-bottom: 1px solid #4b4a6c;\n\tmax-width: 75%;\n}\n.paddedcard { margin: 1.5rem; }\n.rcolumn { \n\tpadding: 0.8rem;\n\t\tpadding-top: 1rem !important;\n\tborder: 1px solid #4b4a6c;\n}\n\n.hMenu { \n\tmargin-top: 1.2rem;\n\tmargin-bottom: -0.8rem;\n\tpadding: 0.8rem !important;\n\tborder: 1px solid #4b4a6c;\n}\n\n.cMenu { \n\tmargin: initial;\n\tmargin-left: auto; \n\tmargin-right: auto; \n}\n\n.vSpace { margin: -0.8rem; }\n.vSpace2 { margin: -0.6rem; }\n\n.spoilerHL { margin-top: 1rem; font-size: 0.6rem; color: #c5c9ff; }\n.spoilerInfo { font-size: 0.8rem; color: #000; }\n\n.ulHeader { \n\tposition: relative; left: -2.5rem;\n\tborder-bottom: 1px solid white; \n\tmargin-bottom: 1rem; \n}\n\n.intro { font-size: 0.8rem; font-style: oblique; color: #50A5CE; }\n.script { color: #C49C00; font-style: oblique; font-family: serif; font-size: 1.8rem; }\n\n.item { color: #00a8a8; font-size: 0.8rem; }\n.trap { color: #e30075; font-size: 0.8rem; }\n\ninput[type="text"] { \n\tmargin-bottom: 0.3rem;\n\tmin-width: initial;\n}\n\nbutton { \n\tline-height: 0.5; \n\tpadding: .6em;\n\tmargin: .2em;\n\tmargin-bottom: 0.3rem !important;\n }\n.btn { \n\tcolor: #2355b3;\n\tbackground-color: #fcfdfd;\n\tborder: 1px solid #a27200;\n\tmargin-left: 0.2rem; margin-bottom: 0.3rem; }\n.btnClick { margin-left: 0.4rem; color: #68D5FF; }\n.btnClick:hover { color: #FF0CB3; text-decoration: underline; }\n\n.roll, .rollAlleles, .rollPlaintxt { \n\tfont-size: 0.8rem; background-color: #fff; color: #090B97;\n\tborder: 0.1rem solid #a27200; text-shadow: 0.15rem 0.15rem 0.15rem #005BE840; padding: 1.2rem;\n}\n\n.roll { display: block; }\n\n.rollAlleles, .rollPlaintxt { \n\tdisplay: inline-block;\n\twidth: 48%; min-width: 10rem;\n}\n\n\n.imgFrame {\n\tposition: relative;\n\tleft: 8%;\n\tright: auto;\n}\n\n.imgStack {\n\tposition: relative; left: -22rem; top: 8rem; z-index: 10;\n}\n\n.colorful {\n\tbackground: linear-gradient(to right, red, orange, blue, violet);\n\t-webkit-background-clip: text;\n\tbackground-clip: text;\n\tcolor: transparent;\n}\n\n/* ============================================ */\n/* Colors */\n\n.cRed { color: #C40C0C; }\n.cCream { color: #E1BD97; text-shadow: -0.08rem 0.08rem #800b0b; }\n.cTan { color: #D5A276; }\n.cOrange { color: #F78B00; }\n.cBrown { color: #6A4A29; }\n.cGold { color: #E1C368; text-shadow: -0.08rem 0.08rem #800b0b; }\n.cYellow { color: #FFC109; text-shadow: -0.08rem 0.08rem #000; }\n.cLime { color: #B2CA0A; text-shadow: -0.08rem 0.08rem #000; }\n.cGreen { color: #618C01; }\n.cOlive { color: #7A8A07; }\n.cTeal { color: #00D297; }\n.cSky { color: #64AFFF; }\n.cBlue { color: #235EEA; }\n.cIndigo { color: #3A0686; }\n.cLavender { color: #D288DD; }\n.cMagenta { color: #FF12C4; }\n.cPink { color: #FF83E0; }\n.cPale { color: #DDD8C8; text-shadow: -0.08rem 0.08rem #000; }\n.cWhite { color: #E6EBF0; text-shadow: -0.08rem 0.08rem #000; }\n.cSilver { color: #BBBBE3; text-shadow: -0.08rem 0.08rem #000; }\n.cGray { color: #a6a6a6; text-shadow: -0.08rem 0.08rem #000; }\n.cBlack { color: #000; text-shadow: -0.08rem 0.08rem #fff; }\n\n\n/* ============================================ */\n/* Animation */\n\n.donsairPen { min-height: 20px; width: 300px; }\n\n.donsBreathe, .donsHappy, .donsAngy, .donsDance, .donsJiggle, .donsBounce, .donsStretch, .donsWeeOo, .donsSeethe {\n\tanimation-iteration-count: infinite; }\n\n.donsBreathe {\n\tposition: relative; z-index: 1; animation-name: animBreathe;\n\tanimation-duration: 7s; }\n\n@keyframes animBreathe {\n 0% {top: 0rem; width: 233px; height: 180px;}\n 30% {top: -0.4rem; width: 250px; height: 175px;}\n 35% {top: -0.4rem; width: 250px; height: 175px;}\n 65% {top: 1.5rem; width: 215px; height: 182px;}\n 90% {top: 0rem; width: 233px; height: 180px;}\n 100% {top: 0rem; width: 233px; height: 180px;}\n}\n\n.donsHappy { position: relative; z-index: 1; animation-name: animHappy;\n\tanimation-duration: 3s; }\n\n@keyframes animHappy {\n 0% {top: 0rem; rotate: 0deg; width: 233px; height: 180px;}\n 15% {top: -2rem; rotate: 15deg; width: 215px; height: 195px;}\n 25% {top: -2.5rem; rotate: -10deg; width: 233px; height: 180px;}\n 35% {top: 1rem; rotate: -8deg; width: 320px; height: 130px;}\n 50% {top: 0rem; rotate: 0deg; width: 233px; height: 180px;}\n 100% {top: 0rem; rotate: 0deg; width: 233px; height: 180px;}\n}\n\n.donsAngy { position: relative; z-index: 1; animation-name: animAngy;\n\tanimation-duration: 5s; }\n\n@keyframes animAngy {\n 0% {left: 0rem; rotate: 0deg;}\n 3% {left: 2rem; rotate: 0deg;}\n 5% {left: -2rem; rotate: 2deg;}\n 7% {left: 4rem; rotate: 3deg;}\n 10% {left: -4rem; rotate: 5deg;}\n 15% {left: 6rem; rotate: 15deg;}\n 20% {left: 6rem; rotate: 15deg;}\n 30% {left: 0rem; rotate: -10deg;}\n 50% {left: 0rem; rotate: 0deg;}\n}\n\n.donsDance { position: relative; z-index: 1; animation-name: animDance;\n\tanimation-duration: 1.5s; }\n\n@keyframes animDance {\n 0% {top: 0rem; rotate: 0deg; width: 233px; height: 215px;}\n 25% {top: -0.4rem; rotate: 15deg; width: 275px; height: 165px;}\n 50% {top: 0rem; rotate: 0deg; width: 200px; height: 215px;}\n 75% {top: 1.5rem; rotate: -10deg; width: 275px; height: 165px;}\n 100% {top: 0rem; rotate: 0deg; width: 233px; height: 215px;}\n}\n\n.donsBounce { position: relative; z-index: 1; animation-name: animBounce;\n\tanimation-duration: 1s; }\n\n@keyframes animBounce {\n 0% {top: 0rem; width: 233px; height: 180px;}\n 20% {top: -4rem; width: 190px; height: 220px;}\n 40% {top: 5rem; width: 295px; height: 125px;}\n 60% {top: 0rem; width: 233px; height: 180px;}\n 100% {top: 0rem; width: 233px; height: 180px;}\n}\n\n.donsJiggle {\n\tposition: relative; z-index: 1; animation-name: animJiggle;\n\tanimation-duration: 1.8s; }\n\n@keyframes animJiggle {\n 0% {top: 0rem; width: 233px; height: 180px;}\n 15% {top: 2rem; width: 295px; height: 145px;}\n 25% {top: -2rem; width: 200px; height: 220px;}\n 40% {top: 1rem; width: 275px; height: 165px;}\n 50% {top: -1rem; width: 220px; height: 200px;}\n 60% {top: 1rem; width: 245px; height: 175px;}\n 75% {top: -0.3rem; width: 225px; height: 190px;}\n 100% {top: 0rem; width: 233px; height: 180px;}\n}\n\n.donsStretch {\n\tposition: relative; z-index: 1; animation-name: animStretch;\n\tanimation-duration: 2s; }\n\n@keyframes animStretch {\n 0% {top: 0rem; width: 233px; height: 180px;}\n 50% {top: 8rem; width: 400px; height: 65px;}\n 60% {top: -2rem; width: 180px; height: 250px;}\n 70% {top: 1rem; width: 260px; height: 160px;}\n 100% {top: 0rem; width: 233px; height: 180px;}\n}\n\n.donsWeeOo {\n\tposition: relative; z-index: 1; animation-name: animWeeOo;\n\tanimation-duration: 1.8s; }\n\n@keyframes animWeeOo {\n 0% {top: 0rem; rotate: 0deg; width: 233px; height: 180px;}\n 20% {top: 8rem; rotate: 60deg; width: 400px; height: 65px;}\n 40% {top: -2rem; rotate: 120deg; width: 130px; height: 250px;}\n 60% {top: 6rem; rotate: 180deg; width: 280px; height: 100px;}\n 80% {top: -1rem; rotate: 240deg; width: 180px; height: 200px;}\n 100% {top: 0rem; rotate: 360deg; width: 233px; height: 180px;}\n}\n\n.donsSeethe { position: relative; z-index: 1; animation-name: animSeethe;\n\tanimation-duration: 0.65s; }\n\n@keyframes animSeethe {\n 0% {left: 0rem; width: 233px; height: 180px;}\n 15% {left: 1rem; width: 250px; height: 175px;}\n 30% {left: -1rem; width: 250px; height: 175px;}\n 45% {left: 2rem; width: 250px; height: 175px;}\n 60% {left: -2rem; width: 215px; height: 182px;}\n 85% {left: 3rem; width: 215px; height: 182px;}\n 100% {left: 0rem; width: 233px; height: 180px;}\n}\n