Your browser lacks required capabilities. Please upgrade it or switch to another to continue.
<br/>
<br/>
<br/>
<h1 class='title'>H A R D L I F E (v. <<print setup.ENGINE.gameVersion>>)</h1>
<br/>
<br/>
<p class='sub-title'>select your character</p>
<br/>
<br/>
<p><<print setup.ENGINE.char_select_menu()>></p><<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENGINE.replacePassage();>><<else>>
<<run setup.ENGINE.doRest('sleep', 5); >><<set _time = setup.ENGINE.getTime();>>
<<if ("05:30"<_time)&&(_time<"07:30")>>
<<run setup.ENGINE.giveFeedback("You wake up at first light, but the store won't be open for another hour. What do you do?");>>
<</if>>
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<p></p>
<<print setup.ENGINE.exitPassage();>> <<if (_hrs) && (_lv)>>
<<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENGINE.replacePassage();>><<else>>
<<run setup.ENGINE.doWorkout('run', _hrs, _lv); >>
<<replace '#datetime'>><<include 'DATETIME'>><</replace>>
<p>You get to the end of the parking lot before you realize just how out of shape you are. Your comfortable lifestyle has made you soft.</p>
<p></p>
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<p></p>
<<print setup.ENGINE.exitPassage();>>
<<else>>
<<print setup.ENGINE.workoutTable('run'); >>
<p>[[RETURN->GO HOME]]</p>
<</if>><<print setup.ENGINE.setupPassage();>><<print setup.ENCOUNTERS[_encounter].beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENCOUNTERS[_encounter].replacePassage(); >><<else>>
<<run setup.ENGINE.doExplore('search', 30/60); >>
<<set _found to setup.ENGINE.findChange(10, 100, true) >>
<<set $GAMEDATA.PC.MATRIX.money += _found>>
<<replace '#datetime'>><<include 'DATETIME'>><</replace>>
<p>You find $$ <<print _found.toFixed(2)>> as you wander around the parking lot.</p>
<</if>>
<<print setup.ENCOUNTERS[_encounter].afterPassage();>>
<p></p>
<p></p>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<<print setup.ENGINE.exitPassage();>><<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENGINE.replacePassage();>><<else>>
<<run setup.ENGINE.addMinutes(5); >>
<<replace '#datetime'>>
<<include 'DATETIME'>><</replace>>
<p class='narrow'>What did you wish to do?</p>
<p></p>
<p class='narrow'>[[CHECKOUT APPAREL]]</p>
<p class='narrow'>[[CHECKOUT AUTOMOTIVE]]</p>
<p class='narrow'>[[CHECKOUT ELECTRONICS]]</p>
<p class='narrow'>[[CHECKOUT FURNITURE]]</p>
<p class='narrow'>[[CHECKOUT GROCERY]]</p>
<p class='narrow'>[[CHECKOUT GARDEN]]</p>
<p class='narrow'>[[CHECKOUT HARDWARE]]</p>
<p class='narrow'>[[CHECKOUT HOUSEHOLD]]</p>
<p class='narrow'>[[CHECKOUT HYGENE]]</p>
<p class='narrow'>[[CHECKOUT OFFICE]]</p>
<p class='narrow'>[[CHECKOUT PHARMACY]]</p>
<p class='narrow'>[[CHECKOUT SEASONAL]]</p>
<p class='narrow'>[[CHECKOUT SPORTING GOODS]]</p>
<p></p>
<p class='narrow'>[[ENTER BATHROOM]]</p>
<p class='narrow'>[[FILLOUT APPLICATION]]</p>
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<p></p>
<<print setup.ENGINE.exitPassage();>><<run setup.ENGINE.do_status_update();>>
<<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>>
<<print setup.ENGINE.replacePassage();>>
<<link 'RETURN'>><<goto "GO HOME">><</link>>
<<else>>
<<replace '#datetime'>><<include 'DATETIME'>><</replace>>
<<replace '#quick_menu'>><<include 'MENU'>><</replace>>
<<replace '#feedback'>><<include 'FEEDBACK'>><</replace>>
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<<print setup.ENGINE.exitPassage();>><<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENGINE.replacePassage();>><<else>>
<<set _max_workout = setup.ENGINE.maxHours($GAMEDATA.PC.STATE.lastExercise)>>
<<set _minutes = (_max_workout * 60).toFixed(1)>>
<<run setup.ENGINE.doWorkout($GAMEDATA.PC.STATE.lastExercise, _max_workout); >>
<<run setup.ENGINE.doRest("sleep", 10/60); >>
<<replace '#datetime'>><<include 'DATETIME'>><</replace>>
<p>Gritting your teeth you push through the pain and keep going for another until you pass out. (after _minutes minutes)</p>
<p>Some time later, you come to.</p>
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<p></p>
<<print setup.ENGINE.exitPassage();>><div class='left framed'>
<p>ACTIONS</p>
<p>What will you do today?</p>
<p></p>
<<include "ACTIONS CAR">>
<p></p>
<<include "ACTIONS PARKING LOT">>
<p></p>
<p class='narrow'><<link 'EAT SOMETHING' >><<run setup.ENGINE.show_menu('FOOD'); >><</link>></p>
<p class='narrow'><<link 'CHANGE CLOTHES'>><<run setup.ENGINE.show_menu('EQUIP');>><</link>></p>
<p class='narrow'><<link 'USE SOMETHING' >><<run setup.ENGINE.show_menu('STUFF');>>><</link>></p>
<p></p>
<p></p>
<p class='narrow'><<link 'EXAMINE SELF'>><<run setup.ENGINE.show_menu('SELF'); >><</link>></p>
</div>Double-click this passage to edit it.Double-click this passage to edit it.<<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENGINE.replacePassage();>><<else>>
<<set _dept = "D01">><<include 'LIST AISLES FOR DEPT'>>
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<p></p>
<<print setup.ENGINE.exitPassage();>><<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENGINE.replacePassage();>><<else>>
<<set _dept = "D02">><<include 'LIST AISLES FOR DEPT'>>
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<p></p>
<<print setup.ENGINE.exitPassage();>><<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENGINE.replacePassage();>><<else>>
<<set _dept = "D03">><<include 'LIST AISLES FOR DEPT'>>
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<p></p>
<<print setup.ENGINE.exitPassage();>><<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENGINE.replacePassage();>><<else>>
<<set _dept = "D04">><<include 'LIST AISLES FOR DEPT'>>
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<p></p>
<<print setup.ENGINE.exitPassage();>><<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENGINE.replacePassage();>><<else>>
<<set _dept = "D05">><<include 'LIST AISLES FOR DEPT'>>
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<p></p>
<<print setup.ENGINE.exitPassage();>><<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENGINE.replacePassage();>><<else>>
<<set _dept = "D07">><<include 'LIST AISLES FOR DEPT'>>
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<p></p>
<<print setup.ENGINE.exitPassage();>><<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENGINE.replacePassage();>><<else>>
<<set _dept = "D08">><<include 'LIST AISLES FOR DEPT'>>
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<p></p>
<<print setup.ENGINE.exitPassage();>><<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENGINE.replacePassage();>><<else>>
<<set _dept = "D09">><<include 'LIST AISLES FOR DEPT'>>
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<p></p>
<<print setup.ENGINE.exitPassage();>><<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENGINE.replacePassage();>><<else>>
<<set _dept = "D11">><<include 'LIST AISLES FOR DEPT'>>
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<p></p>
<<print setup.ENGINE.exitPassage();>><<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENGINE.replacePassage();>><<else>>
<<set _dept = "D13">><<include 'LIST AISLES FOR DEPT'>>
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<p></p>
<<print setup.ENGINE.exitPassage();>><<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENGINE.replacePassage();>><<else>>
<p>You ask for an application and are immediately told they are under a hiring freeze.</p>
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<p></p>
<<print setup.ENGINE.exitPassage();>><<run Config.passages.nobr = true;>>
<<include "GAME DATA">>
<<replace '#title'>><<include 'TITLE'>><</replace>>
<<replace '#datetime'>><<include 'DATETIME'>><</replace>>
<<replace '#feedback'>><<include 'FEEDBACK'>><</replace>>
<<run setup.ENGINE.hide_menu();>><div class='left framed'>
<h3>RESOURCES</h3>
<table class='resources'>
<tr> <td><<print setup.ENGINE.getResource('tough') >></td> <td>toughness</td> </tr>
<tr> <td><<print setup.ENGINE.getResource('power') >></td> <td>power</td> </tr>
<tr> <td><<print setup.ENGINE.getResource('vigor') >></td> <td>stamina</td> </tr>
<tr> <td><<print setup.ENGINE.getResource('regen') >></td> <td>regeneration</td> </tr>
<tr> <td><<print setup.ENGINE.getResource('vital') >></td> <td>health</td> </tr>
<tr> <td><<print setup.ENGINE.getResource('metab') >></td> <td>metabolism</td> </tr>
<tr><td><p></p></td><td><p></p></td></tr>
<tr> <td><<print setup.ENGINE.getResource('kcal') >></td> <td>calories/ATP</td> </tr>
<tr> <td><<print setup.ENGINE.getResource('protein') >>g</td> <td> protein</td> </tr>
<tr> <td><<print setup.ENGINE.getResource('sugar') >>g</td> <td> sugar</td> </tr>
<tr><td><p></p></td><td><p></p></td></tr>
<tr> <td>$$ <<print setup.ENGINE.getResource('money')>></td> <td>cash</td> </tr>
<tr> <td><<print setup.ENGINE.getResource('petro') >></td> <td>fuel</td> </tr>
<tr> <td><<print setup.ENGINE.getResource('karma') >></td> <td>karma</td> </tr>
</table>
</div><div class='left framed'>
<h3>STATS</h3>
<table class='stats'>
<tr> <th><<print setup.ENGINE.karmic_link('STR')>>:</th> <th><<print ($GAMEDATA.PC.STATS.STR).toFixed(2)>></th> </tr>
<tr> <th><<print setup.ENGINE.karmic_link('END')>>:</th> <th><<print ($GAMEDATA.PC.STATS.END).toFixed(2)>></th> </tr>
<tr> <th><<print setup.ENGINE.karmic_link('SPD')>>:</th> <th><<print ($GAMEDATA.PC.STATS.SPD).toFixed(2)>></th> </tr>
<tr> <th><<print setup.ENGINE.karmic_link('PHY')>>:</th> <th><<print ($GAMEDATA.PC.STATS.PHY).toFixed(2)>></th> </tr>
<tr><td><p></p></td><td><p></p></td></tr>
<tr> <td>age:</td> <td><<print setup.ENGINE.char_metric('age')>></td> </tr>
<tr> <td><<print setup.ENGINE.karmic_link('height')>>:</td> <td><<print setup.ENGINE.char_metric('ht')>></td> </tr>
<tr> <td><<print setup.ENGINE.karmic_link('weight')>>:</td> <td><<print setup.ENGINE.char_metric('wt')>></td> </tr>
<tr> <td>BMI:</td> <td><<print setup.ENGINE.char_metric('BMI')>></td> </tr>
<tr> <td>Bodyfat:</td> <td><<print setup.ENGINE.char_metric('bodyfat')>></td> </tr>
<tr><td><p></p></td><td><p></p></td></tr>
<tr> <td>bicep:</td> <td><<print setup.ENGINE.char_metric('bicep')>></td> </tr>
<tr> <td>quads:</td> <td><<print setup.ENGINE.char_metric('quads')>></td> </tr>
<tr><td><p></p></td><td><p></p></td></tr>
<tr> <td>chest:</td> <td><<print setup.ENGINE.char_metric('chest')>></td> </tr>
<tr> <td><<print setup.ENGINE.karmic_link('cup')>>:</td> <td><<print setup.ENGINE.char_metric('cup')>></td> </tr>
<tr> <td>waist:</td> <td><<print setup.ENGINE.char_metric('waist')>></td> </tr>
<tr> <td>hips:</td> <td><<print setup.ENGINE.char_metric('hips')>></td> </tr>
</table>
<p></p>
<div>
<h4>CONDITION:</h4>
<<set _i=0>>
<<for _status, _data range $GAMEDATA.PC.STATUS>>
<<set _i++>><p><i>_status</i></p>
<</for>>
<<if _i<1 >>
<p><i>normal</i></p>
<</if>>
</div>
</div><<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENGINE.replacePassage();>><<else>>
<<run setup.ENGINE.doRest('rest', 20/60); >>
<<run setup.ENGINE.giveFeedback("You rest for a few minutes to recover your strength.");>>
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<p></p>
<<print setup.ENGINE.exitPassage();>> <<if (_hrs) && (_lv)>>
<<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENGINE.replacePassage();>><<else>>
<<run setup.ENGINE.doWorkout('walk', _hrs, _lv); >>
<<replace '#datetime'>><<include 'DATETIME'>><</replace>>
<p>You get to the end of the parking lot before you realize just how out of shape you are. Your comfortable lifestyle has made you soft.</p>
<p></p>
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<p></p>
<<print setup.ENGINE.exitPassage();>>
<<else>>
<<print setup.ENGINE.workoutTable('walk'); >>
<p>[[RETURN->GO HOME]]</p>
<</if>> <<if (_hrs) && (_lv)>>
<<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENGINE.replacePassage();>><<else>>
<<run setup.ENGINE.doWorkout('jog', _hrs, _lv); >>
<<replace '#datetime'>><<include 'DATETIME'>><</replace>>
<p>You get to the end of the parking lot before you realize just how out of shape you are. Your comfortable lifestyle has made you soft.</p>
<p></p>
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<p></p>
<<print setup.ENGINE.exitPassage();>>
<<else>>
<<print setup.ENGINE.workoutTable('jog'); >>
<p>[[RETURN->GO HOME]]</p>
<</if>> <<if (_hrs) && (_lv)>>
<<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENGINE.replacePassage();>><<else>>
<<run setup.ENGINE.doWorkout('calisthenics', _hrs, _lv); >>
<<replace '#datetime'>><<include 'DATETIME'>><</replace>>
<p>You try to do some basic calesthenics, but its not long till you're out of breath.</p>
<p></p>
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<p></p>
<<print setup.ENGINE.exitPassage();>>
<<else>>
<<print setup.ENGINE.workoutTable('calisthenics'); >>
<p>[[RETURN->GO HOME]]</p>
<</if>>
<p>[[CONTINUE->GO HOME]]</p>
<p>[[I'M NOT DONE YET!->PUSH YOURSELF]]</p><<nobr>>
<<set $GAMEDATA = { /* PLAYER DATA */
'PC': {
},
/* gamedata-state moved into PC/CHARS, a new WORLD branch to store global state will be implemented in future */
'CHARS':{
/* reserved for future expansion, character swapping */
},
}>>
<<include 'setup.ENGINE'>>
<<include 'setup.FLAGS'>>
<<include 'setup.STATUSES'>>
<<include 'setup.ACTIONS'>>
<<include 'setup.CHARS'>>
<<include 'setup.ROLES'>>
<<include 'setup.AISLES'>>
<<include 'setup.ITEMS'>>
<<include 'setup.ENCOUNTERS'>>
<<include 'setup.PASSAGES'>>
<<include 'setup.DESC'>>
<<include 'setup.NAMES'>>
<<include 'setup.MODS'>>
<</nobr>><<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENGINE.replacePassage();>><<else>>
<<set _dept = "D06">><<include 'LIST AISLES FOR DEPT'>>
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<p></p>
<<print setup.ENGINE.exitPassage();>><<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENGINE.replacePassage();>><<else>>
<<set _dept = "D10">><<include 'LIST AISLES FOR DEPT'>>
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<p></p>
<<print setup.ENGINE.exitPassage();>><<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENGINE.replacePassage();>><<else>>
<<set _dept = "D12">>
<<if true>>
<h2><<print setup.AISLES[_dept].name>></h2>
<h3><<print setup.AISLES[_dept].desc>></h3>
There's nothing here... try back next season.
<<else>>
<<include 'LIST AISLES FOR DEPT'>>
<</if>>
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<p></p>
<<print setup.ENGINE.exitPassage();>><<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENGINE.replacePassage();>><<else>>
<<if $GAMEDATA.PC.STUFF['D08_A09_I03']>>
<<linkreplace "GET CLEANED UP">>
<p>You pull out an old washcloth from your purse, left over from the last time you had to do this, wet it and add some hand soap. Then you go into a stall and take a quick spongebath, making several trips back to the sink to rinse the cloth.</p>
<p></p>
<p>Hardly elegant, but at least you don't stink.</p>
<<run
setup.ENGINE.depleteItem('D08_A09_I03');
$GAMEDATA.PC.MATRIX.regen += 10;
setup.ENGINE.do_status_update();
>>
<</linkreplace>>
<<else>>
<p>If you had another washcloth, you could get cleaned up.</p>
<</if>>
<p></p>
<p class='narrow'><<link 'EXAMINE SELF'>><<run setup.ENGINE.show_menu('SELF'); >><</link>></p>
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<p></p>
<<print setup.ENGINE.exitPassage();>>Double-click this passage to edit it.<div class='left framed'>
<p>ACTIONS</p>
<p>What will you do today?</p>
<p></p>
<<include "ACTIONS MOTEL ROOM">>
<p></p>
<p class='narrow'><<link 'EAT SOMETHING' >><<run setup.ENGINE.show_menu('FOOD'); >><</link>></p>
<p class='narrow'><<link 'CHANGE CLOTHES'>><<run setup.ENGINE.show_menu('EQUIP');>><</link>></p>
<p class='narrow'><<link 'USE SOMETHING' >><<run setup.ENGINE.show_menu('STUFF');>>><</link>></p>
<p></p>
<p></p>
<p class='narrow'><<link 'EXAMINE SELF'>><<run setup.ENGINE.show_menu('SELF'); >><</link>></p>
</div>Double-click this passage to edit it.<hr/>
<<print setup.AISLES[_dept].AISLES[_aisle].name +": "+ setup.AISLES[_dept].AISLES[_aisle].desc>><br/>
<<for _item_id, _item_data range setup.ITEMS>>
<<if _aisle == _item_id.substr(0,7)>>
<<print "
<<linkreplace '$$ " + _item_data.cost.toFixed(2) +" - "+ _item_data.name + "' >>
" + _item_data.cost +" - "+ _item_data.name + "
<<link 'buy one' >>
<<if setup.ENGINE.buyItem( '" + _item_id + "')>>
<<else>>
<</if>>
<<replace '#feedback'>><<include 'FEEDBACK'>><</replace>>
<</link>>
<<link 'steal one'>>
<<if setup.ENGINE.stealItem('" + _item_id + "')>>
<<else>>
<</if>>
<<replace '#feedback'>><<include 'FEEDBACK'>><</replace>>
<</link>>
<</linkreplace>><br/>
">>
<</if>>
<</for>>
<hr/><<print setup.ENGINE.getFeedback();>><table id="game-window"><tr>
<td id="sidebar">
<table class='full'>
<tr><td id="title"></td></tr>
<tr><td id="quick_menu"></td></tr>
<tr><td id="detail"></td></tr>
</table>
</td>
<td id="main">
<table class='full'>
<tr><td id="datetime"></td></tr>
<tr><td id="feedback"></td></tr>
<tr><td id="container">
<div id="passages" class="passage"></div>
<div id='menu'></div>
</td></tr>
</table>
</td>
</tr></table><ul class='items stuff'>
<<for _item_id, _uses range $GAMEDATA.PC.STUFF>>
<<if !(("consumable"==setup.ROLES.ALL[setup.ITEMS[_item_id].role].type)||("wearable"==setup.ROLES.ALL[setup.ITEMS[_item_id].role].type)) >>
<li><<print
setup.ITEMS[_item_id].name +" ("+ _uses + " uses remaining)"
>></li>
<</if>>
<</for>>
</ul>
<hr/>
<ul class='items junk'>
<<for _jid, _jname range $GAMEDATA.PC.JUNK>>
<li><<print _jname >></li>
<</for>>
</ul>
<p></p>
<p></p>
<p><<link 'RETURN'>><<run setup.ENGINE.hide_menu();>><</link>></p><div class='framed'>
<h3>Attire</h3>
<ul class='items'>
<<for _slot, _item_id range $GAMEDATA.PC.EQUIP>>
<<if _item_id>>
<li><<print "
<<link '"+ _slot +": "+ setup.ITEMS[_item_id].name +"'>>
<<if setup.ENGINE.removeItem( '" + _item_id + "' )>>
<<else>>
<</if>>
<<run setup.ENGINE.show_menu('EQUIP');>>
<</link>>
">></li>
<</if>>
<</for>>
</ul>
</div>
<hr/>
<hr/>
<div class='framed'>
<h3>Wardrobe</h3>
<ul class='items'>
<<for _item_id, _uses range $GAMEDATA.PC.STUFF>>
<<if "wearable"==setup.ROLES.ALL[setup.ITEMS[_item_id].role].type >>
<li><<print "
<<link '"+ setup.ITEMS[_item_id].name +" ("+ _uses + " uses remaining)'>>
<<if setup.ENGINE.useItem( '" + _item_id + "' )>>
<<else>>
<</if>>
<<run setup.ENGINE.show_menu('EQUIP');>>
<</link>>
">></li>
<</if>>
<</for>>
</ul>
</div>
<p></p>
<p></p>
<p></p>
<p><<link 'RETURN'>>
<<run
if('GO HOME'==State.passage) { Engine.play(State.passage, true); }
setup.ENGINE.hide_menu();
>>
<</link>></p><table class='items'>
<<for _item_id, _uses range $GAMEDATA.PC.STUFF>>
<<if "consumable"==setup.ROLES.ALL[setup.ITEMS[_item_id].role].type >>
<<set _pack = _uses % setup.ITEMS[_item_id].uses>>
<<print
"<tr><td>"+ setup.ITEMS[_item_id].name +
"</td><td>("+ _uses +"x)
</td><td>
<<link '[have one]'>>
<<if setup.ENGINE.useItem( '"+ _item_id +"' )>>
<<else>>
<</if>>
<<run setup.ENGINE.show_menu('FOOD');>>
<</link>>
</td><td>
<<if _pack>0>>
<<link '[finish package]'>>
<<if setup.ENGINE.useItem( '"+ _item_id +"', "+ _pack +" )>>
<<else>>
<</if>>
<<run setup.ENGINE.show_menu('FOOD');>>
<</link>>
<</if>>
</td></tr>
">>
<</if>>
<</for>>
</table>
<p></p>
<p></p>
<p></p>
<p><<link 'RETURN'>>
<<run
if('GO HOME'==State.passage) { Engine.play(State.passage, true); }
setup.ENGINE.hide_menu();
>>
<</link>></p><<if ($GAMEDATA.PC.STATE)>><<print setup.ENGINE.getTime(); >> <<print setup.ENGINE.getLongDate(); >><</if>><hr/><br/><br/><hr/>
<ul class='side-menu'>
<li><<link "Stats & Metrics">><<replace "#detail">><<set $GAMEDATA.PC.STATE.detail="STATS"; >><<include "STATS" >><</replace>><</link>></li>
<li><<link "Resources" >><<replace "#detail">><<set $GAMEDATA.PC.STATE.detail="RESOURCES"; >><<include "RESOURCES">><</replace>><</link>></li>
<hr/>
<li><<link "Food" >><<run setup.ENGINE.show_menu('FOOD'); >><</link>></li>
<li><<link "Clothing" >><<run setup.ENGINE.show_menu('EQUIP');>><</link>></li>
<li><<link "Stuff" >><<run setup.ENGINE.show_menu('STUFF');>><</link>></li>
<li><<link "Self" >><<run setup.ENGINE.show_menu('SELF'); >><</link>></li>
</ul>
<hr/><br/><br/><hr/><a target="_blank" href='http://patreon.com/ShadowRx'>ShadowRx</a>StoryBannerStoryCaption<h3>HardLife</h3>
<small>
v<<print setup.ENGINE.gameVersion>> by<br/>
<a target="_blank" href='http://patreon.com/ShadowRx'>ShadowRx</a><br/>
<small>(<<print setup.ENGINE.buildVersion>>)</small><br/>
</small>
<br/>
<hr/>
<ul class='side-menu'>
<li><<link "Save/Load">><<script>>UI.saves()<</script>><</link>></li>
<li><<link "Settings">><<script>>UI.settings()<</script>><</link>></li>
<li><<link "Restart">><<script>>UI.restart()<</script>><</link>></li>
</ul><p>You had it. You were a rising star, just finished your third small film and were about to be married to the hottest producer on the indy scene. You had EVERYTHING. Everything you ever wanted... or so you thought.</p>
<p>Then you found out your movie director fiance has slept with EVERY girl on set, and someone new has caught his eye... your BEST FRIEND.</p>
<p>Nearly broke, and with no one to turn to, you go back to your old apartment only to find you've been evicted, and all your stuff is gone. Turns out the bastard didn't pay the rent like he promised, not surprising since he didn't pay you either.</p>
<p>Looks like you'll be living out of your car again, you thought those days were behind you.</p>
<p>Well, first thing's first, you step out into the chilly autumn air and put your last $20 in the gas tank. You have about $3 in coins in the cup holder, but you should probably save that for diner tomorrow.</p>
<p>You spend half the night looking for somewhere to park. The best you find is a dingy old S-Mart parking lot, with half the lights burned out, but at least they didn't run you off.</p>
<<run setup.ENGINE.setTime(23,1)>>
<p>Its gonna be a long day tomorrow, perhaps you should [[turn in->SLEEP IN CAR]].</p><<run setup.ENGINE.select_char('Cindy Phoenix');>>
<<goto $GAMEDATA.PC.PASSAGES.start >><div class='dialog'>
<p>Spend _cost Karma to raise base _label by _amt? _hint</p>
<b><<link 'YES'>>
<<run
$GAMEDATA.PC.MATRIX.karma -= _cost;
$GAMEDATA.PC[_type][_stat] += _amt;
setup.ENGINE.do_status_update();
if('GO HOME'==State.passage) { Engine.play(State.passage, true); }
setup.ENGINE.hide_menu();
>>
<</link>> / <<link 'NO'>><<run setup.ENGINE.hide_menu();>><</link>></b>
</div><p class='wide'>If only you had a proper mirror to use...</p>
<p class='wide'>You are <<desc "height">>, roughly <<val "height">>, and <<desc "weight">>, somewhere around <<val "weight">> when last you checked. You're <<desc "bodytone">>, with <<val "bodyfat">> body-fat.</p>
<p class='wide'>You have a <<desc "bust">> size <<val "cup">> chest with a wingspan of <<val "chest">>, which tapers to a <<desc "waist">> <<val "waist">> waist with <<desc "abs">> and curves out to <<desc "hips">> <<val "hips">> hips.</p>
<p class='wide'>Your arms are <<desc "arms">>, with <<desc "bicep">> biceps about <<val "bicep">>. Your legs <<desc "legs">>, measuring <<val "quads">> across your <<desc "quads">> quads and <<val "calf">> calves.</p>
<p class='wide'>Overall you are <<desc "health">> and <<desc "fitness">>.</p>
<p></p>
<p></p>
<p></p>
<p><<link 'RETURN'>><<run setup.ENGINE.hide_menu();>><</link>></p><<set setup.ITEMS={
/* APPAREL */
/* ACCESSORIES */
'D01_A01_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A01_I02':{ 'name':"hair ties" , 'cost': 2.00, 'uses':100, 'role':"hairstyle" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A01_I03':{ 'name':"watch" , 'cost': 20.00, 'uses':500, 'role':"bracelet" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* ATHLETIC WEAR */
'D01_A02_I01':{ 'name':"azure sportsbra" , 'cost': 16.00, 'uses':100, 'role':"undershirt" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A02_I02':{ 'name':"furry blue leg warmers" , 'cost': 20.00, 'uses':100, 'role':"socks" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A02_I03':{ 'name':"pink metallic spandex leotard" , 'cost': 30.00, 'uses':100, 'role':"onepiece" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A02_I04':{ 'name':"purple nylon unitard" , 'cost': 40.00, 'uses':100, 'role':"onepiece" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* BACKPACKS */
'D01_A03_I01':{ 'name':"" , 'cost': 0.00, 'uses':500, 'role':"backpack" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A03_I02':{ 'name':"" , 'cost': 0.00, 'uses':500, 'role':"backpack" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A03_I03':{ 'name':"" , 'cost': 0.00, 'uses':500, 'role':"backpack" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* COATS */
'D01_A04_I01':{ 'name':"gray hoodie" , 'cost': 10.00, 'uses':500, 'role':"jacket" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A04_I02':{ 'name':"vest" , 'cost': 20.00, 'uses':500, 'role':"vest" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A04_I03':{ 'name':"winter-coat" , 'cost': 60.00, 'uses':500, 'role':"coat" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* DRESSES */
'D01_A05_I01':{ 'name':"black miniskirt" , 'cost': 30.00, 'uses':500, 'role':"skirt" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A05_I02':{ 'name':"sexy red dress" , 'cost': 70.00, 'uses':500, 'role':"dress" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A05_I03':{ 'name':"simple black dress" , 'cost': 50.00, 'uses':500, 'role':"dress" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* HANDBAGS */
'D01_A06_I01':{ 'name':"" , 'cost': 0.00, 'uses':500, 'role':"handbag" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A06_I02':{ 'name':"" , 'cost': 0.00, 'uses':500, 'role':"handbag" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A06_I03':{ 'name':"" , 'cost': 0.00, 'uses':500, 'role':"handbag" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* HEADWEAR */
'D01_A07_I01':{ 'name':"baseball cap" , 'cost': 10.00, 'uses':100, 'role':"hat" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A07_I02':{ 'name':"beanie" , 'cost': 5.00, 'uses':100, 'role':"hat" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A07_I03':{ 'name':"black fedora" , 'cost': 45.00, 'uses':100, 'role':"hat" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A07_I04':{ 'name':"fuzzy earmuffs" , 'cost': 15.00, 'uses':100, 'role':"headband" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A07_I05':{ 'name':"overpriced shades" , 'cost':190.00, 'uses':100, 'role':"glasses" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A07_I06':{ 'name':"pink headband" , 'cost': 2.00, 'uses':100, 'role':"headband" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A07_I07':{ 'name':"stylish readers" , 'cost': 10.00, 'uses':100, 'role':"glasses" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A07_I08':{ 'name':"white ski mask" , 'cost': 5.00, 'uses':100, 'role':"mask" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* JEWELRY */
'D01_A08_I01':{ 'name':"pearl earrings" , 'cost': 25.00, 'uses':200, 'role':"earrings" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A08_I02':{ 'name':"silver belly chain" , 'cost': 15.00, 'uses':200, 'role':"sash" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A08_I03':{ 'name':"silver garnet ring" , 'cost': 20.00, 'uses':200, 'role':"ring" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A08_I04':{ 'name':"silver quartz bracelet" , 'cost': 45.00, 'uses':200, 'role':"bracelet" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A08_I05':{ 'name':"sapphire pendant" , 'cost':430.00, 'uses':200, 'role':"necklace" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A08_I06':{ 'name':"topaz necklace" , 'cost':280.00, 'uses':200, 'role':"necklace" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* PANTS */
'D01_A09_I01':{ 'name':"daisy dukes" , 'cost': 45.00, 'uses':100, 'role':"shorts" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A09_I02':{ 'name':"jeans" , 'cost': 20.00, 'uses':100, 'role':"pants" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A09_I03':{ 'name':"sweat-pants" , 'cost': 10.00, 'uses':100, 'role':"pants" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* SHIRTS */
'D01_A10_I01':{ 'name':"blouse" , 'cost': 30.00, 'uses':100, 'role':"overshirt" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A10_I02':{ 'name':"colored t-shirt" , 'cost': 9.00, 'uses':100, 'role':"shirt" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A10_I03':{ 'name':"white undershirt, 3pk" , 'cost': 6.00, 'uses':180, 'role':"undershirt" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* SHOES */
'D01_A11_I01':{ 'name':"black loafers" , 'cost': 40.00, 'uses':200, 'role':"shoes" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A11_I02':{ 'name':"red pumps" , 'cost': 30.00, 'uses':200, 'role':"shoes" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A11_I03':{ 'name':"white sneakers" , 'cost': 50.00, 'uses':200, 'role':"shoes" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* SWIMWEAR */
'D01_A12_I02':{ 'name':"hot pink bikini top" , 'cost': 20.00, 'uses': 50, 'role':"panties" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A12_I02':{ 'name':"hot pink bikini thong" , 'cost': 20.00, 'uses': 50, 'role':"panties" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* UNDERWEAR */
'D01_A13_I01':{ 'name':"ankle socks, 10pk" , 'cost': 6.00, 'uses':200, 'role':"socks" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A13_I02':{ 'name':"plain white bra" , 'cost': 10.00, 'uses': 50, 'role':"bra" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A13_I03':{ 'name':"plain white panties" , 'cost': 10.00, 'uses': 50, 'role':"panties" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A13_I04':{ 'name':"red thong" , 'cost': 20.00, 'uses': 50, 'role':"panties" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D01_A13_I05':{ 'name':"sheer pantyhose, 3pk" , 'cost': 9.00, 'uses': 42, 'role':"socks" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* END APPAREL */
/* AUTOMOTIVE */
/* ACCESSORIES */
'D02_A01_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D02_A01_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D02_A01_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* FLUIDS */
'D02_A02_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D02_A02_I02':{ 'name':"oil" , 'cost': 2.95, 'uses': 1, 'role':"engine oil" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D02_A02_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* PARTS */
'D02_A03_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"part" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D02_A03_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"part" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D02_A03_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"part" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* TOOLS */
'D02_A04_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"tool" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D02_A04_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"tool" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D02_A04_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"tool" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* END AUTOMOTIVE */
/* ELECTRONICS */
/* APPLIANCES */
'D03_A01_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D03_A01_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D03_A01_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* BOOKS */
'D03_A02_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"book" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D03_A02_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"book" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D03_A02_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"book" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* CELL PHONES */
'D03_A03_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"phone" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D03_A03_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"smartphone" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D03_A03_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"smartphone" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* COMPUTER ACCESSORIES */
'D03_A04_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D03_A04_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D03_A04_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* COMPUTERS */
'D03_A05_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"computer" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D03_A05_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"computer" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D03_A05_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"computer" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* MAGAZINES */
'D03_A06_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"magazine" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D03_A06_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"magazine" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D03_A06_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"magazine" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* MOVIES */
'D03_A07_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"DVD" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D03_A07_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"DVD" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D03_A07_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"DVD" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* MUSIC */
'D03_A08_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"CD" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D03_A08_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"CD" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D03_A08_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"CD" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* SOFTWARE */
'D03_A09_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"software" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D03_A09_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"software" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D03_A09_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"software" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* VIDEO GAMES */
'D03_A10_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"game" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D03_A10_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"game" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D03_A10_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"game" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* END ELECTRONICS */
/* FURNITURE */
/* CARPETS */
'D04_A01_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"flooring" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D04_A01_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"flooring" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D04_A01_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"flooring" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* CHAIRS */
'D04_A02_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"chair" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D04_A02_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"chair" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D04_A02_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"chair" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* DESKS */
'D04_A03_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"desk" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D04_A03_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"desk" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D04_A03_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"desk" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* SHELVES */
'D04_A04_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"cabinet" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D04_A04_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"shelf" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D04_A04_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"shelf" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* TABLES */
'D04_A05_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"stand" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D04_A05_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"table" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D04_A05_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"table" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* END FURNITURE */
/* GROCERY */
/* ALCOHOL */
'D05_A01_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"booze" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A01_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"booze" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A01_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"booze" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* BAKED GOODS */
'D05_A02_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"food" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A02_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"food" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A02_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"food" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* BAKING */
'D05_A03_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"powder" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A03_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"powder" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A03_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"powder" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* BEVERAGES */
'D05_A04_I01':{ 'name':"4 pack energy drink" , 'cost': 6.00, 'uses': 4, 'role':"drink" , 'MATRIX':{'tough':0, 'power':0, 'vigor':5, 'regen':1, 'vital':1, 'metab':7.0, 'kcal':260, 'protein': 0.7, 'sugar': 62.7}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A04_I02':{ 'name':"12 pack soda" , 'cost': 3.98, 'uses': 12, 'role':"drink" , 'MATRIX':{'tough':0, 'power':0, 'vigor':1, 'regen':0, 'vital':0, 'metab':3.0, 'kcal':160, 'protein': 0.0, 'sugar': 41.3}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A04_I03':{ 'name':"water, gallon refill" , 'cost': 0.20, 'uses': 10, 'role':"drink" , 'MATRIX':{'tough':1, 'power':1, 'vigor':3, 'regen':3, 'vital':1, 'metab':5.0, 'kcal': 0, 'protein': 0.0, 'sugar': 0.0}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* CANDY */
'D05_A05_I01':{ 'name':"chocolate bar" , 'cost': 0.89, 'uses': 1, 'role':"food" , 'MATRIX':{'tough':0, 'power':0, 'vigor':0.1, 'regen':0, 'vital':0, 'metab':2.0, 'kcal':214, 'protein':3.8, 'sugar':19.7}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A05_I02':{ 'name':"gummi bears, 6lb bag" , 'cost': 5.89, 'uses': 57, 'role':"food" , 'MATRIX':{'tough':0, 'power':0, 'vigor':0.1, 'regen':0, 'vital':0, 'metab':2.0, 'kcal':130, 'protein':3.0, 'sugar':20.6}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A05_I03':{ 'name':"peanut butter cups, king size" , 'cost': 1.39, 'uses': 4, 'role':"food" , 'MATRIX':{'tough':0, 'power':0, 'vigor':0.1, 'regen':0, 'vital':0, 'metab':2.0, 'kcal': 87, 'protein':1.7, 'sugar': 8.4}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* CANNED GOODS */
'D05_A06_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"canned food" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A06_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"canned food" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A06_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"canned food" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* CEREAL */
'D05_A07_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"food" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A07_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"food" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A07_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"food" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* DAIRY */
'D05_A08_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"food" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A08_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"food" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A08_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"food" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* DELI */
'D05_A09_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"food" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A09_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"food" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A09_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"food" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* FROZEN */
'D05_A10_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"frozen food" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A10_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"frozen food" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A10_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"frozen food" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* GRAINS & PASTA */
'D05_A11_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"hard food" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A11_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"hard food" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A11_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"hard food" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* MEATS */
'D05_A12_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"raw meat" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A12_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"raw meat" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A12_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"raw meat" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* PRODUCE */
'D05_A13_I01':{ 'name':"Apples (5lb)" , 'cost': 5.24, 'uses':12, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.2, 'vigor':0.5, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 95, 'protein': 0.5, 'sugar': 19.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I02':{ 'name':"Artichokes" , 'cost': 1.38, 'uses': 1, 'role':"hard food" , 'MATRIX':{'tough':0.3, 'power':0.3, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 60, 'protein': 4.2, 'sugar': 1.3,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I03':{ 'name':"Asparagus" , 'cost': 2.60, 'uses': 9, 'role':"food" , 'MATRIX':{'tough':0.4, 'power':0.3, 'vigor':0.2, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 9, 'protein': 1.2, 'sugar': 0.9,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I04':{ 'name':"Avocados" , 'cost': 2.59, 'uses': 3, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.2, 'vigor':0.1, 'regen':3.0, 'vital':1.0, 'metab':5.0, 'karma':0.1, 'kcal':234, 'protein': 2.9, 'sugar': 1.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I05':{ 'name':"Bananas" , 'cost': 0.73, 'uses': 4, 'role':"food" , 'MATRIX':{'tough':0.4, 'power':0.3, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal':105, 'protein': 1.3, 'sugar': 14.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I06':{ 'name':"Beets" , 'cost': 1.38, 'uses': 3, 'role':"hard food" , 'MATRIX':{'tough':0.4, 'power':0.4, 'vigor':0.2, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 59, 'protein': 2.2, 'sugar': 9.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I07':{ 'name':"Bell Peppers" , 'cost': 0.59, 'uses': 4, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.3, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 24, 'protein': 1.0, 'sugar': 2.9,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I08':{ 'name':"Blackberries" , 'cost': 3.87, 'uses': 5, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.2, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 43, 'protein': 1.0, 'sugar': 5.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I09':{ 'name':"Blueberries" , 'cost': 4.63, 'uses': 3, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.1, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 85, 'protein': 1.1, 'sugar': 15.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I10':{ 'name':"Broccoli" , 'cost': 1.43, 'uses': 3, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.5, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 50, 'protein': 4.2, 'sugar': 2.5,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I11':{ 'name':"Cabbage" , 'cost': 0.84, 'uses': 2, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.4, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 60, 'protein': 3.0, 'sugar': 7.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I12':{ 'name':"Cantalope" , 'cost': 1.67, 'uses': 2, 'role':"food" , 'MATRIX':{'tough':0.5, 'power':0.3, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 93, 'protein': 2.3, 'sugar': 21.5,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I13':{ 'name':"Carrots" , 'cost': 0.77, 'uses':11, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.4, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 25, 'protein': 0.6, 'sugar': 2.9,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I14':{ 'name':"Cauliflower" , 'cost': 3.54, 'uses': 2, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.2, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 73, 'protein': 5.5, 'sugar': 5.5,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I15':{ 'name':"Celery" , 'cost': 1.16, 'uses': 4, 'role':"food" , 'MATRIX':{'tough':0.4, 'power':0.1, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 18, 'protein': 0.9, 'sugar': 2.1,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I16':{ 'name':"Cherries" , 'cost': 4.58, 'uses': 3, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.5, 'vigor':0.5, 'regen':3.0, 'vital':1.0, 'metab':5.0, 'karma':0.1, 'kcal': 77, 'protein': 1.6, 'sugar': 13.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I17':{ 'name':"Chili Peppers" , 'cost': 0.59, 'uses': 6, 'role':"food" , 'MATRIX':{'tough':0.5, 'power':0.3, 'vigor':0.5, 'regen':3.0, 'vital':1.0, 'metab':5.0, 'karma':0.1, 'kcal': 30, 'protein': 1.4, 'sugar': 4.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I18':{ 'name':"Coconuts" , 'cost': 1.47, 'uses': 2, 'role':"food" , 'MATRIX':{'tough':0.6, 'power':0.4, 'vigor':0.2, 'regen':1.2, 'vital':1.0, 'metab':4.0, 'karma':0.1, 'kcal':703, 'protein': 6.5, 'sugar': 25.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I19':{ 'name':"Corn Cob" , 'cost': 0.62, 'uses': 1, 'role':"hard food" , 'MATRIX':{'tough':0.3, 'power':0.1, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal':155, 'protein': 4.5, 'sugar': 32.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I20':{ 'name':"Cranberries" , 'cost': 1.86, 'uses': 5, 'role':"food" , 'MATRIX':{'tough':0.4, 'power':0.2, 'vigor':0.2, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 46, 'protein': 0.4, 'sugar': 4.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I21':{ 'name':"Cucumbers" , 'cost': 0.67, 'uses': 3, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.3, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 2, 'protein': 0.1, 'sugar': 0.3,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I22':{ 'name':"Dragonfruit" , 'cost': 2.47, 'uses': 1, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.6, 'vigor':0.1, 'regen':3.0, 'vital':1.0, 'metab':5.0, 'karma':0.1, 'kcal': 52, 'protein': 1.1, 'sugar': 11.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I23':{ 'name':"Eggplant" , 'cost': 2.58, 'uses': 6, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.3, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 20, 'protein': 0.8, 'sugar': 2.9,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I24':{ 'name':"Garlic" , 'cost': 1.86, 'uses': 6, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.3, 'vigor':0.5, 'regen':3.0, 'vital':1.0, 'metab':5.0, 'karma':0.1, 'kcal':102, 'protein': 4.3, 'sugar': 9.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I25':{ 'name':"Grapefruit" , 'cost': 1.40, 'uses': 4, 'role':"food" , 'MATRIX':{'tough':0.5, 'power':0.4, 'vigor':0.7, 'regen':5.0, 'vital':1.0, 'metab':5.0, 'karma':0.1, 'kcal': 52, 'protein': 0.9, 'sugar': 8.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I26':{ 'name':"Grapes, Green" , 'cost': 2.98, 'uses': 5, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.2, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 59, 'protein': 0.5, 'sugar': 14.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I27':{ 'name':"Grapes, Red" , 'cost': 2.54, 'uses': 5, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.2, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 68, 'protein': 0.6, 'sugar': 17.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I28':{ 'name':"Green Beans" , 'cost': 1.36, 'uses': 5, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.2, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 31, 'protein': 1.8, 'sugar': 0.5,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I29':{ 'name':"Green Onions (scallions)" , 'cost': 2.19, 'uses':10, 'role':"food" , 'MATRIX':{'tough':0.4, 'power':0.2, 'vigor':0.2, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 15, 'protein': 0.9, 'sugar': 0.9,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I30':{ 'name':"Guava" , 'cost': 3.54, 'uses': 7, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.2, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 38, 'protein': 1.4, 'sugar': 4.9,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I31':{ 'name':"Jalapenos" , 'cost': 1.19, 'uses': 5, 'role':"food" , 'MATRIX':{'tough':3.7, 'power':0.2, 'vigor':0.1, 'regen':3.0, 'vital':1.0, 'metab':5.0, 'karma':0.1, 'kcal': 26, 'protein': 0.8, 'sugar': 3.7,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I32':{ 'name':"Kale" , 'cost': 2.27, 'uses': 6, 'role':"food" , 'MATRIX':{'tough':0.5, 'power':0.2, 'vigor':0.1, 'regen':4.0, 'vital':1.0, 'metab':2.0, 'karma':0.1, 'kcal': 33, 'protein': 2.9, 'sugar': 1.6,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I33':{ 'name':"Kiwis" , 'cost': 0.45, 'uses': 1, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.3, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 42, 'protein': 0.8, 'sugar': 6.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I34':{ 'name':"Lemons" , 'cost': 1.21, 'uses':16, 'role':"food" , 'MATRIX':{'tough':0.6, 'power':0.4, 'vigor':0.5, 'regen':3.0, 'vital':1.0, 'metab':5.0, 'karma':0.1, 'kcal': 9, 'protein': 0.3, 'sugar': 0.8,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I35':{ 'name':"Lettuce, Iceberg" , 'cost': 1.52, 'uses': 6, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.1, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 10, 'protein': 1.0, 'sugar': 2.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I36':{ 'name':"Limes" , 'cost': 1.49, 'uses': 6, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.3, 'vigor':0.1, 'regen':3.0, 'vital':1.0, 'metab':5.0, 'karma':0.1, 'kcal': 20, 'protein': 0.5, 'sugar': 1.1,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I37':{ 'name':"Mangos" , 'cost': 1.61, 'uses': 1, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.3, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal':201, 'protein': 2.8, 'sugar': 46.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I38':{ 'name':"Mushrooms, Portobello" , 'cost': 4.53, 'uses': 5, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.4, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 20, 'protein': 3.0, 'sugar': 2.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I39':{ 'name':"Nectarines" , 'cost': 2.43, 'uses': 3, 'role':"food" , 'MATRIX':{'tough':0.4, 'power':0.3, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 63, 'protein': 1.5, 'sugar': 11.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I40':{ 'name':"Olives" , 'cost': 2.24, 'uses':10, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.3, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 56, 'protein': 6.0, 'sugar': 8.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I41':{ 'name':"Onions" , 'cost': 1.14, 'uses':13, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.5, 'vigor':0.5, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 44, 'protein': 1.2, 'sugar': 4.7,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I42':{ 'name':"Oranges" , 'cost': 1.15, 'uses': 3, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.4, 'vigor':0.1, 'regen':3.0, 'vital':1.0, 'metab':5.0, 'karma':0.1, 'kcal': 78, 'protein': 1.5, 'sugar': 15.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I43':{ 'name':"Papayas" , 'cost': 1.63, 'uses': 3, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.3, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 67, 'protein': 0.7, 'sugar': 12.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I44':{ 'name':"Passion Fruit" , 'cost': 7.43, 'uses':25, 'role':"food" , 'MATRIX':{'tough':0.5, 'power':0.5, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 17, 'protein': 0.4, 'sugar': 2.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I45':{ 'name':"Peaches" , 'cost': 2.64, 'uses': 3, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.4, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 59, 'protein': 1.4, 'sugar': 13.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I46':{ 'name':"Pears" , 'cost': 1.38, 'uses': 2, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.2, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal':102, 'protein': 0.6, 'sugar': 17.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I47':{ 'name':"Pineapples" , 'cost': 2.74, 'uses': 3, 'role':"food" , 'MATRIX':{'tough':0.5, 'power':0.4, 'vigor':0.5, 'regen':3.0, 'vital':1.0, 'metab':5.0, 'karma':0.1, 'kcal':151, 'protein': 1.6, 'sugar': 29.7,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I48':{ 'name':"Plums" , 'cost': 1.68, 'uses': 1, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.2, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 30, 'protein': 0.5, 'sugar': 7.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I49':{ 'name':"Pomegranate" , 'cost': 1.13, 'uses': 3, 'role':"food" , 'MATRIX':{'tough':0.5, 'power':0.2, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 72, 'protein': 1.5, 'sugar': 12.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I50':{ 'name':"Potatoes (5lb bag)" , 'cost': 2.64, 'uses':12, 'role':"hard food" , 'MATRIX':{'tough':0.3, 'power':0.2, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal':163, 'protein': 4.3, 'sugar': 1.7,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I51':{ 'name':"Pumpkin (2lb)" , 'cost': 3.08, 'uses': 8, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.3, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 30, 'protein': 1.2, 'sugar': 3.2,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I52':{ 'name':"Raspberries" , 'cost': 2.98, 'uses': 4, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.2, 'vigor':0.3, 'regen':5.0, 'vital':1.0, 'metab':9.0, 'karma':0.1, 'kcal': 65, 'protein': 1.5, 'sugar': 5.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I53':{ 'name':"Spinach" , 'cost': 6.07, 'uses': 3, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':4.2, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 35, 'protein': 4.5, 'sugar': 0.5,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I54':{ 'name':"Squash" , 'cost': 2.06, 'uses': 2, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.2, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 76, 'protein': 1.8, 'sugar': 7.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I55':{ 'name':"Star fruit (carambola)" , 'cost': 5.67, 'uses': 5, 'role':"food" , 'MATRIX':{'tough':0.5, 'power':0.3, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 28, 'protein': 0.9, 'sugar': 3.6,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I56':{ 'name':"Strawberries" , 'cost': 6.29, 'uses': 6, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.1, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 28, 'protein': 0.7, 'sugar': 4.2,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I57':{ 'name':"Sweet Potatoes" , 'cost': 1.78, 'uses': 4, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.3, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal':114, 'protein': 2.1, 'sugar': 6.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I58':{ 'name':"Tangerines" , 'cost': 3.04, 'uses': 5, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.3, 'vigor':0.1, 'regen':3.0, 'vital':1.0, 'metab':5.0, 'karma':0.1, 'kcal': 47, 'protein': 0.7, 'sugar': 9.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I59':{ 'name':"Tomatoes" , 'cost': 2.87, 'uses': 4, 'role':"food" , 'MATRIX':{'tough':0.4, 'power':0.2, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 22, 'protein': 1.1, 'sugar': 3.2,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I60':{ 'name':"Watermelon (5lb)" , 'cost': 3.14, 'uses': 8, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.2, 'vigor':0.1, 'regen':2.0, 'vital':1.0, 'metab':6.0, 'karma':0.1, 'kcal': 85, 'protein': 1.7, 'sugar': 17.0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A13_I61':{ 'name':"Zucchini" , 'cost': 2.21, 'uses': 2, 'role':"food" , 'MATRIX':{'tough':0.3, 'power':0.3, 'vigor':0.1, 'regen':1.0, 'vital':1.0, 'metab':3.0, 'karma':0.1, 'kcal': 44, 'protein': 3.2, 'sugar': 6.5,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* SNACKS */
'D05_A14_I01':{ 'name':"Beef Jerky, 10oz bag, Teriyaki" , 'cost': 11.95, 'uses': 10, 'role':"food" , 'MATRIX':{'tough':1.0, 'power':1.0, 'vigor':0.1, 'regen':0.2, 'vital':0.1, 'metab':4.0, 'karma':-0.6, 'kcal':108, 'protein':12.1, 'sugar': 1, 'money':0, 'petro':0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A14_I02':{ 'name':"Mixed Nuts, 1lb" , 'cost': 4.95, 'uses': 13, 'role':"food" , 'MATRIX':{'tough':0.0, 'power':0.0, 'vigor':0.1, 'regen':0.0, 'vital':0.0, 'metab':3.0, 'karma': 0.0, 'kcal':180, 'protein': 6.4, 'sugar': 4, 'money':0, 'petro':0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D05_A14_I03':{ 'name':"Potato Chips, Family Size" , 'cost': 4.29, 'uses': 14, 'role':"food" , 'MATRIX':{'tough':0.0, 'power':0.0, 'vigor':0.1, 'regen':0.0, 'vital':0.0, 'metab':2.0, 'karma': 0.0, 'kcal':152, 'protein': 1.9, 'sugar':15, 'money':0, 'petro':0,}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* END GROCERY */
/* GARDEN */
/* MASONRY */
'D06_A01_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D06_A01_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D06_A01_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* PATIO FURNITURE */
'D06_A02_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D06_A02_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D06_A02_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* POTS */
'D06_A03_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D06_A03_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D06_A03_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* PLANTS */
'D06_A04_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"plant" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D06_A04_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"plant" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D06_A04_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"plant" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* SEEDS */
'D06_A05_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"seed" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D06_A05_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"seed" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D06_A05_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"seed" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* SOIL */
'D06_A06_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D06_A06_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D06_A06_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* END GARDEN */
/* HARDWARE */
/* BITS & BOLTS */
'D07_A01_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"fastener" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D07_A01_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"fastener" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D07_A01_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"fastener" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* ELECTRICAL */
'D07_A02_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D07_A02_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D07_A02_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* FIXTURES */
'D07_A03_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D07_A03_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D07_A03_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* HVAC */
'D07_A04_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D07_A04_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D07_A04_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* PLUMBING */
'D07_A05_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"plumbing" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D07_A05_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"plumbing" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D07_A05_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"plumbing" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* POOL */
'D07_A06_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D07_A06_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D07_A06_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* TOOLS */
'D07_A07_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"tool" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D07_A07_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"tool" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D07_A07_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"tool" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* END HARDWARE */
/* HOUSEHOLD */
/* APPLIANCES */
'D08_A01_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D08_A01_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D08_A01_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* BEDDING */
'D08_A02_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"bedding" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D08_A02_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"bedding" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D08_A02_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"bedding" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* BOARDGAMES */
'D08_A03_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"game" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D08_A03_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"game" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D08_A03_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"game" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* CLEANERS */
'D08_A04_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"chemical" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D08_A04_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"chemical" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D08_A04_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"chemical" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* COOKWARE */
'D08_A05_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D08_A05_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D08_A05_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* CRAFTS */
'D08_A06_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D08_A06_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D08_A06_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* DISHES */
'D08_A07_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D08_A07_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D08_A07_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* FLOOR CARE */
'D08_A08_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D08_A08_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D08_A08_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* LINENS */
'D08_A09_I01':{ 'name':"sheets" , 'cost': 11.98, 'uses':200, 'role':"bedding" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D08_A09_I02':{ 'name':"towel" , 'cost': 6.98, 'uses':120, 'role':"towel" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D08_A09_I03':{ 'name':"washcloth, 2pk" , 'cost': 0.98, 'uses': 70, 'role':"hygene" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* PAPER GOODS */
'D08_A10_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D08_A10_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D08_A10_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* STORAGE */
'D08_A11_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D08_A11_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D08_A11_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* TOYS */
'D08_A12_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D08_A12_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D08_A12_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* WINDOWS */
'D08_A13_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D08_A13_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D08_A13_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* END HOUSEHOLD */
/* HYGENE */
/* GENERAL */
'D09_A01_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D09_A01_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D09_A01_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* HAIR CARE */
'D09_A02_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D09_A02_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D09_A02_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* MAKEUP */
'D09_A03_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D09_A03_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D09_A03_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* NAILS */
'D09_A04_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D09_A04_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D09_A04_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* ORAL CARE */
'D09_A05_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D09_A05_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D09_A05_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* PERSONAL CARE */
'D09_A06_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D09_A06_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D09_A06_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* SKIN CARE */
'D09_A07_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D09_A07_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D09_A07_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* END HYGENE */
/* OFFICE */
/* BINDINGS */
'D10_A01_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D10_A01_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D10_A01_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* BRIEFCASES */
'D10_A02_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D10_A02_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D10_A02_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* FILE CABINETS */
'D10_A03_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D10_A03_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D10_A03_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* LUGGAGE */
'D10_A04_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D10_A04_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D10_A04_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* NOTEBOOKS */
'D10_A05_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D10_A05_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D10_A05_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* PAPER */
'D10_A06_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D10_A06_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D10_A06_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* TOOLS */
'D10_A07_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D10_A07_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D10_A07_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* WRITING */
'D10_A08_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D10_A08_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D10_A08_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* END OFFICE */
/* PHARMACY */
/* COUNTER */
'D11_A01_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D11_A01_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D11_A01_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* FIRST AID */
'D11_A02_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D11_A02_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D11_A02_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* GADGETS */
'D11_A03_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D11_A03_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D11_A03_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* HEAD & FLU */
'D11_A04_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D11_A04_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D11_A04_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* SUPPLEMENTS */
'D11_A05_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D11_A05_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D11_A05_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* END PHARMACY */
/* SEASONAL */
/* VALENTINES */
'D12_A01_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D12_A01_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D12_A01_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* ST PADDYS/EASTER */
'D12_A02_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D12_A02_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D12_A02_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* SUMMER/JULY 4th */
'D12_A03_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D12_A03_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D12_A03_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* BACK TO SCHOOL */
'D12_A04_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D12_A04_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D12_A04_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* HALLOWEEN */
'D12_A05_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D12_A05_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D12_A05_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* THANKSGIVING */
'D12_A06_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D12_A06_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D12_A06_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* BLACK FRIDAY */
'D12_A07_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D12_A07_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D12_A07_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* XMAS/NEW YEAR */
'D12_A08_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D12_A08_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D12_A08_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* END SEASONAL */
/* SPORTING GOODS */
/* BIKING */
'D13_A01_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D13_A01_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D13_A01_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* CAMPING */
'D13_A02_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D13_A02_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D13_A02_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* EXERCISE MACHINES */
'D13_A03_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D13_A03_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D13_A03_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* FISHING */
'D13_A04_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D13_A04_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D13_A04_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* GADGETS */
'D13_A05_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D13_A05_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D13_A05_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* HUNTING */
'D13_A06_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D13_A06_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D13_A06_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* KEYS */
'D13_A07_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D13_A07_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D13_A07_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* SPORTS EQUIPMENT */
'D13_A08_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D13_A08_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D13_A08_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* WEIGHTS */
'D13_A09_I01':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D13_A09_I02':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
'D13_A09_I03':{ 'name':"" , 'cost': 0.00, 'uses':100, 'role':"" , 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", },
/* END SPORTING GOODS */
/* 'D00_A00_I00':{ 'name':"", 'cost': 0.00, 'uses':100, 'MATRIX':{}, 'onAction':function(hours) { hours=hours||1; }, 'desc':"an item...", }, */
/* END setup.ITEMS */ }>><<set setup.ENGINE={ /* GAME ENGINE -- everything below this point */
'gameVersion' : 0.21,
'buildVersion' : "public build",
'versionUpdate' : function() {
/* v0.1-0.11 */
var out_of_date=false;
/* shift gamestate data to characters before running additional tests */
if(!$GAMEDATA.PC.STATE && $GAMEDATA.STATE) { $GAMEDATA.PC.STATE = $GAMEDATA.STATE; $GAMEDATA.STATE = null; }
if(!$GAMEDATA.PC.STATE.saveVersion && $GAMEDATA.PC.STATE.gameVersion) { $GAMEDATA.PC.STATE.saveVersion = $GAMEDATA.PC.STATE.gameVersion; $GAMEDATA.PC.STATE.gameVersion = null; }
if( !$GAMEDATA.PC.STATE.saveVersion ){ $GAMEDATA.PC.STATE.saveVersion = 0.10; }
if( $GAMEDATA.PC.STATE.saveVersion<setup.ENGINE.gameVersion ){
switch( true ){
case ($GAMEDATA.PC.STATE.saveVersion<0.21):
/* do updates accordingly, default character is Cindy */
if(!$GAMEDATA.PC.METRICS.bust || $GAMEDATA.PC.METRICS.bust<0) { out_of_date=true; $GAMEDATA.PC.METRICS.bust = 2; }
if(!$GAMEDATA.PC.PASSAGES) { out_of_date=true; $GAMEDATA.PC.PASSAGES={ 'start':"START CINDY", 'home':"LIVING IN CAR" }; }
if(!$GAMEDATA.PC.STATE) { out_of_date=true; $GAMEDATA.PC.STATE={ 'Date': new Date() }; }
if(!$GAMEDATA.PC.STATE.lastPassage) { out_of_date=true; $GAMEDATA.PC.STATE.lastPassage = State.passage; }
if(!$GAMEDATA.PC.METRICS.base_ht) { out_of_date=true; $GAMEDATA.PC.METRICS.base_ht=setup.CHARS['Cindy Phoenix'].METRICS.base_ht; }
if(!$GAMEDATA.PC.METRICS.adj_wt) { out_of_date=true; $GAMEDATA.PC.METRICS.adj_wt=setup.CHARS['Cindy Phoenix'].METRICS.wt; }
if(!$GAMEDATA.PC.JUNK) { out_of_date=true; $GAMEDATA.PC.JUNK={}; }
/* update character descriptions */
break;
}
/* wait until all upgrade tests pass before updating version number... */
/* this way, if it requires player choice, like creed, it will keep prompting until a selection is made */
if(!out_of_date) { $GAMEDATA.PC.STATE.saveVersion = setup.ENGINE.gameVersion; }
}
},
'do_status_update' : function(CHAR){
CHAR=CHAR||$GAMEDATA.PC;
this.versionUpdate();
this.before_update(CHAR);
CHAR.METRICS.scale = CHAR.METRICS.ht / CHAR.METRICS.base_ht;
CHAR.METRICS.adj_wt = Math.round(setup.ENGINE.scale(CHAR.METRICS.wt, 3, CHAR));
if(isNaN(CHAR.MATRIX.kcal)) { CHAR.MATRIX.kcal=0; }
/* set metrics */
CHAR.STATS.level = ( CHAR.STATS.STR + CHAR.STATS.END + CHAR.STATS.SPD + CHAR.STATS.PHY ) / 4;
CHAR.STATS.workout_hrs = this.stack(CHAR.STATS.level)/60;
CHAR.METRICS.BMI = (CHAR.METRICS.adj_wt/(CHAR.METRICS.ht**2)*703);
CHAR.STATS.karmic_well = (
this.stack(CHAR.STATS.STR)
+ this.stack(CHAR.STATS.END)
+ this.stack(CHAR.STATS.SPD)
+ this.stack(CHAR.STATS.PHY)
);
/* setup.ENGINE.scale(,2, CHAR); */
/* Variable Bodymass (VBM) is anything over 1 lb per inch of height can be either muscle or fat, the remainder is essential structures and organs */
var VBM = setup.ENGINE.scale(CHAR.METRICS.wt-CHAR.METRICS.ht, 3, CHAR);
var PHY_stack = (CHAR.STATS.PHY+1)*(CHAR.STATS.PHY/2);
var VBM_toned = PHY_stack/(PHY_stack+VBM);
CHAR.METRICS.bodyfat = ((1-VBM_toned)*(VBM/CHAR.METRICS.adj_wt)*100);
/* base calculations */
CHAR.METRICS.bicep = Math.max( 3, 3+(CHAR.STATS.STR*0.25) + ((CHAR.STATS.END +CHAR.STATS.PHY)/8) + (CHAR.METRICS.wt /84) ); /* 6.0, inches; max-curl = power*bicep/30; reps - max/3 */
CHAR.METRICS.quads = Math.max( 6, 7+(CHAR.STATS.STR*0.45) + ((CHAR.STATS.END +CHAR.STATS.PHY)/6.2) + (CHAR.METRICS.wt /62) ); /* 13.0, inches; max-squat = power*quad/15; reps - max/3 */
CHAR.METRICS.chest = Math.max( 15, 15+(CHAR.STATS.STR*0.75) + ((CHAR.STATS.END +CHAR.STATS.PHY)/5.4) + (CHAR.METRICS.wt /54) ); /* 23.0, */
CHAR.METRICS.waist = Math.max( 13, 16+(((CHAR.STATS.STR*0.15)+(CHAR.STATS.END*0.30)-(CHAR.STATS.PHY*0.4))*0.55) + ((CHAR.METRICS.wt-CHAR.METRICS.ht) /12.4) ); /* 19.0, */
CHAR.METRICS.hips = Math.max( 14, 13+(CHAR.STATS.STR*0.80) + ((CHAR.STATS.END +CHAR.STATS.PHY)/4.8) + (CHAR.METRICS.wt /44) ); /* 25.0, */
CHAR.METRICS.cup = Math.round(CHAR.METRICS.bust + (CHAR.METRICS.wt/88) + ((CHAR.METRICS.bodyfat/10)-5.4));
if(!setup.FLAGS.DISPLAY.base_metrics){
/* scale metrics */
CHAR.METRICS.bicep = setup.ENGINE.scale( CHAR.METRICS.bicep, 2, CHAR); /* 6.0, inches; max-curl = power*bicep/30; reps - max/3 */
CHAR.METRICS.quads = setup.ENGINE.scale( CHAR.METRICS.quads, 2, CHAR); /* 13.0, inches; max-squat = power*quad/15; reps - max/3 */
CHAR.METRICS.chest = setup.ENGINE.scale( CHAR.METRICS.chest, 2, CHAR); /* 23.0, */
CHAR.METRICS.waist = setup.ENGINE.scale( CHAR.METRICS.waist, 2, CHAR); /* 19.0, */
CHAR.METRICS.hips = setup.ENGINE.scale( CHAR.METRICS.hips, 2, CHAR); /* 25.0, */
CHAR.METRICS.cup = Math.round(setup.ENGINE.scale( CHAR.METRICS.cup, 2, CHAR));
}
/* put stats in upper bounds */
CHAR.MATRIX.tough = Math.min( CHAR.MATRIX.tough, (CHAR.STATS.STR * CHAR.STATS.END)*3 );
CHAR.MATRIX.power = Math.min( CHAR.MATRIX.power, (CHAR.STATS.STR * CHAR.STATS.SPD)*3 );
CHAR.MATRIX.vigor = Math.min( CHAR.MATRIX.vigor, (CHAR.STATS.STR * CHAR.STATS.PHY)*3 );
CHAR.MATRIX.regen = Math.min( CHAR.MATRIX.regen, (CHAR.STATS.END * CHAR.STATS.SPD)*3 );
CHAR.MATRIX.vital = Math.min( CHAR.MATRIX.vital, (CHAR.STATS.END * CHAR.STATS.PHY)*3 );
CHAR.MATRIX.metab = Math.min( CHAR.MATRIX.metab, (CHAR.STATS.SPD * CHAR.STATS.PHY)*3 );
CHAR.MATRIX.karma = Math.min(CHAR.MATRIX.karma, CHAR.STATS.karmic_well*CHAR.STATS.level);
CHAR.STATS.qi = CHAR.MATRIX.tough + CHAR.MATRIX.power + CHAR.MATRIX.vigor + CHAR.MATRIX.regen + CHAR.MATRIX.vital + CHAR.MATRIX.metab;
CHAR.STATS.max_qi = this.maxResource('tough') + this.maxResource('power') + this.maxResource('vigor') + this.maxResource('regen') + this.maxResource('vital') + this.maxResource('metab');
/* bleed off excessive energy at 10% per cycle */
if(CHAR.MATRIX.tough>(CHAR.STATS.STR * CHAR.STATS.END)) { CHAR.MATRIX.tough *= 0.9; }
if(CHAR.MATRIX.power>(CHAR.STATS.STR * CHAR.STATS.SPD)) { CHAR.MATRIX.power *= 0.9; }
if(CHAR.MATRIX.vigor>(CHAR.STATS.STR * CHAR.STATS.PHY)) { CHAR.MATRIX.vigor *= 0.9; }
if(CHAR.MATRIX.regen>(CHAR.STATS.END * CHAR.STATS.SPD)) { CHAR.MATRIX.regen *= 0.9; }
if(CHAR.MATRIX.vital>(CHAR.STATS.END * CHAR.STATS.PHY)) { CHAR.MATRIX.vital *= 0.9; }
if(CHAR.MATRIX.metab>(CHAR.STATS.SPD * CHAR.STATS.PHY)) { CHAR.MATRIX.metab *= 0.9; }
/* bleed off excessive karma at 1% per cycle */
if(CHAR.MATRIX.karma>CHAR.STATS.karmic_well) { CHAR.MATRIX.karma *= 0.99; }
for(var status in setup.STATUSES) {
if(status in CHAR.STATUS) { /* see if it should be removed... */
if(false==setup.STATUSES[status].test()) {
delete CHAR.STATUS[status];
setup.STATUSES[status].onRemove();
}
} else { /* see if it should be added... */
if(true==setup.STATUSES[status].test()) {
CHAR.STATUS[status]=setup.STATUSES[status].text;
setup.STATUSES[status].onApply();
}
}
}
this.after_update(CHAR);
this.refresh_detail();
},
'getSubEncounter' : function(sub_ENCOUNTERS) {
var sub_total = 0;
var sub_spin = Math.random();
var sub_WHEEL = {};
Object.keys(sub_ENCOUNTERS).forEach(function(name) {
sub_total+=sub_ENCOUNTERS[name];
sub_WHEEL[sub_total]=name;
});
/* alert(JSON.stringify(sub_ENCOUNTERS)); */
/* alert(JSON.stringify(sub_WHEEL)); */
sub_spin=Math.round(sub_spin*sub_total);
/* find the spin in the wheel... */
return sub_WHEEL[Object.keys(sub_WHEEL).find(function(ticks) { return ticks>=sub_spin; })];
},
'setupPassage' : function(passage) {
passage=passage||State.passage;
setup.ENGINE.do_status_update();
/* run passage setup */
setup.PASSAGES[passage].setup();
var ENCOUNTERS = setup.PASSAGES[passage].ENCOUNTERS;
var total = 0;
var spin = Math.random();
var WHEEL = {};
Object.keys(ENCOUNTERS).forEach(function(name) {
total+=ENCOUNTERS[name]();
WHEEL[total]=name;
});
/* alert(JSON.stringify(WHEEL)); */
spin=Math.round(spin*total);
/* find the spin in the wheel... */
var encounter = WHEEL[Object.keys(WHEEL).find(function(ticks) { return ticks>=spin; })];
/* set a temporary variable _encounter=encounter */
State.setVar( '_encounter', encounter );
/* IF event has variations, update _encounter to a specific one */
if(setup.ENCOUNTERS[encounter].VARIATIONS) {
var sub_ENCOUNTERS = setup.ENCOUNTERS[encounter].VARIATIONS;
var sub_total = 0;
var sub_spin = Math.random();
var sub_WHEEL = {};
Object.keys(sub_ENCOUNTERS).forEach(function(name) {
sub_total+=sub_ENCOUNTERS[name];
sub_WHEEL[sub_total]=name;
});
/* alert(JSON.stringify(sub_ENCOUNTERS)); */
/* alert(JSON.stringify(sub_WHEEL)); */
sub_spin=Math.round(sub_spin*sub_total);
/* find the spin in the wheel... */
var sub_encounter = sub_WHEEL[Object.keys(sub_WHEEL).find(function(ticks) { return ticks>=sub_spin; })];
/* set a temporary variable _encounter=encounter */
State.setVar( '_encounter', sub_encounter );
}
/* run encounter setup */
setup.ENCOUNTERS[encounter].setup();
return null;
},
'beforePassage' : function(encounter, passage) {
passage=passage||State.passage;
encounter=encounter||_encounter;
if(typeof setup.ENCOUNTERS[encounter].beforePassage === 'function') {
return setup.ENCOUNTERS[encounter].beforePassage();
}
},
'replacePassage' : function(encounter, passage) {
passage=passage||State.passage;
encounter=encounter||_encounter;
/* keeps saying setup is not defined */
if(typeof setup.ENCOUNTERS[encounter].replacePassage === 'function') {
return setup.ENCOUNTERS[encounter].replacePassage();
}
},
'afterPassage' : function(encounter, passage) {
passage=passage||State.passage;
encounter=encounter||_encounter;
if(typeof setup.ENCOUNTERS[encounter].afterPassage === 'function') {
return setup.ENCOUNTERS[encounter].afterPassage();
}
},
'exitPassage' : function(encounter, passage) {
passage=passage||State.passage;
encounter=encounter||_encounter;
if(setup.ENCOUNTERS[encounter].overrideExit) {
return '';
} else {
return setup.PASSAGES[passage].exit();
}
},
'enc_showChoices' : function(CHOICES, encounter) {
encounter=encounter||_encounter;
var uid = 'choices-' + Date.now();
var out = "<div id='"+ uid +"'><ul class='choices'>";
Object.keys(CHOICES).forEach(function(opt){
out += "<li><<link '"+ opt +"'>><<replace '#"+ uid +"'>><<print setup.ENCOUNTERS['"+ encounter +"'].CHOICES['"+ CHOICES[opt] +"']()>><</replace>><</link>></li>";
});
out += "</ul></div>";
return out;
},
'enc_moreDetail' : function(linktext, handler, encounter) {
encounter=encounter||_encounter;
var out = "<p class='optional'><<linkreplace '"+ linktext +"'>><<print setup.ENCOUNTERS['"+ encounter +"'].CHOICES['"+ handler +"']()>><</linkreplace>></p>";
return out;
},
'describePassage' : function(passage) {
passage=passage||State.passage;
var desc='';
if( $GAMEDATA.PC.STATE.lastPassage==passage ) {
desc=$GAMEDATA.PC.STATE.passageDesc;
} else {
switch(passage) {
case 'GO FOR A WALK' :
case 'GO FOR A JOG' :
case 'GO FOR A RUN' :
case 'DO AEROBICS' :
case 'DO CALISTHENICS' :
case 'DO YOGA' :
case 'POST WORKOUT' :
case 'PUSH YOURSELF' : desc = 'exercising'; break;
case 'ENTER BATHROOM' : desc = 'in the bathroom'; break;
case 'FILLOUT APPLICATION' : desc = 'filling an application'; break;
case 'EQUIP' : desc = 'changing'; break;
case 'FOOD' : desc = 'eating'; break;
case 'STUFF' : desc = 'going through your stuff'; break;
case 'SPEND KARMA' : desc = 'growing'; break;
case 'SELF' : desc = 'looking in the mirror'; break;
case 'LOOK FOR CHANGE' : desc = 'searching'; break;
case 'GO HOME' : desc = 'home'; break;
case 'LIVING ON STREET' : desc = 'on the street'; break;
case 'LIVING IN PRISON' : desc = 'in your cell'; break;
case 'LIVING IN CAR' : desc = 'sitting in the car'; break;
case 'LIVING IN MOTEL' : desc = 'in your room'; break;
case 'SLEEP IN CAR' :
case 'SLEEP IN BED' :
case 'REST A BIT' :
case 'TAKE A NAP' : desc = 'resting'; break;
case 'SHOP S-MART' :
case 'CHECKOUT APPAREL' :
case 'CHECKOUT AUTOMOTIVE' :
case 'CHECKOUT ELECTRONICS' :
case 'CHECKOUT FURNITURE' :
case 'CHECKOUT GARDEN' :
case 'CHECKOUT GROCERY' :
case 'CHECKOUT HARDWARE' :
case 'CHECKOUT HOUSEHOLD' :
case 'CHECKOUT HYGENE' :
case 'CHECKOUT OFFICE' :
case 'CHECKOUT PHARMACY' :
case 'CHECKOUT SEASONAL' :
case 'CHECKOUT SPORTING GOODS' :
case 'LIST ITEMS FOR AISLE' : desc = 'shopping'; break;
default: desc = '...'; break;
}
}
return desc;
},
'findChange' : function(min_find, max_find, karmic_boost) {
min_find=min_find||10;
max_find=max_find||100;
if(typeof karmic_boost==='undefined') { karmic_boost=true; }
var k_mul = (karmic_boost ? 0.1 + Math.sqrt(Math.max($GAMEDATA.PC.MATRIX.karma,0)/100) : 1 );
return Math.floor(
Math.random()*((max_find-min_find)*k_mul)
)/100;
},
'findCash' : function(min_find, max_find, karmic_boost) {
min_find=min_find||1;
max_find=max_find||100;
if(typeof karmic_boost==='undefined') { karmic_boost=true; }
var k_mul = (karmic_boost ? 0.1 + Math.sqrt(Math.max($GAMEDATA.PC.MATRIX.karma,0)/1000) : 1 );
var found = Math.floor(
Math.random()*((max_find-min_find)*k_mul)
);
/* grr.... */
/* if(isNaN(found)) { found=0; } */
return found;
},
'randomID' : function() {
/* will add age, address, and other bits later... */
return setup.NAMES.randomName();
},
'getDeptName' : function(aisle) {
var dept = aisle.substr(0,3);
return setup.AISLES[dept].name.toLowerCase();
},
'getAisleName' : function(aisle) {
var dept = aisle.substr(0,3);
return setup.AISLES[dept].AISLES[aisle].name.toLowerCase();
},
'char_select_menu' : function() {
var select_screen = '';
select_screen += "<<click 'Cindy (aspiring actress)'>>";
select_screen += "<<run setup.ENGINE.select_char('Cindy Phoenix'); >>";
select_screen += "<<goto $GAMEDATA.PC.PASSAGES.start >>";
select_screen += "<</click>>";
return select_screen;
},
'select_char' : function(char_name) {
$GAMEDATA.PC = setup.CHARS[char_name];
setup.ENGINE.do_status_update();
if(!$GAMEDATA.PC.STATE) {
$GAMEDATA.PC.STATE ={
'saveVersion' : this.gameVersion,
'feedbackQueue' : [],
'Date' : new Date(),
'lastPassage' : null,
'lastExercise' : null,
'lastActivity' : null,
'lastAction' : null,
'lastItem' : null,
};
}
},
'show_menu' : function(menu) {
$('#menu').html('');
$('#menu').wiki(Story.get(menu).processText());
$('#menu').show();
},
'hide_menu' : function() {
$('#menu').html('');
$('#menu').hide();
},
'karmic_link' : function(stat, CHAR) {
CHAR=CHAR||$GAMEDATA.PC;
var kLink = '';
var cost = 0;
var type = '';
var label = stat;
var amt = 1;
var hint = '';
switch(stat) {
case 'STR':
case 'END':
case 'SPD':
case 'PHY':
cost = Math.round(((CHAR.STATS[stat]+1)*(CHAR.STATS[stat]/2))*10);
type = 'STATS';
break;
case 'cup':
stat = 'bust';
case 'bust':
cost = Math.round(setup.ENGINE.xp_curve(
/* ( lv, +mod1, *rate1, **exp, *rate2, +mod2) */
CHAR.METRICS[stat], 1+3.69, 3.54, 2.032, 3.54, -1900
));
type = 'METRICS';
break;
case 'height':
stat = 'ht';
case 'ht':
cost = Math.round(setup.ENGINE.xp_curve(
/* ( lv, +mod1, *rate1, **exp, *rate2, +mod2) */
CHAR.METRICS[stat], -12, 1/24, 10, 1/24, 16
));
type = 'METRICS';
hint = ("Metric"==settings.units ? '(2.54 cm)' : '');
break;
case 'weight':
stat = 'wt';
case 'wt':
cost = Math.round(setup.ENGINE.xp_curve(
/* ( lv, +mod1, *rate1, **exp, *rate2, +mod2) */
CHAR.METRICS[stat], 0, 1/42, 3, 6, 30
));
type = 'METRICS';
amt = 5;
hint = ("Metric"==settings.units ? '(2.27 kg)' : '');
break;
/* not a karmically linkable stat */
default:
return label;
}
/* not enough karma to link stat */
if(cost>CHAR.MATRIX.karma) {
return "<span title='"+ cost +" karma'>" + label + "</span>";
}
kLink += "<span title='"+ cost +" karma'><<link '"+ label +"'>>";
kLink += "<<set _cost = "+ cost +" >>";
kLink += "<<set _stat = '"+ stat +"'>>";
kLink += "<<set _label = '"+ label +"'>>";
kLink += "<<set _type = '"+ type +"'>>";
kLink += "<<set _amt = "+ amt +" >>";
kLink += "<<set _hint = '"+ hint +"'>>";
kLink += "<<run setup.ENGINE.show_menu('SPEND KARMA');>>";
kLink += "<</link>></span>";
return kLink;
},
'char_metric' : function(metric, CHAR) {
CHAR=CHAR||$GAMEDATA.PC;
var value = '';
switch(metric) {
case 'height':
metric = 'ht';
case 'ht':
value = ( "Metric"==settings.units
? this.in2cm(CHAR.METRICS[metric]).toFixed(1) +' cm'
: this.in2ft(CHAR.METRICS[metric])
);
break;
case 'weight':
metric = 'wt';
case 'wt':
if(!setup.FLAGS.DISPLAY.base_metrics) {
value = ( "Metric"==settings.units
? this.lbs2kg(setup.ENGINE.scale(CHAR.METRICS[metric], 3, CHAR)).toFixed(1) +' kg'
: setup.ENGINE.scale(CHAR.METRICS[metric], 3, CHAR).toFixed(1) +' #'
);
} else {
value = ( "Metric"==settings.units
? this.lbs2kg(CHAR.METRICS[metric]).toFixed(1) +' kg'
: CHAR.METRICS[metric].toFixed(1) +' #'
);
}
break;
case 'bust':
value = ( "Metric"==settings.units
? this.in2cm(CHAR.METRICS['chest']).toFixed(1) +' cm'
: CHAR.METRICS['chest'].toFixed(1) +'"'
) +" "+ this.calc_bust(CHAR.METRICS['cup']);
break;
/* simple measures */
case 'bicep' :
case 'quads' :
case 'chest' :
case 'waist' :
case 'hips' :
value = ( "Metric"==settings.units
? this.in2cm(CHAR.METRICS[metric]).toFixed(1) +' cm'
: CHAR.METRICS[metric].toFixed(1) +'"'
);
break;
case 'bodyfat' :
value = CHAR.METRICS[metric].toFixed(1) +'%';
break;
case 'BMI' :
value = CHAR.METRICS[metric].toFixed(1);
break;
/* no change */
case 'cup' :
value = this.calc_bust(CHAR.METRICS[metric]);
break;
case 'age' :
value = CHAR.METRICS[metric];
break;
default:
value = null;
break;
}
return value;
},
'in2ft' : function(i) {
var inches = i % 12;
var feet = (i-inches)/12;
return feet +'''+ inches +'"';
},
'in2cm' : function(inches) { return inches*2.54; },
'lbs2kg' : function(pounds) { return pounds/2.2; },
'degF2C' : function(deg) { return (deg-32)/1.8; },
'stack' : function(n) { return (n+1)*(n)/2; },
'xp_curve' : function(lv, mod1, rate1, exp, rate2, mod2) {
return (((((lv+mod1)*rate1)**exp)*rate2)+mod2);
},
'bust_UK' : ['AA','A','B','C','D','DD','E','F','FF','G','GG','H','HH','J','JJ','K','KK','L','LL','M','MM','N','NN','O','OO','P','PP','Q','QQ','R','RR','S','SS','T','TT','U','W','V','VV'],
'calc_bust' : function(bust) {
var uk_cup = '';
switch(true) {
case (bust<0): uk_cup = 'AA'; break;
case (bust>38): uk_cup = 'OMG'; break;
default: uk_cup = this.bust_UK[bust]; break;
}
return uk_cup;
},
'refresh_detail' : function() {
if($GAMEDATA.PC.STATE.detail) {
$('#detail').html('');
$('#detail').wiki(Story.get($GAMEDATA.PC.STATE.detail).processText());
}
},
'before_update' : function(CHAR){},
'after_update' : function(CHAR){},
'maxResource' : function(res, CHAR) {
CHAR=CHAR||$GAMEDATA.PC;
var maxRes = null;
switch(res) {
case 'tough': maxRes = (CHAR.STATS.STR * CHAR.STATS.END); break;
case 'power': maxRes = (CHAR.STATS.STR * CHAR.STATS.SPD); break;
case 'vigor': maxRes = (CHAR.STATS.STR * CHAR.STATS.PHY); break;
case 'regen': maxRes = (CHAR.STATS.END * CHAR.STATS.SPD); break;
case 'vital': maxRes = (CHAR.STATS.END * CHAR.STATS.PHY); break;
case 'metab': maxRes = (CHAR.STATS.SPD * CHAR.STATS.PHY); break;
default: break;
}
return maxRes;
},
'getResource' : function(res, CHAR){
CHAR=CHAR||$GAMEDATA.PC;
var style = '';
var digits = 1;
var max = null;
var rmr = 3500;
switch(res) {
case 'kcal': max = rmr; digits=2; break;
case 'protein': max = rmr/8; digits=2; break;
case 'sugar': max = rmr/10; digits=2; break;
case 'money': digits=2; break;
case 'petro': max = 14.0; break;
case 'tough':
case 'power':
case 'vigor':
case 'regen':
case 'vital':
case 'metab': max = this.maxResource(res); break;
case 'karma': max = CHAR.STATS.karmic_well; break;
case 'qi': max = CHAR.STATS.max_qi; break;
default: break;
}
if(max) {
switch(true) {
case (CHAR.MATRIX[res]/max >= 1.6 ): style='overcharged'; break;
case (CHAR.MATRIX[res]/max >= 1.1 ): style='overflowing'; break;
case (CHAR.MATRIX[res]/max >= 1.0 ): style='full'; break;
case (CHAR.MATRIX[res]/max >= 0.8 ): style='high'; break;
case (CHAR.MATRIX[res]/max <= 0.1 ): style='critical'; break;
case (CHAR.MATRIX[res]/max <= 0.4 ): style='low'; break;
default: style='normal'; break;
}
}
return "<span class='"+ style +"' title='"+ style +"'>"+ (CHAR.MATRIX[res]).toFixed(digits) +"</span>"
},
'getDate' : function() { return (this.getMonth()+1) +'/'+ $GAMEDATA.PC.STATE.Date.getDate() +'/'+ $GAMEDATA.PC.STATE.Date.getFullYear(); },
'getTime' : function() { return $GAMEDATA.PC.STATE.Date.getHours().toString().padStart(2,'0') +":"+ $GAMEDATA.PC.STATE.Date.getMinutes().toString().padStart(2,'0'); },
'getLongDate' : function() { return this.getDay() +', '+ this.getMonth() +' '+ $GAMEDATA.PC.STATE.Date.getDate() +', '+ $GAMEDATA.PC.STATE.Date.getFullYear(); },
'getMonth' : function() { return ['January','February','March','April','May','June','July','August','September','October','November','December'][$GAMEDATA.PC.STATE.Date.getMonth()]; },
'getDay' : function() { return ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'][$GAMEDATA.PC.STATE.Date.getDay()]; },
'addSeconds' : function(s) { $GAMEDATA.PC.STATE.Date=new Date($GAMEDATA.PC.STATE.Date.getTime() + s*1000); },
'addMinutes' : function(n) { $GAMEDATA.PC.STATE.Date=new Date($GAMEDATA.PC.STATE.Date.getTime() + n*60*1000); },
'addHours' : function(h) { $GAMEDATA.PC.STATE.Date=new Date($GAMEDATA.PC.STATE.Date.getTime() + h*60*60*1000); },
'addDays' : function(d) { $GAMEDATA.PC.STATE.Date=new Date($GAMEDATA.PC.STATE.Date.getTime() + d*24*60*60*1000); }, /* non-calendar, 24 hour days - no daylight savings */
'addWeeks' : function(w) { $GAMEDATA.PC.STATE.Date=new Date($GAMEDATA.PC.STATE.Date.getTime() + w* 7*24*60*60*1000); },
'addMonths' : function(m) { $GAMEDATA.PC.STATE.Date=new Date($GAMEDATA.PC.STATE.Date.getTime() + m* 30*24*60*60*1000); }, /* non-calendar, 30 day months - no 30.5/28/31 adjust */
'addYears' : function(y) { $GAMEDATA.PC.STATE.Date=new Date($GAMEDATA.PC.STATE.Date.getTime() + y*365*24*60*60*1000); }, /* non-calendar, 365 day years - no leap year */
'setTime' : function(h, n, s) { n=n||0; s=s||0; $GAMEDATA.PC.STATE.Date.setHours(h, n, s); },
'getFeedback' : function() {
var feedback = '';
if(($GAMEDATA.PC.STATE)&&($GAMEDATA.PC.STATE.feedbackQueue)) {
feedback = $GAMEDATA.PC.STATE.feedbackQueue.shift();
}
return feedback;
},
'giveFeedback' : function(msg) {
if(($GAMEDATA.PC.STATE)&&($GAMEDATA.PC.STATE.feedbackQueue)) {
$GAMEDATA.PC.STATE.feedbackQueue.push(msg);
}
},
'scale' : function(base, dimensions, CHAR) {
CHAR=CHAR||$GAMEDATA.PC;
return base * ((CHAR.METRICS.scale)**dimensions);
},
'val' : function(metric, CHAR) {
CHAR=CHAR||$GAMEDATA.PC;
/* first try char_metric() */
var val = setup.ENGINE.char_metric(metric, CHAR);
if(!val) {
/* next check TRAITS */
val = "<span class='blank'>[insert '"+ metric +"' metric here...]</span>";
}
return val;
},
'desc' : function(trait, CHAR) {
var desc = '';
if(setup.DESC[trait]) {
desc = setup.DESC[trait](CHAR);
} else {
desc = "<span class='blank'>[insert '"+ trait +"' description here...]</span>";
}
return desc;
},
'canDo' : function(activity, hours, level, CHAR) {
CHAR=CHAR||$GAMEDATA.PC;
var ACT_MATRIX = setup.ACTIONS[activity].MATRIX;
hours=hours||setup.ACTIONS[activity].hours;
level=level||1.0;
var effort = hours*level;
var can = true;
switch(activity) {
case 'rest':
can = true; /* you can ALWAYS rest, no matter what condition you are in... */
break;
default:
Object.keys(ACT_MATRIX).forEach(function(resource) {
if(typeof CHAR.MATRIX[resource] === 'undefined') { CHAR.MATRIX[resource]=0; }
if(ACT_MATRIX[resource]<0) {
switch(resource) {
/* ignore these: */ case 'kcal': case 'protein': case 'sugar': break;
default:
if(CHAR.MATRIX[resource] < (-ACT_MATRIX[resource] *effort)) {
can = false;
}
break;
}
}
});
break;
}
return can;
},
'maxHours' : function(activity, level, CHAR) {
CHAR=CHAR||$GAMEDATA.PC;
var ACT_MATRIX = setup.ACTIONS[activity].MATRIX;
level=level||1.0;
var hrs = Number.MAX_VALUE;
Object.keys(ACT_MATRIX).forEach(function(resource) {
if(typeof CHAR.MATRIX[resource] === 'undefined') { CHAR.MATRIX[resource]=0; }
if(ACT_MATRIX[resource]<0) {
switch(resource) {
/* ignore these: */ case 'kcal': case 'protein': case 'sugar': break;
default:
hrs = Math.min( hrs, ((CHAR.MATRIX[resource]/(-ACT_MATRIX[resource])) / level) );
break;
}
}
});
return hrs;
},
'workoutTable' : function(activity, HOURS, LEVELS, CHAR) {
LEVELS=LEVELS||{'light':0.5,'medium':1.0,'heavy':2.0};
HOURS=HOURS||{'auto':0,'quick':5/60,'short':20/60,'moderate':60/60,'long':180/60,'max':0};
CHAR=CHAR||$GAMEDATA.PC;
var hrs = 0.0; var twine_link = ''; var max_hours = 0.0;
var link_table = "<table class='workout'><tr><th></th>";
Object.keys(HOURS).forEach(function(h){
link_table += '<th>'+ h +'</th>';
});
link_table += '</tr>';
Object.keys(LEVELS).forEach(function(lv){
link_table += '<tr><th>'+ lv + '</th>';
max_hours = setup.ENGINE.maxHours(activity, LEVELS[lv], CHAR);
Object.keys(HOURS).forEach(function(h){
switch(h) {
case 'auto': hrs = CHAR.STATS.workout_hrs; break;
case 'max': hrs = max_hours; break;
default: hrs = HOURS[h]; break;
}
twine_link = ((hrs>max_hours) ? '<hr/>' : "<<link '"+ (hrs*60).toFixed(1) + ' min' + "'>>"
+"<<set _hrs = "+ hrs +">><<set _lv = "+ LEVELS[lv] +">>"
+"<<replace '#passages'>><<include '"+ State.passage +"'>><</replace>>"
+"<</link>>");
link_table += '<td>'+ twine_link +'</td>';
});
link_table += "</tr>\n";
});
link_table += '</table>';
return link_table;
},
'doMATRIX' : function(MATRIX, units, CHAR) {
CHAR=CHAR||$GAMEDATA.PC;
if(typeof units==='undefined' || isNaN(units)) units=1;
/* alert(JSON.stringify(MATRIX)); */
Object.keys(MATRIX).forEach(function(resource) {
if(typeof CHAR.MATRIX[resource] === 'undefined') { CHAR.MATRIX[resource]=0; }
CHAR.MATRIX[resource] += (MATRIX[resource] * units);
});
/* ACTION COST/REWARD MATRIX - adjusted for metabolism boosting */
/* CHAR.MATRIX.tough += (MATRIX.tough * units); */
/* CHAR.MATRIX.power += (MATRIX.power * units); */
/* CHAR.MATRIX.vigor += (MATRIX.vigor * units); */
/* CHAR.MATRIX.regen += (MATRIX.regen * units); */
/* CHAR.MATRIX.vital += (MATRIX.vital * units); */
/* CHAR.MATRIX.metab += (MATRIX.metab * units); */
/* CHAR.MATRIX.karma += (MATRIX.karma * units); */
/* CHAR.MATRIX.kcal += (MATRIX.kcal * units); */
/* CHAR.MATRIX.protein += (MATRIX.protein * units); */
/* CHAR.MATRIX.sugar += (MATRIX.sugar * units); */
/* CHAR.MATRIX.money += (MATRIX.money * units); */
/* CHAR.MATRIX.petro += (MATRIX.petro * units); */
/* make sure we have not exceeded max, and apply any status changes */
setup.ENGINE.do_status_update();
return true;
},
'doWorkout' : function(activity, hours, level, CHAR) {
CHAR=CHAR||$GAMEDATA.PC;
level=level||1.0;
hours=hours||Math.min(setup.ACTIONS[activity].hours,this.maxHours(activity, level, CHAR));
var act = Object.assign({}, setup.ACTIONS[activity].MATRIX);
var bodymass = (CHAR.METRICS.adj_wt+Math.sqrt(Math.abs(CHAR.MATRIX.metab)))/2;
/* PASSIVE REGEN TRIGGERED IN ACTIVITIES, BUT NOT ITEMS, SINCE IT REFLECTS HOURS PASSING NOT UNITS USED */
CHAR.MATRIX.vital += (CHAR.MATRIX.regen*hours/24); CHAR.MATRIX.tough += (CHAR.MATRIX.regen*hours/48);
CHAR.MATRIX.vigor += (CHAR.MATRIX.metab*hours/24); CHAR.MATRIX.power += (CHAR.MATRIX.metab*hours/48);
CHAR.MATRIX.kcal -= (bodymass*hours*0.65);
/* CALLED WITH UNITS, NOT HOURS, BUT SINCE THE MATRIX IS NORMALIZED TO HOURS, THIS IS FINE */
act.kcal*= bodymass; act.protein*= bodymass; act.sugar*= bodymass;
this.doMATRIX(act, hours*level);
/* WORKOUT UNIQUE CODE: STAT INCREASE FOR EFFORT */
CHAR.STATS.STR += ( -(act.tough+act.power+act.vigor)*hours /(100*CHAR.STATS.STR));
CHAR.STATS.END += ( -(act.tough+act.regen+act.vital)*hours /(100*CHAR.STATS.END));
CHAR.STATS.SPD += ( -(act.power+act.regen+act.metab)*hours /(100*CHAR.STATS.SPD));
CHAR.STATS.PHY += ( -(act.vigor+act.vital+act.metab)*hours /(100*CHAR.STATS.PHY));
/* ACTION EVENT CALLBACK */
setup.ACTIONS[activity].onAction(hours);
$GAMEDATA.PC.STATE.lastExercise = activity;
$GAMEDATA.PC.STATE.lastActivity = activity;
$GAMEDATA.PC.STATE.lastAction = 'workout';
/* Adjust the clock */
setup.ENGINE.addHours(hours);
return true;
},
'doExplore' : function(activity, hours, CHAR) {
CHAR=CHAR||$GAMEDATA.PC;
hours=hours||setup.ACTIONS[activity].hours;
var act = Object.assign({}, setup.ACTIONS[activity].MATRIX);
var bodymass = (CHAR.METRICS.adj_wt+Math.sqrt(Math.abs(CHAR.MATRIX.metab)))/2;
/* PASSIVE REGEN TRIGGERED IN ACTIVITIES, BUT NOT ITEMS, SINCE IT REFLECTS HOURS PASSING NOT UNITS USED */
CHAR.MATRIX.vital += (CHAR.MATRIX.regen*hours/24); CHAR.MATRIX.tough += (CHAR.MATRIX.regen*hours/48);
CHAR.MATRIX.vigor += (CHAR.MATRIX.metab*hours/24); CHAR.MATRIX.power += (CHAR.MATRIX.metab*hours/48);
CHAR.MATRIX.kcal -= (bodymass*hours*0.45);
/* CALLED WITH UNITS, NOT HOURS, BUT SINCE THE MATRIX IS NORMALIZED TO HOURS, THIS IS FINE */
act.kcal*= bodymass; act.protein*= bodymass; act.sugar*= bodymass;
this.doMATRIX(act, hours);
/* EXPLORE UNIQUE CODE: */
/* ACTION EVENT CALLBACK */
setup.ACTIONS[activity].onAction(hours);
$GAMEDATA.PC.STATE.lastActivity = activity;
$GAMEDATA.PC.STATE.lastAction = 'explore';
/* Adjust the clock */
setup.ENGINE.addHours(hours);
return true;
},
'doRest' : function(activity, hours, CHAR) {
CHAR=CHAR||$GAMEDATA.PC;
hours=hours||setup.ACTIONS[activity].hours;
var act = Object.assign({}, setup.ACTIONS[activity].MATRIX);
this.debugClear();
var bodymass = (CHAR.METRICS.adj_wt+Math.sqrt(Math.abs(CHAR.MATRIX.metab)))/2;
/* ACTIVE REGEN TRIGGERED IN ACTIVITIES, BUT NOT ITEMS, SINCE IT REFLECTS HOURS PASSING NOT UNITS USED - runs at 3x rate of passive */
CHAR.MATRIX.vital += (CHAR.MATRIX.regen*hours/8); CHAR.MATRIX.tough += (CHAR.MATRIX.regen*hours/16);
CHAR.MATRIX.vigor += (CHAR.MATRIX.metab*hours/8); CHAR.MATRIX.power += (CHAR.MATRIX.metab*hours/16);
CHAR.MATRIX.kcal -= (bodymass*hours*0.35);
/* CALLED WITH UNITS, NOT HOURS, BUT SINCE THE MATRIX IS NORMALIZED TO HOURS, THIS IS FINE */
act.kcal*= bodymass; act.protein*= bodymass; act.sugar*= bodymass;
this.doMATRIX(act, hours);
/* REST UNIQUE CODE: */
CHAR.MATRIX.tough += (CHAR.STATS.STR + CHAR.STATS.END) * (hours/15);
CHAR.MATRIX.power += (CHAR.STATS.STR + CHAR.STATS.SPD) * (hours/15);
CHAR.MATRIX.vigor += (CHAR.STATS.STR + CHAR.STATS.PHY) * (hours/15);
CHAR.MATRIX.regen += (CHAR.STATS.END + CHAR.STATS.SPD) * (hours/9);
CHAR.MATRIX.vital += (CHAR.STATS.END + CHAR.STATS.PHY) * (hours/15);
CHAR.MATRIX.metab += (CHAR.STATS.PHY + CHAR.STATS.SPD) * (hours/15);
var unbalanced = true;
var loops = 0;
/* ADJUST WEIGHT - rebalance, lose, then gain */
while((CHAR.METRICS.adj_wt>(CHAR.METRICS.ht/2))&&( unbalanced )&&( loops<(bodymass*hours/10) )) {
unbalanced = false; loops++;
/* convert sugar to/from protein */
if(( (Math.abs(CHAR.MATRIX.protein)+Math.abs(CHAR.MATRIX.sugar))>CHAR.METRICS.wt*5 )&&( (CHAR.MATRIX.protein*2)<CHAR.MATRIX.sugar )) {
CHAR.MATRIX.sugar -= (CHAR.METRICS.adj_wt * 0.9);
CHAR.MATRIX.protein += (CHAR.METRICS.adj_wt * 0.8);
this.debugLog(loops + ': protein*2<sugar; protein+sugar>weight*5; converted '+ (CHAR.METRICS.adj_wt * 0.9) +'g sugar to '+(CHAR.METRICS.adj_wt * 0.8)+'g protein');
unbalanced = true;
} else if(( (Math.abs(CHAR.MATRIX.protein)+Math.abs(CHAR.MATRIX.sugar))>CHAR.METRICS.wt*5 )&&( CHAR.MATRIX.protein>(CHAR.MATRIX.sugar*2) )) {
CHAR.MATRIX.protein -= (CHAR.METRICS.adj_wt * 0.8);
CHAR.MATRIX.sugar += (CHAR.METRICS.adj_wt * 0.9);
this.debugLog(loops + ': protein>sugar*2; protein+sugar>weight*5; converted '+ (CHAR.METRICS.adj_wt * 0.8) +'g protein to '+(CHAR.METRICS.adj_wt * 0.9)+'g sugar');
unbalanced = true;
}
/* convert sugar to/from kCal/ATP */
if(( (Math.abs(CHAR.MATRIX.kcal)+Math.abs(CHAR.MATRIX.sugar))>CHAR.METRICS.wt*30 )&&( (CHAR.MATRIX.kcal<-100)&&(CHAR.MATRIX.sugar>0) )) {
CHAR.MATRIX.kcal += (CHAR.METRICS.adj_wt * 12.0);
CHAR.MATRIX.sugar -= (CHAR.METRICS.adj_wt * 3.0);
this.debugLog(loops + ': sugar>0; kcal<-100; converted '+ (CHAR.METRICS.adj_wt * 3.0) +'g sugar to '+(CHAR.METRICS.adj_wt * 12.0)+' kCal');
unbalanced = true;
} else if(( (Math.abs(CHAR.MATRIX.kcal)+Math.abs(CHAR.MATRIX.sugar))>CHAR.METRICS.wt*30 )&&( (CHAR.MATRIX.kcal>5000)&&(CHAR.MATRIX.sugar<200) )) {
CHAR.MATRIX.kcal -= (CHAR.METRICS.adj_wt * 12.0);
CHAR.MATRIX.sugar += (CHAR.METRICS.adj_wt * 3.0);
this.debugLog(loops + ': kcal>5000; sugar<200; converted '+ (CHAR.METRICS.adj_wt * 12.0) +'kCal to '+(CHAR.METRICS.adj_wt * 3.0)+'g sugar');
unbalanced = true;
}
/* convert protein to/from kCal/ATP */
if(( (Math.abs(CHAR.MATRIX.kcal)+Math.abs(CHAR.MATRIX.protein))>CHAR.METRICS.wt*10 )&&( (CHAR.MATRIX.kcal<-100) && (CHAR.MATRIX.protein>0) )) {
CHAR.MATRIX.kcal += (CHAR.METRICS.adj_wt * 4.5);
CHAR.MATRIX.protein -= (CHAR.METRICS.adj_wt * 1.0);
this.debugLog(loops + ': protein>0; kcal<-100; converted '+ (CHAR.METRICS.adj_wt * 1.0) +'g protein to '+(CHAR.METRICS.adj_wt * 4.5)+' kCal');
unbalanced = true;
} else if(( (Math.abs(CHAR.MATRIX.kcal)+Math.abs(CHAR.MATRIX.protein))>CHAR.METRICS.wt*10 )&&( (CHAR.MATRIX.kcal>5000)&&(CHAR.MATRIX.protein<100) )) {
CHAR.MATRIX.kcal -= (CHAR.METRICS.adj_wt * 4.5);
CHAR.MATRIX.protein += (CHAR.METRICS.adj_wt * 1.0);
this.debugLog(loops + ': kcal>5000; protein<100; converted '+ (CHAR.METRICS.adj_wt * 4.5) +'kCal to '+(CHAR.METRICS.adj_wt * 1.0)+'g protein');
unbalanced = true;
}
/* lose/gain weight */
if( (CHAR.MATRIX.kcal<-4000) || (CHAR.MATRIX.sugar<-500) || (CHAR.MATRIX.protein<-350) || ((CHAR.MATRIX.sugar<-200)&&(CHAR.MATRIX.kcal<-750)) || ((CHAR.MATRIX.sugar<100)&&(CHAR.MATRIX.kcal<-3000)) ) {
this.debugLog(loops + ': lost a pound -- wt: '+ CHAR.METRICS.wt +'; kCal: '+ CHAR.MATRIX.kcal +'; protein: '+ CHAR.MATRIX.protein +'g; sugar: '+ CHAR.MATRIX.sugar +'g;');
CHAR.METRICS.wt -= 1;
CHAR.MATRIX.sugar += 650;
CHAR.MATRIX.kcal += 3250;
CHAR.MATRIX.protein += 345;
unbalanced = true;
} else if( (CHAR.MATRIX.kcal>9500) || (CHAR.MATRIX.sugar>2000) || (CHAR.MATRIX.protein>1500) || ((CHAR.MATRIX.sugar>600)&&(CHAR.MATRIX.kcal>2500)) || ((CHAR.MATRIX.sugar>300)&&(CHAR.MATRIX.kcal>6000)) ) {
this.debugLog(loops + ': gained a pound -- wt: '+ CHAR.METRICS.wt +'; kCal: '+ CHAR.MATRIX.kcal +'; protein: '+ CHAR.MATRIX.protein +'g; sugar: '+ CHAR.MATRIX.sugar +'g;');
CHAR.METRICS.wt += 1;
CHAR.MATRIX.sugar -= 750;
CHAR.MATRIX.kcal -= 3750;
CHAR.MATRIX.protein -= 410;
unbalanced = true;
}
/* repeat until no rebalances trigger */
}
/* ACTION EVENT CALLBACK */
setup.ACTIONS[activity].onAction(hours);
$GAMEDATA.PC.STATE.lastActivity = activity;
$GAMEDATA.PC.STATE.lastAction = 'rest';
/* Adjust the clock */
setup.ENGINE.addHours(hours);
/* Update status again, as weight may have changed */
setup.ENGINE.do_status_update();
return true;
},
'sale_price' : function(cost, discount) {
return cost*(1-discount);
},
'check_sale' : function(item_id) {
return 0.0;
},
/* integrates inventory, master items matrix, and action */
'buyItem' : function(item_id, CHAR) {
CHAR=CHAR||$GAMEDATA.PC;
$GAMEDATA.PC.STATE.lastAction = 'buy';
if(parseFloat(CHAR.MATRIX.money.toFixed(2))<setup.ITEMS[item_id].cost) {
setup.ENGINE.giveFeedback('you don't have enough money to buy this!');
return false;
} else {
CHAR.MATRIX.money-=this.sale_price(setup.ITEMS[item_id].cost, this.check_sale(item_id));
this.addItem(item_id);
setup.ENGINE.giveFeedback('You bought [' + setup.ITEMS[item_id].name + '], which leaves you with $ ' + (CHAR.MATRIX.money).toFixed(2));
return true;
}
},
'stealItem' : function(item_id, CHAR) {
CHAR=CHAR||$GAMEDATA.PC;
$GAMEDATA.PC.STATE.lastAction = 'steal';
if(CHAR.MATRIX.karma/3<setup.ITEMS[item_id].cost) {
CHAR.MATRIX.karma-=setup.ITEMS[item_id].cost;
setup.ENGINE.giveFeedback('you got caught, this is really bad... where will you go if you are banned?');
return false;
} else {
CHAR.MATRIX.karma-=setup.ITEMS[item_id].cost*3;
this.addItem(item_id);
setup.ENGINE.giveFeedback('You snagged [' + setup.ITEMS[item_id].name + '] ...that was almost too easy.');
return true;
}
},
'addItem' : function(item_id, CHAR) {
CHAR=CHAR||$GAMEDATA.PC;
/* Items are now directly referenced from the database, so all we need is the charge count */
if(!CHAR.STUFF[item_id]) { CHAR.STUFF[item_id]=0; }
CHAR.STUFF[item_id]+=setup.ITEMS[item_id].uses;
return true;
},
'delItem' : function(item_id, CHAR) {
CHAR=CHAR||$GAMEDATA.PC;
delete CHAR.STUFF[item_id];
return true;
},
'equipItem' : function(item_id, CHAR) {
CHAR=CHAR||$GAMEDATA.PC;
/* broken, allows ANY item to be equipped on ANY slot */
var slot_id = setup.ITEMS[item_id].role;
if(setup.ROLES.EQUIP_ZONES.hasOwnProperty(slot_id)) {
CHAR.EQUIP[slot_id] = item_id;
return true;
} else {
/* item does not match a known slot type */
return false;
}
},
'removeItem' : function(item_id, CHAR) {
CHAR=CHAR||$GAMEDATA.PC;
var slot_id = setup.ITEMS[item_id].role;
/* if something is there remove the item, but keep the slot */
if(CHAR.EQUIP[slot_id]) {
CHAR.EQUIP[slot_id]=null;
return true;
} else {
/* item does not match a known slot type or is not equipped */
return true;
}
},
'before_use' : function(item_id, qty, CHAR) {},
'after_use' : function(item_id, qty, CHAR) {},
'useItem' : function(item_id, qty, CHAR) {
CHAR=CHAR||$GAMEDATA.PC;
qty=qty||1; /* option to multi-use */
$GAMEDATA.PC.STATE.lastAction = 'use';
$GAMEDATA.PC.STATE.lastItem = item_id;
/* do you even have one, bro? */
if(!CHAR.STUFF[item_id]) { return false; }
if(('all'==qty)||('*'==qty)) { qty=CHAR.STUFF[item_id]; }
this.before_use(item_id, qty, CHAR);
CHAR.STUFF[item_id]-=qty;
/* if the shoe fits, wear it... */
var iType = setup.ROLES.ALL[setup.ITEMS[item_id].role].type;
switch(iType) {
/* if not, try eating it */
case 'wearable':
this.equipItem(item_id);
break;
case 'consumable':
var item = setup.ITEMS[item_id].MATRIX;
this.doMATRIX(item, qty);
break;
default:
/* or just put it on the mantle to look at */
}
/* Adjust the clock */
setup.ENGINE.addSeconds(10 * qty / CHAR.STATS.SPD);
/* load item MATRIX */
/* this.doMATRIX(MATRIX, units); */
this.after_use(item_id, qty, CHAR);
/* clean up inventory */
if(CHAR.STUFF[item_id]<1) { this.delItem(item_id); }
return true;
},
/* burns charges mid story, instead of using item through menu */
'depleteItem' : function(item_id, qty, CHAR) {
CHAR=CHAR||$GAMEDATA.PC;
qty=qty||1; /* option to multi-use */
if(!CHAR.STUFF[item_id]) { return false; }
if(('all'==qty)||('*'==qty)) { qty=CHAR.STUFF[item_id]; }
CHAR.STUFF[item_id]-=qty;
return true;
},
'debugLog' : function(msg) {
if( settings.debugInfo && window.console && window.console.log) { window.console.log(msg); }
},
'debugClear' : function() {
if( settings.debugInfo && window.console && window.console.clear) { window.console.clear(); }
},
}>><<set setup.STATUSES = {
'dead from starvation' :{ 'test':function(CHAR) { CHAR=CHAR||$GAMEDATA.PC; return CHAR.METRICS.wt<CHAR.METRICS.ht; }, 'onApply':function() {}, 'onRemove':function() {}, 'text':"", },
'emaciated' :{ 'test':function(CHAR) { CHAR=CHAR||$GAMEDATA.PC; return false; }, 'onApply':function() {}, 'onRemove':function() {}, 'text':"", },
'thin' :{ 'test':function(CHAR) { CHAR=CHAR||$GAMEDATA.PC; return false; }, 'onApply':function() {}, 'onRemove':function() {}, 'text':"", },
'starving' :{ 'test':function(CHAR) { CHAR=CHAR||$GAMEDATA.PC; return false; }, 'onApply':function() {}, 'onRemove':function() {}, 'text':"", },
'fat' :{ 'test':function(CHAR) { CHAR=CHAR||$GAMEDATA.PC; return false; }, 'onApply':function() {}, 'onRemove':function() {}, 'text':"", },
'malnourished' :{ 'test':function(CHAR) { CHAR=CHAR||$GAMEDATA.PC; return false; }, 'onApply':function() {}, 'onRemove':function() {}, 'text':"", },
'depressed' :{ 'test':function(CHAR) { CHAR=CHAR||$GAMEDATA.PC; return false; }, 'onApply':function() {}, 'onRemove':function() {}, 'text':"", },
'angry' :{ 'test':function(CHAR) { CHAR=CHAR||$GAMEDATA.PC; return false; }, 'onApply':function() {}, 'onRemove':function() {}, 'text':"", },
'tired' :{ 'test':function(CHAR) { CHAR=CHAR||$GAMEDATA.PC; return false; }, 'onApply':function() {}, 'onRemove':function() {}, 'text':"", },
'overweight' :{ 'test':function(CHAR) { CHAR=CHAR||$GAMEDATA.PC; return false; }, 'onApply':function() {}, 'onRemove':function() {}, 'text':"", },
'bruised' :{ 'test':function(CHAR) { CHAR=CHAR||$GAMEDATA.PC; return false; }, 'onApply':function() {}, 'onRemove':function() {}, 'text':"", },
'fit' :{ 'test':function(CHAR) { CHAR=CHAR||$GAMEDATA.PC; return false; }, 'onApply':function() {}, 'onRemove':function() {}, 'text':"", },
'' :{ 'test':function(CHAR) { CHAR=CHAR||$GAMEDATA.PC; return false; }, 'onApply':function() {}, 'onRemove':function() {}, 'text':"", },
/* END setup.STATUSES */ }>><<set setup.ACTIONS = {
/* EXERCISE ACTIONS - note: cost/reward matrix is normalized to 1.0 hour intervals, which may vary from default activity length */
'walk' :{ 'hours': 1.50, 'MATRIX':{'tough':- 5.0, 'power':- 4.0, 'vigor':- 8.0, 'regen':- 3.0, 'vital':- 5.0, 'metab':- 4.0, 'karma':+ 5.0, 'kcal':- 1.5, 'protein':- 0.015, 'sugar':- 0.275 }, 'onAction':function(hours) { hours=hours||1; }, },
'jog' :{ 'hours': 1.00, 'MATRIX':{'tough':- 30.0, 'power':- 16.0, 'vigor':- 40.0, 'regen':- 24.0, 'vital':- 30.0, 'metab':- 30.0, 'karma':+ 35.0, 'kcal':- 3.0, 'protein':- 0.040, 'sugar':- 0.550 }, 'onAction':function(hours) { hours=hours||1; }, },
'run' :{ 'hours': 0.50, 'MATRIX':{'tough':- 45.0, 'power':- 34.0, 'vigor':-120.0, 'regen':- 38.0, 'vital':- 60.0, 'metab':- 60.0, 'karma':+ 75.0, 'kcal':- 6.0, 'protein':- 0.100, 'sugar':- 1.600 }, 'onAction':function(hours) { hours=hours||1; }, },
'sprint' :{ 'hours': 0.25, 'MATRIX':{'tough':- 60.0, 'power':- 60.0, 'vigor':-180.0, 'regen':- 52.0, 'vital':- 90.0, 'metab':- 90.0, 'karma':+120.0, 'kcal':- 12.0, 'protein':- 0.200, 'sugar':- 3.800 }, 'onAction':function(hours) { hours=hours||1; }, },
'calisthenics' :{ 'hours': 0.50, 'MATRIX':{'tough':- 50.0, 'power':- 80.0, 'vigor':-120.0, 'regen':- 30.0, 'vital':- 40.0, 'metab':- 30.0, 'karma':+ 75.0, 'kcal':- 4.0, 'protein':- 0.120, 'sugar':- 0.900 }, 'onAction':function(hours) { hours=hours||1; }, },
'aerobics' :{ 'hours': 0.50, 'MATRIX':{'tough':- 30.0, 'power':- 21.0, 'vigor':- 90.0, 'regen':- 50.0, 'vital':- 90.0, 'metab':- 50.0, 'karma':+ 65.0, 'kcal':- 3.0, 'protein':- 0.060, 'sugar':- 0.850 }, 'onAction':function(hours) { hours=hours||1; }, },
'yoga' :{ 'hours': 0.50, 'MATRIX':{'tough':- 40.0, 'power':- 38.0, 'vigor':- 60.0, 'regen':- 60.0, 'vital':- 80.0, 'metab':- 45.0, 'karma':+ 90.0, 'kcal':- 2.0, 'protein':- 0.050, 'sugar':- 0.400 }, 'onAction':function(hours) { hours=hours||1; }, },
'weightlifting' :{ 'hours': 0.50, 'MATRIX':{'tough':- 30.0, 'power':- 40.0, 'vigor':-120.0, 'regen':- 20.0, 'vital':- 30.0, 'metab':- 40.0, 'karma':+ 70.0, 'kcal':- 1.4, 'protein':- 0.056, 'sugar':- 0.200 }, 'onAction':function(hours) { hours=hours||1; }, },
'crossfit' :{ 'hours': 0.50, 'MATRIX':{'tough':-120.0, 'power':- 90.0, 'vigor':-340.0, 'regen':- 90.0, 'vital':-120.0, 'metab':-120.0, 'karma':+195.0, 'kcal':- 5.8, 'protein':- 0.348, 'sugar':- 2.700 }, 'onAction':function(hours) { hours=hours||1; }, },
'powerlifting' :{ 'hours': 0.25, 'MATRIX':{'tough':- 90.0, 'power':-130.0, 'vigor':-280.0, 'regen':- 40.0, 'vital':- 70.0, 'metab':- 90.0, 'karma':+145.0, 'kcal':- 3.4, 'protein':- 0.340, 'sugar':- 1.150 }, 'onAction':function(hours) { hours=hours||1; }, },
/* 'XXXX' :{ 'hours': 1.00, 'MATRIX':{'tough':- 1.0, 'power':- 1.0, 'vigor':- 1.0, 'regen':- 1.0, 'vital':- 1.0, 'metab':- 1.0, 'karma':+ 1.0, 'kcal':- 1.5, 'protein':- 0.015, 'sugar':- 0.300 }, 'onAction':function(hours) { hours=hours||1; }, }, */
/* EXPLORE ACTIONS */
'drive' :{ 'hours': 0.25, 'MATRIX':{'tough':- 0.2, 'power':- 0.2, 'vigor':- 1.2, 'regen':- 0.1, 'vital':- 0.4, 'metab':- 0.2, 'karma':- 1.0, 'kcal':- 2.0, 'protein':- 0.010, 'sugar':- 0.100, 'petro':- 2.0 }, 'onAction':function(hours) { hours=hours||1; }, },
'search' :{ 'hours': 0.25, 'MATRIX':{'tough':- 0.2, 'power':- 0.4, 'vigor':- 1.6, 'regen':- 0.1, 'vital':- 0.2, 'metab':- 0.1, 'karma':- 6.0, 'kcal':- 2.0, 'protein':- 0.010, 'sugar':- 0.100 }, 'onAction':function(hours) { hours=hours||1; }, },
'shop' :{ 'hours': 0.25, 'MATRIX':{'tough':- 0.2, 'power':- 0.4, 'vigor':- 1.6, 'regen':- 0.1, 'vital':- 0.2, 'metab':- 0.1, 'karma':- 0.1, 'kcal':- 1.5, 'protein':- 0.010, 'sugar':- 0.100 }, 'onAction':function(hours) { hours=hours||1; }, },
/* 'XXXX' :{ 'hours': 1.00, 'MATRIX':{'tough':- 1.0, 'power':- 1.0, 'vigor':- 1.0, 'regen':- 1.0, 'vital':- 1.0, 'metab':- 1.0, 'karma':- 0.0, 'kcal':- 1.5, 'protein':- 0.010, 'sugar':- 0.100 }, 'onAction':function(hours) { hours=hours||1; }, }, */
/* REST ACTIONS */ /* can she do this right now? */
'sleep' :{ 'hours': 7.00, 'MATRIX':{'tough':- 0.1, 'power':- 0.1, 'vigor':- 0.1, 'regen':- 0.1, 'vital':- 0.1, 'metab':- 0.1, 'karma':+ 0.1, 'kcal':- 0.3, 'protein':- 0.030, 'sugar':- 0.100 }, 'onAction':function(hours) { hours=hours||1; }, },
'rest' :{ 'hours': 0.25, 'MATRIX':{'tough':- 0.1, 'power':- 0.1, 'vigor':- 0.2, 'regen':- 0.1, 'vital':- 0.1, 'metab':- 0.1, 'karma':+ 0.1, 'kcal':- 0.5, 'protein':- 0.020, 'sugar':- 0.100 }, 'onAction':function(hours) { hours=hours||1; }, },
'stretch' :{ 'hours': 0.10, 'MATRIX':{'tough':- 0.1, 'power':- 0.1, 'vigor':- 0.4, 'regen':- 0.1, 'vital':- 0.1, 'metab':- 0.1, 'karma':+ 0.1, 'kcal':- 2.0, 'protein':- 0.025, 'sugar':- 0.100 }, 'onAction':function(hours) { hours=hours||1; }, },
/* 'XXXX' :{ 'hours': 1.00, 'MATRIX':{'tough':- 0.1, 'power':- 0.1, 'vigor':- 0.1, 'regen':- 0.1, 'vital':- 0.1, 'metab':- 0.1, 'karma':+ 0.1, 'kcal':- 0.5, 'protein':- 0.005, 'sugar':- 0.100 }, 'onAction':function(hours) { hours=hours||1; }, } */
/* END setup.ACTIONS */ }>><<set setup.CHARS = {
/* CHARACTERS STORED SEPARATELY */
}>>
<<include 'setup.CHARS.Cindy_Phoenix'>>
<<include 'setup.CHARS.Tammi_X'>><<set setup.ROLES = {
'EQUIP_ZONES': {
'backpack' :{ 'desc':"...", },
'belt' :{ 'desc':"...", },
'bra' :{ 'desc':"...", },
'bracelet' :{ 'desc':"...", },
'coat' :{ 'desc':"...", },
'dress' :{ 'desc':"...", },
'earrings' :{ 'desc':"...", },
'glasses' :{ 'desc':"...", },
'gloves' :{ 'desc':"...", },
'hat' :{ 'desc':"...", },
'headband' :{ 'desc':"...", },
'handbag' :{ 'desc':"...", },
'jacket' :{ 'desc':"...", },
'mask' :{ 'desc':"...", },
'necklace' :{ 'desc':"...", },
'onepiece' :{ 'desc':"...", },
'overshirt' :{ 'desc':"...", },
'panties' :{ 'desc':"...", },
'pants' :{ 'desc':"...", },
'ring' :{ 'desc':"...", },
'sash' :{ 'desc':"...", },
'shirt' :{ 'desc':"...", },
'shoes' :{ 'desc':"...", },
'shorts' :{ 'desc':"...", },
'skirt' :{ 'desc':"...", },
'socks' :{ 'desc':"...", },
'undershirt' :{ 'desc':"...", },
'vest' :{ 'desc':"...", },
},
'ALL':{
'backpack' :{ 'type':"wearable" , 'subtype':"bag" , 'tags':[ ], 'desc':"...", },
'bedding' :{ 'type':"" , 'subtype':"" , 'tags':[ ], 'desc':"...", },
'belt' :{ 'type':"wearable" , 'subtype':"clothing" , 'tags':[ ], 'desc':"...", },
'book' :{ 'type':"media" , 'subtype':"readable" , 'tags':[ ], 'desc':"...", },
'booze' :{ 'type':"consumable" , 'subtype':"drink" , 'tags':[ 'buzz', 'depressant', 'toxin', ], 'desc':"...", },
'bra' :{ 'type':"wearable" , 'subtype':"clothing" , 'tags':[ ], 'desc':"...", },
'bracelet' :{ 'type':"wearable" , 'subtype':"jewelry" , 'tags':[ ], 'desc':"...", },
'cabinet' :{ 'type':"" , 'subtype':"" , 'tags':[ ], 'desc':"...", },
'canned food' :{ 'type':"consumable" , 'subtype':"food" , 'tags':[ 'canned', ], 'desc':"...", },
'CD' :{ 'type':"media" , 'subtype':"audio" , 'tags':[ 'CD', ], 'desc':"...", },
'chair' :{ 'type':"" , 'subtype':"" , 'tags':[ ], 'desc':"...", },
'chemical' :{ 'type':"" , 'subtype':"" , 'tags':[ ], 'desc':"...", },
'coat' :{ 'type':"wearable" , 'subtype':"clothing" , 'tags':[ ], 'desc':"...", },
'computer' :{ 'type':"" , 'subtype':"" , 'tags':[ ], 'desc':"...", },
'desk' :{ 'type':"furniture" , 'subtype':"work surface", 'tags':[ 'surface', ], 'desc':"...", },
'dress' :{ 'type':"wearable" , 'subtype':"clothing" , 'tags':[ ], 'desc':"...", },
'drink' :{ 'type':"consumable" , 'subtype':"drink" , 'tags':[ ], 'desc':"...", },
'DVD' :{ 'type':"media" , 'subtype':"video" , 'tags':[ 'DVD', ], 'desc':"...", },
'earrings' :{ 'type':"wearable" , 'subtype':"jewelry" , 'tags':[ ], 'desc':"...", },
'engine oil' :{ 'type':"" , 'subtype':"" , 'tags':[ ], 'desc':"...", },
'fastener' :{ 'type':"" , 'subtype':"" , 'tags':[ ], 'desc':"...", },
'flooring' :{ 'type':"" , 'subtype':"" , 'tags':[ ], 'desc':"...", },
'food' :{ 'type':"consumable" , 'subtype':"food" , 'tags':[ ], 'desc':"...", },
'frozen food' :{ 'type':"consumable" , 'subtype':"food" , 'tags':[ ], 'desc':"...", },
'game' :{ 'type':"media" , 'subtype':"playable" , 'tags':[ ], 'desc':"...", },
'glasses' :{ 'type':"wearable" , 'subtype':"gadget" , 'tags':[ ], 'desc':"...", },
'gloves' :{ 'type':"wearable" , 'subtype':"gadget" , 'tags':[ ], 'desc':"...", },
'hairstyle' :{ 'type':"styling" , 'subtype':"hair" , 'tags':[ ], 'desc':"...", },
'handbag' :{ 'type':"wearable" , 'subtype':"bag" , 'tags':[ ], 'desc':"...", },
'hard food' :{ 'type':"consumable" , 'subtype':"food" , 'tags':[ 'dehydrated', ], 'desc':"...", },
'hat' :{ 'type':"wearable" , 'subtype':"clothing" , 'tags':[ ], 'desc':"...", },
'headband' :{ 'type':"wearable" , 'subtype':"gadget" , 'tags':[ ], 'desc':"...", },
'hygene' :{ 'type':"hygene" , 'subtype':"general" , 'tags':[ ], 'desc':"...", },
'jacket' :{ 'type':"wearable" , 'subtype':"clothing" , 'tags':[ ], 'desc':"...", },
'magazine' :{ 'type':"media" , 'subtype':"readable" , 'tags':[ ], 'desc':"...", },
'makeup' :{ 'type':"styling" , 'subtype':"face" , 'tags':[ ], 'desc':"...", },
'mask' :{ 'type':"wearable" , 'subtype':"gadget" , 'tags':[ ], 'desc':"...", },
'nailpolish' :{ 'type':"styling" , 'subtype':"nails" , 'tags':[ ], 'desc':"...", },
'necklace' :{ 'type':"wearable" , 'subtype':"jewelry" , 'tags':[ ], 'desc':"...", },
'onepiece' :{ 'type':"wearable" , 'subtype':"clothing" , 'tags':[ ], 'desc':"...", },
'overshirt' :{ 'type':"wearable" , 'subtype':"clothing" , 'tags':[ ], 'desc':"...", },
'panties' :{ 'type':"wearable" , 'subtype':"clothing" , 'tags':[ ], 'desc':"...", },
'pants' :{ 'type':"wearable" , 'subtype':"clothing" , 'tags':[ ], 'desc':"...", },
'part' :{ 'type':"" , 'subtype':"" , 'tags':[ ], 'desc':"...", },
'phone' :{ 'type':"mobile" , 'subtype':"gadget" , 'tags':[ 'phone', ], 'desc':"...", },
'plant' :{ 'type':"" , 'subtype':"" , 'tags':[ ], 'desc':"...", },
'plumbing' :{ 'type':"" , 'subtype':"" , 'tags':[ ], 'desc':"...", },
'powder' :{ 'type':"" , 'subtype':"" , 'tags':[ ], 'desc':"...", },
'raw meat' :{ 'type':"consumable" , 'subtype':"food" , 'tags':[ 'raw', 'meat', ], 'desc':"...", },
'ring' :{ 'type':"wearable" , 'subtype':"jewelry" , 'tags':[ ], 'desc':"...", },
'sash' :{ 'type':"wearable" , 'subtype':"jewelry" , 'tags':[ ], 'desc':"...", },
'seed' :{ 'type':"" , 'subtype':"" , 'tags':[ ], 'desc':"...", },
'shelf' :{ 'type':"furniture" , 'subtype':"" , 'tags':[ ], 'desc':"...", },
'shirt' :{ 'type':"wearable" , 'subtype':"clothing" , 'tags':[ ], 'desc':"...", },
'shoes' :{ 'type':"wearable" , 'subtype':"gadget" , 'tags':[ ], 'desc':"...", },
'shorts' :{ 'type':"wearable" , 'subtype':"clothing" , 'tags':[ ], 'desc':"...", },
'skirt' :{ 'type':"wearable" , 'subtype':"clothing" , 'tags':[ ], 'desc':"...", },
'smartphone' :{ 'type':"mobile" , 'subtype':"gadget" , 'tags':[ 'phone', 'apps', ], 'desc':"...", },
'socks' :{ 'type':"wearable" , 'subtype':"clothing" , 'tags':[ ], 'desc':"...", },
'software' :{ 'type':"" , 'subtype':"" , 'tags':[ ], 'desc':"...", },
'stand' :{ 'type':"furniture" , 'subtype':"" , 'tags':[ 'surface', ], 'desc':"...", },
'table' :{ 'type':"furniture" , 'subtype':"" , 'tags':[ 'surface', ], 'desc':"...", },
'tool' :{ 'type':"tool" , 'subtype':"gadget" , 'tags':[ ], 'desc':"...", },
'towel' :{ 'type':"wearable" , 'subtype':"gadget" , 'tags':[ ], 'desc':"...", },
'undershirt' :{ 'type':"wearable" , 'subtype':"clothing" , 'tags':[ ], 'desc':"...", },
'vest' :{ 'type':"wearable" , 'subtype':"clothing" , 'tags':[ ], 'desc':"...", },
}
/* END setup.ROLES */ }>><<set setup.AISLES={
'D01':{
'name':"APPAREL",
'desc':"...",
'AISLES':{
'D01_A01':{ 'name':"ACCESSORIES" , 'desc':"...", },
'D01_A02':{ 'name':"ATHLETIC WEAR" , 'desc':"...", },
'D01_A03':{ 'name':"BACKPACKS" , 'desc':"...", },
'D01_A04':{ 'name':"COATS" , 'desc':"...", },
'D01_A05':{ 'name':"DRESSES" , 'desc':"...", },
'D01_A06':{ 'name':"HANDBAGS" , 'desc':"...", },
'D01_A07':{ 'name':"HEADWEAR" , 'desc':"...", },
'D01_A08':{ 'name':"JEWELRY" , 'desc':"...", },
'D01_A09':{ 'name':"PANTS" , 'desc':"...", },
'D01_A10':{ 'name':"SHIRTS" , 'desc':"...", },
'D01_A11':{ 'name':"SHOES" , 'desc':"...", },
'D01_A12':{ 'name':"SWIMWEAR" , 'desc':"...", },
'D01_A13':{ 'name':"UNDERWEAR" , 'desc':"...", },
},
}, /* END APPAREL */
'D02':{
'name':"AUTOMOTIVE",
'desc':"...",
'AISLES':{
'D02_A01':{ 'name':"ACCESSORIES" , 'desc':"...", },
'D02_A02':{ 'name':"FLUIDS" , 'desc':"...", },
'D02_A03':{ 'name':"PARTS" , 'desc':"...", },
'D02_A04':{ 'name':"TOOLS" , 'desc':"...", },
},
}, /* END AUTOMOTIVE */
'D03':{
'name':"ELECTRONICS",
'desc':"...",
'AISLES':{
'D03_A01':{ 'name':"APPLIANCES" , 'desc':"...", },
'D03_A02':{ 'name':"BOOKS" , 'desc':"...", },
'D03_A03':{ 'name':"CELL PHONES" , 'desc':"...", },
'D03_A04':{ 'name':"COMPUTER ACCESSORIES" , 'desc':"...", },
'D03_A05':{ 'name':"COMPUTERS" , 'desc':"...", },
'D03_A06':{ 'name':"MAGAZINES" , 'desc':"...", },
'D03_A07':{ 'name':"MOVIES" , 'desc':"...", },
'D03_A08':{ 'name':"MUSIC" , 'desc':"...", },
'D03_A09':{ 'name':"SOFTWARE" , 'desc':"...", },
'D03_A10':{ 'name':"VIDEO GAMES" , 'desc':"...", },
},
}, /* END ELECTRONICS */
'D04':{
'name':"FURNITURE",
'desc':"...",
'AISLES':{
'D04_A01':{ 'name':"CARPETS" , 'desc':"...", },
'D04_A02':{ 'name':"CHAIRS" , 'desc':"...", },
'D04_A03':{ 'name':"DESKS" , 'desc':"...", },
'D04_A04':{ 'name':"SHELVES" , 'desc':"...", },
'D04_A05':{ 'name':"TABLES" , 'desc':"...", },
},
}, /* END FURNITURE */
'D05':{
'name':"GROCERY",
'desc':"...",
'AISLES':{
'D05_A01':{ 'name':"ALCOHOL" , 'desc':"...", },
'D05_A02':{ 'name':"BAKED GOODS" , 'desc':"...", },
'D05_A03':{ 'name':"BAKING" , 'desc':"...", },
'D05_A04':{ 'name':"BEVERAGES" , 'desc':"...", },
'D05_A05':{ 'name':"CANDY" , 'desc':"...", },
'D05_A06':{ 'name':"CANNED GOODS" , 'desc':"...", },
'D05_A07':{ 'name':"CEREAL" , 'desc':"...", },
'D05_A08':{ 'name':"DAIRY" , 'desc':"...", },
'D05_A09':{ 'name':"DELI" , 'desc':"...", },
'D05_A10':{ 'name':"FROZEN" , 'desc':"...", },
'D05_A11':{ 'name':"GRAINS & PASTA" , 'desc':"...", },
'D05_A12':{ 'name':"MEATS" , 'desc':"...", },
'D05_A13':{ 'name':"PRODUCE" , 'desc':"...", },
'D05_A14':{ 'name':"SNACKS" , 'desc':"...", },
},
}, /* END GROCERY */
'D06':{
'name':"GARDEN",
'desc':"...",
'AISLES':{
'D06_A01':{ 'name':"MASONRY" , 'desc':"...", },
'D06_A02':{ 'name':"PATIO FURNITURE" , 'desc':"...", },
'D06_A03':{ 'name':"POTS" , 'desc':"...", },
'D06_A04':{ 'name':"PLANTS" , 'desc':"...", },
'D06_A05':{ 'name':"SEEDS" , 'desc':"...", },
'D06_A06':{ 'name':"SOIL" , 'desc':"...", },
},
}, /* END GARDEN */
'D07':{
'name':"HARDWARE",
'desc':"...",
'AISLES':{
'D07_A01':{ 'name':"BITS & BOLTS" , 'desc':"...", },
'D07_A02':{ 'name':"ELECTRICAL" , 'desc':"...", },
'D07_A03':{ 'name':"FIXTURES" , 'desc':"...", },
'D07_A04':{ 'name':"HVAC" , 'desc':"...", },
'D07_A05':{ 'name':"PLUMBING" , 'desc':"...", },
'D07_A06':{ 'name':"POOL" , 'desc':"...", },
'D07_A07':{ 'name':"TOOLS" , 'desc':"...", },
},
}, /* END HARDWARE */
'D08':{
'name':"HOUSEHOLD",
'desc':"...",
'AISLES':{
'D08_A01':{ 'name':"APPLIANCES" , 'desc':"...", },
'D08_A02':{ 'name':"BEDDING" , 'desc':"...", },
'D08_A03':{ 'name':"BOARDGAMES" , 'desc':"...", },
'D08_A04':{ 'name':"CLEANERS" , 'desc':"...", },
'D08_A05':{ 'name':"COOKWARE" , 'desc':"...", },
'D08_A06':{ 'name':"CRAFTS" , 'desc':"...", },
'D08_A07':{ 'name':"DISHES" , 'desc':"...", },
'D08_A08':{ 'name':"FLOOR CARE" , 'desc':"...", },
'D08_A09':{ 'name':"LINENS" , 'desc':"...", },
'D08_A10':{ 'name':"PAPER GOODS" , 'desc':"...", },
'D08_A11':{ 'name':"STORAGE" , 'desc':"...", },
'D08_A12':{ 'name':"TOYS" , 'desc':"...", },
'D08_A13':{ 'name':"WINDOWS" , 'desc':"...", },
},
}, /* END HOUSEHOLD */
'D09':{
'name':"HYGENE",
'desc':"...",
'AISLES':{
'D09_A01':{ 'name':"GENERAL" , 'desc':"...", },
'D09_A02':{ 'name':"HAIR CARE" , 'desc':"...", },
'D09_A03':{ 'name':"MAKEUP" , 'desc':"...", },
'D09_A04':{ 'name':"NAILS" , 'desc':"...", },
'D09_A05':{ 'name':"ORAL CARE" , 'desc':"...", },
'D09_A06':{ 'name':"PERSONAL CARE" , 'desc':"...", },
'D09_A07':{ 'name':"SKIN CARE" , 'desc':"...", },
},
}, /* END HYGENE */
'D10':{
'name':"OFFICE",
'desc':"...",
'AISLES':{
'D10_A01':{ 'name':"BINDINGS" , 'desc':"...", },
'D10_A02':{ 'name':"BRIEFCASES" , 'desc':"...", },
'D10_A03':{ 'name':"FILE CABINETS" , 'desc':"...", },
'D10_A04':{ 'name':"LUGGAGE" , 'desc':"...", },
'D10_A05':{ 'name':"NOTEBOOKS" , 'desc':"...", },
'D10_A06':{ 'name':"PAPER" , 'desc':"...", },
'D10_A07':{ 'name':"TOOLS" , 'desc':"...", },
'D10_A08':{ 'name':"WRITING" , 'desc':"...", },
},
}, /* END PHARMACY */
'D11':{
'name':"PHARMACY",
'desc':"...",
'AISLES':{
'D11_A01':{ 'name':"COUNTER" , 'desc':"...", },
'D11_A02':{ 'name':"FIRST AID" , 'desc':"...", },
'D11_A03':{ 'name':"GADGETS" , 'desc':"...", },
'D11_A04':{ 'name':"HEAD & FLU" , 'desc':"...", },
'D11_A05':{ 'name':"SUPPLEMENTS" , 'desc':"...", },
},
}, /* END PHARMACY */
'D12':{
'name':"SEASONAL",
'desc':"...",
'AISLES':{
'D12_A01':{ 'name':"VALENTINES" , 'desc':"...", },
'D12_A02':{ 'name':"ST PADDYS/EASTER" , 'desc':"...", },
'D12_A03':{ 'name':"SUMMER/JULY 4th" , 'desc':"...", },
'D12_A04':{ 'name':"BACK TO SCHOOL" , 'desc':"...", },
'D12_A05':{ 'name':"HALLOWEEN" , 'desc':"...", },
'D12_A06':{ 'name':"THANKSGIVING" , 'desc':"...", },
'D12_A07':{ 'name':"BLACK FRIDAY" , 'desc':"...", },
'D12_A08':{ 'name':"XMAS/NEW YEAR" , 'desc':"...", },
},
}, /* END SEASONAL & PROMOTIONAL */
'D13':{
'name':"SPORTING GOODS",
'desc':"...",
'AISLES':{
'D13_A01':{ 'name':"BIKING" , 'desc':"...", },
'D13_A02':{ 'name':"CAMPING" , 'desc':"...", },
'D13_A03':{ 'name':"EXERCISE MACHINES" , 'desc':"...", },
'D13_A04':{ 'name':"FISHING" , 'desc':"...", },
'D13_A05':{ 'name':"GADGETS" , 'desc':"...", },
'D13_A06':{ 'name':"HUNTING" , 'desc':"...", },
'D13_A07':{ 'name':"KEYS" , 'desc':"...", },
'D13_A08':{ 'name':"SPORTS EQUIPMENT" , 'desc':"...", },
'D13_A09':{ 'name':"WEIGHTS" , 'desc':"...", },
},
}, /* END SPORTING GOODS */
/* END setup.AISLES */ }>><<set setup.CHARS['Cindy Phoenix'] = {
'NAMES': {
'first' : "Cindy",
'birth' : "Cindy Williams",
'stage' : "Cindy Campbell",
'online' : "Cindy Phoenix",
},
'TRAITS':{
/* 'race' : "human", */
/* 'skin_type' : "", */
/* 'skin_color' : "", */
/* 'skin_condition' : "", */
/* 'hair_length' : "", */
/* 'hair_color' : "", */
/* 'hair_style' : "", */
/* 'hair_condition' : "", */
/* 'eye_color' : "", */
/* 'eye_condition' : "", */
/* 'face' : "", */
},
'PASSAGES':{
'start' : "START CINDY",
'home' : "LIVING IN CAR",
},
'STATS':{
/* PRIMARY STATS - used to calc maxes for secondary stats */
'STR' : 3.0,
'END' : 3.0,
'SPD' : 3.0,
'PHY' : 3.0,
'level' : 3.0,
'workout_hrs': 0.1,
'karmic_well': 12,
},
'MATRIX':{
/* SECONDARY STATS - current values (renewable resources) */
'tough' : 9.0, /* STRxEND - defense, resist injury */
'power' : 9.0, /* STRxSPD - offense, lift */
'vigor' : 9.0, /* STRxPHY - stamina, safe workload */
'regen' : 9.0, /* ENDxSPD - healing factor */
'vital' : 9.0, /* ENDxPHY - health */
'metab' : 9.0, /* SPDxPHY - energy/stamina recovery */
/* RESOURCES - (non-stat/non-renewable) */
'karma' : 1.0, /* ? unit */
'kcal' : 1100, /* food calories consumed, total */
'protein' : 20.0, /* grams consumed, nutrition */
'sugar' : 80.0, /* grams consumed, empty calories */
'money' : 2.89, /* */
'petro' : 10.0, /* gallons, remaining */
},
'METRICS':{
'age' : 27.0, /* years */
'base_ht' : 63.0, /* height, inches */
'ht' : 63.0, /* height, inches */
'wt' : 98.0, /* weight, pounds */
'adj_wt' : 98.0, /* adjusted weight, pounds */
'bicep' : 6.0, /* inches; max-curl = power*bicep/30; reps - max/3 */
'quads' : 13.0, /* inches; max-squat = power*quad/15; reps - max/3 */
'chest' : 26.0, /* */
'bust' : 2, /* variation from wt/35#, used to calculate cup size */
'cup' : "a", /* */
'waist' : 19.0, /* */
'hips' : 27.0, /* */
'BMI' : 'not-set', /* */
'bodyfat' : 'not-set', /* */
},
'STATUS':{
'thin':"",
'depressed':"",
'tired':"",
},
'STUFF':{
/* lost everything but the clothes on her back! (and whatever is in the trunk of her car) */
/* ID:uses */
'D01_A01_I02': 30, /* hair-tyes */
'D01_A09_I02': 60, /* jeans */
'D01_A10_I01': 30, /* blouse */
'D01_A13_I02': 50, /* plain white bra */
'D01_A13_I03': 50, /* plain white panties */
'D01_A13_I01': 13, /* ankle socks */
'D05_A05_I01': 1, /* chocolate bar */
'D08_A09_I03': 30, /* washcloth */
},
'EQUIP':{
/* SLOT:ID */
'bra' :"D01_A13_I02",
'panties' :"D01_A13_I03",
'pants' :"D01_A09_I02",
'overshirt' :"D01_A10_I01",
'socks' :"D01_A13_I01",
},
'PROPERTY':{
'car':{},
},
'STATE':{
'saveVersion' : 0.2,
'feedbackQueue' : [],
'Date' : new Date(),
'lastPassage' : null,
'lastExercise' : null,
'lastActivity' : null,
'lastAction' : null,
'lastItem' : null,
},
/* END setup.CHARS['Cindy Phoenix'] */ }>><<set setup.PASSAGES={
'GO FOR A WALK' :{
'setup' : function() {
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('walking');
return null;
},
'exit' : function() {
return "<<include 'POST WORKOUT'>>";
},
'ENCOUNTERS':{
'nothing' : function() { return 60; },
'bill_RANDOM' : function() { return 20; },
'wallet_RANDOM' : function() { return 4; },
'cart_RANDOM' : function() { return ($GAMEDATA.PC.PASSAGES.home=='LIVING IN CAR' ? 10 : 0); },
'car_RANDOM' : function() { return 10; },
},
},
'GO FOR A JOG' :{
'setup' : function() {
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('jogging');
return null;
},
'exit' : function() {
return "<<include 'POST WORKOUT'>>";
},
'ENCOUNTERS':{
'nothing' : function() { return 70; },
'bill_RANDOM' : function() { return 20; },
'wallet_RANDOM' : function() { return 3; },
'cart_RANDOM' : function() { return ($GAMEDATA.PC.PASSAGES.home=='LIVING IN CAR' ? 10 : 0); },
'car_RANDOM' : function() { return 10; },
},
},
'GO FOR A RUN' :{
'setup' : function() {
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('running');
return null;
},
'exit' : function() {
return "<<include 'POST WORKOUT'>>";
},
'ENCOUNTERS':{
'nothing' : function() { return 80; },
'bill_RANDOM' : function() { return 20; },
'wallet_RANDOM' : function() { return 2; },
'cart_RANDOM' : function() { return ($GAMEDATA.PC.PASSAGES.home=='LIVING IN CAR' ? 10 : 0); },
'car_RANDOM' : function() { return 10; },
},
},
'DO AEROBICS' :{
'setup' : function() {
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('aerobicising to the beat','working out');
return null;
},
'exit' : function() {
return "<<include 'POST WORKOUT'>>";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
'DO CALISTHENICS' :{
'setup' : function() {
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('doing your calisthenics routine');
return null;
},
'exit' : function() {
return "<<include 'POST WORKOUT'>>";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
'DO YOGA' :{
'setup' : function() {
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('doing yoga', 'stretching');
return null;
},
'exit' : function() {
return "<<include 'POST WORKOUT'>>";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
'PUSH YOURSELF' :{
'setup' : function() {
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('pushing yourself to the limit','trying to kill yourself');
return null;
},
'exit' : function() {
return "
<p></p>
<p></p>
<p>[[CONTINUE->GO HOME]]</p>
";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
'CHECKOUT APPAREL' :{
'setup' : function() {
var dept = either('apparel',( _aisle ? setup.ENGINE.getAisleName(_aisle) : 'stuff'),'clothing');
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('shopping','browsing','checking out '+dept,'checking out the '+dept+' department');
return null;
},
'exit' : function() {
return "
<p></p>
<p></p>
<p>[[CHECK OUT ANOTHER DEPARTMENT->SHOP S-MART]]</p>
";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
'CHECKOUT AUTOMOTIVE' :{
'setup' : function() {
var dept = either('automotive',( _aisle ? setup.ENGINE.getAisleName(_aisle) : 'stuff'),'auto parts');
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('shopping','browsing','checking out '+dept,'checking out the '+dept+' department');
return null;
},
'exit' : function() {
return "
<p></p>
<p></p>
<p>[[CHECK OUT ANOTHER DEPARTMENT->SHOP S-MART]]</p>
";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
'CHECKOUT ELECTRONICS' :{
'setup' : function() {
var dept = either('electronics',( _aisle ? setup.ENGINE.getAisleName(_aisle) : 'stuff'),'gadgets and gizmos');
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('shopping','browsing','checking out '+dept,'checking out the '+dept+' department');
return null;
},
'exit' : function() {
return "
<p></p>
<p></p>
<p>[[CHECK OUT ANOTHER DEPARTMENT->SHOP S-MART]]</p>
";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
'CHECKOUT FURNITURE' :{
'setup' : function() {
var dept = either('furniture',( _aisle ? setup.ENGINE.getAisleName(_aisle) : 'stuff'));
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('shopping','browsing','checking out '+dept,'checking out the '+dept+' department');
return null;
},
'exit' : function() {
return "
<p></p>
<p></p>
<p>[[CHECK OUT ANOTHER DEPARTMENT->SHOP S-MART]]</p>
";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
'CHECKOUT GARDEN' :{
'setup' : function() {
var dept = either('garden center',( _aisle ? setup.ENGINE.getAisleName(_aisle) : 'stuff'));
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('shopping','browsing','checking out '+dept,'checking out the '+dept+' department');
return null;
},
'exit' : function() {
return "
<p></p>
<p></p>
<p>[[CHECK OUT ANOTHER DEPARTMENT->SHOP S-MART]]</p>
";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
'CHECKOUT GROCERY' :{
'setup' : function() {
var dept = either('grocery',( _aisle ? setup.ENGINE.getAisleName(_aisle) : 'stuff'));
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('shopping','browsing','checking out '+dept,'checking out the '+dept+' department');
return null;
},
'exit' : function() {
return "
<p></p>
<p></p>
<p>[[CHECK OUT ANOTHER DEPARTMENT->SHOP S-MART]]</p>
";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
'CHECKOUT HARDWARE' :{
'setup' : function() {
var dept = either('hardware',( _aisle ? setup.ENGINE.getAisleName(_aisle) : 'stuff'));
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('shopping','browsing','checking out '+dept,'checking out the '+dept+' department');
return null;
},
'exit' : function() {
return "
<p></p>
<p></p>
<p>[[CHECK OUT ANOTHER DEPARTMENT->SHOP S-MART]]</p>
";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
'CHECKOUT HOUSEHOLD' :{
'setup' : function() {
var dept = either('household',( _aisle ? setup.ENGINE.getAisleName(_aisle) : 'stuff'),'furnishings');
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('shopping','browsing','checking out '+dept,'checking out the '+dept+' department');
return null;
},
'exit' : function() {
return "
<p></p>
<p></p>
<p>[[CHECK OUT ANOTHER DEPARTMENT->SHOP S-MART]]</p>
";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
'CHECKOUT HYGENE' :{
'setup' : function() {
var dept = either('hygiene',( _aisle ? setup.ENGINE.getAisleName(_aisle) : 'stuff'));
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('shopping','browsing','checking out '+dept,'checking out the '+dept+' department');
return null;
},
'exit' : function() {
return "
<p></p>
<p></p>
<p>[[CHECK OUT ANOTHER DEPARTMENT->SHOP S-MART]]</p>
";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
'CHECKOUT OFFICE' :{
'setup' : function() {
var dept = either('office',( _aisle ? setup.ENGINE.getAisleName(_aisle) : 'stuff'),'office supplies');
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('shopping','browsing','checking out '+dept,'checking out the '+dept+' department');
return null;
},
'exit' : function() {
return "
<p></p>
<p></p>
<p>[[CHECK OUT ANOTHER DEPARTMENT->SHOP S-MART]]</p>
";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
'CHECKOUT PHARMACY' :{
'setup' : function() {
var dept = either('pharmacy',( _aisle ? setup.ENGINE.getAisleName(_aisle) : 'stuff'));
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('shopping','browsing','checking out '+dept,'checking out the '+dept+' department');
return null;
},
'exit' : function() {
return "
<p></p>
<p></p>
<p>[[CHECK OUT ANOTHER DEPARTMENT->SHOP S-MART]]</p>
";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
'CHECKOUT SEASONAL' :{
'setup' : function() {
var dept = either('seasonal',( _aisle ? setup.ENGINE.getAisleName(_aisle) : 'stuff'));
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('shopping','browsing','checking out '+dept,'checking out the '+dept+' department');
return null;
},
'exit' : function() {
return "
<p></p>
<p></p>
<p>[[CHECK OUT ANOTHER DEPARTMENT->SHOP S-MART]]</p>
";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
'CHECKOUT SPORTING GOODS' :{
'setup' : function() {
var dept = either('sporting goods',( _aisle ? setup.ENGINE.getAisleName(_aisle) : 'stuff'),'sports');
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('shopping','browsing','checking out '+dept,'checking out the '+dept+' department');
return null;
},
'exit' : function() {
return "
<p></p>
<p></p>
<p>[[CHECK OUT ANOTHER DEPARTMENT->SHOP S-MART]]</p>
";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
'ENTER BATHROOM' :{
'setup' : function() {
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('in the bathroom');
return null;
},
'exit' : function() {
return "
<p></p>
<p>[[LEAVE->SHOP S-MART]]</p>
";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
'FILLOUT APPLICATION' :{
'setup' : function() {
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('filling out an application');
return null;
},
'exit' : function() {
return "
<p></p>
<p></p>
<p>[[RETURN->SHOP S-MART]]</p>
";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
/* REMOVED MENU PASSAGES FROM EVENT/ENCOUNTER SYSTEM */
/* 'EQUIP', */
/* 'FOOD', */
/* 'STUFF', */
/* 'SPEND KARMA', */
/* 'SELF', */
'GO HOME' :{
'setup' : function() {
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('home','heading home');
return null;
},
'exit' : function() {
return "
<<set _home=$GAMEDATA.PC.PASSAGES.home>>
<<include 'STATS'>><<include 'RESOURCES'>><<include _home>>
";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
'LIVING ON STREET' :{
'setup' : function() {
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('on the street');
return null;
},
'exit' : function() {
return "";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
'LIVING IN PRISON' :{
'setup' : function() {
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('in your cell','in the yard','in laundry','going to chow','in class','working','working out','in the gym','in the weightroom','waiting in line','talking to your counselor');
return null;
},
'exit' : function() {
return "";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
'LIVING IN CAR' :{
'setup' : function() {
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('in your car','sitting there','sitting there listening to the radio','planning your day');
return null;
},
'exit' : function() {
return "";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
'LIVING IN MOTEL' :{
'setup' : function() {
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('in your room','watching tv','watching the news','channel surfing');
return null;
},
'exit' : function() {
return "";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
'SLEEP IN CAR' :{
'setup' : function() {
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('sleeping','sleeping in your car');
return null;
},
'exit' : function() {
return "<br/><<goto 'GO HOME'>>";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
'SLEEP IN BED' :{
'setup' : function() {
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('sleeping','lying in bed, staing at the ceiling');
return null;
},
'exit' : function() {
return "<br/><<goto 'GO HOME'>>";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
'REST A BIT' :{
'setup' : function() {
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('resting','recovering from your workout','catching your breath');
return null;
},
'exit' : function() {
return "<br/><<goto 'GO HOME'>>";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
'TAKE A NAP' :{
'setup' : function() {
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('napping','snoozing','snoring','resting','recovering from your workout','catching your breath');
return null;
},
'exit' : function() {
return "<br/><<goto 'GO HOME'>>";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
'LOOK FOR CHANGE' :{
'setup' : function() {
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('scrounging the parking lot','looking for change');
return null;
},
'exit' : function() {
return "
<<if setup.ENGINE.canDo('search', 30/60)>>
<p><<link 'KEEP LOOKING'>><<goto 'LOOK FOR CHANGE'>><</link>></p>
<</if>>
<p>[[GO INSIDE->SHOP S-MART]]</p>
<p>[[RETURN TO CAR->GO HOME]]</p>
";
},
'ENCOUNTERS':{
'nothing' : function() { return 90; },
'bill_RANDOM' : function() { return 34; },
'wallet_RANDOM' : function() { return 5; },
'cart_RANDOM' : function() { return 25; },
'car_RANDOM' : function() { return 15; },
},
},
'SHOP S-MART' :{
'setup' : function() {
$GAMEDATA.PC.STATE.lastPassage = State.passage;
$GAMEDATA.PC.STATE.passageDesc = either('shopping','browsing');
return null;
},
'exit' : function() {
return "<p></p><p class='narrow'>[[GO HOME]]</p>";
},
'ENCOUNTERS':{
'nothing' : function() { return 10; },
},
},
/* passage:{ ENCOUNTERS:{encounter:weight} } */
}>><<set setup.ENCOUNTERS={
'nothing':{
/* sub-types inline */
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
/* LOOSE BILLS */
'bill_MASTER':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function(bill, pre, post) {
pre=pre||'<p>'; post=post||'</p>';
setup.ENGINE.do_status_update();
return pre +' '+ "You find "
+ either(
'a 1928',
'a 1933',
'a 1946',
'a 1954',
'a 1967',
'a 1971',
'a 1978',
'a 1983',
'a 1988',
'a 1994',
'a 1997',
'a 2001',
'a 2004',
'a 2009',
'a 2013',
'a 2016',
'a 2018',
'a 2044... wait, what? 2044',
'a',
'an old',
'a clean',
'a fresh',
'a lemon scented',
'a lavender scented',
'a stained',
'a taped',
'a very old',
'a worn',
'a crumpled',
'a soggy',
'a torn',
'a dirty',
'a grimey',
'a sticky',
'a wet',
'a soggy',
'a damp',
'a faded',
'a crisp',
'a new',
'a colored in',
'a written on',
'another',
'what looks like a',
', could it be? Another',
'yet another',
'one more',
'a singed',
'a much needed',
'a desperately needed',
'a lucky',
'a cursed',
'a bloody',
'a yellowed',
'a half-buried',
'a burned'
) +" "+ bill +", "
+ either(
'with a corner missing, ',
'folded',
'wadded',
'crumpled',
'half-buried',
'lying flat',
'poking out',
'dropped',
'jammed',
'stuffed',
'torn',
'still smoking',
'stuck under a rock',
'stuck to a receipt',
'stuck',
'rolled up',
'carefully folded',
'lying',
) +' '+ either(
'under a tire.',
'in a basket.',
'behind the news-bin.',
'on the sidewalk.',
'in a bush.',
'in the weeds.',
'in the grass.',
'in a flower bed.',
'under a tree.',
'under a lamp post.',
'in the propane return.',
'behind a vending machine.',
'in somebody's pocket... I wonder if they noticed.',
'by the aracade.',
'in front of the Blu Box.',
'in a dusty old wallet... don&t ask where you found the wallet.',
'in the rocks.',
'in the wood chips, beneath the stop sign.',
'under a ride.',
'in a plastic bag, blowing across the lot.',
'in a paper sack... smells like cheap burbon.',
'hidden in an old hat.',
'in your pocket. Wow, where did that come from?',
'in your hand... it was there the whole time.',
'scratching your hip... wait, who put it there?',
'lying under the counter, when you stop in to use the restroom.',
'stuck to your foot.',
'under a bench',
'blowing across the parking lot, almost missed it as a gust kicked up.',
'in a tip jar.',
'in a collection jar.',
'near a school ROTC fundraiser.',
'in a blind musician's guitar case.',
'sitting on the floorboard of an unlocked car... good thing you were there to catch this, there's no telling what someone else might have done.',
'in the trash... yuck.'
) +' '+ either(
'',
'Imagine that.',
'You can only imagine where its been.',
'Huh.',
'Must be your lucky day!',
'Only 10,000 more to go...',
'That guy looks familiar.',
'You could swear you recognized that person.',
'Someone made him look like that dude from that board game... with the property...',
'You're rich!.',
'Something doesn't seem quite right.',
'You almost feel bad about it.',
'A thrilling experience!',
'Momma's gonna eat tonight!',
'Its kinda small... maybe you should throw it back?',
'This calls for celebration!',
'Someone drew a mustache.',
'Someone drew in shades... the president never looked so cool.',
'Someone drew boobs on it... actually, they did a good job.',
'Wait, is that a swastika? Where did this money come from?',
'The face is colored in.',
'Why is there gum on this?',
'Wait, was that a cop?',
'Smells like fish.',
'You've got a bad feeling about this.',
'The day's looking up!',
'Its gonna be a great day!',
'Wait, was this in the garbage?',
'You wonder what happened to its owner.'
) +' '+ post;
},
},
'bill_1':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() {
$GAMEDATA.PC.MATRIX.money += 1.00;
$GAMEDATA.PC.MATRIX.karma -= 0.10;
return setup.ENCOUNTERS.bill_MASTER.afterPassage(either(
"$1 bill", "$1 bill", "$1 bill", "$1 bill",
"$1 bill", "$1 bill", "$1 bill", "$1 bill",
"dollar", "dollar", "dollar", "dollar",
"dollar bill", "dollar bill",
"one dollar", "one dollar",
"one dollar", "one dollar",
"bill- enough to go out tonight, anywhere that has a dollar menu",
"old Georgie",
"Washington",
"buck", "buck", "buck", "buck",
"dolla",
"one hundred cent bill"
));
},
},
'bill_2':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() {
$GAMEDATA.PC.MATRIX.money += 2.00;
$GAMEDATA.PC.MATRIX.karma += 100.00;
return setup.ENCOUNTERS.bill_MASTER.afterPassage(either(
"$2 bill", "$2 bill", "$2 bill",
"two dollar bill", "two dollar bill",
"T.J.",
"Jefferson",
"lucky $2 bill"
));
},
},
'bill_5':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() {
$GAMEDATA.PC.MATRIX.money += 5.00;
$GAMEDATA.PC.MATRIX.karma -= 0.50;
return setup.ENCOUNTERS.bill_MASTER.afterPassage(either(
"$5 bill", "$5 bill", "$5 bill", "$5 bill",
"$5 bill", "$5 bill", "$5 bill", "$5 bill",
"fiver",
"five", "five", "five",
"bill- enough to go out tonight, at least for fast food",
"five dollar bill", "five dollar bill",
"Honest Abe",
"Lincoln"
));
},
},
'bill_10':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() {
$GAMEDATA.PC.MATRIX.money += 10.00;
$GAMEDATA.PC.MATRIX.karma -= 1.00;
return setup.ENCOUNTERS.bill_MASTER.afterPassage(either(
"$10 bill", "$10 bill", "$10 bill", "$10 bill",
"$10 bill", "$10 bill", "$10 bill", "$10 bill",
"ten", "ten", "ten", "ten",
"bill- enough to go out tonight, to a small cafe",
"ten dollar bill", "ten dollar bill",
"my man, Xander Hami",
"Hamilton",
"... yeah, don't know that guy"
));
},
},
'bill_20':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() {
$GAMEDATA.PC.MATRIX.money += 20.00;
$GAMEDATA.PC.MATRIX.karma -= 2.00;
return setup.ENCOUNTERS.bill_MASTER.afterPassage(either(
"$20 bill", "$20 bill", "$20 bill", "$20 bill",
"$20 bill", "$20 bill", "$20 bill", "$20 bill",
"twenty", "twenty",
"bill- enough for half a tank",
"bill- enough to go out tonight, to a restaurant",
"twenty dollar bill", "twenty dollar bill",
"Andy J",
"Jackson"
));
},
},
'bill_50':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() {
$GAMEDATA.PC.MATRIX.money += 50.00;
$GAMEDATA.PC.MATRIX.karma -= 5.00;
return setup.ENCOUNTERS.bill_MASTER.afterPassage(either(
"$50 bill", "$50 bill", "$50 bill", "$50 bill",
"$50 bill", "$50 bill", "$50 bill", "$50 bill",
"fifty", "fifty",
"bill- enough to rent a room",
"bill- enough to go out tonight, to a fancy restaurant",
"fifty dollar bill", "fifty dollar bill",
"Ulysses",
"Grant"
));
},
},
'bill_100':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() {
$GAMEDATA.PC.MATRIX.money += 100.00;
$GAMEDATA.PC.MATRIX.karma -= 10.00;
return setup.ENCOUNTERS.bill_MASTER.afterPassage(either(
"$100 bill", "$100 bill", "$100 bill", "$100 bill",
"$100 bill", "$100 bill", "$100 bill", "$100 bill",
"hundred", "hundred",
"bill- your salvation",
"hundred clams",
"hundred dollar bill", "hundred dollar bill",
"hundred bucks", "hundred bucks",
"C-note",
"portrait of your old friend, Ben",
"Benjamin",
"Franklin"
));
},
},
'bill_MULTI':{
/* run bill_RANDOM 2x ... repeatable */
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() {
return setup.ENCOUNTERS.bill_RANDOM.afterPassage() + setup.ENCOUNTERS.bill_RANDOM.afterPassage();
},
},
'bill_RANDOM':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'VARIATIONS' : {
'bill_1' : 40,
'bill_2' : 1,
'bill_5' : 25,
'bill_10' : 15,
'bill_20' : 10,
'bill_50' : 4,
'bill_100' : 2,
'bill_MULTI' : 20,
},
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() {
var sub_encounter = setup.ENGINE.getSubEncounter(setup.ENCOUNTERS.bill_RANDOM.VARIATIONS);
return setup.ENCOUNTERS[sub_encounter].afterPassage();
},
},
/* END LOOSE BILLS */
/* WALLETS */
'wallet_MASTER':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : true,
'CHOICES' :{
'what_do_you_do' : function() {
var choices = '';
choices += setup.ENGINE.enc_moreDetail('CHECK FOR CASH', "check_cash", 'wallet_MASTER');
choices += setup.ENGINE.enc_moreDetail('LOOK FOR ID', "check_id", 'wallet_MASTER');
choices += setup.ENGINE.enc_showChoices({
'KEEP IT' : "keep_wallet",
'TAKE THE CASH' : "keep_cash",
'TURN IT IN' : "turn_in",
},
'wallet_MASTER'
);
return choices;
},
'check_id' : function() {
_checked_id = true;
var out = "<p>It appears to belong to ""+ _license +"", what do you do with it?</p>";
out += setup.ENGINE.enc_moreDetail('TAKE THE '+_cardtype.toUpperCase(), "take_id", 'wallet_MASTER');
return out;
},
'take_id' : function() {
if(_turned_in) {
return "<p>Its too late, you've already turned the wallet in!</p>";
}
_took_id = true;
$GAMEDATA.PC.MATRIX.karma -= 50;
$GAMEDATA.PC.JUNK[_cardtype+'-'+Date.now()] = _license + ''s ' + _cardtype;
var out = "<p>You took "+ _license +"'s "+ _cardtype +".</p>";
return out;
},
'check_cash' : function() {
_checked_cash = true;
var out = "<p>There is $"+ _cash.toFixed(2) +" inside, what do you do?</p>";
return out;
},
'keep_cash' : function() {
_took_cash = true;
$GAMEDATA.PC.MATRIX.karma -= 30+(_cash*3)+( _checked_cash ? 10 : 0 );
$GAMEDATA.PC.MATRIX.money += _cash;
var out = "<p>You take the $"+ _cash.toFixed(2) +" cash and " + either('throw the wallet in the trash.','ditch the wallet.') +"</p>";
return out + setup.PASSAGES[$GAMEDATA.PC.STATE.lastPassage].exit();
},
'keep_wallet' : function() {
$GAMEDATA.PC.MATRIX.karma -= 150+(_cash*3);
$GAMEDATA.PC.MATRIX.money += _cash;
$GAMEDATA.PC.JUNK['wallet-'+Date.now()] = _wallet;
if(!_took_id) { $GAMEDATA.PC.JUNK[_cardtype+'-'+Date.now()] = _license + ''s ' + _cardtype; }
_took_wallet = true;
_took_cash = true;
_took_id = true;
var out = "<p>You keep "+ _license +"'s wallet, it has $"+ _cash.toFixed(2) +" cash and some other junk...</p>";
return out + setup.PASSAGES[$GAMEDATA.PC.STATE.lastPassage].exit();
},
'turn_in' : function() {
/* add karma */
$GAMEDATA.PC.MATRIX.karma += 50+(_cash*3)+( _checked_cash ? -20 : 50 );
_turned_in = true;
var owner = ( _took_id ? "even moreso that the ID is missing! She" : "immediately tries to page "+ _license +" over the intercomm, after a few minutes pass with no response, she" );
var out = "<p>You turn the wallet in... the clerk is surprised to find $"+ _cash.toFixed(2) +" cash still in it and "+ owner +" asks for your phone number, do you give it?</p>";
return out + setup.ENGINE.enc_showChoices({
'GIVE HER YOUR NUMBER' : "give_number",
'DON'T TRUST HER' : "dont_give_number",
},
'wallet_MASTER'
);
},
'give_number' : function() {
/* add karma */
var out = "<p>You tell the clerk your number, you could swear you saw a shy smile as she wrote it down and thanked you.</p>";
return out + setup.PASSAGES[$GAMEDATA.PC.STATE.lastPassage].exit();
},
'dont_give_number' : function() {
/* add karma */
var out = "<p>You decide it might not be the best idea... they might ask questions.</p>";
return out + setup.PASSAGES[$GAMEDATA.PC.STATE.lastPassage].exit();
},
},
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() {
var doing = setup.ENGINE.describePassage();
var wallet = either(
'black stamped leather',
'crockodile skin',
'leather',
'red leather',
'brown leather',
'black leather',
'blue cloth',
'black cloth',
'red cloth',
'green cloth',
) +' wallet';
State.setVar( '_wallet', wallet );
var cash = setup.ENGINE.findCash(0, 300);
State.setVar( '_cash', cash );
var license = setup.ENGINE.randomID();
State.setVar( '_license', license );
var cardtype = either('ID','License','License','License');
State.setVar( '_cardtype', cardtype );
State.setVar( '_checked_cash', false );
State.setVar( '_checked_id', false );
State.setVar( '_turned_in', false );
State.setVar( '_took_cash', false );
State.setVar( '_took_id', false );
State.setVar( '_took_wallet', false );
return 'While you were out '+ doing +' you found '+
' '+ either(
'a',
'a new',
'a worn',
'an old',
'a nice looking',
) +' '+ wallet +' '+ either(
'under a tire.',
'in a basket.',
'sitting atop the news-bin.',
'on the sidewalk.',
'in a bush.',
'in the weeds.',
'in the grass.',
'in a flower bed.',
'under a tree.',
'under a lamp post.',
'behind the propane return.',
'in front of a vending machine.',
'in somebody's pocket... I wonder if they noticed.',
'under a bench, by the aracade.',
'next to the Blu Box.',
'in the rocks.',
'in the wood chips, beneath the stop sign.',
'behind the pony ride.',
'in a paper sack... along with a bunch of other seemingly stolen items.',
'in your pocket. Wow, where did that come from?',
'in your hand... it was there the whole time.',
'scratching your hip... wait, who put it there?',
'lying under the counter, when you stop in to use the restroom.',
'underfoot.',
'under a bench',
'in a tip jar.',
'in a collection jar.',
'near a school ROTC fundraiser.',
'in a blind musician's guitar case.',
'sitting on the floorboard of an unlocked car... good thing you were there to catch this, there's no telling what someone else might have done.',
'in the trash... egg- why is there a broken egg on this- yuck.'
) +' '+ either(
''
) + '<div>'+ setup.ENCOUNTERS.wallet_MASTER.CHOICES.what_do_you_do() +'</div>';
},
},
'wallet_john_smith':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : true,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() {
/* prep stuff... */
return setup.ENCOUNTERS.wallet_MASTER.afterPassage();
},
},
'wallet_DYNAMIC':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : true,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() {
/* prep stuff... */
return setup.ENCOUNTERS.wallet_MASTER.afterPassage();
},
},
'wallet_RANDOM':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : true,
'VARIATIONS' : {
'wallet_john_smith' : 1,
'wallet_DYNAMIC' :10,
},
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() {
var sub_encounter = setup.ENGINE.getSubEncounter(setup.ENCOUNTERS.wallet_RANDOM.VARIATIONS);
return setup.ENCOUNTERS[sub_encounter].afterPassage();
},
},
/* END WALLETS */
/* SHOPPING CARTS */
'cart_MASTER':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'cart_trash':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'cart_money':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'cart_fastfood':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'cart_loose_item':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'cart_1bag':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'cart_3bags':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'cart_bob':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'cart_full':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'cart_purse':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'cart_RANDOM':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'VARIATIONS' : {
'cart_trash' :30,
'cart_money' : 3,
'cart_fastfood' :15,
'cart_loose_item' :20,
'cart_1bag' :10,
'cart_3bags' : 6,
'cart_bob' : 4,
'cart_full' : 1,
'cart_purse' : 2,
},
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
/* END SHOPPING CARTS */
/* xxxx */
'car_MASTER':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'car_alarm':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'car_body':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'car_broken_window':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'car_child':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'car_customer_weak':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'car_dead':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'car_domestic':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'car_doubleparked':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'car_fire':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'car_firelane':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'car_flat':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'car_hit':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'car_leaking':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'car_lights':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'car_not_handicap':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'car_pet':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'car_running':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'car_runover':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'car_sex':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'car_sleeping':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'car_theft':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
'car_RANDOM':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'VARIATIONS' : {
'car_alarm' :10,
'car_body' :10,
'car_broken_window' :10,
'car_child' :10,
'car_customer_weak' :10,
'car_dead' :10,
'car_domestic' :10,
'car_doubleparked' :10,
'car_fire' :10,
'car_firelane' :10,
'car_flat' :10,
'car_hit' :10,
'car_leaking' :10,
'car_lights' :10,
'car_not_handicap' :10,
'car_pet' :10,
'car_running' :10,
'car_runover' :10,
'car_sex' :10,
'car_sleeping' :10,
'car_theft' :10,
},
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
/* END xxxx */
/* STALKERS */
'stalker':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
/* END STALKERS */
/* xxxx */
'customer':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
/* END xxxx */
/* xxxx */
'employee':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
/* END xxxx */
/* xxxx */
'vagrant':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
/* END xxxx */
/* xxxx */
'drifter':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
/* END xxxx */
/* xxxx */
'grifter':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
/* END xxxx */
/* xxxx */
'crafter':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
/* END xxxx */
/* xxxx */
'vendor':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
/* END xxxx */
/* xxxx */
'drunk':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
/* END xxxx */
/* xxxx */
'cop':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
/* END xxxx */
/* xxxx */
'gymrat':{
'setup' : function() { return ''; },
'replace' : false,
'overrideExit' : false,
'beforePassage' : function() { return ''; },
'replacePassage' : function() { return ''; },
'afterPassage' : function() { return ''; },
},
/* END xxxx */
}>><<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENGINE.replacePassage();>><<else>>
NORMAL PASSAGE
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<p></p>
<<print setup.ENGINE.exitPassage();>>
ADD PASSAGE EXIT TO setup PASSAGES <h2><<print setup.AISLES[_dept].name>></h2>
<h3><<print setup.AISLES[_dept].desc>></h3>
<<for _aisle_id, _data range setup.AISLES[_dept].AISLES>>
<<if (_aisle == _aisle_id)>>
<<include 'LIST ITEMS FOR AISLE'>>
<<else>>
<p class='narrow'><<print "
<<link '" + _data.name + "'>>
<<set _aisle to '" + _aisle_id + "'>>
<<replace '#passages'>><<include '"+ State.passage +"'>><</replace>>
<</link>>
">></p>
<</if>>
<</for>>
Double-click this passage to edit it.Double-click this passage to edit it.<<set setup.CHARS['Tammi X'] = {
'NAMES': {
'first' : "Tammi",
/* gets replaced with creed selection */
'birth' : "Tammi X",
/* gets replaced with husband creed selection */
'married' : "Tammi X",
},
'TRAITS':{
/* 'race' : "human", */
/* 'skin_type' : "", */
/* 'skin_color' : "", */
/* 'skin_condition' : "", */
/* 'hair_length' : "", */
/* 'hair_color' : "", */
/* 'hair_style' : "", */
/* 'hair_condition' : "", */
/* 'eye_color' : "", */
/* 'eye_condition' : "", */
/* 'face' : "", */
},
'PASSAGES':{
'start' : "START TAMMI",
'home' : "LIVING IN MOTEL",
},
'STATS':{
/* PRIMARY STATS - used to calc maxes for secondary stats */
'STR' : 7.00,
'END' : 25.00,
'SPD' : 8.00,
'PHY' : 7.00,
'level' : 10.00,
'workout_hrs': 0.917,
'karmic_well': 40.00,
},
'MATRIX':{
/* SECONDARY STATS/ENERGY - current values (renewable resources) */
'tough' : 1.00, /* STRxEND - defense, resist injury */
'power' : 1.00, /* STRxSPD - offense, lift */
'vigor' : 1.00, /* STRxPHY - stamina, safe workload */
'regen' : 1.00, /* ENDxSPD - healing factor */
'vital' : 1.00, /* ENDxPHY - health */
'metab' : 1.00, /* SPDxPHY - energy/stamina recovery */
/* RESOURCES - (non-stat/non-renewable) */
'karma' : 110.00, /* ? unit */
'kcal' : 2300.00, /* food calories consumed, total */
'protein' : 60.00, /* grams consumed, nutrition */
'sugar' : 180.00, /* grams consumed, empty calories */
'money' : 198.00, /* */
'petro' : 0.000001, /* gallons, remaining */
},
'METRICS':{
'age' : 23.0, /* years */
'base_ht' : 67.0, /* height, inches */
'ht' : 67.0, /* height, inches */
'wt' : 154.0, /* weight, pounds */
'adj_wt' : 154.0, /* adjusted weight, pounds */
'bicep' : 8.0, /* inches; max-curl = power*bicep/30; reps - max/3 */
'quads' : 15.0, /* inches; max-squat = power*quad/15; reps - max/3 */
'chest' : 30.0, /* */
'bust' : 4, /* variation from wt/35#, used to calculate cup size */
'cup' : "D", /* */
'waist' : 28.0, /* */
'hips' : 33.0, /* */
'BMI' : 'not-set', /* */
'bodyfat' : 'not-set', /* */
},
'STATUS':{
'overweight':"",
'depressed':"",
'bruised':"",
'tired':"",
},
'STUFF':{
/* lost everything but the clothes on her back! (and whatever is in the trunk of her car) */
/* ID:uses */
'D01_A09_I02': 60, /* jeans */
'D01_A10_I01': 30, /* blouse */
'D01_A13_I02': 50, /* plain white bra */
'D01_A13_I03': 50, /* plain white panties */
'D01_A13_I01': 13, /* ankle socks */
'D05_A05_I02': 45, /* gummi bears */
},
'EQUIP':{
/* SLOT:ID */
'bra' :"D01_A13_I02",
'panties' :"D01_A13_I03",
'pants' :"D01_A09_I02",
'overshirt' :"D01_A10_I01",
'socks' :"D01_A13_I01",
},
'PROPERTY':{
/* no car */
},
'STATE':{
'saveVersion' : 0.2,
'feedbackQueue' : [],
'Date' : new Date(),
'lastPassage' : null,
'lastExercise' : null,
'lastActivity' : null,
'lastAction' : null,
'lastItem' : null,
},
/* END setup.CHARS['Tammi X'] */ }>><p>Tired of his shit, of getting hit for the thousandth time, you finally leave that asshole...</p>
<p>with no car, you catch a bus to another city to start a new life with little more than $200 in your pocket.</p>
<p>You find a cheap motel and rent a room for the night...</p>
<<run setup.ENGINE.setTime(21,1)>>
<p>You've got a lot to do tomorrow, perhaps you should [[go to bed->SLEEP IN BED]].</p><p class='narrow'><<if setup.ENGINE.canDo('search', 15/60)>>[[GO SHOPPING->SHOP S-MART]]<</if>></p>
<p class='narrow'><<if setup.ENGINE.canDo('search', 30/60)>>[[LOOK FOR CHANGE]]<</if>></p>
<p></p>
<p class='narrow'><<if setup.ENGINE.canDo('walk', 5/60, 0.5)>>[[GO FOR A WALK]]<</if>></p>
<p class='narrow'><<if setup.ENGINE.canDo('jog', 5/60, 0.5)>>[[GO FOR A JOG]]<</if>></p>
<p class='narrow'><<if setup.ENGINE.canDo('run', 5/60, 0.5)>>[[GO FOR A RUN]]<</if>></p>
<p></p>
<p class='narrow'><<if setup.ENGINE.canDo('calisthenics', 5/60, 0.5)>>[[DO CALISTHENICS]]<</if>></p><p class='narrow'><<if setup.ENGINE.canDo('sleep', 3) >>[[SLEEP->SLEEP IN BED]]<</if>></p>
<p class='narrow'><<if setup.ENGINE.canDo('sleep', 1) >>[[TAKE A NAP]]<</if>></p>
<p class='narrow'><<if setup.ENGINE.canDo('rest', 15/60) >>[[REST A BIT]]<</if>></p>
<p></p>
<p class='narrow'><<if setup.ENGINE.canDo('search', 15/60) >>[[GO SHOPPING->SHOP S-MART]]<</if>></p>
<p class='narrow'><<if setup.ENGINE.canDo('search', 30/60) >>[[LOOK FOR CHANGE]]<</if>></p>
<p></p>
<p class='narrow'><<if setup.ENGINE.canDo('walk', 5/60, 0.5) >>[[GO FOR A WALK]]<</if>></p>
<p class='narrow'><<if setup.ENGINE.canDo('jog', 5/60, 0.5) >>[[GO FOR A JOG]]<</if>></p>
<p class='narrow'><<if setup.ENGINE.canDo('run', 5/60, 0.5) >>[[GO FOR A RUN]]<</if>></p>
<p></p>
<p class='narrow'><<if setup.ENGINE.canDo('aerobics', 5/60, 0.5) >>[[DO AEROBICS]]<</if>></p>
<p class='narrow'><<if setup.ENGINE.canDo('calisthenics', 5/60, 0.5) >>[[DO CALISTHENICS]]<</if>></p>
<p class='narrow'><<if setup.ENGINE.canDo('yoga', 5/60, 0.5) >>[[DO YOGA]]<</if>></p><p class='narrow'><<if setup.ENGINE.canDo('sleep', 3) >>[[SLEEP->SLEEP IN CAR]]<</if>></p>
<p class='narrow'><<if setup.ENGINE.canDo('sleep', 1) >>[[TAKE A NAP]]<</if>></p>
<p class='narrow'><<if setup.ENGINE.canDo('rest', 15/60) >>[[REST A BIT]]<</if>></p>
<p></p>
<p class='narrow'><<if setup.ENGINE.canDo('drive', 15/60) >>[[DRIVE SOMEWHERE]]<</if>></p>You have nowhere to go...
[[RETURN->GO HOME]]<<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENGINE.replacePassage();>><<else>>
<<run setup.ENGINE.doRest('sleep', 8); >><<set _time = setup.ENGINE.getTime();>>
<<if ("05:30"<_time)&&(_time<"07:30")>>
<<run setup.ENGINE.giveFeedback("You wake up at first light, but the store won't be open for another hour. What do you do?");>>
<</if>>
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<p></p>
<<print setup.ENGINE.exitPassage();>> <<if (_hrs) && (_lv)>>
<<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENGINE.replacePassage();>><<else>>
<<run setup.ENGINE.doWorkout('aerobics', _hrs, _lv); >>
<<replace '#datetime'>><<include 'DATETIME'>><</replace>>
<p>You try to do some basic aerobics, but its not long till you're out of breath.</p>
<p></p>
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<p></p>
<<print setup.ENGINE.exitPassage();>>
<<else>>
<<print setup.ENGINE.workoutTable('aerobics'); >>
<p>[[RETURN->GO HOME]]</p>
<</if>>
<<if (_hrs) && (_lv)>>
<<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENGINE.replacePassage();>><<else>>
<<run setup.ENGINE.doWorkout('yoga', _hrs, _lv); >>
<<replace '#datetime'>><<include 'DATETIME'>><</replace>>
<p>You try to do some basic yoga, but its not long till you're out of breath.</p>
<p></p>
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<p></p>
<<print setup.ENGINE.exitPassage();>>
<<else>>
<<print setup.ENGINE.workoutTable('yoga'); >>
<p>[[RETURN->GO HOME]]</p>
<</if>>
Double-click this passage to edit it.<<set setup.DESC={ /* GAME ENGINE -- everything below this point */
'ht' : function(CHAR) {
CHAR=CHAR||$GAMEDATA.PC;
var ht_desc = '';
switch(true) {
/* 1 inches */ case (CHAR.METRICS.ht < 1): ht_desc = "a bug"; break;
/* 6 inches */ case (CHAR.METRICS.ht < 6): ht_desc = "minuscule"; break;
/* 1 foot */ case (CHAR.METRICS.ht < 12): ht_desc = "tiny"; break;
/* 1 feet, 6 inches */ case (CHAR.METRICS.ht < 18): ht_desc = "little"; break;
/* 2 feet */ case (CHAR.METRICS.ht < 24): ht_desc = "a gnome"; break;
/* 2 feet, 6 inches */ case (CHAR.METRICS.ht < 30): ht_desc = "incredibly short"; break;
/* 3 feet */ case (CHAR.METRICS.ht < 36): ht_desc = "fantastically short"; break;
/* 3 feet, 6 inches */ case (CHAR.METRICS.ht < 42): ht_desc = "spectacularly short"; break;
/* 4 feet */ case (CHAR.METRICS.ht < 48): ht_desc = "exceedingly short"; break;
/* 4 feet, 6 inches */ case (CHAR.METRICS.ht < 54): ht_desc = "very short"; break;
/* 5 feet */ case (CHAR.METRICS.ht < 60): ht_desc = "rather short"; break;
/* 5 feet, 4 inches */ case (CHAR.METRICS.ht < 64): ht_desc = "a bit short"; break;
/* 1 mile */ case (CHAR.METRICS.ht > 63360): ht_desc = "a goddess"; break;
/* 100 feet */ case (CHAR.METRICS.ht > 1200): ht_desc = "a titaness"; break;
/* 75 feet */ case (CHAR.METRICS.ht > 900): ht_desc = "a kaiju"; break;
/* 50 feet */ case (CHAR.METRICS.ht > 600): ht_desc = "ginormous"; break;
/* 35 feet */ case (CHAR.METRICS.ht > 420): ht_desc = "a great giantess"; break;
/* 24 feet */ case (CHAR.METRICS.ht > 288): ht_desc = "a giantess"; break;
/* 13 feet, 4 inches */ case (CHAR.METRICS.ht > 160): ht_desc = "a mini-giantess"; break;
/* 10 feet */ case (CHAR.METRICS.ht > 120): ht_desc = "of Amazonian height"; break;
/* 8 feet, 6 inches */ case (CHAR.METRICS.ht > 102): ht_desc = "monumentally tall"; break;
/* 7 feet, 6 inches */ case (CHAR.METRICS.ht > 90): ht_desc = "spectacularly tall"; break;
/* 7 feet */ case (CHAR.METRICS.ht > 84): ht_desc = "exceedingly tall"; break;
/* 6 feet, 6 inches */ case (CHAR.METRICS.ht > 78): ht_desc = "very tall"; break;
/* 6 feet */ case (CHAR.METRICS.ht > 72): ht_desc = "rather tall"; break;
/* 5 feet, 8 inches */ case (CHAR.METRICS.ht > 68): ht_desc = "a bit tall"; break;
/* 5 feet 4-8 inches */ default: ht_desc = "of average height"; break;
}
return ht_desc;
},
'wt' : function(CHAR) {
CHAR=CHAR||$GAMEDATA.PC;
var wt_desc = '';
/* account for variable-bodymass and percentage bodyfat */
switch(true) {
case (CHAR.METRICS.adj_wt < 0.1): wt_desc = "a few ounces"; break;
case (CHAR.METRICS.adj_wt < 1.0): wt_desc = "a pint"; break;
case (CHAR.METRICS.adj_wt < 10.0): wt_desc = "impossibly thin"; break;
case (CHAR.METRICS.adj_wt < 30.0): wt_desc = "inhumanly thin"; break;
case (CHAR.METRICS.adj_wt < 50.0): wt_desc = "a walking skeleton"; break;
case (CHAR.METRICS.adj_wt < 70.0): wt_desc = "starving"; break;
case (CHAR.METRICS.adj_wt < 85.0): wt_desc = "tiny"; break;
case (CHAR.METRICS.adj_wt < 100.0): wt_desc = "small"; break;
case (CHAR.METRICS.adj_wt < 115.0): wt_desc = "petite"; break;
case (CHAR.METRICS.adj_wt >2200000000.0): wt_desc = "over a megaton"; break;
case (CHAR.METRICS.adj_wt > 220000000.0): wt_desc = "[100 kt+]"; break;
case (CHAR.METRICS.adj_wt > 22000000.0): wt_desc = "[10 kt+]"; break;
case (CHAR.METRICS.adj_wt > 2200000.0): wt_desc = "over a kiloton"; break;
case (CHAR.METRICS.adj_wt > 1000000.0): wt_desc = "[500+ tons]"; break;
case (CHAR.METRICS.adj_wt > 750000.0): wt_desc = "[375+ tons]"; break;
case (CHAR.METRICS.adj_wt > 500000.0): wt_desc = "[250+ tons]"; break;
case (CHAR.METRICS.adj_wt > 250000.0): wt_desc = "[125+ tons]"; break;
case (CHAR.METRICS.adj_wt > 100000.0): wt_desc = "[50+ tons]"; break;
case (CHAR.METRICS.adj_wt > 80000.0): wt_desc = "[40+ tons]"; break;
case (CHAR.METRICS.adj_wt > 65000.0): wt_desc = "[32+ tons]"; break;
case (CHAR.METRICS.adj_wt > 50000.0): wt_desc = "[25+ tons]"; break;
case (CHAR.METRICS.adj_wt > 40000.0): wt_desc = "[20+ tons]"; break;
case (CHAR.METRICS.adj_wt > 30000.0): wt_desc = "[15+ tons]"; break;
case (CHAR.METRICS.adj_wt > 20000.0): wt_desc = "[10+ tons]"; break;
case (CHAR.METRICS.adj_wt > 15000.0): wt_desc = "[7+ tons]"; break;
case (CHAR.METRICS.adj_wt > 10000.0): wt_desc = "[5+ tons]"; break;
case (CHAR.METRICS.adj_wt > 7500.0): wt_desc = "[7500+]"; break;
case (CHAR.METRICS.adj_wt > 5000.0): wt_desc = "[5000+]"; break;
case (CHAR.METRICS.adj_wt > 3500.0): wt_desc = "[3500+]"; break;
case (CHAR.METRICS.adj_wt > 2000.0): wt_desc = "you weight a ton"; break;
case (CHAR.METRICS.adj_wt > 1500.0): wt_desc = "three quarter ton"; break;
case (CHAR.METRICS.adj_wt > 1000.0): wt_desc = "a half ton"; break;
case (CHAR.METRICS.adj_wt > 850.0): wt_desc = "colossal"; break;
case (CHAR.METRICS.adj_wt > 600.0): wt_desc = "enormous"; break;
case (CHAR.METRICS.adj_wt > 500.0): wt_desc = "a quarter ton"; break;
case (CHAR.METRICS.adj_wt > 400.0): wt_desc = "massive"; break;
case (CHAR.METRICS.adj_wt > 350.0): wt_desc = "huge"; break;
case (CHAR.METRICS.adj_wt > 300.0): wt_desc = "big"; break;
case (CHAR.METRICS.adj_wt > 250.0): wt_desc = "bulky"; break;
case (CHAR.METRICS.adj_wt > 200.0): wt_desc = "large"; break;
case (CHAR.METRICS.adj_wt > 165.0): wt_desc = "of solid build"; break;
default: wt_desc = "average weight"; break;
}
return wt_desc;
},
'height' : function(CHAR) {
CHAR=CHAR||$GAMEDATA.PC;
return setup.DESC.ht(CHAR);
},
'weight' : function(CHAR) {
CHAR=CHAR||$GAMEDATA.PC;
return setup.DESC.wt(CHAR);
},
/* 'race' : function(CHAR) {}, */
/* 'skin_type' : function(CHAR) {}, */
/* 'skin_color' : function(CHAR) {}, */
/* 'skin_condition' : function(CHAR) {}, */
/* 'hair_length' : function(CHAR) {}, */
/* 'hair_color' : function(CHAR) {}, */
/* 'hair_style' : function(CHAR) {}, */
/* 'hair_condition' : function(CHAR) {}, */
/* 'eye_color' : function(CHAR) {}, */
/* 'eye_condition' : function(CHAR) {}, */
/* 'face' : function(CHAR) {}, */
/* 'arms' : function(CHAR) {}, */
'bicep' : function(CHAR) {
return this.bicep_tone(CHAR) +" "+ this.bicep_size(CHAR);
},
'bicep_tone' : function(CHAR) {
CHAR=CHAR||$GAMEDATA.PC;
var bicep_desc = '';
switch(true) {
case ($GAMEDATA.PC.METRICS.bodyfat < 5): bicep_desc = 'diamond'; break;
case ($GAMEDATA.PC.METRICS.bodyfat < 10): bicep_desc = 'rock-hard'; break;
case ($GAMEDATA.PC.METRICS.bodyfat < 15): bicep_desc = 'solid'; break;
case ($GAMEDATA.PC.METRICS.bodyfat < 20): bicep_desc = 'firm'; break;
case ($GAMEDATA.PC.METRICS.bodyfat < 25): bicep_desc = 'toned'; break;
case ($GAMEDATA.PC.METRICS.bodyfat < 30): bicep_desc = 'smooth'; break;
case ($GAMEDATA.PC.METRICS.bodyfat < 35): bicep_desc = 'soft'; break;
case ($GAMEDATA.PC.METRICS.bodyfat < 40): bicep_desc = 'squishy'; break;
case ($GAMEDATA.PC.METRICS.bodyfat < 45): bicep_desc = 'loose'; break;
case ($GAMEDATA.PC.METRICS.bodyfat < 50): bicep_desc = 'jiggly'; break;
case ($GAMEDATA.PC.METRICS.bodyfat < 60): bicep_desc = 'flabby'; break;
case ($GAMEDATA.PC.METRICS.bodyfat < 70): bicep_desc = 'pudgy'; break;
case ($GAMEDATA.PC.METRICS.bodyfat < 80): bicep_desc = 'fat'; break;
default: bicep_desc = 'bloated'; break;
}
return bicep_desc;
},
'bicep_size' : function(CHAR) {
CHAR=CHAR||$GAMEDATA.PC;
var bi_desc = '';
switch(true) {
case (CHAR.METRICS.bicep > 36): bi_desc = "impossibly large"; break;
case (CHAR.METRICS.bicep > 33): bi_desc = "insane"; break;
case (CHAR.METRICS.bicep > 30): bi_desc = "inhuman"; break;
case (CHAR.METRICS.bicep > 27): bi_desc = "colossal"; break;
case (CHAR.METRICS.bicep > 24): bi_desc = "freakish"; break;
case (CHAR.METRICS.bicep > 21): bi_desc = "tremendous"; break;
case (CHAR.METRICS.bicep > 18): bi_desc = "massive"; break;
case (CHAR.METRICS.bicep > 15): bi_desc = "huge"; break;
case (CHAR.METRICS.bicep > 12): bi_desc = "large"; break;
case (CHAR.METRICS.bicep > 9): bi_desc = "modest"; break;
case (CHAR.METRICS.bicep > 6): bi_desc = "small"; break;
default: bi_desc = "puny"; break;
}
return bi_desc;
},
/* 'legs' : function(CHAR) {}, */
/* 'quads' : function(CHAR) {}, */
/* 'calves' : function(CHAR) {}, */
/* 'forearms' : function(CHAR) {}, */
/* 'delts' : function(CHAR) {}, */
/* 'chest' : function(CHAR) {}, */
/* 'breasts' : function(CHAR) {}, */
/* 'back' : function(CHAR) {}, */
/* 'waist' : function(CHAR) {}, */
/* 'abs' : function(CHAR) {}, */
}>><<set setup.FLAGS={
'DISPLAY':{
'base_metrics' : false,
},
}>><<print setup.ENGINE.setupPassage();>><<print setup.ENGINE.beforePassage();>>
<<if setup.ENCOUNTERS[_encounter].replace>><<print setup.ENGINE.replacePassage();>><<else>>
<<run setup.ENGINE.doRest('sleep', 120/60); >>
<<run setup.ENGINE.giveFeedback("You take a short nap to recover your strength.");>>
<</if>>
<<print setup.ENGINE.afterPassage();>>
<<if settings.debugInfo>><p>[encounter: _encounter ]</p><</if>>
<p></p>
<<print setup.ENGINE.exitPassage();>><<set setup.NAMES={
'randomName' : function(gender, allowMI) {
gender=gender||either('male','female');
if(typeof allowMI==='undefined') { allowMI=either(true,false); }
var middle = setup.NAMES.randomMiddle(gender, allowMI);
return setup.NAMES.randomFirst(gender) + (middle ? ' '+middle : '') +' '+ setup.NAMES.randomLast();
},
'randomFirst' : function(gender) {
gender=gender||either('male','female');
if(gender=='male') {
return setup.NAMES.randomBoy();
} else if(gender=='female') {
return setup.NAMES.randomGirl();
}
},
'randomMiddle' : function(gender, allowMI) {
gender=gender||either('male','female');
if(Math.random()<0.42) {
return null;
} else if(allowMI && Math.random()<0.58) {
return setup.NAMES.randomMI();
} else if(gender=='male') {
return setup.NAMES.randomBoy();
} else if(gender=='female') {
return setup.NAMES.randomGirl();
}
},
'randomMI' : function() {
return String.fromCharCode(Math.floor(Math.random() * 26) + 65);
},
'randomBoy' : function() {
return either(
'Aaron',
'Abdul',
'Abe',
'Abel',
'Abraham',
'Abram',
'Adalberto',
'Adam',
'Adan',
'Adolfo',
'Adolph',
'Adrian',
'Agustin',
'Ahmad',
'Ahmed',
'Al',
'Alan',
'Albert',
'Alberto',
'Alden',
'Aldo',
'Alec',
'Alejandro',
'Alex',
'Alexander',
'Alexis',
'Alfonso',
'Alfonzo',
'Alfred',
'Alfredo',
'Ali',
'Allan',
'Allen',
'Alonso',
'Alonzo',
'Alphonse',
'Alphonso',
'Alton',
'Alva',
'Alvaro',
'Alvin',
'Amado',
'Ambrose',
'Amos',
'Anderson',
'Andre',
'Andrea',
'Andreas',
'Andres',
'Andrew',
'Andy',
'Angel',
'Angelo',
'Anibal',
'Anthony',
'Antione',
'Antoine',
'Anton',
'Antone',
'Antonia',
'Antonio',
'Antony',
'Antwan',
'Archie',
'Arden',
'Ariel',
'Arlen',
'Arlie',
'Armand',
'Armando',
'Arnold',
'Arnoldo',
'Arnulfo',
'Aron',
'Arron',
'Art',
'Arthur',
'Arturo',
'Asa',
'Ashley',
'Aubrey',
'August',
'Augustine',
'Augustus',
'Aurelio',
'Austin',
'Avery',
'Barney',
'Barrett',
'Barry',
'Bart',
'Barton',
'Basil',
'Beau',
'Ben',
'Benedict',
'Benito',
'Benjamin',
'Bennett',
'Bennie',
'Benny',
'Benton',
'Bernard',
'Bernardo',
'Bernie',
'Berry',
'Bert',
'Bertram',
'Bill',
'Billie',
'Billy',
'Blaine',
'Blair',
'Blake',
'Bo',
'Bob',
'Bobbie',
'Bobby',
'Booker',
'Boris',
'Boyce',
'Boyd',
'Brad',
'Bradford',
'Bradley',
'Bradly',
'Brady',
'Brain',
'Branden',
'Brandon',
'Brant',
'Brendan',
'Brendon',
'Brent',
'Brenton',
'Bret',
'Brett',
'Brian',
'Brice',
'Britt',
'Brock',
'Broderick',
'Brooks',
'Bruce',
'Bruno',
'Bryan',
'Bryant',
'Bryce',
'Bryon',
'Buck',
'Bud',
'Buddy',
'Buford',
'Burl',
'Burt',
'Burton',
'Buster',
'Byron',
'Caleb',
'Calvin',
'Cameron',
'Carey',
'Carl',
'Carlo',
'Carlos',
'Carlton',
'Carmelo',
'Carmen',
'Carmine',
'Carol',
'Carrol',
'Carroll',
'Carson',
'Carter',
'Cary',
'Casey',
'Cecil',
'Cedric',
'Cedrick',
'Cesar',
'Chad',
'Chadwick',
'Chance',
'Chang',
'Charles',
'Charley',
'Charlie',
'Chas',
'Chase',
'Chauncey',
'Chester',
'Chet',
'Chi',
'Chong',
'Chris',
'Christian',
'Christoper',
'Christopher',
'Chuck',
'Chung',
'Clair',
'Clarence',
'Clark',
'Claud',
'Claude',
'Claudio',
'Clay',
'Clayton',
'Clement',
'Clemente',
'Cleo',
'Cletus',
'Cleveland',
'Cliff',
'Clifford',
'Clifton',
'Clint',
'Clinton',
'Clyde',
'Cody',
'Colby',
'Cole',
'Coleman',
'Colin',
'Collin',
'Colton',
'Columbus',
'Connie',
'Conrad',
'Cordell',
'Corey',
'Cornelius',
'Cornell',
'Cortez',
'Cory',
'Courtney',
'Coy',
'Craig',
'Cristobal',
'Cristopher',
'Cruz',
'Curt',
'Curtis',
'Cyril',
'Cyrus',
'Dale',
'Dallas',
'Dalton',
'Damian',
'Damien',
'Damion',
'Damon',
'Dan',
'Dana',
'Dane',
'Danial',
'Daniel',
'Danilo',
'Dannie',
'Danny',
'Dante',
'Darell',
'Daren',
'Darin',
'Dario',
'Darius',
'Darnell',
'Daron',
'Darrel',
'Darrell',
'Darren',
'Darrick',
'Darrin',
'Darron',
'Darryl',
'Darwin',
'Daryl',
'Dave',
'David',
'Davis',
'Dean',
'Deandre',
'Deangelo',
'Dee',
'Del',
'Delbert',
'Delmar',
'Delmer',
'Demarcus',
'Demetrius',
'Denis',
'Dennis',
'Denny',
'Denver',
'Deon',
'Derek',
'Derick',
'Derrick',
'Deshawn',
'Desmond',
'Devin',
'Devon',
'Dewayne',
'Dewey',
'Dewitt',
'Dexter',
'Dick',
'Diego',
'Dillon',
'Dino',
'Dion',
'Dirk',
'Domenic',
'Domingo',
'Dominic',
'Dominick',
'Dominique',
'Don',
'Donald',
'Dong',
'Donn',
'Donnell',
'Donnie',
'Donny',
'Donovan',
'Donte',
'Dorian',
'Dorsey',
'Doug',
'Douglas',
'Douglass',
'Doyle',
'Drew',
'Duane',
'Dudley',
'Duncan',
'Dustin',
'Dusty',
'Dwain',
'Dwayne',
'Dwight',
'Dylan',
'Earl',
'Earle',
'Earnest',
'Ed',
'Eddie',
'Eddy',
'Edgar',
'Edgardo',
'Edison',
'Edmond',
'Edmund',
'Edmundo',
'Eduardo',
'Edward',
'Edwardo',
'Edwin',
'Efrain',
'Efren',
'Elbert',
'Elden',
'Eldon',
'Eldridge',
'Eli',
'Elias',
'Elijah',
'Eliseo',
'Elisha',
'Elliot',
'Elliott',
'Ellis',
'Ellsworth',
'Elmer',
'Elmo',
'Eloy',
'Elroy',
'Elton',
'Elvin',
'Elvis',
'Elwood',
'Emanuel',
'Emerson',
'Emery',
'Emil',
'Emile',
'Emilio',
'Emmanuel',
'Emmett',
'Emmitt',
'Emory',
'Enoch',
'Enrique',
'Erasmo',
'Eric',
'Erich',
'Erick',
'Erik',
'Erin',
'Ernest',
'Ernesto',
'Ernie',
'Errol',
'Ervin',
'Erwin',
'Esteban',
'Ethan',
'Eugene',
'Eugenio',
'Eusebio',
'Evan',
'Everett',
'Everette',
'Ezekiel',
'Ezequiel',
'Ezra',
'Fabian',
'Faustino',
'Fausto',
'Federico',
'Felipe',
'Felix',
'Felton',
'Ferdinand',
'Fermin',
'Fernando',
'Fidel',
'Filiberto',
'Fletcher',
'Florencio',
'Florentino',
'Floyd',
'Forest',
'Forrest',
'Foster',
'Frances',
'Francesco',
'Francis',
'Francisco',
'Frank',
'Frankie',
'Franklin',
'Franklyn',
'Fred',
'Freddie',
'Freddy',
'Frederic',
'Frederick',
'Fredric',
'Fredrick',
'Freeman',
'Fritz',
'Gabriel',
'Gail',
'Gale',
'Galen',
'Garfield',
'Garland',
'Garret',
'Garrett',
'Garry',
'Garth',
'Gary',
'Gaston',
'Gavin',
'Gayle',
'Gaylord',
'Genaro',
'Gene',
'Geoffrey',
'George',
'Gerald',
'Geraldo',
'Gerard',
'Gerardo',
'German',
'Gerry',
'Gil',
'Gilbert',
'Gilberto',
'Gino',
'Giovanni',
'Giuseppe',
'Glen',
'Glenn',
'Gonzalo',
'Gordon',
'Grady',
'Graham',
'Graig',
'Grant',
'Granville',
'Greg',
'Gregg',
'Gregorio',
'Gregory',
'Grover',
'Guadalupe',
'Guillermo',
'Gus',
'Gustavo',
'Guy',
'Hai',
'Hal',
'Hank',
'Hans',
'Harlan',
'Harland',
'Harley',
'Harold',
'Harris',
'Harrison',
'Harry',
'Harvey',
'Hassan',
'Hayden',
'Haywood',
'Heath',
'Hector',
'Henry',
'Herb',
'Herbert',
'Heriberto',
'Herman',
'Herschel',
'Hershel',
'Hilario',
'Hilton',
'Hipolito',
'Hiram',
'Hobert',
'Hollis',
'Homer',
'Hong',
'Horace',
'Horacio',
'Hosea',
'Houston',
'Howard',
'Hoyt',
'Hubert',
'Huey',
'Hugh',
'Hugo',
'Humberto',
'Hung',
'Hunter',
'Hyman',
'Ian',
'Ignacio',
'Ike',
'Ira',
'Irvin',
'Irving',
'Irwin',
'Isaac',
'Isaiah',
'Isaias',
'Isiah',
'Isidro',
'Ismael',
'Israel',
'Isreal',
'Issac',
'Ivan',
'Ivory',
'Jacinto',
'Jack',
'Jackie',
'Jackson',
'Jacob',
'Jacques',
'Jae',
'Jaime',
'Jake',
'Jamaal',
'Jamal',
'Jamar',
'Jame',
'Jamel',
'James',
'Jamey',
'Jamie',
'Jamison',
'Jan',
'Jared',
'Jarod',
'Jarred',
'Jarrett',
'Jarrod',
'Jarvis',
'Jason',
'Jasper',
'Javier',
'Jay',
'Jayson',
'Jc',
'Jean',
'Jed',
'Jeff',
'Jefferey',
'Jefferson',
'Jeffery',
'Jeffrey',
'Jeffry',
'Jerald',
'Jeramy',
'Jere',
'Jeremiah',
'Jeremy',
'Jermaine',
'Jerold',
'Jerome',
'Jeromy',
'Jerrell',
'Jerrod',
'Jerrold',
'Jerry',
'Jess',
'Jesse',
'Jessie',
'Jesus',
'Jewel',
'Jewell',
'Jim',
'Jimmie',
'Jimmy',
'Joan',
'Joaquin',
'Jody',
'Joe',
'Joel',
'Joesph',
'Joey',
'John',
'Johnathan',
'Johnathon',
'Johnie',
'Johnnie',
'Johnny',
'Johnson',
'Jon',
'Jonah',
'Jonas',
'Jonathan',
'Jonathon',
'Jordan',
'Jordon',
'Jorge',
'Jose',
'Josef',
'Joseph',
'Josh',
'Joshua',
'Josiah',
'Jospeh',
'Josue',
'Juan',
'Jude',
'Judson',
'Jules',
'Julian',
'Julio',
'Julius',
'Junior',
'Justin',
'Kareem',
'Karl',
'Kasey',
'Keenan',
'Keith',
'Kelley',
'Kelly',
'Kelvin',
'Ken',
'Kendall',
'Kendrick',
'Keneth',
'Kenneth',
'Kennith',
'Kenny',
'Kent',
'Kenton',
'Kermit',
'Kerry',
'Keven',
'Kevin',
'Kieth',
'Kim',
'King',
'Kip',
'Kirby',
'Kirk',
'Korey',
'Kory',
'Kraig',
'Kris',
'Kristofer',
'Kristopher',
'Kurt',
'Kurtis',
'Kyle',
'Lacy',
'Lamar',
'Lamont',
'Lance',
'Landon',
'Lane',
'Lanny',
'Larry',
'Lauren',
'Laurence',
'Lavern',
'Laverne',
'Lawerence',
'Lawrence',
'Lazaro',
'Leandro',
'Lee',
'Leif',
'Leigh',
'Leland',
'Lemuel',
'Len',
'Lenard',
'Lenny',
'Leo',
'Leon',
'Leonard',
'Leonardo',
'Leonel',
'Leopoldo',
'Leroy',
'Les',
'Lesley',
'Leslie',
'Lester',
'Levi',
'Lewis',
'Lincoln',
'Lindsay',
'Lindsey',
'Lino',
'Linwood',
'Lionel',
'Lloyd',
'Logan',
'Lon',
'Long',
'Lonnie',
'Lonny',
'Loren',
'Lorenzo',
'Lou',
'Louie',
'Louis',
'Lowell',
'Loyd',
'Lucas',
'Luciano',
'Lucien',
'Lucio',
'Lucius',
'Luigi',
'Luis',
'Luke',
'Lupe',
'Luther',
'Lyle',
'Lyman',
'Lyndon',
'Lynn',
'Lynwood',
'Mac',
'Mack',
'Major',
'Malcolm',
'Malcom',
'Malik',
'Man',
'Manual',
'Manuel',
'Marc',
'Marcel',
'Marcelino',
'Marcellus',
'Marcelo',
'Marco',
'Marcos',
'Marcus',
'Margarito',
'Maria',
'Mariano',
'Mario',
'Marion',
'Mark',
'Markus',
'Marlin',
'Marlon',
'Marquis',
'Marshall',
'Martin',
'Marty',
'Marvin',
'Mary',
'Mason',
'Mathew',
'Matt',
'Matthew',
'Maurice',
'Mauricio',
'Mauro',
'Max',
'Maximo',
'Maxwell',
'Maynard',
'Mckinley',
'Mel',
'Melvin',
'Merle',
'Merlin',
'Merrill',
'Mervin',
'Micah',
'Michael',
'Michal',
'Michale',
'Micheal',
'Michel',
'Mickey',
'Miguel',
'Mike',
'Mikel',
'Milan',
'Miles',
'Milford',
'Millard',
'Milo',
'Milton',
'Minh',
'Miquel',
'Mitch',
'Mitchel',
'Mitchell',
'Modesto',
'Mohamed',
'Mohammad',
'Mohammed',
'Moises',
'Monroe',
'Monte',
'Monty',
'Morgan',
'Morris',
'Morton',
'Mose',
'Moses',
'Moshe',
'Murray',
'Myles',
'Myron',
'Napoleon',
'Nathan',
'Nathanael',
'Nathanial',
'Nathaniel',
'Neal',
'Ned',
'Neil',
'Nelson',
'Nestor',
'Neville',
'Newton',
'Nicholas',
'Nick',
'Nickolas',
'Nicky',
'Nicolas',
'Nigel',
'Noah',
'Noble',
'Noe',
'Noel',
'Nolan',
'Norbert',
'Norberto',
'Norman',
'Normand',
'Norris',
'Numbers',
'Octavio',
'Odell',
'Odis',
'Olen',
'Olin',
'Oliver',
'Ollie',
'Omar',
'Omer',
'Oren',
'Orlando',
'Orval',
'Orville',
'Oscar',
'Osvaldo',
'Oswaldo',
'Otha',
'Otis',
'Otto',
'Owen',
'Pablo',
'Palmer',
'Paris',
'Parker',
'Pasquale',
'Pat',
'Patricia',
'Patrick',
'Paul',
'Pedro',
'Percy',
'Perry',
'Pete',
'Peter',
'Phil',
'Philip',
'Phillip',
'Pierre',
'Porfirio',
'Porter',
'Preston',
'Prince',
'Quentin',
'Quincy',
'Quinn',
'Quintin',
'Quinton',
'Rafael',
'Raleigh',
'Ralph',
'Ramiro',
'Ramon',
'Randal',
'Randall',
'Randell',
'Randolph',
'Randy',
'Raphael',
'Rashad',
'Raul',
'Ray',
'Rayford',
'Raymon',
'Raymond',
'Raymundo',
'Reed',
'Refugio',
'Reggie',
'Reginald',
'Reid',
'Reinaldo',
'Renaldo',
'Renato',
'Rene',
'Reuben',
'Rex',
'Rey',
'Reyes',
'Reynaldo',
'Rhett',
'Ricardo',
'Rich',
'Richard',
'Richie',
'Rick',
'Rickey',
'Rickie',
'Ricky',
'Rico',
'Rigoberto',
'Riley',
'Rob',
'Robbie',
'Robby',
'Robert',
'Roberto',
'Robin',
'Robt',
'Rocco',
'Rocky',
'Rod',
'Roderick',
'Rodger',
'Rodney',
'Rodolfo',
'Rodrick',
'Rodrigo',
'Rogelio',
'Roger',
'Roland',
'Rolando',
'Rolf',
'Rolland',
'Roman',
'Romeo',
'Ron',
'Ronald',
'Ronnie',
'Ronny',
'Roosevelt',
'Rory',
'Rosario',
'Roscoe',
'Rosendo',
'Ross',
'Roy',
'Royal',
'Royce',
'Ruben',
'Rubin',
'Rudolf',
'Rudolph',
'Rudy',
'Rueben',
'Rufus',
'Rupert',
'Russ',
'Russel',
'Russell',
'Rusty',
'Ryan',
'Sal',
'Salvador',
'Salvatore',
'Sam',
'Sammie',
'Sammy',
'Samual',
'Samuel',
'Sandy',
'Sanford',
'Sang',
'Santiago',
'Santo',
'Santos',
'Saul',
'Scot',
'Scott',
'Scottie',
'Scotty',
'Sean',
'Sebastian',
'Sergio',
'Seth',
'Seymour',
'Shad',
'Shane',
'Shannon',
'Shaun',
'Shawn',
'Shayne',
'Shelby',
'Sheldon',
'Shelton',
'Sherman',
'Sherwood',
'Shirley',
'Shon',
'Sid',
'Sidney',
'Silas',
'Simon',
'Sol',
'Solomon',
'Son',
'Sonny',
'Spencer',
'Stacey',
'Stacy',
'Stan',
'Stanford',
'Stanley',
'Stanton',
'Stefan',
'Stephan',
'Stephen',
'Sterling',
'Steve',
'Steven',
'Stevie',
'Stewart',
'Stuart',
'Sung',
'Sydney',
'Sylvester',
'Tad',
'Tanner',
'Taylor',
'Ted',
'Teddy',
'Teodoro',
'Terence',
'Terrance',
'Terrell',
'Terrence',
'Terry',
'Thad',
'Thaddeus',
'Thanh',
'Theo',
'Theodore',
'Theron',
'Thomas',
'Thurman',
'Tim',
'Timmy',
'Timothy',
'Titus',
'Tobias',
'Toby',
'Tod',
'Todd',
'Tom',
'Tomas',
'Tommie',
'Tommy',
'Toney',
'Tony',
'Tory',
'Tracey',
'Tracy',
'Travis',
'Trent',
'Trenton',
'Trevor',
'Trey',
'Trinidad',
'Tristan',
'Troy',
'Truman',
'Tuan',
'Ty',
'Tyler',
'Tyree',
'Tyrell',
'Tyron',
'Tyrone',
'Tyson',
'Ulysses',
'Val',
'Valentin',
'Valentine',
'Van',
'Vance',
'Vaughn',
'Vern',
'Vernon',
'Vicente',
'Victor',
'Vince',
'Vincent',
'Vincenzo',
'Virgil',
'Virgilio',
'Vito',
'Von',
'Wade',
'Waldo',
'Walker',
'Wallace',
'Wally',
'Walter',
'Walton',
'Ward',
'Warner',
'Warren',
'Waylon',
'Wayne',
'Weldon',
'Wendell',
'Werner',
'Wes',
'Wesley',
'Weston',
'Whitney',
'Wilber',
'Wilbert',
'Wilbur',
'Wilburn',
'Wiley',
'Wilford',
'Wilfred',
'Wilfredo',
'Will',
'Willard',
'William',
'Williams',
'Willian',
'Willie',
'Willis',
'Willy',
'Wilmer',
'Wilson',
'Wilton',
'Winford',
'Winfred',
'Winston',
'Woodrow',
'Wyatt',
'Xavier',
'Yong',
'Young',
'Zachariah',
'Zachary',
'Zachery',
'Zack',
'Zackary',
'Zane'
);
},
'randomGirl' : function() {
return either(
'Abbey',
'Abbie',
'Abby',
'Abigail',
'Ada',
'Adah',
'Adaline',
'Adam',
'Addie',
'Adela',
'Adelaida',
'Adelaide',
'Adele',
'Adelia',
'Adelina',
'Adeline',
'Adell',
'Adella',
'Adelle',
'Adena',
'Adina',
'Adria',
'Adrian',
'Adriana',
'Adriane',
'Adrianna',
'Adrianne',
'Adrien',
'Adriene',
'Adrienne',
'Afton',
'Agatha',
'Agnes',
'Agnus',
'Agripina',
'Agueda',
'Agustina',
'Ai',
'Aida',
'Aide',
'Aiko',
'Aileen',
'Ailene',
'Aimee',
'Aisha',
'Aja',
'Akiko',
'Akilah',
'Alaina',
'Alaine',
'Alana',
'Alane',
'Alanna',
'Alayna',
'Alba',
'Albert',
'Alberta',
'Albertha',
'Albertina',
'Albertine',
'Albina',
'Alda',
'Alease',
'Alecia',
'Aleen',
'Aleida',
'Aleisha',
'Alejandra',
'Alejandrina',
'Alena',
'Alene',
'Alesha',
'Aleshia',
'Alesia',
'Alessandra',
'Aleta',
'Aletha',
'Alethea',
'Alethia',
'Alex',
'Alexa',
'Alexander',
'Alexandra',
'Alexandria',
'Alexia',
'Alexis',
'Alfreda',
'Alfredia',
'Ali',
'Alia',
'Alica',
'Alice',
'Alicia',
'Alida',
'Alina',
'Aline',
'Alisa',
'Alise',
'Alisha',
'Alishia',
'Alisia',
'Alison',
'Alissa',
'Alita',
'Alix',
'Aliza',
'Alla',
'Alleen',
'Allegra',
'Allen',
'Allena',
'Allene',
'Allie',
'Alline',
'Allison',
'Allyn',
'Allyson',
'Alma',
'Almeda',
'Almeta',
'Alona',
'Alpha',
'Alta',
'Altagracia',
'Altha',
'Althea',
'Alva',
'Alvera',
'Alverta',
'Alvina',
'Alyce',
'Alycia',
'Alysa',
'Alyse',
'Alysha',
'Alysia',
'Alyson',
'Alyssa',
'Amada',
'Amal',
'Amalia',
'Amanda',
'Amber',
'Amberly',
'Amee',
'Amelia',
'America',
'Ami',
'Amie',
'Amiee',
'Amina',
'Amira',
'Ammie',
'Amparo',
'Amy',
'An',
'Ana',
'Anabel',
'Analisa',
'Anamaria',
'Anastacia',
'Anastasia',
'Andera',
'Andra',
'Andre',
'Andrea',
'Andree',
'Andrew',
'Andria',
'Anette',
'Angel',
'Angela',
'Angele',
'Angelena',
'Angeles',
'Angelia',
'Angelic',
'Angelica',
'Angelika',
'Angelina',
'Angeline',
'Angelique',
'Angelita',
'Angella',
'Angelo',
'Angelyn',
'Angie',
'Angila',
'Angla',
'Angle',
'Anglea',
'Anh',
'Anika',
'Anisa',
'Anisha',
'Anissa',
'Anita',
'Anitra',
'Anja',
'Anjanette',
'Anjelica',
'Ann',
'Anna',
'Annabel',
'Annabell',
'Annabelle',
'Annalee',
'Annalisa',
'Annamae',
'Annamaria',
'Annamarie',
'Anne',
'Anneliese',
'Annelle',
'Annemarie',
'Annett',
'Annetta',
'Annette',
'Annice',
'Annie',
'Annika',
'Annis',
'Annita',
'Annmarie',
'Anthony',
'Antionette',
'Antoinette',
'Antonetta',
'Antonette',
'Antonia',
'Antonietta',
'Antonina',
'Antonio',
'Anya',
'Apolonia',
'April',
'Apryl',
'Ara',
'Araceli',
'Aracelis',
'Aracely',
'Arcelia',
'Ardath',
'Ardelia',
'Ardell',
'Ardella',
'Ardelle',
'Ardis',
'Ardith',
'Aretha',
'Argelia',
'Argentina',
'Ariana',
'Ariane',
'Arianna',
'Arianne',
'Arica',
'Arie',
'Ariel',
'Arielle',
'Arla',
'Arlean',
'Arleen',
'Arlena',
'Arlene',
'Arletha',
'Arletta',
'Arlette',
'Arlinda',
'Arline',
'Arlyne',
'Armanda',
'Armandina',
'Armida',
'Arminda',
'Arnetta',
'Arnette',
'Arnita',
'Arthur',
'Artie',
'Arvilla',
'Asha',
'Ashanti',
'Ashely',
'Ashlea',
'Ashlee',
'Ashleigh',
'Ashley',
'Ashli',
'Ashlie',
'Ashly',
'Ashlyn',
'Ashton',
'Asia',
'Asley',
'Assunta',
'Astrid',
'Asuncion',
'Athena',
'Aubrey',
'Audie',
'Audra',
'Audrea',
'Audrey',
'Audria',
'Audrie',
'Audry',
'Augusta',
'Augustina',
'Augustine',
'Aundrea',
'Aura',
'Aurea',
'Aurelia',
'Aurora',
'Aurore',
'Austin',
'Autumn',
'Ava',
'Avelina',
'Avery',
'Avis',
'Avril',
'Awilda',
'Ayako',
'Ayana',
'Ayanna',
'Ayesha',
'Azalee',
'Azucena',
'Azzie',
'Babara',
'Babette',
'Bailey',
'Bambi',
'Bao',
'Barabara',
'Barb',
'Barbar',
'Barbara',
'Barbera',
'Barbie',
'Barbra',
'Bari',
'Barrie',
'Basilia',
'Bea',
'Beata',
'Beatrice',
'Beatris',
'Beatriz',
'Beaulah',
'Bebe',
'Becki',
'Beckie',
'Becky',
'Bee',
'Belen',
'Belia',
'Belinda',
'Belkis',
'Bell',
'Bella',
'Belle',
'Belva',
'Benita',
'Bennie',
'Berenice',
'Berna',
'Bernadette',
'Bernadine',
'Bernarda',
'Bernardina',
'Bernardine',
'Berneice',
'Bernetta',
'Bernice',
'Bernie',
'Berniece',
'Bernita',
'Berry',
'Berta',
'Bertha',
'Bertie',
'Beryl',
'Bess',
'Bessie',
'Beth',
'Bethanie',
'Bethann',
'Bethany',
'Bethel',
'Betsey',
'Betsy',
'Bette',
'Bettie',
'Bettina',
'Betty',
'Bettyann',
'Bettye',
'Beula',
'Beulah',
'Bev',
'Beverlee',
'Beverley',
'Beverly',
'Bianca',
'Bibi',
'Billi',
'Billie',
'Billy',
'Billye',
'Birdie',
'Birgit',
'Blair',
'Blake',
'Blanca',
'Blanch',
'Blanche',
'Blondell',
'Blossom',
'Blythe',
'Bobbi',
'Bobbie',
'Bobby',
'Bobbye',
'Bobette',
'Bok',
'Bong',
'Bonita',
'Bonnie',
'Bonny',
'Branda',
'Brande',
'Brandee',
'Brandi',
'Brandie',
'Brandon',
'Brandy',
'Breana',
'Breann',
'Breanna',
'Breanne',
'Bree',
'Brenda',
'Brenna',
'Brett',
'Brian',
'Briana',
'Brianna',
'Brianne',
'Bridget',
'Bridgett',
'Bridgette',
'Brigette',
'Brigid',
'Brigida',
'Brigitte',
'Brinda',
'Britany',
'Britney',
'Britni',
'Britt',
'Britta',
'Brittaney',
'Brittani',
'Brittanie',
'Brittany',
'Britteny',
'Brittney',
'Brittni',
'Brittny',
'Bronwyn',
'Brook',
'Brooke',
'Bruna',
'Brunilda',
'Bryanna',
'Brynn',
'Buena',
'Buffy',
'Bula',
'Bulah',
'Bunny',
'Burma',
'Caitlin',
'Caitlyn',
'Calandra',
'Calista',
'Callie',
'Camelia',
'Camellia',
'Cameron',
'Cami',
'Camie',
'Camila',
'Camilla',
'Camille',
'Cammie',
'Cammy',
'Candace',
'Candance',
'Candelaria',
'Candi',
'Candice',
'Candida',
'Candie',
'Candis',
'Candra',
'Candy',
'Candyce',
'Caprice',
'Cara',
'Caren',
'Carey',
'Cari',
'Caridad',
'Carie',
'Carin',
'Carina',
'Carisa',
'Carissa',
'Carita',
'Carl',
'Carla',
'Carlee',
'Carleen',
'Carlena',
'Carlene',
'Carletta',
'Carley',
'Carli',
'Carlie',
'Carline',
'Carlita',
'Carlos',
'Carlota',
'Carlotta',
'Carly',
'Carlyn',
'Carma',
'Carman',
'Carmel',
'Carmela',
'Carmelia',
'Carmelina',
'Carmelita',
'Carmella',
'Carmen',
'Carmina',
'Carmon',
'Carol',
'Carola',
'Carolann',
'Carole',
'Carolee',
'Carolin',
'Carolina',
'Caroline',
'Caroll',
'Carolyn',
'Carolyne',
'Carolynn',
'Caron',
'Caroyln',
'Carri',
'Carrie',
'Carrol',
'Carroll',
'Carry',
'Cary',
'Caryl',
'Carylon',
'Caryn',
'Casandra',
'Casey',
'Casie',
'Casimira',
'Cassandra',
'Cassaundra',
'Cassey',
'Cassi',
'Cassidy',
'Cassie',
'Cassondra',
'Cassy',
'Catalina',
'Catarina',
'Caterina',
'Catharine',
'Catherin',
'Catherina',
'Catherine',
'Cathern',
'Catheryn',
'Cathey',
'Cathi',
'Cathie',
'Cathleen',
'Cathrine',
'Cathryn',
'Cathy',
'Catina',
'Catrice',
'Catrina',
'Cayla',
'Cecelia',
'Cecil',
'Cecila',
'Cecile',
'Cecilia',
'Cecille',
'Cecily',
'Celena',
'Celesta',
'Celeste',
'Celestina',
'Celestine',
'Celia',
'Celina',
'Celinda',
'Celine',
'Celsa',
'Ceola',
'Chae',
'Chan',
'Chana',
'Chanda',
'Chandra',
'Chanel',
'Chanell',
'Chanelle',
'Chang',
'Chantal',
'Chantay',
'Chante',
'Chantel',
'Chantell',
'Chantelle',
'Chara',
'Charis',
'Charise',
'Charissa',
'Charisse',
'Charita',
'Charity',
'Charla',
'Charleen',
'Charlena',
'Charlene',
'Charles',
'Charlesetta',
'Charlette',
'Charlie',
'Charline',
'Charlott',
'Charlotte',
'Charlsie',
'Charlyn',
'Charmain',
'Charmaine',
'Charolette',
'Chasidy',
'Chasity',
'Chassidy',
'Chastity',
'Chau',
'Chaya',
'Chelsea',
'Chelsey',
'Chelsie',
'Cher',
'Chere',
'Cheree',
'Cherelle',
'Cheri',
'Cherie',
'Cherilyn',
'Cherise',
'Cherish',
'Cherly',
'Cherlyn',
'Cherri',
'Cherrie',
'Cherry',
'Cherryl',
'Chery',
'Cheryl',
'Cheryle',
'Cheryll',
'Cheyenne',
'Chi',
'Chia',
'Chieko',
'Chin',
'China',
'Ching',
'Chiquita',
'Chloe',
'Chong',
'Chris',
'Chrissy',
'Christa',
'Christal',
'Christeen',
'Christel',
'Christen',
'Christena',
'Christene',
'Christi',
'Christia',
'Christian',
'Christiana',
'Christiane',
'Christie',
'Christin',
'Christina',
'Christine',
'Christinia',
'Christopher',
'Christy',
'Chrystal',
'Chu',
'Chun',
'Chung',
'Ciara',
'Cicely',
'Ciera',
'Cierra',
'Cinda',
'Cinderella',
'Cindi',
'Cindie',
'Cindy',
'Cinthia',
'Cira',
'Clair',
'Claire',
'Clara',
'Clare',
'Clarence',
'Claretha',
'Claretta',
'Claribel',
'Clarice',
'Clarinda',
'Clarine',
'Claris',
'Clarisa',
'Clarissa',
'Clarita',
'Classie',
'Claude',
'Claudette',
'Claudia',
'Claudie',
'Claudine',
'Clelia',
'Clemencia',
'Clementina',
'Clementine',
'Clemmie',
'Cleo',
'Cleopatra',
'Cleora',
'Cleotilde',
'Cleta',
'Clora',
'Clorinda',
'Clotilde',
'Clyde',
'Codi',
'Cody',
'Colby',
'Coleen',
'Colene',
'Coletta',
'Colette',
'Colleen',
'Collen',
'Collene',
'Collette',
'Concepcion',
'Conception',
'Concetta',
'Concha',
'Conchita',
'Connie',
'Constance',
'Consuela',
'Consuelo',
'Contessa',
'Cora',
'Coral',
'Coralee',
'Coralie',
'Corazon',
'Cordelia',
'Cordia',
'Cordie',
'Coreen',
'Corene',
'Coretta',
'Corey',
'Cori',
'Corie',
'Corina',
'Corine',
'Corinna',
'Corinne',
'Corliss',
'Cornelia',
'Corrie',
'Corrin',
'Corrina',
'Corrine',
'Corrinne',
'Cortney',
'Cory',
'Courtney',
'Creola',
'Cris',
'Criselda',
'Crissy',
'Crista',
'Cristal',
'Cristen',
'Cristi',
'Cristie',
'Cristin',
'Cristina',
'Cristine',
'Cristy',
'Cruz',
'Crysta',
'Crystal',
'Crystle',
'Cuc',
'Curtis',
'Cyndi',
'Cyndy',
'Cynthia',
'Cyrstal',
'Cythia',
'Dacia',
'Dagmar',
'Dagny',
'Dahlia',
'Daina',
'Daine',
'Daisey',
'Daisy',
'Dakota',
'Dale',
'Dalene',
'Dalia',
'Dalila',
'Dallas',
'Damaris',
'Dan',
'Dana',
'Danae',
'Danelle',
'Danette',
'Dani',
'Dania',
'Danica',
'Daniel',
'Daniela',
'Daniele',
'Daniell',
'Daniella',
'Danielle',
'Danika',
'Danille',
'Danita',
'Dann',
'Danna',
'Dannette',
'Dannie',
'Dannielle',
'Danuta',
'Danyel',
'Danyell',
'Danyelle',
'Daphine',
'Daphne',
'Dara',
'Darby',
'Darcel',
'Darcey',
'Darci',
'Darcie',
'Darcy',
'Daria',
'Darla',
'Darleen',
'Darlena',
'Darlene',
'Darline',
'Darnell',
'Daryl',
'David',
'Davida',
'Davina',
'Dawn',
'Dawna',
'Dawne',
'Dayle',
'Dayna',
'Daysi',
'Deadra',
'Dean',
'Deana',
'Deandra',
'Deandrea',
'Deane',
'Deann',
'Deanna',
'Deanne',
'Deb',
'Debbi',
'Debbie',
'Debbra',
'Debby',
'Debera',
'Debi',
'Debora',
'Deborah',
'Debra',
'Debrah',
'Debroah',
'Dede',
'Dedra',
'Dee',
'Deeann',
'Deeanna',
'Deedee',
'Deedra',
'Deena',
'Deetta',
'Deidra',
'Deidre',
'Deirdre',
'Deja',
'Delaine',
'Delana',
'Delcie',
'Delena',
'Delfina',
'Delia',
'Delicia',
'Delila',
'Delilah',
'Delinda',
'Delisa',
'Dell',
'Della',
'Delma',
'Delmy',
'Delois',
'Deloise',
'Delora',
'Deloras',
'Delores',
'Deloris',
'Delorse',
'Delpha',
'Delphia',
'Delphine',
'Delsie',
'Delta',
'Demetra',
'Demetria',
'Demetrice',
'Demetrius',
'Dena',
'Denae',
'Deneen',
'Denese',
'Denice',
'Denise',
'Denisha',
'Denisse',
'Denita',
'Denna',
'Dennis',
'Dennise',
'Denny',
'Denyse',
'Deon',
'Deonna',
'Desirae',
'Desire',
'Desiree',
'Despina',
'Dessie',
'Destiny',
'Detra',
'Devin',
'Devon',
'Devona',
'Devora',
'Devorah',
'Dia',
'Diamond',
'Dian',
'Diana',
'Diane',
'Diann',
'Dianna',
'Dianne',
'Diedra',
'Diedre',
'Dierdre',
'Digna',
'Dimple',
'Dina',
'Dinah',
'Dinorah',
'Dion',
'Dione',
'Dionna',
'Dionne',
'Divina',
'Dixie',
'Dodie',
'Dollie',
'Dolly',
'Dolores',
'Doloris',
'Domenica',
'Dominga',
'Dominica',
'Dominique',
'Dominque',
'Domitila',
'Domonique',
'Dona',
'Donald',
'Donella',
'Donetta',
'Donette',
'Dong',
'Donita',
'Donna',
'Donnetta',
'Donnette',
'Donnie',
'Donya',
'Dora',
'Dorathy',
'Dorcas',
'Doreatha',
'Doreen',
'Dorene',
'Doretha',
'Dorethea',
'Doretta',
'Dori',
'Doria',
'Dorian',
'Dorie',
'Dorinda',
'Dorine',
'Doris',
'Dorla',
'Dorotha',
'Dorothea',
'Dorothy',
'Dorris',
'Dortha',
'Dorthea',
'Dorthey',
'Dorthy',
'Dot',
'Dottie',
'Dotty',
'Dovie',
'Dreama',
'Drema',
'Drew',
'Drucilla',
'Drusilla',
'Dulce',
'Dulcie',
'Dung',
'Dusti',
'Dusty',
'Dwana',
'Dyan',
'Earlean',
'Earleen',
'Earlene',
'Earlie',
'Earline',
'Earnestine',
'Eartha',
'Easter',
'Eboni',
'Ebonie',
'Ebony',
'Echo',
'Eda',
'Edda',
'Eddie',
'Edelmira',
'Eden',
'Edie',
'Edith',
'Edna',
'Edra',
'Edris',
'Edward',
'Edwina',
'Edyth',
'Edythe',
'Effie',
'Ehtel',
'Eileen',
'Eilene',
'Ela',
'Eladia',
'Elaina',
'Elaine',
'Elana',
'Elane',
'Elanor',
'Elayne',
'Elba',
'Elda',
'Eldora',
'Eleanor',
'Eleanora',
'Eleanore',
'Elease',
'Elena',
'Elene',
'Eleni',
'Elenor',
'Elenora',
'Elenore',
'Eleonor',
'Eleonora',
'Eleonore',
'Elfreda',
'Elfrieda',
'Elfriede',
'Elia',
'Eliana',
'Elicia',
'Elida',
'Elidia',
'Elin',
'Elina',
'Elinor',
'Elinore',
'Elisa',
'Elisabeth',
'Elise',
'Elisha',
'Elissa',
'Eliz',
'Eliza',
'Elizabet',
'Elizabeth',
'Elizbeth',
'Elizebeth',
'Elke',
'Ella',
'Ellamae',
'Ellan',
'Ellen',
'Ellena',
'Elli',
'Ellie',
'Ellis',
'Elly',
'Ellyn',
'Elma',
'Elmer',
'Elmira',
'Elna',
'Elnora',
'Elodia',
'Elois',
'Eloisa',
'Eloise',
'Elouise',
'Elsa',
'Else',
'Elsie',
'Elsy',
'Elva',
'Elvera',
'Elvia',
'Elvie',
'Elvina',
'Elvira',
'Elwanda',
'Elyse',
'Elza',
'Ema',
'Emelda',
'Emelia',
'Emelina',
'Emeline',
'Emely',
'Emerald',
'Emerita',
'Emiko',
'Emilee',
'Emilia',
'Emilie',
'Emily',
'Emma',
'Emmaline',
'Emmie',
'Emmy',
'Emogene',
'Ena',
'Enda',
'Enedina',
'Eneida',
'Enid',
'Enola',
'Enriqueta',
'Epifania',
'Era',
'Eric',
'Erica',
'Ericka',
'Erika',
'Erin',
'Erinn',
'Erlene',
'Erlinda',
'Erline',
'Erma',
'Ermelinda',
'Erminia',
'Erna',
'Ernestina',
'Ernestine',
'Eryn',
'Esmeralda',
'Esperanza',
'Essie',
'Esta',
'Estefana',
'Estela',
'Estell',
'Estella',
'Estelle',
'Ester',
'Esther',
'Estrella',
'Etha',
'Ethel',
'Ethelene',
'Ethelyn',
'Ethyl',
'Etsuko',
'Etta',
'Ettie',
'Eufemia',
'Eugena',
'Eugene',
'Eugenia',
'Eugenie',
'Eula',
'Eulah',
'Eulalia',
'Eun',
'Euna',
'Eunice',
'Eura',
'Eusebia',
'Eustolia',
'Eva',
'Evalyn',
'Evan',
'Evangelina',
'Evangeline',
'Eve',
'Evelia',
'Evelin',
'Evelina',
'Eveline',
'Evelyn',
'Evelyne',
'Evelynn',
'Evette',
'Evia',
'Evie',
'Evita',
'Evon',
'Evonne',
'Ewa',
'Exie',
'Fabiola',
'Fae',
'Fairy',
'Faith',
'Fallon',
'Fannie',
'Fanny',
'Farah',
'Farrah',
'Fatima',
'Fatimah',
'Faustina',
'Faviola',
'Fawn',
'Fay',
'Faye',
'Fe',
'Felecia',
'Felica',
'Felice',
'Felicia',
'Felicidad',
'Felicita',
'Felicitas',
'Felipa',
'Felisa',
'Felisha',
'Fermina',
'Fern',
'Fernanda',
'Fernande',
'Ferne',
'Fidela',
'Fidelia',
'Filomena',
'Fiona',
'Flavia',
'Fleta',
'Flo',
'Flor',
'Flora',
'Florance',
'Florence',
'Florencia',
'Florene',
'Florentina',
'Floretta',
'Floria',
'Florida',
'Florinda',
'Florine',
'Florrie',
'Flossie',
'Floy',
'Fonda',
'Fran',
'France',
'Francene',
'Frances',
'Francesca',
'Franchesca',
'Francie',
'Francina',
'Francine',
'Francis',
'Francisca',
'Francisco',
'Francoise',
'Frank',
'Frankie',
'Fransisca',
'Fred',
'Freda',
'Fredda',
'Freddie',
'Frederica',
'Fredericka',
'Fredia',
'Fredricka',
'Freeda',
'Freida',
'Frida',
'Frieda',
'Fumiko',
'Gabriel',
'Gabriela',
'Gabriele',
'Gabriella',
'Gabrielle',
'Gail',
'Gala',
'Gale',
'Galina',
'Garnet',
'Garnett',
'Gary',
'Gay',
'Gaye',
'Gayla',
'Gayle',
'Gaylene',
'Gaynell',
'Gaynelle',
'Gearldine',
'Gema',
'Gemma',
'Gena',
'Gene',
'Genesis',
'Geneva',
'Genevie',
'Genevieve',
'Genevive',
'Genia',
'Genie',
'Genna',
'Gennie',
'Genny',
'Genoveva',
'Georgann',
'George',
'Georgeann',
'Georgeanna',
'Georgene',
'Georgetta',
'Georgette',
'Georgia',
'Georgiana',
'Georgiann',
'Georgianna',
'Georgianne',
'Georgie',
'Georgina',
'Georgine',
'Gerald',
'Geraldine',
'Geralyn',
'Gerda',
'Geri',
'Germaine',
'Gerri',
'Gerry',
'Gertha',
'Gertie',
'Gertrud',
'Gertrude',
'Gertrudis',
'Gertude',
'Ghislaine',
'Gia',
'Gianna',
'Gidget',
'Gigi',
'Gilberte',
'Gilda',
'Gillian',
'Gilma',
'Gina',
'Ginette',
'Ginger',
'Ginny',
'Giovanna',
'Gisela',
'Gisele',
'Giselle',
'Gita',
'Giuseppina',
'Gladis',
'Glady',
'Gladys',
'Glayds',
'Glenda',
'Glendora',
'Glenn',
'Glenna',
'Glennie',
'Glennis',
'Glinda',
'Gloria',
'Glory',
'Glynda',
'Glynis',
'Golda',
'Golden',
'Goldie',
'Grace',
'Gracia',
'Gracie',
'Graciela',
'Grayce',
'Grazyna',
'Gregoria',
'Gregory',
'Greta',
'Gretchen',
'Gretta',
'Gricelda',
'Grisel',
'Griselda',
'Guadalupe',
'Gudrun',
'Guillermina',
'Gussie',
'Gwen',
'Gwenda',
'Gwendolyn',
'Gwenn',
'Gwyn',
'Gwyneth',
'Ha',
'Hae',
'Hailey',
'Haley',
'Halina',
'Halley',
'Hallie',
'Han',
'Hana',
'Hang',
'Hanh',
'Hanna',
'Hannah',
'Hannelore',
'Harmony',
'Harold',
'Harriet',
'Harriett',
'Harriette',
'Hassie',
'Hattie',
'Haydee',
'Hayley',
'Hazel',
'Heather',
'Hedwig',
'Hedy',
'Hee',
'Heide',
'Heidi',
'Heidy',
'Heike',
'Helaine',
'Helen',
'Helena',
'Helene',
'Helga',
'Hellen',
'Henrietta',
'Henriette',
'Henry',
'Herlinda',
'Herma',
'Hermelinda',
'Hermila',
'Hermina',
'Hermine',
'Herminia',
'Herta',
'Hertha',
'Hester',
'Hettie',
'Hiedi',
'Hien',
'Hilaria',
'Hilary',
'Hilda',
'Hilde',
'Hildegard',
'Hildegarde',
'Hildred',
'Hillary',
'Hilma',
'Hiroko',
'Hisako',
'Hoa',
'Holley',
'Holli',
'Hollie',
'Hollis',
'Holly',
'Honey',
'Hong',
'Hope',
'Hortencia',
'Hortense',
'Hortensia',
'Hsiu',
'Hue',
'Hui',
'Hulda',
'Huong',
'Hwa',
'Hyacinth',
'Hye',
'Hyo',
'Hyon',
'Hyun',
'Ida',
'Idalia',
'Idell',
'Idella',
'Iesha',
'Ignacia',
'Ila',
'Ilana',
'Ilda',
'Ileana',
'Ileen',
'Ilene',
'Iliana',
'Illa',
'Ilona',
'Ilse',
'Iluminada',
'Ima',
'Imelda',
'Imogene',
'In',
'Ina',
'India',
'Indira',
'Inell',
'Ines',
'Inez',
'Inga',
'Inge',
'Ingeborg',
'Inger',
'Ingrid',
'Inocencia',
'Iola',
'Iona',
'Ione',
'Ira',
'Iraida',
'Irena',
'Irene',
'Irina',
'Iris',
'Irish',
'Irma',
'Irmgard',
'Isa',
'Isabel',
'Isabell',
'Isabella',
'Isabelle',
'Isadora',
'Isaura',
'Isela',
'Isidra',
'Isis',
'Isobel',
'Iva',
'Ivana',
'Ivelisse',
'Ivette',
'Ivey',
'Ivonne',
'Ivory',
'Ivy',
'Izetta',
'Izola',
'Ja',
'Jacalyn',
'Jacelyn',
'Jacinda',
'Jacinta',
'Jack',
'Jackeline',
'Jackelyn',
'Jacki',
'Jackie',
'Jacklyn',
'Jackqueline',
'Jaclyn',
'Jacqualine',
'Jacque',
'Jacquelin',
'Jacqueline',
'Jacquelyn',
'Jacquelyne',
'Jacquelynn',
'Jacquetta',
'Jacqui',
'Jacquie',
'Jacquiline',
'Jacquline',
'Jacqulyn',
'Jada',
'Jade',
'Jadwiga',
'Jae',
'Jaime',
'Jaimee',
'Jaimie',
'Jaleesa',
'Jalisa',
'Jama',
'Jame',
'Jamee',
'James',
'Jamey',
'Jami',
'Jamie',
'Jamika',
'Jamila',
'Jammie',
'Jan',
'Jana',
'Janae',
'Janay',
'Jane',
'Janean',
'Janee',
'Janeen',
'Janel',
'Janell',
'Janella',
'Janelle',
'Janene',
'Janessa',
'Janet',
'Janeth',
'Janett',
'Janetta',
'Janette',
'Janey',
'Jani',
'Janice',
'Janie',
'Janiece',
'Janina',
'Janine',
'Janis',
'Janise',
'Janita',
'Jann',
'Janna',
'Jannet',
'Jannette',
'Jannie',
'January',
'Janyce',
'Jaqueline',
'Jaquelyn',
'Jasmin',
'Jasmine',
'Jason',
'Jaunita',
'Jay',
'Jaye',
'Jayme',
'Jaymie',
'Jayna',
'Jayne',
'Jazmin',
'Jazmine',
'Jean',
'Jeana',
'Jeane',
'Jeanelle',
'Jeanene',
'Jeanett',
'Jeanetta',
'Jeanette',
'Jeanice',
'Jeanie',
'Jeanine',
'Jeanmarie',
'Jeanna',
'Jeanne',
'Jeannetta',
'Jeannette',
'Jeannie',
'Jeannine',
'Jeffie',
'Jeffrey',
'Jen',
'Jena',
'Jenae',
'Jene',
'Jenee',
'Jenell',
'Jenelle',
'Jenette',
'Jeneva',
'Jeni',
'Jenice',
'Jenifer',
'Jeniffer',
'Jenine',
'Jenise',
'Jenna',
'Jennefer',
'Jennell',
'Jennette',
'Jenni',
'Jennie',
'Jennifer',
'Jenniffer',
'Jennine',
'Jenny',
'Jeraldine',
'Jeremy',
'Jeri',
'Jerica',
'Jerilyn',
'Jerlene',
'Jerri',
'Jerrica',
'Jerrie',
'Jerry',
'Jesenia',
'Jesica',
'Jesse',
'Jessenia',
'Jessi',
'Jessia',
'Jessica',
'Jessie',
'Jessika',
'Jestine',
'Jesus',
'Jesusa',
'Jesusita',
'Jetta',
'Jettie',
'Jewel',
'Jewell',
'Ji',
'Jill',
'Jillian',
'Jimmie',
'Jimmy',
'Jin',
'Jina',
'Jinny',
'Jo',
'Joan',
'Joana',
'Joane',
'Joanie',
'Joann',
'Joanna',
'Joanne',
'Joannie',
'Joaquina',
'Jocelyn',
'Jodee',
'Jodi',
'Jodie',
'Jody',
'Joe',
'Joeann',
'Joel',
'Joella',
'Joelle',
'Joellen',
'Joetta',
'Joette',
'Joey',
'Johana',
'Johanna',
'Johanne',
'John',
'Johna',
'Johnetta',
'Johnette',
'Johnie',
'Johnna',
'Johnnie',
'Johnny',
'Johnsie',
'Joi',
'Joie',
'Jolanda',
'Joleen',
'Jolene',
'Jolie',
'Joline',
'Jolyn',
'Jolynn',
'Jon',
'Jona',
'Jone',
'Jonell',
'Jonelle',
'Jong',
'Joni',
'Jonie',
'Jonna',
'Jonnie',
'Jordan',
'Jose',
'Josefa',
'Josefina',
'Josefine',
'Joselyn',
'Joseph',
'Josephina',
'Josephine',
'Josette',
'Joshua',
'Josie',
'Joslyn',
'Josphine',
'Jovan',
'Jovita',
'Joy',
'Joya',
'Joyce',
'Joycelyn',
'Joye',
'Juan',
'Juana',
'Juanita',
'Jude',
'Judi',
'Judie',
'Judith',
'Judy',
'Jule',
'Julee',
'Julene',
'Juli',
'Julia',
'Julian',
'Juliana',
'Juliane',
'Juliann',
'Julianna',
'Julianne',
'Julie',
'Julieann',
'Julienne',
'Juliet',
'Julieta',
'Julietta',
'Juliette',
'Julio',
'Julissa',
'June',
'Jung',
'Junie',
'Junita',
'Junko',
'Justa',
'Justin',
'Justina',
'Justine',
'Jutta',
'Ka',
'Kacey',
'Kaci',
'Kacie',
'Kacy',
'Kai',
'Kaila',
'Kaitlin',
'Kaitlyn',
'Kala',
'Kaleigh',
'Kaley',
'Kali',
'Kallie',
'Kalyn',
'Kam',
'Kamala',
'Kami',
'Kamilah',
'Kandace',
'Kandi',
'Kandice',
'Kandis',
'Kandra',
'Kandy',
'Kanesha',
'Kanisha',
'Kara',
'Karan',
'Kareen',
'Karen',
'Karena',
'Karey',
'Kari',
'Karie',
'Karima',
'Karin',
'Karina',
'Karine',
'Karisa',
'Karissa',
'Karl',
'Karla',
'Karleen',
'Karlene',
'Karly',
'Karlyn',
'Karma',
'Karmen',
'Karol',
'Karole',
'Karoline',
'Karolyn',
'Karon',
'Karren',
'Karri',
'Karrie',
'Karry',
'Kary',
'Karyl',
'Karyn',
'Kasandra',
'Kasey',
'Kasha',
'Kasi',
'Kasie',
'Kassandra',
'Kassie',
'Kate',
'Katelin',
'Katelyn',
'Katelynn',
'Katerine',
'Kathaleen',
'Katharina',
'Katharine',
'Katharyn',
'Kathe',
'Katheleen',
'Katherin',
'Katherina',
'Katherine',
'Kathern',
'Katheryn',
'Kathey',
'Kathi',
'Kathie',
'Kathleen',
'Kathlene',
'Kathline',
'Kathlyn',
'Kathrin',
'Kathrine',
'Kathryn',
'Kathryne',
'Kathy',
'Kathyrn',
'Kati',
'Katia',
'Katie',
'Katina',
'Katlyn',
'Katrice',
'Katrina',
'Kattie',
'Katy',
'Kay',
'Kayce',
'Kaycee',
'Kaye',
'Kayla',
'Kaylee',
'Kayleen',
'Kayleigh',
'Kaylene',
'Kazuko',
'Kecia',
'Keeley',
'Keely',
'Keena',
'Keesha',
'Keiko',
'Keila',
'Keira',
'Keisha',
'Keith',
'Keitha',
'Keli',
'Kelle',
'Kellee',
'Kelley',
'Kelli',
'Kellie',
'Kelly',
'Kellye',
'Kelsey',
'Kelsi',
'Kelsie',
'Kemberly',
'Kena',
'Kenda',
'Kendal',
'Kendall',
'Kendra',
'Kenia',
'Kenisha',
'Kenna',
'Kenneth',
'Kenya',
'Kenyatta',
'Kenyetta',
'Kera',
'Keren',
'Keri',
'Kerri',
'Kerrie',
'Kerry',
'Kerstin',
'Kesha',
'Keshia',
'Keturah',
'Keva',
'Kevin',
'Khadijah',
'Khalilah',
'Kia',
'Kiana',
'Kiara',
'Kiera',
'Kiersten',
'Kiesha',
'Kiley',
'Kim',
'Kimber',
'Kimberely',
'Kimberlee',
'Kimberley',
'Kimberli',
'Kimberlie',
'Kimberly',
'Kimbery',
'Kimbra',
'Kimi',
'Kimiko',
'Kina',
'Kindra',
'Kira',
'Kirby',
'Kirsten',
'Kirstie',
'Kirstin',
'Kisha',
'Kit',
'Kittie',
'Kitty',
'Kiyoko',
'Kizzie',
'Kizzy',
'Klara',
'Kori',
'Kortney',
'Kourtney',
'Kris',
'Krishna',
'Krissy',
'Krista',
'Kristal',
'Kristan',
'Kristeen',
'Kristel',
'Kristen',
'Kristi',
'Kristian',
'Kristie',
'Kristin',
'Kristina',
'Kristine',
'Kristle',
'Kristy',
'Kristyn',
'Krysta',
'Krystal',
'Krysten',
'Krystin',
'Krystina',
'Krystle',
'Krystyna',
'Kum',
'Kyla',
'Kyle',
'Kylee',
'Kylie',
'Kym',
'Kymberly',
'Kyoko',
'Kyong',
'Kyra',
'Kyung',
'Lacey',
'Lachelle',
'Laci',
'Lacie',
'Lacresha',
'Lacy',
'Ladawn',
'Ladonna',
'Lady',
'Lael',
'Lahoma',
'Lai',
'Laila',
'Laine',
'Lajuana',
'Lakeesha',
'Lakeisha',
'Lakendra',
'Lakenya',
'Lakesha',
'Lakeshia',
'Lakia',
'Lakiesha',
'Lakisha',
'Lakita',
'Lala',
'Lamonica',
'Lan',
'Lana',
'Lane',
'Lanell',
'Lanelle',
'Lanette',
'Lang',
'Lani',
'Lanie',
'Lanita',
'Lannie',
'Lanora',
'Laquanda',
'Laquita',
'Lara',
'Larae',
'Laraine',
'Laree',
'Larhonda',
'Larisa',
'Larissa',
'Larita',
'Laronda',
'Larraine',
'Larry',
'Larue',
'Lasandra',
'Lashanda',
'Lashandra',
'Lashaun',
'Lashaunda',
'Lashawn',
'Lashawna',
'Lashawnda',
'Lashay',
'Lashell',
'Lashon',
'Lashonda',
'Lashunda',
'Lasonya',
'Latanya',
'Latarsha',
'Latasha',
'Latashia',
'Latesha',
'Latia',
'Laticia',
'Latina',
'Latisha',
'Latonia',
'Latonya',
'Latoria',
'Latosha',
'Latoya',
'Latoyia',
'Latrice',
'Latricia',
'Latrina',
'Latrisha',
'Launa',
'Laura',
'Lauralee',
'Lauran',
'Laure',
'Laureen',
'Laurel',
'Lauren',
'Laurena',
'Laurence',
'Laurene',
'Lauretta',
'Laurette',
'Lauri',
'Laurice',
'Laurie',
'Laurinda',
'Laurine',
'Lauryn',
'Lavada',
'Lavelle',
'Lavenia',
'Lavera',
'Lavern',
'Laverna',
'Laverne',
'Laveta',
'Lavette',
'Lavina',
'Lavinia',
'Lavon',
'Lavona',
'Lavonda',
'Lavone',
'Lavonia',
'Lavonna',
'Lavonne',
'Lawana',
'Lawanda',
'Lawanna',
'Lawrence',
'Layla',
'Layne',
'Le',
'Lea',
'Leah',
'Lean',
'Leana',
'Leandra',
'Leann',
'Leanna',
'Leanne',
'Leanora',
'Leatha',
'Leatrice',
'Lecia',
'Leda',
'Lee',
'Leeann',
'Leeanna',
'Leeanne',
'Leena',
'Leesa',
'Leia',
'Leida',
'Leigh',
'Leigha',
'Leighann',
'Leila',
'Leilani',
'Leisa',
'Leisha',
'Lekisha',
'Lela',
'Lelah',
'Lelia',
'Lena',
'Lenita',
'Lenna',
'Lennie',
'Lenora',
'Lenore',
'Leo',
'Leola',
'Leoma',
'Leon',
'Leona',
'Leonarda',
'Leone',
'Leonia',
'Leonida',
'Leonie',
'Leonila',
'Leonor',
'Leonora',
'Leonore',
'Leontine',
'Leora',
'Leota',
'Lera',
'Lesa',
'Lesha',
'Lesia',
'Leslee',
'Lesley',
'Lesli',
'Leslie',
'Lessie',
'Lester',
'Leta',
'Letha',
'Leticia',
'Letisha',
'Letitia',
'Lettie',
'Letty',
'Lewis',
'Lexie',
'Lezlie',
'Li',
'Lia',
'Liana',
'Liane',
'Lianne',
'Libbie',
'Libby',
'Liberty',
'Librada',
'Lida',
'Lidia',
'Lien',
'Lieselotte',
'Ligia',
'Lila',
'Lili',
'Lilia',
'Lilian',
'Liliana',
'Lilla',
'Lilli',
'Lillia',
'Lilliam',
'Lillian',
'Lilliana',
'Lillie',
'Lilly',
'Lily',
'Lin',
'Lina',
'Linda',
'Lindsay',
'Lindsey',
'Lindsy',
'Lindy',
'Linette',
'Ling',
'Linh',
'Linn',
'Linnea',
'Linnie',
'Linsey',
'Lisa',
'Lisabeth',
'Lisandra',
'Lisbeth',
'Lise',
'Lisette',
'Lisha',
'Lissa',
'Lissette',
'Lita',
'Livia',
'Liz',
'Liza',
'Lizabeth',
'Lizbeth',
'Lizeth',
'Lizette',
'Lizzette',
'Lizzie',
'Loan',
'Logan',
'Loida',
'Lois',
'Loise',
'Lola',
'Lolita',
'Loma',
'Lona',
'Londa',
'Loni',
'Lonna',
'Lonnie',
'Lora',
'Loraine',
'Loralee',
'Lore',
'Lorean',
'Loree',
'Loreen',
'Lorelei',
'Loren',
'Lorena',
'Lorene',
'Lorenza',
'Loreta',
'Loretta',
'Lorette',
'Lori',
'Loria',
'Loriann',
'Lorie',
'Lorilee',
'Lorina',
'Lorinda',
'Lorine',
'Loris',
'Lorita',
'Lorna',
'Lorraine',
'Lorretta',
'Lorri',
'Lorriane',
'Lorrie',
'Lorrine',
'Lory',
'Lottie',
'Lou',
'Louann',
'Louanne',
'Louella',
'Louetta',
'Louie',
'Louis',
'Louisa',
'Louise',
'Loura',
'Lourdes',
'Lourie',
'Louvenia',
'Love',
'Lovella',
'Lovetta',
'Lovie',
'Loyce',
'Lu',
'Luana',
'Luann',
'Luanna',
'Luanne',
'Luba',
'Luci',
'Lucia',
'Luciana',
'Lucie',
'Lucienne',
'Lucila',
'Lucile',
'Lucilla',
'Lucille',
'Lucina',
'Lucinda',
'Lucrecia',
'Lucretia',
'Lucy',
'Ludie',
'Ludivina',
'Lue',
'Luella',
'Luetta',
'Luis',
'Luisa',
'Luise',
'Lula',
'Lulu',
'Luna',
'Lupe',
'Lupita',
'Lura',
'Lurlene',
'Lurline',
'Luvenia',
'Luz',
'Lyda',
'Lydia',
'Lyla',
'Lyn',
'Lynda',
'Lyndia',
'Lyndsay',
'Lyndsey',
'Lynell',
'Lynelle',
'Lynetta',
'Lynette',
'Lynn',
'Lynna',
'Lynne',
'Lynnette',
'Lynsey',
'Ma',
'Mabel',
'Mabelle',
'Mable',
'Machelle',
'Macie',
'Mackenzie',
'Macy',
'Madalene',
'Madaline',
'Madalyn',
'Maddie',
'Madelaine',
'Madeleine',
'Madelene',
'Madeline',
'Madelyn',
'Madge',
'Madie',
'Madison',
'Madlyn',
'Madonna',
'Mae',
'Maegan',
'Mafalda',
'Magali',
'Magaly',
'Magan',
'Magaret',
'Magda',
'Magdalen',
'Magdalena',
'Magdalene',
'Magen',
'Maggie',
'Magnolia',
'Mahalia',
'Mai',
'Maia',
'Maida',
'Maile',
'Maira',
'Maire',
'Maisha',
'Maisie',
'Majorie',
'Makeda',
'Malena',
'Malia',
'Malika',
'Malinda',
'Malisa',
'Malissa',
'Malka',
'Mallie',
'Mallory',
'Malorie',
'Malvina',
'Mamie',
'Mammie',
'Man',
'Mana',
'Manda',
'Mandi',
'Mandie',
'Mandy',
'Manie',
'Manuela',
'Many',
'Mao',
'Maple',
'Mara',
'Maragaret',
'Maragret',
'Maranda',
'Marcela',
'Marcelene',
'Marcelina',
'Marceline',
'Marcell',
'Marcella',
'Marcelle',
'Marcene',
'Marchelle',
'Marci',
'Marcia',
'Marcie',
'Marcy',
'Mardell',
'Maren',
'Marg',
'Margaret',
'Margareta',
'Margarete',
'Margarett',
'Margaretta',
'Margarette',
'Margarita',
'Margarite',
'Margart',
'Marge',
'Margene',
'Margeret',
'Margert',
'Margery',
'Marget',
'Margherita',
'Margie',
'Margit',
'Margo',
'Margorie',
'Margot',
'Margret',
'Margrett',
'Marguerita',
'Marguerite',
'Margurite',
'Margy',
'Marhta',
'Mari',
'Maria',
'Mariah',
'Mariam',
'Marian',
'Mariana',
'Marianela',
'Mariann',
'Marianna',
'Marianne',
'Maribel',
'Maribeth',
'Marica',
'Maricela',
'Maricruz',
'Marie',
'Mariel',
'Mariela',
'Mariella',
'Marielle',
'Marietta',
'Mariette',
'Mariko',
'Marilee',
'Marilou',
'Marilu',
'Marilyn',
'Marilynn',
'Marin',
'Marina',
'Marinda',
'Marine',
'Mario',
'Marion',
'Maris',
'Marisa',
'Marisela',
'Marisha',
'Marisol',
'Marissa',
'Marita',
'Maritza',
'Marivel',
'Marjorie',
'Marjory',
'Mark',
'Marketta',
'Markita',
'Marla',
'Marlana',
'Marleen',
'Marlen',
'Marlena',
'Marlene',
'Marlin',
'Marline',
'Marlo',
'Marlyn',
'Marlys',
'Marna',
'Marni',
'Marnie',
'Marquerite',
'Marquetta',
'Marquita',
'Marquitta',
'Marry',
'Marsha',
'Marshall',
'Marta',
'Marth',
'Martha',
'Marti',
'Martin',
'Martina',
'Martine',
'Marty',
'Marva',
'Marvel',
'Marvella',
'Marvis',
'Marx',
'Mary',
'Marya',
'Maryalice',
'Maryam',
'Maryann',
'Maryanna',
'Maryanne',
'Marybelle',
'Marybeth',
'Maryellen',
'Maryetta',
'Maryjane',
'Maryjo',
'Maryland',
'Marylee',
'Marylin',
'Maryln',
'Marylou',
'Marylouise',
'Marylyn',
'Marylynn',
'Maryrose',
'Masako',
'Matha',
'Mathilda',
'Mathilde',
'Matilda',
'Matilde',
'Matthew',
'Mattie',
'Maud',
'Maude',
'Maudie',
'Maura',
'Maureen',
'Maurice',
'Maurine',
'Maurita',
'Mavis',
'Maxie',
'Maxima',
'Maximina',
'Maxine',
'May',
'Maya',
'Maybell',
'Maybelle',
'Maye',
'Mayme',
'Mayola',
'Mayra',
'Mazie',
'Mckenzie',
'Meagan',
'Meaghan',
'Mechelle',
'Meda',
'Mee',
'Meg',
'Megan',
'Meggan',
'Meghan',
'Meghann',
'Mei',
'Melaine',
'Melani',
'Melania',
'Melanie',
'Melany',
'Melba',
'Melda',
'Melia',
'Melida',
'Melina',
'Melinda',
'Melisa',
'Melissa',
'Melissia',
'Melita',
'Mellie',
'Mellisa',
'Mellissa',
'Melodee',
'Melodi',
'Melodie',
'Melody',
'Melonie',
'Melony',
'Melva',
'Melvin',
'Melvina',
'Melynda',
'Mendy',
'Mercedes',
'Mercedez',
'Mercy',
'Meredith',
'Meri',
'Merideth',
'Meridith',
'Merilyn',
'Merissa',
'Merle',
'Merlene',
'Merlyn',
'Merna',
'Merri',
'Merrie',
'Merrilee',
'Merrill',
'Merry',
'Mertie',
'Meryl',
'Meta',
'Mi',
'Mia',
'Mica',
'Micaela',
'Micah',
'Micha',
'Michael',
'Michaela',
'Michaele',
'Michal',
'Micheal',
'Michel',
'Michele',
'Michelina',
'Micheline',
'Michell',
'Michelle',
'Michiko',
'Mickey',
'Micki',
'Mickie',
'Miesha',
'Migdalia',
'Mignon',
'Miguelina',
'Mika',
'Mikaela',
'Mike',
'Miki',
'Mikki',
'Mila',
'Milagro',
'Milagros',
'Milda',
'Mildred',
'Milissa',
'Millicent',
'Millie',
'Milly',
'Mimi',
'Min',
'Mina',
'Minda',
'Mindi',
'Mindy',
'Minerva',
'Ming',
'Minh',
'Minna',
'Minnie',
'Minta',
'Mira',
'Miranda',
'Mireille',
'Mirella',
'Mireya',
'Miriam',
'Mirian',
'Mirna',
'Mirta',
'Mirtha',
'Misha',
'Miss',
'Missy',
'Misti',
'Mistie',
'Misty',
'Mitchell',
'Mitsue',
'Mitsuko',
'Mittie',
'Mitzi',
'Mitzie',
'Miyoko',
'Modesta',
'Moira',
'Mollie',
'Molly',
'Mona',
'Monet',
'Monica',
'Monika',
'Monique',
'Monnie',
'Monserrate',
'Moon',
'Mora',
'Morgan',
'Moriah',
'Mozell',
'Mozella',
'Mozelle',
'Mui',
'Muoi',
'Muriel',
'My',
'Myesha',
'Myong',
'Myra',
'Myriam',
'Myrl',
'Myrle',
'Myrna',
'Myrta',
'Myrtice',
'Myrtie',
'Myrtis',
'Myrtle',
'Myung',
'Na',
'Nada',
'Nadene',
'Nadia',
'Nadine',
'Naida',
'Nakesha',
'Nakia',
'Nakisha',
'Nakita',
'Nam',
'Nan',
'Nana',
'Nancee',
'Nancey',
'Nanci',
'Nancie',
'Nancy',
'Nanette',
'Nannette',
'Nannie',
'Naoma',
'Naomi',
'Narcisa',
'Natacha',
'Natalia',
'Natalie',
'Natalya',
'Natasha',
'Natashia',
'Nathalie',
'Natisha',
'Natividad',
'Natosha',
'Necole',
'Neda',
'Nedra',
'Neely',
'Neida',
'Nelda',
'Nelia',
'Nelida',
'Nell',
'Nella',
'Nelle',
'Nellie',
'Nelly',
'Nena',
'Nenita',
'Neoma',
'Neomi',
'Nereida',
'Nerissa',
'Nery',
'Neta',
'Nettie',
'Neva',
'Nevada',
'Nga',
'Ngan',
'Ngoc',
'Nguyet',
'Nia',
'Nichelle',
'Nichol',
'Nichole',
'Nicholle',
'Nicki',
'Nickie',
'Nickole',
'Nicky',
'Nicol',
'Nicola',
'Nicolasa',
'Nicole',
'Nicolette',
'Nicolle',
'Nida',
'Nidia',
'Niesha',
'Nieves',
'Niki',
'Nikia',
'Nikita',
'Nikki',
'Nikole',
'Nila',
'Nilda',
'Nilsa',
'Nina',
'Ninfa',
'Nisha',
'Nita',
'Nobuko',
'Noel',
'Noelia',
'Noella',
'Noelle',
'Noemi',
'Nohemi',
'Nola',
'Noma',
'Nona',
'Nora',
'Norah',
'Noreen',
'Norene',
'Noriko',
'Norine',
'Norma',
'Norman',
'Nova',
'Novella',
'Nu',
'Nubia',
'Numbers',
'Nydia',
'Nyla',
'Obdulia',
'Ocie',
'Octavia',
'Oda',
'Odelia',
'Odell',
'Odessa',
'Odette',
'Odilia',
'Ofelia',
'Ok',
'Ola',
'Olene',
'Oleta',
'Olevia',
'Olga',
'Olimpia',
'Olinda',
'Oliva',
'Olive',
'Olivia',
'Ollie',
'Olympia',
'Oma',
'Omega',
'Ona',
'Oneida',
'Onie',
'Onita',
'Opal',
'Ophelia',
'Ora',
'Oralee',
'Oralia',
'Oretha',
'Orpha',
'Oscar',
'Ossie',
'Otelia',
'Otha',
'Otilia',
'Ouida',
'Ozell',
'Ozella',
'Ozie',
'Pa',
'Page',
'Paige',
'Palma',
'Palmira',
'Pam',
'Pamala',
'Pamela',
'Pamelia',
'Pamella',
'Pamila',
'Pamula',
'Pandora',
'Pansy',
'Paola',
'Paris',
'Parthenia',
'Particia',
'Pasty',
'Pat',
'Patience',
'Patria',
'Patrica',
'Patrice',
'Patricia',
'Patrick',
'Patrina',
'Patsy',
'Patti',
'Pattie',
'Patty',
'Paul',
'Paula',
'Paulene',
'Pauletta',
'Paulette',
'Paulina',
'Pauline',
'Paulita',
'Paz',
'Pearl',
'Pearle',
'Pearlene',
'Pearlie',
'Pearline',
'Pearly',
'Peg',
'Peggie',
'Peggy',
'Pei',
'Penelope',
'Penney',
'Penni',
'Pennie',
'Penny',
'Perla',
'Perry',
'Peter',
'Petra',
'Petrina',
'Petronila',
'Phebe',
'Phillis',
'Philomena',
'Phoebe',
'Phung',
'Phuong',
'Phylicia',
'Phylis',
'Phyliss',
'Phyllis',
'Pia',
'Piedad',
'Pilar',
'Ping',
'Pinkie',
'Piper',
'Pok',
'Polly',
'Porsche',
'Porsha',
'Portia',
'Precious',
'Pricilla',
'Princess',
'Priscila',
'Priscilla',
'Providencia',
'Prudence',
'Pura',
'Qiana',
'Queen',
'Queenie',
'Quiana',
'Quinn',
'Quyen',
'Rachael',
'Rachal',
'Racheal',
'Rachel',
'Rachele',
'Rachell',
'Rachelle',
'Racquel',
'Rae',
'Raeann',
'Raelene',
'Rafaela',
'Raguel',
'Raina',
'Raisa',
'Ramona',
'Ramonita',
'Rana',
'Ranae',
'Randa',
'Randee',
'Randi',
'Randy',
'Ranee',
'Raquel',
'Rasheeda',
'Rashida',
'Raven',
'Ray',
'Raye',
'Raylene',
'Raymond',
'Raymonde',
'Rayna',
'Rea',
'Reagan',
'Reanna',
'Reatha',
'Reba',
'Rebbeca',
'Rebbecca',
'Rebeca',
'Rebecca',
'Rebecka',
'Rebekah',
'Reda',
'Reena',
'Refugia',
'Refugio',
'Regan',
'Regena',
'Regenia',
'Regina',
'Regine',
'Reginia',
'Reiko',
'Reina',
'Reita',
'Rema',
'Remedios',
'Remona',
'Rena',
'Renae',
'Renata',
'Renate',
'Renay',
'Renda',
'Rene',
'Renea',
'Renee',
'Renetta',
'Renita',
'Renna',
'Ressie',
'Reta',
'Retha',
'Retta',
'Reva',
'Reyna',
'Reynalda',
'Rhea',
'Rheba',
'Rhiannon',
'Rhoda',
'Rhona',
'Rhonda',
'Ria',
'Ricarda',
'Richard',
'Richelle',
'Ricki',
'Rickie',
'Rikki',
'Rima',
'Rina',
'Risa',
'Rita',
'Riva',
'Rivka',
'Robbi',
'Robbie',
'Robbin',
'Robbyn',
'Robena',
'Robert',
'Roberta',
'Roberto',
'Robin',
'Robyn',
'Rochel',
'Rochell',
'Rochelle',
'Rocio',
'Rolanda',
'Rolande',
'Roma',
'Romaine',
'Romana',
'Romelia',
'Romona',
'Rona',
'Ronald',
'Ronda',
'Roni',
'Ronna',
'Ronni',
'Ronnie',
'Rory',
'Rosa',
'Rosalba',
'Rosalee',
'Rosalia',
'Rosalie',
'Rosalina',
'Rosalind',
'Rosalinda',
'Rosaline',
'Rosalva',
'Rosalyn',
'Rosamaria',
'Rosamond',
'Rosana',
'Rosann',
'Rosanna',
'Rosanne',
'Rosaria',
'Rosario',
'Rosaura',
'Rose',
'Roseann',
'Roseanna',
'Roseanne',
'Roselee',
'Roselia',
'Roseline',
'Rosella',
'Roselle',
'Roselyn',
'Rosemarie',
'Rosemary',
'Rosena',
'Rosenda',
'Rosetta',
'Rosette',
'Rosia',
'Rosie',
'Rosina',
'Rosio',
'Rosita',
'Roslyn',
'Rossana',
'Rossie',
'Rosy',
'Rowena',
'Roxana',
'Roxane',
'Roxann',
'Roxanna',
'Roxanne',
'Roxie',
'Roxy',
'Roy',
'Royce',
'Rozanne',
'Rozella',
'Rubi',
'Rubie',
'Ruby',
'Rubye',
'Rudy',
'Rufina',
'Russell',
'Ruth',
'Rutha',
'Ruthann',
'Ruthanne',
'Ruthe',
'Ruthie',
'Ryan',
'Ryann',
'Sabina',
'Sabine',
'Sabra',
'Sabrina',
'Sacha',
'Sachiko',
'Sade',
'Sadie',
'Sadye',
'Sage',
'Salena',
'Salina',
'Salley',
'Sallie',
'Sally',
'Salome',
'Sam',
'Samantha',
'Samara',
'Samatha',
'Samella',
'Samira',
'Sammie',
'Sammy',
'Samuel',
'Sana',
'Sanda',
'Sandee',
'Sandi',
'Sandie',
'Sandra',
'Sandy',
'Sang',
'Sanjuana',
'Sanjuanita',
'Sanora',
'Santa',
'Santana',
'Santina',
'Santos',
'Sara',
'Sarah',
'Sarai',
'Saran',
'Sari',
'Sarina',
'Sarita',
'Sasha',
'Saturnina',
'Sau',
'Saundra',
'Savanna',
'Savannah',
'Scarlet',
'Scarlett',
'Scott',
'Scottie',
'Sean',
'Season',
'Sebrina',
'See',
'Seema',
'Selena',
'Selene',
'Selina',
'Selma',
'Sena',
'Senaida',
'September',
'Serafina',
'Serena',
'Serina',
'Serita',
'Setsuko',
'Sha',
'Shae',
'Shaina',
'Shakia',
'Shakira',
'Shakita',
'Shala',
'Shalanda',
'Shalon',
'Shalonda',
'Shameka',
'Shamika',
'Shan',
'Shana',
'Shanae',
'Shanda',
'Shandi',
'Shandra',
'Shane',
'Shaneka',
'Shanel',
'Shanell',
'Shanelle',
'Shani',
'Shanice',
'Shanika',
'Shaniqua',
'Shanita',
'Shanna',
'Shannan',
'Shannon',
'Shanon',
'Shanta',
'Shantae',
'Shantay',
'Shante',
'Shantel',
'Shantell',
'Shantelle',
'Shanti',
'Shaquana',
'Shaquita',
'Shara',
'Sharan',
'Sharda',
'Sharee',
'Sharell',
'Sharen',
'Shari',
'Sharice',
'Sharie',
'Sharika',
'Sharilyn',
'Sharita',
'Sharla',
'Sharleen',
'Sharlene',
'Sharmaine',
'Sharolyn',
'Sharon',
'Sharonda',
'Sharri',
'Sharron',
'Sharyl',
'Sharyn',
'Shasta',
'Shaun',
'Shauna',
'Shaunda',
'Shaunna',
'Shaunta',
'Shaunte',
'Shavon',
'Shavonda',
'Shavonne',
'Shawana',
'Shawanda',
'Shawanna',
'Shawn',
'Shawna',
'Shawnda',
'Shawnee',
'Shawnna',
'Shawnta',
'Shay',
'Shayla',
'Shayna',
'Shayne',
'Shea',
'Sheba',
'Sheena',
'Sheila',
'Sheilah',
'Shela',
'Shelba',
'Shelby',
'Shelia',
'Shella',
'Shelley',
'Shelli',
'Shellie',
'Shelly',
'Shemeka',
'Shemika',
'Shena',
'Shenika',
'Shenita',
'Shenna',
'Shera',
'Sheree',
'Sherell',
'Sheri',
'Sherice',
'Sheridan',
'Sherie',
'Sherika',
'Sherill',
'Sherilyn',
'Sherise',
'Sherita',
'Sherlene',
'Sherley',
'Sherly',
'Sherlyn',
'Sheron',
'Sherrell',
'Sherri',
'Sherrie',
'Sherril',
'Sherrill',
'Sherron',
'Sherry',
'Sherryl',
'Shery',
'Sheryl',
'Sheryll',
'Shiela',
'Shila',
'Shiloh',
'Shin',
'Shira',
'Shirely',
'Shirl',
'Shirlee',
'Shirleen',
'Shirlene',
'Shirley',
'Shirly',
'Shizue',
'Shizuko',
'Shona',
'Shonda',
'Shondra',
'Shonna',
'Shonta',
'Shoshana',
'Shu',
'Shyla',
'Sibyl',
'Sidney',
'Sierra',
'Signe',
'Sigrid',
'Silva',
'Silvana',
'Silvia',
'Sima',
'Simona',
'Simone',
'Simonne',
'Sina',
'Sindy',
'Siobhan',
'Sirena',
'Siu',
'Sixta',
'Skye',
'Slyvia',
'So',
'Socorro',
'Sofia',
'Soila',
'Sol',
'Solange',
'Soledad',
'Somer',
'Sommer',
'Son',
'Sona',
'Sondra',
'Song',
'Sonia',
'Sonja',
'Sonya',
'Soo',
'Sook',
'Soon',
'Sophia',
'Sophie',
'Soraya',
'Sparkle',
'Spring',
'Stacee',
'Stacey',
'Staci',
'Stacia',
'Stacie',
'Stacy',
'Star',
'Starla',
'Starr',
'Stasia',
'Stefani',
'Stefania',
'Stefanie',
'Stefany',
'Steffanie',
'Stella',
'Stepanie',
'Stephaine',
'Stephane',
'Stephani',
'Stephania',
'Stephanie',
'Stephany',
'Stephen',
'Stephenie',
'Stephine',
'Stephnie',
'Steven',
'Stevie',
'Stormy',
'Su',
'Suanne',
'Sudie',
'Sue',
'Sueann',
'Suellen',
'Suk',
'Sulema',
'Sumiko',
'Summer',
'Sun',
'Sunday',
'Sung',
'Sunni',
'Sunny',
'Sunshine',
'Susan',
'Susana',
'Susann',
'Susanna',
'Susannah',
'Susanne',
'Susie',
'Susy',
'Suzan',
'Suzann',
'Suzanna',
'Suzanne',
'Suzette',
'Suzi',
'Suzie',
'Suzy',
'Svetlana',
'Sybil',
'Syble',
'Sydney',
'Sylvia',
'Sylvie',
'Synthia',
'Syreeta',
'Ta',
'Tabatha',
'Tabetha',
'Tabitha',
'Tai',
'Taina',
'Taisha',
'Tajuana',
'Takako',
'Takisha',
'Talia',
'Talisha',
'Talitha',
'Tam',
'Tama',
'Tamala',
'Tamar',
'Tamara',
'Tamatha',
'Tambra',
'Tameika',
'Tameka',
'Tamekia',
'Tamela',
'Tamera',
'Tamesha',
'Tami',
'Tamica',
'Tamie',
'Tamika',
'Tamiko',
'Tamisha',
'Tammara',
'Tammera',
'Tammi',
'Tammie',
'Tammy',
'Tamra',
'Tana',
'Tandra',
'Tandy',
'Taneka',
'Tanesha',
'Tangela',
'Tania',
'Tanika',
'Tanisha',
'Tanja',
'Tanna',
'Tanya',
'Tara',
'Tarah',
'Taren',
'Tari',
'Tarra',
'Tarsha',
'Taryn',
'Tasha',
'Tashia',
'Tashina',
'Tasia',
'Tatiana',
'Tatum',
'Tatyana',
'Taunya',
'Tawana',
'Tawanda',
'Tawanna',
'Tawna',
'Tawny',
'Tawnya',
'Taylor',
'Tayna',
'Teena',
'Tegan',
'Teisha',
'Telma',
'Temeka',
'Temika',
'Tempie',
'Temple',
'Tena',
'Tenesha',
'Tenisha',
'Tennie',
'Tennille',
'Teodora',
'Teofila',
'Tequila',
'Tera',
'Tereasa',
'Teresa',
'Terese',
'Teresia',
'Teresita',
'Teressa',
'Teri',
'Terica',
'Terina',
'Terisa',
'Terra',
'Terrell',
'Terresa',
'Terri',
'Terrie',
'Terrilyn',
'Terry',
'Tesha',
'Tess',
'Tessa',
'Tessie',
'Thalia',
'Thanh',
'Thao',
'Thea',
'Theda',
'Thelma',
'Theo',
'Theodora',
'Theola',
'Theresa',
'Therese',
'Theresia',
'Theressa',
'Thersa',
'Thi',
'Thomas',
'Thomasena',
'Thomasina',
'Thomasine',
'Thora',
'Thresa',
'Thu',
'Thuy',
'Tia',
'Tiana',
'Tianna',
'Tiara',
'Tien',
'Tiera',
'Tierra',
'Tiesha',
'Tifany',
'Tiffaney',
'Tiffani',
'Tiffanie',
'Tiffany',
'Tiffiny',
'Tijuana',
'Tilda',
'Tillie',
'Timika',
'Timothy',
'Tina',
'Tinisha',
'Tiny',
'Tisa',
'Tish',
'Tisha',
'Tobi',
'Tobie',
'Toby',
'Toccara',
'Toi',
'Tomasa',
'Tomeka',
'Tomi',
'Tomika',
'Tomiko',
'Tommie',
'Tommy',
'Tommye',
'Tomoko',
'Tona',
'Tonda',
'Tonette',
'Toni',
'Tonia',
'Tonie',
'Tonisha',
'Tonita',
'Tonja',
'Tony',
'Tonya',
'Tora',
'Tori',
'Torie',
'Torri',
'Torrie',
'Tory',
'Tosha',
'Toshia',
'Toshiko',
'Tova',
'Towanda',
'Toya',
'Tracee',
'Tracey',
'Traci',
'Tracie',
'Tracy',
'Tran',
'Trang',
'Travis',
'Treasa',
'Treena',
'Trena',
'Tresa',
'Tressa',
'Tressie',
'Treva',
'Tricia',
'Trina',
'Trinh',
'Trinidad',
'Trinity',
'Trish',
'Trisha',
'Trista',
'Tristan',
'Troy',
'Trudi',
'Trudie',
'Trudy',
'Trula',
'Tu',
'Tula',
'Tuyet',
'Twana',
'Twanda',
'Twanna',
'Twila',
'Twyla',
'Tyesha',
'Tyisha',
'Tyler',
'Tynisha',
'Tyra',
'Ula',
'Ulrike',
'Un',
'Una',
'Ursula',
'Usha',
'Ute',
'Vada',
'Val',
'Valarie',
'Valda',
'Valencia',
'Valene',
'Valentina',
'Valentine',
'Valeri',
'Valeria',
'Valerie',
'Valery',
'Vallie',
'Valorie',
'Valrie',
'Van',
'Vanda',
'Vanesa',
'Vanessa',
'Vanetta',
'Vania',
'Vanita',
'Vanna',
'Vannesa',
'Vannessa',
'Vashti',
'Vasiliki',
'Veda',
'Velda',
'Velia',
'Vella',
'Velma',
'Velva',
'Velvet',
'Vena',
'Venessa',
'Venetta',
'Venice',
'Venita',
'Vennie',
'Venus',
'Veola',
'Vera',
'Verda',
'Verdell',
'Verdie',
'Verena',
'Vergie',
'Verla',
'Verlene',
'Verlie',
'Verline',
'Verna',
'Vernell',
'Vernetta',
'Vernia',
'Vernice',
'Vernie',
'Vernita',
'Vernon',
'Verona',
'Veronica',
'Veronika',
'Veronique',
'Versie',
'Vertie',
'Vesta',
'Veta',
'Vi',
'Vicenta',
'Vickey',
'Vicki',
'Vickie',
'Vicky',
'Victor',
'Victoria',
'Victorina',
'Vida',
'Viki',
'Vikki',
'Vilma',
'Vina',
'Vincenza',
'Vinita',
'Vinnie',
'Viola',
'Violet',
'Violeta',
'Violette',
'Virgen',
'Virgie',
'Virgil',
'Virgina',
'Virginia',
'Vita',
'Viva',
'Vivan',
'Vivian',
'Viviana',
'Vivien',
'Vivienne',
'Voncile',
'Vonda',
'Vonnie',
'Wai',
'Walter',
'Waltraud',
'Wan',
'Wanda',
'Waneta',
'Wanetta',
'Wanita',
'Wava',
'Wei',
'Wen',
'Wendi',
'Wendie',
'Wendolyn',
'Wendy',
'Wenona',
'Wesley',
'Whitley',
'Whitney',
'Wilda',
'Wilhelmina',
'Wilhemina',
'Willa',
'Willena',
'Willene',
'Willetta',
'Willette',
'Willia',
'William',
'Willie',
'Williemae',
'Willodean',
'Willow',
'Wilma',
'Windy',
'Winifred',
'Winnie',
'Winnifred',
'Winona',
'Winter',
'Wonda',
'Wynell',
'Wynona',
'Xenia',
'Xiao',
'Xiomara',
'Xochitl',
'Xuan',
'Yadira',
'Yaeko',
'Yael',
'Yahaira',
'Yajaira',
'Yan',
'Yang',
'Yanira',
'Yasmin',
'Yasmine',
'Yasuko',
'Yee',
'Yelena',
'Yen',
'Yer',
'Yesenia',
'Yessenia',
'Yetta',
'Yevette',
'Yi',
'Ying',
'Yoko',
'Yolanda',
'Yolande',
'Yolando',
'Yolonda',
'Yon',
'Yong',
'Yoshie',
'Yoshiko',
'Youlanda',
'Young',
'Yu',
'Yuette',
'Yuk',
'Yuki',
'Yukiko',
'Yuko',
'Yulanda',
'Yun',
'Yung',
'Yuonne',
'Yuri',
'Yuriko',
'Yvette',
'Yvone',
'Yvonne',
'Zada',
'Zaida',
'Zana',
'Zandra',
'Zelda',
'Zella',
'Zelma',
'Zena',
'Zenaida',
'Zenia',
'Zenobia',
'Zetta',
'Zina',
'Zita',
'Zoe',
'Zofia',
'Zoila',
'Zola',
'Zona',
'Zonia',
'Zora',
'Zoraida',
'Zula',
'Zulema',
'Zulma'
);
},
'randomLast' : function() {
/* 1000 surnames is enough, right? yeah... better add more. ;p */
return either(
'Abbott',
'Acevedo',
'Acosta',
'Adams',
'Adkins',
'Aguilar',
'Aguirre',
'Alexander',
'Ali',
'Allen',
'Allison',
'Alvarado',
'Alvarez',
'Andersen',
'Anderson',
'Andrade',
'Andrews',
'Anthony',
'Archer',
'Arellano',
'Arias',
'Armstrong',
'Arnold',
'Arroyo',
'Ashley',
'Atkins',
'Atkinson',
'Austin',
'Avery',
'Avila',
'Ayala',
'Ayers',
'Bailey',
'Baird',
'Baker',
'Baldwin',
'Ball',
'Ballard',
'Banks',
'Barajas',
'Barber',
'Barker',
'Barnes',
'Barnett',
'Barr',
'Barrera',
'Barrett',
'Barron',
'Barry',
'Bartlett',
'Barton',
'Bass',
'Bates',
'Bauer',
'Bautista',
'Baxter',
'Bean',
'Beard',
'Beasley',
'Beck',
'Becker',
'Bell',
'Beltran',
'Bender',
'Benitez',
'Benjamin',
'Bennett',
'Benson',
'Bentley',
'Benton',
'Berg',
'Berger',
'Bernard',
'Berry',
'Best',
'Bird',
'Bishop',
'Black',
'Blackburn',
'Blackwell',
'Blair',
'Blake',
'Blanchard',
'Blankenship',
'Blevins',
'Bolton',
'Bond',
'Bonilla',
'Booker',
'Boone',
'Booth',
'Bowen',
'Bowers',
'Bowman',
'Boyd',
'Boyer',
'Boyle',
'Bradford',
'Bradley',
'Bradshaw',
'Brady',
'Branch',
'Brandt',
'Braun',
'Bray',
'Brennan',
'Brewer',
'Bridges',
'Briggs',
'Bright',
'Brock',
'Brooks',
'Brown',
'Browning',
'Bruce',
'Bryan',
'Bryant',
'Buchanan',
'Buck',
'Buckley',
'Bullock',
'Burch',
'Burgess',
'Burke',
'Burnett',
'Burns',
'Burton',
'Bush',
'Butler',
'Byrd',
'Cabrera',
'Cain',
'Calderon',
'Caldwell',
'Calhoun',
'Callahan',
'Camacho',
'Cameron',
'Campbell',
'Campos',
'Cannon',
'Cantrell',
'Cantu',
'Cardenas',
'Carey',
'Carlson',
'Carney',
'Carpenter',
'Carr',
'Carrillo',
'Carroll',
'Carson',
'Carter',
'Case',
'Casey',
'Castaneda',
'Castillo',
'Castro',
'Cervantes',
'Chambers',
'Chan',
'Chandler',
'Chaney',
'Chang',
'Chapman',
'Charles',
'Chase',
'Chavez',
'Chen',
'Cherry',
'Choi',
'Christensen',
'Christian',
'Chung',
'Church',
'Cisneros',
'Clark',
'Clarke',
'Clay',
'Clayton',
'Clements',
'Cline',
'Cobb',
'Cochran',
'Coffey',
'Cohen',
'Cole',
'Coleman',
'Collier',
'Collins',
'Colon',
'Combs',
'Compton',
'Conley',
'Conner',
'Conrad',
'Contreras',
'Conway',
'Cook',
'Cooke',
'Cooley',
'Cooper',
'Copeland',
'Cordova',
'Cortez',
'Costa',
'Cowan',
'Cox',
'Craig',
'Crane',
'Crawford',
'Crosby',
'Cross',
'Cruz',
'Cuevas',
'Cummings',
'Cunningham',
'Curry',
'Curtis',
'Dalton',
'Daniel',
'Daniels',
'Daugherty',
'Davenport',
'David',
'Davidson',
'Davies',
'Davila',
'Davis',
'Dawson',
'Day',
'Dean',
'Decker',
'Delacruz',
'Deleon',
'Delgado',
'Dennis',
'Diaz',
'Dickerson',
'Dickson',
'Dillon',
'Dixon',
'Dodson',
'Dominguez',
'Donaldson',
'Donovan',
'Dorsey',
'Dougherty',
'Douglas',
'Downs',
'Doyle',
'Drake',
'Duarte',
'Dudley',
'Duffy',
'Duke',
'Duncan',
'Dunlap',
'Dunn',
'Duran',
'Durham',
'Dyer',
'Eaton',
'Edwards',
'Elliott',
'Ellis',
'Ellison',
'English',
'Erickson',
'Escobar',
'Esparza',
'Espinoza',
'Estes',
'Estrada',
'Evans',
'Everett',
'Ewing',
'Farley',
'Farmer',
'Farrell',
'Faulkner',
'Ferguson',
'Fernandez',
'Ferrell',
'Fields',
'Figueroa',
'Finley',
'Fischer',
'Fisher',
'Fitzgerald',
'Fitzpatrick',
'Fleming',
'Fletcher',
'Flores',
'Flowers',
'Floyd',
'Flynn',
'Foley',
'Forbes',
'Ford',
'Foster',
'Fowler',
'Fox',
'Francis',
'Franco',
'Frank',
'Franklin',
'Frazier',
'Frederick',
'Freeman',
'French',
'Frey',
'Friedman',
'Fritz',
'Frost',
'Fry',
'Frye',
'Fuentes',
'Fuller',
'Gaines',
'Gallagher',
'Gallegos',
'Galloway',
'Galvan',
'Gamble',
'Garcia',
'Gardner',
'Garner',
'Garrett',
'Garrison',
'Garza',
'Gates',
'Gay',
'Gentry',
'George',
'Gibbs',
'Gibson',
'Gilbert',
'Giles',
'Gill',
'Gillespie',
'Gilmore',
'Glass',
'Glenn',
'Glover',
'Golden',
'Gomez',
'Gonzales',
'Gonzalez',
'Good',
'Goodman',
'Goodwin',
'Gordon',
'Gould',
'Graham',
'Grant',
'Graves',
'Gray',
'Green',
'Greene',
'Greer',
'Gregory',
'Griffin',
'Griffith',
'Grimes',
'Gross',
'Guerra',
'Guerrero',
'Gutierrez',
'Guzman',
'Haas',
'Hahn',
'Hale',
'Haley',
'Hall',
'Hamilton',
'Hammond',
'Hampton',
'Hancock',
'Haney',
'Hanna',
'Hansen',
'Hanson',
'Hardin',
'Harding',
'Hardy',
'Harmon',
'Harper',
'Harrell',
'Harrington',
'Harris',
'Harrison',
'Hart',
'Hartman',
'Harvey',
'Hatfield',
'Hawkins',
'Hayden',
'Hayes',
'Haynes',
'Hays',
'Heath',
'Hebert',
'Henderson',
'Hendricks',
'Hendrix',
'Henry',
'Hensley',
'Henson',
'Herman',
'Hernandez',
'Herrera',
'Herring',
'Hess',
'Hester',
'Hickman',
'Hicks',
'Higgins',
'Hill',
'Hines',
'Hinton',
'Ho',
'Hobbs',
'Hodge',
'Hodges',
'Hoffman',
'Hogan',
'Holden',
'Holder',
'Holland',
'Holloway',
'Holmes',
'Holt',
'Hood',
'Hooper',
'Hoover',
'Hopkins',
'Horn',
'Horne',
'Horton',
'House',
'Houston',
'Howard',
'Howe',
'Howell',
'Huang',
'Hubbard',
'Huber',
'Hudson',
'Huerta',
'Huff',
'Huffman',
'Hughes',
'Hull',
'Humphrey',
'Hunt',
'Hunter',
'Hurley',
'Hurst',
'Hutchinson',
'Huynh',
'Ibarra',
'Ingram',
'Irwin',
'Jackson',
'Jacobs',
'Jacobson',
'James',
'Jarvis',
'Jefferson',
'Jenkins',
'Jennings',
'Jensen',
'Jimenez',
'Johns',
'Johnson',
'Johnston',
'Jones',
'Jordan',
'Joseph',
'Joyce',
'Juarez',
'Kaiser',
'Kane',
'Kaufman',
'Keith',
'Keller',
'Kelley',
'Kelly',
'Kemp',
'Kennedy',
'Kent',
'Kerr',
'Key',
'Khan',
'Kidd',
'Kim',
'King',
'Kirby',
'Kirk',
'Klein',
'Kline',
'Knapp',
'Knight',
'Knox',
'Koch',
'Kramer',
'Krause',
'Krueger',
'Lam',
'Lamb',
'Lambert',
'Landry',
'Lane',
'Lang',
'Lara',
'Larsen',
'Larson',
'Lawrence',
'Lawson',
'Le',
'Leach',
'Leblanc',
'Lee',
'Leon',
'Leonard',
'Lester',
'Levine',
'Levy',
'Lewis',
'Li',
'Lin',
'Lindsey',
'Little',
'Liu',
'Livingston',
'Lloyd',
'Logan',
'Long',
'Lopez',
'Love',
'Lowe',
'Lowery',
'Lozano',
'Lucas',
'Lucero',
'Luna',
'Lutz',
'Lynch',
'Lynn',
'Lyons',
'Maas',
'MacDonald',
'Macias',
'Mack',
'Madden',
'Maddox',
'Mahoney',
'Maldonado',
'Malone',
'Mann',
'Manning',
'Marks',
'Marquez',
'Marsh',
'Marshall',
'Martin',
'Martinez',
'Mason',
'Massey',
'Mata',
'Mathews',
'Mathis',
'Matthews',
'Maxwell',
'May',
'Mayer',
'Maynard',
'Mayo',
'Mays',
'McBride',
'McCall',
'McCann',
'McCarthy',
'McCarty',
'McClain',
'McClure',
'McConnell',
'McCormick',
'McCoy',
'McCullough',
'McDaniel',
'McDonald',
'McDowell',
'McFarland',
'McGee',
'McGrath',
'McGuire',
'McKay',
'McKee',
'McKenzie',
'McKinney',
'McKnight',
'McLaughlin',
'McLean',
'McMahon',
'McMillan',
'McNeil',
'McPherson',
'Meadows',
'Medina',
'Mejia',
'Melendez',
'Melton',
'Mendez',
'Mendoza',
'Mercado',
'Mercer',
'Merritt',
'Meyer',
'Meyers',
'Meza',
'Michael',
'Middleton',
'Miles',
'Miller',
'Mills',
'Miranda',
'Mitchell',
'Molina',
'Monroe',
'Montes',
'Montgomery',
'Montoya',
'Moody',
'Moon',
'Mooney',
'Moore',
'Mora',
'Morales',
'Moran',
'Moreno',
'Morgan',
'Morris',
'Morrison',
'Morrow',
'Morse',
'Morton',
'Moses',
'Mosley',
'Moss',
'Moyer',
'Mueller',
'Mullen',
'Mullins',
'Munoz',
'Murillo',
'Murphy',
'Murray',
'Myers',
'Nash',
'Navarro',
'Neal',
'Nelson',
'Newman',
'Newton',
'Nguyen',
'Nichols',
'Nicholson',
'Nielsen',
'Nixon',
'Noble',
'Nolan',
'Norman',
'Norris',
'Norton',
'Novak',
'Nunez',
'Obrien',
'Ochoa',
'Oconnell',
'Oconnor',
'Odom',
'Odonnell',
'Oliver',
'Olsen',
'Olson',
'Oneal',
'Oneill',
'Orozco',
'Orr',
'Ortega',
'Ortiz',
'Osborn',
'Osborne',
'Owen',
'Owens',
'Pace',
'Pacheco',
'Padilla',
'Page',
'Palmer',
'Park',
'Parker',
'Parks',
'Parrish',
'Parsons',
'Patel',
'Patrick',
'Patterson',
'Patton',
'Paul',
'Payne',
'Pearson',
'Peay',
'Peck',
'Pena',
'Pennington',
'Perez',
'Perkins',
'Perry',
'Peters',
'Petersen',
'Peterson',
'Petty',
'Pham',
'Phelps',
'Phillips',
'Pierce',
'Pineda',
'Pittman',
'Pitts',
'Pollard',
'Ponce',
'Poole',
'Pope',
'Porter',
'Potter',
'Potts',
'Powell',
'Powers',
'Pratt',
'Preston',
'Price',
'Prince',
'Proctor',
'Pruitt',
'Pugh',
'Quinn',
'Ramirez',
'Ramos',
'Ramsey',
'Randall',
'Randolph',
'Rangel',
'Rasmussen',
'Ray',
'Raymond',
'Reed',
'Reese',
'Reeves',
'Reid',
'Reilly',
'Reyes',
'Reynolds',
'Rhodes',
'Rice',
'Rich',
'Richard',
'Richards',
'Richardson',
'Richmond',
'Riddle',
'Riggs',
'Riley',
'Rios',
'Ritter',
'Rivas',
'Rivera',
'Rivers',
'Roach',
'Robbins',
'Roberson',
'Roberts',
'Robertson',
'Robinson',
'Robles',
'Rocha',
'Rodgers',
'Rodriguez',
'Rogers',
'Rojas',
'Rollins',
'Roman',
'Romero',
'Rosales',
'Rosario',
'Rose',
'Ross',
'Roth',
'Rowe',
'Rowland',
'Roy',
'Rubio',
'Ruiz',
'Rush',
'Russell',
'Russo',
'Ryan',
'Salas',
'Salazar',
'Salinas',
'Sampson',
'Sanchez',
'Sanders',
'Sandoval',
'Sanford',
'Santana',
'Santiago',
'Santos',
'Saunders',
'Savage',
'Sawyer',
'Schaefer',
'Schmidt',
'Schmitt',
'Schneider',
'Schroeder',
'Schultz',
'Schwartz',
'Scott',
'Sellers',
'Serrano',
'Sexton',
'Shaffer',
'Shah',
'Shannon',
'Sharp',
'Shaw',
'Shea',
'Shelton',
'Shepard',
'Shepherd',
'Sheppard',
'Sherman',
'Shields',
'Short',
'Silva',
'Simmons',
'Simon',
'Simpson',
'Sims',
'Singh',
'Singleton',
'Skinner',
'Sloan',
'Small',
'Smith',
'Snow',
'Snyder',
'Solis',
'Solomon',
'Sosa',
'Soto',
'Sparks',
'Spears',
'Spence',
'Spencer',
'Stafford',
'Stanley',
'Stanton',
'Stark',
'Steele',
'Stein',
'Stephens',
'Stephenson',
'Stevens',
'Stevenson',
'Stewart',
'Stokes',
'Stone',
'Stout',
'Strickland',
'Strong',
'Stuart',
'Suarez',
'Sullivan',
'Summers',
'Sutton',
'Swanson',
'Sweeney',
'Tanner',
'Tapia',
'Tate',
'Taylor',
'Terrell',
'Terry',
'Thomas',
'Thompson',
'Thornton',
'Todd',
'Torres',
'Townsend',
'Tran',
'Travis',
'Trevino',
'Trujillo',
'Tucker',
'Turner',
'Tyler',
'Underwood',
'Valdez',
'Valencia',
'Valentine',
'Valenzuela',
'Vance',
'Vang',
'Vargas',
'Vasquez',
'Vaughan',
'Vaughn',
'Vazquez',
'Vega',
'Velasquez',
'Velazquez',
'Velez',
'Villa',
'Villanueva',
'Villarreal',
'Villegas',
'Vincent',
'Wade',
'Wagner',
'Walker',
'Wall',
'Wallace',
'Waller',
'Walls',
'Walsh',
'Walter',
'Walters',
'Walton',
'Wang',
'Ward',
'Ware',
'Warner',
'Warren',
'Washington',
'Waters',
'Watkins',
'Watson',
'Watts',
'Weaver',
'Webb',
'Weber',
'Webster',
'Weeks',
'Weiss',
'Welch',
'Wells',
'Werner',
'West',
'Wheeler',
'Whitaker',
'White',
'Whitehead',
'Whitney',
'Wiggins',
'Wilcox',
'Wiley',
'Wilkerson',
'Wilkins',
'Wilkinson',
'Williams',
'Williamson',
'Willis',
'Wilson',
'Winters',
'Wise',
'Wolf',
'Wolfe',
'Wong',
'Wood',
'Woodard',
'Woods',
'Woodward',
'Wright',
'Wu',
'Wyatt',
'Yang',
'Yates',
'Yoder',
'York',
'Young',
'Yu',
'Zamora',
'Zavala',
'Zhang',
'Zimmerman',
'Zuniga'
);
},
}>>