Section 1
//BaseButton (fl.controls.BaseButton)
package fl.controls {
import flash.display.*;
import fl.core.*;
import flash.events.*;
import fl.events.*;
import flash.utils.*;
public class BaseButton extends UIComponent {
protected var pressTimer:Timer;
protected var _autoRepeat:Boolean;// = false
protected var _selected:Boolean;// = false
protected var background:DisplayObject;
private var unlockedMouseState:String;
protected var mouseState:String;
private var _mouseStateLocked:Boolean;// = false
private static var defaultStyles:Object = {upSkin:"Button_upSkin", downSkin:"Button_downSkin", overSkin:"Button_overSkin", disabledSkin:"Button_disabledSkin", selectedDisabledSkin:"Button_selectedDisabledSkin", selectedUpSkin:"Button_selectedUpSkin", selectedDownSkin:"Button_selectedDownSkin", selectedOverSkin:"Button_selectedOverSkin", focusRectSkin:null, focusRectPadding:null, repeatDelay:500, repeatInterval:35};
public function BaseButton(){
buttonMode = true;
mouseChildren = false;
useHandCursor = false;
setupMouseEvents();
setMouseState("up");
pressTimer = new Timer(1, 0);
pressTimer.addEventListener(TimerEvent.TIMER, buttonDown, false, 0, true);
}
override public function get enabled():Boolean{
return (super.enabled);
}
protected function startPress():void{
if (_autoRepeat){
pressTimer.delay = Number(getStyleValue("repeatDelay"));
pressTimer.start();
};
dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true));
}
override protected function draw():void{
if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){
drawBackground();
invalidate(InvalidationType.SIZE, false);
};
if (isInvalid(InvalidationType.SIZE)){
drawLayout();
};
super.draw();
}
protected function drawLayout():void{
background.width = width;
background.height = height;
}
override public function set enabled(_arg1:Boolean):void{
super.enabled = _arg1;
mouseEnabled = _arg1;
}
public function set autoRepeat(_arg1:Boolean):void{
_autoRepeat = _arg1;
}
protected function mouseEventHandler(_arg1:MouseEvent):void{
if (_arg1.type == MouseEvent.MOUSE_DOWN){
setMouseState("down");
startPress();
} else {
if ((((_arg1.type == MouseEvent.ROLL_OVER)) || ((_arg1.type == MouseEvent.MOUSE_UP)))){
setMouseState("over");
endPress();
} else {
if (_arg1.type == MouseEvent.ROLL_OUT){
setMouseState("up");
endPress();
};
};
};
}
protected function drawBackground():void{
var _local1:String = (enabled) ? mouseState : "disabled";
if (selected){
_local1 = (("selected" + _local1.substr(0, 1).toUpperCase()) + _local1.substr(1));
};
_local1 = (_local1 + "Skin");
var _local2:DisplayObject = background;
background = getDisplayObjectInstance(getStyleValue(_local1));
addChildAt(background, 0);
if (((!((_local2 == null))) && (!((_local2 == background))))){
removeChild(_local2);
};
}
public function get selected():Boolean{
return (_selected);
}
protected function setupMouseEvents():void{
addEventListener(MouseEvent.ROLL_OVER, mouseEventHandler, false, 0, true);
addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, false, 0, true);
addEventListener(MouseEvent.MOUSE_UP, mouseEventHandler, false, 0, true);
addEventListener(MouseEvent.ROLL_OUT, mouseEventHandler, false, 0, true);
}
protected function endPress():void{
pressTimer.reset();
}
public function set mouseStateLocked(_arg1:Boolean):void{
_mouseStateLocked = _arg1;
if (_arg1 == false){
setMouseState(unlockedMouseState);
} else {
unlockedMouseState = mouseState;
};
}
public function get autoRepeat():Boolean{
return (_autoRepeat);
}
public function set selected(_arg1:Boolean):void{
if (_selected == _arg1){
return;
};
_selected = _arg1;
invalidate(InvalidationType.STATE);
}
protected function buttonDown(_arg1:TimerEvent):void{
if (!_autoRepeat){
endPress();
return;
};
if (pressTimer.currentCount == 1){
pressTimer.delay = Number(getStyleValue("repeatInterval"));
};
dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true));
}
public function setMouseState(_arg1:String):void{
if (_mouseStateLocked){
unlockedMouseState = _arg1;
return;
};
if (mouseState == _arg1){
return;
};
mouseState = _arg1;
invalidate(InvalidationType.STATE);
}
public static function getStyleDefinition():Object{
return (defaultStyles);
}
}
}//package fl.controls
Section 2
//Button (fl.controls.Button)
package fl.controls {
import flash.display.*;
import fl.core.*;
import fl.managers.*;
public class Button extends LabelButton implements IFocusManagerComponent {
protected var _emphasized:Boolean;// = false
protected var emphasizedBorder:DisplayObject;
private static var defaultStyles:Object = {emphasizedSkin:"Button_emphasizedSkin", emphasizedPadding:2};
public static var createAccessibilityImplementation:Function;
public function set emphasized(_arg1:Boolean):void{
_emphasized = _arg1;
invalidate(InvalidationType.STYLES);
}
override protected function initializeAccessibility():void{
if (Button.createAccessibilityImplementation != null){
Button.createAccessibilityImplementation(this);
};
}
protected function drawEmphasized():void{
var _local2:Number;
if (emphasizedBorder != null){
removeChild(emphasizedBorder);
};
emphasizedBorder = null;
if (!_emphasized){
return;
};
var _local1:Object = getStyleValue("emphasizedSkin");
if (_local1 != null){
emphasizedBorder = getDisplayObjectInstance(_local1);
};
if (emphasizedBorder != null){
addChildAt(emphasizedBorder, 0);
_local2 = Number(getStyleValue("emphasizedPadding"));
emphasizedBorder.x = (emphasizedBorder.y = -(_local2));
emphasizedBorder.width = (width + (_local2 * 2));
emphasizedBorder.height = (height + (_local2 * 2));
};
}
public function get emphasized():Boolean{
return (_emphasized);
}
override protected function draw():void{
if (((isInvalid(InvalidationType.STYLES)) || (isInvalid(InvalidationType.SIZE)))){
drawEmphasized();
};
super.draw();
if (emphasizedBorder != null){
setChildIndex(emphasizedBorder, (numChildren - 1));
};
}
override public function drawFocus(_arg1:Boolean):void{
var _local2:Number;
var _local3:*;
super.drawFocus(_arg1);
if (_arg1){
_local2 = Number(getStyleValue("emphasizedPadding"));
if ((((_local2 < 0)) || (!(_emphasized)))){
_local2 = 0;
};
_local3 = getStyleValue("focusRectPadding");
_local3 = ((_local3)==null) ? 2 : _local3;
_local3 = (_local3 + _local2);
uiFocusRect.x = -(_local3);
uiFocusRect.y = -(_local3);
uiFocusRect.width = (width + (_local3 * 2));
uiFocusRect.height = (height + (_local3 * 2));
};
}
public static function getStyleDefinition():Object{
return (UIComponent.mergeStyles(LabelButton.getStyleDefinition(), defaultStyles));
}
}
}//package fl.controls
Section 3
//ButtonLabelPlacement (fl.controls.ButtonLabelPlacement)
package fl.controls {
public class ButtonLabelPlacement {
public static const TOP:String = "top";
public static const LEFT:String = "left";
public static const BOTTOM:String = "bottom";
public static const RIGHT:String = "right";
}
}//package fl.controls
Section 4
//LabelButton (fl.controls.LabelButton)
package fl.controls {
import flash.display.*;
import fl.core.*;
import flash.events.*;
import fl.managers.*;
import fl.events.*;
import flash.text.*;
import flash.ui.*;
public class LabelButton extends BaseButton implements IFocusManagerComponent {
protected var _toggle:Boolean;// = false
public var textField:TextField;
protected var mode:String;// = "center"
protected var _labelPlacement:String;// = "right"
protected var oldMouseState:String;
protected var _label:String;// = "Label"
protected var icon:DisplayObject;
private static var defaultStyles:Object = {icon:null, upIcon:null, downIcon:null, overIcon:null, disabledIcon:null, selectedDisabledIcon:null, selectedUpIcon:null, selectedDownIcon:null, selectedOverIcon:null, textFormat:null, disabledTextFormat:null, textPadding:5, embedFonts:false};
public static var createAccessibilityImplementation:Function;
override protected function draw():void{
if (textField.text != _label){
label = _label;
};
if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){
drawBackground();
drawIcon();
drawTextFormat();
invalidate(InvalidationType.SIZE, false);
};
if (isInvalid(InvalidationType.SIZE)){
drawLayout();
};
if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){
if (((isFocused) && (focusManager.showFocusIndicator))){
drawFocus(true);
};
};
validate();
}
override protected function drawLayout():void{
var _local7:Number;
var _local8:Number;
var _local1:Number = Number(getStyleValue("textPadding"));
var _local2:String = ((((icon == null)) && ((mode == "center")))) ? ButtonLabelPlacement.TOP : _labelPlacement;
textField.height = (textField.textHeight + 4);
var _local3:Number = (textField.textWidth + 4);
var _local4:Number = (textField.textHeight + 4);
var _local5:Number = ((icon)==null) ? 0 : (icon.width + _local1);
var _local6:Number = ((icon)==null) ? 0 : (icon.height + _local1);
textField.visible = (label.length > 0);
if (icon != null){
icon.x = Math.round(((width - icon.width) / 2));
icon.y = Math.round(((height - icon.height) / 2));
};
if (textField.visible == false){
textField.width = 0;
textField.height = 0;
} else {
if ((((_local2 == ButtonLabelPlacement.BOTTOM)) || ((_local2 == ButtonLabelPlacement.TOP)))){
_local7 = Math.max(0, Math.min(_local3, (width - (2 * _local1))));
if ((height - 2) > _local4){
_local8 = _local4;
} else {
_local8 = (height - 2);
};
_local3 = _local7;
textField.width = _local3;
_local4 = _local8;
textField.height = _local4;
textField.x = Math.round(((width - _local3) / 2));
textField.y = Math.round(((((height - textField.height) - _local6) / 2) + ((_local2)==ButtonLabelPlacement.BOTTOM) ? _local6 : 0));
if (icon != null){
icon.y = Math.round(((_local2)==ButtonLabelPlacement.BOTTOM) ? (textField.y - _local6) : ((textField.y + textField.height) + _local1));
};
} else {
_local7 = Math.max(0, Math.min(_local3, ((width - _local5) - (2 * _local1))));
_local3 = _local7;
textField.width = _local3;
textField.x = Math.round(((((width - _local3) - _local5) / 2) + ((_local2)!=ButtonLabelPlacement.LEFT) ? _local5 : 0));
textField.y = Math.round(((height - textField.height) / 2));
if (icon != null){
icon.x = Math.round(((_local2)!=ButtonLabelPlacement.LEFT) ? (textField.x - _local5) : ((textField.x + _local3) + _local1));
};
};
};
super.drawLayout();
}
protected function toggleSelected(_arg1:MouseEvent):void{
selected = !(selected);
dispatchEvent(new Event(Event.CHANGE, true));
}
override protected function keyUpHandler(_arg1:KeyboardEvent):void{
if (!enabled){
return;
};
if (_arg1.keyCode == Keyboard.SPACE){
setMouseState(oldMouseState);
oldMouseState = null;
endPress();
dispatchEvent(new MouseEvent(MouseEvent.CLICK));
};
}
public function get labelPlacement():String{
return (_labelPlacement);
}
public function get toggle():Boolean{
return (_toggle);
}
protected function setEmbedFont(){
var _local1:Object = getStyleValue("embedFonts");
if (_local1 != null){
textField.embedFonts = _local1;
};
}
override public function get selected():Boolean{
return ((_toggle) ? _selected : false);
}
override protected function configUI():void{
super.configUI();
textField = new TextField();
textField.type = TextFieldType.DYNAMIC;
textField.selectable = false;
addChild(textField);
}
override protected function initializeAccessibility():void{
if (LabelButton.createAccessibilityImplementation != null){
LabelButton.createAccessibilityImplementation(this);
};
}
public function set labelPlacement(_arg1:String):void{
_labelPlacement = _arg1;
invalidate(InvalidationType.SIZE);
}
protected function drawIcon():void{
var _local1:DisplayObject = icon;
var _local2:String = (enabled) ? mouseState : "disabled";
if (selected){
_local2 = (("selected" + _local2.substr(0, 1).toUpperCase()) + _local2.substr(1));
};
_local2 = (_local2 + "Icon");
var _local3:Object = getStyleValue(_local2);
if (_local3 == null){
_local3 = getStyleValue("icon");
};
if (_local3 != null){
icon = getDisplayObjectInstance(_local3);
};
if (icon != null){
addChildAt(icon, 1);
};
if (((!((_local1 == null))) && (!((_local1 == icon))))){
removeChild(_local1);
};
}
public function set label(_arg1:String):void{
_label = _arg1;
if (textField.text != _label){
textField.text = _label;
dispatchEvent(new ComponentEvent(ComponentEvent.LABEL_CHANGE));
};
invalidate(InvalidationType.SIZE);
invalidate(InvalidationType.STYLES);
}
override protected function keyDownHandler(_arg1:KeyboardEvent):void{
if (!enabled){
return;
};
if (_arg1.keyCode == Keyboard.SPACE){
if (oldMouseState == null){
oldMouseState = mouseState;
};
setMouseState("down");
startPress();
};
}
public function set toggle(_arg1:Boolean):void{
if (((!(_arg1)) && (super.selected))){
selected = false;
};
_toggle = _arg1;
if (_toggle){
addEventListener(MouseEvent.CLICK, toggleSelected, false, 0, true);
} else {
removeEventListener(MouseEvent.CLICK, toggleSelected);
};
invalidate(InvalidationType.STATE);
}
override public function set selected(_arg1:Boolean):void{
_selected = _arg1;
if (_toggle){
invalidate(InvalidationType.STATE);
};
}
protected function drawTextFormat():void{
var _local1:Object = UIComponent.getStyleDefinition();
var _local2:TextFormat = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat);
textField.setTextFormat(_local2);
var _local3:TextFormat = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat);
if (_local3 != null){
textField.setTextFormat(_local3);
} else {
_local3 = _local2;
};
textField.defaultTextFormat = _local3;
setEmbedFont();
}
public function get label():String{
return (_label);
}
public static function getStyleDefinition():Object{
return (mergeStyles(defaultStyles, BaseButton.getStyleDefinition()));
}
}
}//package fl.controls
Section 5
//ScrollBar (fl.controls.ScrollBar)
package fl.controls {
import fl.core.*;
import flash.events.*;
import fl.events.*;
public class ScrollBar extends UIComponent {
private var _direction:String;// = "vertical"
private var _minScrollPosition:Number;// = 0
private var _pageSize:Number;// = 10
private var _maxScrollPosition:Number;// = 0
protected var downArrow:BaseButton;
private var _lineScrollSize:Number;// = 1
protected var upArrow:BaseButton;
private var _scrollPosition:Number;// = 0
private var thumbScrollOffset:Number;
protected var track:BaseButton;
protected var thumb:LabelButton;
protected var inDrag:Boolean;// = false
private var _pageScrollSize:Number;// = 0
protected static const THUMB_STYLES:Object = {disabledSkin:"thumbDisabledSkin", downSkin:"thumbDownSkin", overSkin:"thumbOverSkin", upSkin:"thumbUpSkin", icon:"thumbIcon", textPadding:0};
public static const WIDTH:Number = 15;
protected static const DOWN_ARROW_STYLES:Object = {disabledSkin:"downArrowDisabledSkin", downSkin:"downArrowDownSkin", overSkin:"downArrowOverSkin", upSkin:"downArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"};
protected static const UP_ARROW_STYLES:Object = {disabledSkin:"upArrowDisabledSkin", downSkin:"upArrowDownSkin", overSkin:"upArrowOverSkin", upSkin:"upArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"};
protected static const TRACK_STYLES:Object = {disabledSkin:"trackDisabledSkin", downSkin:"trackDownSkin", overSkin:"trackOverSkin", upSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"};
private static var defaultStyles:Object = {downArrowDisabledSkin:"ScrollArrowDown_disabledSkin", downArrowDownSkin:"ScrollArrowDown_downSkin", downArrowOverSkin:"ScrollArrowDown_overSkin", downArrowUpSkin:"ScrollArrowDown_upSkin", thumbDisabledSkin:"ScrollThumb_upSkin", thumbDownSkin:"ScrollThumb_downSkin", thumbOverSkin:"ScrollThumb_overSkin", thumbUpSkin:"ScrollThumb_upSkin", trackDisabledSkin:"ScrollTrack_skin", trackDownSkin:"ScrollTrack_skin", trackOverSkin:"ScrollTrack_skin", trackUpSkin:"ScrollTrack_skin", upArrowDisabledSkin:"ScrollArrowUp_disabledSkin", upArrowDownSkin:"ScrollArrowUp_downSkin", upArrowOverSkin:"ScrollArrowUp_overSkin", upArrowUpSkin:"ScrollArrowUp_upSkin", thumbIcon:"ScrollBar_thumbIcon", repeatDelay:500, repeatInterval:35};
public function ScrollBar(){
setStyles();
focusEnabled = false;
}
override public function set enabled(_arg1:Boolean):void{
super.enabled = _arg1;
downArrow.enabled = (track.enabled = (thumb.enabled = (upArrow.enabled = ((enabled) && ((_maxScrollPosition > _minScrollPosition))))));
updateThumb();
}
override public function setSize(_arg1:Number, _arg2:Number):void{
if (_direction == ScrollBarDirection.HORIZONTAL){
super.setSize(_arg2, _arg1);
} else {
super.setSize(_arg1, _arg2);
};
}
public function set lineScrollSize(_arg1:Number):void{
if (_arg1 > 0){
_lineScrollSize = _arg1;
};
}
public function get minScrollPosition():Number{
return (_minScrollPosition);
}
protected function updateThumb():void{
var _local1:Number = ((_maxScrollPosition - _minScrollPosition) + _pageSize);
if ((((((track.height <= 12)) || ((_maxScrollPosition <= _minScrollPosition)))) || ((((_local1 == 0)) || (isNaN(_local1)))))){
thumb.height = 12;
thumb.visible = false;
} else {
thumb.height = Math.max(13, ((_pageSize / _local1) * track.height));
thumb.y = (track.y + ((track.height - thumb.height) * ((_scrollPosition - _minScrollPosition) / (_maxScrollPosition - _minScrollPosition))));
thumb.visible = enabled;
};
}
public function set minScrollPosition(_arg1:Number):void{
setScrollProperties(_pageSize, _arg1, _maxScrollPosition);
}
public function get lineScrollSize():Number{
return (_lineScrollSize);
}
public function setScrollPosition(_arg1:Number, _arg2:Boolean=true):void{
var _local3:Number = scrollPosition;
_scrollPosition = Math.max(_minScrollPosition, Math.min(_maxScrollPosition, _arg1));
if (_local3 == _scrollPosition){
return;
};
if (_arg2){
dispatchEvent(new ScrollEvent(_direction, (scrollPosition - _local3), scrollPosition));
};
updateThumb();
}
public function get maxScrollPosition():Number{
return (_maxScrollPosition);
}
public function get scrollPosition():Number{
return (_scrollPosition);
}
override public function get height():Number{
return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.width : super.height);
}
public function get pageSize():Number{
return (_pageSize);
}
public function set maxScrollPosition(_arg1:Number):void{
setScrollProperties(_pageSize, _minScrollPosition, _arg1);
}
protected function thumbReleaseHandler(_arg1:MouseEvent):void{
inDrag = false;
mouseChildren = true;
thumb.mouseStateLocked = false;
stage.removeEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag);
stage.removeEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler);
}
public function set pageScrollSize(_arg1:Number):void{
if (_arg1 >= 0){
_pageScrollSize = _arg1;
};
}
public function set scrollPosition(_arg1:Number):void{
setScrollPosition(_arg1, true);
}
override public function get enabled():Boolean{
return (super.enabled);
}
override protected function draw():void{
var _local1:Number;
if (isInvalid(InvalidationType.SIZE)){
_local1 = super.height;
downArrow.move(0, Math.max(upArrow.height, (_local1 - downArrow.height)));
track.setSize(WIDTH, Math.max(0, (_local1 - (downArrow.height + upArrow.height))));
updateThumb();
};
if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){
setStyles();
};
downArrow.drawNow();
upArrow.drawNow();
track.drawNow();
thumb.drawNow();
validate();
}
override public function get width():Number{
return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.height : super.width);
}
override protected function configUI():void{
super.configUI();
track = new BaseButton();
track.move(0, 14);
track.useHandCursor = false;
track.autoRepeat = true;
track.focusEnabled = false;
addChild(track);
thumb = new LabelButton();
thumb.label = "";
thumb.setSize(WIDTH, 15);
thumb.move(0, 15);
thumb.focusEnabled = false;
addChild(thumb);
downArrow = new BaseButton();
downArrow.setSize(WIDTH, 14);
downArrow.autoRepeat = true;
downArrow.focusEnabled = false;
addChild(downArrow);
upArrow = new BaseButton();
upArrow.setSize(WIDTH, 14);
upArrow.move(0, 0);
upArrow.autoRepeat = true;
upArrow.focusEnabled = false;
addChild(upArrow);
upArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true);
downArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true);
track.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true);
thumb.addEventListener(MouseEvent.MOUSE_DOWN, thumbPressHandler, false, 0, true);
enabled = false;
}
public function set pageSize(_arg1:Number):void{
if (_arg1 > 0){
_pageSize = _arg1;
};
}
public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0):void{
this.pageSize = _arg1;
_minScrollPosition = _arg2;
_maxScrollPosition = _arg3;
if (_arg4 >= 0){
_pageScrollSize = _arg4;
};
enabled = (_maxScrollPosition > _minScrollPosition);
setScrollPosition(_scrollPosition, false);
updateThumb();
}
public function get pageScrollSize():Number{
return (((_pageScrollSize)==0) ? _pageSize : _pageScrollSize);
}
protected function handleThumbDrag(_arg1:MouseEvent):void{
var _local2:Number = Math.max(0, Math.min((track.height - thumb.height), ((mouseY - track.y) - thumbScrollOffset)));
setScrollPosition((((_local2 / (track.height - thumb.height)) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition));
}
protected function setStyles():void{
copyStylesToChild(downArrow, DOWN_ARROW_STYLES);
copyStylesToChild(thumb, THUMB_STYLES);
copyStylesToChild(track, TRACK_STYLES);
copyStylesToChild(upArrow, UP_ARROW_STYLES);
}
protected function scrollPressHandler(_arg1:ComponentEvent):void{
var _local2:Number;
var _local3:Number;
_arg1.stopImmediatePropagation();
if (_arg1.currentTarget == upArrow){
setScrollPosition((_scrollPosition - _lineScrollSize));
} else {
if (_arg1.currentTarget == downArrow){
setScrollPosition((_scrollPosition + _lineScrollSize));
} else {
_local2 = (((track.mouseY / track.height) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition);
_local3 = ((pageScrollSize)==0) ? pageSize : pageScrollSize;
if (_scrollPosition < _local2){
setScrollPosition(Math.min(_local2, (_scrollPosition + _local3)));
} else {
if (_scrollPosition > _local2){
setScrollPosition(Math.max(_local2, (_scrollPosition - _local3)));
};
};
};
};
}
protected function thumbPressHandler(_arg1:MouseEvent):void{
inDrag = true;
thumbScrollOffset = (mouseY - thumb.y);
thumb.mouseStateLocked = true;
mouseChildren = false;
stage.addEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag, false, 0, true);
stage.addEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler, false, 0, true);
}
public function set direction(_arg1:String):void{
if (_direction == _arg1){
return;
};
_direction = _arg1;
if (isLivePreview){
return;
};
setScaleY(1);
var _local2 = (_direction == ScrollBarDirection.HORIZONTAL);
if (((_local2) && (componentInspectorSetting))){
if (rotation == 90){
return;
};
setScaleX(-1);
rotation = -90;
};
if (!componentInspectorSetting){
if (((_local2) && ((rotation == 0)))){
rotation = -90;
setScaleX(-1);
} else {
if (((!(_local2)) && ((rotation == -90)))){
rotation = 0;
setScaleX(1);
};
};
};
invalidate(InvalidationType.SIZE);
}
public function get direction():String{
return (_direction);
}
public static function getStyleDefinition():Object{
return (defaultStyles);
}
}
}//package fl.controls
Section 6
//ScrollBarDirection (fl.controls.ScrollBarDirection)
package fl.controls {
public class ScrollBarDirection {
public static const HORIZONTAL:String = "horizontal";
public static const VERTICAL:String = "vertical";
}
}//package fl.controls
Section 7
//UIScrollBar (fl.controls.UIScrollBar)
package fl.controls {
import fl.core.*;
import flash.events.*;
import fl.events.*;
import flash.text.*;
public class UIScrollBar extends ScrollBar {
protected var inEdit:Boolean;// = false
protected var inScroll:Boolean;// = false
protected var _scrollTarget:TextField;
private static var defaultStyles:Object = {};
protected function updateScrollTargetProperties():void{
var _local1:Boolean;
var _local2:Number;
if (_scrollTarget == null){
setScrollProperties(pageSize, minScrollPosition, maxScrollPosition, pageScrollSize);
scrollPosition = 0;
} else {
_local1 = (direction == ScrollBarDirection.HORIZONTAL);
_local2 = (_local1) ? _scrollTarget.width : 10;
setScrollProperties(_local2, (_local1) ? 0 : 1, (_local1) ? _scrollTarget.maxScrollH : _scrollTarget.maxScrollV, pageScrollSize);
scrollPosition = (_local1) ? _scrollTarget.scrollH : _scrollTarget.scrollV;
};
}
override public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0):void{
var _local5:Number = _arg3;
var _local6:Number = ((_arg2)<0) ? 0 : _arg2;
if (_scrollTarget != null){
if (direction == ScrollBarDirection.HORIZONTAL){
_local5 = ((_arg3)>_scrollTarget.maxScrollH) ? _scrollTarget.maxScrollH : _local5;
} else {
_local5 = ((_arg3)>_scrollTarget.maxScrollV) ? _scrollTarget.maxScrollV : _local5;
};
};
super.setScrollProperties(_arg1, _local6, _local5, _arg4);
}
protected function handleTargetScroll(_arg1:Event):void{
if (inDrag){
return;
};
if (!enabled){
return;
};
inEdit = true;
updateScrollTargetProperties();
scrollPosition = ((direction)==ScrollBarDirection.HORIZONTAL) ? _scrollTarget.scrollH : _scrollTarget.scrollV;
inEdit = false;
}
override public function setScrollPosition(_arg1:Number, _arg2:Boolean=true):void{
super.setScrollPosition(_arg1, _arg2);
if (!_scrollTarget){
inScroll = false;
return;
};
updateTargetScroll();
}
public function get scrollTargetName():String{
return (_scrollTarget.name);
}
override protected function draw():void{
if (isInvalid(InvalidationType.DATA)){
updateScrollTargetProperties();
};
super.draw();
}
override public function set direction(_arg1:String):void{
if (isLivePreview){
return;
};
super.direction = _arg1;
updateScrollTargetProperties();
}
protected function updateTargetScroll(_arg1:ScrollEvent=null):void{
if (inEdit){
return;
};
if (direction == ScrollBarDirection.HORIZONTAL){
_scrollTarget.scrollH = scrollPosition;
} else {
_scrollTarget.scrollV = scrollPosition;
};
}
override public function set minScrollPosition(_arg1:Number):void{
super.minScrollPosition = ((_arg1)<0) ? 0 : _arg1;
}
override public function set maxScrollPosition(_arg1:Number):void{
var _local2:Number = _arg1;
if (_scrollTarget != null){
if (direction == ScrollBarDirection.HORIZONTAL){
_local2 = ((_local2)>_scrollTarget.maxScrollH) ? _scrollTarget.maxScrollH : _local2;
} else {
_local2 = ((_local2)>_scrollTarget.maxScrollV) ? _scrollTarget.maxScrollV : _local2;
};
};
super.maxScrollPosition = _local2;
}
protected function handleTargetChange(_arg1:Event):void{
inEdit = true;
setScrollPosition(((direction)==ScrollBarDirection.HORIZONTAL) ? _scrollTarget.scrollH : _scrollTarget.scrollV, true);
updateScrollTargetProperties();
inEdit = false;
}
public function update():void{
inEdit = true;
updateScrollTargetProperties();
inEdit = false;
}
public function set scrollTargetName(_arg1:String):void{
var target = _arg1;
try {
scrollTarget = (parent.getChildByName(target) as TextField);
} catch(error:Error) {
throw (new Error("ScrollTarget not found, or is not a TextField"));
};
}
public function set scrollTarget(_arg1:TextField):void{
if (_scrollTarget != null){
_scrollTarget.removeEventListener(Event.CHANGE, handleTargetChange, false);
_scrollTarget.removeEventListener(TextEvent.TEXT_INPUT, handleTargetChange, false);
_scrollTarget.removeEventListener(Event.SCROLL, handleTargetScroll, false);
removeEventListener(ScrollEvent.SCROLL, updateTargetScroll, false);
};
_scrollTarget = _arg1;
if (_scrollTarget != null){
_scrollTarget.addEventListener(Event.CHANGE, handleTargetChange, false, 0, true);
_scrollTarget.addEventListener(TextEvent.TEXT_INPUT, handleTargetChange, false, 0, true);
_scrollTarget.addEventListener(Event.SCROLL, handleTargetScroll, false, 0, true);
addEventListener(ScrollEvent.SCROLL, updateTargetScroll, false, 0, true);
};
invalidate(InvalidationType.DATA);
}
public function get scrollTarget():TextField{
return (_scrollTarget);
}
override public function get direction():String{
return (super.direction);
}
public static function getStyleDefinition():Object{
return (UIComponent.mergeStyles(defaultStyles, ScrollBar.getStyleDefinition()));
}
}
}//package fl.controls
Section 8
//ComponentShim (fl.core.ComponentShim)
package fl.core {
import flash.display.*;
public dynamic class ComponentShim extends MovieClip {
}
}//package fl.core
Section 9
//InvalidationType (fl.core.InvalidationType)
package fl.core {
public class InvalidationType {
public static const SIZE:String = "size";
public static const ALL:String = "all";
public static const DATA:String = "data";
public static const SCROLL:String = "scroll";
public static const STATE:String = "state";
public static const STYLES:String = "styles";
public static const SELECTED:String = "selected";
public static const RENDERER_STYLES:String = "rendererStyles";
}
}//package fl.core
Section 10
//UIComponent (fl.core.UIComponent)
package fl.core {
import flash.display.*;
import flash.events.*;
import fl.managers.*;
import fl.events.*;
import flash.text.*;
import flash.utils.*;
import flash.system.*;
public class UIComponent extends Sprite {
protected var _x:Number;
protected var _enabled:Boolean;// = true
protected var callLaterMethods:Dictionary;
private var _mouseFocusEnabled:Boolean;// = true
private var tempText:TextField;
private var _focusEnabled:Boolean;// = true
protected var startHeight:Number;
protected var _height:Number;
protected var invalidateFlag:Boolean;// = false
protected var _oldIMEMode:String;// = null
protected var _inspector:Boolean;// = false
protected var startWidth:Number;
public var focusTarget:IFocusManagerComponent;
protected var errorCaught:Boolean;// = false
protected var invalidHash:Object;
protected var sharedStyles:Object;
protected var uiFocusRect:DisplayObject;
protected var isLivePreview:Boolean;// = false
protected var _imeMode:String;// = null
protected var _width:Number;
protected var instanceStyles:Object;
public var version:String;// = "3.0.0.16"
protected var isFocused:Boolean;// = false
protected var _y:Number;
public static var inCallLaterPhase:Boolean = false;
private static var defaultStyles:Object = {focusRectSkin:"focusRectSkin", focusRectPadding:2, textFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), disabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultTextFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultDisabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0)};
public static var createAccessibilityImplementation:Function;
private static var focusManagers:Dictionary = new Dictionary(false);
public function UIComponent(){
instanceStyles = {};
sharedStyles = {};
invalidHash = {};
callLaterMethods = new Dictionary();
StyleManager.registerInstance(this);
configUI();
invalidate(InvalidationType.ALL);
tabEnabled = (this is IFocusManagerComponent);
focusRect = false;
if (tabEnabled){
addEventListener(FocusEvent.FOCUS_IN, focusInHandler);
addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler);
addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
};
initializeFocusManager();
addEventListener(Event.ENTER_FRAME, hookAccessibility, false, 0, true);
}
public function getStyle(_arg1:String):Object{
return (instanceStyles[_arg1]);
}
protected function checkLivePreview():Boolean{
var className:String;
if (parent == null){
return (false);
};
try {
className = getQualifiedClassName(parent);
} catch(e:Error) {
};
return ((className == "fl.livepreview::LivePreviewParent"));
}
private function callLaterDispatcher(_arg1:Event):void{
var _local3:Object;
if (_arg1.type == Event.ADDED_TO_STAGE){
removeEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher);
stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true);
stage.invalidate();
return;
};
_arg1.target.removeEventListener(Event.RENDER, callLaterDispatcher);
if (stage == null){
addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true);
return;
};
inCallLaterPhase = true;
var _local2:Dictionary = callLaterMethods;
for (_local3 in _local2) {
_local3();
delete _local2[_local3];
};
inCallLaterPhase = false;
}
protected function validate():void{
invalidHash = {};
}
protected function focusOutHandler(_arg1:FocusEvent):void{
if (isOurFocus((_arg1.target as DisplayObject))){
drawFocus(false);
isFocused = false;
};
}
public function set mouseFocusEnabled(_arg1:Boolean):void{
_mouseFocusEnabled = _arg1;
}
public function getFocus():InteractiveObject{
if (stage){
return (stage.focus);
};
return (null);
}
override public function get height():Number{
return (_height);
}
private function addedHandler(_arg1:Event):void{
removeEventListener("addedToStage", addedHandler);
initializeFocusManager();
}
protected function getStyleValue(_arg1:String):Object{
return (((instanceStyles[_arg1])==null) ? sharedStyles[_arg1] : instanceStyles[_arg1]);
}
public function invalidate(_arg1:String="all", _arg2:Boolean=true):void{
invalidHash[_arg1] = true;
if (_arg2){
this.callLater(draw);
};
}
protected function isOurFocus(_arg1:DisplayObject):Boolean{
return ((_arg1 == this));
}
public function get enabled():Boolean{
return (_enabled);
}
protected function getScaleX():Number{
return (super.scaleX);
}
protected function getScaleY():Number{
return (super.scaleY);
}
public function get focusEnabled():Boolean{
return (_focusEnabled);
}
protected function afterComponentParameters():void{
}
override public function get scaleY():Number{
return ((height / startHeight));
}
protected function setIMEMode(_arg1:Boolean){
var enabled = _arg1;
if (_imeMode != null){
if (enabled){
IME.enabled = true;
_oldIMEMode = IME.conversionMode;
try {
if (((!(errorCaught)) && (!((IME.conversionMode == IMEConversionMode.UNKNOWN))))){
IME.conversionMode = _imeMode;
};
errorCaught = false;
} catch(e:Error) {
errorCaught = true;
throw (new Error(("IME mode not supported: " + _imeMode)));
};
} else {
if (((!((IME.conversionMode == IMEConversionMode.UNKNOWN))) && (!((_oldIMEMode == IMEConversionMode.UNKNOWN))))){
IME.conversionMode = _oldIMEMode;
};
IME.enabled = false;
};
};
}
protected function draw():void{
if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){
if (((isFocused) && (focusManager.showFocusIndicator))){
drawFocus(true);
};
};
validate();
}
override public function set height(_arg1:Number):void{
if (_height == _arg1){
return;
};
setSize(width, _arg1);
}
protected function configUI():void{
isLivePreview = checkLivePreview();
var _local1:Number = rotation;
rotation = 0;
var _local2:Number = super.width;
var _local3:Number = super.height;
var _local4 = 1;
super.scaleY = _local4;
super.scaleX = _local4;
setSize(_local2, _local3);
move(super.x, super.y);
rotation = _local1;
startWidth = _local2;
startHeight = _local3;
if (numChildren > 0){
removeChildAt(0);
};
}
protected function setScaleY(_arg1:Number):void{
super.scaleY = _arg1;
}
override public function get scaleX():Number{
return ((width / startWidth));
}
protected function setScaleX(_arg1:Number):void{
super.scaleX = _arg1;
}
private function initializeFocusManager():void{
if (stage == null){
addEventListener(Event.ADDED_TO_STAGE, addedHandler, false, 0, true);
} else {
createFocusManager();
};
}
protected function keyDownHandler(_arg1:KeyboardEvent):void{
}
public function set focusManager(_arg1:IFocusManager):void{
UIComponent.focusManagers[this] = _arg1;
}
public function clearStyle(_arg1:String):void{
setStyle(_arg1, null);
}
protected function isInvalid(_arg1:String, ... _args):Boolean{
if (((invalidHash[_arg1]) || (invalidHash[InvalidationType.ALL]))){
return (true);
};
while (_args.length > 0) {
if (invalidHash[_args.pop()]){
return (true);
};
};
return (false);
}
public function setStyle(_arg1:String, _arg2:Object):void{
if ((((instanceStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){
return;
};
instanceStyles[_arg1] = _arg2;
invalidate(InvalidationType.STYLES);
}
override public function get visible():Boolean{
return (super.visible);
}
protected function focusInHandler(_arg1:FocusEvent):void{
var _local2:IFocusManager;
if (isOurFocus((_arg1.target as DisplayObject))){
_local2 = focusManager;
if (((_local2) && (_local2.showFocusIndicator))){
drawFocus(true);
isFocused = true;
};
};
}
public function get componentInspectorSetting():Boolean{
return (_inspector);
}
override public function get x():Number{
return ((isNaN(_x)) ? super.x : _x);
}
override public function get y():Number{
return ((isNaN(_y)) ? super.y : _y);
}
public function set enabled(_arg1:Boolean):void{
if (_arg1 == _enabled){
return;
};
_enabled = _arg1;
invalidate(InvalidationType.STATE);
}
public function setSize(_arg1:Number, _arg2:Number):void{
_width = _arg1;
_height = _arg2;
invalidate(InvalidationType.SIZE);
dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, false));
}
protected function keyUpHandler(_arg1:KeyboardEvent):void{
}
public function setSharedStyle(_arg1:String, _arg2:Object):void{
if ((((sharedStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){
return;
};
sharedStyles[_arg1] = _arg2;
if (instanceStyles[_arg1] == null){
invalidate(InvalidationType.STYLES);
};
}
public function set focusEnabled(_arg1:Boolean):void{
_focusEnabled = _arg1;
}
override public function set width(_arg1:Number):void{
if (_width == _arg1){
return;
};
setSize(_arg1, height);
}
public function setFocus():void{
if (stage){
stage.focus = this;
};
}
override public function set scaleX(_arg1:Number):void{
setSize((startWidth * _arg1), height);
}
public function get mouseFocusEnabled():Boolean{
return (_mouseFocusEnabled);
}
override public function set scaleY(_arg1:Number):void{
setSize(width, (startHeight * _arg1));
}
protected function getDisplayObjectInstance(_arg1:Object):DisplayObject{
var skin = _arg1;
var classDef:Object;
if ((skin is Class)){
return ((new (skin) as DisplayObject));
};
if ((skin is DisplayObject)){
(skin as DisplayObject).x = 0;
(skin as DisplayObject).y = 0;
return ((skin as DisplayObject));
};
try {
classDef = getDefinitionByName(skin.toString());
} catch(e:Error) {
try {
classDef = (loaderInfo.applicationDomain.getDefinition(skin.toString()) as Object);
} catch(e:Error) {
};
};
if (classDef == null){
return (null);
};
return ((new (classDef) as DisplayObject));
}
protected function copyStylesToChild(_arg1:UIComponent, _arg2:Object):void{
var _local3:String;
for (_local3 in _arg2) {
_arg1.setStyle(_local3, getStyleValue(_arg2[_local3]));
};
}
protected function initializeAccessibility():void{
if (UIComponent.createAccessibilityImplementation != null){
UIComponent.createAccessibilityImplementation(this);
};
}
public function get focusManager():IFocusManager{
var _local1:DisplayObject = this;
while (_local1) {
if (UIComponent.focusManagers[_local1] != null){
return (IFocusManager(UIComponent.focusManagers[_local1]));
};
_local1 = _local1.parent;
};
return (null);
}
override public function get width():Number{
return (_width);
}
protected function beforeComponentParameters():void{
}
protected function callLater(_arg1:Function):void{
if (inCallLaterPhase){
return;
};
callLaterMethods[_arg1] = true;
if (stage != null){
stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true);
stage.invalidate();
} else {
addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true);
};
}
public function move(_arg1:Number, _arg2:Number):void{
_x = _arg1;
_y = _arg2;
super.x = Math.round(_arg1);
super.y = Math.round(_arg2);
dispatchEvent(new ComponentEvent(ComponentEvent.MOVE));
}
public function validateNow():void{
invalidate(InvalidationType.ALL, false);
draw();
}
override public function set visible(_arg1:Boolean):void{
if (super.visible == _arg1){
return;
};
super.visible = _arg1;
var _local2:String = (_arg1) ? ComponentEvent.SHOW : ComponentEvent.HIDE;
dispatchEvent(new ComponentEvent(_local2, true));
}
protected function createFocusManager():void{
if (focusManagers[stage] == null){
focusManagers[stage] = new FocusManager(stage);
};
}
protected function hookAccessibility(_arg1:Event):void{
removeEventListener(Event.ENTER_FRAME, hookAccessibility);
initializeAccessibility();
}
public function set componentInspectorSetting(_arg1:Boolean):void{
_inspector = _arg1;
if (_inspector){
beforeComponentParameters();
} else {
afterComponentParameters();
};
}
override public function set y(_arg1:Number):void{
move(_x, _arg1);
}
public function drawFocus(_arg1:Boolean):void{
var _local2:Number;
isFocused = _arg1;
if (((!((uiFocusRect == null))) && (contains(uiFocusRect)))){
removeChild(uiFocusRect);
uiFocusRect = null;
};
if (_arg1){
uiFocusRect = (getDisplayObjectInstance(getStyleValue("focusRectSkin")) as Sprite);
if (uiFocusRect == null){
return;
};
_local2 = Number(getStyleValue("focusRectPadding"));
uiFocusRect.x = -(_local2);
uiFocusRect.y = -(_local2);
uiFocusRect.width = (width + (_local2 * 2));
uiFocusRect.height = (height + (_local2 * 2));
addChildAt(uiFocusRect, 0);
};
}
override public function set x(_arg1:Number):void{
move(_arg1, _y);
}
public function drawNow():void{
draw();
}
public static function getStyleDefinition():Object{
return (defaultStyles);
}
public static function mergeStyles(... _args):Object{
var _local5:Object;
var _local6:String;
var _local2:Object = {};
var _local3:uint = _args.length;
var _local4:uint;
while (_local4 < _local3) {
_local5 = _args[_local4];
for (_local6 in _local5) {
if (_local2[_local6] != null){
} else {
_local2[_local6] = _args[_local4][_local6];
};
};
_local4++;
};
return (_local2);
}
}
}//package fl.core
Section 11
//ComponentEvent (fl.events.ComponentEvent)
package fl.events {
import flash.events.*;
public class ComponentEvent extends Event {
public static const HIDE:String = "hide";
public static const BUTTON_DOWN:String = "buttonDown";
public static const MOVE:String = "move";
public static const RESIZE:String = "resize";
public static const ENTER:String = "enter";
public static const LABEL_CHANGE:String = "labelChange";
public static const SHOW:String = "show";
public function ComponentEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){
super(_arg1, _arg2, _arg3);
}
override public function toString():String{
return (formatToString("ComponentEvent", "type", "bubbles", "cancelable"));
}
override public function clone():Event{
return (new ComponentEvent(type, bubbles, cancelable));
}
}
}//package fl.events
Section 12
//ScrollEvent (fl.events.ScrollEvent)
package fl.events {
import flash.events.*;
public class ScrollEvent extends Event {
private var _direction:String;
private var _position:Number;
private var _delta:Number;
public static const SCROLL:String = "scroll";
public function ScrollEvent(_arg1:String, _arg2:Number, _arg3:Number){
super(ScrollEvent.SCROLL, false, false);
_direction = _arg1;
_delta = _arg2;
_position = _arg3;
}
public function get position():Number{
return (_position);
}
public function get direction():String{
return (_direction);
}
public function get delta():Number{
return (_delta);
}
override public function toString():String{
return (formatToString("ScrollEvent", "type", "bubbles", "cancelable", "direction", "delta", "position"));
}
override public function clone():Event{
return (new ScrollEvent(_direction, _delta, _position));
}
}
}//package fl.events
Section 13
//FocusManager (fl.managers.FocusManager)
package fl.managers {
import fl.controls.*;
import flash.display.*;
import fl.core.*;
import flash.events.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
public class FocusManager implements IFocusManager {
private var focusableObjects:Dictionary;
private var _showFocusIndicator:Boolean;// = true
private var defButton:Button;
private var focusableCandidates:Array;
private var _form:DisplayObjectContainer;
private var _defaultButtonEnabled:Boolean;// = true
private var activated:Boolean;// = false
private var _defaultButton:Button;
private var calculateCandidates:Boolean;// = true
private var lastFocus:InteractiveObject;
private var lastAction:String;
public function FocusManager(_arg1:DisplayObjectContainer){
focusableObjects = new Dictionary(true);
if (_arg1 != null){
_form = _arg1;
addFocusables(DisplayObject(_arg1));
_arg1.addEventListener(Event.ADDED, addedHandler);
_arg1.addEventListener(Event.REMOVED, removedHandler);
activate();
};
}
public function get showFocusIndicator():Boolean{
return (_showFocusIndicator);
}
private function getIndexOfNextObject(_arg1:int, _arg2:Boolean, _arg3:Boolean, _arg4:String):int{
var _local7:DisplayObject;
var _local8:IFocusManagerGroup;
var _local9:int;
var _local10:DisplayObject;
var _local11:IFocusManagerGroup;
var _local5:int = focusableCandidates.length;
var _local6:int = _arg1;
while (true) {
if (_arg2){
_arg1--;
} else {
_arg1++;
};
if (_arg3){
if (((_arg2) && ((_arg1 < 0)))){
break;
};
if (((!(_arg2)) && ((_arg1 == _local5)))){
break;
};
} else {
_arg1 = ((_arg1 + _local5) % _local5);
if (_local6 == _arg1){
break;
};
};
if (isValidFocusCandidate(focusableCandidates[_arg1], _arg4)){
_local7 = DisplayObject(findFocusManagerComponent(focusableCandidates[_arg1]));
if ((_local7 is IFocusManagerGroup)){
_local8 = IFocusManagerGroup(_local7);
_local9 = 0;
while (_local9 < focusableCandidates.length) {
_local10 = focusableCandidates[_local9];
if ((_local10 is IFocusManagerGroup)){
_local11 = IFocusManagerGroup(_local10);
if ((((_local11.groupName == _local8.groupName)) && (_local11.selected))){
_arg1 = _local9;
break;
};
};
_local9++;
};
};
return (_arg1);
};
};
return (_arg1);
}
private function mouseFocusChangeHandler(_arg1:FocusEvent):void{
if ((_arg1.relatedObject is TextField)){
return;
};
_arg1.preventDefault();
}
public function set form(_arg1:DisplayObjectContainer):void{
_form = _arg1;
}
private function addFocusables(_arg1:DisplayObject, _arg2:Boolean=false):void{
var focusable:IFocusManagerComponent;
var io:InteractiveObject;
var doc:DisplayObjectContainer;
var i:int;
var child:DisplayObject;
var o = _arg1;
var skipTopLevel = _arg2;
if (!skipTopLevel){
if ((o is IFocusManagerComponent)){
focusable = IFocusManagerComponent(o);
if (focusable.focusEnabled){
if (((focusable.tabEnabled) && (isTabVisible(o)))){
focusableObjects[o] = true;
calculateCandidates = true;
};
o.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
o.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler);
};
} else {
if ((o is InteractiveObject)){
io = (o as InteractiveObject);
if (((((io) && (io.tabEnabled))) && ((findFocusManagerComponent(io) == io)))){
focusableObjects[io] = true;
calculateCandidates = true;
};
io.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
io.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler);
};
};
};
if ((o is DisplayObjectContainer)){
doc = DisplayObjectContainer(o);
o.addEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler);
if ((((((doc is Stage)) || ((doc.parent is Stage)))) || (doc.tabChildren))){
i = 0;
while (i < doc.numChildren) {
try {
child = doc.getChildAt(i);
if (child != null){
addFocusables(doc.getChildAt(i));
};
} catch(error:SecurityError) {
};
i = (i + 1);
};
};
};
}
private function getChildIndex(_arg1:DisplayObjectContainer, _arg2:DisplayObject):int{
return (_arg1.getChildIndex(_arg2));
}
public function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject{
var _local2:InteractiveObject = _arg1;
while (_arg1) {
if ((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))){
return (_arg1);
};
_arg1 = _arg1.parent;
};
return (_local2);
}
private function focusOutHandler(_arg1:FocusEvent):void{
var _local2:InteractiveObject = (_arg1.target as InteractiveObject);
}
private function isValidFocusCandidate(_arg1:DisplayObject, _arg2:String):Boolean{
var _local3:IFocusManagerGroup;
if (!isEnabledAndVisible(_arg1)){
return (false);
};
if ((_arg1 is IFocusManagerGroup)){
_local3 = IFocusManagerGroup(_arg1);
if (_arg2 == _local3.groupName){
return (false);
};
};
return (true);
}
private function setFocusToNextObject(_arg1:FocusEvent):void{
if (!hasFocusableObjects()){
return;
};
var _local2:InteractiveObject = getNextFocusManagerComponent(_arg1.shiftKey);
if (_local2){
setFocus(_local2);
};
}
private function sortFocusableObjectsTabIndex():void{
var _local1:Object;
var _local2:InteractiveObject;
focusableCandidates = [];
for (_local1 in focusableObjects) {
_local2 = InteractiveObject(_local1);
if (((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))){
focusableCandidates.push(_local2);
};
};
focusableCandidates.sort(sortByTabIndex);
}
private function removeFocusables(_arg1:DisplayObject):void{
var _local2:Object;
var _local3:DisplayObject;
if ((_arg1 is DisplayObjectContainer)){
_arg1.removeEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler);
_arg1.removeEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler);
for (_local2 in focusableObjects) {
_local3 = DisplayObject(_local2);
if (DisplayObjectContainer(_arg1).contains(_local3)){
if (_local3 == lastFocus){
lastFocus = null;
};
_local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
delete focusableObjects[_local2];
calculateCandidates = true;
};
};
};
}
private function getTopLevelFocusTarget(_arg1:InteractiveObject):InteractiveObject{
while (_arg1 != InteractiveObject(form)) {
if ((((((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))) && (IFocusManagerComponent(_arg1).mouseFocusEnabled))) && (UIComponent(_arg1).enabled))){
return (_arg1);
};
_arg1 = _arg1.parent;
if (_arg1 == null){
break;
};
};
return (null);
}
public function sendDefaultButtonEvent():void{
defButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
}
private function addedHandler(_arg1:Event):void{
var _local2:DisplayObject = DisplayObject(_arg1.target);
if (_local2.stage){
addFocusables(DisplayObject(_arg1.target));
};
}
private function isEnabledAndVisible(_arg1:DisplayObject):Boolean{
var _local3:TextField;
var _local4:SimpleButton;
var _local2:DisplayObjectContainer = DisplayObject(form).parent;
while (_arg1 != _local2) {
if ((_arg1 is UIComponent)){
if (!UIComponent(_arg1).enabled){
return (false);
};
} else {
if ((_arg1 is TextField)){
_local3 = TextField(_arg1);
if ((((_local3.type == TextFieldType.DYNAMIC)) || (!(_local3.selectable)))){
return (false);
};
} else {
if ((_arg1 is SimpleButton)){
_local4 = SimpleButton(_arg1);
if (!_local4.enabled){
return (false);
};
};
};
};
if (!_arg1.visible){
return (false);
};
_arg1 = _arg1.parent;
};
return (true);
}
private function tabChildrenChangeHandler(_arg1:Event):void{
if (_arg1.target != _arg1.currentTarget){
return;
};
calculateCandidates = true;
var _local2:DisplayObjectContainer = DisplayObjectContainer(_arg1.target);
if (_local2.tabChildren){
addFocusables(_local2, true);
} else {
removeFocusables(_local2);
};
}
private function deactivateHandler(_arg1:Event):void{
var _local2:InteractiveObject = InteractiveObject(_arg1.target);
}
public function setFocus(_arg1:InteractiveObject):void{
if ((_arg1 is IFocusManagerComponent)){
IFocusManagerComponent(_arg1).setFocus();
} else {
form.stage.focus = _arg1;
};
}
public function getFocus():InteractiveObject{
var _local1:InteractiveObject = form.stage.focus;
return (findFocusManagerComponent(_local1));
}
private function hasFocusableObjects():Boolean{
var _local1:Object;
for (_local1 in focusableObjects) {
return (true);
};
return (false);
}
private function tabIndexChangeHandler(_arg1:Event):void{
calculateCandidates = true;
}
public function set defaultButton(_arg1:Button):void{
var _local2:Button = (_arg1) ? Button(_arg1) : null;
if (_local2 != _defaultButton){
if (_defaultButton){
_defaultButton.emphasized = false;
};
if (defButton){
defButton.emphasized = false;
};
_defaultButton = _local2;
defButton = _local2;
if (_local2){
_local2.emphasized = true;
};
};
}
private function sortFocusableObjects():void{
var _local1:Object;
var _local2:InteractiveObject;
focusableCandidates = [];
for (_local1 in focusableObjects) {
_local2 = InteractiveObject(_local1);
if (((((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))) && ((_local2.tabIndex > 0)))){
sortFocusableObjectsTabIndex();
return;
};
focusableCandidates.push(_local2);
};
focusableCandidates.sort(sortByDepth);
}
private function keyFocusChangeHandler(_arg1:FocusEvent):void{
showFocusIndicator = true;
if ((((((_arg1.keyCode == Keyboard.TAB)) || ((_arg1.keyCode == 0)))) && (!(_arg1.isDefaultPrevented())))){
setFocusToNextObject(_arg1);
_arg1.preventDefault();
};
}
private function getIndexOfFocusedObject(_arg1:DisplayObject):int{
var _local2:int = focusableCandidates.length;
var _local3:int;
_local3 = 0;
while (_local3 < _local2) {
if (focusableCandidates[_local3] == _arg1){
return (_local3);
};
_local3++;
};
return (-1);
}
public function hideFocus():void{
}
private function removedHandler(_arg1:Event):void{
var _local2:int;
var _local4:InteractiveObject;
var _local3:DisplayObject = DisplayObject(_arg1.target);
if ((((_local3 is IFocusManagerComponent)) && ((focusableObjects[_local3] == true)))){
if (_local3 == lastFocus){
IFocusManagerComponent(lastFocus).drawFocus(false);
lastFocus = null;
};
_local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
delete focusableObjects[_local3];
calculateCandidates = true;
} else {
if ((((_local3 is InteractiveObject)) && ((focusableObjects[_local3] == true)))){
_local4 = (_local3 as InteractiveObject);
if (_local4){
if (_local4 == lastFocus){
lastFocus = null;
};
delete focusableObjects[_local4];
calculateCandidates = true;
};
_local3.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
};
};
removeFocusables(_local3);
}
private function sortByDepth(_arg1:InteractiveObject, _arg2:InteractiveObject):Number{
var _local5:int;
var _local6:String;
var _local7:String;
var _local3 = "";
var _local4 = "";
var _local8 = "0000";
var _local9:DisplayObject = DisplayObject(_arg1);
var _local10:DisplayObject = DisplayObject(_arg2);
while (((!((_local9 == DisplayObject(form)))) && (_local9.parent))) {
_local5 = getChildIndex(_local9.parent, _local9);
_local6 = _local5.toString(16);
if (_local6.length < 4){
_local7 = (_local8.substring(0, (4 - _local6.length)) + _local6);
};
_local3 = (_local7 + _local3);
_local9 = _local9.parent;
};
while (((!((_local10 == DisplayObject(form)))) && (_local10.parent))) {
_local5 = getChildIndex(_local10.parent, _local10);
_local6 = _local5.toString(16);
if (_local6.length < 4){
_local7 = (_local8.substring(0, (4 - _local6.length)) + _local6);
};
_local4 = (_local7 + _local4);
_local10 = _local10.parent;
};
return (((_local3 > _local4)) ? 1 : ((_local3 < _local4)) ? -1 : 0);
}
public function get defaultButton():Button{
return (_defaultButton);
}
private function activateHandler(_arg1:Event):void{
var _local2:InteractiveObject = InteractiveObject(_arg1.target);
if (lastFocus){
if ((lastFocus is IFocusManagerComponent)){
IFocusManagerComponent(lastFocus).setFocus();
} else {
form.stage.focus = lastFocus;
};
};
lastAction = "ACTIVATE";
}
public function showFocus():void{
}
public function set defaultButtonEnabled(_arg1:Boolean):void{
_defaultButtonEnabled = _arg1;
}
public function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject{
var _local8:IFocusManagerGroup;
if (!hasFocusableObjects()){
return (null);
};
if (calculateCandidates){
sortFocusableObjects();
calculateCandidates = false;
};
var _local2:DisplayObject = form.stage.focus;
_local2 = DisplayObject(findFocusManagerComponent(InteractiveObject(_local2)));
var _local3 = "";
if ((_local2 is IFocusManagerGroup)){
_local8 = IFocusManagerGroup(_local2);
_local3 = _local8.groupName;
};
var _local4:int = getIndexOfFocusedObject(_local2);
var _local5:Boolean;
var _local6:int = _local4;
if (_local4 == -1){
if (_arg1){
_local4 = focusableCandidates.length;
};
_local5 = true;
};
var _local7:int = getIndexOfNextObject(_local4, _arg1, _local5, _local3);
return (findFocusManagerComponent(focusableCandidates[_local7]));
}
private function mouseDownHandler(_arg1:MouseEvent):void{
if (_arg1.isDefaultPrevented()){
return;
};
var _local2:InteractiveObject = getTopLevelFocusTarget(InteractiveObject(_arg1.target));
if (!_local2){
return;
};
showFocusIndicator = false;
if (((((!((_local2 == lastFocus))) || ((lastAction == "ACTIVATE")))) && (!((_local2 is TextField))))){
setFocus(_local2);
};
lastAction = "MOUSEDOWN";
}
private function isTabVisible(_arg1:DisplayObject):Boolean{
var _local2:DisplayObjectContainer = _arg1.parent;
while (((((_local2) && (!((_local2 is Stage))))) && (!(((_local2.parent) && ((_local2.parent is Stage))))))) {
if (!_local2.tabChildren){
return (false);
};
_local2 = _local2.parent;
};
return (true);
}
public function get nextTabIndex():int{
return (0);
}
private function keyDownHandler(_arg1:KeyboardEvent):void{
if (_arg1.keyCode == Keyboard.TAB){
lastAction = "KEY";
if (calculateCandidates){
sortFocusableObjects();
calculateCandidates = false;
};
};
if (((((((defaultButtonEnabled) && ((_arg1.keyCode == Keyboard.ENTER)))) && (defaultButton))) && (defButton.enabled))){
sendDefaultButtonEvent();
};
}
private function focusInHandler(_arg1:FocusEvent):void{
var _local3:Button;
var _local2:InteractiveObject = InteractiveObject(_arg1.target);
if (form.contains(_local2)){
lastFocus = findFocusManagerComponent(InteractiveObject(_local2));
if ((lastFocus is Button)){
_local3 = Button(lastFocus);
if (defButton){
defButton.emphasized = false;
defButton = _local3;
_local3.emphasized = true;
};
} else {
if (((defButton) && (!((defButton == _defaultButton))))){
defButton.emphasized = false;
defButton = _defaultButton;
_defaultButton.emphasized = true;
};
};
};
}
private function tabEnabledChangeHandler(_arg1:Event):void{
calculateCandidates = true;
var _local2:InteractiveObject = InteractiveObject(_arg1.target);
var _local3 = (focusableObjects[_local2] == true);
if (_local2.tabEnabled){
if (((!(_local3)) && (isTabVisible(_local2)))){
if (!(_local2 is IFocusManagerComponent)){
_local2.focusRect = false;
};
focusableObjects[_local2] = true;
};
} else {
if (_local3){
delete focusableObjects[_local2];
};
};
}
public function set showFocusIndicator(_arg1:Boolean):void{
_showFocusIndicator = _arg1;
}
public function get form():DisplayObjectContainer{
return (_form);
}
private function sortByTabIndex(_arg1:InteractiveObject, _arg2:InteractiveObject):int{
return (((_arg1.tabIndex > _arg2.tabIndex)) ? 1 : ((_arg1.tabIndex < _arg2.tabIndex)) ? -1 : sortByDepth(_arg1, _arg2));
}
public function get defaultButtonEnabled():Boolean{
return (_defaultButtonEnabled);
}
public function activate():void{
if (activated){
return;
};
form.stage.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler, false, 0, true);
form.stage.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler, false, 0, true);
form.addEventListener(FocusEvent.FOCUS_IN, focusInHandler, true);
form.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true);
form.stage.addEventListener(Event.ACTIVATE, activateHandler, false, 0, true);
form.stage.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true);
form.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
form.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true);
activated = true;
if (lastFocus){
setFocus(lastFocus);
};
}
public function deactivate():void{
form.stage.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler);
form.stage.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler);
form.removeEventListener(FocusEvent.FOCUS_IN, focusInHandler, true);
form.removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true);
form.stage.removeEventListener(Event.ACTIVATE, activateHandler);
form.stage.removeEventListener(Event.DEACTIVATE, deactivateHandler);
form.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
form.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true);
activated = false;
}
}
}//package fl.managers
Section 14
//IFocusManager (fl.managers.IFocusManager)
package fl.managers {
import fl.controls.*;
import flash.display.*;
public interface IFocusManager {
function getFocus():InteractiveObject;
function deactivate():void;
function set defaultButton(_arg1:Button):void;
function set showFocusIndicator(_arg1:Boolean):void;
function get defaultButtonEnabled():Boolean;
function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject;
function get nextTabIndex():int;
function get defaultButton():Button;
function get showFocusIndicator():Boolean;
function hideFocus():void;
function activate():void;
function showFocus():void;
function set defaultButtonEnabled(_arg1:Boolean):void;
function setFocus(_arg1:InteractiveObject):void;
function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject;
}
}//package fl.managers
Section 15
//IFocusManagerComponent (fl.managers.IFocusManagerComponent)
package fl.managers {
public interface IFocusManagerComponent {
function set focusEnabled(_arg1:Boolean):void;
function drawFocus(_arg1:Boolean):void;
function setFocus():void;
function get focusEnabled():Boolean;
function get tabEnabled():Boolean;
function get tabIndex():int;
function get mouseFocusEnabled():Boolean;
}
}//package fl.managers
Section 16
//IFocusManagerGroup (fl.managers.IFocusManagerGroup)
package fl.managers {
public interface IFocusManagerGroup {
function get groupName():String;
function get selected():Boolean;
function set groupName(_arg1:String):void;
function set selected(_arg1:Boolean):void;
}
}//package fl.managers
Section 17
//StyleManager (fl.managers.StyleManager)
package fl.managers {
import fl.core.*;
import flash.text.*;
import flash.utils.*;
public class StyleManager {
private var classToInstancesDict:Dictionary;
private var globalStyles:Object;
private var styleToClassesHash:Object;
private var classToStylesDict:Dictionary;
private var classToDefaultStylesDict:Dictionary;
private static var _instance:StyleManager;
public function StyleManager(){
styleToClassesHash = {};
classToInstancesDict = new Dictionary(true);
classToStylesDict = new Dictionary(true);
classToDefaultStylesDict = new Dictionary(true);
globalStyles = UIComponent.getStyleDefinition();
}
public static function clearComponentStyle(_arg1:Object, _arg2:String):void{
var _local3:Class = getClassDef(_arg1);
var _local4:Object = getInstance().classToStylesDict[_local3];
if (((!((_local4 == null))) && (!((_local4[_arg2] == null))))){
delete _local4[_arg2];
invalidateComponentStyle(_local3, _arg2);
};
}
private static function getClassDef(_arg1:Object):Class{
var component = _arg1;
if ((component is Class)){
return ((component as Class));
};
try {
return ((getDefinitionByName(getQualifiedClassName(component)) as Class));
} catch(e:Error) {
if ((component is UIComponent)){
try {
return ((component.loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(component)) as Class));
} catch(e:Error) {
};
};
};
return (null);
}
public static function clearStyle(_arg1:String):void{
setStyle(_arg1, null);
}
public static function setComponentStyle(_arg1:Object, _arg2:String, _arg3:Object):void{
var _local4:Class = getClassDef(_arg1);
var _local5:Object = getInstance().classToStylesDict[_local4];
if (_local5 == null){
_local5 = (getInstance().classToStylesDict[_local4] = {});
};
if (_local5 == _arg3){
return;
};
_local5[_arg2] = _arg3;
invalidateComponentStyle(_local4, _arg2);
}
private static function setSharedStyles(_arg1:UIComponent):void{
var _local5:String;
var _local2:StyleManager = getInstance();
var _local3:Class = getClassDef(_arg1);
var _local4:Object = _local2.classToDefaultStylesDict[_local3];
for (_local5 in _local4) {
_arg1.setSharedStyle(_local5, getSharedStyle(_arg1, _local5));
};
}
public static function getComponentStyle(_arg1:Object, _arg2:String):Object{
var _local3:Class = getClassDef(_arg1);
var _local4:Object = getInstance().classToStylesDict[_local3];
return (((_local4)==null) ? null : _local4[_arg2]);
}
private static function getInstance(){
if (_instance == null){
_instance = new (StyleManager);
};
return (_instance);
}
private static function invalidateComponentStyle(_arg1:Class, _arg2:String):void{
var _local4:Object;
var _local5:UIComponent;
var _local3:Dictionary = getInstance().classToInstancesDict[_arg1];
if (_local3 == null){
return;
};
for (_local4 in _local3) {
_local5 = (_local4 as UIComponent);
if (_local5 == null){
} else {
_local5.setSharedStyle(_arg2, getSharedStyle(_local5, _arg2));
};
};
}
private static function invalidateStyle(_arg1:String):void{
var _local3:Object;
var _local2:Dictionary = getInstance().styleToClassesHash[_arg1];
if (_local2 == null){
return;
};
for (_local3 in _local2) {
invalidateComponentStyle(Class(_local3), _arg1);
};
}
public static function registerInstance(_arg1:UIComponent):void{
var target:Class;
var defaultStyles:Object;
var styleToClasses:Object;
var n:String;
var instance = _arg1;
var inst:StyleManager = getInstance();
var classDef:Class = getClassDef(instance);
if (classDef == null){
return;
};
if (inst.classToInstancesDict[classDef] == null){
inst.classToInstancesDict[classDef] = new Dictionary(true);
target = classDef;
while (defaultStyles == null) {
if (target["getStyleDefinition"] != null){
defaultStyles = target["getStyleDefinition"]();
break;
};
try {
target = (instance.loaderInfo.applicationDomain.getDefinition(getQualifiedSuperclassName(target)) as Class);
} catch(err:Error) {
try {
target = (getDefinitionByName(getQualifiedSuperclassName(target)) as Class);
} catch(e:Error) {
defaultStyles = UIComponent.getStyleDefinition();
break;
};
};
};
styleToClasses = inst.styleToClassesHash;
for (n in defaultStyles) {
if (styleToClasses[n] == null){
styleToClasses[n] = new Dictionary(true);
};
styleToClasses[n][classDef] = true;
};
inst.classToDefaultStylesDict[classDef] = defaultStyles;
if (inst.classToStylesDict[classDef] == null){
inst.classToStylesDict[classDef] = {};
};
};
inst.classToInstancesDict[classDef][instance] = true;
setSharedStyles(instance);
}
public static function getStyle(_arg1:String):Object{
return (getInstance().globalStyles[_arg1]);
}
private static function getSharedStyle(_arg1:UIComponent, _arg2:String):Object{
var _local3:Class = getClassDef(_arg1);
var _local4:StyleManager = getInstance();
var _local5:Object = _local4.classToStylesDict[_local3][_arg2];
if (_local5 != null){
return (_local5);
};
_local5 = _local4.globalStyles[_arg2];
if (_local5 != null){
return (_local5);
};
return (_local4.classToDefaultStylesDict[_local3][_arg2]);
}
public static function setStyle(_arg1:String, _arg2:Object):void{
var _local3:Object = getInstance().globalStyles;
if ((((_local3[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){
return;
};
_local3[_arg1] = _arg2;
invalidateStyle(_arg1);
}
}
}//package fl.managers
Section 18
//MainTimeline (NiminFetishFantasyv0_fla.MainTimeline)
package NiminFetishFantasyv0_fla {
import fl.controls.*;
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.filters.*;
import flash.geom.*;
import flash.media.*;
import flash.net.*;
import flash.printing.*;
import flash.xml.*;
public dynamic class MainTimeline extends MovieClip {
public var libUp:upArrow;
public var exhaustionPenalty:int;
public var eMaxHP:int;
public var hyperHappyLevel:int;
public var malonPreg:int;
public var pregnancyType:int;
public var senUp:upArrow;
public var vagElastic:Number;
public var ePref:int;
public var horseAffinity:int;
public var eHP:int;
public var mistressRep:int;
public var babyFactLevel:int;
public var boobTotal:int;
public var outputWindow:TextField;
public var tail:int;
public var sen:int;
public var DayValuePane:TextField;
public var i:int;
public var malonChildren:int;
public var Choice2Outline:MovieClip;
public var runMod:int;
public var invertColorsOutline:MovieClip;
public var Choice10Outline:MovieClip;
public var tallness:int;
public var statValuePane:TextField;
public var babyFree:int;
public var vagSizeMod:Number;
public var clockPane:TextField;
public var eCoin:int;
public var hairColor:int;
public var inBag:Boolean;
public var bgC:MovieClip;
public var eGen:int;
public var strUp:upArrow;
public var hrs:int;
public var mentaUp:upArrow;
public var currentZone:int;
public var libDown:downArrow;
public var SexP:int;
public var teatSize:int;
public var Choice7Outline:MovieClip;
public var heatTime:int;
public var milkMod:int;
public var invertColors:TextField;
public var bodyBuildLevel:int;
public var DayPane:TextField;
public var HP:int;
public var levelPane:TextField;
public var nipplePlay:int;
public var eItem:int;
public var levelUP:int;
public var human:int;
public var enticeMod:int;
public var attireTop:int;
public var vagSize:int;
public var masoPot:int;
public var udderEngorgement:int;
public var Choice3Outline:MovieClip;
public var levelValuePane:TextField;
public var showBalls:Boolean;
public var vulvaSize:int;
public var Choice11Outline:MovieClip;
public var ment:int;
public var pregChanceMod:int;
public var lustDown:downArrow;
public var eMenta:int;
public var hairLength:int;
public var sMasoPot:int;
public var clitSize:int;
public var humanAffinity:int;
public var udderPlay:int;
public var cow:int;
public var vagTotal:int;
public var udders:Boolean;
public var milkHPMod:int;
public var wolfAffinity:int;
public var body:int;
public var lust:int;
public var attireBot:int;
public var newGame:TextField;
public var eSen:int;
public var Choice8Outline:MovieClip;
public var inShop:Boolean;
public var hpUp:upArrow;
public var currentItems:int;
public var hpDown:downArrow;
public var currentRegion:TextField;
public var stashArray3:Array;
public var cockTotal:int;
public var stashArray1:Array;
public var nippleSize:int;
public var stashArray2:Array;
public var hour:int;
public var lustUp:upArrow;
public var itemArray1:Array;
public var wolfCocks:int;
public var breastSize:int;
public var heat:int;
public var vagMoist:int;
public var itemArray3:Array;
public var loadGame:TextField;
public var itemArray2:Array;
public var milkEngorgementLevel:int;
public var mentaDown:downArrow;
public var scrollBar:UIScrollBar;
public var lactation:int;
public var butt:int;
public var blueBalls:int;
public var nipPump:int;
public var weapon:Number;
public var Choice4Outline:MovieClip;
public var newGameOutline:MovieClip;
public var str:int;
public var doListen:Function;
public var saveGameOutline:MovieClip;
public var cockMoist:int;
public var pregTimeMod:int;
public var udderSize:int;
public var currentText:String;
public var heatMaxTime:int;
public var Choice12Outline:MovieClip;
public var wolf:int;
public var skinType:int;
public var balls:int;
public var cockPump:int;
public var strDown:downArrow;
public var pageNum:TextField;
public var currentStash:int;
public var lib:int;
public var Choice9Outline:MovieClip;
public var knot:Boolean;
public var Choice1:TextField;
public var Choice2:TextField;
public var Choice5:TextField;
public var Choice6:TextField;
public var Choice7:TextField;
public var Choice8:TextField;
public var Choice9:TextField;
public var Choice3:TextField;
public var Choice4:TextField;
public var exhaustion:int;
public var currentState:int;
public var milkEngorgement:int;
public var enemyID:int;
public var coin:int;
public var eSexP:int;
public var dominant:int;
public var gender:int;
public var hips:int;
public var appearanceBox:MovieClip;
public var cockSizeMod:Number;
public var cumMod:Number;
public var race:int;
public var ballSize:int;
public var catCocks:int;
public var region:TextField;
public var teatPump:int;
public var udderEngorgementLevel:int;
public var Choice5Outline:MovieClip;
public var senDown:downArrow;
public var catAffinity:int;
public var loadGameOutline:MovieClip;
public var pregnancy:Boolean;
public var saveGame:TextField;
public var horseCocks:int;
public var bellyMod:int;
public var buttonChoice:int;
public var item2:int;
public var item3:int;
public var item4:int;
public var item5:int;
public var item6:int;
public var level:int;
public var item1:int;
public var vulvaPump:int;
public var lilaRep:int;
public var pregMaxTime:int;
public var Choice1Outline:MovieClip;
public var eStr:int;
public var alchemistLevel:int;
public var day:int;
public var Choice10:TextField;
public var Choice11:TextField;
public var Choice12:TextField;
public var pregnancyTime:int;
public var eLust:int;
public var appearanceText:TextField;
public var cowAffinity:int;
public var cat:int;
public var statPane:TextField;
public var horse:int;
public var eLib:int;
public var hair:int;
public var malonRep:int;
public var carryMod:int;
public var clitPump:int;
public var ears:int;
public var Choice6Outline:MovieClip;
public var humanCocks:int;
public var cockSize:int;
public var rapeMod:int;
public function MainTimeline(){
super();
addFrameScript(0, frame1);
__setProp_scrollBar_Scene1_scrollBar_1();
}
public function lactChange(amount:int):void{
if (((((lactation + amount) >= 1)) && ((lactation < 1)))){
outputMainText((("\r\rBlotches spread across your " + clothesTop()) + " around your nipples. Curiously, you dab your finger in the moistness and take a taste. Milk... Seems as though you'll have something else to take care of from now on."), false);
nipplePlay = 10;
if (udders == true){
udderPlay = 10;
};
};
if (((((lactation + amount) < 1)) && ((lactation >= 1)))){
outputMainText("\r\rYour nipples feel exceptionally dry... It seems you are no longer producing milk.", false);
nipplePlay = 0;
udderPlay = 0;
if (milkEngorgementLevel > 0){
boobChange(-1);
};
if (udderEngorgementLevel == 1){
udderChange(-1);
};
if (udderEngorgementLevel == 2){
udderChange(-2);
};
if (udderEngorgementLevel == 3){
udderChange(-3);
};
milkEngorgementLevel = 0;
udderEngorgementLevel = 0;
milkEngorgement = 0;
udderEngorgement = 0;
};
lactation = (lactation + amount);
if (lactation < 0){
lactation = 0;
};
}
public function changeBot(ID:int):void{
if (attireBot == -1){
stats(2, 2, 0, 0);
};
if (attireBot == 0){
stats(0, 4, 0, 0);
};
if (attireBot == 2){
};
if (attireBot == 4){
enticeMod = (enticeMod - 3);
stats(0, 2, 0, -2);
cumMod = (cumMod + 0.2);
};
if (attireBot == 7){
runMod = (runMod - 3);
cumMod = (cumMod - 0.2);
stats(-2, 2, 0, 0);
pregChanceMod = (pregChanceMod - 4);
};
if (attireBot == 8){
runMod = (runMod - 3);
stats(-2, 0, 3, 0);
};
if (attireBot == 10){
vagMoist = (vagMoist + 2);
cockMoist = (cockMoist + 2);
hips = (hips - 1);
stats(0, 4, 0, 0);
};
if (attireBot == 11){
vagMoist = (vagMoist + 5);
cockMoist = (cockMoist + 5);
hips = (hips - 1);
butt = (butt - 2);
stats(0, 4, 4, 0);
};
if (attireBot == 14){
cumMod = (cumMod - 0.2);
enticeMod = (enticeMod - 4);
stats(0, 4, 0, -2);
pregChanceMod = (pregChanceMod - 6);
};
if (attireBot == 15){
cumMod = (cumMod + 0.2);
runMod = (runMod - 5);
enticeMod = (enticeMod - 3);
stats(2, 4, 0, -2);
};
if (ID == -1){
if ((((attireTop == attireBot)) && (!((attireTop == -1))))){
attireBot = ID;
changeTop(-1);
};
stats(-2, -2, 0, 0);
};
if (ID == 0){
stats(0, -4, 0, 0);
};
if (ID == 2){
};
if (ID == 4){
enticeMod = (enticeMod + 3);
stats(0, -2, 0, 2);
cumMod = (cumMod - 0.2);
};
if (ID == 7){
runMod = (runMod + 3);
cumMod = (cumMod + 0.2);
stats(2, -2, 0, 0);
pregChanceMod = (pregChanceMod + 4);
};
if (ID == 8){
runMod = (runMod + 3);
stats(2, 0, -3, 0);
};
if (ID == 10){
vagMoist = (vagMoist - 2);
cockMoist = (cockMoist - 2);
hips = (hips + 1);
stats(0, -4, 0, 0);
};
if (ID == 11){
vagMoist = (vagMoist - 5);
cockMoist = (cockMoist - 5);
hips = (hips + 1);
butt = (butt + 2);
stats(0, 4, 4, 0);
};
if (ID == 14){
cumMod = (cumMod + 0.2);
enticeMod = (enticeMod + 4);
stats(0, -4, 0, 2);
pregChanceMod = (pregChanceMod + 6);
};
if (ID == 15){
cumMod = (cumMod - 0.2);
runMod = (runMod + 5);
enticeMod = (enticeMod + 3);
stats(-2, -3, 0, 2);
};
if ((((((attireTop == attireBot)) && (!((ID == 0))))) && (!((ID == -1))))){
changeTop(0);
};
attireBot = ID;
}
public function plural(topic:int):String{
var tempStr:String;
tempStr = "";
if ((((topic == 1)) && ((cockTotal > 1)))){
tempStr = "s";
};
if ((((topic == 2)) && ((vagTotal > 1)))){
tempStr = "s";
};
if ((((topic == 3)) && ((cockTotal < 2)))){
tempStr = "s";
};
if ((((topic == 4)) && ((vagTotal < 2)))){
tempStr = "s";
};
if ((((topic == 5)) && ((cockTotal < 2)))){
tempStr = "its";
};
if ((((topic == 5)) && ((cockTotal > 1)))){
tempStr = "their";
};
if ((((topic == 6)) && ((vagTotal < 2)))){
tempStr = "its";
};
if ((((topic == 6)) && ((vagTotal > 1)))){
tempStr = "their";
};
return (tempStr);
}
public function clothesTop():String{
var tempStr:String;
tempStr = ("CLOTHES TOP ERROR " + attireTop);
if (attireTop == -1){
tempStr = "tattered shreds";
};
if (attireTop == 0){
tempStr = "invisible underwear";
};
if (attireTop == 1){
tempStr = "shirt";
};
if (attireTop == 3){
if (boobTotal == 2){
tempStr = "bikini top";
};
if (boobTotal == 6){
tempStr = "bikini tops";
};
};
if (attireTop == 5){
tempStr = "elegant dress";
};
if (attireTop == 6){
tempStr = "latex suit";
};
if (attireTop == 9){
tempStr = "blouse";
};
if (attireTop == 12){
tempStr = "sundress";
};
if (attireTop == 13){
tempStr = "skimpy dress";
};
return (tempStr);
}
public function doLoad(slot:int):void{
var so:SharedObject;
var loadArray:Array;
var itemLoadArray:Array;
var stashLoadArray:Array;
so = SharedObject.getLocal("NiminFetishFantasy");
loadArray = [];
itemLoadArray = [];
stashLoadArray = [];
if (slot == 1){
loadArray = so.data.saveGame1;
itemLoadArray = so.data.itemSave1;
stashLoadArray = so.data.stashSave1;
};
if (slot == 2){
loadArray = so.data.saveGame2;
itemLoadArray = so.data.itemSave2;
stashLoadArray = so.data.stashSave2;
};
if (slot == 3){
loadArray = so.data.saveGame3;
itemLoadArray = so.data.itemSave3;
stashLoadArray = so.data.stashSave3;
};
if (slot == 5){
loadArray = so.data.saveGame5;
itemLoadArray = so.data.itemSave5;
stashLoadArray = so.data.stashSave5;
};
if (slot == 6){
loadArray = so.data.saveGame6;
itemLoadArray = so.data.itemSave6;
stashLoadArray = so.data.stashSave6;
};
if (slot == 7){
loadArray = so.data.saveGame7;
itemLoadArray = so.data.itemSave7;
stashLoadArray = so.data.stashSave7;
};
if (slot == 9){
loadArray = so.data.saveGame9;
itemLoadArray = so.data.itemSave9;
stashLoadArray = so.data.stashSave9;
};
if (slot == 10){
loadArray = so.data.saveGame10;
trace(("pre load: " + so.data.itemSave10));
itemLoadArray = so.data.itemSave10;
itemArray1[2] = 200;
trace(("post load: " + so.data.itemSave10));
stashLoadArray = so.data.stashSave10;
};
if (slot == 11){
loadArray = so.data.saveGame11;
itemLoadArray = so.data.itemSave11;
stashLoadArray = so.data.stashSave11;
};
trace(itemLoadArray);
currentState = loadArray[0];
currentZone = loadArray[1];
str = loadArray[2];
ment = loadArray[3];
lib = loadArray[4];
sen = loadArray[5];
HP = loadArray[6];
lust = loadArray[7];
coin = loadArray[8];
day = loadArray[9];
hour = loadArray[10];
SexP = loadArray[11];
levelUP = loadArray[12];
level = loadArray[13];
runMod = loadArray[14];
rapeMod = loadArray[15];
cumMod = loadArray[16];
cockSizeMod = loadArray[17];
milkMod = loadArray[18];
carryMod = loadArray[19];
bellyMod = loadArray[20];
pregChanceMod = loadArray[21];
pregTimeMod = loadArray[22];
enticeMod = loadArray[23];
milkHPMod = loadArray[96];
vagSizeMod = loadArray[97];
vagElastic = loadArray[98];
gender = loadArray[24];
race = loadArray[25];
body = loadArray[26];
dominant = loadArray[27];
hips = loadArray[28];
butt = loadArray[29];
tallness = loadArray[30];
skinType = loadArray[31];
tail = loadArray[32];
ears = loadArray[33];
hair = loadArray[93];
hairColor = loadArray[94];
hairLength = loadArray[95];
cockTotal = loadArray[34];
humanCocks = loadArray[35];
horseCocks = loadArray[36];
wolfCocks = loadArray[37];
catCocks = loadArray[38];
cockSize = loadArray[39];
cockMoist = loadArray[40];
balls = loadArray[41];
ballSize = loadArray[42];
showBalls = loadArray[43];
knot = loadArray[44];
breastSize = loadArray[45];
boobTotal = loadArray[46];
nippleSize = loadArray[47];
udders = loadArray[48];
udderSize = loadArray[49];
teatSize = loadArray[50];
clitSize = loadArray[51];
vagTotal = loadArray[52];
vagSize = loadArray[53];
vagMoist = loadArray[54];
vulvaSize = loadArray[55];
attireTop = loadArray[56];
attireBot = loadArray[57];
weapon = loadArray[58];
pregnancy = loadArray[59];
pregnancyType = loadArray[60];
pregnancyTime = loadArray[61];
pregMaxTime = loadArray[62];
exhaustion = loadArray[63];
exhaustionPenalty = loadArray[64];
milkEngorgement = loadArray[65];
milkEngorgementLevel = loadArray[66];
udderEngorgement = loadArray[67];
udderEngorgementLevel = loadArray[68];
heat = loadArray[69];
heatTime = loadArray[70];
heatMaxTime = loadArray[71];
lactation = loadArray[72];
nipplePlay = loadArray[73];
udderPlay = loadArray[74];
blueBalls = loadArray[75];
teatPump = loadArray[76];
nipPump = loadArray[77];
cockPump = loadArray[78];
clitPump = loadArray[79];
vulvaPump = loadArray[80];
masoPot = loadArray[90];
sMasoPot = loadArray[91];
babyFree = loadArray[92];
humanAffinity = loadArray[81];
horseAffinity = loadArray[82];
wolfAffinity = loadArray[83];
catAffinity = loadArray[84];
cowAffinity = loadArray[85];
lilaRep = loadArray[86];
malonRep = loadArray[87];
malonPreg = loadArray[88];
malonChildren = loadArray[89];
mistressRep = loadArray[99];
babyFactLevel = loadArray[100];
bodyBuildLevel = loadArray[101];
hyperHappyLevel = loadArray[102];
alchemistLevel = loadArray[103];
trace(("check " + loadArray[103]));
trace("check 1");
if (itemLoadArray.length < 5){
itemArray1 = itemLoadArray[0];
itemArray2 = itemLoadArray[1];
itemArray3 = itemLoadArray[2];
} else {
itemArray1 = itemLoadArray.slice(0, 13);
itemArray2 = itemLoadArray.slice(13, 26);
itemArray3 = itemLoadArray.slice(26);
};
if (itemLoadArray.length < 5){
stashArray1 = stashLoadArray[0];
stashArray2 = stashLoadArray[1];
stashArray3 = stashLoadArray[2];
} else {
stashArray1 = stashLoadArray.slice(0, 13);
stashArray2 = stashLoadArray.slice(13, 26);
stashArray3 = stashLoadArray.slice(26);
};
currentRegion.visible = true;
region.visible = true;
hideUpDown();
statPane.visible = true;
statValuePane.visible = true;
DayPane.visible = true;
DayValuePane.visible = true;
clockPane.visible = true;
levelPane.visible = true;
levelValuePane.visible = true;
stats(0, 0, 0, 0);
dayTime(0);
doSexP(0);
}
public function bodyType():void{
bc();
if (gender == 1){
viewButtonOutline(0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0);
viewButtonText(0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0);
buttonWrite(2, "Bodybuilder");
buttonWrite(5, "Average");
buttonWrite(7, "Femme Boy");
buttonWrite(10, "Child");
};
if (gender == 2){
viewButtonOutline(0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0);
viewButtonText(0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0);
buttonWrite(2, "Bodybuilder");
buttonWrite(5, "Average");
buttonWrite(3, "Voluptuous");
buttonWrite(10, "Child");
};
if (gender == 3){
viewButtonOutline(0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0);
viewButtonText(0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0);
buttonWrite(2, "Bodybuilder");
buttonWrite(5, "Masculine");
buttonWrite(6, "Feminine");
buttonWrite(10, "Child");
};
outputMainText("Choose your body type. Types determine height and a few beginning characteristics. Their names describe what they look like.", true);
doListen = function ():void{
if (gender == 1){
if (buttonChoice == 2){
body = 29;
hips = 4;
butt = 4;
tallness = (71 + Math.floor((percent() / 20)));
str = (str + 1);
stats(0, 0, 0, 0);
doStartingDescription();
};
if (buttonChoice == 5){
body = 20;
hips = 3;
butt = 3;
tallness = (68 + Math.floor((percent() / 20)));
lib = (lib + 1);
stats(0, 0, 0, 0);
doStartingDescription();
};
if (buttonChoice == 7){
body = 15;
hips = 7;
butt = 6;
breastSize = 2;
nippleSize = 2;
tallness = (60 + Math.floor((percent() / 20)));
sen = (sen + 1);
stats(0, 0, 0, 0);
doStartingDescription();
};
if (buttonChoice == 10){
body = 7;
hips = 1;
butt = 2;
tallness = (42 + Math.floor((percent() / 20)));
sen = (sen + 2);
ment = (ment - 2);
str = (str - 4);
lib = (lib + 2);
cockSize = 6;
cockMoist = 1;
ballSize = 1;
stats(0, 0, 0, 0);
doStartingDescription();
};
};
if (gender == 2){
if (buttonChoice == 2){
body = 29;
hips = 5;
butt = 4;
tallness = (68 + Math.floor((percent() / 20)));
breastSize = 4;
nippleSize = 4;
str = (str + 1);
stats(0, 0, 0, 0);
doStartingDescription();
};
if (buttonChoice == 3){
body = 16;
hips = 9;
butt = 6;
tallness = (60 + Math.floor((percent() / 20)));
breastSize = 10;
nippleSize = 10;
lib = (lib + 2);
stats(0, 0, 0, 0);
doStartingDescription();
};
if (buttonChoice == 5){
body = 13;
hips = 6;
butt = 5;
tallness = (60 + Math.floor((percent() / 20)));
breastSize = 6;
nippleSize = 6;
ment = (ment + 1);
stats(0, 0, 0, 0);
doStartingDescription();
};
if (buttonChoice == 10){
body = 7;
hips = 2;
butt = 2;
tallness = (41 + Math.floor((percent() / 20)));
sen = (sen + 2);
ment = (ment - 2);
str = (str - 4);
lib = (lib + 2);
vagSize = 6;
breastSize = 2;
nippleSize = 2;
vulvaSize = 2;
clitSize = 1;
vagMoist = 1;
stats(0, 0, 0, 0);
doStartingDescription();
};
};
if (gender == 3){
if (buttonChoice == 2){
body = 29;
hips = 4;
butt = 4;
tallness = (68 + Math.floor((percent() / 20)));
breastSize = 6;
nippleSize = 6;
str = (str + 1);
stats(0, 0, 0, 0);
doStartingDescription();
};
if (buttonChoice == 5){
body = 19;
hips = 3;
butt = 3;
tallness = (62 + Math.floor((percent() / 20)));
breastSize = 2;
nippleSize = 2;
lib = (lib + 1);
stats(0, 0, 0, 0);
doStartingDescription();
};
if (buttonChoice == 6){
body = 14;
hips = 5;
butt = 4;
tallness = (58 + Math.floor((percent() / 20)));
breastSize = 6;
nippleSize = 6;
ment = (ment + 1);
stats(0, 0, 0, 0);
doStartingDescription();
};
if (buttonChoice == 10){
body = 7;
hips = 2;
butt = 2;
tallness = (42 + Math.floor((percent() / 20)));
sen = (sen + 2);
ment = (ment - 2);
str = (str - 4);
lib = (lib + 2);
cockSize = 4;
cockMoist = 1;
ballSize = 1;
vagSize = 4;
clitSize = 1;
vagMoist = 1;
vulvaSize = 1;
breastSize = 2;
nippleSize = 2;
stats(0, 0, 0, 0);
doStartingDescription();
};
};
};
}
public function viewButtonText(button1:int, button2:int, button3:int, button4:int, button5:int, button6:int, button7:int, button8:int, button9:int, button10:int, button11:int, button12:int):void{
if (button1 == 0){
Choice1.visible = false;
};
if (button1 == 1){
Choice1.visible = true;
};
if (button2 == 0){
Choice2.visible = false;
};
if (button2 == 1){
Choice2.visible = true;
};
if (button3 == 0){
Choice3.visible = false;
};
if (button3 == 1){
Choice3.visible = true;
};
if (button4 == 0){
Choice4.visible = false;
};
if (button4 == 1){
Choice4.visible = true;
};
if (button5 == 0){
Choice5.visible = false;
};
if (button5 == 1){
Choice5.visible = true;
};
if (button6 == 0){
Choice6.visible = false;
};
if (button6 == 1){
Choice6.visible = true;
};
if (button7 == 0){
Choice7.visible = false;
};
if (button7 == 1){
Choice7.visible = true;
};
if (button8 == 0){
Choice8.visible = false;
};
if (button8 == 1){
Choice8.visible = true;
};
if (button9 == 0){
Choice9.visible = false;
};
if (button9 == 1){
Choice9.visible = true;
};
if (button10 == 0){
Choice10.visible = false;
};
if (button10 == 1){
Choice10.visible = true;
};
if (button11 == 0){
Choice11.visible = false;
};
if (button11 == 1){
Choice11.visible = true;
};
if (button12 == 0){
Choice12.visible = false;
};
if (button12 == 1){
Choice12.visible = true;
};
}
public function loadG(e:MouseEvent):void{
loadGo();
}
public function clitDesc():String{
var chance:int;
var tempStr:String;
chance = percent();
tempStr = ("CLIT ERROR " + clitSize);
if (chance <= 100){
if (clitSize <= 2){
tempStr = "tiny";
};
if ((((clitSize > 2)) && ((clitSize <= 3)))){
tempStr = "nibble-able";
};
if ((((clitSize > 3)) && ((clitSize <= 6)))){
tempStr = "protruding";
};
if ((((clitSize > 6)) && ((clitSize <= 12)))){
tempStr = "blatant";
};
if ((((clitSize > 12)) && ((clitSize <= 25)))){
tempStr = "suckable";
};
if ((((clitSize > 25)) && ((clitSize <= 50)))){
tempStr = "cock-like";
};
if ((((clitSize > 50)) && ((clitSize <= 100)))){
tempStr = "horsecock-like";
};
if ((((clitSize > 100)) && ((clitSize <= 140)))){
tempStr = "arm-length";
};
if ((((clitSize > 140)) && ((clitSize <= 300)))){
tempStr = "person-sized";
};
if (clitSize > 300){
tempStr = "obscene";
};
};
if (chance > 50){
if (clitSize <= 2){
tempStr = "small";
};
if ((((clitSize > 2)) && ((clitSize <= 3)))){
tempStr = "pinchable";
};
if ((((clitSize > 3)) && ((clitSize <= 6)))){
tempStr = "flickable";
};
if ((((clitSize > 6)) && ((clitSize <= 12)))){
tempStr = "panty-tenting";
};
if ((((clitSize > 12)) && ((clitSize <= 25)))){
tempStr = "stroke-able";
};
if ((((clitSize > 25)) && ((clitSize <= 50)))){
tempStr = "huge";
};
if ((((clitSize > 50)) && ((clitSize <= 100)))){
tempStr = "gigantic";
};
if ((((clitSize > 100)) && ((clitSize <= 140)))){
tempStr = "doorway-smacking";
};
if ((((clitSize > 140)) && ((clitSize <= 300)))){
tempStr = "snuggle-able";
};
if (clitSize > 300){
tempStr = "obscene";
};
};
return (tempStr);
}
public function usableItem(ID:int):Boolean{
var tempBool:Boolean;
tempBool = false;
if (ID == 104){
return (true);
};
if (ID == 106){
return (true);
};
if (ID == 116){
return (true);
};
if (ID == 117){
return (true);
};
if (ID == 118){
return (true);
};
if (ID == 119){
return (true);
};
return (tempBool);
}
public function battleWin():void{
outputMainText("You walk away from the battle the victor and to the victor goes the spoils.", true);
if (eCoin != 0){
outputMainText((("\r\rSomewhere on the passed out body (you probably don't want to know where) you find " + eCoin) + " coins."), false);
doCoin(eCoin);
};
if (eItem != 0){
outputMainText((("\r\rYou manage to obtain " + itemName(eItem)) + " from your opponent."), false);
};
if (eSexP != 0){
outputMainText((("\r\rFor your efforts, you grow in experience, gaining " + eSexP) + " SexP!"), false);
doSexP(eSexP);
};
if (eItem != 0){
item1 = eItem;
};
hrs = 2;
doEnd();
}
public function checkItem(ID:int):Boolean{
var tempBool:Boolean;
var tempInt:int;
tempBool = false;
tempInt = currentItems;
currentItems = 1;
i = 1;
while (i < 37) {
if (itemID(i) == ID){
tempBool = true;
};
if (i == 12){
currentItems = 2;
};
if (i == 24){
currentItems = 3;
};
if (i == 36){
currentItems = 1;
};
i++;
};
currentItems = tempInt;
return (tempBool);
}
public function itemName(ID:int):String{
var tempStr:String;
tempStr = ("ITEM NAME ERROR " + ID);
if (ID == 0){
tempStr = "";
};
if (ID == 1){
tempStr = "Test";
};
if (ID == 101){
tempStr = "Anc Claws";
};
if (ID == 102){
tempStr = "Imb Shoes";
};
if (ID == 103){
tempStr = "Dry Sand";
};
if (ID == 104){
tempStr = "Milker";
};
if (ID == 105){
tempStr = "Cat's Meow";
};
if (ID == 106){
tempStr = "Penis Pump";
};
if (ID == 110){
tempStr = "Reduction";
};
if (ID == 111){
tempStr = "Skin Balm";
};
if (ID == 112){
tempStr = "Bol Juice";
};
if (ID == 113){
tempStr = "Taint Leaf";
};
if (ID == 114){
tempStr = "Sweet Sap";
};
if (ID == 115){
tempStr = "Poultice";
};
if (ID == 116){
tempStr = "Dagger";
};
if (ID == 117){
tempStr = "Hammer";
};
if (ID == 118){
tempStr = "Saber";
};
if (ID == 119){
tempStr = "Whip";
};
if (ID == 120){
tempStr = "Neuter";
};
if (ID == 121){
tempStr = "TS Soft";
};
if (ID == 122){
tempStr = "TS Firm";
};
if (ID == 123){
tempStr = "TS Tied";
};
if (ID == 124){
tempStr = "TS Siz";
};
if (ID == 200){
tempStr = "Lila's Gift";
};
if (ID == 201){
tempStr = "Milk C Pois";
};
if (ID == 202){
tempStr = "Co-Snak Ven";
};
if (ID == 203){
tempStr = "Wolf Fur";
};
if (ID == 204){
tempStr = "Sm Pouch";
};
if (ID == 205){
tempStr = "Sm Pouch";
};
if (ID == 206){
tempStr = "Trinket";
};
if (ID == 207){
tempStr = "Cock Carv";
};
if (ID == 208){
tempStr = "Blo Berry";
};
if (ID == 209){
tempStr = "Grain";
};
if (ID == 210){
tempStr = "Pus Fruit";
};
if (ID == 211){
tempStr = "DairE Pill";
};
if (ID == 212){
tempStr = "Red Mush";
};
if (ID == 213){
tempStr = "Wet Cloth";
};
if (ID == 214){
tempStr = "Lon Milk";
};
if (ID == 215){
tempStr = "Lon Pendant";
};
if (ID == 216){
tempStr = "Pink Ink";
};
if (ID == 217){
tempStr = "Egg Jelly";
};
if (ID == 218){
tempStr = "Bul Berry";
};
if (ID == 219){
tempStr = "Lizan Egg";
};
if (ID == 220){
tempStr = "Blondie";
};
if (ID == 221){
tempStr = "Pus Juice";
};
if (ID == 500){
tempStr = "Milk Bottle";
};
if (ID == 501){
tempStr = "Milk Jug";
};
if (ID == 502){
tempStr = "Milk Barrel";
};
if (ID == 503){
tempStr = "Lust Draft";
};
if (ID == 504){
tempStr = "Rejuv Pot";
};
if (ID == 505){
tempStr = "Bad Exper";
};
if (ID == 506){
tempStr = "Exp Preg";
};
if (ID == 507){
tempStr = "Ball Sweller";
};
if (ID == 508){
tempStr = "S Lust Draft";
};
if (ID == 509){
tempStr = "S Rejuv Pot";
};
if (ID == 510){
tempStr = "S Bad Exper";
};
if (ID == 511){
tempStr = "S Exp Preg";
};
if (ID == 0x0200){
tempStr = "S Ball Sweller";
};
if (ID == 513){
tempStr = "Gen Swap";
};
if (ID == 0x0202){
tempStr = "Maso Pot";
};
if (ID == 515){
tempStr = "Black Dye";
};
if (ID == 516){
tempStr = "Baby Free";
};
if (ID == 517){
tempStr = "Pot Pot";
};
if (ID == 518){
tempStr = "S Gen Swap";
};
if (ID == 519){
tempStr = "S Maso Pot";
};
if (ID == 520){
tempStr = "Red Dye";
};
if (ID == 521){
tempStr = "S Baby Free";
};
if (ID == 522){
tempStr = "S Pot Pot";
};
if (ID == 523){
tempStr = "Cum Vial";
};
if (ID == 524){
tempStr = "Cum Bottle";
};
if (ID == 525){
tempStr = "Cum Jug";
};
if (ID == 526){
tempStr = "Cum Barrel";
};
return (tempStr);
}
public function bc():void{
buttonChoice = 0;
}
public function percent():int{
return ((Math.floor((Math.random() * ((1 + 100) - 1))) + 1));
}
public function loseManyItem(ID:int, amount:int):void{
currentItems = 3;
i = 36;
while (i > 0) {
if (i == 12){
currentItems = 1;
};
if (i == 24){
currentItems = 2;
};
if ((((itemID(i) == ID)) && ((amount > 0)))){
if (currentItems == 1){
loseItem(i);
};
if (currentItems == 2){
loseItem((i - 12));
};
if (currentItems == 3){
loseItem((i - 24));
};
amount--;
};
i--;
};
}
public function doPlains():void{
var chance:int;
chance = percent();
if (chance <= 30){
outputMainText("You hear a hiss amidst some overgrown grass. Stopping cautiously, you manage to avoid stepping on a particularly dangerous snake. The cock-snake. Aptly named due to its head looking much like the glans of a human cock, this breed of snake is also known to devour that of the same... And if its opponent doesn't have one, they soon will.", true);
doNext();
doListen = function ():void{
enemyID = 101;
currentState = 2;
enemyBaseStats();
eMaxHP = eHP;
doBattle();
};
};
if ((((chance > 30)) && ((chance <= 55)))){
outputMainText("While trudging along the plains, you hear the stamping of hooves. Drunken song erupts in the air as a large equan man stumbles your way. His pants unbuttoned, his hand hidden within, you can see him groping his large erection. In his other hand he holds a large mug, still filled with alcohol. He smiles as he sees you, and then charges right at you!", true);
doNext();
doListen = function ():void{
enemyID = 302;
currentState = 2;
enemyBaseStats();
eMaxHP = eHP;
doBattle();
};
};
if ((((chance > 55)) && ((chance <= 75)))){
outputMainText("You wander about the open fields and find nothing but a handful of grain. At least the carbs will give you energy!", true);
item1 = 209;
hrs = 1;
doEnd();
};
if (chance > 75){
outputMainText("After a few hours of being lost amongst the vast expanse of flat plains, you come across the faint signs of a road. Would you like to follow it?", true);
buttonConfirm();
doListen = function ():void{
if (buttonChoice == 6){
if (currentZone == 1){
outputMainText("Following the road, signs of civilization come into view. Large tents flutter in the breeze, made from canvas held up by rocks and logs, with a few smaller brick buildings here and there. You can hear the soft clapping of hard feet everywhere, as you spot several large horse-like people walk and dash about.\r\rYou have now entered the Equan home-city of Firmshaft! Although, looking behind you, there seems to be no sign of the road you just took. Getting back might be a bit difficult...", true);
regionChange(2);
hrs = 4;
doEnd();
} else {
if (currentZone == 2){
outputMainText("Following the road, the level land breaks up into rolling hills. Not far, you see tall buildings of wood and stone, with open streets of dirt and pebbles, nestled between the hills. Fur-less people move all about, busy doing odd jobs or having fun.\r\rYou have found the Human home-city of Softlik! Although, looking behind you, there seems to be no sign of the road you just took. Getting back might be a bit difficult...", true);
regionChange(1);
hrs = 4;
doEnd();
};
};
} else {
outputMainText("You return from whence you came.", true);
hrs = 1;
doEnd();
};
};
};
}
public function doEnd():void{
bc();
doNext();
doListen = function ():void{
if (buttonChoice == 6){
doProcess();
};
};
}
public function hairstyleID(choice:int):int{
var tempNum:int;
tempNum = 0;
if (currentZone == 1){
if (choice == 1){
tempNum = 1;
};
if (choice == 2){
tempNum = 4;
};
if (choice == 3){
tempNum = 8;
};
if (choice == 5){
tempNum = 2;
};
if (choice == 6){
tempNum = 3;
};
if (choice == 7){
tempNum = 12;
};
if (choice == 9){
tempNum = 14;
};
if (choice == 10){
Choice10.visible = false;
};
if (choice == 11){
tempNum = 0;
};
};
if (currentZone == 2){
if (choice == 1){
tempNum = 1;
};
if (choice == 2){
tempNum = 4;
};
if (choice == 3){
tempNum = 8;
};
if (choice == 5){
tempNum = 3;
};
if (choice == 6){
tempNum = 10;
};
if (choice == 7){
tempNum = 5;
};
if (choice == 9){
tempNum = 6;
};
if (choice == 10){
Choice10.visible = false;
};
if (choice == 11){
tempNum = 0;
};
};
if (currentZone == 3){
if (choice == 1){
tempNum = 1;
};
if (choice == 2){
tempNum = 4;
};
if (choice == 3){
tempNum = 8;
};
if (choice == 5){
tempNum = 6;
};
if (choice == 6){
tempNum = 11;
};
if (choice == 7){
tempNum = 12;
};
if (choice == 9){
tempNum = 13;
};
if (choice == 10){
Choice10.visible = false;
};
if (choice == 11){
tempNum = 0;
};
};
if (currentZone == 4){
if (choice == 1){
tempNum = 1;
};
if (choice == 2){
tempNum = 4;
};
if (choice == 3){
tempNum = 8;
};
if (choice == 5){
tempNum = 2;
};
if (choice == 6){
tempNum = 9;
};
if (choice == 7){
tempNum = 7;
};
if (choice == 9){
tempNum = 13;
};
if (choice == 10){
Choice10.visible = false;
};
if (choice == 11){
tempNum = 0;
};
};
return (tempNum);
}
public function appearance(e:MouseEvent):void{
appearanceGo();
}
public function appearanceGo():void{
outputMainText((((((((((((("You began your journey as a " + raceName()) + ".\r\r") + Math.floor((tallness / 12))) + " feet and ") + (tallness - (Math.floor((tallness / 12)) * 12))) + " inches tall, you wield ") + hipDesc()) + " hips and a ") + buttDesc()) + " butt on an overall ") + bodyDesc()) + " figure."), true);
if (hair > 0){
outputMainText(((((" With " + hairC()) + "") + hairDesc()) + ""), false);
};
if (hairstyleLength(hair)){
outputMainText(((" " + hairL()) + ""), false);
};
if (hair > 0){
outputMainText(((((", you look much like a" + genName()) + " ") + domName()) + ""), false);
} else {
outputMainText(((((" You look much like a" + genName()) + " ") + domName()) + ""), false);
};
if (dominant == 1){
outputMainText(", your face round with a relatively small nose", false);
};
if (dominant == 2){
outputMainText(", your face slightly longer than normal with a sort of muzzle", false);
};
if (dominant == 3){
outputMainText(", your face narrowing down a muzzle with sharp teeth", false);
};
if (dominant == 4){
outputMainText(", your face somewhat flat with a small button nose", false);
};
if (dominant == 5){
outputMainText(", your face slightly longer than normal with a sort of muzzle", false);
};
if (tail > 1){
outputMainText(((" and a " + tailDesc()) + " tail swishing upon your backside"), false);
};
outputMainText(((". " + earDesc()) + "."), false);
if (checkItem(101)){
outputMainText(" Soft padding protects the palms of your hands, making them look much like paws, your nails being sharp claws.", false);
};
if (checkItem(102)){
outputMainText(" Keratin surrounds your toes like hooves, your ankle elongated and preventing you from standing on your heel, making you walk digitigrade with a clap against the ground every step.", false);
};
outputMainText("\r\rYou are currently wearing ", false);
if (attireTop != attireBot){
outputMainText((((((("" + clothesTop()) + " and ") + clothesBottom()) + ", covering your ") + skinDesc()) + "."), false);
} else {
outputMainText((((clothesTop() + ", covering your ") + skinDesc()) + "."), false);
};
if ((pregnancyTime + bellyMod) > 36){
outputMainText(((((" Your " + clothesTop()) + " bulges from your ") + bellyDesc()) + " belly, obviously swollen for some reason or another."), false);
};
if (breastSize > 0){
if (boobTotal == 2){
outputMainText(((((((("\r\rUpon your chest heaves " + boobTotal) + " ") + boobDesc()) + " breasts. Your bust measures ") + decGet((breastSize * 0.5), 1)) + " inches in circumference beyond that of your chest, with ") + nipDesc()), false);
};
if (boobTotal == 6){
outputMainText(((((((((((("\r\rUpon your chest and down to your belly heaves " + boobTotal) + " ") + boobDesc()) + " breasts. Your bust measures ") + decGet((breastSize * 0.5), 1)) + " inches in circumference beyond that of your chest, the next pair measuring ") + decGet((breastSize * 0.25), 2)) + " inches and the next measuring ") + decGet((breastSize * 0.15), 2)) + " inches; each with ") + nipDesc()), false);
};
if (dominant == 5){
outputMainText(" teats", false);
};
if (dominant != 5){
outputMainText(" nipples", false);
};
if (lust <= 30){
outputMainText(((" softly bulging " + decGet((nippleSize * 0.1), 1)) + " inches beyond that."), false);
};
if ((((lust > 30)) && ((lust <= 70)))){
outputMainText(((" stiffly standing " + decGet((nippleSize * 0.2), 1)) + " inches beyond that."), false);
};
if (lust > 70){
outputMainText(((" achingly hard and reaching " + decGet((nippleSize * 0.25), 1)) + " inches beyond that."), false);
};
if (lactation > 0){
if (milkEngorgementLevel == 2){
outputMainText(((" A few drops of milk dangle from each nipple as you pull your " + clothesTop()) + " from your engorged breasts to inspect yourself."), false);
};
if (milkEngorgementLevel == 3){
outputMainText(((((" Milk sprays from each of your nipples as you pull your " + clothesTop()) + " from your heavily engorged breasts to inspect yourself, and continue to dribble down your belly and soaking into your ") + clothesBottom()) + "."), false);
};
};
};
if (udders == true){
outputMainText((((((("\r\rJust below your belly hangs a " + udderDesc()) + " udder with 4 ") + teatDesc()) + " teats, each ") + decGet((teatSize * 0.2), 1)) + " inches long"), false);
if (lactation > 0){
if (udderEngorgementLevel == 2){
outputMainText(" and dribbling milk from your engorgement", false);
};
if (udderEngorgementLevel == 3){
outputMainText(" and practically spraying milk onto the ground before you from your excessive engorgment", false);
};
};
outputMainText(".", false);
};
if (cockTotal > 0){
outputMainText((((((("\r\rAbove your groin rests " + cockTotal) + " ") + cockDesc()) + " wang") + plural(1)) + "."), false);
if (lust <= 30){
if (humanCocks > 0){
outputMainText(((((((" " + humanCocks) + " dangle") + plural(3)) + " flaccidly from your groin, reaching ") + decGet(((cockSize * cockSizeMod) * 0.25), 2)) + " inches down, with smooth skin and a mushroom-like glans, just like a human's."), false);
};
if (horseCocks > 0){
outputMainText(((((((" " + horseCocks) + " hide") + plural(3)) + " within a fuzzy sheath that protrudes from your groin, around ") + decGet(((cockSize * cockSizeMod) / 12), 1)) + " inches in thickness."), false);
};
if ((((wolfCocks > 0)) || ((catCocks > 0)))){
outputMainText(((((((" " + (wolfCocks + catCocks)) + " hide") + plural(3)) + " within a fuzzy sheath that protrudes from your groin, around ") + decGet(((cockSize * cockSizeMod) / 16), 1)) + " inches in thickness."), false);
};
if ((((cockMoist > 9)) && ((cockMoist <= 12)))){
outputMainText(((" Drops of pre slowly bead at the tip of your cock" + plural(1)) + ", "), false);
if ((((((horseCocks > 0)) || ((wolfCocks > 0)))) || ((catCocks > 0)))){
outputMainText(((" pooling within your sheath" + plural(1)) + ","), false);
};
outputMainText(((" running down your thighs as it continually blotches your " + clothesBottom()) + ", even though you're barely aroused at all. The slime is enough to slip yourself into a pussy smaller than you are long, at least."), false);
};
};
if ((((lust > 30)) && ((lust <= 70)))){
if (humanCocks > 0){
outputMainText(((((((" " + humanCocks) + " stand") + plural(3)) + " erect, reaching ") + decGet(((cockSize * cockSizeMod) * 0.5), 1)) + " inches up, with smooth skin and a mushroom-like glans, just like a human's."), false);
};
if (horseCocks > 0){
outputMainText(((((((((" " + horseCocks) + " droop") + plural(3)) + " out of a ") + decGet(((cockSize * cockSizeMod) / 12), 1)) + "-inch thick smooth sheath, reaching ") + decGet(((cockSize * cockSizeMod) * 0.5), 1)) + " inches down your thigh with a ring of prepuce halfway down its length and a flat head at the end, just like a horse's."), false);
};
if (wolfCocks > 0){
outputMainText(((((((((((" " + wolfCocks) + " poke") + plural(3)) + " out of a ") + decGet(((cockSize * cockSizeMod) / 16), 1)) + "-inch thick fuzzy sheath, red and hard, smooth and covered in veins with a narrowing tip") + plural(1)) + ", standing ") + decGet(((cockSize * cockSizeMod) * 0.5), 1)) + " inches high, just like a wolf's."), false);
};
if (catCocks > 0){
outputMainText(((((((((((" " + catCocks) + " poke") + plural(3)) + " out of a ") + decGet(((cockSize * cockSizeMod) / 16), 1)) + "-inch thick fuzzy sheath, pink and soft, with tender barbs near the narrowing tip") + plural(1)) + ", standing ") + decGet(((cockSize * cockSizeMod) * 0.5), 1)) + " inches high, just like a cat's."), false);
};
if (knot == true){
outputMainText(((((((" Your cock" + plural(1)) + " swell") + plural(3)) + " a little near the base, preparing for a chance for the knot") + plural(1)) + " to expand."), false);
};
if ((((cockMoist > 3)) && ((cockMoist <= 9)))){
outputMainText(((" Drops of pre slowly bead at the tip of your cock" + plural(1)) + ", "), false);
if ((((((horseCocks > 0)) || ((wolfCocks > 0)))) || ((catCocks > 0)))){
outputMainText(((" pooling within your sheath" + plural(1)) + ","), false);
};
outputMainText(((" running down your thighs as it blotches your " + clothesBottom()) + ". The slime is enough to slip yourself into a pussy smaller than you are long, at least."), false);
};
if ((((cockMoist > 9)) && ((cockMoist <= 12)))){
outputMainText(((((((" Pre steadily drips from your groin, making a large wet spot on your " + clothesBottom()) + ", looking more like you had peed yourself from all the seminal fluid. Fortunately, you could probably slip ") + oneYour(1)) + " cock") + plural(1)) + " into a pussy smaller than you are, thanks to all the lubrication."), false);
};
};
if (lust > 70){
if (humanCocks > 0){
outputMainText(((((((" " + humanCocks) + " stand") + plural(3)) + " erect, reaching ") + decGet(((cockSize * cockSizeMod) * 0.5), 1)) + " inches up, throbbing strongly with smooth skin and a mushroom-like glans that is nearly purple in color, just like a human's."), false);
};
if (horseCocks > 0){
outputMainText(((((((" " + horseCocks) + " twitches out of a ") + decGet(((cockSize * cockSizeMod) / 12), 1)) + "-inch thick smooth sheath, trying to stand ") + decGet(((cockSize * cockSizeMod) * 0.5), 1)) + " inches from your body with a ring of prepuce halfway down its length and a flaring flat head at the end, just like a horse's."), false);
};
if (wolfCocks > 0){
outputMainText(((((((((((" " + wolfCocks) + " throb") + plural(3)) + " out of a ") + decGet(((cockSize * cockSizeMod) / 16), 1)) + "-inch thick fuzzy sheath, red and hard, smooth and covered in veins that almost look purple, they're so full of blood, with a narrowing tip") + plural(1)) + ", standing ") + decGet(((cockSize * cockSizeMod) * 0.5), 1)) + " inches high, just like a wolf's."), false);
};
if (catCocks > 0){
outputMainText(((((((((((" " + catCocks) + " stiffly stand") + plural(3)) + " out of a ") + decGet(((cockSize * cockSizeMod) / 16), 1)) + "-inch thick fuzzy sheath, pink and nearly hard, with tender barbs bristling out near the narrowing tip") + plural(1)) + ", standing ") + decGet(((cockSize * cockSizeMod) * 0.5), 1)) + " inches high, just like a cat's."), false);
};
if (knot == true){
outputMainText(((((((((((((" Your cock" + plural(1)) + " bulge") + plural(3)) + " tremendously at ") + plural(5)) + " base") + plural(1)) + ", the knot") + plural(1)) + " completely expecting to come at any moment and nearly ") + decGet(((cockSize * cockSizeMod) / 4), 1)) + " inches thick."), false);
};
if ((((cockMoist > 0)) && ((cockMoist <= 3)))){
outputMainText(((" Drops of pre slowly bead at the tip of your cock" + plural(1)) + ", "), false);
if ((((((horseCocks > 0)) || ((wolfCocks > 0)))) || ((catCocks > 0)))){
outputMainText(((" pooling within your sheath" + plural(1)) + ","), false);
};
outputMainText(((" running down your thighs as it blotches your " + clothesBottom()) + ". The slime is enough to slip yourself into a pussy smaller than you are long, at least."), false);
};
if ((((cockMoist > 3)) && ((cockMoist <= 9)))){
outputMainText(((((((" Pre steadily drips from your groin, making a large wet spot on your " + clothesBottom()) + ", looking more like you had peed yourself from all the seminal fluid. Fortunately, you could probably slip ") + oneYour(1)) + " cock") + plural(1)) + " into a pussy smaller than you are, thanks to all the lubrication."), false);
};
if ((((cockMoist > 9)) && ((cockMoist <= 12)))){
outputMainText(((((((" Your " + clothesBottom()) + " feels completely swamped as pre flies from your lower half as you move about. Standing still for too long, you quickly form a small puddle of the slick stuff. You could probably stuff ") + oneYour(1)) + " cock") + plural(1)) + " into a pussy half your size without any difficulty, you're so slimy!"), false);
};
};
};
if ((((showBalls == true)) && ((balls > 0)))){
outputMainText((((((((("\r\rBeneath your cock" + plural(1)) + " swing") + plural(3)) + " a scrotum filled with ") + balls) + " ") + ballDesc()) + " testicles."), false);
if ((((blueBalls > 36)) && ((blueBalls <= 84)))){
outputMainText(" They groan and squirm, full of hot cum just waiting to blow.", false);
};
if (blueBalls > 84){
outputMainText(" They groan so strongly you shudder slightly. They're so full of cum that they ache a bit, desperately wanting to come.", false);
};
};
if (vagTotal > 0){
outputMainText((((((((("\r\rBetween your legs nestles " + vagTotal) + " ") + vulvaDesc()) + " pair") + plural(2)) + " of feminine nether-lips, about ") + decGet(((vagSize * vagSizeMod) * 0.5), 1)) + " inches deep, when aroused."), false);
if (((vagSize * vagSizeMod) * vagTotal) > (tallness / 2)){
outputMainText(" So deep, in fact, that your belly bulges more because of the excess vaginal flesh.", false);
};
if (lust <= 30){
if (clitSize > (vulvaSize * 3)){
outputMainText(((((((((((" Although you're hardly aroused, your " + clitDesc()) + " clit") + plural(2)) + " dangle") + plural(4)) + " softly from the front of your slit") + plural(2)) + ", measuring nearly ") + decGet((clitSize * 0.1), 1)) + " inches in length."), false);
};
if ((((vagMoist > 9)) && ((vagMoist <= 12)))){
outputMainText(((((" Lubrication makes your cunt" + plural(2)) + " slick, the lips slipping past each other as you walk, while the slime continually blotches the crotch of your ") + clothesBottom()) + ", whether you're horny or not. Fortunately, you could take a cock slightly bigger than you are deep, thanks to the slickness."), false);
};
};
if ((((lust > 30)) && ((lust <= 70)))){
outputMainText(((((((((((((((((" Your " + clitDesc()) + " clit") + plural(2)) + " swell") + plural(4)) + " from the hood") + plural(2)) + " at the front of your slit") + plural(2)) + ", reaching ") + decGet((clitSize * 0.2), 1)) + " inches in length and making you walk awkwardly as the sensitive button") + plural(2)) + " rub") + plural(4)) + " between your thighs."), false);
if ((((vagMoist > 3)) && ((vagMoist <= 9)))){
outputMainText(((((" Lubrication makes your cunt" + plural(2)) + " slick, the lips slipping past each other as you walk, while the slime continually blotches the crotch of your ") + clothesBottom()) + ", whether you're horny or not. Fortunately, you could take a cock slightly bigger than you are deep, thanks to the slickness."), false);
};
if ((((vagMoist > 9)) && ((vagMoist <= 12)))){
outputMainText(((((" So much feminine honey drips from your cunt" + plural(2)) + " that it looks like you have peed in your ") + clothesBottom()) + " and webs of slime form sheets between your legs. But, with all that lubrication you could take a cock around one and a half times long as you are deep."), false);
};
};
if (lust > 70){
outputMainText(((((((((((((((" Your " + clitDesc()) + " clit") + plural(2)) + " swell") + plural(4)) + " tremendously from the hood") + plural(2)) + " at the front of your slit") + plural(2)) + ", reaching ") + decGet((clitSize * 0.25), 2)) + " inches in length. You walk bow-legged half the time as squeezing the clit") + plural(2)) + " and swollen lips between your thighs is often too much, making you hunger to hump something."), false);
if ((((vagMoist > 0)) && ((vagMoist <= 3)))){
outputMainText(((((" Lubrication makes your cunt" + plural(2)) + " slick, the lips slipping past each other as you walk, while the slime continually blothes the crotch of your ") + clothesBottom()) + ", whether you're horny or not. Fortunately, you could take a cock slightly bigger than you are deep, thanks to the slickness."), false);
};
if ((((vagMoist > 3)) && ((vagMoist <= 9)))){
outputMainText(((((" So much feminine honey drips from your cunt" + plural(2)) + " that it looks like you have peed in your ") + clothesBottom()) + " and webs of slime form sheets between your legs. But, with all that lubrication you could take a cock around one and a half times long as you are deep."), false);
};
if ((((vagMoist > 9)) && ((vagMoist <= 12)))){
outputMainText(((" A slow waterfall of feminine honey drips from your crotch, your " + clothesBottom()) + " completely soaked. If you stand for too long, you worry your feet will slip in the puddle you quickly make beneath you. It's so much that you could probably take a cock twice as large as you are deep!"), false);
};
};
if ((((heat > 0)) && ((heatTime < 0)))){
outputMainText(" Your nether-lips are also puffier and redder than usual, heat emanating from your loins, an oven just waiting to cook something...", false);
};
};
doEnd();
}
function frame1(){
i = 0;
buttonChoice = 0;
currentText = "";
currentState = 0;
inBag = false;
inShop = false;
currentZone = 0;
str = 0;
ment = 0;
lib = 0;
sen = 0;
HP = 0;
lust = 0;
coin = 0;
day = 0;
hour = 8;
hrs = 0;
item1 = 0;
item2 = 0;
item3 = 0;
item4 = 0;
item5 = 0;
item6 = 0;
human = 0;
horse = 0;
wolf = 0;
cat = 0;
cow = 0;
SexP = 0;
levelUP = 0;
level = 0;
runMod = 0;
rapeMod = 0;
cumMod = 1;
cockSizeMod = 1;
vagSizeMod = 1;
vagElastic = 1;
milkMod = 0;
carryMod = 0;
bellyMod = 0;
pregChanceMod = 0;
pregTimeMod = 0;
enticeMod = 0;
milkHPMod = 0;
enemyID = 0;
eHP = 0;
eMaxHP = 0;
eStr = 0;
eMenta = 0;
eSen = 0;
eLib = 0;
eLust = 0;
eGen = 0;
ePref = 0;
eCoin = 0;
eSexP = 0;
eItem = 0;
gender = 0;
race = 0;
body = 0;
dominant = 0;
hips = 0;
butt = 0;
tallness = 0;
skinType = 0;
tail = 0;
ears = 0;
hair = 0;
hairLength = 0;
hairColor = 0;
cockTotal = 0;
humanCocks = 0;
horseCocks = 0;
wolfCocks = 0;
catCocks = 0;
cockSize = 0;
cockMoist = 0;
balls = 0;
ballSize = 0;
showBalls = true;
knot = false;
breastSize = 0;
boobTotal = 0;
nippleSize = 1;
udders = false;
udderSize = 0;
teatSize = 0;
clitSize = 0;
vagTotal = 0;
vagSize = 0;
vagMoist = 0;
vulvaSize = 0;
attireTop = 1;
attireBot = 2;
weapon = 10;
pregnancy = false;
pregnancyType = 0;
pregnancyTime = 0;
pregMaxTime = 0;
exhaustion = 0;
exhaustionPenalty = 0;
milkEngorgement = 0;
milkEngorgementLevel = 0;
udderEngorgement = 0;
udderEngorgementLevel = 0;
heat = 0;
heatTime = 0;
heatMaxTime = 0;
lactation = 0;
nipplePlay = 0;
udderPlay = 0;
blueBalls = 0;
teatPump = 0;
nipPump = 0;
cockPump = 0;
clitPump = 0;
vulvaPump = 0;
masoPot = 0;
sMasoPot = 0;
babyFree = 0;
humanAffinity = 0;
horseAffinity = 0;
wolfAffinity = 0;
catAffinity = 0;
cowAffinity = 0;
lilaRep = 0;
malonRep = 0;
malonPreg = 0;
malonChildren = 0;
mistressRep = 0;
babyFactLevel = 0;
bodyBuildLevel = 0;
hyperHappyLevel = 0;
alchemistLevel = 0;
itemArray1 = ["1", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
itemArray2 = ["2", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
itemArray3 = ["3", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
currentItems = 1;
stashArray1 = ["1", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
stashArray2 = ["2", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
stashArray3 = ["3", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
currentStash = 1;
hideUpDown();
outputWindow.htmlText = "Nimin: Fetish Fantasy\r\r\rClick 'New Game' to begin a new game.\r\rCreated by\r --Xadera\r http://www.furaffinity.net/user/xadera/\r\rOriginal concept by:\r --Fenoxo\r http://www.furaffinity.net/user/fenoxo/\r\rAlso thanks to the following for submitting ideas:\r --tkn156, Shockblock99, Shello-Lakoda, LordNue";
stage.addEventListener(KeyboardEvent.KEY_DOWN, hotKeys);
invertColors.addEventListener(MouseEvent.CLICK, invertC);
newGame.addEventListener(MouseEvent.CLICK, newGameStart);
Choice1.addEventListener(MouseEvent.CLICK, buttonEvent1);
Choice2.addEventListener(MouseEvent.CLICK, buttonEvent2);
Choice3.addEventListener(MouseEvent.CLICK, buttonEvent3);
Choice4.addEventListener(MouseEvent.CLICK, buttonEvent4);
Choice5.addEventListener(MouseEvent.CLICK, buttonEvent5);
Choice6.addEventListener(MouseEvent.CLICK, buttonEvent6);
Choice7.addEventListener(MouseEvent.CLICK, buttonEvent7);
Choice8.addEventListener(MouseEvent.CLICK, buttonEvent8);
Choice9.addEventListener(MouseEvent.CLICK, buttonEvent9);
Choice10.addEventListener(MouseEvent.CLICK, buttonEvent10);
Choice11.addEventListener(MouseEvent.CLICK, buttonEvent11);
Choice12.addEventListener(MouseEvent.CLICK, buttonEvent12);
appearanceText.addEventListener(MouseEvent.CLICK, appearance);
saveGame.addEventListener(MouseEvent.CLICK, saveG);
loadGame.addEventListener(MouseEvent.CLICK, loadG);
statPane.visible = false;
statValuePane.visible = false;
levelPane.visible = false;
levelValuePane.visible = false;
currentRegion.visible = false;
region.visible = false;
saveGame.visible = false;
saveGameOutline.visible = false;
DayPane.visible = false;
DayValuePane.visible = false;
clockPane.visible = false;
appearanceText.visible = false;
appearanceBox.visible = false;
bgC.visible = false;
pageNum.visible = false;
pageNum.rotation = (pageNum.rotation + 90);
viewButtonText(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
viewButtonOutline(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
}
public function loadGo():void{
var so:SharedObject;
so = SharedObject.getLocal("NiminFetishFantasy");
bc();
trace(("pre pre load: " + so.data.itemSave10));
appearanceText.visible = false;
appearanceBox.visible = false;
viewButtonOutline(1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1);
viewButtonText(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1);
if (so.data.saveGame1){
buttonWrite(1, ((("D:" + so.data.saveGame1[9]) + " H:") + so.data.saveGame1[10]));
Choice1.visible = true;
};
if (so.data.saveGame2){
buttonWrite(2, ((("D:" + so.data.saveGame2[9]) + " H:") + so.data.saveGame2[10]));
Choice2.visible = true;
};
if (so.data.saveGame3){
buttonWrite(3, ((("D:" + so.data.saveGame3[9]) + " H:") + so.data.saveGame3[10]));
Choice3.visible = true;
};
if (so.data.saveGame5){
buttonWrite(5, ((("D:" + so.data.saveGame5[9]) + " H:") + so.data.saveGame5[10]));
Choice5.visible = true;
};
if (so.data.saveGame6){
buttonWrite(6, ((("D:" + so.data.saveGame6[9]) + " H:") + so.data.saveGame6[10]));
Choice6.visible = true;
};
if (so.data.saveGame7){
buttonWrite(7, ((("D:" + so.data.saveGame7[9]) + " H:") + so.data.saveGame7[10]));
Choice7.visible = true;
};
if (so.data.saveGame9){
buttonWrite(9, ((("D:" + so.data.saveGame9[9]) + " H:") + so.data.saveGame9[10]));
Choice9.visible = true;
};
if (so.data.saveGame10){
buttonWrite(10, ((("D:" + so.data.saveGame10[9]) + " H:") + so.data.saveGame10[10]));
Choice10.visible = true;
};
if (so.data.saveGame11){
buttonWrite(11, ((("D:" + so.data.saveGame11[9]) + " H:") + so.data.saveGame11[10]));
Choice11.visible = true;
};
buttonWrite(12, "Return");
outputMainText("Click on a load slot to load the game that was saved to that slot.\r\rOtherwise, click Return to go back to what you were doing (unless you weren't doing anything yet, in which case click New Game).", true);
doListen = function ():void{
var slot:int;
if (buttonChoice != 12){
slot = buttonChoice;
if ((((buttonChoice == 1)) && (so.data.saveGame1))){
outputMainText((((("Day: " + so.data.saveGame1[9]) + ", Hour: ") + so.data.saveGame1[10]) + ":00"), true);
};
if ((((buttonChoice == 2)) && (so.data.saveGame2))){
outputMainText((((("Day: " + so.data.saveGame2[9]) + ", Hour: ") + so.data.saveGame2[10]) + ":00"), true);
};
if ((((buttonChoice == 3)) && (so.data.saveGame3))){
outputMainText((((("Day: " + so.data.saveGame3[9]) + ", Hour: ") + so.data.saveGame3[10]) + ":00"), true);
};
if ((((buttonChoice == 5)) && (so.data.saveGame5))){
outputMainText((((("Day: " + so.data.saveGame5[9]) + ", Hour: ") + so.data.saveGame5[10]) + ":00"), true);
};
if ((((buttonChoice == 6)) && (so.data.saveGame6))){
outputMainText((((("Day: " + so.data.saveGame6[9]) + ", Hour: ") + so.data.saveGame6[10]) + ":00"), true);
};
if ((((buttonChoice == 7)) && (so.data.saveGame7))){
outputMainText((((("Day: " + so.data.saveGame7[9]) + ", Hour: ") + so.data.saveGame7[10]) + ":00"), true);
};
if ((((buttonChoice == 9)) && (so.data.saveGame9))){
outputMainText((((("Day: " + so.data.saveGame9[9]) + ", Hour: ") + so.data.saveGame9[10]) + ":00"), true);
};
if ((((buttonChoice == 10)) && (so.data.saveGame10))){
outputMainText((((("Day: " + so.data.saveGame10[9]) + ", Hour: ") + so.data.saveGame10[10]) + ":00"), true);
};
if ((((buttonChoice == 11)) && (so.data.saveGame11))){
outputMainText((((("Day: " + so.data.saveGame11[9]) + ", Hour: ") + so.data.saveGame11[10]) + ":00"), true);
};
outputMainText((("\r\rAre you sure you want to load slot " + buttonChoice) + "?\r\rYou will lose any unsaved data from the current game."), true);
buttonConfirm();
doListen = function ():void{
if (buttonChoice == 6){
doLoad(slot);
regionChange(currentZone);
doReturn();
} else {
loadGo();
};
};
};
if (buttonChoice == 12){
doReturn();
};
};
}
public function stashID(slotNumber:int):int{
var tempNum:Number;
tempNum = 0;
if (currentStash == 1){
tempNum = stashArray1[slotNumber];
};
if (currentStash == 2){
tempNum = stashArray2[slotNumber];
};
if (currentStash == 3){
tempNum = stashArray3[slotNumber];
};
return (tempNum);
}
public function enemyBaby():int{
var tempNum:int;
tempNum = 0;
if (enemyID == 201){
tempNum = 100;
};
if (enemyID == 302){
tempNum = 2;
};
return (tempNum);
}
public function doStatus(time:int):void{
outputMainText("Afterwards...", true);
if (pregnancy == true){
stats(0, 0, -(Math.floor((pregnancyTime / 25))), -(Math.floor((pregnancyTime / 25))));
if ((pregnancyTime + time) > pregMaxTime){
doBirth();
pregnancyTime = 0;
pregnancy = false;
} else {
if (((((pregnancyTime + time) >= 80)) && ((pregnancyTime < 80)))){
lactChange(1);
boobChange(1);
if (lactation == 1){
outputMainText(" Your body must be getting ready for the baby that's growing inside of you. Even your breasts feel fuller...", false);
} else {
outputMainText("\r\rYour breasts are producing even more milk than normal. They're even a little fuller... Your body must be getting ready for the baby that's growing inside of you.", false);
};
} else {
if (((((pregnancyTime + time) >= 140)) && ((pregnancyTime < 140)))){
lactChange(1);
boobChange(2);
outputMainText("\r\rYour breasts feel sore from the all the milky swelling. They've grown three cup sizes since you've gotten pregnant and dribble more and more!", false);
} else {
if (((((pregnancyTime + time) >= 210)) && ((pregnancyTime < 210)))){
lactChange(2);
boobChange(1);
outputMainText("\r\rYour breasts have slowed in their pregnant swelling. They should definitely be prepared for whatever you might give birth to... you hope.", false);
};
};
};
pregnancyTime = (pregnancyTime + time);
stats(0, 0, Math.floor((pregnancyTime / 25)), Math.floor((pregnancyTime / 25)));
};
};
if (malonRep == 4){
malonPreg = (malonPreg + time);
};
if ((((((heat > 0)) && ((vagTotal > 0)))) && ((pregnancy == false)))){
if ((((heatTime >= 0)) && (((heatTime - time) < 0)))){
outputMainText("\r\rYour crotch feels hot and tingly, your face becoming flush. Thoughts of sex, being pounded and filled with seed until your womb has been sufficiently impregnated, permeate your mind and makes you greatly aroused. You're feeling especially fertile and extremely lustful as you go into heat...", false);
pregChanceMod = (pregChanceMod + 15);
stats(0, -5, 10, 0);
doLust(15);
vagMoist = (vagMoist + 3);
heatTime = -24;
} else {
if ((((heatTime < 0)) && (((heatTime + time) >= 0)))){
outputMainText("\r\rYou breath a sigh of relief as the heat finally passes, your body calming and no longer needing to reproduce as much.", false);
pregChanceMod = (pregChanceMod - 15);
stats(0, 5, -10, 0);
vagMoist = (vagMoist - 3);
heatTime = heatMaxTime;
} else {
if ((((heatTime > 0)) && (((heatTime - time) > 0)))){
heatTime = (heatTime - time);
} else {
if ((((heatTime < 0)) && (((heatTime + time) < 0)))){
heatTime = (heatTime + time);
};
};
};
};
} else {
if ((((((heat > 0)) && ((heatTime < 0)))) && ((pregnancy == true)))){
outputMainText("\r\rYou breath a sigh of relief as the heat passes, your body calming and no longer needing to reproduce as much. However, it seems to have ended a bit early...", false);
pregChanceMod = (pregChanceMod - 15);
stats(0, 5, -10, 0);
vagMoist = (vagMoist - 3);
heatTime = heatMaxTime;
} else {
if ((((((heat > 0)) && (!((heatTime == heatMaxTime))))) && ((pregnancy == true)))){
heatTime = heatMaxTime;
} else {
if ((((heat < 1)) && ((heatTime > 0)))){
heatMaxTime = 0;
heatTime = 0;
} else {
if ((((((heat < 1)) || ((vagTotal < 1)))) && ((heatTime < 0)))){
pregChanceMod = (pregChanceMod - 15);
stats(0, 5, -10, 0);
vagMoist = (vagMoist - 3);
heatMaxTime = 0;
heatTime = 0;
};
};
};
};
};
if (lactation > 0){
if (((((milkEngorgement + (lactation * time)) > 96)) && ((milkEngorgement <= 96)))){
outputMainText((((("\r\rPulling " + pullUD(1)) + " your ") + clothesTop()) + ", jets of milk shoot from your breasts. Your nipples dribble uncontrollably, your breasts so sore and especially sensitive. All the milk flowing from your body arouses you, and will continue to do so until either you give your breasts some attention or your milk dries up."), false);
if (milkEngorgementLevel < 1){
boobChange(1);
};
milkEngorgementLevel++;
} else {
if (((((milkEngorgement + (lactation * time)) > 72)) && ((milkEngorgement <= 72)))){
outputMainText((("\r\rYour " + clothesTop()) + " is soaked in front. Milk dribbles from your nipples almost constantly, too much to retain. The abundant supply seems to be overwhelming the lack of demand..."), false);
if (milkEngorgementLevel < 1){
boobChange(1);
};
milkEngorgementLevel++;
} else {
if (((((milkEngorgement + (lactation * time)) > 48)) && ((milkEngorgement <= 48)))){
outputMainText((("\r\rYour " + clothesTop()) + " feels moist around your nipples. Your breasts feel slightly swollen as blotches spread, milk leaking out. A bit engorged, it's a sign they should probably be attended to."), false);
milkEngorgementLevel++;
boobChange(1);
};
};
};
milkEngorgement = (milkEngorgement + (lactation * time));
};
if ((((lactation > 0)) && ((udders == true)))){
if (((((udderEngorgement + (lactation * time)) > 96)) && ((udderEngorgement <= 96)))){
outputMainText("\r\rJets of milk shoot from the teats of your udder with each step. When standing still, it dribbles constantly, your udder so big and sore and especially sensitive from being so stretched.", false);
if (udderEngorgementLevel < 1){
udderChange(2);
} else {
if (udderEngorgementLevel == 1){
udderChange(1);
};
};
udderEngorgementLevel++;
udderChange(1);
} else {
if (((((udderEngorgement + (lactation * time)) > 72)) && ((udderEngorgement <= 72)))){
outputMainText((("\r\rYour " + clothesBottom()) + " is soaked in front. Milk dribbles from your teats almost constantly, too much to retain. The abundant supply seems to be overwhelming the lack of demand..."), false);
if (udderEngorgementLevel < 1){
udderChange(1);
};
udderEngorgementLevel++;
udderChange(1);
} else {
if (((((udderEngorgement + (lactation * time)) > 48)) && ((udderEngorgement <= 48)))){
outputMainText((("\r\rYour " + clothesBottom()) + " feels moist beneath your teats. Your udder feels slightly swollen as milk leaks out. A bit engorged, it's a sign it should probably be attended to."), false);
udderEngorgementLevel++;
udderChange(1);
};
};
};
udderEngorgement = (udderEngorgement + (lactation * time));
};
if (lactation > 0){
nipplePlay = (nipplePlay - time);
udderPlay = (udderPlay - time);
};
if ((((lactation > 0)) && ((nipplePlay < -10)))){
lactChange(-1);
if (lactation == 0){
outputMainText(" It seems as though your mammary glands have adapted to the lack of demand.", false);
};
nipplePlay = 0;
};
if ((((((lactation > 0)) && ((udderPlay < -10)))) && ((udders == true)))){
lactChange(-1);
if (lactation == 0){
outputMainText(" It seems as though your mammary glands have adapted to the lack of demand.", false);
};
udderPlay = 0;
};
exhaustion = (exhaustion + time);
if ((((exhaustion > 20)) && ((exhaustion <= 32)))){
outputMainText("\r\rYour body is getting tired, affecting your abilities to do things. Sleep is sounding like a nice idea...", false);
if (exhaustionPenalty == 0){
exhaustionPenalty = 1;
stats(-3, -3, 0, 0);
};
} else {
if ((((exhaustion > 32)) && ((exhaustion <= 44)))){
outputMainText("\r\rExhaustion is creeping over you, making any task seem tedious. Your wits are a lot less witty and your muscles are fatigued.", false);
if ((((exhaustionPenalty == 1)) || ((exhaustionPenalty == 0)))){
exhaustionPenalty = 2;
stats(-8, -8, 0, 0);
};
} else {
if (exhaustion > 44){
currentState = 1;
} else {
if (exhaustionPenalty == 1){
exhaustionPenalty = 0;
stats(3, 3, 0, 0);
};
if (exhaustionPenalty == 2){
exhaustionPenalty = 0;
stats(11, 11, 0, 0);
};
};
};
};
if (((((((((blueBalls + time) > 84)) && ((blueBalls <= 84)))) && ((showBalls == true)))) && ((balls > 0)))){
outputMainText((((("\r\rYour " + ballDesc()) + " balls feel swollen and heavy within your ") + clothesBottom()) + ". The need to spill your seed makes you a little aroused."), false);
doLust(Math.ceil((ballSize / 2)));
};
blueBalls = (blueBalls + time);
hrs = 0;
if (((((masoPot - time) <= 0)) && ((masoPot > 0)))){
outputMainText("\r\rYou shiver a little as your nerves seem to feel more... normal. The effects of the Masochism Potion have apparently worn off, so you might want to be slightly more cautious once again.", false);
masoPot = 0;
} else {
if (masoPot > 0){
masoPot = (masoPot - time);
};
};
if (((((sMasoPot - time) <= 0)) && ((sMasoPot > 0)))){
outputMainText("\r\rYou shiver a lot as your nerves seem to feel more... normal. The effects of the Superior Masochism Potion have apparently worn off, so you might want to be much more cautious once again.", false);
sMasoPot = 0;
} else {
if (sMasoPot > 0){
sMasoPot = (sMasoPot - time);
};
};
if (((((babyFree - time) <= 0)) && ((babyFree > 0)))){
outputMainText("\r\rYour belly groans as you feel your fertility return to you, urging you to remain cautious of becoming pregnant again. It seems as though you're no longer as baby free as before.", false);
if (vagTotal < 1){
outputMainText(" Not that any of that means anything to you, considering you don't even have a womb to become pregnant in the first place.", false);
};
babyFree = 0;
} else {
if (masoPot > 0){
babyFree = (babyFree - time);
};
};
if (currentText == "Afterwards..."){
outputMainText("", true);
doProcess();
} else {
doEnd();
};
}
public function doSalon():void{
var buy:int;
bc();
buy = 0;
viewButtonOutline(1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1);
viewButtonText(1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1);
i = 1;
while (i < 12) {
if (((!((i == 4))) && (!((i == 8))))){
buttonWrite(i, hairstyleName(hairstyleID(i)));
};
i++;
};
buttonWrite(4, "Buy");
buttonWrite(12, "Return");
outputMainText("Click on a hairstyle to view a description of the hairstyle. If you would like to purchase it, click the Buy button.\r\rNote: Buying hairstyles automatically replaces your current hairstyle. You cannot sell hairstyles.", true);
doListen = function ():void{
if (((((((!((buttonChoice == 4))) && (!((buttonChoice == 8))))) && (!((buttonChoice == 12))))) && (!((clothesID(buttonChoice) == 0))))){
outputMainText((((hairstyleDescription(hairstyleID(buttonChoice)) + "\r\rCost: ") + hairstyleValue(hairstyleID(buttonChoice))) + " coins."), true);
buy = buttonChoice;
};
if ((((buttonChoice == 4)) && (!((buy == 0))))){
outputMainText((("\r\rAre you sure you would like to buy " + hairstyleName(hairstyleID(buy))) + "?"), false);
buttonConfirm();
doListen = function ():void{
if (buttonChoice == 6){
if (coin < hairstyleValue(hairstyleID(buy))){
outputMainText((((((("Sorry, but you only have " + coin) + " coins. You require at least ") + (hairstyleValue(hairstyleID(buy)) - coin)) + " more coins to purchase ") + hairstyleName(hairstyleID(buy))) + "."), true);
doNext();
doListen = function ():void{
doTailor();
};
} else {
hair = hairstyleID(buy);
doCoin(-(hairstyleValue(hairstyleID(buy))));
if (hairstyleLength(hairstyleID(buy))){
viewButtonOutline(1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0);
viewButtonText(1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0);
buttonWrite(1, "Short");
buttonWrite(2, "Medium");
buttonWrite(5, "Long");
buttonWrite(6, "X-Long");
buttonWrite(7, "XX-Long");
outputMainText("What length would you like your hair to be? This does not affect its cost.\r\rShort - Doesn't hang past head.\r\rMedium - Reaches shoulders.\r\rLong - Reaches past shoulderblades.\r\rX-Long - Hangs past your butt.\r\rXX-Long - Reaches the ground.", false);
doListen = function ():void{
if (buttonChoice == 1){
hairLength = 2;
} else {
if (buttonChoice == 2){
hairLength = 4;
} else {
if (buttonChoice == 5){
hairLength = 6;
} else {
if (buttonChoice == 6){
hairLength = 8;
} else {
if (buttonChoice == 7){
hairLength = 10;
};
};
};
};
};
doSalon();
};
} else {
doSalon();
};
};
} else {
doSalon();
};
};
};
if (buttonChoice == 12){
doReturn();
};
};
}
public function itemAdd(ID:int):void{
if (item1 == 0){
item1 = ID;
} else {
if (item2 == 0){
item2 = ID;
} else {
if (item3 == 0){
item3 = ID;
} else {
if (item4 == 0){
item4 = ID;
} else {
if (item5 == 0){
item5 = ID;
} else {
if (item6 == 0){
item6 = ID;
};
};
};
};
};
};
}
public function dayTime(Time:Number):void{
var addTime:int;
addTime = Time;
while ((hour + addTime) >= 24) {
addTime = (addTime - (24 - hour));
hour = 0;
day++;
};
hour = (hour + addTime);
DayValuePane.text = ((int(day) + "\r\r") + int(hour));
if (bgC.visible == true){
DayValuePane.textColor = 0xFFFFFF;
};
doStatus(Time);
}
public function specialKOLose():void{
if (currentState == 2){
if (enemyID == 303){
outputMainText("\r\rJust as you're about to pass out, you see the octopus girl lean over your body. She wears a disappointed expression, finding you were't strong enough for what she was looking for. Shrugging, she jumps back into the ocean, leaving you to yourself.", false);
};
};
}
public function doForest():void{
var chance:int;
chance = percent();
if (chance <= 25){
outputMainText("Walking through the forest, you begin to hear footsteps mix with your own... As you pause to listen in, a creature jumps out before you! A lone wolf, it growls, ready to attack. And judging by the red rod that bobs beneath its belly, it's probably male, and probably frustrated after some failed encounter with a female...", true);
doNext();
doListen = function ():void{
enemyID = 201;
currentState = 2;
enemyBaseStats();
eMaxHP = eHP;
doBattle();
};
};
if ((((chance > 25)) && ((chance <= 50)))){
outputMainText("You hear a hiss from behind a tree. Stopping cautiously, you manage to avoid stepping on a particularly dangerous snake. The cock-snake. Aptly named due to its head looking much like the glans of a human cock, this breed of snake is also known to devour that of the same... And if its opponent doesn't have one, they soon will.", true);
doNext();
doListen = function ():void{
currentState = 2;
enemyID = 101;
enemyBaseStats();
eMaxHP = eHP;
doBattle();
};
};
if ((((chance > 50)) && ((chance <= 75)))){
outputMainText("You hear ominous swishing through the trees around you...", true);
if (percent() < (10 + runMod)){
outputMainText("\r\rYet you manage to run off before anything can catch you.", false);
hrs = 1;
doEnd();
} else {
if (breastSize < 6){
outputMainText("\r\rPeach-colored tentacles lash out at you from the tree-branches above, catching you by surprise. They flail around your chest, feeling about and scratching it roughly.\r\rHowever, the tentacles seem to be uninterested and disappear as quick as they came, leaving you with a rather hurtful chest and wasted time.", false);
doHP(-(Math.floor(((percent() / 10) + 2))));
hrs = 1;
doEnd();
} else {
if (((((lactation + milkMod) > 3)) || ((((boobTotal > 2)) && (((lactation + milkMod) > 2)))))){
outputMainText((("\r\rA mass of peach-colored tentacles falls from the tree-branches above. Some of the tentacles waver out towards you, mostly aiming at your " + boobDesc()) + " chest. They seem rather non-threatening, however, as the mass rolls back and forth on the forest floor, almost as though it were a stumbling drunk.\r\rDo you allow the tentacles to come closer?"), true);
buttonConfirm();
doListen = function ():void{
if (buttonChoice == 6){
outputMainText((("Cautiously standing still, you wait as the tentacles come right up to your breasts. They caress your " + nipDesc()) + " nipples, seemingly able to smell the milk within your breasts, and they wiggle even more like a drunk... It seems as though the creature smelled your large amount of milk production as you approached and became intoxicated by it.\r\r\rDo you let the creature indulge itself?"), true);
buttonConfirm();
doListen = function ():void{
if (buttonChoice == 6){
outputMainText((((((((("You pull your " + clothesTop()) + " ") + pullUD(1)) + ", letting your ") + boobDesc()) + " chest bob out, practically inviting it to partake of your motherly liquid. Not to forsake such an opportunity, the tentacled mass rolls up to you, the tentacles squirming about your ") + nipDesc()) + " nipples until they stand hard and erect. Yet, the tentacles pull away, caressing and hugging your body as the main mass comes right up to you.\r\rThe mass of tentacles part, revealing a feminine face, slender and beautiful, with eyes closed. The tentacles dance atop her head, seemingly replacing her hair. Looking down, you can see more of her lithe body, thin with milky skin. Two breasts, barely handfuls, wobble upon her chest as tentacles, particularly thinner than the rest, dance about where her nipples would be. Overall, she seems quite short, maybe 4 feet tall at most, while the mass of tentacles could easily reah 6 feet in height."), true);
doNext();
doListen = function ():void{
outputMainText((((((("The fair face moves up to one of your " + boobDesc()) + " breasts, the little mouth yawning wide to fit one of your ") + nipDesc()) + " nipples. She latches on the best she can, suckling intently from your chest. You let out a gasp as her expert suckling makes your body grow warm, a delightful tingling sensation making you quiver. Milk gushes from your tits as she gulps it down. Tentacles much thicker than the rest droop from her hair, their tips opening into soft maws that suckle from and kiss the ") + skinDesc()) + " of your breasts, leaving none unattended. It doesn't take long before you body is wracked by an intense boobgasm..."), true);
doNext();
doListen = function ():void{
outputMainText((("Gasping for air as you come down from your climax, the feminine face and all the tentacles collapse, leaving hardly any milk still dribbling from your " + nipDesc()) + " nipples. Checking the creature, she seems to have passed out in a drunken slumber. Her face seems content, with a small smile, her tentacles writhing lazily about her. Two tentacles in particular look surprisingly active, though. Her small breasts jiggle about as their tentacle-nipples stiffen and soften. They shiver as you run your hands along them, several feet long before you reach their tips. Short, narrow needles protrude from the tips of these tentacle-nipples and they dribble some pearlescant fluid excessivly. You take an empty vial from your bag and gather some of the fluid before heading on your way..."), true);
doSexP(20);
nipplePlay = (nipplePlay + 7);
doLust(-(Math.floor(((percent() / 10) + ((breastSize * sen) / 10)))));
milkAmount(1);
item1 = 201;
hrs = 2;
doEnd();
};
};
};
if (buttonChoice == 7){
outputMainText("You take the opportunity to run from the tentacles before the creature can come to its senses, easily avoiding it.", true);
doSexP(7);
hrs = 1;
doEnd();
};
};
};
if (buttonChoice == 7){
outputMainText("You take the opportunity to run from the tentacles before the creature can come to its senses, easily avoiding it.", true);
doSexP(4);
hrs = 1;
doEnd();
};
};
} else {
outputMainText((((((((((("\r\rPeach-colored tentacles lash out at you from the tree-branches above, catching you by surprise. They flail around your " + boobDesc()) + " chest, feeling about and scratching it roughly. They pull back for a moment, but before you can recoup from your confused stupor, even more come flying out from the trees, this time whipping around your wrists and ankles.\r\rStruggle as you may, you can't seem to wrench yourself free. You can only watch in fear as more tentacles pull your ") + clothesTop()) + " away and roam about your ") + boobDesc()) + " breasts. They poke and tease at your ") + nipDesc()) + " nipples, causing them to stand hard and erect. Then, short narrow needles draw out of two particularly thinner tentacles. They drip with some sort of pearlescant fluid and they plunge gently into each of your ") + boobTotal) + " fleshy masses..."), false);
doNext();
doListen = function ():void{
boobChange(1);
outputMainText((((("A sudden feeling of warmth overcomes you. Your breasts feel especially hot, heaving with your breath. Staring intently, you even notice them grow slightly in size.\r\rA moment later, your head jerks back as an intense feeling of fullness and swelling engulfs your sensitive tits. You recoil just in time to see streams of white liquid spew from your throbbing, " + nipDesc()) + " nipples. Milk continues to gush for a while, as more tentacles come close. These are much thicker than the ones with needles and their tips open into wet, soft maws. Each one latches onto your lactating breasts and begin to suckle...\r\rYou feel slightly light-headed from the fuzzy warmth that engulfs you, the pleasurable slurping of the hungry tentacles sucking you dry. Eventually, the tantalizing efforts make your body quiver, wracked by a strong orgasm... from your ") + boobDesc()) + " breasts."), true);
doNext();
doListen = function ():void{
outputMainText((((("A minute later, the tentacles retract from whence they came, leaving you to collapse to your knees. Your breasts still feel larger than before, especially when you put your " + clothesTop()) + " back into place. Wet blotches seep across the fabric, your ") + nipDesc()) + " nipples still dribbling with milk..."), true);
lactChange(1);
milkAmount(1);
nipplePlay = (nipplePlay + 6);
doSexP(10);
doLust(-(Math.floor(((percent() / 20) + ((breastSize * sen) / 10)))));
doHP(-(Math.floor((percent() / 10))));
hrs = 2;
doEnd();
};
};
};
};
};
};
if (chance > 75){
outputMainText("After a few hours of being lost and randomly wandering through the maze of trees, you come across a path. Would you like to follow it?", true);
buttonConfirm();
doListen = function ():void{
if (buttonChoice == 6){
if (currentZone == 1){
outputMainText("Following the path, the trees grow slightly sparser as you come upon a large clearing. Most of the clearing has been walled off by tree-trunks lashed together with rope. You hear some vicious growls, but also plenty of coherent speech, echoing from behind the wall. A whole bustling city. The path you followed brings you right to the front gates, where furry wolf-like guards kindly greet you and allow you to pass.\r\rYou have now entered the Lupan home-city of Tieden! Although, looking behind you, there seems to be no sign of the path you just took. Getting back might be a bit difficult...", true);
regionChange(3);
hrs = 4;
doEnd();
} else {
if (currentZone == 3){
outputMainText("Following the path, the trees grow much sparser opening up to rolling hills. Not far, you see tall buildings of wood and stone, with open streets of dirt and pebbles, nestled between the hills. Fur-less people move all about, busy doing odd jobs or having fun.\r\rYou have found the Human home-city of Softlik! Although, looking behind you, there seems to be no sign of the path you just took. Getting back might be a bit difficult...", true);
regionChange(1);
hrs = 4;
doEnd();
};
};
} else {
outputMainText("You return from whence you came.", true);
hrs = 1;
doEnd();
};
};
};
}
public function milkAmount(source:int):int{
var tempNum:int;
tempNum = 0;
if (source == 1){
if (milkEngorgementLevel == 0){
if (boobTotal == 2){
tempNum = ((((breastSize * (lactation + milkMod)) * (lactation + milkMod)) * 2) * 2);
};
if (boobTotal == 6){
tempNum = ((((breastSize * (lactation + milkMod)) * (lactation + milkMod)) * 2) * 4);
};
};
if (milkEngorgementLevel == 1){
if (boobTotal == 2){
tempNum = ((((breastSize * (lactation + milkMod)) * (lactation + milkMod)) * 3) * 2);
};
if (boobTotal == 6){
tempNum = ((((breastSize * (lactation + milkMod)) * (lactation + milkMod)) * 3) * 4);
};
};
if (milkEngorgementLevel == 2){
if (boobTotal == 2){
tempNum = ((((breastSize * (lactation + milkMod)) * (lactation + milkMod)) * 4) * 2);
};
if (boobTotal == 6){
tempNum = ((((breastSize * (lactation + milkMod)) * (lactation + milkMod)) * 4) * 4);
};
};
if (milkEngorgementLevel == 3){
if (boobTotal == 2){
tempNum = ((((breastSize * (lactation + milkMod)) * (lactation + milkMod)) * 6) * 2);
};
if (boobTotal == 6){
tempNum = ((((breastSize * (lactation + milkMod)) * (lactation + milkMod)) * 6) * 4);
};
};
if (milkEngorgementLevel > 0){
milkEngorgementLevel = 0;
boobChange(-1);
};
milkEngorgement = 0;
};
if (source == 2){
if (udderEngorgementLevel == 0){
tempNum = (((udderSize * (lactation + milkMod)) * (lactation + milkMod)) * 4);
};
if (udderEngorgementLevel == 1){
tempNum = (((udderSize * (lactation + milkMod)) * (lactation + milkMod)) * 7);
};
if (udderEngorgementLevel == 2){
tempNum = (((udderSize * (lactation + milkMod)) * (lactation + milkMod)) * 10);
};
if (udderEngorgementLevel == 3){
tempNum = (((udderSize * (lactation + milkMod)) * (lactation + milkMod)) * 14);
};
if (udderEngorgementLevel == 1){
udderEngorgementLevel = 0;
udderChange(-1);
};
if (udderEngorgementLevel == 2){
(udderEngorgementLevel == 0);
udderChange(-2);
};
if (udderEngorgementLevel > 2){
udderEngorgementLevel = 0;
udderChange(-3);
};
udderEngorgement = 0;
};
tempNum = Math.floor(tempNum);
return (tempNum);
}
public function clothesBottom():String{
var tempStr:String;
tempStr = ("CLOTHES BOTTOM ERROR " + attireBot);
if (attireBot == -1){
tempStr = "tattered shreds";
};
if (attireBot == 0){
tempStr = "invisible underwear";
};
if (attireBot == 2){
tempStr = "pants";
};
if (attireBot == 4){
tempStr = "bikini bottom";
};
if (attireBot == 5){
tempStr = "elegant dress";
};
if (attireBot == 6){
tempStr = "latex suit";
};
if (attireBot == 7){
tempStr = "skirt";
};
if (attireBot == 8){
tempStr = "shorts";
};
if (attireBot == 10){
tempStr = "diaper";
};
if (attireBot == 11){
tempStr = "poofy diaper";
};
if (attireBot == 12){
tempStr = "sundress";
};
if (attireBot == 13){
tempStr = "skimpy dress";
};
if (attireBot == 14){
tempStr = "short skirt";
};
if (attireBot == 15){
tempStr = "short shorts";
};
return (tempStr);
}
public function stats(stre:int, menta:int, libi:int, sens:int){
hideUpDown();
str = (str + stre);
ment = (ment + menta);
lib = (lib + libi);
sen = (sen + sens);
if (str > 100){
str = 100;
};
if (str < 1){
str = 1;
};
if (ment > 100){
ment = 100;
};
if (ment < 1){
ment = 1;
};
if (lib > 100){
lib = 100;
};
if (lib < 1){
lib = 1;
};
if (sen > 100){
sen = 100;
};
if (sen < 1){
sen = 1;
};
if (lust > 100){
lust = 100;
};
if (lust < 0){
lust = 0;
};
if (stre > 0){
strUp.visible = true;
strDown.visible = false;
};
if (stre < 0){
strDown.visible = true;
strUp.visible = false;
};
if (menta > 0){
mentaUp.visible = true;
mentaDown.visible = false;
};
if (menta < 0){
mentaDown.visible = true;
mentaUp.visible = false;
};
if (libi > 0){
libUp.visible = true;
libDown.visible = false;
};
if (libi < 0){
libDown.visible = true;
libUp.visible = false;
};
if (sens > 0){
senUp.visible = true;
senDown.visible = false;
};
if (sens < 0){
senDown.visible = true;
senUp.visible = false;
};
statDisplay();
}
public function doSave(slot:int):void{
var so:SharedObject;
var saveArray:Array;
var itemSaveArray:Array;
var stashSaveArray:Array;
so = SharedObject.getLocal("NiminFetishFantasy");
saveArray = [];
itemSaveArray = [];
stashSaveArray = [];
saveArray[0] = currentState;
saveArray[1] = currentZone;
saveArray[2] = str;
saveArray[3] = ment;
saveArray[4] = lib;
saveArray[5] = sen;
saveArray[6] = HP;
saveArray[7] = lust;
saveArray[8] = coin;
saveArray[9] = day;
saveArray[10] = hour;
saveArray[11] = SexP;
saveArray[12] = levelUP;
saveArray[13] = level;
saveArray[14] = runMod;
saveArray[15] = rapeMod;
saveArray[16] = cumMod;
saveArray[17] = cockSizeMod;
saveArray[18] = milkMod;
saveArray[19] = carryMod;
saveArray[20] = bellyMod;
saveArray[21] = pregChanceMod;
saveArray[22] = pregTimeMod;
saveArray[23] = enticeMod;
saveArray[96] = milkHPMod;
saveArray[97] = vagSizeMod;
saveArray[98] = vagElastic;
saveArray[24] = gender;
saveArray[25] = race;
saveArray[26] = body;
saveArray[27] = dominant;
saveArray[28] = hips;
saveArray[29] = butt;
saveArray[30] = tallness;
saveArray[31] = skinType;
saveArray[32] = tail;
saveArray[33] = ears;
saveArray[93] = hair;
saveArray[94] = hairColor;
saveArray[95] = hairLength;
saveArray[34] = cockTotal;
saveArray[35] = humanCocks;
saveArray[36] = horseCocks;
saveArray[37] = wolfCocks;
saveArray[38] = catCocks;
saveArray[39] = cockSize;
saveArray[40] = cockMoist;
saveArray[41] = balls;
saveArray[42] = ballSize;
saveArray[43] = showBalls;
saveArray[44] = knot;
saveArray[45] = breastSize;
saveArray[46] = boobTotal;
saveArray[47] = nippleSize;
saveArray[48] = udders;
saveArray[49] = udderSize;
saveArray[50] = teatSize;
saveArray[51] = clitSize;
saveArray[52] = vagTotal;
saveArray[53] = vagSize;
saveArray[54] = vagMoist;
saveArray[55] = vulvaSize;
saveArray[56] = attireTop;
saveArray[57] = attireBot;
saveArray[58] = weapon;
saveArray[59] = pregnancy;
saveArray[60] = pregnancyType;
saveArray[61] = pregnancyTime;
saveArray[62] = pregMaxTime;
saveArray[63] = exhaustion;
saveArray[64] = exhaustionPenalty;
saveArray[65] = milkEngorgement;
saveArray[66] = milkEngorgementLevel;
saveArray[67] = udderEngorgement;
saveArray[68] = udderEngorgementLevel;
saveArray[69] = heat;
saveArray[70] = heatTime;
saveArray[71] = heatMaxTime;
saveArray[72] = lactation;
saveArray[73] = nipplePlay;
saveArray[74] = udderPlay;
saveArray[75] = blueBalls;
saveArray[76] = teatPump;
saveArray[77] = nipPump;
saveArray[78] = cockPump;
saveArray[79] = clitPump;
saveArray[80] = vulvaPump;
saveArray[90] = masoPot;
saveArray[91] = sMasoPot;
saveArray[92] = babyFree;
saveArray[81] = humanAffinity;
saveArray[82] = horseAffinity;
saveArray[83] = wolfAffinity;
saveArray[84] = catAffinity;
saveArray[85] = cowAffinity;
saveArray[86] = lilaRep;
saveArray[87] = malonRep;
saveArray[88] = malonPreg;
saveArray[89] = malonChildren;
saveArray[99] = mistressRep;
saveArray[100] = babyFactLevel;
saveArray[101] = bodyBuildLevel;
saveArray[102] = hyperHappyLevel;
saveArray[103] = alchemistLevel;
i = 0;
while (i < 39) {
if (i < 13){
itemSaveArray[i] = itemArray1[i];
} else {
if (i < 26){
itemSaveArray[i] = itemArray2[(i - 13)];
} else {
if (i < 39){
itemSaveArray[i] = itemArray3[(i - 26)];
};
};
};
i++;
};
trace(itemSaveArray);
i = 0;
while (i < 39) {
if (i < 13){
stashSaveArray[i] = stashArray1[i];
} else {
if (i < 26){
stashSaveArray[i] = stashArray2[(i - 13)];
} else {
if (i < 39){
stashSaveArray[i] = stashArray3[(i - 26)];
};
};
};
i++;
};
if (slot == 1){
so.data.saveGame1 = saveArray;
so.data.itemSave1 = itemSaveArray;
so.data.stashSave1 = stashSaveArray;
};
if (slot == 2){
so.data.saveGame2 = saveArray;
so.data.itemSave2 = itemSaveArray;
so.data.stashSave2 = stashSaveArray;
};
if (slot == 3){
so.data.saveGame3 = saveArray;
so.data.itemSave3 = itemSaveArray;
so.data.stashSave3 = stashSaveArray;
};
if (slot == 5){
so.data.saveGame5 = saveArray;
so.data.itemSave5 = itemSaveArray;
so.data.stashSave5 = stashSaveArray;
};
if (slot == 6){
so.data.saveGame6 = saveArray;
so.data.itemSave6 = itemSaveArray;
so.data.stashSave6 = stashSaveArray;
};
if (slot == 7){
so.data.saveGame7 = saveArray;
so.data.itemSave7 = itemSaveArray;
so.data.stashSave7 = stashSaveArray;
};
if (slot == 9){
so.data.saveGame9 = saveArray;
so.data.itemSave9 = itemSaveArray;
so.data.stashSave9 = stashSaveArray;
};
if (slot == 10){
so.data.saveGame10 = saveArray;
trace("oops");
so.data.itemSave10 = itemSaveArray;
so.data.stashSave10 = stashSaveArray;
};
if (slot == 11){
so.data.saveGame11 = saveArray;
so.data.itemSave11 = itemSaveArray;
so.data.stashSave11 = stashSaveArray;
};
so.flush();
}
public function hairL():String{
var tempStr:String;
tempStr = ("HAIR LENGTH ERROR " + hairLength);
if (hairLength == 2){
tempStr = "that is short enough to not dangle past your head";
};
if (hairLength == 4){
tempStr = "that reaches down to your shoulders";
};
if (hairLength == 6){
tempStr = "that reaches down your back";
};
if (hairLength == 8){
tempStr = "that reaches down to your butt";
};
if (hairLength == 10){
tempStr = "that reaches down to the ground";
};
return (tempStr);
}
public function hairC():String{
var tempStr:String;
tempStr = ("HAIR COLOR ERROR " + hairColor);
if (hairColor == 0){
tempStr = "";
};
if (hairColor == 1){
tempStr = "black ";
};
if (hairColor == 2){
tempStr = "blonde ";
};
if (hairColor == 3){
tempStr = "red ";
};
if (hairColor == 4){
tempStr = "brown ";
};
if (hairColor == 5){
tempStr = "coral pink ";
};
return (tempStr);
}
public function doGetRaped():void{
if (enemyID == 1){
if (gender == 1){
outputMainText("The test enemy pokes its cock in your butt and cums.", true);
};
if (gender == 2){
outputMainText("The test enemy pokes its cock in your vagina and cums.", true);
};
if (gender == 3){
outputMainText("The test enemy pokes its cock in your vagina and cums while stroking you off.", true);
};
};
if (enemyID == 101){
outputMainText((((((((((("As your growing erection" + plural(1)) + " spill") + plural(3)) + " from your ") + clothesBottom()) + ", the cock-snake's mouth grows wide. It slithers forward, engulfing ") + oneYour(1)) + " cock") + plural(1)) + ", its mouth stretching wider and wider to fully engulf it, its body so elastic it could take on any length.\r\rIn an instant, your body begins to writhe and shudder as the cock-snake's gullet strongly massages along your length, quickly building you to orgasm. You clench at the ground beneath you as the cum is sucked right from your body, your hips jerking while you pump it out. The cock-snake guzzles it down, drinking it until you're completely finished, some of the spunk splashing back out across your thighs...\r\rHunger sated, the cock-snake slithers away"), true);
if (cumAmount() > 2300){
outputMainText(", its belly obviously distended from your massive load", false);
};
outputMainText(".", false);
};
if (enemyID == 201){
outputMainText((((((((((((((((("The lone wolf rolls you onto all fours with its nose. Obliging, you duck forward, raising your " + buttDesc()) + " rump into the air. He sniffs your cunt") + plural(2)) + ", lapping at the wetness that soaks through your ") + clothesBottom()) + ". He jumps up, clawing your ") + clothesBottom()) + " to shreds until your ") + vulvaDesc()) + " hot crotch is put on display. Scratching your back, he mounts you from behind.\r\rHis rock-hard rod pokes and prods around your sex until it finds ") + oneYour(2)) + " gaping hole") + plural(2)) + " and plunges it in. You gasp as the steaming meaty flesh pounds into you, the wolf roughly humping away, the inner fur of his thighs rubbing back and forth along your ") + buttDesc()) + " naked bum. He hugs you with his paws, his muzzle panting beside your ear while drool drips down from his lolling tongue and down your cheek. It only takes a minute before he howls loudly, cum spurting into your pussy at an astonishing rate. You shout as it floods your insides, a thick knot growing at your entrance and spreading you open further..."), true);
changeBot(-1);
doNext();
outputMainText("You gasp as you're about to pass out, feeling the wolf tug at your violated cunt in an attempt to get away. Still tied by his knot, his cock squirting away within, ", false);
if (vagLimit() < 32){
outputMainText("you wince with each pull, the knot stretching you wider,", false);
vagChange(1, 0);
} else {
if (vagLimit() < 8){
outputMainText("you yelp with each pull, the knot far too large for your little pussy and stretches you much wider and wider while causing you some pain,", false);
vagChange(2, 0);
doHP(-5);
} else {
outputMainText("but your gaping cunt is more than enough to handle it,", false);
};
};
outputMainText(" until it finally pulls free and he runs back off into the forest.", false);
doImpregnate(enemyBaby());
};
if (enemyID == 301){
outputMainText((((("Finally having someone as horny as she is, she pounces onto you. She presses your face against her exposed nipples, forcing you to lick the soreness that had been caused by her own rubbing. She grinds up and down your belly, tearing your " + clothesTop()) + " to tattered shreds with her claws while biting and suckling from your own ") + nipDesc()) + " nipples"), true);
changeTop(-1);
if (lactation > 0){
outputMainText(", delighting in the taste of your milk", false);
};
outputMainText(((". However, it doesn't take long until she reaches beneath her loin cloth and pulls her bikini bottom to the side before she goes diving into your " + clothesBottom()) + ","), false);
if ((((gender == 1)) || ((gender == 3)))){
outputMainText(((((((" digging out " + oneYour(1)) + " ") + cockDesc()) + " cock") + plural(1)) + "."), false);
if ((cockSize * cockSizeMod) > eVagLimit(40)){
outputMainText(((" She attempts to stand and squat down upon it, but, to her dismay, she can't seem to push it into her hungry pussy, even though she tried until tears welled up in her eyes from the painful stretching. Instead, she settles for hugging and humping the " + cockDesc()) + " thing, grinding her own stiff little erection into it, her feminine juices spilling down its length and over your body."), false);
} else {
if ((cockSize * cockSizeMod) > eVagLimit(20)){
outputMainText(" She mewls and mrowls in pain as she stands up and squats down upon it. It spreads her so wide that it hurts her so much, yet she doesn't care, so desperate to fuck. Tears roll down her cheeks, but her mouth yawns wide with erotic joy, being filled so much.", false);
} else {
outputMainText(" She rises up, only to squat back down on your erection, your cock slipping into her supple folds. So absolutely overjoyed to finally have a cock in her, she scratches at your chest with her claws and bites down upon your neck.", false);
};
};
outputMainText(" Her hips speed up faster and faster, wildly working her pussy so much that the slick liquids spilling from her gurgle and churn into a bubbly mess. You too find her efforts to be extremely effective, your body quaking along with her.", false);
if ((((cumAmount() > 550)) && (((cockSize * cockSizeMod) <= eVagLimit(40))))){
outputMainText(" She purrs loudly as she feels your cum explode within her, utterly pleased as it fills her so much that it squirts back out of her pussy with a loud lewd noise.", false);
} else {
if ((cockSize * cockSizeMod) > eVagLimit(40)){
outputMainText(" She purrs hungrily as she laps at you cum as it sprays about the both of you, her face absolutely delighted in having her fur matted with the stuff.", false);
};
};
outputMainText("\r\r", false);
if ((((knot == true)) && (((cockSize * cockSizeMod) <= eVagLimit(40))))){
outputMainText("With a high-pitched squeak, she pulls off of your knot without thinking. She rubs her poor cunny from the pain, only to roll her eyes up into her head with the pleasant masturbation. ", false);
};
};
if (gender == 2){
outputMainText(((((((" lapping at your " + vulvaDesc()) + " crotch and rouchly licking your ") + clitDesc()) + " clit") + plural(2)) + "."), false);
if (clitSize > 25){
outputMainText(((((" With a wicked grin, she eyes your " + clitDesc()) + " clit") + plural(2)) + " hungrily."), false);
if (clitSize > 100){
outputMainText(((((((" She attempts to stand and squat down upon " + oneYour(2)) + " erect button") + plural(2)) + ", but, to her dismay, she can't seem to push it into her hungry pussy, even though she tried until tears welled up in her eyes from the painful stretching. Instead, she settles for hugging and humping the ") + clitDesc()) + " thing, grinding her own stiff little erection into it, her feminine juices spilling down its length and over your body."), false);
} else {
if (clitSize > 50){
outputMainText(((((" She mewls and mrowls in pain as she stands up and squats down upon " + oneYour(2)) + " erect button") + plural(2)) + ". It spreads her so wide that it hurts her so much, yet she doesn't care, so desperate to fuck. Tears roll down her cheeks, but her mouth yawns wide with erotic joy, being filled so much."), false);
} else {
outputMainText(((((" She rises up, only to squat back down upon " + oneYour(2)) + " erect button") + plural(2)) + ", your clit slipping into her supple folds. So absolutely overjoyed to finally have a hard phallic object in her, she scratches at your chest with her claws and bites down upon your neck."), false);
};
};
} else {
outputMainText(" She glides back up your chest and presses her sloppy cunt to yours, grinding the two together.", false);
};
outputMainText(" Her hips speed up faster and faster, wildly working her pussy so much that the slick liquids spilling from her gurgle and churn into a bubbly mess. You too find her efforts to be extremely effective, your body quaking along with her.", false);
};
outputMainText("Dazed and high with her climax, having finally overcome her heat a little, she stumbles away, her loin cloth pushed so far to the side that her lips shine between her legs for all to see.", false);
if ((((((percent() < 40)) && ((ballSize > 1)))) && (((cockSize * cockSizeMod) <= eVagLimit(40))))){
outputMainText(" And she seems oddly content, as though her heat had passed with that romp for some reason...", false);
};
};
if (enemyID == 302){
outputMainText("Seeing you laying defenseless and utterly aroused before him, the drunken equan falls to the ground. With a grunt and a grope, he pulls his huge cock from his pants, his erection barely 2/3 its full potential. Considering how drunk he is, it probably won't get much larger.", true);
if ((((gender == 1)) || ((((gender == 3)) && ((percent() <= 50)))))){
outputMainText(((" Nevertheless, not caring whether you're male or female, he turns you over to find the hole everybody has. Giving your " + buttDesc()) + " ass a slap with his mug, he leans forward and plunges his erection deep inside."), false);
} else {
if ((((gender == 2)) || ((gender == 3)))){
outputMainText(((((" Nevertheless, he slips his arms behind your knees, pushing them up and foward as his cock plows into " + oneYour(2)) + " cunt") + plural(2)) + "."), false);
if (vagLimit() < 52){
outputMainText(" You wince as it pushes in too far, pounding your cervix further and further into your belly, permanently stretching you a bit.", false);
vagChange(1, 0);
doImpregnate(enemyBaby());
} else {
if (vagLimit() < 28){
outputMainText(" With a cry, the large horse-cock proves too big for your relatively small pussy, stretching it dramatically and causing you some pain.", false);
vagChange(3, 0);
doHP(-(Math.floor((eStr / 2))));
doImpregnate(enemyBaby());
} else {
if (vagLimit() < 12){
outputMainText(((" You cry out in pain as the cock slams against your entrance, completely unable to fit. So, instead, the the horny equan turns you over, plunging his erection deep into your " + buttDesc()) + " ass until you can see it bulge through your belly."), false);
doHP(-5);
} else {
outputMainText(((" You feel it push against your belly from within, the mound slightly protruding through your " + skinDesc()) + ", taking his entire length inside of you."), false);
doImpregnate(enemyBaby());
};
};
};
};
};
outputMainText(" Again and again, he has his way with your hole, until he lets out a loud whinny. Eyes going wide, you feel a flood of his hot stuff flush into your body, making you lose all thoughts of everything else...", false);
if (cumAmount() > 0){
outputMainText(" Your cock explodes across the ground just before you collapse, forming a nice puddle to splash in.", false);
};
outputMainText("\r\rAs drunk as he is, the large equan doesn't take long to pull out, cum dribbling in long strands from his huge cock and splattering across his pants, as he sways back towards Firmshaft.", false);
};
if (enemyID == 303){
if (gender == 1){
outputMainText((((((((((((("With a giggle at your vulnerable state, her tentacles wrap about your " + buttDesc()) + " butt, weaving into you ") + clothesBottom()) + " and pulling out your ") + cockDesc()) + " erection") + plural(1)) + ". She takes ") + oneYour(1)) + " cock") + plural(1)) + " and fondles it with the slimy appendages, making sure it's nice and hard."), true);
if ((cockSize * cockSizeMod) > 50){
outputMainText(((" Not wanting to stretch herself to engulf your " + cockDesc()) + " thing, she instead wraps her tentacles around it, drawing it towards the center of her webbing, just beneath her hips.\r\rYou can't tell what is going on, but you quickly jerk as something nips at your urethra. Nothing painful, just a soft yet rigid fleshy thing, like cartilage, that gently pinches you. Then your eyes go wide as whatever it is begins to dig into your urethra, spreading the last couple of inches wider as it slips inside, holding your cock-tip open like a gaping hole.\r\rAgain, she is gentle, but any pain you might have noticed quickly disappears as all eight of her tentacles work together in harmony, writhing about your cock and making you twitch sporadically on the ground from the intense pleasure. She wrings your cock powerfully, quickly bringing you to a gushing orgasm, spraying your cum through your gaping urethra and filling her body."), false);
} else {
outputMainText(((" Her whole body moves over yours, your groin being lost to her webbing.\r\rYou can't tell what is going on, but you quickly jerk as something nips at the tip of your rod. Nothing painful, just a soft yet rigid fleshy thing, like cartilage, that gently pinches you. Then your eyes go wide as whatever it is engulfs your length, sucking you inside. Supple folds squish and writhe around your cock, as though it were a pussy with a throat that was trying desparately to swallow you. Within moments, you find your " + hipDesc()) + " hips jerking as you blowing your load, filling her."), false);
};
if (cumAmount() > 2300){
outputMainText(" You come so much that her belly begins to swell larger, stretching to engulf as much of your seed as she can, before gushing back out and down your cock.", false);
};
outputMainText("\r\rHer belly shivers a little as it absorbs your cum. It grows slightly larger as her offspring wiggle inside, maturing. With a grin, she slides off of you and back into the ocean, her tentacles twitching excitedly as she disappears...", false);
};
if (gender == 2){
outputMainText((((((((((((((((("She grins at you, particularly happy to see you submit before her. She leans in for a wet kiss, licking your cheek with her long tongue, as her tentacles wrap around your " + buttDesc()) + " butt. They weave into your ") + clothesBottom()) + " and pull it ") + pullUD(2)) + ", exposing your swollen and hungry ") + vulvaDesc()) + " cunt") + plural(2)) + ". She then swings back, her tentacles flying wide for a moment and giving you a view of what's behind her webbing.\r\rIn the center of all the tentacles, right beneath her hips, gasps a gaping hole. A sort of 'beak', like octopuses normally have, encompasses it. The beak looks tougher than the surrounding flesh, able to maintain its shape. However, as she rams it against your groin, you notice it's softer than you expected, more like cartilage. Yet, you don't have much time to reflect about what it is as it begins to nip at your nether-lips, prying them open and burying itself within, a few inches deep.\r\rIt doesn't hurt much, but any pain quickly dissipates as her tentacles wrap around your groin. The suction cups underneath stick to your ") + skinDesc()) + ", giving her a good grip, while some in particular latch onto your clit") + plural(2)) + " and lips, tugging and sliming at your arousal. Your hips quickly begin to buck on the ground as she brings you to orgasm after orgasm, your button") + plural(2)) + " and vulva swelling larger as fluids from the cups seep into them."), true);
if (pregnancy == true){
outputMainText("\r\rHowever, she seems to quickly notice that you already have something growing inside of you. With a smile, she removes her tentacles and draws up your body. She leans in yet again for another kiss, this time on your forehead, her breasts surrounding your face. Then she turns and leaps back into the water with a splash, leaving you wracked with ecstasy and larger genitals...", false);
clitSize = (clitSize + 4);
vulvaSize = (vulvaSize + 2);
} else {
outputMainText((("\r\rWhile your mind is distracted by the multiple climaxes, you hardly notice as she begins to wince and groan, her arms hugging her belly. Then, amidst your ecstatic moans, you let out a gasp as something breaches your " + vulvaDesc()) + " pussy, round and large."), false);
if (vagSize < 20){
outputMainText(((" The object is so big that it stretches your poor cunt" + plural(2)) + " even larger, making sure there's enough room."), false);
vagSize = (vagSize + 2);
};
outputMainText((((("\r\rAnd that was just the first...\r\rAgain and again, you can feel something slip into your womb. Yet, as her tentacles work at your " + clitDesc()) + " clit") + plural(2)) + ", you can nothing but cry out in pleasure with each pass. Soon, you find yourself groping your own belly as it swells beneath your hands, while hers deflates, emptying its contents into you. Eventually, you look as pregnant as she did, the things inside shivering slightly at the warmth of their new home...\r\rHappy with her spawning season, the octopus girl gathers her own wits, relinquishing you from her tentacles and kissing your enormous belly. Then, she turns towards the ocean and dives back into it, disappearing until the next time she needs a surrogate..."), false);
pregnancy = true;
pregMaxTime = 216;
pregnancyTime = 180;
pregnancyType = 200;
stats(0, 0, Math.floor((pregnancyTime / 25)), Math.floor((pregnancyTime / 25)));
};
};
if (gender == 3){
outputMainText((((((((((((("With a giggle at your vulnerable state, her tentacles wrap about your " + buttDesc()) + " butt, weaving into you ") + clothesBottom()) + " and pulling out your ") + cockDesc()) + " erection") + plural(1)) + ". She takes ") + oneYour(1)) + " cock") + plural(1)) + " and fondles it with the slimy appendages, making sure it's nice and hard."), true);
if ((cockSize * cockSizeMod) > 50){
outputMainText(((" Not wanting to stretch herself to engulf your " + cockDesc()) + " thing, she instead wraps her tentacles around it, drawing it towards the center of her webbing, just beneath her hips.\r\rYou can't tell what is going on, but you quickly jerk as something nips at your urethra. Nothing painful, just a soft yet rigid fleshy thing, like cartilage, that gently pinches you. Then your eyes go wide as whatever it is begins to dig into your urethra, spreading the last couple of inches wider as it slips inside, holding your cock-tip open like a gaping hole.\r\rAgain, she is gentle, but any pain you might have noticed quickly disappears as all eight of her tentacles work together in harmony, writhing about your cock and making you twitch sporadically on the ground from the intense pleasure. She wrings your cock powerfully, quickly bringing you to a gushing orgasm, spraying your cum through your gaping urethra and filling her body."), false);
} else {
outputMainText(((" Her whole body moves over yours, your groin being lost to her webbing.\r\rYou can't tell what is going on, but you quickly jerk as something nips at the tip of your rod. Nothing painful, just a soft yet rigid fleshy thing, like cartilage, that gently pinches you. Then your eyes go wide as whatever it is engulfs your length, sucking you inside. Supple folds squish and writhe around your cock, as though it were a pussy with a throat that was trying desparately to swallow you. Within moments, you find your " + hipDesc()) + " hips jerking as you blowing your load, filling her."), false);
};
if (cumAmount() > 2300){
outputMainText(" You come so much that her belly begins to swell larger, stretching to engulf as much of your seed as she can, before gushing back out and down your cock.", false);
};
outputMainText("\r\rHer belly shivers a little as it absorbs your cum. It grows slightly larger as her offspring wiggle inside, maturing.", false);
outputMainText((((((((((((("With a grin, she seems particularly happy to have found such a suitable partner. She leans in for a wet kiss, licking your cheek with her long tongue, as her tentacles wrap around your " + buttDesc()) + " butt once more. They squirm around your exposed swollen and hungry ") + vulvaDesc()) + " cunt") + plural(2)) + ", making sure you're still aroused. She then swings back, her tentacles flying wide for a moment and giving you a view of what's behind her webbing.\r\rIn the center of all the tentacles, right beneath her hips, gasps a gaping hole. A sort of 'beak', like octopuses normally have, encompasses it. The beak looks tougher than the surrounding flesh, able to maintain its shape. However, as she rams it against your groin, you notice it's softer than you expected, more like cartilage. Its the thing you had noticed before... Yet, you don't have much time to reflect about what it is as it begins to nip at your nether-lips, prying them open and burying itself within, a few inches deep.\r\rIt doesn't hurt much, but any pain quickly dissipates as her tentacles wrap around your groin. The suction cups underneath stick to your ") + skinDesc()) + ", giving her a good grip, while some in particular latch onto your clit") + plural(2)) + " and lips, tugging and sliming at your arousal. Your hips quickly begin to buck on the ground as she brings you to orgasm after orgasm, your button") + plural(2)) + " and vulva swelling larger as fluids from the cups seep into them."), false);
if (pregnancy == true){
outputMainText("\r\rHowever, she seems to quickly notice that you already have something growing inside of you. With a smile, she removes her tentacles and draws up your body. She leans in yet again for another kiss, this time on your forehead, her breasts surrounding your face. Then she turns and leaps back into the water with a splash, leaving you wracked with ecstasy and larger genitals...", false);
clitSize = (clitSize + 4);
vulvaSize = (vulvaSize + 2);
} else {
outputMainText((("\r\rWhile your mind is distracted by the multiple climaxes, you hardly notice as she begins to wince and groan, her arms hugging her belly. Then, amidst your ecstatic moans, you let out a gasp as something breaches your " + vulvaDesc()) + " pussy, round and large."), false);
if (vagSize < 20){
outputMainText(((" The object is so big that it stretches your poor cunt" + plural(2)) + " even larger, making sure there's enough room."), false);
vagSize = (vagSize + 3);
};
outputMainText((((("\r\rAnd that was just the first...\r\rAgain and again, you can feel something slip into your womb. Yet, as her tentacles work at your " + clitDesc()) + " clit") + plural(2)) + ", you can nothing but cry out in pleasure with each pass. Soon, you find yourself groping your own belly as it swells beneath your hands, while hers deflates, emptying its contents into you. Eventually, you look as pregnant as she did, even the extra bit she gained from after you filled her with your cum, the things inside shivering slightly at the warmth of their new home...\r\rEspecially happy with how well her spawning season went this week, the octopus girl gathers her own wits, relinquishing you from her tentacles and kissing your enormous belly. Then, she turns towards the ocean and dives back into it, disappearing until the next time she needs a surrogate..."), false);
pregnancy = true;
pregMaxTime = 252;
pregnancyTime = 216;
pregnancyType = 200;
stats(0, 0, Math.floor((pregnancyTime / 25)), Math.floor((pregnancyTime / 25)));
};
doLust(-20);
};
};
outputMainText("\r\rYou pass out in a puddle of mixed sensual fluids...", false);
currentState = 1;
doLust(-50);
hrs = (2 + Math.floor((percent() / 20)));
exhaustion = (exhaustion - Math.floor((percent() / 20)));
doEnd();
}
public function doLake():void{
var chance:int;
chance = percent();
if (chance <= 50){
outputMainText("At the edge of the lake, knocking against the bank with the subtle waves, you spot a piece of cloth. Pulling it out, you let out an 'ew' as long strands of clear slime drip from it. Nevertheless, you think it's a fantastic idea to hold onto it.\r\r(You should really get your kleptomania checked)", true);
item1 = 213;
hrs = 2;
doEnd();
};
if ((((chance > 50)) && ((chance <= 100)))){
outputMainText("You wander around the lake, but you don't find much. However, in the distance you hear some soft singing that elates your body and mind.", true);
stats(1, 2, -1, 0);
hrs = 1;
doEnd();
};
}
public function countItem(ID:int):int{
var tempInt:int;
var tempInt2:int;
tempInt = 0;
tempInt2 = currentItems;
currentItems = 1;
i = 1;
while (i < 37) {
if (itemID(i) == ID){
tempInt++;
};
if (i == 12){
currentItems = 2;
};
if (i == 24){
currentItems = 3;
};
if (i == 36){
currentItems = 1;
};
i++;
};
currentItems = tempInt2;
return (tempInt);
}
public function doCockMasturbate():void{
var whichCock:String;
var chance:int;
var getCum:int;
whichCock = "";
while (whichCock == "") {
chance = percent();
if ((((chance <= 25)) && ((humanCocks > 0)))){
whichCock = "hard human rod";
};
if ((((((chance > 25)) && ((chance <= 50)))) && ((horseCocks > 0)))){
whichCock = "long equine flesh";
};
if ((((((chance > 50)) && ((chance <= 75)))) && ((wolfCocks > 0)))){
whichCock = "pointy wolf meat";
};
if ((((((chance > 75)) && ((chance <= 100)))) && ((catCocks > 0)))){
whichCock = "pink thorny cat prick";
};
};
if (lust < 20){
outputMainText((("You're hardly aroused enough to get your cock" + plural(1)) + " standing, let alone masturbate. You'll just have to settle for something else."), true);
doEnd();
} else {
getCum = cumAmount();
if (ment >= (lib - 10)){
outputMainText((((((((((("You sneak off to the private place where you sleep in " + regionName()) + " with a bunch of towels in hand. Carefully, so as to not let anybody hear, you pull ") + pullUD(2)) + " your ") + clothesBottom()) + ", your ") + cockDesc()) + " erection") + plural(1)) + " bobbing out.\r\rYou wrap your "), true);
};
if ((((ment < (lib - 10))) && ((ment >= (lib - 25))))){
outputMainText((((((((((((("You quickly head off to the private place where you sleep with your intentions clear as those around " + regionName()) + " can easily see your ") + cockDesc()) + " bulge growing in your ") + clothesBottom()) + ". Before you even reach your destination, you're already pulling the ") + clothesBottom()) + " ") + pullUD(2)) + ", your cock") + plural(1)) + " flopping out.\r\rYou're not too sure if anybody saw it before you disappeared into solitude, but that doesn't matter as you wrap your "), true);
};
if ((((ment < (lib - 25))) && ((ment >= (lib - 50))))){
outputMainText((((((((((("Your chest heaving with your heavy breathing, you don't think you can reach the private place where you sleep without blowing your load, the thought of coming hanging so heavily on your mind.\r\rInstead, you duck into one of the more hidden corners of " + regionName()) + " as you pull ") + pullUD(2)) + " your ") + clothesBottom()) + " and let your ") + cockDesc()) + " cock") + plural(1)) + " spring out. You hear somebody pass nearby, but you don't care as you wrap your "), true);
};
if (ment < (lib - 50)){
outputMainText((((((((((("Without a second thought, right in the middle of " + regionName()) + " you pull ") + pullUD(2)) + " your ") + clothesBottom()) + " and whip out your ") + cockDesc()) + " wang") + plural(1)) + ".\r\rPeople gasp and stare as you wrap your "), true);
};
if ((cockSize * cockSizeMod) <= (tallness / 3.75)){
outputMainText((("hand around your " + whichCock) + " and slowly pump it, building stronger and stronger."), false);
};
if (((((cockSize * cockSizeMod) > (tallness / 3.75))) && (((cockSize * cockSizeMod) <= (tallness * 1.2))))){
outputMainText((("hands around your " + whichCock) + " , "), false);
if ((cockSize * cockSizeMod) > (tallness / 1.5)){
if (breastSize > 4){
outputMainText((("hugging it between your " + boobTotal) + " breasts, "), false);
} else {
outputMainText("hugging it to your chest, ", false);
};
};
outputMainText("pounding your fists up and down its length.", false);
};
if ((cockSize * cockSizeMod) > (tallness * 1.2)){
outputMainText((("arms around your " + whichCock) + ", hugging it close and trying to jerk yourself the best you can."), false);
};
if ((((cockMoist > 0)) && ((cockMoist <= 3)))){
outputMainText(" Drops of pre help aid your efforts, though it's still a little rough.", false);
};
if ((((cockMoist > 3)) && ((cockMoist <= 6)))){
outputMainText(((" A dribble of pre leaks out, sufficiently coating your " + cockDesc()) + " cock and making your efforts so much easier."), false);
};
if ((((cockMoist > 6)) && ((cockMoist <= 9)))){
outputMainText(((((" Pre squeezes out of your cock and more than coat your " + cockDesc()) + " cock, with plenty extra drooling down across your ") + skinDesc()) + "."), false);
};
if ((((cockMoist > 9)) && ((cockMoist <= 12)))){
outputMainText(((" A flood of pre gushes out from the tip, sufficiently coating yourself, your " + cockDesc()) + " cock and then some in slick lubrication."), false);
};
if (showBalls == true){
outputMainText(((((" One of your hands reaches down to knead your " + ballDesc()) + " scrotum, letting your ") + balls) + " cum-factories know it's time."), false);
};
if (lust <= 30){
outputMainText("\r\rSlowly,", false);
};
if ((((lust > 30)) && ((lust <= 70)))){
outputMainText("\r\rQuickly,", false);
};
if (lust > 70){
outputMainText("\r\rAlmost instantly,", false);
};
outputMainText(((" your " + whichCock) + " throbs, a pressure building at the base of your spine"), false);
if (knot == true){
outputMainText(", the base of your cock swelling into a thick knot that you begin to tug", false);
};
outputMainText(".", false);
if (cockTotal > 1){
outputMainText(" Your other cocks do the same, your hands dashing back and forth between them, attempting to not leave them completely ignored.", false);
};
outputMainText((((("Your " + hipDesc()) + " hips soon jerk as thick strands of hot spunk launch from your cock-tip") + plural(1)) + ","), false);
if (getCum <= 24){
outputMainText(" with a bit more drooling down to the floor.", false);
};
if ((((getCum > 24)) && ((getCum <= 72)))){
outputMainText(" spitting small wads again and again until it's done.", false);
};
if ((((getCum > 72)) && ((getCum <= 1000)))){
outputMainText(" spewing large gobs again and again until you've made a heck of a mess.", false);
};
if ((((getCum > 1000)) && ((getCum <= 2200)))){
outputMainText(" coming more and more, like it can't stop, until you've made so much cum that you could feed a person with it for a day...", false);
};
if ((((getCum > 2200)) && ((getCum <= 4500)))){
outputMainText(" the stuff gushing like a fire-hose. Somewhere between half and a full gallon, you're not sure what to do with it all!", false);
};
if ((((getCum > 4500)) && ((getCum <= 20000)))){
outputMainText(" gallons upon gallons of it spewing and spraying out, nearly nonstop. If you had a tub with you, you could have taken a bath in it all!", false);
};
if (getCum > 20000){
outputMainText(" so much, so strong, it keeps on spewing out! Gallons and gallons, your body is wracked by the long ejaculation. After a while, your mind can't take any more and you pass out, only to wake up in a pool of cum and no way to take care of it all... You sneak away.", false);
doLust(-100);
if (lust >= 20){
doSexP(20);
};
hrs = 5;
exhaustion = (exhaustion - 2);
doEnd();
};
if (ment >= (lib - 10)){
outputMainText("\r\rYou quietly heave as you attempt to clean up your mess with the towels you have brought along, hiding them until you can safely clean them without being caught. Except for the smell that permeates the area, you don't think anybody will catch on to your lewd actions, and you continue on with your day.", false);
};
if ((((ment < (lib - 10))) && ((ment >= (lib - 25))))){
outputMainText("\r\rComing down from your high, you clean up your mess the best you can, though its likely some cum was left behind. At least, it smells like some was. And as you leave the place, one of your neighbors eyes you with a surprised look. You were probably a bit loud... Or maybe you have a wad of cum in your hair?", false);
};
if ((((ment < (lib - 25))) && ((ment >= (lib - 50))))){
outputMainText((("\r\rYou realize your hiding place is a mess as you come to your senses. Before you're caught, you quickly don your " + clothesBottom()) + " again, even though your cock is still drooling and leaving quite the blotch. As you attempt to casually walk away, some nearby strangers blink at you curiously, not quite sure what they just heard. You then dash off before anybody tries to check out what you left behind."), false);
};
if (ment < (lib - 50)){
outputMainText((((("\r\rGasping, you blink and look around you. You've gathered quite the crowd, especially some women, and they all gaze out you in amazement. A few tug at their own groins, ducking away from the rest, while others don't look so happy at what you have done, especially the ones with children beside them. You pull " + pullUD(2)) + " your ") + clothesBottom()) + ", cum dripping down the front and smearing about within, and you slink away, trying to avoid any more stares. Although, your heart pounds within your chest at the thought of what you had just done..."), false);
};
if (getCum < 1000){
outputMainText((("\r\r\rYou have produced " + getCum) + " ml of spooge!"), false);
} else {
if (getCum >= 1000){
outputMainText((("\r\r\rYou have produced " + decGet((getCum / 1000), 1)) + " liters of spooge!"), false);
};
};
if (lust >= 20){
doSexP(10);
};
doLust(-(sen));
hrs = 1;
doEnd();
};
}
public function doRemoveStash():void{
viewButtonOutline(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
viewButtonText(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
i = 1;
while (i < 13) {
buttonWrite(i, itemName(stashID(i)));
i++;
};
buttonWrite(4, "<<");
buttonWrite(8, ">>");
buttonWrite(12, "Return");
showPage(true, 2);
outputMainText("Click on an item you would like to remove from stash.\r\rClick 'Return' to return to the main stash options.", true);
doListen = function ():void{
if (buttonChoice == 12){
showPage(false, 2);
doStash();
} else {
if (buttonChoice == 4){
if (currentStash == 1){
currentStash = 3;
} else {
if (currentStash == 2){
currentStash = 1;
} else {
if (currentStash == 3){
currentStash = 2;
};
};
};
showPage(true, 2);
doRemoveStash();
} else {
if (buttonChoice == 8){
if (currentStash == 1){
currentStash = 2;
} else {
if (currentStash == 2){
currentStash = 3;
} else {
if (currentStash == 3){
currentStash = 1;
};
};
};
showPage(true, 2);
doRemoveStash();
} else {
if (((((!((buttonChoice == 0))) && (!((buttonChoice == 4))))) && (!((buttonChoice == 8))))){
showPage(false, 1);
stashRemove(buttonChoice);
};
};
};
};
};
}
public function doSizCalit():void{
var chance:int;
var getMilk:int;
chance = percent();
if (chance <= 20){
if (lilaRep == 3){
outputMainText("You come across Lila as you walk through the city. She grins and runs up to you, pouncing you with a great big hug around your waist. She thanks you again, although she shifts awkwardly as she lets go, 6 blotches covering her dress from chest to belly, with another, smaller one below...\r\r'Uhh... Umm... I-I kinda have a diffewent problem now... The other kids son't make fun of me as much, but I'm afwaid of mommy finding out. C-Can yew help me again?' She blushes.", true);
outputMainText("\r\rHowever, at the moment you're unsure of what to do. You kneel down and kiss her on the cheek, telling her you'll figure out a way in the next version.", false);
hrs = 1;
doEnd();
} else {
if (lilaRep == 2){
outputMainText("You come across the small felin girl you had met before as you walk through the city. She walks up with a smile to say hello and thanks you again, though she shifts awkwardly as she stands, a small blotch forming on her dress at her groin as she recalls how you helped her...\r\rWith some slight embarassment in her tone, she speaks 'Uhh... Umm... D-Do yew mind helping me like you did before? I-It seems to have come back...'\r\rHer feet rub against each other as she looks up at you with an adorable expression. Obviously whatever you did before was only a temporary solution, for some reason. Not that it's a problem though, as she seems to enjoy your help.", true);
viewButtonOutline(1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0);
viewButtonText(0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0);
if (checkItem(103)){
buttonWrite(1, "Dry Sand");
Choice1.visible = true;
};
buttonWrite(5, "Fondle Her");
buttonWrite(10, "Get Help");
doListen = function ():void{
if (buttonChoice == 1){
outputMainText("You reach into your bag and pull out a dose of Magical Sand of Dryness. You give it to her and she seems to know what to do. Before you can turn around she immediately lifts her dress.\r\rHer little fuzzy nether-lips are pink and swollen, with webs of her feminine arousal splayed throughout her small thighs. The lowest pair of her six nipples are also visible, glowing slightly red as she has probably been rubbing them too much lately. Blushing heavily, she takes the sand in her small hand and brings it down to her crotch. With a mewl she touches herself, her knees knocking together as she shudders. Small gasps escape her lips as she rubs it in, her hand slipping over her sensitive button again and again, more than is needed by the sand. The slickness of her young pussy slowly dries up, but that doesn't prevent her from collapsing to her knees as she shudders.\r\rAfter a few awkward moments, her eyes snap open, her cheeks even redder than before, as she jumps to her feet. Wobbling a little, she brushes her dress down, her tail hanging languidly while the tip swishes from side to side, contently. She presses her dress to her crotch with a hand and smiles.\r\r'It's not wet anymore!' She cheers happily.", true);
doNext();
doListen = function ():void{
outputMainText("Whether it was because of the sand or the relaxation in her lust, she seems to be dripping no longer. She lunges forward and wraps her arms around your waist, hugging into your groin.\r\r'Thank yew so much!'\r\rShe lets go and fumbles with one of her pockets.\r\r'Here, you can have my milk mommy gave me. I alweady had enough today.'\r\rWith a smile and another hug, she gives you a bottle of milk before running off to join her friends in some tease-less fun.", true);
stats(0, 1, 0, 0);
lilaRep = 2;
doSexP(15);
itemAdd(500);
hrs = 1;
doEnd();
};
};
if (buttonChoice == 5){
outputMainText((("You offer to masturbate her to dismiss her heat, though you mention it might be a bit... intimate. But, already accustomed to your presence, she smiles with a nod. Taking her hand, you lead her to your private hut high in the trees where you have been sleeping.\r\rSitting beside her on your bed, she pulls up her dress in front of you before you can turn away. Her little fuzzy nether-lips are pink and swollen, with webs of her feminine arousal splayed throughout her small lap. Blushing heavily, she turns to you and mewls,\r\r'B-Be gentle, pwease.'\r\rNodding, you carefully caress up the girl's thigh. She clenches her eyes shut at first as your hand approaches her sensitive area. Her tiny nether-lips are so soft and delicate on your fingertips, like flower petals. Flower petals completely drenched in dew.\r\rShe lets out a short gasp as you focus upon her little button. Her small hips squirm on the bed, her thighs quaking uncontrollably. All the while, her eyes still shut.\r\rWithin just a few moments of gently fondling the girl, her body seizes and she lets out stuttered mewls. Your hand is swamped in a flood of her feminine honey, drenching her dress and the side of the bed. She falls towards you, gasping for breath as she grasps at your " + clothesTop()) + "."), true);
doNext();
doListen = function ():void{
outputMainText("A few minutes later, she sits upright, a bit woozy. As her wits return to her, she looks down at your hand and how it glistens with her moisture. \r\r'I'm sowwy... B-But thank you, it was really nice!' She jumps up from the bed, letting her dress fall. 'Here, mommy gave this to me to help me grow up into a big girl.'\r\rShe pulls a vial from her dress and hands it to you, then gives you a big hug before darting out of the hut, her dress still hiked up around her waist and stuck there from all the moisture, leaving her nethers free for all to see.", true);
doSexP(10);
itemAdd(114);
hrs = 3;
doEnd();
};
};
if (buttonChoice == 10){
outputMainText("You smile gently, telling her that you'll help her tell her mommy. She nods with a blush, taking your hand and leading you back to her hut, leaving a slick trail behind her the whole way. Her tail twitches sporadically as she whimpers along the way, her thighs rubbing tightly together. As you approach, her mother spots you through the doorway and comes out to greet you.\r\r'Hello, may I ask what is going on?'\r\rShe eyes you with her daughter, especially noticing the moist river in her daughter's dress. Taking some time, you explain the situation. With a nod and a tinge of redness in her own cheeks, she speaks,\r\r'Thank you for bringing her back to me. I'm so sorry to have involved you like this! I should have noticed when she was so quick to get out of the hut this morning... If you don't mind waiting outside, I'll be sure to repay you for your kindness; once I take care of my daughter.", true);
doNext();
doListen = function ():void{
outputMainText("Nodding, you wait outside the doorway as the felin woman takes her daughter's other hand and the two disappear into the hut.\r\rYou hear them talking within, though it's too faint to make out. But, several minutes later, it's hard to miss the high-pitched mewling, followed by loud moans that echo back out. A few minutes more, and some shuffling can be heard as the mother returns to the doorway.\r\r'Thank you once more. Please, take these coins as a small repayment for being so gentle with her. If she comes to you for help again, I'll gladly pay you more for assisting!'\r\rShe hands you a bunch of coins. She then blushes heavily as a strand of a clear slick fluid splashes down into her cleavage, having missed wiping it from the fur on her chin. She nods in thanks again before ducking inside, trying to hide the wet fur...", true);
doCoin((Math.floor((percent() / 4)) + 3));
doSexP(5);
hrs = 3;
doEnd();
};
};
};
} else {
if ((((((((((((((((((cockMoist > 9)) && ((cockMoist <= 12)))) || ((((vagMoist > 9)) && ((vagMoist <= 12)))))) || ((((((cockMoist > 6)) && ((cockMoist <= 9)))) && ((lust > 25)))))) || ((((((vagMoist > 6)) && ((vagMoist <= 9)))) && ((lust > 25)))))) || ((((((cockMoist > 3)) && ((cockMoist <= 6)))) && ((lust > 50)))))) || ((((((vagMoist > 3)) && ((vagMoist <= 6)))) && ((lust > 50)))))) || ((((((cockMoist > 0)) && ((cockMoist <= 3)))) && ((lust > 75)))))) || ((((((vagMoist > 0)) && ((vagMoist <= 3)))) && ((lust > 75)))))){
bc();
outputMainText((("A little felin girl slowly approaches you, an awkward kink in her step. The cat-like ears atop her head flick about anxiously as she coils her tail over and over in her nervous hands. She seems to be looking side to side for others, but her eyes keep glancing across you. Eventually, she comes right up to you and with a squeak in her voice and a slight lisp, she asks,\r\r'Umm... E-Excuse me. B-But can yew help me?'\r\rShe stares at the wet blotch in your " + clothesBottom()) + " and then moves her tail aside to reveal her own dress. From her groin all the way down to the ground runs a clear path of moistness, rather obvious now that she's revealed it. She speaks again, meekly and cutely,\r\r'Th-The other kids make fun of me because I'm so wet... They say I wee'd myself, but-but...' The fur on her cheeks blush red. 'It is my first heat and I-I was too embarassed to tell Mommy... C-Can yew help me?'\r\rShe looks once more to your own wetness issue, hoping you know better how to handle it."), true);
if (lilaRep == 1){
outputMainText("\r\rYou've seen this girl before, yet she doesn't seem to recall your face nor what you might have done in the past. You probably didn't leave a strong enough impression or the memory got lost in her stress from last time.", false);
};
outputMainText("\r\r\rWhat do you do?", false);
viewButtonOutline(1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0);
viewButtonText(0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0);
if (checkItem(103)){
buttonWrite(1, "Dry Sand");
Choice1.visible = true;
};
buttonWrite(3, "Diaper");
buttonWrite(5, "Masturbate");
buttonWrite(6, "Lick");
buttonWrite(7, "Sex");
buttonWrite(10, "Get Help");
doListen = function ():void{
if (buttonChoice == 1){
outputMainText("You reach into your bag and pull out a dose of Magical Sand of Dryness. You give it to the poor girl and explain how to use it. She nods and before you can turn around she immediately lifts her dress.\r\rHer little fuzzy nether-lips are pink and swollen, with webs of her feminine arousal splayed throughout her small thighs. The lowest pair of her six nipples are also visible, glowing slightly red as she has probably been rubbing them too much lately. Blushing heavily, she takes the sand in her small hand and brings it down to her crotch. With a mewl she touches herself, her knees knocking together as she shudders. Small gasps escape her lips as she rubs it in, her hand slipping over her sensitive button again and again, more than is needed by the sand. The slickness of her young pussy slowly dries up, but that doesn't prevent her from collapsing to her knees as she shudders.\r\rAfter a few awkward moments, her eyes snap open, her cheeks even redder than before, as she jumps to her feet. Wobbling a little, she brushes her dress down, her tail hanging languidly while the tip swishes from side to side, contently. She presses her dress to her crotch with a hand and smiles.\r\r'It's not wet anymore!' She cheers happily.", true);
doNext();
doListen = function ():void{
outputMainText("Whether it was because of the sand or the relaxation in her lust, she seems to be dripping no longer. She lunges forward and wraps her arms around your waist, hugging into your own dampness.\r\r'Thank yew so much!'\r\rShe lets go and fumbles with one of her pockets.\r\r'Pwease, have this. It's not much... But I was going to drink it later to show I was a big girl. And now I don't have to!'\r\rWith a smile, she hands you a vial of Cat's Meow.", true);
stats(0, 1, 0, 0);
lilaRep = 2;
doSexP(25);
item1 = 105;
hrs = 1;
doEnd();
};
};
if (buttonChoice == 3){
outputMainText("You mention that you should take her to the local tailor to get herself a more 'fitting' piece for her outfit that will help her stay dry. She nods and takes your hand, but as you go to the tailor, her face turns pale as she sees what you mean. You grab a diaper from a shelf, with the only variety available being the extra poofy kind, and bring it up to the counter for purchase.", true);
if (coin < 40){
outputMainText(" However, you don't seem to have enough coin on hand to pay for it.\r\rYou break to her the bad news, but for some reason she seems especially joyful. And she's rather quick to get away from you, seemingly in a hurry to do something else... ", false);
hrs = 2;
lilaRep = 1;
doEnd();
} else {
outputMainText(" You pay the 40 coins for the diaper and turn to take her hand once again. Although, she seems rather afraid as you do...\r\rYou lead her back up to your private room and sit her up on the bed. She seems oddly silent, closing her eyes with an intense blush and trying to ignore the fact that you're laying her down and pulling up her sundress, exposing her dribbling nethers. Her lower lips are extra-pink and swollen, signs of her heat. You spread her legs wide and wipe up the mess with a towel, eliciting a small mewl from her, before pulling her feet high and raising her bum so you can wedge the diaper underneath. You place her back down, spreading her legs once more to pull up the flap and then fasten its sides.\r\rLifting her back up to a stand and checking to make sure her tail comfortably fits over the waistband, she doesn't seem particularly pleased. As her dress falls back down, the outline of the thick undergarment is quite obvious, though her wetness seems to have ended.\r\r'Uhh... Umm... Th-Thank you..'\r\rShe begins to head back out, waddling slowly. With each step she cringes at the crunch of the padding, her cheeks even redder than when you first met her. Her tail twitches in an annoyed sense and, somehow, you have a feeling she won't be wearing your gift for too long. Nor will she probably wish to remember this experience...", false);
doCoin(-40);
hrs = 3;
lilaRep = 1;
doEnd();
};
};
if (buttonChoice == 5){
bc();
outputMainText("You offer to help her learn how to take care of it herself, though you mention it might be a bit... intimate. Nervous and unsure, she meekly nods. Taking her hand, you lead her to your private hut high in the trees where you have been sleeping.\r\rSitting beside her on your bed, you tell her that she'll have to reach up to where it feels the hottest. Nodding, and without thinking, she pulls up her dress in front of you before you can turn away. Her little fuzzy nether-lips are pink and swollen, with webs of her feminine arousal splayed throughout her small lap. Blushing heavily, she turns to you and mewls,\r\r'I-I'm scared... C-Can you show me?", true);
viewButtonOutline(0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0);
viewButtonText(0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0);
if (gender != 0){
buttonWrite(5, "On yourself");
Choice5.visible = true;
};
buttonWrite(7, "On her");
buttonWrite(10, "Don't");
doListen = function ():void{
if (buttonChoice == 5){
if (gender == 0){
};
outputMainText((((("Pulling " + pullUD(2)) + " your ") + clothesBottom()) + ", you give her a good view of your "), true);
if (cockTotal > 0){
outputMainText((((cockDesc() + " appendage") + plural(1)) + ". She shrieks at the sight of such an odd thing, closing her eyes and running out the door, her wet dress sticking to her belly while her nethers are clear for all to see.\r\rFortunately, little girls showing off their nethers is somewhat common in Siz'Calit and nobody seems to pay any mind."), false);
doLust(3);
lilaRep = 1;
hrs = 2;
doEnd();
} else {
if (vulvaSize > 4){
outputMainText((vulvaDesc() + " female sex. It's so mature and large, so much stranger than her own, that the girl shuts her eyes and covers them with her hands.\r\r'I'm sorry miss lady, I-I don't think I'm weady for this'\r\rStill covering her eyes, she jumps off the bed and heads out the door of the hut, her moist skirt stuck to her belly and her nethers clear for everyone to see."), false);
doLust(3);
lilaRep = 1;
hrs = 2;
doEnd();
} else {
outputMainText((((((vulvaDesc() + " female sex. Not much different than herself, she stares intently at the moist webs that mirrors her own lap. Taking your fingers, you rub up through your cleft") + plural(2)) + " focusing on the ") + clitDesc()) + " button therein.\r\rDoing the same, the little girl lets out a gasp as she touches herself, her thighs twitching upon the bed. You smile at her, placing a hand on her head between her ears and continue to fondle yourself.\r\rAgain, she does the same, although soon her eyes close and her small hand moves faster and faster. She leans into your body, allowing you to wrap your arm around her while the other busies itself at your groin. Rapidly, you begin to gasp, more aroused than you thought you were, and she echoes in turn.\r\rWithin moments, you both cry out in unison, collapsing onto the bed in an orgasmic fit, your combined honey dripping down the side."), true);
doNext();
doListen = function ():void{
outputMainText("The little felin girl snuggles into your body, hugging you close as she dozes off, a leg hanging over your own as her bare sex presses against your thigh. Not wanting to move, you do the same, falling asleep beside her.", true);
doNext();
doListen = function ():void{
outputMainText((("Some hours later, she rustles awake within your arms, rousing you as well. She nuzzles into your " + boobDesc()) + " chest, purring softly. A few sweet moments pass and she mews, slipping a hand between her legs.\r\r'Thank yew so much! It woked!' She grins happily. Then she blushes, 'And thank yew for teaching me... I'll neva forget it!'\r\rKissing you on the cheek, she pushes something into your belly before hopping off the bed and running out of the hut, her tail swishing high behind her ...And her butt in plain view as she forgot to string the perky tail through its hole, leaving it to pull the dress up from underneath."), true);
doLust(-(Math.floor((sen / 2))));
exhaustion = 0;
hrs = 6;
stats(0, 4, 0, 2);
lilaRep = 3;
item1 = 200;
affinity(-1, -1, -1, Math.floor(((percent() / 20) + 4)), -1);
doSexP(45);
doEnd();
};
};
};
};
};
if (buttonChoice == 7){
outputMainText((("Nodding, you carefully caress up the girl's thigh. She clenches her eyes shut at first as your hand approaches her sensitive area. Her tiny nether-lips are so soft and delicate on your fingertips, like flower petals. Flower petals completely drenched in dew.\r\rShe lets out a short gasp as you focus upon her little button. Her small hips squirm on the bed, her thighs quaking uncontrollably. All the while, her eyes still shut.\r\rWithin just a few moments of gently fondling the girl, her body seizes and she lets out stuttered mewls. Your hand is swamped in a flood of her feminine honey, drenching her dress and the side of the bed. She falls towards you, gasping for breath as she grasps at your " + clothesTop()) + "."), true);
doNext();
doListen = function ():void{
outputMainText("A few minutes later, she sits upright, a bit woozy. As her wits return to her, she looks down at your hand and how it glistens with her moisture. Aghast, she hops off the bed.\r\r'I'm so sowwy! Please, forgive me! Thanks for trying to help, please, take this!'\r\rShe pulls a vial from her dress and hands it to you before darting out of the hut, her dress still hiked up around her waist and stuck there from all the moisture, leaving her nethers free for all to see.\r\r\rYou have obtained a Cat's Meow!", true);
lilaRep = 2;
doSexP(30);
item1 = 105;
hrs = 3;
doEnd();
};
};
if (buttonChoice == 10){
outputMainText("Deciding it best to not get any more involved than you already are, you pat her on the head between her ears. You tell her this is something her mommy should teach her and that it's nothing to be ashamed of. You pat your own moistness as proof and dab a bit of it on her little button nose.\r\rCheered up a little, she smiles and gives you a hug.\r\r'Thank yew. I'll try!'\r\rShe pushes her dress back down and runs out the door, leaving you feeling slightly warm and fuzzy inside.", true);
stats(0, 3, 0, 0);
lilaRep = 1;
hrs = 2;
doEnd();
};
};
};
if (buttonChoice == 6){
bc();
outputMainText("You offer to help lick the mess from her, if she's alright with going to the private hut where you're staying. As licking is quite common among Felin's, she nods her head in agreement and takes your hand in hers. The two of you head up to your hut in the trees.\r\rYou help her up onto the bed, her legs dangling off to the side. You kneel down before her, gently petting her knees as you wait for her to be comfortable enough. She closes her eyes and nods, pulling up her wet dress. Her cheeks flush with an instense blush as you inspect her tiny lap, completely filled with slick webs, her tender nether-lips pink and puffing out from her fur. You pull her legs open so your head can fit in between, a soft mewl escaping her lips. You lean forward, licking the stuff up from her thighs...\r\r\rJust clean up the stuff or lick her virgin sex more intimately?", true);
viewButtonOutline(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0);
viewButtonText(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0);
buttonWrite(5, "Clean");
buttonWrite(7, "Intimate");
doListen = function ():void{
if (buttonChoice == 5){
outputMainText("Carefully, you slurp the stuff up from her fur. Slowly going up her thighs, her hips twitch, her tail flailing wildly behind her. Her eyes clench as you come closer to her naughty bits, her hands clenching the bedsheets with anxiety.\r\rNot wanting to go too far, you gently lap at her swollen nether-lips, the soft, delicate folds like flower petals. Flower petals completely drenched in dew. Quickly and cautiously, you take care of what you can before she lets out a soft moan.\r\rEyes still clenched shut, you nudge her and tell her you're finished. Her eyes blink open and she looks down at herself. She looks a bit happier, noticing she's relatively dry, but a shiver shoots through her small body and she clenches her thighs.\r\rIn an instant, she flips her dress down and hops from the bed, running out of the hut, calling back, 'Th-Thank you!'\r\rAs she darts through the doorway, you hear a splash. A large gob of feminine honey marks the floor, just before the exit, trailing along her path. You wipe the massive amount of slick fluids from your own face, feeling a bit tingly yourself, and go on your way.", true);
lilaRep = 1;
doLust(Math.floor((lib / 2)));
affinity(-1, -1, -1, Math.floor(((percent() / 20) + 4)), -1);
hrs = 3;
doEnd();
};
if (buttonChoice == 7){
outputMainText((("Carefully, you slurp the stuff up from her fur. Slowly going up her thighs, her hips twitch, her tail flailing wildly behind her. Her eyes clench as you come closer to her naughty bits, her hands clenching the bedsheets with anxiety.\r\rAs you reach her swollen nether-lips, your tongue licks across the soft, delicate folds. Like petite flower petals, your mouth nibbles gently on the dew-drenched bits, making her hips jerk upon the bed. You slurp up more stuff as it gushes from her virgin sex, swamping your face from nose to chin in the slick sweetness. Your tongue roams up through the supple slit, until it lands at the little button in the front. Your maw engulfs that corner of her dainty vulva, devouring her sensitive portions with intense sucking. In mere seconds, her whole body quivers, her spine seizing and falling backwards onto the bed. Her legs wrap around your head and weakly push you into her cunt as a flood of her feminine honey splashes out around you, covering nearly all your face and spilling down your " + boobDesc()) + " chest.\r\rMoments, later, she lets go, purring softly as she falls asleep. You wipe your face off, cleaning up some of the mess, before curling up beside her, surprisingly tired. As you drift off, she rolls towards you and snuggles against your body, her leg crossing over yours and her sex pushing into your thigh..."), true);
doNext();
doListen = function ():void{
outputMainText((("Some hours later, she rustles awake within your arms, rousing you as well. She nuzzles into your " + boobDesc()) + " chest, purring softly. A few sweet moments pass and she mews, slipping a hand between her legs.\r\r'Thank yew so much! It woked!' She grins happily. Then she blushes, 'And thank yew for cleaning me so well, I really liked it... I'll neva forget it!'\r\rKissing you on the cheek, she pushes something into your belly before hopping off the bed and running out of the hut, her tail swishing high behind her ...And her butt in plain view as she forgot to string the perky tail through its hole, leaving it to pull the dress up from underneath."), true);
stats(0, 0, 2, 2);
doLust(Math.floor((lib / 2)));
item1 = 200;
lilaRep = 3;
affinity(-2, -2, -2, Math.floor(((percent() / 20) + 8)), -2);
doSexP(45);
exhaustion = 0;
hrs = 3;
doEnd();
};
};
};
};
if (buttonChoice == 7){
outputMainText("Her eyes go wide as you mention sex.\r\r'Eww! That's what my Mommy and my Daddies do! I don't wanna do that!!\r\rShe then runs off in the other direction, trailing slime behind her as it still dribbles from her dress.\r\rIt's probably best you move along.", true);
stats(0, -2, 0, 0);
lilaRep = 1;
hrs = 1;
doEnd();
};
if (buttonChoice == 10){
outputMainText("You smile gently, telling her that you'll help her tell her mommy. She nods with a blush, taking your hand and leading you back to her hut, leaving a slick trail behind her the whole way. Her tail twitches sporadically as she whimpers along the way, her thighs rubbing tightly together. As you approach, her mother spots you through the doorway and comes out to greet you.\r\r'Hello, may I ask what is going on?'\r\rShe eyes you with her daughter, especially noticing the moist river in her daughter's dress. Taking some time, you explain the situation. With a nod and a tinge of redness in her own cheeks, she speaks,\r\r'Thank you for bringing her back to me. I'm so sorry to have involved you like this! I should have noticed when she was so quick to get out of the hut this morning... If you don't mind waiting outside, I'll be sure to repay you for your kindness; once I take care of my daughter.", true);
doNext();
doListen = function ():void{
outputMainText("Nodding, you wait outside the doorway as the felin woman takes her daughter's other hand and the two disappear into the hut.\r\rYou hear them talking within, though it's too faint to make out. But, several minutes later, it's hard to miss the high-pitched mewling, followed by loud moans that echo back out. A few minutes more, and some shuffling can be heard as the mother returns to the doorway.\r\r'Thank you once more. Please, take these coins as a small repayment for being so gentle with her. Oh, and take this,' she reaches into a pocket and pulls out a vial. 'Apparently she got this from a friend of the family, saying it was for me. It seems she thought it would help her seem like a grown up in front of her friends... Thankfully, we caught her before she could use it and you can have it in turn.'\r\rShe hands you the vial of Cat's Meow as well 20 coins. She then blushes heavily as a strand of a clear slick fluid splashes down into her cleavage, having missed wiping it from the fur on her chin. She nods in thanks again before ducking inside, trying to hide the wet fur...", true);
doCoin(20);
item1 = 105;
lilaRep = 2;
doSexP(15);
hrs = 3;
doEnd();
};
};
};
} else {
outputMainText("As you wander about the tree-borne city of Siz'Calit, you see a young felin girl scurry by. Her cheeks are red while her ears flick upon her head, her tail swishing sporadically behind. Her hands seem to be trying to cover the lower front of her small sundress. She glances up at you, her eyes staring at your groin for a moment. She blushes more and increases her pace, hurrying past you. Turning to watch her, you see the backside of her dress has a blotched river of moisture running down from her bum. However, judging by the dollops of clear slick fluid that glisten a path behind her, it doesn't seem like she had peed herself...\r\rShrugging, you continue on.", true);
hrs = 1;
doEnd();
};
};
};
} else {
if ((((chance > 20)) && ((chance <= 45)))){
outputMainText("'E-Excuse me...' A meek voice calls from behind you.\r\rAs you turn, you spot a felin male. Somewhat on the short side, he seems rather effeminate with some hips that are wider than his shoulders and his nipples poking through his fur, stiff and erect as though he were cold, despite the warm weather of the jungle. He also seems to be wearing nothing but a hardly modest loincloth that exposes half of each cheek of his round rear. And he seems to be quite embarassed to be walking around as such.\r\r'Umm... Y-You seem as though you might be the kind of person that would explore outside of the city. I-If you don't mind, my mistress would like a word with you.'\r\r\rDo you accept?", true);
if (mistressRep > 0){
outputMainText("'H-Hello!' You hear a familiar voice from behind you.\r\rYou turn to see Fidoris, still in his skimpy outfit and embarassed look, though his fur is slightly matted with some sort of slick liquid. It would hardly take two guesses to figure out where he has been.\r\r'M-Mistress would like to invite you over again, if that's alright.'\r\rWill you go?", true);
};
buttonConfirm();
doListen = function ():void{
if (buttonChoice == 6){
outputMainText("The felin femme-boy leads you to a rather large tree-borne hut. The closer he gets, the quicker his pace seems to be, as his tail begins to swish in anticipation.\r\rOpening the veil to the home, it seems the 'mistress' is rather well off. Lots of large, plush furniture, plenty of ornate, expensive trinkets and decorations, and overall elegant lifestyle. However, despite all of that, the femme-boy leads you straight to the bedroom.\r\rHe stops just inside the doorway. Past him, you can see an extavagent bed, perpendicular from your perspective, sitting in the middle of the room. On top of it lays the mistress. She's a gorgeous felin lady, with a youthful face and silky-smooth fur that has a healthy shine. You can see her erotically knead the top two pairs of her six breasts through her gown while she lays on her back, oblivious to your presence. Past her second pair, however, her body is hidden behind a mostly opaque curtain. Although, you can still see the silhouette of what might be her form. Her belly seems to be much larger than her figure would suggest, as if she were somewhat pregnant. And her legs seems to be bent and drawn back, straddling a large, round object that is even larger than her belly, perhaps even her whole body.", true);
doNext();
doListen = function ():void{
if (mistressRep == 0){
outputMainText("'Mistress, I've found an explorer!' The felin boy announces with a wag of his tail.\r\rThe woman turns to look at you. 'Ahh, good boy, Fidoris.' She rolls onto her side, both her large belly and the thing between her legs shifting with her. She props herself up with an arm and smiles. 'Well, traveler. I have a proposition for you. Every now and then, I get certain... 'urges' for a particular kind of fruit. It is found within the jungle and looks very much like a... well, let's just say we call it a 'Pussy Fruit'. Due to the dangers in retrieving it, however, it is hard to obtain such a fruit safely. So, I will pay well for such a fruit, when I'm in the mood. And if I am, I will send my boy, Fidoris, out to retrieve you. I hope that sounds alright?", true);
};
if (mistressRep > 0){
outputMainText("Fidoris speaks out 'Mistress, I have brought the traveler once again!'\r\rThe woman rolls over, her belly and massive vulva rolling with her. 'Good boy! I hope you have brought along something nice for me?' Her eyes light up.", true);
};
viewButtonOutline(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0);
viewButtonText(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0);
buttonWrite(1, "Pus Fruit");
if (checkItem(210)){
Choice1.visible = true;
};
buttonWrite(11, "Nothing");
doListen = function ():void{
if (buttonChoice == 1){
loseManyItem(210, 1);
viewButtonOutline(1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0);
viewButtonText(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
buttonWrite(1, "Fidoris");
buttonWrite(3, "You");
buttonWrite(9, "Both");
buttonWrite(11, "Cock");
if ((tallness / 12) < (mistressRep + 4)){
Choice3.visible = true;
};
if ((tallness / 12) < (mistressRep / 3)){
Choice9.visible = true;
};
if (((((((cockSize * cockSizeMod) > (72 + (mistressRep * 8)))) && (((cockSize * cockSizeMod) < eVagLimit((144 + (mistressRep * 8))))))) && ((lust > 20)))){
Choice11.visible = true;
};
outputMainText("'Great! Fidoris, bring our guest over here!' She grins with excitement.", true);
if (mistressRep == 0){
outputMainText("\r\rThe femme-boy takes you by the hands and leads you towards the bed. As he takes you around the curtain to get closer to his mistress, your eyes grow wide as you see what had been hidden. First of all, the woman obviously had no underwear; her spread legs giving you a great view beneath her gown. However, it doesn't seem like she could have done otherwise, as the gown simply wasn't long enough to reach around her enormous nether region. The large round object whose shadow you had seen from the other side was actually her vulva!\r\rHer legs are spread simply due to the fact that the fat labia wouldn't allow for otherwise. It's more than half as tall as she is, with the slit gaping before you like a giant maw. If she were to stand, it'd be dreadfully close to dragging upon the floor with each step. The large inner-lips dangle from the outer in thick folds and her giant clitoris is nearly as big as her head, protruding from its huge flap of a hood. Feminine slime drools and drips down through the crevice, pooling around onto the bed and draining off into a bucket. You can see into her deep pussy, the emanating heat reaching you from several feet away. And it's quite easy to tell that she's not pregnant, but rather her belly is huge from all the vaginal flesh within.", true);
};
if (mistressRep > 0){
outputMainText("\r\rThe femme-boy leads you back behind the curtain. Even though you've seen it before, the sight of her massive feminine genitalia is still awe-inspiring. Swelling and pulsing with her heartbeat, the heat warming the room. Fidoris is glad to be back in its presence, sighing in comfort. The slime continues to pool around the massive folds, perpetually keeping them well lubricated. And each time you come, she just seems even bigger and bigger than before...", true);
};
outputMainText("\r\r'Come on, over here now!' She eagerly waves for the fruit.\r\rHanding it to Fidoris, he quickly presents it to his mistress. Like a child, she giggles with giddyness. She begins by licking up through the lewd crack in the fruit, squeezing it gently until its juices start to seep out. Once her tongue touches the sweet nectar, her mouth opens wide and bites into it, letting the juices spill out onto her face with ecstasy. She proceeds to devour it rapidly, cherishing every bite thoroughly.\r\rShe heaves a little once the fruit is gone. Her hands dig into her gown, pushing into her gravid belly as she feels the fruit's effects begin to settle in. With a shiver and a moan, you watch as her cunt begin to shudder. Before your eyes, it swells even larger, her belly becoming more prominent. The fruit seems to be more potent than usual with this woman...\r\r'Mmm!' She mewls. 'Somebody fill me! Now!'", false);
doListen = function ():void{
if (buttonChoice == 1){
outputMainText("You wait as Fidoris enthusiastically steps forward to help his mistress. His small hand reaches out to stroke the fur of her outer labia, petting upward until his hand reaches the grand clitoris. Slipping a hand beneath the hood, he rubs it until the woman quivers upon the bed, a spurt of her feminine honey leaping from her wide hole and drenching his legs. His other hand meets the first, flanking the sides of the massive button and holding it still while he leans in for a gentle kiss. Then, he opens his arms, embracing the whole of the vulva the best he could. The vulva hugs back, letting him sink in between the folds, smearing its drizzling goo throughout his fur. He descends more and more into the maw, until he decides to duck down to the primary attraction.\r\rWithout much trouble, his arms easily slip into her pussy. They help stretch her a little wider, allowing his head to slip in. From there, he's practically sucked inside, slowly going deeper and deeper. The only difficulty they come across is when his wide hips hit the entrance. He waggles his legs a bit, his loincloth flailing from his bum and flashing you his small package several times, but eventually makes it through, sliding the rest of the way.\r\rThe mistresses belly deforms and grows even larger as Fidoris fills it. All the while, she moans in pleasure, gasping lightly and groping her breasts. Once Fidoris eventually settles within her womb, her belly no longer moving as much, she lets out a long groan, her arms roaming about the taut fur. The gaping maw gasps as well, contracting again and again with orgasm, her juices flooding out until the bucket overflows and spills out onto the floor...\r\rStill high with climax, she doesn't want to seem rude 'H-Here. F-For your ~ungh~ efforts.' She fumbles with a pile of coins on the desk beside her bed, having to shimmy a little with her extra weight. 'Thank you very much, I hope to do more business with you in the future~'\r\rShe gives you the coins while the slime from the fruit drizzles from her hands onto yours. Then she lets you lead yourself out, her eyes closing shut to enjoy the warm body inside of her...", true);
doCoin(30);
hrs = 2;
doSexP(3);
mistressRep++;
doEnd();
};
if (buttonChoice == 3){
outputMainText((("Offering to fill her yourself, Fidoris gives you a nod and guides you towards her. Your hands caress her supple folds at first, delighting in the suppleness and the warm moistness that quickly coats your fingers. You feel up around her swollen pussy, feeling the beat of her pulse so easily through her large flesh, even the surrounding fur hardly muffling it. As your hands meet at the top, they wring the massive button, returning a gush of slick fluids about your legs from her awaiting hole.\r\r'Y-You may want to remove your clothes, or else they'll get pretty messy.' Fidoris instructs, indicating how he wears nothing but a meager loincloth.\r\rYou nod and strip down. Compare to the mistress and her boy, it would be difficult to worry about modesty here. But, as the fresh air wafts cooly against your naked " + skinDesc()) + ", you find yourself drawn closer to the heat of the maw. You soon lean in towards it, sinking into its velvety flesh. The lips hug you, surrounding your body, and dribbling lubrication all about until you're slick and shiny. This action itself arouses you a little, your parts slipping past each other and throughout her cunt. Yet, as you feel a shudder from the mistress, you realize there's something else you have to do.\r\rDucking down, you easily find her open pussy. It's amazing how easily you can fit a hand, and then two, and then both your arms. You can feel her hungry womb begin to suck you in, the slick mess that covers the walls making it difficult to resist. Not that you would want to. Your head easily slips in next, spreading her wider and wider with your anatomy. It's an odd sensation at first. Very stuffy with all of the moisture and heat. However, it's also surprisingly relaxing and inviting, pulling you in further and further. Before you know it, your feet snap into her entrance and you crawl into her womb.\r\rIn complete darkness, you can't seem to tell where you are. Her belly seems to adjust for you, sucking you in and curling you around until you fit much more comfortably. So comfortably, in fact, that the warmth and moisture and complete peace make you drift off into a wonderful sleep..."), true);
doNext();
doListen = function ():void{
outputMainText("You eventually wake back up, though you don't know how long you've been asleep. All that you know is that you had some of the most restful sleep you've ever had. And as you begin to rustle around in the darkness, the soft walls shudder around you.\r\r'Oh my, are you finally awake in there?' The mistress pats her belly from the outside with a giggle, the sound echoing around in a low beat. 'Mmm... That was a lot of fun. I hope you slept well, I know I had a nice nap~ Well then, I suppose you'd like to be moving on. Just go out the way that feels most natural~!'\r\rBefore you can respond, you can feel the walls press down around you. The suction that you felt before when entering now seems to be pulling the other way. You slip about inside her belly, quickly finding your way through her enormous passage. The next thing you know, you're body is being gently squeezed all around you, the slickness propelling you out into the cold air.\r\rFidoris catches you as you slip out of her cunt, well prepared with a thick towel to wrap you up in. Your teeth jitter at first, the coolness of the air against your wet skin chilling you to the bone. Drawn back towards the massive vulva, you hover nearby to bask in the heat while you dry yourself off and don your clothes.\r\r'Take your time. You're not as used to this as Fidoris is' She winks. 'And here, here's your payment for the fruit, with a little something extra for the fun.'\r\rShe hands you some coins and lets you sit on her bed next to her for a bit while you readjust to the warmth of the jungle. It takes a bit of getting used to, but once you finally leave, you feel quite rejuvenated!", true);
doCoin(40);
doLust(5);
hrs = (2 + Math.floor((percent() / 20)));
exhaustion = 0;
doHP(50);
affinity(-1, -1, -1, Math.floor((percent() / 10)), -1);
doSexP(5);
mistressRep++;
doEnd();
};
};
if (buttonChoice == 9){
outputMainText((("Realizing she's big enough to fit both you and Fidoris, you take Fidoris' hand and pull him over to the massive maw with you. Realizing it as well, Fidoris nods. The two of you grope about her velvety folds, rubbing her massive button as she bucks upon the bed from the concerted effort. It doesn't take much before spurts of feminine honey drench the both of you, coating the both of you in her slick lubricant.\r\r'Don't forget to remove you clothes' Fidoris mentions quickly, eager to get inside.\r\rYou strip down to nothing, letting the fluids smear about your naked " + skinDesc()) + ", until you're as slippery and shiny as the prospect before you. Fidoris motions for you to go first and you duck down to the gaping pussy. It's amazing how easily you can fit a hand, and then two, and then both your arms. You can feel her hungry womb begin to suck you in, the slick mess that covers the walls making it difficult to resist. Not that you would want to. Your head easily slips in next, spreading her wider and wider with your anatomy. It's an odd sensation at first. Very stuffy with all of the moisture and heat. However, it's also surprisingly relaxing and inviting, pulling you in further and further. Before you know it, your feet snap into her entrance and you crawl into her womb.\r\rIn complete darkness, you can't seem to tell where you are. Her belly seems to adjust for you, sucking you in and settling you within her womb. Moments later, you feel the walls around you shiver and shudder as the space grows larger. Another body slips in beside you, as wet and slippery and hot as you are, and squeezes against you in a rather intimate fashion.\r\r'Are you comfortable?' He whispers. You can feel the vibrations of his voice throughout the stretched walls around you.\r\rYou nod, blushing within the darkness, squeezed so tightly against him. The two of you squirm again and again, trying to find a better position that won't leave you so close, but all the warm, slippery rubbing does is arouse you. And him as well, it seems, as you can feel his small prick poke at you through his loincloth. Slowly, the slipping progresses until "), true);
if ((((((gender == 1)) || ((((gender == 3)) && ((percent() <= 50)))))) || ((gender == 0)))){
outputMainText((("you find yourself turned away from Fidoris, your " + buttDesc()) + " rump grinding his small prick between your cheeks. He lets out a whine of surprise as his loincloth slides away, leaving his pointy erection to feel your butt first-hand. His arms wrap around you in embrace, unable to prevent his cock from gliding into your moist ass."), false);
} else {
if ((((gender == 2)) || ((gender == 3)))){
outputMainText((((((((("you find your legs spreading, straddling Fidoris' lap, your " + vulvaDesc()) + " slit") + plural(2)) + " wedging around his small prick. He lets out a whine of surprise as his loincloth slides away, leaving his pointy erection to feel your folds first-hand. His arms wrap around you in embrace, unable to prevent his cock from gliding into ") + oneYour(2)) + " wet cunt") + plural(2)) + "."), false);
doImpregnate(4);
};
};
outputMainText("\r\rThe two of you quickly begin writhing against each other within the mistress' belly, Fidoris plunging his cat-cock into you again and again. The barbs around the tip of his tiny prick scrape against the walls of your flesh insides, but not nearly large enough to cause any pain. The scraping merely arouses you further, bringing you to orgasm much faster, despite his small size. His little cock begins to squirt a smoldering batch of cum into you, making your own hips buck back in turn with climax.", false);
if ((((gender == 1)) || ((gender == 3)))){
outputMainText(((((" Your cock" + plural(1)) + " begin") + plural(3)) + " to launch your cum within the confined space, smearing about the mistress' womb and making you both sticky."), false);
cumAmount();
};
outputMainText(" Even the walls themselves begin to shake and quiver as you hear ecstatic moans from outside...\r\rHowever, you quickly find yourself setting back down as the constant warmth and comfort of your room calms you. With Fidoris still inside of you, the two of you drift off to sleep...", false);
doNext();
doListen = function ():void{
outputMainText("You eventually wake back up, though you don't know how long you've been asleep. All that you know is that you had some of the most restful sleep you've ever had. And it seems that Fidoris' cock had eventually withdrawn back into its sheath, no longer penetrating you. As you begin to rustle around in the darkness, waking up the femme-boy beside you, the soft walls shudder around you.\r\r'Oh my, are you two finally awake in there?' The mistress pats her belly from the outside with a giggle, the sound echoing around in a low beat. 'Mmm... That was a lot of fun. I hope you two slept well, I know I had a nice nap~ The thought of you two having sex within me... Mmm~' The womb shudder once more. 'Well then, I suppose you'd like to be moving on. Just go out the way that feels most natural~!'\r\rBefore you can respond, you can feel the walls press down around you. The suction that you felt before when entering now seems to be pulling the other way. Fidoris' body moves past you, leaving you alone in her belly for a moment before you begin to slide out as well, quickly finding your way through her enormous passage. The next thing you know, you're body is being gently squeezed all around you, the slickness propelling you out into the cold air.\r\rFidoris catches you as you slip out of her cunt, well prepared with a thick towel to wrap you up in just as he already is. Your teeth jitter at first, the coolness of the air against your wet skin chilling you to the bone. Drawn back towards the massive vulva, you hover nearby to bask in the heat while you dry yourself off and don your clothes.\r\r'I hope you had fun.' She winks. 'Though I wonder if I'll be getting pregnant from all that...' She giggles at the thought. 'And here, here's your payment for the fruit, with a little something extra for the fun.'\r\rShe hands you some coins and lets you sit on her bed next to her for a bit while you readjust to the warmth of the jungle. It takes a bit of getting used to, but once you finally leave, you feel quite rejuvenated!", true);
doCoin(45);
doLust((-(sen) * 2));
hrs = (2 + Math.floor((percent() / 20)));
exhaustion = 0;
doHP(50);
affinity(-1, -1, -1, Math.floor((percent() / 10)), -1);
doSexP(10);
mistressRep++;
doEnd();
};
};
if (buttonChoice == 11){
outputMainText((((((((((("Amazed at how large her pussy is, the bulge in your " + clothesBottom()) + " throbs in anticipation. You pull out ") + oneYour(1)) + " ") + cockDesc()) + " cock") + plural(1)) + ", thinking that she might actually be able to take your giant size. Fidoris and his mistress both blink at you for a moment, taking in what they see. Then, a giant, giddy grin grows upon her face.\r\r'Yes!' Her pussy squishes and squirts with a gush of feminine honey in her excitement.\r\rFidoris blushes as he steps towards you, gauging your massive erection. He wraps his arms around it, lifting it and helping you guide it into his mistress. The effort is a bit of a strain on his small build, relying mostly on the leverage from your body to kiss the tip of your cock against the soft flesh. From there, nature easily takes its course... if you consider the situation 'natural'.\r\rThe mistress lets out a long warbling moan as you step towards her, the velvelty folds sucking in your ") + cockDesc()) + " cock. Her belly begines to stretch, pulling out larger and longer to conform to your man-meat. Eventually, her belly begins to push past her chest, her arms wrapping around your cock from outside, hugging it close and grinding her many tits into it. And as you push her belly past her own head, she licks at her own fur, the sensation merely a light caress against your monster within. Eventually, you stand up against her vulva, pressing your body against her massive labia.\r\rYou both pause for a moment, relishing both the feeling of being completely engulfed/filled and the sensation of having a cock so large pushing a pussy so huge well past the mistresses own body. You squeeze her inner lips, the flesh hugging your body and oozing lubricant all about you."), true);
if (showBalls == true){
outputMainText(((" Your " + ballDesc()) + " balls rest upon her bed, the honey drizzling over them as they squish comfortable between her legs."), false);
};
outputMainText(((" You bury your face against her giant clitoris, nuzzling it at first before kissing and biting it. Quite quickly, the mistress begins to writhe behind your attention, grabbing and kneading her breasts so much that her nipples poke out from her gown. Her belly flesh twists about your member, urging you to start pumping while you still can. And so you oblige.\r\rAlthough your " + hipDesc()) + " hips can hardly pull back, relative to the size of your endowment, you both shudder immensely. The grand genitals and all their nerves rubbing so gently against each other, with so much slime that you begin to slip on the floor from what just happens to spill out, you can tell this will end quickly. So, with a fervor, you begin to pump in and out, faster and faster, while you gnaw at her clit. The two of you wince and whine, trying to hold back the tsunami-like wave of instense climax in hopes of just a few more seconds of this extreme intercourse!\r\rYet, it's difficult to beat nature..."), false);
doNext();
doListen = function ():void{
outputMainText((((("The mistress lets out a loud, deafening cry as her legs lock around your " + buttDesc()) + " rear, strangling your bottom half as she quakes. Her body lunges up against your ") + cockDesc()) + " cock, her claws digging into her own distended belly, weighted down by her heavy cunt. Her feminine fluids gush out around you, drenching you in the warm juices. Her belly rumbles at the opposite end as you begin to ejaculate, your own body twitching against her soft vulva."), true);
if (cumAmount() > 4000){
outputMainText(" You cum so much that a portion of her belly hangs from the tip of your member, absolutely bloated with spunk as though she were some giant condom, before the rest begins to flood its way back through her vaginal passage and joins the rest of the fem-cum in drowning you.", false);
};
outputMainText(((" You spill your seed with great force, your abdomen aching as it works to shoot it all through your length. Then you both collapse onto the bed with a huff...\r\rShe lays sprawled upon her bed, idly licking at the fur of her belly once more. She hugs and squeezes at the bulge as you begin to grow flaccid and deflate her form. Though her pussy may make for a nice pillow, you soon find yourself being pushed away as her vagina begins to grow flaccid itself, the internal blood shrinking the passage and pushing your cock back out. It doesn't take long before before she gives birth to your " + cockDesc()) + " member, letting it flop onto the bed.\r\r'Mmmmm~' With a purr, her legs wrap around her pussy, kneading it in satisfaction. 'I don't think anybody can satisfy me like you just did... I might even get pregnant!' She chuckles. 'Oh my, for service like that... I should really pay you more for bringing me the fruit'\r\rAs she winks, she motions Fidoris over. In addition to giving him some coin, she also hands him a vial to give to you.\r\r'This vial contains some rather... concentrated juices from the kinds of fruit you bring me. I drink it myself, on occasion. But too much... well, you know.' Her foot pats her plush pussy. 'You might be able to find a use for it on somebody else, to help you fit a bit better. I figure it might come in handy for you. If not, it should still fetch a decent price. Either way, thank you for a great time, love~' She winks once more before returning her attention to coming down from her high.\r\rFidoris hands you the coins and vial and escorts you to the exit. Though, just as you're about to leave, you can hear the mistress call out 'Fidoris, sweetie, I think I'd like to feel full for a bit longer. Would you be a dear?' To which Fidoris replies 'Yes Mistress!'"), false);
doCoin(45);
doLust((-(sen) * 2));
hrs = 4;
itemAdd(221);
doSexP(13);
mistressRep++;
doEnd();
};
};
};
};
if (buttonChoice == 11){
if (mistressRep == 0){
outputMainText("'That is quite alright, you don't need any now, though it would have been nice. Here, take some coin as encouragement at least.'", true);
};
if (mistressRep > 0){
outputMainText("'Aww, that's a shame. Well, here, have some more coin as encouragement to pick some more for me.'", true);
};
outputMainText("\r\rShe nods to the femme-boy who goes to a shelf and grabs some coins from a bag. He hands them to you and leads you out the front door, thanking you for obliging.", false);
doCoin(5);
hrs = 2;
doEnd();
};
};
};
} else {
outputMainText("O-Okay. Thanks anyways!'\r\rHe turns and skitters off in a hurry, his tail hanging low with his bashfulness. You shrug and continue on with your walk.", true);
hrs = 1;
doEnd();
};
};
} else {
if ((((chance > 45)) && ((chance <= 75)))){
outputMainText("A group of felins pass by on one of the wide wooden bridges, some males with some females. They sway a little with each step, their tails oddly swinging the wrong way. Within their hands they have some bottles of milk, though they seem a bit disappointed with how little is left.", true);
if ((((((lactation > 2)) && ((((breastSize > 3)) && ((milkEngorgementLevel > 0)))))) || ((((udderSize > 6)) && ((udderEngorgementLevel > 0)))))){
outputMainText(((((((" However, just a few steps behind you, they come to a stop. Their button noses sniff at the air, their whiskers twitching curiously. Slowly, they turn towards you, their eyes focusing on your milky breasts...\r\rCatty grins grow upon their faces. Although they may be out of their tasty beverages that makes them a little woozy with joy, they seemed to have found another nice source of their favorite drink~\r\rBefore you know it, you're laying on the ground, your " + clothesTop()) + " pulled ") + pullUD(1)) + ", your front exposed and leaking. Your sight is quickly covered as one of the females in a skirt sits on your face, her slightly moist panties squishing your nose between her nether-lips. Her tail swishes across your head again and again as you feel your body ravaged, your ") + nipDesc()) + " nipples"), false);
if (udders == true){
outputMainText(((" and " + teatDesc()) + " teats"), false);
};
outputMainText(" being tugged and suckled from until milk is spraying from your body.", false);
getMilk = Math.max(milkAmount(1), milkAmount(2));
if (getMilk <= 1000){
outputMainText("\r\rTheir many thirsty mouths quickly drain you dry. Disappointed once more with the lack of delicious motherly goodness, they stumble away from you, leaving you used and half-naked...\r\rAt least they didn't bite.", false);
hrs = 2;
doEnd();
} else {
if ((((getMilk > 1000)) && ((getMilk <= 4000)))){
outputMainText("\r\rTheir many thirsty mouths suck and suck, guzzling down your delicious milk. It doesn't take long before they drain you dry, but once they do, they let out little burps of satisfaction. Thoroughly pleased with their bartender, they drop a bunch of coins on you for the drink before stumbling off again, their tails drooping much more lazily than before.", false);
doCoin(Math.floor((percent() / 3.3)));
hrs = 2;
doEnd();
} else {
if (getMilk > 4000){
outputMainText("\r\rTheir many thirsty mouths suck and suck, guzzling down your delicious milk. However, you produce so much that they simply can't seem to drain you. Yet that doesn't keep them from trying... The more and more they suck from you, the more lazy their efforts become. Even the tail on your head slows in pace, until it comes to a stop...\r\rStill pinned by the many bodies, you can hear them purr as they have fallen asleep. You take the opportunity to wiggle yourself free, nearly yanking down the girl's panties in the process. Once out, they merely curl up on the bridge, cuddling against each other. Another girl seems to have her skimpy shirt pulled up to her second pair of breasts, while a male has a prickly penis pulled from his pants. Whatever they were planning to do, it obviously didn't get too far.\r\rAs payment for their feast, you grab a couple of their small pouches. It's the least you could do to make up for their rude ambush.", false);
itemAdd(204);
itemAdd(204);
hrs = 3;
doEnd();
};
};
};
} else {
outputMainText(" They ignore you for the mostpart, busy talking and laughing amongst themselves.", false);
hrs = 1;
doEnd();
};
} else {
if ((((chance > 75)) && ((chance <= 100)))){
outputMainText("You wander about the tree-borne city, enjoying the sights and sounds.\r\rFelins are quite the agile people, able to work so high up in the canopy. Some spend their time harvesting various fruits from the nearby trees, while some others hunt for birds or even head down to the jungle floor for other game. Others have varying other professions, but they're all mostly laid back. It's not uncommon to catch someone dozing off in the middle of the day, the warm atmosphere quickly sending them to sleep.\r\rThere's also a few places to socialize, often in the form of singing or milk drinking. Since they don't have their own cows, they rely on their more abundant source for milk: their women.\r\rBeing a woman in Siz'Calit seems to be quite profitable, with many of the more wealthy families being headed by females. And when they go into their heat, well... they're probably one of the greater powers to reckon with in this community.\r\rThe males seem to be rather happy nevertheless. At the very least, they don't have to worry about finding mates.\r\rOther than enjoying yourself, there's nothing else you find to do.", true);
stats(0, 1, 0, 0);
hrs = 2;
doEnd();
};
};
};
};
}
public function udderDesc():String{
var chance:int;
var tempStr:String;
chance = percent();
tempStr = ("udder ERROR " + (udderSize / 2));
if (chance <= 100){
if ((udderSize / 2) <= 2){
tempStr = "nearly flat";
};
if (((((udderSize / 2) > 2)) && (((udderSize / 2) <= 8)))){
tempStr = "noticeable";
};
if (((((udderSize / 2) > 8)) && (((udderSize / 2) <= 20)))){
tempStr = "large";
};
if (((((udderSize / 2) > 20)) && (((udderSize / 2) <= 40)))){
tempStr = "huge";
};
if (((((udderSize / 2) > 40)) && (((udderSize / 2) <= 76)))){
tempStr = "humongous";
};
if (((((udderSize / 2) > 76)) && (((udderSize / 2) <= 146)))){
tempStr = "massive";
};
if (((((udderSize / 2) > 146)) && (((udderSize / 2) <= 210)))){
tempStr = "gargantuan";
};
if (((((udderSize / 2) > 210)) && (((udderSize / 2) <= 280)))){
tempStr = "tremendous";
};
if (((((udderSize / 2) > 280)) && (((udderSize / 2) <= 560)))){
tempStr = "colossal";
};
if ((udderSize / 2) > 560){
tempStr = "ridiculously huge";
};
};
if (chance > 50){
if ((udderSize / 2) <= 1){
tempStr = "tiny";
};
if (((((udderSize / 2) > 1)) && (((udderSize / 2) <= 4)))){
tempStr = "palmable";
};
if (((((udderSize / 2) > 4)) && (((udderSize / 2) <= 10)))){
tempStr = "ample";
};
if (((((udderSize / 2) > 10)) && (((udderSize / 2) <= 20)))){
tempStr = "head-sized";
};
if (((((udderSize / 2) > 20)) && (((udderSize / 2) <= 38)))){
tempStr = "hefty";
};
if (((((udderSize / 2) > 38)) && (((udderSize / 2) <= 73)))){
tempStr = "beachball-sized";
};
if (((((udderSize / 2) > 73)) && (((udderSize / 2) <= 105)))){
tempStr = "normally back-breaking";
};
if (((((udderSize / 2) > 105)) && (((udderSize / 2) <= 140)))){
tempStr = "view-obscuring";
};
if (((((udderSize / 2) > 140)) && (((udderSize / 2) <= 280)))){
tempStr = "bed-sized";
};
if ((udderSize / 2) > 280){
tempStr = "road-filling";
};
};
return (tempStr);
}
public function doLust(changes:int):void{
if (changes < 0){
lustDown.visible = true;
};
if (changes > 0){
lustUp.visible = true;
};
if ((lust + changes) > 100){
lust = 100;
changes = 0;
doLustForcedMasturbate();
};
if (((((((((lust + changes) < 20)) && ((heat > 0)))) && ((heatTime < 0)))) && ((pregnancy == false)))){
lust = 20;
changes = 0;
} else {
if ((lust + changes) < 0){
lust = 0;
changes = 0;
};
};
if (((((lust + changes) >= 75)) && ((lust < 75)))){
if (cockTotal > 0){
outputMainText((((((((("\r\rYour " + cockDesc()) + " cock") + plural(1)) + " squirm") + plural(3)) + " in your ") + clothesBottom()) + ", throbbing and wanting desperately to come."), false);
if ((((cockMoist > 0)) && ((cockMoist <= 3)))){
outputMainText(((" A small amount of pre leaks out, making a moist blotch on your " + clothesBottom()) + "."), false);
};
if ((((cockMoist > 3)) && ((cockMoist <= 6)))){
outputMainText(((" Steady drops of pre leak out, blotching your " + clothesBottom()) + " with small patches of slime."), false);
};
if ((((cockMoist > 6)) && ((cockMoist <= 9)))){
outputMainText(((((" You feel your cock" + plural(1)) + " slimed from tip to belly with its own pre, a steady dribble down your thigh and your ") + clothesBottom()) + " looking more like you peed yourself."), false);
};
if ((((cockMoist > 9)) && ((cockMoist <= 12)))){
outputMainText(((((((" You feel your cock" + plural(1)) + " swimming in ") + plural(5)) + " own pre, as long strands of slime seep through your ") + clothesBottom()) + " and stretch down to the ground. With each step, you fling the stuff around you like a whip, smacking across whatever is nearby"), false);
};
};
if (vagTotal > 0){
outputMainText((((((((("\r\rYour " + vulvaDesc()) + " lips feel swollen and hot in your ") + clothesBottom()) + ", making your legs feel weak. Your ") + clitDesc()) + " clit feels like it's going to explode if it doesn't get some attention soon, stiffly rubbing against your ") + clothesBottom()) + " with each move."), false);
if ((((vagMoist > 0)) && ((vagMoist <= 3)))){
outputMainText(" Your pussy lips slip over each other with each step, slightly lubricated with your arousal.", false);
};
if ((((vagMoist > 3)) && ((vagMoist <= 6)))){
outputMainText(((" You can feel webs of slime smear across the inside of your " + clothesBottom()) + ", your honey dribbling lightly within."), false);
};
if ((((vagMoist > 6)) && ((vagMoist <= 9)))){
outputMainText(((" You swear you can hear yourself squish with each step as your " + clothesBottom()) + " is completely soaked through with your honey. Your thighs feel like they've been completely oiled down by the warm, sensuous fluid."), false);
};
if ((((vagMoist > 9)) && ((vagMoist <= 12)))){
outputMainText(((" There must be a waterfall in your " + clothesBottom()) + " as a steady flow of clear honey drools from between your legs. You have to be extra careful of slipping in your own slime..."), false);
};
};
outputMainText((((("\r\rYour " + nipDesc()) + " nipples threaten to pierce through your ") + clothesTop()) + ". They feel as hard as diamonds with all your arousal, making you shiver whenever something brushes them."), false);
} else {
if (((((lust + changes) >= 50)) && ((lust < 50)))){
if (cockTotal > 0){
outputMainText((((((("\r\rYour " + cockDesc()) + " cock") + plural(1)) + " feel") + plural(3)) + " stiff and engorged with blood. Oh how nice it would be to take care of that problem... "), false);
if ((((cockMoist > 3)) && ((cockMoist <= 6)))){
outputMainText(((" A small amount of pre leaks out, making a moist blotch on your " + clothesBottom()) + "."), false);
};
if ((((cockMoist > 6)) && ((cockMoist <= 9)))){
outputMainText(((" Steady drops of pre leak out, blotching your " + clothesBottom()) + " with small patches of slime."), false);
};
if ((((cockMoist > 9)) && ((cockMoist <= 12)))){
outputMainText(((((" You feel your cock" + plural(1)) + " slimed from tip to belly with its own pre, a steady dribble down your thigh and your ") + clothesBottom()) + " looking more like you peed yourself."), false);
};
};
if (vagTotal > 0){
outputMainText((((((("\r\rYour " + vulvaDesc()) + " vulva feels puffy with engorgement, making you walk a little awkwardly so as to not squeeze them so much. Your ") + clitDesc()) + " clit stirs in your ") + clothesBottom()) + ", throbbing gently in anticipation."), false);
if ((((vagMoist > 3)) && ((vagMoist <= 6)))){
outputMainText(" Your pussy lips slip over each other with each step, slightly lubricated with your arousal.", false);
};
if ((((vagMoist > 6)) && ((vagMoist <= 9)))){
outputMainText(((" You can feel webs of slime smear across the inside of your " + clothesBottom()) + ", your honey dribbling lightly within."), false);
};
if ((((vagMoist > 9)) && ((vagMoist <= 12)))){
outputMainText(((" You swear you can hear yourself squish with each step as your " + clothesBottom()) + " is completely soaked through with your honey. Your thighs feel like they've been completely oiled down by the warm, sensuous fluid."), false);
};
};
outputMainText((((("\r\rYour " + nipDesc()) + " nipples stand at attention in your ") + clothesTop()) + ". They tingle slightly with your arousal."), false);
} else {
if (((((lust + changes) >= 25)) && ((lust < 25)))){
if (cockTotal > 0){
outputMainText((((((((("\r\rYour " + cockDesc()) + " cock") + plural(1)) + " wiggle") + plural(3)) + " in your ") + clothesBottom()) + ", stirring awake and growing erect. Bulging against the fabric, you silently wonder if anybody else will notice..."), false);
if ((((cockMoist > 6)) && ((cockMoist <= 9)))){
outputMainText(((" A small amount of pre leaks out, making a moist blotch on your " + clothesBottom()) + "."), false);
};
if ((((cockMoist > 9)) && ((cockMoist <= 12)))){
outputMainText(((" Steady drops of pre leak out, blotching your " + clothesBottom()) + " with small patches of slime."), false);
};
};
if (vagTotal > 0){
outputMainText((((((("\r\rYour " + vulvaDesc()) + " slit tingles and sparks. You feel a little giggly and warm with the sensation, delighting in the pleasantness of it all. Your ") + clitDesc()) + " clit tugs at its hood as it pulses awake in your ") + clothesBottom()) + "."), false);
if ((((vagMoist > 6)) && ((vagMoist <= 9)))){
outputMainText(" Your pussy lips slip over each other with each step, slightly lubricated with your arousal.", false);
};
if ((((vagMoist > 9)) && ((vagMoist <= 12)))){
outputMainText(((" You can feel webs of slime smear across the inside of your " + clothesBottom()) + ", your honey dribbling lightly within."), false);
};
};
};
};
};
lust = (lust + changes);
statDisplay();
}
public function doLustForcedMasturbate():void{
if (currentState == 2){
outputMainText("\r\rAmidst the heat of battle, your legs buckle from your intense arousal, preventing you from fighting any further.", false);
currentState = 1;
doNext();
doListen = function ():void{
if ((((((((ePref == 0)) || ((((ePref == 1)) && ((gender == 2)))))) || ((((ePref == 2)) && ((gender == 1)))))) || ((gender == 0)))){
outputMainText((("Unfortunately, the " + enemyName()) + " has no interest in taking advantage of your state and lands a heavy blow, knocking you out."), true);
doHP(-100000);
} else {
doGetRaped();
};
};
};
}
public function raceName():String{
var tempStr:String;
tempStr = ("RACE ERROR " + race);
if (race == 1){
tempStr = "Human";
};
if (race == 2){
tempStr = "Equan";
};
if (race == 3){
tempStr = "Lupan";
};
if (race == 4){
tempStr = "Felin";
};
return (tempStr);
}
public function doSleep():void{
bc();
outputMainText("You head into town to sleep for the night...", true);
exhaustion = 0;
doHP(20);
if (lust <= 30){
outputMainText("\r\rDespite everything, your body is calm and sleeps rather soundly.", false);
if ((((((cockMoist > 9)) && ((cockTotal > 0)))) || ((((vagMoist > 9)) && ((vagTotal > 0)))))){
outputMainText(" Although your bed is slightly moist from your constant production of lubricant from your loins.", false);
};
};
if ((((lust > 30)) && ((lust <= 70)))){
outputMainText("\r\rYour sleep is somewhat disrupted by tossing and turning throughout the night, your arousal making certain attributes swell with blood and desiring attention...", false);
exhaustion = (exhaustion + 3);
if ((((((((cockMoist > 3)) && ((cockMoist <= 9)))) && ((cockTotal > 0)))) || ((((((vagMoist > 3)) && ((vagMoist <= 9)))) && ((vagTotal > 0)))))){
outputMainText(" Plus your bed is slightly moist from your constant production of lubricant from your loins.", false);
};
if ((((((cockMoist > 9)) && ((cockTotal > 0)))) || ((((vagMoist > 9)) && ((vagTotal > 0)))))){
outputMainText(" It also seems as though you had wet the bed throughout the night, however the slick slime that pulls away in long strands as you touch it indicates a different fluid...", false);
};
};
if (lust > 70){
outputMainText("\r\rYou spend most of the night tossing and turning, your mind having difficulty sleeping with the lust that envelops it. Although you do manage to eventually get some, it's not nearly as good.", false);
exhaustion = (exhaustion + 8);
if ((((((((cockMoist > 0)) && ((cockMoist <= 3)))) && ((cockTotal > 0)))) || ((((((vagMoist > 0)) && ((vagMoist <= 3)))) && ((vagTotal > 0)))))){
outputMainText(" Plus your bed is slightly moist from your constant production of lubricant from your loins.", false);
};
if ((((((((cockMoist > 3)) && ((cockMoist <= 9)))) && ((cockTotal > 0)))) || ((((((vagMoist > 3)) && ((vagMoist <= 9)))) && ((vagTotal > 0)))))){
outputMainText(" It also seems as though you had wet the bed throughout the night, however the slick slime that pulls away in long strands as you touch it indicates a different fluid...", false);
};
if ((((((cockMoist > 9)) && ((cockTotal > 0)))) || ((((vagMoist > 9)) && ((vagTotal > 0)))))){
outputMainText(" You also wake up in a pool of your own sexual lubricant, the slick stuff sloshing off the sheets as you attempt to get out. You remain cautious as your feet touch the floor, as you have to avoid slipping in the large puddle around the bed.", false);
};
};
if ((((((heatTime < 0)) && ((heat > 0)))) && (vagTotal))){
outputMainText("\r\rDreams of being fucked by over a dozen cocks, each filling you to the brim with hot spunk, filled your sleep. When you eventually woke up in a hot sweat, your hand reflexively inspects your belly and you find yourself slightly disappointed to find it empty.", false);
};
if (milkEngorgementLevel == 2){
outputMainText("\r\rYour sheets smell somewhat sweet, slightly wet and white, as you wake up. Milk still dribbles from your breasts, having formed a small puddle throughout the night.", false);
};
if (milkEngorgementLevel > 2){
outputMainText("\r\rYour sheets smell somewhat sweet and feel very wet as you wake up. Milk spills in streams from your breasts, as you sit up, a pool of the stuff all around you.", false);
};
if (udderEngorgementLevel == 2){
outputMainText("\r\rYour sheets smell somewhat sweet, slightly wet and white, as you wake up. Milk still dribbles from your udder, having formed a small puddle throughout the night.", false);
};
if (udderEngorgementLevel > 2){
outputMainText("\r\rYour sheets smell somewhat sweet and feel very wet as you wake up. Milk spills in streams from your udder, as you sit up, a pool of the stuff all around you.", false);
};
if (pregnancy == true){
if ((((pregnancyTime > 18)) && ((pregnancyTime <= 36)))){
outputMainText("\r\rAfter waking, you feel oddly sick and strangely bloated. You should probably watch what you eat more closely.", false);
} else {
if ((((pregnancyTime > 36)) && ((pregnancyTime <= 72)))){
outputMainText("\r\rYou seem to be getting a bit chubbier in your midsection, might be because you've been hungrier and eating more lately. Plus you've been feeling a bit more randy than usual...", false);
} else {
if ((((pregnancyTime > 72)) && ((pregnancyTime <= 108)))){
outputMainText("\r\rYour belly is obviously bulging now, more than it would if it were just fat. You should probably accept the fact that you're pregnant...", false);
} else {
if ((((pregnancyTime > 108)) && ((pregnancyTime <= 144)))){
outputMainText("\r\rYou can easily hug your belly as it protrudes from your torso, looking like you were trying to smuggle a melon in your womb. But it feels so good to rub and caress it, making you easily get horny.", false);
} else {
if ((((pregnancyTime > 144)) && ((pregnancyTime <= 180)))){
outputMainText("\r\rYour belly is so large, your belly button has turned into an outie. You play with it as you head to sleep, the baby inside kicking back in turn.", false);
} else {
if ((((pregnancyTime > 180)) && ((pregnancyTime <= 216)))){
outputMainText("\r\rFor most races, you would be giving birth any time now. You actually have to be cautious about people bumping into you as you walk through the town, it protrudes so far.", false);
} else {
if ((((pregnancyTime > 216)) && ((pregnancyTime <= 252)))){
outputMainText((("\r\rThe " + skinDesc()) + " around your giant belly is so taut that you can audibly drum it with your fingers. Which the baby inside does with its feet frequently from inside."), false);
} else {
if ((((pregnancyTime > 252)) && ((pregnancyTime <= 288)))){
outputMainText("\r\rYou're beginning to draw the eyes of the crowd as you move through town, your belly is so enormous. People are wondering if you've actually got a baby in there and not a small child.", false);
} else {
if ((((pregnancyTime > 288)) && ((pregnancyTime <= 324)))){
outputMainText("\r\rThis is getting ridiculous... People are starting to come up to you as you move through the street on your way to bed and actually ask if you've got a small person in your belly! Although, you aren't quite sure, but as your hands try to wrap around it, unable to fully embrace it, you begin to wonder yourself.", false);
} else {
if ((((pregnancyTime > 324)) && ((pregnancyTime <= 360)))){
outputMainText("\r\rYour giant belly is becoming a bit of a nuisance... As you walk through buildings, people back up against a wall to let you pass by. You can feel your belly scrape against the frames of narrow doorways as you pass through, and it's been a while since you've last seen your belly-button...", false);
} else {
if ((((pregnancyTime > 360)) && ((pregnancyTime <= 396)))){
outputMainText("\r\rNow you're actually starting to get a little worried... Your knees are knocking against the underside of your belly when you try to walk. People are clearing the way when you move down the streets to make room for your belly and you have to skillfully wedge yourself through narrow doorways!", false);
} else {
if ((((pregnancyTime > 396)) && ((pregnancyTime <= 432)))){
outputMainText((("\r\rAs you lay down to go to sleep, you have to curl forward to fit your belly in your bed, leaving your backside hanging off the mattress. The sheets aren't even wide enough to cover you completely, making you feel a draft on some of your exposed belly. The chill makes you shiver, not from the cold, but from your nerves sparking from the super-taut, extra-sensitive " + skinDesc()) + "."), false);
} else {
if (pregnancyTime > 432){
outputMainText("\r\rYou don't even bother to head to your bed. Borrowing a bunch of blankets, you've made do with sleeping outside. Your belly is too big to go indoors, even having to handle shop business from the streets. Your hand reaches out as far as it can and hardly wraps around any of your girth. The warmth it emanates and sensations it echoes through your body help you sleep quite soundly and pleasantly, though, so you'll be fine until you give birth.", false);
};
};
};
};
};
};
};
};
};
};
};
};
};
if (((body + (str / 2)) + carryMod) < Math.floor((pregnancyTime / 10))){
outputMainText(" However, none of that really matters as you can no longer carry the weight of your hefty belly. You're stuck in this town, dragging your belly across the ground, with padding beneath to protect it. There's going to be no more exploring until you either get stronger or give birth to this massive nuisance...", false);
} else {
if ((((body + (str / 2)) + carryMod) * 2) < Math.floor((pregnancyTime / 10))){
outputMainText(((" Your " + skinDesc()) + " is pulled so taut around your belly that you're afraid it might tear, though it never does. But it's so sensitive... Caressing it as you try to sleep is so nice~ Although, it does have the slight drawback of looking rather silly while you walk with a hunch and attempt to cradle it wherever you go; it's gotten so heavy."), false);
} else {
if ((((body + (str / 2)) + carryMod) * 3) < Math.floor((pregnancyTime / 10))){
outputMainText(" The mound feels so heavy... When walking around town, you even had to keep a hand on your back for support.", false);
} else {
if ((((body + (str / 2)) + carryMod) * 4) < Math.floor((pregnancyTime / 10))){
outputMainText(" The weight of your belly makes you feel more exhausted than you really are by the end of the day, making you glad for the night's rest.", false);
} else {
if ((((body + (str / 2)) + carryMod) * 5) < Math.floor((pregnancyTime / 10))){
outputMainText(" You can noticeably feel the weight of your belly.", false);
};
};
};
};
};
};
hrs = 8;
doEnd();
}
public function doBattle():void{
bc();
viewButtonOutline(1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1);
viewButtonText(1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1);
buttonWrite(1, "Bag");
buttonWrite(2, "Run");
buttonWrite(5, "Attack");
buttonWrite(9, "Rape");
buttonWrite(10, "Entice");
buttonWrite(12, "Submit");
if (lust < 15){
Choice12.visible = false;
};
doListen = function ():void{
var dmg:int;
var eLustChange:int;
if (buttonChoice == 1){
doBag();
};
if (buttonChoice == 2){
if (percent() <= (20 + runMod)){
outputMainText("You successfully run away!", true);
currentState = 1;
hrs = 1;
doEnd();
} else {
outputMainText("You fail to run away...", true);
if (currentState == 2){
enemyAttack();
};
if (currentState == 2){
doBattle();
};
};
};
if (buttonChoice == 5){
weaponAttack();
if (currentState == 2){
enemyAttack();
};
if (currentState == 2){
doBattle();
};
};
if (buttonChoice == 9){
if ((((gender == 0)) || ((eGen == 0)))){
outputMainText("What are you going to rape it with? Good intentions?\r\rChoose another option.", true);
if (currentState == 2){
doBattle();
};
} else {
outputMainText((("You attempt to toss the " + enemyName()) + " to the ground and fuck it wildly!"), true);
if (lust < 15){
outputMainText("\r\rHowever, you aren't nearly aroused enough to even think about penetration, leaving your efforts futile.", false);
if (currentState == 2){
enemyAttack();
};
} else {
if ((((percent() / 5) + str) + rapeMod) <= (((percent() / 5) + eStr) - (eLust / 2))){
outputMainText((("\r\rHowever, the " + enemyName()) + " overpowers you and tosses you off!"), false);
if (currentState == 2){
enemyAttack();
};
} else {
if (((((((!((ePref == gender))) && (!((ePref == 4))))) && (!((gender == 3))))) || ((ePref == 0)))){
dmg = Math.floor(((percent() / 10) + (lust / 10)));
outputMainText((((("\r\rHowever, the " + enemyName()) + " is sorely turned off by your rough pounding on its sensitive area, merely hurting its genitals and its pride.\r\rBut you do deal ") + dmg) + " damage and satisfy yourself a bit."), false);
doeHP(-(dmg));
doLust(-(Math.floor(((percent() / 20) + (sen / 10)))));
} else {
doLust((-(sen) * 2));
doRape();
eLustChange = Math.floor(((percent() / 10) + (eSen / 5)));
if ((eLust - eLustChange) <= 0){
eLust = 0;
};
if ((eMenta - eLustChange) < 0){
specialRapeWin();
outputMainText("\r\rYou win!", false);
currentState = 1;
doNext();
doListen = function ():void{
battleWin();
};
} else {
outputMainText((("\r\rThe " + enemyName()) + " picks itself up after you had your way with it, a little distraught but not yet defeated."), false);
eLust = (eLust - eLustChange);
};
eMenta = (eMenta - eLustChange);
};
};
};
if (currentState == 2){
doBattle();
};
};
};
if (buttonChoice == 10){
doEntice();
if (currentState == 2){
enemyAttack();
};
if (currentState == 2){
doBattle();
};
};
if (buttonChoice == 12){
outputMainText((("No longer wishing to fight, you attempt to submit yourself to the " + enemyName()) + "'s whims in hopes of leaving the battle with a little fun."), true);
if ((((((((ePref == 0)) || ((((ePref == 1)) && ((gender == 2)))))) || ((((ePref == 2)) && ((gender == 1)))))) || ((gender == 0)))){
outputMainText("\r\rHowever, it is quickly apparent that the enemy has no interest in you, in that fashion.", false);
if (currentState == 2){
enemyAttack();
};
} else {
if (eLust < eMenta){
outputMainText((("\r\rHowever, the " + enemyName()) + " isn't nearly aroused enough, a bit too cautious at the moment to assault you in such a way."), false);
if (currentState == 2){
enemyAttack();
};
} else {
currentState = 1;
doNext();
doListen = function ():void{
doGetRaped();
};
};
};
if (currentState == 2){
doBattle();
};
};
};
}
public function doJungle():void{
var chance:int;
chance = percent();
if (chance <= 25){
outputMainText("You hear ominous swishing through the trees around you...", true);
if (percent() < (10 + runMod)){
outputMainText("\r\rYet you manage to run off before anything can catch you.", false);
hrs = 1;
doEnd();
} else {
if (breastSize < 6){
outputMainText("\r\rPeach-colored tentacles lash out at you from the tree-branches above, catching you by surprise. They flail around your chest, feeling about and scratching it roughly.\r\rHowever, the tentacles seem to be uninterested and disappear as quick as they came, leaving you with a rather hurtful chest and wasted time.", false);
doHP(-(Math.floor(((percent() / 10) + 2))));
hrs = 1;
doEnd();
} else {
if (((((lactation + milkMod) > 3)) || ((((boobTotal > 2)) && (((lactation + milkMod) > 2)))))){
outputMainText((("\r\rA mass of peach-colored tentacles falls from the tree-branches above. Some of the tentacles waver out towards you, mostly aiming at your " + boobDesc()) + " chest. They seem rather non-threatening, however, as the mass rolls back and forth on the forest floor, almost as though it were a stumbling drunk.\r\rDo you allow the tentacles to come closer?"), true);
buttonConfirm();
doListen = function ():void{
if (buttonChoice == 6){
outputMainText((("Cautiously standing still, you wait as the tentacles come right up to your breasts. They caress your " + nipDesc()) + " nipples, seemingly able to smell the milk within your breasts, and they wiggle even more like a drunk... It seems as though the creature smelled your large amount of milk production as you approached and became intoxicated by it.\r\r\rDo you let the creature indulge itself?"), true);
buttonConfirm();
doListen = function ():void{
if (buttonChoice == 6){
outputMainText((((((((("You pull your " + clothesTop()) + " ") + pullUD(1)) + ", letting your ") + boobDesc()) + " chest bob out, practically inviting it to partake of your motherly liquid. Not to forsake such an opportunity, the tentacled mass rolls up to you, the tentacles squirming about your ") + nipDesc()) + " nipples until they stand hard and erect. Yet, the tentacles pull away, caressing and hugging your body as the main mass comes right up to you.\r\rThe mass of tentacles part, revealing a feminine face, slender and beautiful, with eyes closed. The tentacles dance atop her head, seemingly replacing her hair. Looking down, you can see more of her lithe body, thin with milky skin. Two breasts, barely handfuls, wobble upon her chest as tentacles, particularly thinner than the rest, dance about where her nipples would be. Overall, she seems quite short, maybe 4 feet tall at most, while the mass of tentacles could easily reah 6 feet in height."), true);
doNext();
doListen = function ():void{
outputMainText((((((("The fair face moves up to one of your " + boobDesc()) + " breasts, the little mouth yawning wide to fit one of your ") + nipDesc()) + " nipples. She latches on the best she can, suckling intently from your chest. You let out a gasp as her expert suckling makes your body grow warm, a delightful tingling sensation making you quiver. Milk gushes from your tits as she gulps it down. Tentacles much thicker than the rest droop from her hair, their tips opening into soft maws that suckle from and kiss the ") + skinDesc()) + " of your breasts, leaving none unattended. It doesn't take long before you body is wracked by an intense boobgasm..."), true);
doNext();
doListen = function ():void{
outputMainText((("Gasping for air as you come down from your climax, the feminine face and all the tentacles collapse, leaving hardly any milk still dribbling from your " + nipDesc()) + " nipples. Checking the creature, she seems to have passed out in a drunken slumber. Her face seems content, with a small smile, her tentacles writhing lazily about her. Two tentacles in particular look surprisingly active, though. Her small breasts jiggle about as their tentacle-nipples stiffen and soften. They shiver as you run your hands along them, several feet long before you reach their tips. Short, narrow needles protrude from the tips of these tentacle-nipples and they dribble some pearlescant fluid excessivly. You take an empty vial from your bag and gather some of the fluid before heading on your way..."), true);
doSexP(20);
nipplePlay = (nipplePlay + 7);
doLust(-(Math.floor(((percent() / 10) + ((breastSize * sen) / 10)))));
milkAmount(1);
item1 = 201;
hrs = 2;
doEnd();
};
};
};
if (buttonChoice == 7){
outputMainText("You take the opportunity to run from the tentacles before the creature can come to its senses, easily avoiding it.", true);
doSexP(7);
hrs = 1;
doEnd();
};
};
};
if (buttonChoice == 7){
outputMainText("You take the opportunity to run from the tentacles before the creature can come to its senses, easily avoiding it.", true);
doSexP(4);
hrs = 1;
doEnd();
};
};
} else {
outputMainText((((((((((("\r\rPeach-colored tentacles lash out at you from the tree-branches above, catching you by surprise. They flail around your " + boobDesc()) + " chest, feeling about and scratching it roughly. They pull back for a moment, but before you can recoup from your confused stupor, even more come flying out from the trees, this time whipping around your wrists and ankles.\r\rStruggle as you may, you can't seem to wrench yourself free. You can only watch in fear as more tentacles pull your ") + clothesTop()) + " away and roam about your ") + boobDesc()) + " breasts. They poke and tease at your ") + nipDesc()) + " nipples, causing them to stand hard and erect. Then, short narrow needles draw out of two particularly thinner tentacles. They drip with some sort of pearlescant fluid and they plunge gently into each of your ") + boobTotal) + " fleshy masses..."), false);
doNext();
doListen = function ():void{
boobChange(1);
outputMainText((((("A sudden feeling of warmth overcomes you. Your breasts feel especially hot, heaving with your breath. Staring intently, you even notice them grow slightly in size.\r\rA moment later, your head jerks back as an intense feeling of fullness and swelling engulfs your sensitive tits. You recoil just in time to see streams of white liquid spew from your throbbing, " + nipDesc()) + " nipples. Milk continues to gush for a while, as more tentacles come close. These are much thicker than the ones with needles and their tips open into wet, soft maws. Each one latches onto your lactating breasts and begin to suckle...\r\rYou feel slightly light-headed from the fuzzy warmth that engulfs you, the pleasurable slurping of the hungry tentacles sucking you dry. Eventually, the tantalizing efforts make your body quiver, wracked by a strong orgasm... from your ") + boobDesc()) + " breasts."), true);
doNext();
doListen = function ():void{
outputMainText((((("A minute later, the tentacles retract from whence they came, leaving you to collapse to your knees. Your breasts still feel larger than before, especially when you put your " + clothesTop()) + " back into place. Wet blotches seep across the fabric, your ") + nipDesc()) + " nipples still dribbling with milk..."), true);
lactChange(1);
milkAmount(1);
nipplePlay = (nipplePlay + 6);
doSexP(10);
doLust(-(Math.floor(((percent() / 20) + ((breastSize * sen) / 10)))));
doHP(-(Math.floor((percent() / 10))));
hrs = 2;
doEnd();
};
};
};
};
};
};
if ((((chance > 25)) && ((chance <= 50)))){
outputMainText("Walking through the jungle, you begin to hear footsteps mix with your own... As you pause to listen in, a creature jumps out before you! A lone wolf, it growls, ready to attack. And judging by the red rod that bobs beneath its belly, it's probably male, and probably frustrated after some failed encounter with a female...", true);
doNext();
doListen = function ():void{
enemyID = 201;
currentState = 2;
enemyBaseStats();
eMaxHP = eHP;
doBattle();
};
};
if ((((chance > 50)) && ((chance <= 75)))){
outputMainText("Within the jungle, you come across a rather tender looking tree. Fruits of a rather... vulgar shape hang from its branches. You pluck one and take it back with you.", true);
item1 = 210;
hrs = 2;
doEnd();
};
if (chance > 75){
outputMainText("After a few hours of being lost and randomly wandering through the massive amount of vegetation, you come across a path. Would you like to follow it?", true);
buttonConfirm();
doListen = function ():void{
if (buttonChoice == 6){
if (currentZone == 3){
outputMainText("Following the path, you begin to see various wooden structures built amongst the canopy. Rope-bridges and circular huts everywhere, with lithe cat-like people walking about or jumping from branch to branch. The path leads you right to one of the few spiraling ramps that encircles the trees, bringing you up to the tree-born city.\r\rYou have now entered the Felin home-city of Siz'Calit! Although, looking behind you, there seems to be no sign of the path you just took. Getting back might be a bit difficult...", true);
regionChange(4);
hrs = 4;
doEnd();
} else {
if (currentZone == 4){
outputMainText("Following the path, the vegetation grows slightly sparser as you come upon a large clearing. Most of the clearing has been walled off by tree-trunks lashed together with rope. You hear some vicious growls, but also plenty of coherent speech, echoing from behind the wall. A whole bustling city. The path you followed brings you right to the front gates, where furry wolf-like guards kindly greet you and allow you to pass.\r\rYou have now entered the Lupan home-city of Tieden! Although, looking behind you, there seems to be no sign of the path you just took. Getting back might be a bit difficult...", true);
regionChange(3);
hrs = 4;
doEnd();
};
};
} else {
outputMainText("You return from whence you came.", true);
hrs = 1;
doEnd();
};
};
};
}
public function doMasturbate():void{
bc();
currentState = 3;
viewButtonOutline(1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1);
viewButtonText(0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1);
buttonWrite(1, "Penis");
buttonWrite(2, "Both");
buttonWrite(3, "Vagina");
buttonWrite(4, "Bag");
buttonWrite(7, "Breasts");
buttonWrite(10, "Udder");
buttonWrite(12, "Return");
if (cockTotal > 0){
Choice1.visible = true;
};
if (vagTotal > 0){
Choice3.visible = true;
};
if (udders == true){
Choice10.visible = true;
};
outputMainText("How would you like to masturbate?", true);
doListen = function ():void{
if (buttonChoice == 1){
doCockMasturbate();
};
if (buttonChoice == 3){
doVagMasturbate();
};
if (buttonChoice == 2){
doBothMasturbate();
};
if (buttonChoice == 4){
doBag();
};
if (buttonChoice == 7){
doBoobMasturbate();
};
if (buttonChoice == 10){
doUdderMasturbate();
};
if (buttonChoice == 12){
doGeneral();
};
};
}
public function doStartingDescription():void{
regionChange(currentZone);
currentRegion.visible = true;
region.visible = true;
outputMainText("In the world of Nimin, civilizations are scattered and isolated by the harsh wilderness. Not that the wilderness was deadly, however. Most towns knew of their neighbors and were never surprised by new faces. Rather... people who ventured into the wilderness rarely returned the same as when they left, if they managed to find their way back amidst the seemingly changing geography.\r\rThere's little history to Nimin beyond that, a mystery that may be solved some day.", true);
if (race == 1){
outputMainText("\r\rFrom the Human city of Softlik, you were raised amongst a curious civilization. Humans are often the first to visit the others, though most generally don't explore too far, rarely reaching the further civilizations. Yet, the city of Softlik has always been welcoming of newcomers, their houses of wood and stone allowing for plenty of stability in the rather safe rolling hills.", false);
};
if (race == 2){
outputMainText("\r\rFrom the Equan city of Firmshaft, you were raised amongst a nomadic civilization. Equans are a strong race and roam about the plains, well used to travel. As such, it's not too unusual for some to travel abroad, though that tends to mean not being able to enjoy the harems... Nevertheless, the core city of Firmshaft stays relatively still, mostly made up of large canvas tents that slowly shifts its borders around as they move about.", false);
};
if (race == 3){
outputMainText("\r\rFrom the Lupan city of Tieden, you were raised amongst a toughened civilization. Lupans have managed to survive with jungle and forest surrounding them, defending themselves from the more savage creatures. Tieden is a tribal city made from wooden buildings and surrounded by tall walls to protect themselves. And being so experienced against the 'odd' forces, some are encouraged to keep up ties with the other civilizations and maybe discover more.", false);
};
if (race == 4){
outputMainText("\r\rFrom the Felin city of Siz'Calit, you were raised amongst a sexual civilization. Felins are often open about their sexuality, especially with their females often going into heat. Although, sometimes the heat of the women, along with the heat of the jungle they live in, can be too sweltering and some feel the need for fresh air. Whatever their true reason is for leaving, their home city of Siz'Calit is always a safe and welcome refuge, with many huts and bridges high in the canopy.", false);
};
outputMainText((((((("\r\rStanding " + Math.floor((tallness / 12))) + " feet and ") + (tallness - (Math.floor((tallness / 12)) * 12))) + " inches tall with a ") + bodyDesc()) + " figure, you head off with your own reasons."), false);
doHP(30);
doSexP(0);
doNext();
doListen = function ():void{
if (buttonChoice == 6){
currentState = 1;
doGeneral();
};
};
}
public function useItem(slotNumber:int):void{
var ID:int;
var slotNumber = slotNumber;
ID = itemID(slotNumber);
if (ID == 0){
outputMainText("This slot is empty.", true);
doBag();
} else {
outputMainText(itemDescription(ID), true);
if (((usableItem(ID)) || (conItem(ID)))){
outputMainText("\r\rAre you sure you want to use this item?", false);
if (conItem(ID)){
outputMainText("\r\rWarning: Using this item will consume it.", false);
};
buttonConfirm();
doListen = function ():void{
if (buttonChoice == 6){
if (conItem(ID)){
itemSlotWrite(slotNumber, 0);
};
doItemUse(ID);
} else {
doBag();
};
};
} else {
doBag();
};
};
}
public function ballDesc():String{
var chance:int;
var tempStr:String;
chance = percent();
tempStr = ("BALLS ERROR " + ballSize);
if (chance <= 100){
if (ballSize <= 1){
tempStr = "tiny";
};
if ((((ballSize > 1)) && ((ballSize <= 3)))){
tempStr = "small";
};
if ((((ballSize > 3)) && ((ballSize <= 5)))){
tempStr = "big";
};
if ((((ballSize > 5)) && ((ballSize <= 8)))){
tempStr = "large";
};
if ((((ballSize > 8)) && ((ballSize <= 13)))){
tempStr = "hand-filling";
};
if ((((ballSize > 13)) && ((ballSize <= 17)))){
tempStr = "huge";
};
if ((((ballSize > 17)) && ((ballSize <= 26)))){
tempStr = "barely palmable";
};
if ((((ballSize > 26)) && ((ballSize <= 40)))){
tempStr = "enormous";
};
if ((((ballSize > 40)) && ((ballSize <= 80)))){
tempStr = "tremendous";
};
if ((((ballSize > 80)) && ((ballSize <= 120)))){
tempStr = "huggable";
};
if ((((ballSize > 120)) && ((ballSize <= 240)))){
tempStr = "gargantuan";
};
if (ballSize > 240){
tempStr = "colossal";
};
};
if (chance > 50){
if (ballSize <= 1){
tempStr = "marble-sized";
};
if ((((ballSize > 1)) && ((ballSize <= 3)))){
tempStr = "golfball-sized";
};
if ((((ballSize > 3)) && ((ballSize <= 5)))){
tempStr = "tennisball-sized";
};
if ((((ballSize > 5)) && ((ballSize <= 8)))){
tempStr = "kiwi-sized";
};
if ((((ballSize > 8)) && ((ballSize <= 13)))){
tempStr = "baseball-sized";
};
if ((((ballSize > 13)) && ((ballSize <= 17)))){
tempStr = "softball-sized";
};
if ((((ballSize > 17)) && ((ballSize <= 26)))){
tempStr = "canteloupe-sized";
};
if ((((ballSize > 26)) && ((ballSize <= 40)))){
tempStr = "basketball-sized";
};
if ((((ballSize > 40)) && ((ballSize <= 80)))){
tempStr = "watermelon-sized";
};
if ((((ballSize > 80)) && ((ballSize <= 120)))){
tempStr = "beachball-sized";
};
if ((((ballSize > 120)) && ((ballSize <= 240)))){
tempStr = "boulder-sized";
};
if (ballSize > 240){
tempStr = "landscape-crushing";
};
};
return (tempStr);
}
public function affinity(humanChange:int, horseChange:int, wolfChange:int, catChange:int, cowChange:int):void{
human = (human + humanChange);
horse = (horse + horseChange);
wolf = (wolf + wolfChange);
cat = (cat + catChange);
cow = (cow + cowChange);
}
public function stashRemove(removeStashItem:int):void{
var removeStashItem = removeStashItem;
viewButtonOutline(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
viewButtonText(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
i = 1;
while (i < 13) {
buttonWrite(i, itemName(itemID(i)));
i++;
};
buttonWrite(4, "<<");
buttonWrite(8, ">>");
buttonWrite(12, "Return");
showPage(true, 1);
outputMainText((("Click on the bag slot you would like to place " + itemName(stashID(removeStashItem))) + " in. If you click on a slot that is already used, you will swap the items.\r\rClick 'Return' to return to the main stash options."), true);
doListen = function ():void{
var tempNum:int;
if (buttonChoice == 12){
showPage(false, 1);
doStash();
} else {
if (buttonChoice == 4){
if (currentItems == 1){
currentItems = 3;
} else {
if (currentItems == 2){
currentItems = 1;
} else {
if (currentItems == 3){
currentItems = 2;
};
};
};
showPage(true, 1);
stashRemove(removeStashItem);
} else {
if (buttonChoice == 8){
if (currentItems == 1){
currentItems = 2;
} else {
if (currentItems == 2){
currentItems = 3;
} else {
if (currentItems == 3){
currentItems = 1;
};
};
};
showPage(true, 1);
stashRemove(removeStashItem);
} else {
if (((((!((buttonChoice == 0))) && (!((buttonChoice == 4))))) && (!((buttonChoice == 8))))){
tempNum = itemID(buttonChoice);
showPage(false, 1);
loseItem(buttonChoice);
itemSlotWrite(buttonChoice, stashID(removeStashItem));
stashSlotWrite(removeStashItem, tempNum);
doRemoveStash();
};
};
};
};
};
}
public function udderChange(sizeChange:int):void{
udderSize = (udderSize + sizeChange);
teatSize = (teatSize + sizeChange);
}
public function stashStore(storeItem:int):void{
var storeItem = storeItem;
i = 1;
while (i < 13) {
buttonWrite(i, itemName(stashID(i)));
i++;
};
buttonWrite(4, "<<");
buttonWrite(8, ">>");
buttonWrite(12, "Return");
showPage(true, 2);
outputMainText((("Click on the stash slot you would like to place " + itemName(itemID(storeItem))) + " in. If you click on a slot that is already used, you will swap the items.\r\rClick 'Return' to return to the main stash options."), true);
doListen = function ():void{
var tempNum:int;
if (buttonChoice == 12){
showPage(false, 2);
doStash();
} else {
if (buttonChoice == 4){
if (currentStash == 1){
currentStash = 3;
} else {
if (currentStash == 2){
currentStash = 1;
} else {
if (currentStash == 3){
currentStash = 2;
};
};
};
showPage(true, 2);
stashStore(storeItem);
} else {
if (buttonChoice == 8){
if (currentStash == 1){
currentStash = 2;
} else {
if (currentStash == 2){
currentStash = 3;
} else {
if (currentStash == 3){
currentStash = 1;
};
};
};
showPage(true, 2);
stashStore(storeItem);
} else {
if (((((!((buttonChoice == 0))) && (!((buttonChoice == 4))))) && (!((buttonChoice == 8))))){
tempNum = itemID(storeItem);
showPage(false, 2);
loseItem(storeItem);
itemSlotWrite(storeItem, stashID(buttonChoice));
stashSlotWrite(buttonChoice, tempNum);
doStoreStash();
};
};
};
};
};
}
public function eVagLimit(limit:int):Number{
return ((limit + (limit * moistMod(1))));
}
public function doDairyFarm():void{
var chance:int;
chance = percent();
if ((((malonRep == 4)) && ((malonPreg > 216)))){
outputMainText("As you approach the farm, one of the farmhands rushes up to you. Catching their breath, they speak rapidly.\r\r'Hurry! Malon's gone into labor!!'\r\rThe farmhand grabs you hand and yanks you towards the main farmhouse. Within minutes, you're brought up to Malon's room where the excessively pregnant half-bovine woman huffs and heaves. Her tail swishes out the side from under her, twitching with each contraction.\r\r'Here it comes!', one of the farmhands announces as the baby begins to crown.\r\rAn eternity of bliss passes as you hear a cry, slightly mooing, but utterly beautiful. She has long, luxurious red hair, just like her mother's. Along with large, cow-like ears, and a long swishy tail. As well as, oddly enough, a jiggly little udder just below her belly and palmable breasts on her chest. A beautiful baby girl", true);
if (malonChildren > 1){
outputMainText(", just like the rest", false);
};
outputMainText("! ...She's got your eyes, at least.\r\rThe baby is actually quite developed already, it seems. She opens her eyes and giggles playfully, closer to a seven-year-old child than an actual baby. And as the farmhand places her on the bed, she tries to stand, but stumbles at first, using her mother as support. You wouldn't be surprised if she were running and talking within the next few days!\r\rBut, first thing's first, Malon pulls up her dress the rest of the way, letting her over-engorged bosom leak all over the bed. The little girl quickly crawls up to a long nipple, sucking it down her throat and suckling. You", false);
if (malonChildren == 1){
outputMainText(", and her older sister,", false);
};
if (malonChildren > 1){
outputMainText(", and her older sisters,", false);
};
outputMainText(" gather close and give Malon a great big hug.", false);
doNext();
doListen = function ():void{
outputMainText("You wind up sleeping at the farmhouse and spend an entire day with the family. The newborn girl is walking after the bedrest and even begins muttering her own cute little moos. Malon already has a dress ready for the girl, long and white that goes all the way down to the feet, just like she used to wear when she was that young. Well, not quite that young, but around that equivalent age in development.\r\rYou're congratulated many times as you eventually leave, and even given quite the hefty sum as a gift from the whole farm!", true);
doCoin(150);
doSexP(50);
stats(0, 1, 0, 0);
malonChildren++;
malonPreg = 0;
malonRep = 5;
hrs = 30;
doEnd();
};
} else {
if (chance <= 15){
outputMainText("As you head towards the dairy farm, one of the farmers waves you over in greeting.\r\r'Why hello there! You're lucky to have passed by here at this time. We're giving away free samples of our dairy enhancement pills for cows, to help drum up some business. We use these to keep our dairy cows in top shape and producing plenty of milk. Give them to your own cows to help make them fine producers as well!\r Just... try not to eat them yourself, or you'll end up like Malon over there.'\r\rHe nods over to one of the farm-hands that is nearby. She's a beautiful woman with long, flowing red hair in a yellow shirt and long purple skirt with a brown apron around her waist and yellow shawl around her shoulders. However, the shawl seems fairly wet and she's careful to drape its ends over breasts larger than watermelons, trying to hide the large blotches on her shirt with it and keeping it at the ready to use at any moment. Her ears are also quite long, hanging perpendicular from her head, nearly 5 inches, and droop a little. Behind her you see a long, narrow tail, tipped with a tuft of long hairs, swish about her calves with each step. She lugs two overflowing pails of milk with a blush in her cheeks, trying to avoid eye contact with anyone as she disappears into a barn.", true);
if (malonRep > 2){
outputMainText(" Although, she spots you out of the corner of her eye before she enters and turns to give you a bright smile. It looks like she'd wave at you, but her hands are a bit busy at the moment.", false);
};
if (malonRep == 4){
if ((((malonPreg > 36)) && ((malonPreg <= 72)))){
outputMainText(" Especially as one wraps around her protruding belly, obviously pregnant...", false);
};
if ((((malonPreg > 72)) && ((malonPreg <= 144)))){
outputMainText(" Yet, despite the massive belly she is sporting, it seems she's managing work just fine.", false);
};
if ((((malonPreg > 144)) && ((malonPreg <= 216)))){
outputMainText(" You're actually quite surprised that she's even working at all. Though her breasts seem even larger than usual, they're actually supported by her enormously pregnant belly, looking to be even larger than she is.", false);
};
};
if (malonRep > 3){
outputMainText("\r\r'Although, I'm sure you're already aware of the consequences.'\r\rHe gives you a perverse wink and hands you a complimentary DairE Pill, nodding you along.", false);
} else {
outputMainText("\r\r'Let's just say it's best to keep the pills to the cows.'\r\rHe hands you a complimentary DairE Pill and nods you along.", false);
};
item1 = 211;
hrs = 2;
doEnd();
} else {
if ((((chance > 15)) && ((chance <= 65)))){
bc();
outputMainText("As you head towards the dairy farm, one of the farmers spots you and walks over to greet you.\r\r'Hello! If you want some of our milk, you should head over to Softlik. But if you're here for some of our DairE Pills, the supplement that helps our cows produce so much delicious milk, then look no further, you can buy one from me!'\r\r'Would you like to buy one? Only 30 coins!", true);
buttonConfirm();
doListen = function ():void{
if (buttonChoice == 6){
if (coin < 30){
outputMainText("'Sorry friend, you don't seem to have enough coins. Come back later when you do and we can try to deal again!'\r\rHe gives you a nod before heading back to his work, leaving you to head back to Softlik.", true);
hrs = 1;
doEnd();
} else {
outputMainText("'Alright, here you go friend!' He rummages through one of his pockets in his overalls and pulls out a large pill, handing it to you. 'Come back later if you need any more!'\r\rHe gives you a nod before heading back to his work, leaving you to head back to Softlik.", true);
doCoin(-30);
item1 = 211;
hrs = 2;
doEnd();
};
} else {
outputMainText("'Well, come back again later if you change your mind. And have a nice day!'\r\rHe gives you a nod before heading back to his work, leaving you to head back to Softlik.", true);
hrs = 1;
doEnd();
};
};
} else {
if ((((((chance > 65)) && ((chance <= 80)))) || ((((((malonRep > 0)) && ((chance > 65)))) && ((chance <= 90)))))){
trace(("malonRep = " + malonRep));
if ((((percent() <= 25)) || ((((malonRep > 3)) && ((percent() <= 50)))))){
bc();
viewButtonOutline(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0);
viewButtonText(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0);
buttonWrite(5, "Inspect");
buttonWrite(7, "Leave");
outputMainText("Having avoided any farmers, you approach one of the barns. Your ears perk up as you hear something inside. A machine sounds like its pumping, yet you can see no signs of cows nearby or the farmers that take care of them.\r\r\rWhat do you do?", true);
doListen = function ():void{
if (buttonChoice == 5){
if (malonRep < 1){
outputMainText("You quietly open the door and look inside, your eyes going wide at what you see. There are no cows, yet the automatic milker is churning away. In the stalls where the cows should be, stands a young woman, bent forward and hanging onto the guardrail to hold herself up. She wears a long purple skirt with a brown apron, her large rump rocking from side to side as a long tail with a hairy tip dances above in tune. Long red hair dangles down from her shoulders, with long, round ears sticking out. She heaves with each pump of the milker, letting out soft gasping moos.\r\rHer white shirt pushed down around her belly and her yellow shawl draped over the rail beside her, her enormous naked breasts hang down towards the floor. They're larger than watermelons, with nipples several inches long encompassed by the milking cups. Gushes of milk flow through the milker's hoses with each pump, her giant breasts being drained...\r\r\rWhat now?", true);
} else {
outputMainText("You quietly open the door and look inside, a smirk crossing your face. There are no cows, yet the automatic milker is churning away. In the stalls where the cows should be, stands Malon, the young farm-hand, bent forward and hanging onto the guardrail to hold herself up, her large rump rocking lazily back and forth as her bovine tail swings above in tune. Her white shirt is scrunched down around her belly, her enormous naked breasts hanging down towards the floor. Her nipples are several inches long and encompassed by the milking cups, gushes of milk flow through the milker's hoses with each pump, her giant breasts being drained. In between gasps, she lets out soft moos...", true);
if (malonRep == 4){
if ((((malonPreg > 36)) && ((malonPreg <= 72)))){
outputMainText("\r\rShe rubs her slightly protruding belly, pregnant with one of your children...", false);
};
if ((((malonPreg > 72)) && ((malonPreg <= 144)))){
outputMainText("\r\rBoth of her hands rub around her giant belly which hangs nearly as low as her tits, pregnant with one of your children. You don't know how she managed to even pull her shirt down like that...", false);
};
if ((((malonPreg > 144)) && ((malonPreg <= 216)))){
outputMainText("\r\rHer flow of milk through the tubes seems even more powerful than before. You're surprised at how large her tits have grown, her nipples nearly scraping along the ground as she bends over. However, her giant belly that she hugs and caresses as she's milked reaches even further, the hay on the floor tickling her protruding belly button. She has propped it up against the guardrail to help maintain her balance, though she doesn't seem terribly uncomfortable.", false);
};
};
if ((((malonRep == 5)) && ((malonChildren > 0)))){
outputMainText("\r\rIt seems as though she has finally found a moment to get away from your offspring and have some time to herself.", false);
};
outputMainText("\r\r\rWhat now?", false);
};
bc();
viewButtonOutline(0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0);
viewButtonText(0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0);
buttonWrite(2, "Interrupt");
buttonWrite(5, "Assist");
buttonWrite(7, "Fuck");
if (malonRep < 1){
buttonWrite(7, "Rape");
};
buttonWrite(10, "Leave");
doListen = function ():void{
if (buttonChoice == 2){
outputMainText("You tap on the rail beside her, notifying her of your presence. Her eyes go wide as she jumps, her tits bouncing and wobbling around the rail as she looks up at you.", true);
if (malonRep < 0){
outputMainText("\r\rWith fear in her eyes, she grabs her shawl from the rail and runs in the opposite direction until the cups pop from her nipples with a milky flood. Her breasts swing from side to side, more milk splashing about the walls as she goes, she disappears out another door, leaving you with nothing.", false);
stats(0, -1, 0, 0);
doSexP(5);
hrs = 2;
doEnd();
} else {
if (malonRep > 2){
outputMainText("\r\r'Meanie. Why'd you go and scare me like that?' She winks and sticks out her tongue at you.\r\rHer eyelids droop as her body shudders, the tail flicking wildly while the milk flow stutters with a strong burst. She lets out a low 'moo' as she comes, at least partly enjoying some of her bovine endownments.\r\rShe takes a moment before she comes down from her high. 'Mmm... I'm just going to hang out here for a bit. Feel free to take the bottle from the machine. It's really fresh~' She gives you a wink, rubbing her naked breasts as a bit more milk rushes through the tubes.", true);
hrs = 2;
doSexP(2);
item1 = 214;
doEnd();
} else {
if (malonRep == 2){
outputMainText("O-Oh, umm...' Her hands blindly wanders along the rail for her yellow shawl, picking it up and futily attempting to cover her large chest with it.\r\r'I-I just got so full that I, umm...' Her eyes glance from side to side. 'I-I know it's very much like a cow, but with all the work around here and how long it takes to do it manually...' Sadness fills her face at having been caught, despite what you said before. 'D-Don't worry, I'll clean up now...'\r\rHer ears drooping, her tail pushing against her dress trying to hide between her legs, she pulls the cups from her long nipples and lets the excess milk dribble off onto the floor. Turning away and trying to avoid any eyecontact, she wipes herself down with the yellow shawl and pulls up her shirt. She looks over her shoulder, her eyes to the ground, and says meekly, 'Sorry...', before heading out the other end of the building, leaving you to head back to Softlik.", false);
hrs = 2;
doEnd();
} else {
if ((((malonRep == 0)) || ((malonRep == 1)))){
if (malonRep == 0){
outputMainText("\r\r'Uhh... umm...' Her hands blindly wanders along the rail for her yellow shawl, picking it up and futily attempting to cover her large chest with it. 'Who-Who're you? Please, please don't tell anyone I've been in here!", false);
};
if (malonRep == 1){
outputMainText("\r\r'Oh, whew...' She puts a hand to her chest. 'It's just you. I-I'm not exactly supposed to be here, but, well, I'm sure you can see the benefits...' She stands there awkwardly, the machine still sucking milk from her long nipples. 'You... You won't tell anyone, will you?'", false);
};
viewButtonOutline(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0);
viewButtonText(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0);
buttonWrite(5, "Tell");
buttonWrite(7, "Don't Tell");
doListen = function ():void{
if (buttonChoice == 5){
outputMainText("With tears welling up in her eyes, she rips away from the cups, letting them pop from her nipples with a milky flood. She turns and runs the other way, her tits bouncing from side to side and milk splashing across the walls as she goes, until she disappears out another door, leaving you with nothing.", true);
stats(0, -3, 0, 0);
malonRep = -1;
hrs = 2;
doEnd();
};
if (buttonChoice == 7){
if (malonRep == 0){
outputMainText("'Ahh, thank you so much!' She looks like she wants to hug you, but she's a bit tethered at the moment... and half naked.\r\rShe begins to gather herself, trying to turn away as she removes the milk-cups. You get a short flash of her over-ample chest before she pulls her shirt back into position, rubbing her nipples so they don't show through as well and dabbing the resulting blotch with her shawl.\r\r'M-My name is Malon. I've been this way most of my life... As a child, I always loved animals. A little too much, you could say... I liked the cows so much that I wanted to be like them. And so, I took one of their DairE Pills... To cut a long story short, I was happy with the results at first, becoming more like my bovine friends. Until eventually I grew up and realized my predicament. And, well, ever since then, I've been like this...'\r\rShe shuffles uncomfortably in position for a bit, not quite sure what to say. She glances from side to side before deciding to step over to the milk machine, grabbing a bottle that was freshly made. Very freshly.\r\r'I-I don't know how to thank you for not ruining one of the few pleasures of my life, but at least take this' She hands you the bottle as she bows her head.\r\rIn an instant, she turns and hurries out of the barn, her long tail squeezing against her backside and outlining her butt even more.", true);
malonRep = 1;
doSexP(20);
stats(0, 1, 0, 0);
hrs = 2;
item1 = 214;
doEnd();
};
if (malonRep == 1){
outputMainText("'Hehe, thanks. Just a bit more to go...' Her eyelids droop as her body shudders, the tail flicking wildly while the milk flow stutters with a strong burst. She lets out a low 'moo' as she comes, at least partly enjoying some of her bovine endownments.\r\rShe takes a moment before she comes down from her high. 'Mmm... I'm just going to hang out here for a bit. Feel free to take the bottle from the machine. It's really fresh~' She gives you a wink, rubbing her naked breasts as a bit more milk rushes through the tubes.", true);
hrs = 2;
doSexP(5);
item1 = 214;
stats(0, 1, 0, 0);
doEnd();
};
};
};
};
};
};
};
};
if (buttonChoice == 5){
if (malonRep < 1){
outputMainText("The woman doesn't see you as you approach, her eyes closed as she hums pleasantly to herself. You pull up a bucket and a nearby stool, sliding it beneathe the tubes of the milking cups.\r\r'Eep!' She cries out as you interrupt her milking by pulling off the cups. She quickly settles down with a heavy blush on her face as you wrap your hands around her 6-inch long nipples, wringing down their lengths with gentle tugs, oscillating one after the other. Unable to resist, her breasts weighing her down and your hands keeping it that way, she rests upon the guardrail and waits for you to finish, her large ears drooping in embarassment.\r\rEvery few squirts from her tits, the fluid splashing against the metallic bucket, she lets out a gasp as her large rear twitches, her long bristly tipped tail jerking above. After a few minutes of gentle milking, the flow begins to increase, the milk spraying everywhere with each tug. She clenches her eyes shut as her face burns red. Her whole body shudders, causing her rump to jiggle and the heavy bags to jounce out of your hands. Her mouth yawns wide to let out a moan of ecstasy, but all that comes out is a long, low 'Moooooooo!'", true);
doNext();
doListen = function ():void{
if (buttonChoice == 6){
outputMainText("She huffs for a few moments, her mind returning to its senses. The realization of her excessively cattle-like behaviour, especially in front of you, embarrasses her immensely. She jerks backward to stand up, a breast swinging out and slapping you in the face with a wet kiss from her nipple, before she turns and runs in the opposite direction. With a kink in her step and her breasts swaying from side to side, she disappears with her tail between her legs, pushing the skirt in to further amplify her endowments.\r\rA bit afraid of what happens next, you decide it best to disappear yourself.", true);
malonRep++;
if (malonRep == 1){
doNext();
doListen = function ():void{
outputMainText((("However, on your way out, you feel a tug on your " + clothesTop()) + ".\r\rYou turn around to see the woman again, covering her chest with the yellow shawl she had left behind.\r\r'Uhh... umm... Th-that was a bit rude of me. I'm sorry... You seem like you were genuinely trying to help.' She fumbles a little as she tries to hold the shawl to her chest with a single arm, managing to let a nipple pop out with a blush before she gets it right. She holds out her free hand to shake yours. 'I'm Malon.'\r\rYou take her hand and shake with the formal introduction.\r\r'I'm... kinda ashamed for being such a... well, cow. Let's just say I liked them too much when I was younger and took some DairE Pills to act like them. And then I wound up being a little too much like them, resulting in some rather... bothersome attributes for a woman like me. Anyways, here. At least you should get something for your efforts.'\r\rShe turns away and adjusts her shirt back into place so she doesn't have to worry about her shawl, though her naked breasts are still visible on either side of her body. Then she picks up the bucket you had used and pours it into one of the bottles meant for the milk of normal cows, handing it to you.\r\r'I-It's not much, but that's all I can offer at the moment...'\r\rAfter you take the milk, she says her goodbyes and tells you she'll be more welcoming from now on, leaving you to head back to Softlik."), true);
stats(1, 2, 1, 2);
doSexP(20);
item1 = 214;
hrs = 2;
doEnd();
};
} else {
stats(1, 1, 1, 1);
doSexP(2);
hrs = 2;
doEnd();
};
};
};
} else {
if (malonRep >= 1){
outputMainText("Malon doesn't see you as you approach, her eyes closed as she hums pleasantly to herself. You pull up a bucket and a nearby stool, sliding it beneathe the tubes of the milking cups.\r\r'Eep!' She cries out as you interrupt her milking by pulling off the cups. She quickly settles down with a heavy blush on her face as she recognies you and your hands wrap around her 6-inch long nipples, wringing down their lengths with gentle tugs, oscillating one after the other. With a small smile, though still a slight blush, she allows you to take care of her milk for her.\r\rEvery few squirts from her tits, the fluid splashing against the metallic bucket, she lets out a gasp as her large rear twitches, her long bristly tipped tail jerking above. After a few minutes of gentle milking, the flow begins to increase, the milk spraying everywhere with each tug. She clenches her eyes shut as her face burns red. Her whole body shudders, causing her rump to jiggle and the heavy bags to jounce out of your hands. Her mouth yawns wide to let out a moan of ecstasy, but all that comes out is a long, low 'Moooooooo!'\r\rShe takes a few moments to come down from her climax, heaving slightly, her breasts bobbing up and down. Then she leans over the rail, her tits squirting milk across your lap, as she kisses you on the forehead.\r\r'Thanks for that', she whispers. 'Feel free to take a bottle and fill it for your kind efforts.'\r\rShe dozes off a little on the rail, her tail flicking back and forth contently as she reflects on her orgasm, her nipples dripping into the hay on the ground.\r\rNot wanting to disrupt her pleasant thoughts, you take a bottle of her milk and leave.", true);
stats(1, 1, 1, 0);
item1 = 214;
hrs = 2;
if (malonRep == 1){
doNext();
doListen = function ():void{
outputMainText((("You don't get far, however, as you feel a tug at your " + clothesTop()) + " from behind.\r\rYou turn to see Malon huffing a little, her shirt covered with milk, as she had ran to catch up with you.\r\r'Umm... I... I just wanted to thank you for being so kind to me... Most of the people that work on the farm or visit regard me as being a nuisance or a joke. I mean, I still love the animals so much that I'll never want to leave, but they often regard me like one of them. And, well... When I let out a moo like that, just like a cow, I... I can't help but think that they're right. I'm nothing but a big fat cow...'\r\rHer head hangs low, her bovine ears drooping in shame.\r\r\rDo you want to tell her that she shouldn't act like a cow and try to avoid mooing, or that she should accept her cow-like qualities?"), true);
viewButtonOutline(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0);
viewButtonText(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0);
buttonWrite(5, "Don't Moo");
buttonWrite(7, "Moo");
doListen = function ():void{
if (buttonChoice == 5){
outputMainText("You nod and tell her that it'd probably be best if she tried to not act like a cow to the best of her abilities. Her head still hangs, but she nods in return, accepting her condition as a problem. She reaches out, giving you a small hug, then turns to walk back to the farm. Her tail hangs between her legs, trying to tuck itself between her legs to prevent anybody from noticing, altouth the effort merely shows off her large rump even more...", true);
stats(0, 2, 0, -2);
doSexP(5);
malonRep = 2;
doEnd();
};
if (buttonChoice == 7){
outputMainText((("You smile and pat her on the head, telling her that she shouldn't be ashamed of being a cow. There's a lot of races out there that are like other animals, so she's more like a new race on her own.\r\rHearing your uplifting words, her head rises back up with a big, goofy smile, her ears nearly flapping. 'M-Mooo?'\r\rYou nod in acceptance.\r\rShe giggles loudly, lunging out at you with her arms stretched wide and plowing you to the ground under her massive soft tits in a great big hug. She nuzzles your " + boobDesc()) + " chest a little, enjoying your presence, before lifting herself with milky drops spilling from her shirt onto you. Not caring in the slightest, however, she turns around and skips back to the farm, her chest bouncing immensely while her tail flails about happily behind her.\r\r\rAs you come to a stand, however, something drops from your body, having been intentionally left behind during her attack..."), true);
stats(0, 1, 0, 2);
doSexP(25);
malonRep = 3;
itemAdd(215);
doEnd();
};
};
};
} else {
doEnd();
};
};
};
};
if (buttonChoice == 7){
if (malonRep < 1){
outputMainText("You sneak up behind her, careful to not let her notice your movement as she hums pleasantly to herself. Before she can react, you flip up her long skirt and expose her naked loins. Her ass is large and her hips protrude from her sides, looking much like an actual cow. Her feminine sex is large and plump, almost animalistic in its size and absolute lewdness, with her inner labia bulging past her thick outer ones, gaping slightly with arousal. Tiny drops of dew speckle the lips, already engorged and aroused from the milking.\r\rShe lets out a cry of surprise as you inspect her naked rear. However, her heavy chest weighs her down and you pull her narrow tail to make sure she can't stand.", true);
if (cockTotal > 0){
if ((cockSize * cockSizeMod) <= eVagLimit(56)){
outputMainText(((" She shrieks in terror as you plunge your " + cockDesc()) + " cock into her hungry sex.\r\r'No, don't!' She cries out in fear. 'Somebody help!'\r\rNobody hears her over the machine that continues to pump away at her breasts. She whines and mewls as you churn her insides, pumping in tune to the machine. Her body defies her and begins to quiver around your cock, a gush of milk stuttering through the tubes. Her mouth opens wide to shout one last time but all that comes out is a long 'MOOOOOO!'"), false);
};
if ((cockSize * cockSizeMod) > eVagLimit(56)){
outputMainText(((" She shrieks in terror as you ram your " + cockDesc()) + " cock against her fat lips. Yet, despite her rather pronounced size, you're still far too large for her. Instead, you slide your cock between her thighs, running it through the cleft of her pussy and grinding it across her stiff clit until your cock pushes against the other side of the long skirt, wedging it between her hanging breasts until you're literally tit-fucking her from behind.\r\r'No, don't!' She cries out in fear and bewilderment.\r\rHowever, the shouts of dissension quickly die down as you thrust your cock back and forth across her clit and through her cleavage, pumping in tune to the machine. The vibrations reverberate through her chest and connect to the sensations from her clit, making her whole body begin to quiver.\r\rA moment later, her mouth yawns wide to either shout or moan, but what comes out is nothing but a loud 'Moooooo!'"), false);
};
doNext();
doListen = function ():void{
outputMainText("Before you can come yourself, the loud bovine expression makes the girl jump with embarassment, her tail slipping from your hand and your cock sliding out from between her legs as she turns to run. The milking cups pop from her long nipples, flinging milk everywhere as she runs away, her large breasts swinging from side to side and her skirt a mess.", true);
if ((cockSize * cockSizeMod) <= eVagLimit(56)){
outputMainText((("\r\rObviously having thoroughly terrified the girl, you turn the opposite direction to make a quick getaway yourself, your cock hard in your " + clothesBottom()) + "..."), false);
malonRep = -1;
};
if ((cockSize * cockSizeMod) > eVagLimit(56)){
outputMainText("\r\rYou're not quite sure if it was because of your actions that frightened her so, or her own reaction to them... Either way, you think it best to not dawdle, despite your cock still being hard...", false);
};
stats(0, -3, 2, 0);
doSexP(5);
doLust(30);
hrs = 2;
doEnd();
};
};
if (cockTotal < 1){
outputMainText(" She gasps loudly as you fall to your knees and dive your face into her plush groin.\r\r'No, don't!' She whines as you nibble her fat clit and lick through her folds.\r\rHowever, the shouts of dissension quickly die down as your tongue works its way into her supple hole. Muffled whines still escape her lips every now and again, but as the machine works at her breasts in tune to your devouring of her sex, her wide hips soon begin to sway in harmony.\r\rQuite soon, you hear the machine stutter on a sudden increase in her flow. A second later, wet ecstasy gushes around your face and slimes down to your chin, her whole body quivering around you, while a low and loud 'Mooooo!' fills the air...", true);
doNext();
doListen = function ():void{
outputMainText("As you pull your face from her cunt, you find yourself temporarily wedged between her cheeks as she abruptly stands. With a whimper and her ears drooping in embarassment, she yanks herself from the milker and runs away. With a kink in her step and her breasts swaying from side to side, she disappears with her tail between her legs, pushing the skirt in until it blotches with her feminine mess.\r\rNot quite sure what she was thinking, you decide it best to disappear yourself.", true);
stats(0, -1, 1, 0);
doSexP(5);
doLust((lib - ment));
hrs = 2;
doEnd();
};
};
};
if ((((malonRep == 1)) || ((malonRep == 2)))){
outputMainText("You sneak up behind her, careful to not let her notice your movement as she hums pleasantly to herself. Before she can react, you flip up her long skirt and expose her naked loins. Her ass is large and her hips protrude from her sides, looking much like an actual cow. Her feminine sex is large and plump, almost animalistic in its size and absolute lewdness, with her inner labia bulging past her thick outer ones, gaping slightly with arousal. Tiny drops of dew speckle the lips, already engorged and aroused from the milking.\r\rShe lets out a cry of surprise as you inspect her naked rear. However, her heavy chest weighs her down and you grab her tail playfully to keep her down.", true);
if (cockTotal > 0){
if ((cockSize * cockSizeMod) <= eVagLimit(56)){
outputMainText(((" She shrieks in terror as you plunge your " + cockDesc()) + " cock into her hungry sex.\r\r'No, don't!' She cries out in fear. However, she quickly recognizes you and begins to whine. 'Please, not like this!'\r\rYou ignore her pleas and continue anyways. She whines and mewls as you churn her insides, pumping in tune to the machine. Her body soon reacts and begins to quiver around your cock, a gush of milk stuttering through the tubes. Her mouth opens wide to shout one last time but all that comes out is a long 'MOOOOOO!'"), false);
};
if ((cockSize * cockSizeMod) > eVagLimit(56)){
outputMainText(((" She shrieks in terror as you ram your " + cockDesc()) + " cock against her fat lips. Yet, despite her rather pronounced size, you're still far too large for her. Instead, you slide your cock between her thighs, running it through the cleft of her pussy and grinding it across her stiff clit until your cock pushes against the other side of the long skirt, wedging it between her hanging breasts until you're literally tit-fucking her from behind.\r\r'No, don't!' She cries out in fear and bewilderment. However, she quickly recognizes you and bites her lip; not entirely happy with the situation but not fighting much more either.\r\rYou thrust your cock back and forth across her clit and through her cleavage, pumping in tune to the machine. The vibrations reverberate through her chest and connect to the sensations from her clit, making her whole body begin to quiver.\r\rA moment later, her mouth yawns wide to either shout or moan, but what comes out is nothing but a loud 'Moooooo!'"), false);
};
doNext();
doListen = function ():void{
outputMainText("Before you can come yourself, the loud bovine expression makes the girl jump with embarassment, her tail slipping from your hand and your cock sliding out from between her legs as she turns and stands. The milking cups pop from her long nipples, flinging milk everywhere as she turns to face you.\r\r'P-Please! I don't want to be that kind of girl!' She fretfully tries to cover her naked, milky chest with her shawl before turning to run away in silence.", true);
outputMainText("\r\rThe way she said it didn't seem to regard the sexual aspect of what just happened... Unsure of what to do, you turn and head away from the farm, your cock even harder than before...", false);
stats(0, -1, 1, 0);
doSexP(5);
doLust(20);
hrs = 2;
doEnd();
};
};
if (cockTotal < 1){
outputMainText(" She gasps loudly as you fall to your knees and dive your face into her plush groin.\r\r'No, don't!' She whines as you nibble her fat clit and lick through her folds.\r\rHowever, the shouts of dissension quickly die down as your tongue works its way into her supple hole. Muffled whines still escape her lips every now and again, but as the machine works at her breasts in tune to your devouring of her sex, her wide hips soon begin to sway in harmony.\r\rQuite soon, you hear the machine stutter on a sudden increase in her flow. A second later, wet ecstasy gushes around your face and slimes down to your chin, her whole body quivering around you, while a low and loud 'Mooooo!' fills the air...", true);
doNext();
doListen = function ():void{
outputMainText("As you pull your face from her cunt, you find yourself temporarily wedged between her cheeks as she abruptly stands. With a whimper and her ears drooping in embarassment, she yanks herself from the milker and turns towards you.\r\r'P-Please! I don't want to be that kind of girl!' She fretfully tries to cover her naked, milky chest with her shawl before turning to run away in silence, her tail pushing the skirt between her legs in until it blotches with her feminine mess.\r\rThe way she said it didn't seem to regard the sexual aspect of what just happened... Unsure of what to do, you turn and head away from the farm.", true);
stats(0, -1, 1, 0);
doSexP(5);
doLust((lib - ment));
hrs = 2;
doEnd();
};
};
};
if (malonRep == 3){
outputMainText("You sneak up behind her, careful to not let her notice your movement as she hums pleasantly to herself. Before she can react, you flip up her long skirt and expose her naked loins. Her ass is large and her hips protrude from her sides, looking much like an actual cow. Her feminine sex is large and plump, almost animalistic in its size and absolute lewdness, with her inner labia bulging past her thick outer ones, gaping slightly with arousal. Tiny drops of dew speckle the lips, already engorged and aroused from the milking.\r\rShe lets out a cry of surprise as you inspect her naked rear. However, her heavy chest weighs her down and you grab her tail playfully to keep her down.", true);
if (cockTotal > 0){
if ((cockSize * cockSizeMod) <= eVagLimit(56)){
outputMainText(((" She shrieks as you plunge your " + cockDesc()) + " cock into her hungry sex.\r\r'No, don't!' She cries out in fear. However, she quickly recognizes you and her head descends behind her shoulders. 'A-Are you sure?' She looks at you with complete seriousness.\r\rYou nod with a smile.\r\r'O-Okay!' She forces a smile back, then braces herself against the guardrail.\r\rShe quickly begins to push back against your hips, sucking in the length of your cock as her plump ass presses against you. She shivers in ecstasy as you fill her, the machine pleasuring her tits."), false);
if (percent() <= 20){
malonRep = 4;
malonPreg = 0;
};
};
if ((cockSize * cockSizeMod) > eVagLimit(56)){
outputMainText(((" She shrieks as you ram your " + cockDesc()) + " cock against her fat lips. Yet, despite her rather pronounced size, you're still far too large for her. Instead, you slide your cock between her thighs, running it through the cleft of her pussy and grinding it across her stiff clit until your cock pushes against the other side of the long skirt, wedging it between her hanging breasts until you're literally tit-fucking her from behind.\r\r'No, don't!' She cries out in fear. However, she quickly recognizes you and her head descends behind her shoulders. 'A-Are you sure?' She looks at you with complete seriousness.\r\rYou nod with a smile.\r\r'O-Okay!' She forces a smile back, then braces herself against the guardrail.\r\rShe leans backward along your length, running her clit across your shaft until her plump ass presses against you. She shivers in ecstasy from the sensitive contact and the machine still pleasuring her tits."), false);
};
outputMainText("\r\rYou thrust against her wide hips again and again, in tune to the machine. Her breasts sway back and forth as you pound her, milk spitting through the tubes as she comes closer and closer to climax. You lean forward, hugging her tight as she begins to shudder. Her thighs clench and her hands wring the rail. Her mouth yawns widely. With some slight hestitation, she lets out a soft 'M-Mooo!'. Then, as your cock begins to gush with cum, her mouth yawns wider as her eyes go wide, completely ignoring her inhibitions.\r\r'MOOOOOOOOO!'", false);
cumAmount();
doNext();
doListen = function ():void{
outputMainText("You both stand there for a few moments, gasping for breath. She slumps backward, pinning you against the wall behind you and she turns to stroke your face.\r\r'Th-Thank you so much!' Her lips reach out and softly kisses your own...\r\r\rThoroughly satisfied, the two of you spend the next hour cleaning up all the cum and milk you left everywhere... But you're quite happy nevertheless.\r\rEventually you kiss her goodbye and leave her to quickly return to her work as a farm-hand before she's caught with her little pleasure.", true);
stats(0, 2, 2, 2);
doLust((-(sen) * 2));
doSexP(20);
if (malonRep == 3){
malonRep = 5;
};
hrs = 3;
doEnd();
};
};
if (cockTotal < 1){
outputMainText(" She gasps loudly as you fall to your knees and dive your face into her plush groin.\r\r'No, don't!' She cries out in fear. However, she quickly turns and recognizes you, her head descending behind her shoulders. 'A-Are you sure?' She looks at you with complete seriousness.\r\rYou nod with a smile.\r\r'O-Okay!' She forces a smile back, then braces herself against the guardrail.\r\rShe pushes her plump rump towards your face, letting you nibble her fat clit and lick through her folds. Her hips rock beack and forth while your tongue works its way into her supple hole, her arousal drizzling down your face. Soft moans escape her lips every now and again, and increase as the machine works at her breasts in tune to your devouring of her sex, her breasts beginning to sway in harmony.\r\rQuite soon, you hear the machine stutter on a sudden increase in her flow. A second later, wet ecstasy gushes around your face and slimes down to your chin, her whole body quivering around you. Her mouth yawns widely. With some slight hestitation, she lets out a soft 'M-Mooo!'. Then, as you bite down on her orgasming clit, her mouth yawns wider as her eyes go wide, completely ignoring her inhibitions.\r\r'MOOOOOOOOO!'", true);
doNext();
doListen = function ():void{
outputMainText("As you pull your face from her cunt, her legs give out as she slumps back into you, pinning you between her fat pussy and the wall behind. Her ears twitching at the sides of her head, she stands up and turns to you, allowing the cups to pop from her nipples and milk cascade down your body. She kneels down beside you, hugging her tits to your chest.\r\r'Th-thank you!' She presses her lips to your own, kissing you through her own slickness that covers your face.\r\rThe two of your relax in each others arms. However, eventually she has to get back to her duties before she is missed. She pulls her skirt back down and her shirt back up, giving you a wink as both pieces blotch a little from various fluids. She turns away and heads out with some extra sway in her step and her tail flicking high.", true);
stats(0, 2, 2, 2);
doSexP(20);
if (malonRep == 3){
malonRep = 5;
};
doLust(Math.floor((lib / 2)));
hrs = 2;
doEnd();
};
};
};
if (malonRep >= 4){
outputMainText("You sneak up behind her, careful to not let her notice your movement as she hums pleasantly to herself. Before she can react, you flip up her long skirt and expose her naked loins. Her ass is large and her hips protrude from her sides, looking much like an actual cow. Her feminine sex is large and plump, almost animalistic in its size and absolute lewdness, with her inner labia bulging past her thick outer ones, gaping slightly with arousal. Tiny drops of dew speckle the lips, already engorged and aroused from the milking.\r\rShe lets out a cry of surprise as you inspect her naked rear. However, her heavy chest weighs her down and you grab her tail playfully to keep her down.", true);
if (cockTotal > 0){
if ((cockSize * cockSizeMod) <= eVagLimit(56)){
outputMainText(((" She shrieks as you plunge your " + cockDesc()) + " cock into her hungry sex. She immediately turns to spot her assailent and her face calms as she begins to smile.\r\r'Don't frighten me like that!' She sticks out her tongue and kicks you with a foot.\r\rShe quickly begins to push back against your hips, sucking in the length of your cock as her plump ass presses against you. She shivers in ecstasy as you fill her, the machine pleasuring her tits."), false);
if ((((malonRep == 5)) && ((percent() <= 20)))){
malonRep = 4;
malonPreg = 0;
};
};
if ((cockSize * cockSizeMod) > eVagLimit(56)){
outputMainText(((" She shrieks as you ram your " + cockDesc()) + " cock against her fat lips. Yet, despite her rather pronounced size, you're still far too large for her. Instead, you slide your cock between her thighs, running it through the cleft of her pussy and grinding it across her stiff clit until your cock pushes against the other side of the long skirt,"), false);
if (malonRep == 4){
if (malonPreg < 54){
outputMainText(" wedging it between her hanging breasts until you're literally tit-fucking her from behind. She turns to spot who could possibly plow through her cleavage like that and isn't terribly surprised to see you.\r\r'Don't frighten me like that!' She sticks out her tongue and kicks you with a foot.\r\rShe leans backward along your length, running her clit across your shaft until her plump ass presses against you. She shivers in ecstasy from the sensitive contact and the machine still pleasuring her tits.", false);
};
if ((((malonPreg >= 54)) && ((malonPreg < 72)))){
outputMainText(" curving around her pregnant belly until it wedges between her hanging breasts, literally tit-fucking her from behind. She turns to spot who could possibly plow through her cleavage like that and isn't terribly surprised to see you.\r\r'Don't frighten me like that!' She sticks out her tongue and kicks you with a foot.\r\rShe leans backward along your length, running her clit across your shaft until her plump ass presses against you. She shivers in ecstasy from the sensitive contact and the machine still pleasuring her tits.", false);
};
if ((((malonPreg >= 72)) && ((malonPreg < 108)))){
outputMainText(" diverting down towards the ground from her massive belly until your ramming into the hay. She turns to spot who could possibly hump her belly likse that and isn't terribly surprised.\r\r'Don't frighten me like that!' She sticks out her tongue and kicks you with a foot.\r\rShe leans backward along your length, running her clit across your shaft until her plump ass presses against you. She shivers in ecstasy from the sensitive contact and the machine still pleasuring her tits.", false);
};
if (malonPreg >= 108){
outputMainText(" diverting down towards the ground from her massive belly until you're lifting her slightly as your cock wedges between the belly and the hay on the floor. She turns to spot who could possibly hump her belly likse that and isn't terribly surprised.\r\r'Don't frighten me like that!' She sticks out her tongue and kicks you with a foot.\r\rShe leans backward along your length, running her clit across your shaft until her plump ass presses against you. She shivers in ecstasy from the sensitive contact and the machine still pleasuring her tits.", false);
};
} else {
outputMainText(" wedging it between her hanging breasts until you're literally tit-fucking her from behind. She turns to spot who could possibly plow through her cleavage like that and isn't terribly surprised to see you.\r\r'Don't frighten me like that!' She sticks out her tongue and kicks you with a foot.\r\rShe leans backward along your length, running her clit across your shaft until her plump ass presses against you. She shivers in ecstasy from the sensitive contact and the machine still pleasuring her tits.", false);
};
};
outputMainText("\r\rYou thrust against her wide hips again and again, in tune to the machine. Her breasts sway back and forth as you pound her, milk spitting through the tubes as she comes closer and closer to climax. You lean forward,", false);
if ((((malonRep == 3)) && ((malonPreg >= 54)))){
outputMainText(" hugging her and her pregnant belly ", false);
} else {
outputMainText(" hugging her ", false);
};
outputMainText("tight as she begins to shudder. Her thighs clench and her hands wring the rail, her mouth proudly yawning wide with a loud 'Moooooooo!', squeezing your cock until you gush with cum.", false);
cumAmount();
doNext();
doListen = function ():void{
outputMainText("You both stand there for a few moments, gasping for breath. She slumps backward, pinning you against the wall behind you and she turns to stroke your face.\r\r'Thank you~' She kisses you...\r\r\rThoroughly satisfied, the two of you spend the next hour cleaning up all the cum and milk you left everywhere... But you're quite happy nevertheless.\r\rEventually you kiss her goodbye and leave her to quickly return to her work as a farm-hand before she's caught with her little pleasure.", true);
stats(0, 2, 2, 2);
doSexP(2);
doLust((-(sen) * 2));
hrs = 3;
doEnd();
};
};
if (cockTotal < 1){
outputMainText(" She gasps loudly as you fall to your knees and dive your face into her plush groin. She turns to see who it is and giggles.\r\r'Don't frighten me like that!' She presses back against your face as punishment, stuffing you into the cheeks of her plump rump.\r\rThe 'punishment' quickly subsides as you nibble her fat clit and lick through her folds. Her hips rock beack and forth while your tongue works its way into her supple hole, her arousal drizzling down your face. Soft moans escape her lips every now and again, and increase as the machine works at her breasts in tune to your devouring of her sex, her breasts beginning to sway in harmony.\r\rQuite soon, you hear the machine stutter on a sudden increase in her flow. A second later, wet ecstasy gushes around your face and slimes down to your chin, her whole body quivering around you, while a low and loud 'Mooooo!' fills the air.", true);
doNext();
doListen = function ():void{
outputMainText("As you pull your face from her cunt, her legs give out as she slumps back into you, pinning you between her fat pussy and the wall behind. Her ears twitching at the sides of her head, she stands up and turns to you, allowing the cups to pop from her nipples and milk cascade down your body. She kneels down beside you, kissing you through her own slickness that covers your face.\r\r'Thank you~'\r\rHaving to get back to her duties, however, she pulls her skirt back down and her shirt back up, giving you a wink as both pieces blotch a little from various fluids. She turns away and heads out with some extra sway in her step and her tail flicking high.", true);
stats(0, 2, 2, 2);
doSexP(2);
doLust(Math.floor((lib / 2)));
hrs = 2;
doEnd();
};
};
};
};
if (buttonChoice == 10){
outputMainText("You turn around and head back to Softlik, deciding it best to leave her to her privacy.", true);
hrs = 1;
doEnd();
};
};
};
if (buttonChoice == 7){
outputMainText("A little too dangerous, and probably illegal with the whole trespassing thing, you turn around and walk away.", true);
hrs = 1;
doEnd();
};
};
} else {
if (malonRep > 0){
if ((((malonRep == 1)) && ((((milkEngorgementLevel > 0)) || ((udderEngorgementLevel > 0)))))){
outputMainText((("Malon is working outside as you approach the farm once again. She spots the blotches in your " + clothesTop()) + " and shouts to the other workers that she's got some business she needs to take care of. The others roll their eyes, well used to the excuse thanks to her 'condition'. Nevertheless, she smiles as she heads towards you.\r\r'Need some help?' She winks and sticks out her tongue as she looks down at your moistness."), true);
buttonConfirm();
doListen = function ():void{
if (buttonChoice == 6){
outputMainText("She nods with a soft smile, taking you by the hand. Leading you into the main farmhouse, she's quick to look around corners and check hallways, as if she were smuggling you into the building. Eventually, she brings you upstairs to a bedroom.\r\rIn the center of the room sits a good-sized bed, with downy blankets and soft matress. However, the sheets seem to be coated with some sort of wax, making them shiny and most likely waterproof. In a corner beside the bed stands a stack of several buckets, all clean and ready to be used. Malon leads you towards her bed, motioning for you to sit.\r\r'Just relax and I'll take care of it for you.' She speaks sweetly.", true);
doNext();
doListen = function ():void{
outputMainText((("\r\rYou sit down upon the soft bed, sinking in slightly from the extra cushioning. She then grabs a bucket from the stack and pulls a short stool over to your knees.\r\r'Your " + clothesTop()) + ", please.' She motions to it being in the way."), true);
if (ment > lib){
outputMainText((((("\r\rWith a heavy blush in your cheeks, you nod back, pulling your " + clothesTop()) + " ") + pullUD(1)) + ", slowly exposing your "), false);
} else {
if (ment > (lib - 10)){
outputMainText((((("\r\rWith a slight blush in your cheeks, you nod back, pulling your " + clothesTop()) + " ") + pullUD(1)) + ", exposing your "), false);
} else {
outputMainText((((("\r\rWith a quick nod and no hesitation, you pull " + pullUD(1)) + " your ") + clothesTop()) + ", exposing your "), false);
};
};
if ((((((milkEngorgementLevel > 0)) && ((udderEngorgementLevel > 0)))) && ((udders == true)))){
outputMainText((((boobDesc() + " leaky breasts and letting your ") + udderDesc()) + " udder spill into your lap."), false);
} else {
if (milkEngorgementLevel > 0){
outputMainText((boobDesc() + " leaky breasts."), false);
} else {
if ((((udderEngorgementLevel > 0)) && ((udders == true)))){
outputMainText((udderDesc() + " udder, your teats dripping into your lap."), false);
};
};
};
outputMainText(" Malon then slips her hands into her cleavage, quickly warming her hands, before reaching out to your ", false);
if (milkEngorgementLevel > 0){
outputMainText((nipDesc() + " nipples"), false);
} else {
if ((((udderEngorgementLevel > 0)) && ((udders == true)))){
outputMainText((teatDesc() + " teats"), false);
};
};
outputMainText(" and gently pinches them within her grasp. Expertly, she bends you forward slightly and aims towards the bucket. Within just a few tugs, you're already squirting milk into the bucket, the pleasant feeling of warmth overcoming you and intensified by her caring massage.\r\rThe room quickly fills with the sound of your squirts hitting the metallic bucket, in a gentle rhythm. She begins to hum a tune (that, for some reason, you'd think horses would love), when redness tinges her cheeks. 'Oh-Oh my...'\r\rHer shirt blotches quickly, her own milk beginning to drip into the bucket with yours. 'Uh-umm... I think doing this made my breasts think it's that time... Y-You don't mind, do you?' She plucks at her shirt to indicate what she means.", false);
viewButtonOutline(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0);
viewButtonText(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0);
buttonWrite(5, "Help her");
buttonWrite(7, "Let her");
doListen = function ():void{
var getMilk:int;
if (buttonChoice == 5){
if ((((milkEngorgementLevel > 0)) && ((udderEngorgementLevel > 0)))){
getMilk = (milkAmount(1) + milkAmount(2));
} else {
if (milkEngorgementLevel > 0){
getMilk = milkAmount(1);
} else {
if (udderEngorgementLevel > 0){
getMilk = milkAmount(2);
};
};
};
nipplePlay = (nipplePlay + 12);
if (udders == true){
udderPlay = (udderPlay + 12);
};
outputMainText("You shake your head, telling her it's not alright.\r\rA bit defeated, the redness in her cheeks intensifies as she attempts to continue milking you while she drips away. However, you tell her to stop with that as well.\r\rCompletely confused, her eyes quickly go wide as you reach out for her shirt and pull it up. When your hands gently caress her 6-inch long nipples, aiming them towards the bucket and squirting out some of her own milk, the blush in her face recedes as a soft smile grows on her face, cheerfully accepting your efforts.\r\rFacing each other, with your hands on each other's milky bits, the two of you tug and pull until each other sprays into the bucket with a gasp. More and more milk spills from you both, though the moans echoing between you two would suggest something more as they rise in volume. Until, eventually, Malon's tits gush into the bucket as her body quivers and her mouth yawns wide to cry out in ecstacy, only to let out a long 'Mooooooo!'", true);
doNext();
doListen = function ():void{
outputMainText("Her hands let go of you, springing up to cover her mouth in fright. Her ears droop in shame and tears begin to well up in her eyes as she buries the rest of her face behind her hands. She jumps up from her stool, milk still spraying from her nipples and drenching you slightly, before she runs out of the room in utter embarassment, her breasts swinging from side to side and painting the walls of the house with more milk.\r\rUnsure of what just happened, you clean yourself off and finish the last of your own lactation, neatly putting the buckets aside. You attempt to look for her, but with a farm so big you have no idea where to start. With a sigh, you head back to Softlik.", true);
doNext();
doListen = function ():void{
outputMainText((("You don't get far, however, as you feel a tug at your " + clothesTop()) + " from behind.\r\rYou turn to see Malon huffing a little, her shirt covered with milk after having been hastily put on having ran to catch up with you. She wipes her eyes with a sniffle.\r\r'Umm... I... I'm so sorry for running out on you like that. I just wanted to thank you for being so kind to me, though... Most of the people that work on the farm or visit regard me as being a nuisance or a joke. I mean, I still love the animals so much that I'll never want to leave, but they often regard me like one of them. And, well... When I let out a moo like that, just like a cow, I... I can't help but think that they're right. I'm nothing but a big fat cow...'\r\rHer head hangs low, another tear dripping from her cheek, her bovine ears drooping in shame.\r\r\rDo you want to tell her that she shouldn't act like a cow and try to avoid mooing, or that she should accept her cow-like qualities?"), true);
viewButtonOutline(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0);
viewButtonText(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0);
buttonWrite(5, "Don't Moo");
buttonWrite(7, "Moo");
doListen = function ():void{
if (buttonChoice == 5){
outputMainText("You nod and tell her that it'd probably be best if she tried to not act like a cow to the best of her abilities. Her head still hangs, but she nods in return, accepting her condition as a problem. She reaches out, giving you a small hug, then turns to walk back to the farm. Her tail hangs between her legs, trying to tuck itself between her legs to prevent anybody from noticing, altouth the effort merely shows off her large rump even more...", true);
stats(0, 2, 0, -2);
doSexP(10);
malonRep = 2;
doEnd();
};
if (buttonChoice == 7){
outputMainText((("You smile and pat her on the head, telling her that she shouldn't be ashamed of being a cow. There's a lot of races out there that are like other animals, so she's actually a whole new race on her own rather than a mere animal.\r\rHearing your uplifting words, her head rises back up with a small smile, her ears twitching hesitantly. 'M-Mooo?'\r\rYou nod in acceptance.\r\rShe giggles cheerfully, lunging out you with her arms stretched wide and plowing you to the ground under her massive soft tits in a great big hug. She nuzzles your " + boobDesc()) + " chest a little, enjoying your presence, before lifting herself with milky drops spilling from her shirt onto you. Not caring in the slightest, however, she turns around and skips back to the farm, her chest bouncing immensely while her tail flails about happily behind her.\r\r\rAs you come to a stand, however, something drops from your body, having been intentionally left behind during her attack..."), true);
stats(0, 1, 0, 2);
doSexP(25);
malonRep = 3;
itemAdd(215);
doEnd();
};
};
};
};
};
if (buttonChoice == 7){
outputMainText("Nodding your head to say it's alright, she pulls her shirt up, exposing her enormous breasts. They rest more comfortably on her knees, with 6-inch long nipples dangling like teats. While one hand works your body, her other reaches around a fleshy mass to grab her own nipple. In a couple seconds, her rhythm quickly matches yours, filling the bucket rapidly.\r\r", true);
if ((((milkEngorgementLevel > 0)) && ((udderEngorgementLevel > 0)))){
getMilk = (milkAmount(1) + milkAmount(2));
} else {
if (milkEngorgementLevel > 0){
getMilk = milkAmount(1);
} else {
if (udderEngorgementLevel > 0){
getMilk = milkAmount(2);
};
};
};
if (getMilk <= 4000){
outputMainText("After filling up two buckets of milk, most of which was Malon's, she pushes them off to the side with a clap.", true);
} else {
if (getMilk <= 18000){
outputMainText("After filling up few buckets of milk, most of which was yours, Malon pushes them off to the side with a sigh.", true);
} else {
if (getMilk <= 35500){
outputMainText("After filling up several buckets of milk, far surpassing Malon's amount, she pushes them off to the side with a tired sigh, stretching her adept fingers.", true);
} else {
if (getMilk > 35500){
outputMainText("After a while, Malon begins to panic. 'Umm... I-I seem to have run out of buckets!' She sloshes the last one from the stack to the side as you still spill with milk. 'I-I'm so sorry! I didn't know it was that bad for you. Here!'\r\rShe takes off her shawl, holding it to your mammaries and waiting for the flow to come to a halt. A few minutes pass before she can remove it, your lactation having ceased and her hands covered in the white stuff. 'Whew... That was close.'\r\rShe wrings her shawl out in a bucket that has yet to overflow before slinging it around her neck again.", true);
};
};
};
};
outputMainText(((" 'There, all done!' She gently pats your " + boobDesc()) + " breasts"), false);
if (udders == true){
outputMainText(((" and your " + udderDesc()) + " milky bag."), false);
};
outputMainText("\r\r'I enjoyed this little milking session between us 'cows'. I hope to do it again with you some time!' She smiles as she pulls her shirt back down, lifting her massive tits a few time to get them to settle within the shirt without her large nipples being so obvious. With a wink, she leans forward, giving you a great view of her deep cleavage as she kisses you on your forehead. Then she takes your hand once more, leading your back out of the farmhouse, saying she can take care of the buckets herself.\r\rWith a wave, you say goodbye and head back to Softlik.", false);
hrs = 3;
doLust(5);
doSexP(2);
stats(0, 1, 1, 1);
doEnd();
};
};
};
} else {
outputMainText("You shake your head, not accepting her assistance. She gives you a soft smile, not offended by the choice. However, as her own shirt begins to blotch, white liquid spilling out and dribbling onto her apron and ground, she blushes a little as she has now found a new reason for her excuse. She pulls her shawl down to cover her huge chest, turning away and scampering off into the main house to take care of business, leaving you to head back to Softlik.", true);
hrs = 1;
doEnd();
};
};
} else {
if ((((malonRep == 3)) && ((((milkEngorgementLevel > 0)) || ((udderEngorgementLevel > 0)))))){
outputMainText((("Malon is working outside as you approach the farm once again. She spots the blotches in your " + clothesTop()) + " and shouts to the other workers that she's got some business she needs to take care of. The others roll their eyes, well used to the excuse thanks to her 'condition'. Nevertheless, she smiles as she heads towards you.\r\r'Need some help?' She winks and sticks out her tongue as she looks down at your moistness."), true);
buttonConfirm();
doListen = function ():void{
if (buttonChoice == 6){
outputMainText("She nods with a soft smile, taking you by the hand. Leading you into the main farmhouse, she's quick to look around corners and check hallways, as if she were smuggling you into the building. Eventually, she brings you upstairs to a bedroom.\r\rIn the center of the room sits a good-sized bed, with downy blankets and soft matress. However, the sheets seem to be coated with some sort of wax, making them shiny and most likely waterproof. In a corner beside the bed stands a stack of several buckets, all clean and ready to be used. Malon leads you towards her bed, motioning for you to sit.\r\r'Just relax and I'll take care of it for you.' She speaks sweetly.", true);
doNext();
doListen = function ():void{
outputMainText((("\r\rYou sit down upon the soft bed, sinking in slightly from the extra cushioning. She then grabs a bucket from the stack and pulls a short stool over to your knees.\r\r'Your " + clothesTop()) + ", please.' She motions to it being in the way."), true);
if (ment > lib){
outputMainText((((("\r\rWith a heavy blush in your cheeks, you nod back, pulling your " + clothesTop()) + " ") + pullUD(1)) + ", slowly exposing your "), false);
} else {
if (ment > (lib - 10)){
outputMainText((((("\r\rWith a slight blush in your cheeks, you nod back, pulling your " + clothesTop()) + " ") + pullUD(1)) + ", exposing your "), false);
} else {
outputMainText((((("\r\rWith a quick nod and no hesitation, you pull " + pullUD(1)) + " your ") + clothesTop()) + ", exposing your "), false);
};
};
if ((((((milkEngorgementLevel > 0)) && ((udderEngorgementLevel > 0)))) && ((udders == true)))){
outputMainText((((boobDesc() + " leaky breasts and letting your ") + udderDesc()) + " udder spill into your lap."), false);
} else {
if (milkEngorgementLevel > 0){
outputMainText((boobDesc() + " leaky breasts."), false);
} else {
if ((((udderEngorgementLevel > 0)) && ((udders == true)))){
outputMainText((udderDesc() + " udder, your teats dripping into your lap."), false);
};
};
};
outputMainText(" Malon then slips her hands into her cleavage, quickly warming her hands, before reaching out to your ", false);
if (milkEngorgementLevel > 0){
outputMainText((nipDesc() + " nipples"), false);
} else {
if ((((udderEngorgementLevel > 0)) && ((udders == true)))){
outputMainText((teatDesc() + " teats"), false);
};
};
outputMainText(" and gently pinches them within her grasp. Expertly, she bends you forward slightly and aims towards the bucket. Within just a few tugs, you're already squirting milk into the bucket, the pleasant feeling of warmth overcoming you and intensified by her caring massage.\r\rThe room quickly fills with the sound of your squirts hitting the metallic bucket, in a gentle rhythm. She begins to hum a tune (that, for some reason, you'd think horses would love), when redness tinges her cheeks. 'Oh-Oh my...'\r\rHer shirt blotches quickly, her own milk beginning to drip into the bucket with yours. 'Uh-umm... I think doing this made my breasts think it's that time... Y-You don't mind, do you?' She plucks at her shirt to indicate what she means.", false);
viewButtonOutline(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0);
viewButtonText(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0);
buttonWrite(5, "Help her");
buttonWrite(7, "Let her");
doListen = function ():void{
var getMilk:int;
if (buttonChoice == 5){
if ((((milkEngorgementLevel > 0)) && ((udderEngorgementLevel > 0)))){
getMilk = (milkAmount(1) + milkAmount(2));
} else {
if (milkEngorgementLevel > 0){
getMilk = milkAmount(1);
} else {
if (udderEngorgementLevel > 0){
getMilk = milkAmount(2);
};
};
};
nipplePlay = (nipplePlay + 12);
if (udders == true){
udderPlay = (udderPlay + 12);
};
outputMainText("You shake your head, telling her it's not alright.\r\rA bit defeated, the redness in her cheeks intensifies as she attempts to continue milking you while she drips away. However, you tell her to stop with that as well.\r\rHer eyes brightening, she quickly realizes your intention as you reach out for her shirt and pull it up. When your hands gently caress her 6-inch long nipples, aiming them towards the bucket and squirting out some of her own milk, the blush in her face recedes as a soft smile grows on her face, cheerfully accepting your efforts.\r\rFacing each other, with your hands on each other's milky bits, the two of you tug and pull until each other sprays into the bucket with a gasp. More and more milk spills from you both, though the moans echoing between you two would suggest something more as they rise in volume. Until, eventually, Malon's tits gush into the bucket as her body quivers and her mouth begins to yawn wide. With some slight hestitation, she lets out a soft 'M-Mooo!'. Then, as you give her breasts a strong, sensual squeeze, her mouth yawns wider as her eyes go wide, completely ignoring her inhibitions.\r\r'MOOOOOOOOO!'", true);
doNext();
doListen = function ():void{
outputMainText((("She collapses forward onto your " + boobDesc()) + " chest, huffing and heaving. After a few moments, her eyelashes flutter as she turns her head towards you with a glimmer in her eye."), true);
viewButtonOutline(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0);
viewButtonText(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0);
buttonWrite(5, "Kiss Her");
buttonWrite(7, "Help Up");
doListen = function ():void{
if (buttonChoice == 5){
outputMainText("Your hand slips behind her head, pulling her face to your own. You press your lips to hers.\r\rWithout any resistance, she returns the favor, hugging your head and kissing you deeply. She pushes you forward, back onto her bed. With fervor, you lift her long purple skirt, revealing her wide, cow-like hips and large, dripping, animalistic nether-region.", true);
if (cockTotal > 0){
outputMainText((((((((((("\r\rFlipping back her long red hair, she grinds down your legs and across the bed to pull " + pullUD(2)) + " your ") + clothesBottom()) + ", letting ") + oneYour(1)) + " ") + cockDesc()) + " cock") + plural(1)) + " flop out. She licks and kisses it ravenously, as though something had come over her. She sucks at the tip, slipping her tongue across and through your urethra and savoring the salty taste of your pre."), false);
if ((cockSize * cockSizeMod) <= eVagLimit(56)){
outputMainText("\r\rIt doesn't take long before she grows too hungry, crawling back up your body, licking your milk up as she goes. Her own breasts dribble over you until it runs off your sides and soaks into the fluffy blanket. Then, she pulls the blankets open, letting you both slip into the water-resistant sheets, where she slides your cock into her supple folds, devouring its entire length.", false);
if (percent() <= 20){
malonRep = 4;
malonPreg = 0;
} else {
malonRep = 5;
};
};
if ((cockSize * cockSizeMod) > eVagLimit(56)){
outputMainText((((((("\r\rHowever, she can easily tell that you're far too large for her. So, instead, she crawls back up your body, licking your\tmilk up as she goes, while her own breasts dribble over you until it runs off your sides and soaks into the fluffy blanket. Then, she pulls the blankets open, letting you both slip into the water-resistant sheets, where she straddles your " + cockDesc()) + " erection") + plural(1)) + ", humping her clit along your length") + plural(1)) + "."), false);
};
outputMainText("\r\rOver and over, she grinds her wide hips. She leans down to kiss you some more, her tongue driving into your mouth. You thrust back in turn, making her moan into your throat.\r\rQuickly, her body begins to quiver once again, milk spraying about beneath the sheets. She keeps her mouth shut at first, but as you begin to gush with cum, she can no longer resist, allowing her mouth stretch wide.\r\r'MOOOOOOO!'", false);
cumAmount();
} else {
if ((((cockTotal < 1)) && ((vagTotal > 0)))){
outputMainText((((((((((((("\r\rFlipping back her long red hair, she grinds down your legs and across the bed to pull " + pullUD(2)) + " your ") + clothesBottom()) + ". Seeing your ") + vulvaDesc()) + " slit") + plural(2)) + ", she dives in and begins devouring your clit") + plural(2)) + ".\r\rIt doesn't take long before she grows too hungry, crawling back up your body, licking your milk up as she goes. Her own breasts dribble over you until it runs off your sides and soaks into the fluffy blanket. Then, she pulls the blankets open, letting you both slip into the water-resistant sheets, where presses her supple folds to your own, letting them kiss erotically.\r\rOver and over, she grinds her wide hips. She leans down to kiss you some more, her tongue driving into your mouth. You thrust back in turn, making her moan into your throat.\r\rQuickly, her body begins to quiver once again, milk spraying about beneath the sheets. She keeps her mouth shut at first, but as you thrust your clit") + plural(2)) + " against hers as you come, she can no longer resist, allowing her mouth stretch wide.\r\r'MOOOOOOO!'"), false);
malonRep = 5;
} else {
outputMainText((((("\r\rFlipping back her long red hair, she grinds down your legs and across the bed to pull " + pullUD(2)) + " your ") + clothesBottom()) + ". Seeing your lack of any genitalia, she kisses your crotch softly several times anyways, before crawling back up your body She licks up your milk up as she goes, while her own breasts dribble over you until it runs off your sides and soaks into the fluffy blanket. Then, she pulls the blankets open, letting you both slip into the water-resistant sheets, where she humps your empty crotch.\r\rOver and over, she grinds her wide hips. She leans down to kiss you some more, her tongue driving into your mouth. You thrust back in turn, making her moan into your throat.\r\rQuickly, her body begins to quiver once again, milk spraying about beneath the sheets. So hot is her body that you can feel yourself climax as well! She keeps her mouth shut at first, but as you thrust back with the phantom orgasm, she can no longer resist, allowing her mouth stretch wide.\r\r'MOOOOOOO!'"), false);
malonRep = 5;
};
};
outputMainText("\r\r\rThe two of you soon pass out beneath the blankets, trapped within the sea of milk and sensual fluids...", false);
doLust((-(sen) * 2));
hrs = 9;
exhaustion = 0;
doNext();
doListen = function ():void{
outputMainText((("Many hours later, you awaken to gentle kissing from your bovine lover. You open your eyes to see Malon's face, a soft smile greeting you and a happy glimmer in her eyes.\r\r'Thank you so much~' She whispers before kissing you once more.\r\rAfter some cuddling, she eventually needs to get back to work. She hugs you again and tells you that she'd love for you to come back any time you can. You hug her back, giving her a sweet goodbye as you squeeze her plush tush, her tail jerking excitedly as she giggles. With another kiss, you head back to Softlik, your " + skinDesc()) + " nice and soft from the extended milk bath."), true);
stats(1, 2, 2, 4);
doSexP(20);
doEnd();
};
};
if (buttonChoice == 7){
outputMainText("You help her back up onto her stool, the last of both of your milk emptying into the final bucket. With a big sigh, she smiles.\r\r'W-Well, I suppose I should get this cleaned up. Thanks for helping me!'\r\rShe leans forward, giving you a great view of her deep cleavage as she kisses you on the forehead. Then she pulls her shirt back up and takes your hand once more, leading your back out of the farmhouse, saying she can take care of the buckets herself.\r\rWith a hug, you say goodbye and head back to Softlik.", true);
stats(1, 1, 0, 2);
doSexP(2);
doEnd();
};
};
};
};
if (buttonChoice == 7){
outputMainText("Nodding your head to say it's alright, she pulls her shirt up, exposing her enormous breasts. They rest more comfortably on her knees, with 6-inch long nipples dangling like teats. While one hand works your body, her other reaches around a fleshy mass to grab her own nipple. In a couple seconds, her rhythm quickly matches yours, filling the bucket rapidly.\r\r", true);
if ((((milkEngorgementLevel > 0)) && ((udderEngorgementLevel > 0)))){
getMilk = (milkAmount(1) + milkAmount(2));
} else {
if (milkEngorgementLevel > 0){
getMilk = milkAmount(1);
} else {
if (udderEngorgementLevel > 0){
getMilk = milkAmount(2);
};
};
};
if (getMilk <= 4000){
outputMainText("After filling up two buckets of milk, most of which was Malon's, she pushes them off to the side with a clap.", true);
} else {
if (getMilk <= 18000){
outputMainText("After filling up few buckets of milk, most of which was yours, Malon pushes them off to the side with a sigh.", true);
} else {
if (getMilk <= 35500){
outputMainText("After filling up several buckets of milk, far surpassing Malon's amount, she pushes them off to the side with a tired sigh, stretching her adept fingers.", true);
} else {
if (getMilk > 35500){
outputMainText("After a while, Malon begins to panic. 'Umm... I-I seem to have run out of buckets!' She sloshes the last one from the stack to the side as you still spill with milk. 'I-I'm so sorry! I didn't know it was that bad for you. Here!'\r\rShe takes off her shawl, holding it to your mammaries and waiting for the flow to come to a halt. A few minutes pass before she can remove it, your lactation having ceased and her hands covered in the white stuff. 'Whew... That was close.'\r\rShe wrings her shawl out in a bucket that has yet to overflow before slinging it around her neck again.", true);
};
};
};
};
outputMainText(((" 'There, all done!' She gently pats your " + boobDesc()) + " breasts"), false);
if (udders == true){
outputMainText(((" and your " + udderDesc()) + " milky bag."), false);
};
outputMainText("\r\r'I enjoyed this little milking session between us 'cows'. I hope to do it again with you some time!' She smiles as she pulls her shirt back down, lifting her massive tits a few time to get them to settle within the shirt without her large nipples being so obvious. With a wink, she leans forward, giving you a great view of her deep cleavage as she kisses you on your forehead. Then she takes your hand once more, leading your back out of the farmhouse, saying she can take care of the buckets herself.\r\rWith a wave, you say goodbye and head back to Softlik.", false);
hrs = 3;
doSexP(2);
doLust(5);
stats(0, 1, 1, 1);
doEnd();
};
};
};
} else {
outputMainText("You shake your head, not accepting her assistance. She gives you a soft smile, not offended by the choice. However, as her own shirt begins to blotch, white liquid spilling out and dribbling onto her apron and ground, she blushes a little as she has now found a new reason for her excuse. She pulls her shawl down to cover her huge chest, turning away and scampering off into the main house to take care of business, leaving you to head back to Softlik.", true);
hrs = 1;
doEnd();
};
};
} else {
if ((((malonRep == 4)) || ((malonRep == 5)))){
outputMainText("Malon is working outside as you approach the farm once again", true);
if (malonRep == 4){
if ((((malonPreg > 36)) && ((malonPreg <= 72)))){
outputMainText(", an arm slung under her slightly protruding yet obviously pregnant belly", false);
};
if ((((malonPreg > 72)) && ((malonPreg <= 144)))){
outputMainText(", her arms hugging her giant belly that nearly pushes past her breasts, easily working despite it", false);
};
if ((((malonPreg > 144)) && ((malonPreg <= 216)))){
outputMainText(", her breasts swollen with pregnancy and supported by her enormously pregnant belly, looking to be even larger than she is. You actually wonder how she manages to work with it", false);
};
};
if (malonChildren == 1){
outputMainText(", your large-eared and wide-hipped child running around playing, her tail swishing happily through a little white dress just like her mother used to wear, except with a little bulge at the front where her udder jiggles with each step", false);
};
if (malonChildren > 1){
outputMainText(((", your " + malonChildren) + " large-eared and wide-hipped children running around playing, their tails swishing happily through little white dresses just like their mother used to wear, except with little bulges at the front where their udders jiggles with each step"), false);
};
outputMainText(". The half-bovine woman spots you and her face shines up, turning to come and greet you.\r\r'Hello hun!' Her arms wrap around you with a big hug.", false);
if (malonChildren == 1){
outputMainText("\r\rYour child also spots you and runs up with her own hug, shouting 'Daddy!'", false);
};
if (malonChildren > 1){
outputMainText("\r\rYour children also spot you and run up with their own hugs, shouting 'Daddy!", false);
};
outputMainText("\r\rYou visit for a while and help Malon with a bit of work, earning you some coin. You spend the time chatting and enjoying yourselves, but eventually Malon gives you a wink.\r\r'Would you like to do something?'", false);
doCoin(Math.floor((percent() / 20)));
viewButtonOutline(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0);
viewButtonText(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0);
if (lactation < 1){
Choice5.visible = false;
};
buttonWrite(5, "Milk");
buttonWrite(7, "Sex");
doListen = function ():void{
if (buttonChoice == 5){
outputMainText("Poking her nipple while you wink back, Malon shouts to the other workers that she's got some business she needs to take care of. The others roll their eyes, well used to the excuse thanks to her 'condition', but don't give her any other guff as she takes you into an empty barn, where she's since become comfortable indulging in her bovine assets.\r\rYou both pull over some buckets and sit down in rather comfortable chairs, removing your tops. Humming the same tune, you begin to work on each other, hugging and gently caressing each other.", true);
if (malonChildren == 1){
outputMainText(" Your little girl also joins in, taking a free nipple when she can. She pulls up her white dress and massages her small udder, tugging at the short teats as her hips jerk in wry sensitivity, until little drops start to form and drip down her legs.", false);
};
if (malonChildren > 1){
outputMainText(" Your little girls also joins in, taking a free nipples when they can. They pull up their white dresses and massage their small udders, tugging at the short teats as their hips jerk in wry sensitivity, until little drops start to form and drip down their legs. When there aren't enough nipples to suckle from on their parents, they take to suckling from each other, happily downing their meal.", false);
};
outputMainText("\r\rWith so much experience with each other, it doesn't take long before sparks start to fly and milk starts to spew, orgasms wracking your bodies. Malon opens her mouth and lets out several long, hearty moos of ecstasy,", false);
if (malonChildren == 1){
outputMainText(" the little girl mimicking her mother with her own little 'Moo~',", false);
};
if (malonChildren > 1){
outputMainText(" the little girls mimicking their mother with their own little 'Moo~'s,", false);
};
outputMainText(" until you're both gasping for air.\r\rThoroughly milked, you spend another hour enjoying the company before eventually giving your goodbye kisses and heading back to Softlik, happy and content.", false);
milkAmount(1);
milkAmount(2);
nipplePlay = (nipplePlay + 15);
if (udders == true){
udderPlay = (udderPlay + 15);
};
doSexP(5);
stats(1, 1, 0, 2);
hrs = 4;
doEnd();
};
if (buttonChoice == 7){
outputMainText("With a perverse grin, you give Malon a wink of your own and grab her ample tush. She jumps with a giggle and shouts to the other workers that she's got some business she needs to take care of. The others smirk and chuckle to themselves, noticing the extra-excited perk in her voice and knowing exactly what 'business' means exactly. She sticks her tongue out at them and pulls you back into the house, eager to get you under the sheets.", true);
outputMainText("\r\rQuickly making your way to her room, your clothes littering the hallway along the way, the two of you jump onto the bed. The two of you kiss again and again, until she knocks you onto your back.\r\rWith fervor, you lift her long purple skirt, revealing her wide, cow-like hips and large, dripping, animalistic nether-region.", true);
if (cockTotal > 0){
outputMainText((((((((((("\r\rFlipping back her long red hair, she grinds down your legs and across the bed to pull " + pullUD(2)) + " your ") + clothesBottom()) + ", letting ") + oneYour(1)) + " ") + cockDesc()) + " cock") + plural(1)) + " flop out. She licks and kisses it ravenously, as though something had come over her. She sucks at the tip, slipping her tongue across and through your urethra and savoring the salty taste of your pre."), false);
if ((cockSize * cockSizeMod) <= eVagLimit(56)){
outputMainText((("\r\rIt doesn't take long before she grows too hungry and crawls back up your body, dragging across your erection" + plural(1)) + ". Her breasts dribble over you until it runs off your sides and soaks into the fluffy blanket. Then, she pulls the blankets open, letting you both slip into the water-resistant sheets, where she slides your cock into her supple folds, devouring its entire length."), false);
if ((((percent() <= 20)) && ((malonRep == 5)))){
malonRep = 4;
malonPreg = 0;
};
};
if ((cockSize * cockSizeMod) > eVagLimit(56)){
outputMainText((((((("\r\rHowever, she can easily tell that you're far too large for her. So, instead, she crawls back up your body, licking you as she goes, while her own breasts dribble over you until it runs off your sides and soaks into the fluffy blanket. Then, she pulls the blankets open, letting you both slip into the water-resistant sheets, where she straddles your " + cockDesc()) + " erection") + plural(1)) + ", humping her clit along your length") + plural(1)) + "."), false);
};
if (malonRep == 4){
if ((((malonPreg > 36)) && ((malonPreg <= 72)))){
outputMainText("\r\rYou both rub her slightly protruding belly as you kiss, delighting in the feeling of new life growing within her. As you rub against each other, you take precautions to protect the womb, but it doesn't prevent the room from getting hot...", false);
};
if ((((malonPreg > 72)) && ((malonPreg <= 144)))){
outputMainText("\r\rYou both hug and rub her large belly, her breasts laying atop and just barely hanging past. Her large rump rises in the air, her tail dancing above, as she tries to bend around her swollen womb and kiss you again and again. One of your hands grabs her ass trying to push her back down against you, while the other roves over the taut skin, keen to protect and caress it.", false);
};
if ((((malonPreg > 144)) && ((malonPreg <= 216)))){
outputMainText("\r\rHer belly is enormous, filling the gap between the two of you and protruding further than her pregnancy-swollen tits, milk already dribbling down the taut skin. She grinds down hard against you, the large girth making her all the hornier. So horny, in fact, that she rolls her giant belly against yours, just to lean in to give you a kiss. Her ass swings in the air, swaying erotically while her tail dances in rhythm. Both of your hands are busy keeping her giant womb balanced against you, stroking the sensitive skin until you can feel her arousal splash down from her hind-qaurters and splatter across your thighs. She roll back to satiate her engorged cunt, letting her feminine lubricant slip beneath her belly, allowing it to slide erotically across you as well.", false);
};
};
if (malonChildren == 1){
outputMainText("\r\rAll giggly and just as naked as you are, your little girl jumps into the bed with you, rubbing her small udder and tugging the short teats until her own milk is flowing. She suckles from the two of you when you two give her the chance, trying to get a nice meal in. However, your actions are so vulgar that she begins to slip her fingers between her own legs and fondle her small breasts, gasping softly as she tries to bring herself to a premature orgasm.", false);
};
if (malonChildren > 1){
outputMainText("\r\rAll giggly and just as naked as you are, your little girls jump into the bed with you, rubbing their small udders and tugging at each others short teats until their own milk begins to flow. They suckle from the two of you when you two give them the chance, trying to get a nice meal in, and suckle from each other whenever you don't. However, your actions are so vulgar that they begin to slip their fingers between their own legs and fondle their small breasts, gasping softly as they try to bring themselves to premature orgasms, even going so far to even lick each others developing cunnies in hopes for a greater chance of success.", false);
};
outputMainText("\r\rOver and over, Malon grinds her wide hips. She leans down to kiss you some more, her tongue driving into your mouth. You thrust back in turn, making her moan into your throat.\r\rQuickly, her body begins to quiver once again, milk spraying about beneath the sheets, drenching you all. Her mouth quickly stretches wide, the sound echoing around the room. \r\r'MOOOOOOO!'", false);
if (malonChildren == 1){
outputMainText("\r\rYour child does the same, coming to the small peak of her own pleasuring with a weaker, cute encore of 'Moooo~!'", false);
};
if (malonChildren > 1){
outputMainText("\r\rYour children do the same, coming to the small peaks of their own pleasuring with weaker, cute encores of 'Moooo~!'", false);
};
cumAmount();
} else {
if ((((cockTotal < 1)) && ((vagTotal > 0)))){
outputMainText((((((((((("\r\rFlipping back her long red hair, she grinds down your legs and across the bed to pull " + pullUD(2)) + " your ") + clothesBottom()) + ". Seeing your ") + vulvaDesc()) + " slit") + plural(2)) + ", she dives in and begins devouring your clit") + plural(2)) + ".\r\rIt doesn't take long before she grows too hungry, crawling back up your body, licking your milk up as she goes. Her own breasts dribble over you until it runs off your sides and soaks into the fluffy blanket. Then, she pulls the blankets open, letting you both slip into the water-resistant sheets, where presses her supple folds to your own, letting them kiss erotically."), false);
if (malonChildren == 1){
outputMainText("\r\rAll giggly and just as naked as you are, your little girl jumps into the bed with you, rubbing her small udder and tugging the short teats until her own milk is flowing. She suckles from the two of you when you two give her the chance, trying to get a nice meal in. However, your actions are so vulgar that she begins to slip her fingers between her own legs and fondle her small breasts, gasping softly as she tries to bring herself to a premature orgasm.", false);
};
if (malonChildren > 1){
outputMainText("\r\rAll giggly and just as naked as you are, your little girls jump into the bed with you, rubbing their small udders and tugging at each others short teats until their own milk begins to flow. They suckle from the two of you when you two give them the chance, trying to get a nice meal in, and suckle from each other whenever you don't. However, your actions are so vulgar that they begin to slip their fingers between their own legs and fondle their small breasts, gasping softly as they try to bring themselves to premature orgasms, even going so far to even lick each others developing cunnies in hopes for a greater chance of success.", false);
};
if (malonRep == 4){
if ((((malonPreg > 36)) && ((malonPreg <= 72)))){
outputMainText("\r\rYou both rub her slightly protruding belly as you kiss, delighting in the feeling of new life growing within her. As you rub against each other, you take precautions to protect the womb, but it doesn't prevent the room from getting hot...", false);
};
if ((((malonPreg > 72)) && ((malonPreg <= 144)))){
outputMainText("\r\rYou both hug and rub her large belly, her breasts laying atop and just barely hanging past. Her large rump rises in the air, her tail dancing above, as she tries to bend around her swollen womb and kiss you again and again. One of your hands grabs her ass trying to push her back down against you, while the other roves over the taut skin, keen to protect and caress it.", false);
};
if ((((malonPreg > 144)) && ((malonPreg <= 216)))){
outputMainText("\r\rHer belly is enormous, filling the gap between the two of you and protruding further than her pregnancy-swollen tits, milk already dribbling down the taut skin. She grinds down hard against you, the large girth making her all the hornier. So horny, in fact, that she rolls her giant belly against yours, just to lean in to give you a kiss. Her ass swings in the air, swaying erotically while her tail dances in rhythm. Both of your hands are busy keeping her giant womb balanced against you, stroking the sensitive skin until you can feel her arousal splash down from her hind-qaurters and splatter across your thighs. She roll back to satiate her engorged cunt, letting her feminine lubricant slip beneath her belly, allowing it to slide erotically across you as well.", false);
};
};
outputMainText((("\r\rOver and over, she grinds her wide hips. She leans down to kiss you some more, her tongue driving into your mouth. You thrust back in turn, making her moan into your throat.\r\rQuickly, her body begins to quiver once again, milk spraying about beneath the sheets. She keeps her mouth shut at first, but as you thrust your clit" + plural(2)) + " against hers as you come, she can no longer resist, allowing her mouth stretch wide.\r\r'MOOOOOOO!'"), false);
if (malonChildren == 1){
outputMainText("\r\rYour child does the same, coming to the small peak of her own pleasuring with a weaker, cute encore of 'Moooo~!'", false);
};
if (malonChildren > 1){
outputMainText("\r\rYour children do the same, coming to the small peaks of their own pleasuring with weaker, cute encores of 'Moooo~!'", false);
};
} else {
outputMainText((((("\r\rFlipping back her long red hair, she grinds down your legs and across the bed to pull " + pullUD(2)) + " your ") + clothesBottom()) + ". Seeing your lack of any genitalia, she kisses your crotch softly several times anyways, before crawling back up your body She licks up your milk up as she goes, while her own breasts dribble over you until it runs off your sides and soaks into the fluffy blanket. Then, she pulls the blankets open, letting you both slip into the water-resistant sheets, where she humps your empty crotch."), false);
if (malonChildren == 1){
outputMainText("\r\rAll giggly and just as naked as you are, your little girl jumps into the bed with you, rubbing her small udder and tugging the short teats until her own milk is flowing. She suckles from the two of you when you two give her the chance, trying to get a nice meal in. However, your actions are so vulgar that she begins to slip her fingers between her own legs and fondle her small breasts, gasping softly as she tries to bring herself to a premature orgasm.", false);
};
if (malonChildren > 1){
outputMainText("\r\rAll giggly and just as naked as you are, your little girls jump into the bed with you, rubbing their small udders and tugging at each others short teats until their own milk begins to flow. They suckle from the two of you when you two give them the chance, trying to get a nice meal in, and suckle from each other whenever you don't. However, your actions are so vulgar that they begin to slip their fingers between their own legs and fondle their small breasts, gasping softly as they try to bring themselves to premature orgasms, even going so far to even lick each others developing cunnies in hopes for a greater chance of success.", false);
};
if (malonRep == 4){
if ((((malonPreg > 36)) && ((malonPreg <= 72)))){
outputMainText("\r\rYou both rub her slightly protruding belly as you kiss, delighting in the feeling of new life growing within her. As you rub against each other, you take precautions to protect the womb, but it doesn't prevent the room from getting hot...", false);
};
if ((((malonPreg > 72)) && ((malonPreg <= 144)))){
outputMainText("\r\rYou both hug and rub her large belly, her breasts laying atop and just barely hanging past. Her large rump rises in the air, her tail dancing above, as she tries to bend around her swollen womb and kiss you again and again. One of your hands grabs her ass trying to push her back down against you, while the other roves over the taut skin, keen to protect and caress it.", false);
};
if ((((malonPreg > 144)) && ((malonPreg <= 216)))){
outputMainText("\r\rHer belly is enormous, filling the gap between the two of you and protruding further than her pregnancy-swollen tits, milk already dribbling down the taut skin. She grinds down hard against you, the large girth making her all the hornier. So horny, in fact, that she rolls her giant belly against yours, just to lean in to give you a kiss. Her ass swings in the air, swaying erotically while her tail dances in rhythm. Both of your hands are busy keeping her giant womb balanced against you, stroking the sensitive skin until you can feel her arousal splash down from her hind-qaurters and splatter across your thighs. She roll back to satiate her engorged cunt, letting her feminine lubricant slip beneath her belly, allowing it to slide erotically across you as well.", false);
};
};
outputMainText("\r\rOver and over, she grinds her wide hips. She leans down to kiss you some more, her tongue driving into your mouth. You thrust back in turn, making her moan into your throat.\r\rQuickly, her body begins to quiver once again, milk spraying about beneath the sheets. So hot is her body that you can feel yourself climax as well! She keeps her mouth shut at first, but as you thrust back with the phantom orgasm, she can no longer resist, allowing her mouth stretch wide.\r\r'MOOOOOOO!'", false);
if (malonChildren == 1){
outputMainText("\r\rYour child does the same, coming to the small peak of her own pleasuring with a weaker, cute encore of 'Moooo~!'", false);
};
if (malonChildren > 1){
outputMainText("\r\rYour children do the same, coming to the small peaks of their own pleasuring with weaker, cute encores of 'Moooo~!'", false);
};
};
};
outputMainText("\r\r\rYou soon pass out beneath the blankets, trapped within the sea of milk and sensual fluids...", false);
doLust((-(sen) * 2));
hrs = 9;
exhaustion = 0;
doNext();
doListen = function ():void{
outputMainText((("Many hours later, you awaken to gentle kissing from your bovine lover. You open your eyes to see Malon's face, a soft smile greeting you and a happy glimmer in her eyes.\r\r'Thank you so much~' She whispers before kissing you once more.\r\rAfter some cuddling, she eventually needs to get back to work. She hugs you again and tells you that she'd love for you to come back any time you can. You hug her back, giving her a sweet goodbye as you squeeze her plush tush, her tail jerking excitedly as she giggles. With a round of kisses and hugs, you head back to Softlik, your " + skinDesc()) + " nice and soft from the extended milk bath"), true);
if (malonChildren == 1){
outputMainText(", your little girl growing up with probably the fairest skin of anyone in Nimin", false);
};
if (malonChildren > 1){
outputMainText(", your little girls growing up with probably the fairest skins of anyone in Nimin", false);
};
outputMainText(".", false);
doSexP(5);
stats(0, 1, 2, 4);
doEnd();
};
};
};
} else {
if (malonRep == 2){
outputMainText("You spot Malon out of the corner of your eye. She spots you and waves with a slight smile. However, she quickly stops as her shirt begins to blotch, white liquid spilling out and dribbling onto her apron and ground. She blushes intently and pulls her shawl down to cover her huge chest, turning away and running off, her tail pushing her skirt between her legs and outlining her ample bum.\r\rNot wanting to be so much like a cow, she avoids you in hopes of taking care of the situation herself. With a shrug, you head back to Softlik.", true);
hrs = 1;
doEnd();
} else {
outputMainText("You spot Malon out of the corner of your eye. She spots you and waves with a slight smile. However, she quickly stops as her shirt begins to blotch, white liquid spilling out and dribbling onto her apron and ground. She blushes intently and pulls her shawl down to cover her huge chest, turning away and running off, her tail pushing her skirt between her legs and outlining her ample bum.\r\rA bit distracted with her 'issues', you leave her be and head back to Softlik.", true);
hrs = 1;
doEnd();
};
};
};
};
} else {
if ((((((lactation > 3)) && ((malonRep == 0)))) && ((((milkEngorgementLevel > 0)) || ((udderEngorgementLevel > 0)))))){
outputMainText((("Heading towards the farm, you spot a strange farm-hand. A young woman, with an exceptionally well-endowed figure... Beautiful, with long, flowing red hair, she wears a yellow shirt and long purple skirt with a brown apron around her waist and yellow shawl around her shoulders. However, the shawl seems fairly wet and she's careful to drape its ends over breasts larger than watermelons, trying to hide the large blotches on her shirt with it and keeping it at the ready to use at any moment. Her ears are also quite long, hanging perpendicular from her head, nearly 5 inches, and droop a little. Behind her you see a long, narrow tail, tipped with a tuft of long hairs, swish about her calves with each step.\r\rAs you watch her, she seems to avoid most of the other workers. It doesn't take long before she spots you eyeing her. At first redness tinges her cheeks, but then her eyes spot the large blotches on your " + clothesTop()) + " with a curious look. Checking to make sure nobody else is around, she heads towards you..."), true);
doNext();
doListen = function ():void{
outputMainText("With a gentle voice, she speaks,\r\r'Oh my, w-would you like some help with that?' She nods down to your milkiness. 'I, umm... Kinda know the feeling and can help you out if you would like.'\r\r\rDo you accept her offer?", true);
buttonConfirm();
doListen = function ():void{
if (buttonChoice == 6){
outputMainText("She nods with a soft smile, taking you by the hand. Leading you into the main farmhouse, she's quick to look around corners and check hallways, as if she were smuggling you into the building. Eventually, she brings you upstairs to a bedroom.\r\rIn the center of the room sits a good-sized bed, with downy blankets and soft matress. However, the sheets seem to be coated with some sort of wax, making them shiny and most likely waterproof. In a corner beside the bed stands a stack of several buckets, all clean and ready to be used. The strange woman leads you towards her bed, motioning for you to sit.\r\r'Just relax and I'll take care of it for you.' She speaks sweetly.", true);
doNext();
doListen = function ():void{
outputMainText((("\r\rYou sit down upon the soft bed, sinking in slightly from the extra cushioning. She then grabs a bucket from the stack and pulls a short stool over to your knees.\r\r'Your " + clothesTop()) + ", please.' She motions to it being in the way."), true);
if (ment > lib){
outputMainText((((("\r\rWith a heavy blush in your cheeks, you nod back, pulling your " + clothesTop()) + " ") + pullUD(1)) + ", slowly exposing your "), false);
} else {
if (ment > (lib - 10)){
outputMainText((((("\r\rWith a slight blush in your cheeks, you nod back, pulling your " + clothesTop()) + " ") + pullUD(1)) + ", exposing your "), false);
} else {
outputMainText((((("\r\rWith a quick nod and no hesitation, you pull " + pullUD(1)) + " your ") + clothesTop()) + ", exposing your "), false);
};
};
if ((((((milkEngorgementLevel > 0)) && ((udderEngorgementLevel > 0)))) && ((udders == true)))){
outputMainText((((boobDesc() + " leaky breasts and letting your ") + udderDesc()) + " udder spill into your lap."), false);
} else {
if (milkEngorgementLevel > 0){
outputMainText((boobDesc() + " leaky breasts."), false);
} else {
if ((((udderEngorgementLevel > 0)) && ((udders == true)))){
outputMainText((udderDesc() + " udder, your teats dripping into your lap."), false);
};
};
};
outputMainText(" The woman then slips her hands into her cleavage, quickly warming her hands, before reaching out to your ", false);
if (milkEngorgementLevel > 0){
outputMainText((nipDesc() + " nipples"), false);
} else {
if ((((udderEngorgementLevel > 0)) && ((udders == true)))){
outputMainText((teatDesc() + " teats"), false);
};
};
outputMainText(" and gently pinches them within her grasp. Expertly, she bends you forward slightly and aims towards the bucket. Within just a few tugs, you're already squirting milk into the bucket, the pleasant feeling of warmth overcoming you and intensified by her caring massage.\r\rAs the room fills with the sound of your squirts hitting the metallic bucket, the strange woman finally introduces herself. 'I'm Malon, it's nice to meet you.' She giggles as she shakes your milky flesh with a hand in greeting. 'Usually I'm the one with the milky problem around here.' She motions down to her shirt. The redness tinges her cheeks. 'Oh-Oh my...' Her shirt blotches quickly, her own milk beginning to drip into the bucket with yours. 'Uh-umm... I think doing this made my breasts think it's that time... Y-You don't mind, do you?' She plucks at her shirt to indicate what she means.\r\rAs you nod your head to say it's alright, she pulls her shirt up, exposing her enormous breasts. They rest more comfortably on her knees, with 6-inch long nipples dangling like teats. While one hand works your body, her other reaches around a fleshy mass to grab her own nipple. In a couple seconds, her rhythm quickly matches yours, filling the bucket rapidly.", false);
doNext();
doListen = function ():void{
outputMainText("She continues to speak, trying to distract herself from her shyness and ignore the redness in her face as she milks the both of you.\r\r'When I was little, I loved the animals, and I still do. However, in my naive youth, I attempted to get to know some of the cows better... by taking one of those DairE Pills. At first I was ecstatic. Imagine a little girl, in a long white dress, with larger than average nipples that poked at the fabric, dripping with milk, just like the cows! I even had the same shawl back then,' she tugs the yellow shawl around her shoulders,' and I used to soak it through after an hour of sitting with the cows, playing with my nipples and mooing to be just like them.'\r\rShe sighs.\r\r'Having such success, I kept taking the pills. And taking them. And taking them... Before I was even 15 years old, I had a chest larger than any woman's in Softlik and could make more milk than most cows on the farm. Added to the fact that I had these ears and this tail,' the thing swishes behind her as a big gush of milk shoots from her nipples as she shudder slightly. 'E-Excuse me.. ' She blushes instensely, waiting for a moment as her climax passes. 'W-Well, let's just say I became a little self-aware. I still kept up with the milkings to keep the engorgement away and, well, I'm sure you can guess the rest.'", true);
doNext();
doListen = function ():void{
var getMilk:int;
if ((((milkEngorgementLevel > 0)) && ((udderEngorgementLevel > 0)))){
getMilk = (milkAmount(1) + milkAmount(2));
} else {
if (milkEngorgementLevel > 0){
getMilk = milkAmount(1);
} else {
if (udderEngorgementLevel > 0){
getMilk = milkAmount(2);
};
};
};
if (getMilk <= 4000){
outputMainText("After filling up two buckets of milk, most of which was Malon's, she pushes them off to the side with a clap.", true);
} else {
if (getMilk <= 18000){
outputMainText("After filling up few buckets of milk, most of which was yours, Malon pushes them off to the side with a sigh.", true);
} else {
if (getMilk <= 35500){
outputMainText("After filling up several buckets of milk, far surpassing Malon's amount, she pushes them off to the side with a tired sigh, stretching her adept fingers.", true);
} else {
if (getMilk > 35500){
outputMainText("After a while, Malon begins to panic. 'Umm... I-I seem to have run out of buckets!' She sloshes the last one from the stack to the side as you still spill with milk. 'I-I'm so sorry! I didn't know it was that bad for you. Here!'\r\rShe takes off her shawl, holding it to your mammaries and waiting for the flow to come to a halt. A few minutes pass before she can remove it, your lactation having ceased and her hands covered in the white stuff. 'Whew... That was close.'\r\rShe wrings her shawl out in a bucket that has yet to overflow before slinging it around her neck again.", true);
};
};
};
};
outputMainText(" 'There, all done!", false);
if (udders == true){
outputMainText(" Although, I probably shouldn't be rambling about my problems. It seems like you've gone far beyond my own troubles.' She gently pats your milky bag. 'Anyways...", false);
};
outputMainText(" If you ever have trouble again, come see me and I'll help you out. Otherwise, don't be a stranger.' She pulls her shirt back down, lifting her massive tits a few time to get them to settle within the shirt without her large nipples being so obvious. 'Us 'cows' should stick together.' With a wink, she leans forward, giving you a great view of her deep cleavage as she kisses you on the forehead. Then she takes your hand once more, leading your back out of the farmhouse, saying she can take care of the buckets herself.\r\rWith a wave, you say goodbye and head back to Softlik.", false);
hrs = 3;
doLust(10);
nipplePlay = (nipplePlay + 10);
malonRep = 1;
if (udders == true){
udderPlay = (udderPlay + 10);
};
doSexP(5);
stats(0, 2, 2, 1);
doEnd();
};
};
};
} else {
outputMainText("You shake your head, not accepting her assistance. She gives you a soft smile, not offended by the choice. Her extrovert moment quickly passes, however, as her own shirt begins to blotch more, white liquid spilling out and dribbling onto her apron and ground. She blushes intensely as she pulls her shawl down to cover her huge chest, turning away and running off, her tail pushing her skirt between her legs and outlining her ample bum.\r\rShe disappears into a building. With a shrug, you head back to Softlik.", true);
hrs = 1;
doEnd();
};
};
};
} else {
outputMainText("You spot a farm-hand out of the corner of your eye. A young woman, with an exceptionally well-endowed figure... Beautiful, with long, flowing red hair, she wears a yellow shirt and long purple skirt with a brown apron around her waist and yellow shawl around her shoulders. However, the shawl seems fairly wet and she's careful to drape its ends over breasts larger than watermelons, trying to hide the large blotches on her shirt with it and keeping it at the ready to use at any moment. Her ears are also quite long, hanging perpendicular from her head, nearly 5 inches, and droop a little. Behind her you see a long, narrow tail, tipped with a tuft of long hairs, swish about her calves with each step.\r\rAs you watch her, she seems to avoid most of the other workers. It doesn't take long before she spots you eyeing her. She immediately averts her eyes, redness tinging her cheeks. Her shy moment quickly passes, however, as her shirt begins to blotch more, white liquid spilling out and dribbling onto her apron and ground. Her blush intensifies as she pulls her shawl down to cover her huge chest, turning away and running off, her tail pushing her skirt between her legs and outlining her ample bum.\r\rShe disappears into a building. With a shrug, you head back to Softlik.", true);
hrs = 1;
doEnd();
};
};
};
} else {
outputMainText("You manage to approach the farm without being seen or stopped by a farmer. You find a bottle of milk that has yet to be shipped out with the rest. Pocketing it before being caught, you head back to Softlik.", true);
item1 = 500;
hrs = 2;
doEnd();
};
};
};
};
}
public function boobDesc():String{
var chance:int;
var tempStr:String;
chance = percent();
tempStr = ("BOOB ERROR " + breastSize);
if (chance <= 100){
if (breastSize <= 2){
tempStr = "nearly flat";
};
if ((((breastSize > 2)) && ((breastSize <= 8)))){
tempStr = "noticeable";
};
if ((((breastSize > 8)) && ((breastSize <= 20)))){
tempStr = "large";
};
if ((((breastSize > 20)) && ((breastSize <= 40)))){
tempStr = "huge";
};
if ((((breastSize > 40)) && ((breastSize <= 76)))){
tempStr = "humongous";
};
if ((((breastSize > 76)) && ((breastSize <= 146)))){
tempStr = "massive";
};
if ((((breastSize > 146)) && ((breastSize <= 210)))){
tempStr = "gargantuan";
};
if ((((breastSize > 210)) && ((breastSize <= 280)))){
tempStr = "tremendous";
};
if ((((breastSize > 280)) && ((breastSize <= 560)))){
tempStr = "colossal";
};
if (breastSize > 560){
tempStr = "ridiculously huge";
};
};
if (chance > 50){
if (breastSize <= 2){
tempStr = "tiny";
};
if ((((breastSize > 2)) && ((breastSize <= 4)))){
tempStr = "palmable";
};
if ((((breastSize > 8)) && ((breastSize <= 10)))){
tempStr = "ample";
};
if ((((breastSize > 20)) && ((breastSize <= 20)))){
tempStr = "head-sized";
};
if ((((breastSize > 40)) && ((breastSize <= 76)))){
tempStr = "hefty";
};
if ((((breastSize > 76)) && ((breastSize <= 146)))){
tempStr = "beachball-sized";
};
if ((((breastSize > 146)) && ((breastSize <= 210)))){
tempStr = "normally back-breaking";
};
if ((((breastSize > 210)) && ((breastSize <= 280)))){
tempStr = "view-obscuring";
};
if ((((breastSize > 280)) && ((breastSize <= 560)))){
tempStr = "bed-sized";
};
if (breastSize > 560){
tempStr = "road-filling";
};
};
return (tempStr);
}
public function hairstyleDescription(ID:int):String{
var tempStr:String;
tempStr = ("CLOTHES NAME ERROR " + ID);
if (ID == 0){
tempStr = "No hairstyle whatsoever. Choosing this option removes any mention of hair from your appearance description.";
};
if (ID == 1){
tempStr = "Wavy hair has subtle curves that make it seem more flowing.\r\rThis hairstyle has additional length options available after purchasing.";
};
if (ID == 2){
tempStr = "Pigtails are straight/wavy/curvy hair pulled away from the face and gathered towards the sides of your head, where it is bundled and tied at the base, allowing it to hang freely over your shoulders.\r\rThis hairstyle has additional length options available after purchasing.";
};
if (ID == 3){
tempStr = "A Ponytail is straight/wavy/curvy hair pulled away from the face and gathered at the back of your head, where it is bundled and tied at the base, allowing it to hang freely over your back.\r\rThis hairstyle has additional length options available after purchasing.";
};
if (ID == 4){
tempStr = "Straight hair has been combed out to be nice and straight.\r\rThis hairstyle has additional length options available after purchasing.";
};
if (ID == 5){
tempStr = "A Buzzcut is hair cut quite short, less than a quarter inch from your head.";
};
if (ID == 6){
tempStr = "A Mohawk leaves only the hair along the center, from front to back, left, shaving the rest. It's usually a couple inches long.";
};
if (ID == 7){
tempStr = "A Bun is straight or wavy hair pulled up into a bun-like shape on top of the back of your head.";
};
if (ID == 8){
tempStr = "Curly hair has been treated to make it nice and curly with a bit of spring.\r\rThis hairstyle has additional length options available after purchasing.";
};
if (ID == 9){
tempStr = "Braided Pigtails are pigtails that have been braided, keeping the dangling hair in a nice tight formation.\r\rThis hairstyle has additional length options available after purchasing.";
};
if (ID == 10){
tempStr = "A Braided Ponytail is a ponytail that has been braided, keeping the dangling hair in a nice tight formation.\r\rThis hairstyle has additional length options available after purchasing.";
};
if (ID == 11){
tempStr = "Braided hair involves tying all your hair into many braids, keeping it all in multiple tight formations.\r\rThis hairstyle has additional length options available after purchasing.";
};
if (ID == 12){
tempStr = "Spiky hair is hair that has been treated to stand away from your head, defying gravity. Due to limitations, it can only reach a few inches in length.";
};
if (ID == 13){
tempStr = "Emo hair is hair that has been treated to sit straight at all times, with bangs often hanging over one eye.\r\rThis hairstyle has additional length options available after purchasing.";
};
if (ID == 14){
tempStr = "An Afro is a giant poofball of curly hair. Due to limitations, it only reaches about half a foot from your head.";
};
return (tempStr);
}
public function enemyBaseStats():void{
if (enemyID == 101){
setEnemyStats(30, 16, 4, 8, 0, 0, 0, 1, 0, 15, 202);
};
if (enemyID == 201){
setEnemyStats(45, 22, 16, 13, 11, 30, 1, 2, 0, 20, 203);
};
if (enemyID == 301){
setEnemyStats(50, 12, 10, 24, 30, 40, 2, 4, Math.floor((percent() / 10)), 25, 204);
};
if (enemyID == 302){
setEnemyStats(60, 28, 9, 18, 14, 30, 1, 4, Math.floor((percent() / 10)), 25, 205);
};
if (enemyID == 303){
setEnemyStats(150, 45, 30, 25, 35, 20, 2, 4, 0, 50, 216);
};
}
public function skinDesc():String{
var tempStr:String;
tempStr = ("SKIN ERROR " + skinType);
if (skinType == 1){
tempStr = "skin";
};
if (skinType == 2){
tempStr = "fur";
};
if (skinType == 3){
tempStr = "scales";
};
return (tempStr);
}
public function doReturn():void{
checkZero();
if ((((((inBag == true)) && ((lust > 99)))) && ((currentState == 2)))){
doLustForcedMasturbate();
} else {
if (inBag == true){
doBag();
} else {
if (inShop == true){
doShop();
} else {
if (currentState == 1){
doGeneral();
} else {
if (currentState == 2){
doBattle();
} else {
if (currentState == 3){
doMasturbate();
};
};
};
};
};
};
}
public function doDiscard(ID:int, more:int):void{
var ID = ID;
var more = more;
bc();
viewButtonText(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
viewButtonOutline(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
i = 1;
while (i < 13) {
buttonWrite(i, itemName(itemID(i)));
if (i == 12){
buttonWrite(12, "Return");
};
i++;
};
buttonWrite(4, "<<");
buttonWrite(8, ">>");
showPage(true, 1);
doListen = function ():void{
var dis:int;
if (((((((!((buttonChoice == 0))) && (!((buttonChoice == 4))))) && (!((buttonChoice == 8))))) && (!((buttonChoice == 12))))){
outputMainText((((((((itemDescription(itemID(buttonChoice)) + "\r\r") + itemDescription(ID)) + "\r\rDo you want to replace ") + itemName(itemID(buttonChoice))) + " with ") + itemName(ID)) + "?"), true);
dis = buttonChoice;
buttonConfirm();
doListen = function ():void{
if (buttonChoice == 6){
showPage(false, 1);
loseItem(dis);
itemSlotWrite(dis, 0);
gainItem(ID, more);
};
if (buttonChoice == 7){
doDiscard(ID, more);
};
};
};
if (buttonChoice == 12){
if (more == 1){
item1 = 0;
};
if (more == 2){
item2 = 0;
};
if (more == 3){
item3 = 0;
};
if (more == 4){
item4 = 0;
};
if (more == 5){
item5 = 0;
};
if (more == 6){
item6 = 0;
};
showPage(false, 1);
doProcess();
} else {
if (buttonChoice == 4){
if (currentItems == 1){
currentItems = 3;
} else {
if (currentItems == 2){
currentItems = 1;
} else {
if (currentItems == 3){
currentItems = 2;
};
};
};
showPage(true, 1);
doDiscard(ID, more);
} else {
if (buttonChoice == 8){
if (currentItems == 1){
currentItems = 2;
} else {
if (currentItems == 2){
currentItems = 3;
} else {
if (currentItems == 3){
currentItems = 1;
};
};
};
showPage(true, 1);
doDiscard(ID, more);
};
};
};
};
}
public function doCoin(changes:int):void{
if ((coin + changes) < 0){
coin = 0;
changes = 0;
};
coin = (coin + changes);
doSexP(0);
}
public function hairDesc():String{
var tempStr:String;
tempStr = ("HAIR DESC ERROR " + hair);
if (hair == 1){
tempStr = "wavy hair";
};
if (hair == 2){
tempStr = "hair pulled to the sides of your head in pigtails";
};
if (hair == 3){
tempStr = "hair pulled back into a ponytail";
};
if (hair == 4){
tempStr = "straight hair";
};
if (hair == 5){
tempStr = "really short hair";
};
if (hair == 6){
tempStr = "hair styled up into a mohawk";
};
if (hair == 7){
tempStr = "hair curled up into a bun";
};
if (hair == 8){
tempStr = "curly hair";
};
if (hair == 9){
tempStr = "hair pulled to the sides of your head in braided pigtails";
};
if (hair == 10){
tempStr = "hair pulled back into a ponytail";
};
if (hair == 11){
tempStr = "braided hair";
};
if (hair == 12){
tempStr = "spiky hair";
};
if (hair == 13){
tempStr = "straight, stiff hair covering an eye";
};
if (hair == 14){
tempStr = "giant poofball of hair";
};
return (tempStr);
}
public function newGameStart(e:MouseEvent):void{
newGameGo();
}
public function hideUpDown():void{
strUp.visible = false;
strDown.visible = false;
mentaUp.visible = false;
mentaDown.visible = false;
libUp.visible = false;
libDown.visible = false;
senDown.visible = false;
senUp.visible = false;
lustUp.visible = false;
lustDown.visible = false;
hpUp.visible = false;
hpDown.visible = false;
}
public function specialRapeWin():void{
if (enemyID == 303){
outputMainText("\r\rThe octopus shudder as her belly quakes, the orgasm having wracked her a little too strongly. She huffs as she begins to crawl back towards the ocean. Just as she touches the water, she lets out a loud groan. Her tentacles quiver and part, exposing her vaginal-beak. The thing yawns wide as a spherical object pushes through.\r\rClear with a solid pink center, the egg falls from her dripping pussy-beak, and into the sand. Barely 4 inches in diameter, it doesn't come close to the size of her belly. She quickly catches her breath, her pink face red with embarassment, before she pushes herself into the water, a tentacle grabbing the egg and pulling it with her before any more can escape...\r\rHowever, she seems to have left behind a big gob of pink goop.", false);
} else {
outputMainText((("\r\rThe " + enemyName()) + " collapses to the ground, quivering body wracked by orgasms. Having broken its mental state into a puddle of sex, it no longer wishes to battle."), false);
};
}
public function doTieden():void{
var chance:int;
chance = percent();
if (chance <= 100){
outputMainText("There's nothing to do here...", true);
hrs = 1;
doEnd();
};
}
public function doGeneral():void{
bc();
currentState = 1;
viewButtonText(1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1);
viewButtonOutline(1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1);
outputMainText((("You are currently in " + regionName()) + ". What would you like to do?"), true);
Choice1.htmlText = "Bag";
Choice2.htmlText = "Shop";
Choice3.htmlText = "Sleep";
Choice4.htmlText = "Masturbate";
Choice5.htmlText = "Salon";
Choice6.htmlText = "Tailor";
Choice10.htmlText = "Explore";
Choice12.htmlText = "Stash";
if (doWeight()){
Choice10.visible = false;
};
if ((((hour > 20)) || ((hour < 7)))){
outputMainText("\r\rAll of the shops are closed at this hour of night.", false);
Choice2.visible = false;
Choice5.visible = false;
Choice6.visible = false;
};
if (levelUP > 0){
Choice8.visible = true;
Choice8Outline.visible = true;
buttonWrite(8, "Level Up!");
};
if (milkEngorgement >= 500){
viewButtonText(0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0);
outputMainText((("\r\rMilk sprays from your chest, shooting through your " + clothesTop()) + " and obscuring your view with a white mist. Pushing your breasts around as you may, you can't seem to get them to settle down as they're so overly engorged that they can't store as much as they're still producing, making it impossible to do anything without drenching not only yourself but all those around you! The production is so excessive that your body will definitely reduce the rate after this.\r\rYou must milk your breasts if you wish to continue."), false);
milkEngorgement = (milkEngorgement - 50);
lactChange(-1);
};
if (udderEngorgement >= 500){
viewButtonText(0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0);
outputMainText((("\r\rMilk sprays from your belly, shooting through your " + clothesTop()) + " and obscuring your view with a white mist. Adjusting your udder as you may, the teats continue to flail about, gushing with milk, as the fleshy bag is so overly engorged that it can't store as much as it's still producing, making it impossible to do anything without drenching not only yourself but all those around you! The production is so excessive that your body will definitely reduce the rate after this.\r\rYou must milk your udder if you wish to continue."), false);
udderEngorgement = (udderEngorgement - 50);
lactChange(-1);
};
if (lust == 100){
viewButtonText(0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0);
outputMainText("\r\rYour body quivers and your legs give out from under you as your arousal soaks through your clothes. Your mind seems focused only on one thing: SEX!\r\rYou must masturbate if you wish to continue.", false);
} else {
if (exhaustion > 44){
outputMainText("\r\rThere's only one thing on your mind right now...", false);
viewButtonText(0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0);
};
};
appearanceText.visible = true;
appearanceBox.visible = true;
loadGame.visible = true;
loadGameOutline.visible = true;
saveGame.visible = true;
saveGameOutline.visible = true;
newGame.visible = true;
newGameOutline.visible = true;
doListen = function ():void{
if (buttonChoice == 1){
doBag();
};
if (buttonChoice == 2){
doShop();
};
if (buttonChoice == 3){
doSleep();
};
if (buttonChoice == 4){
doMasturbate();
};
if (buttonChoice == 5){
doSalon();
};
if (buttonChoice == 6){
doTailor();
};
if (buttonChoice == 10){
doExplore();
};
if (buttonChoice == 12){
doStash();
};
if (buttonChoice == 8){
doLevelUP();
};
loadGame.visible = false;
loadGameOutline.visible = false;
saveGame.visible = false;
saveGameOutline.visible = false;
newGame.visible = false;
newGameOutline.visible = false;
appearanceText.visible = false;
appearanceBox.visible = false;
};
}
public function doRace():void{
trace("race");
bc();
viewButtonText(0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0);
viewButtonOutline(0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0);
Choice2.htmlText = "Human";
Choice5.htmlText = "Equan";
Choice7.htmlText = "Lupan";
Choice10.htmlText = "Felin";
outputMainText("Choose which race you want to be:", true);
outputMainText("\r\rHuman - A race supposedly descendant of apes, their curious minds are a bit more thoughtful and their skin is slightly more sensitive.", false);
outputMainText("\r\rEquan - A race supposedly descendant of horses, their large genitals make them slightly more sexual and their muscles are more powerful.", false);
outputMainText("\r\rLupan - A race supposedly descendant of wolves, their lean bodies are stronger and their minds more quick-witted.", false);
outputMainText("\r\rFelin - A race supposedly descendant of cats, their lust-driven society makes them a bit more sexual and sensitive.", false);
trace("before listen");
doListen = function ():void{
trace("after listen");
if (buttonChoice == 2){
race = 1;
currentZone = 1;
humanAffinity = 50;
dominant = 1;
ears = 1;
skinType = 1;
str = 15;
ment = 17;
lib = 15;
sen = 17;
dayTime(0);
doGender();
};
if (buttonChoice == 5){
race = 2;
currentZone = 2;
horseAffinity = 50;
cockSizeMod = (cockSizeMod + 1);
dominant = 2;
tail = 2;
ears = 2;
skinType = 2;
str = 17;
ment = 15;
lib = 17;
sen = 15;
dayTime(0);
doGender();
};
if (buttonChoice == 7){
race = 3;
currentZone = 3;
wolfAffinity = 50;
knot = true;
dominant = 3;
tail = 3;
ears = 3;
skinType = 2;
str = 17;
ment = 17;
lib = 15;
sen = 15;
dayTime(0);
doGender();
};
if (buttonChoice == 10){
race = 4;
currentZone = 4;
catAffinity = 50;
dominant = 4;
heat++;
heatMaxTime = 96;
heatTime = 96;
tail = 4;
ears = 4;
skinType = 2;
str = 15;
ment = 15;
lib = 17;
sen = 17;
dayTime(0);
doGender();
};
};
}
public function vagLimit():Number{
return (((vagSize * (vagSizeMod + vagElastic)) + ((vagSizeMod * vagSizeMod) * moistMod(2))));
}
public function doeLust(changes:int):void{
if (eGen == 1){
if (((((eLust + changes) > 20)) && (((eLust + changes) <= 40)))){
outputMainText((("\r\rThe " + enemyName()) + " shifts a little, an erection clearly beginning to grow."), false);
};
if (((((eLust + changes) > 40)) && (((eLust + changes) <= 65)))){
outputMainText((("\r\rThe " + enemyName()) + " squirms, pre dripping from the tip of its stiffness."), false);
};
if ((eLust + changes) > 65){
outputMainText((("\r\rThe " + enemyName()) + " smears the pre across its rod, stroking it gently while fighting, majorly distracted."), false);
};
};
if (eGen == 2){
if (((((eLust + changes) > 20)) && (((eLust + changes) <= 40)))){
outputMainText((("\r\rThe " + enemyName()) + " shifts a little, caressing its pussy here and there when it can."), false);
};
if (((((eLust + changes) > 40)) && (((eLust + changes) <= 65)))){
outputMainText((("\r\rThe " + enemyName()) + " squirms, honey dribbling from its naughty hole."), false);
};
if ((eLust + changes) > 65){
outputMainText((("\r\rThe " + enemyName()) + " smears the honey all over as it rubs itself constantly while fighting, majorly distracted."), false);
};
};
if (eGen == 3){
if (((((eLust + changes) > 20)) && (((eLust + changes) <= 40)))){
outputMainText((("\r\rThe " + enemyName()) + " shifts a little, caressing its pussy here and there when it can while its erection clearly grows."), false);
};
if (((((eLust + changes) > 40)) && (((eLust + changes) <= 65)))){
outputMainText((("\r\rThe " + enemyName()) + " squirms, honey dribbling and pre dripping from its aroused genitals."), false);
};
if ((eLust + changes) > 65){
outputMainText((("\r\rThe " + enemyName()) + " smears the lubricant all over as it rubs and strokes itself constantly while fighting, majorly distracted."), false);
};
};
eLust = (eLust + changes);
}
public function clothesValue(ID:int):int{
var tempNum:int;
tempNum = 0;
if (ID == 1){
tempNum = 5;
};
if (ID == 2){
tempNum = 5;
};
if (ID == 3){
tempNum = 25;
};
if (ID == 4){
tempNum = 25;
};
if (ID == 5){
tempNum = 45;
};
if (ID == 6){
tempNum = 60;
};
if (ID == 7){
tempNum = 25;
};
if (ID == 8){
tempNum = 25;
};
if (ID == 9){
tempNum = 25;
};
if (ID == 10){
tempNum = 30;
};
if (ID == 11){
tempNum = 40;
};
if (ID == 12){
tempNum = 40;
};
if (ID == 13){
tempNum = 50;
};
if (ID == 14){
tempNum = 35;
};
if (ID == 15){
tempNum = 35;
};
return (tempNum);
}
public function genName():String{
var tempStr:String;
tempStr = ("GENDER ERROR " + gender);
if (gender == 0){
tempStr = "n androgynous";
};
if (gender == 1){
tempStr = " male";
};
if (gender == 2){
tempStr = " female";
};
if (gender == 3){
tempStr = " herm";
};
return (tempStr);
}
public function viewButtonOutline(button1:int, button2:int, button3:int, button4:int, button5:int, button6:int, button7:int, button8:int, button9:int, button10:int, button11:int, button12:int):void{
if (button1 == 0){
Choice1Outline.visible = false;
};
if (button1 == 1){
Choice1Outline.visible = true;
};
if (button2 == 0){
Choice2Outline.visible = false;
};
if (button2 == 1){
Choice2Outline.visible = true;
};
if (button3 == 0){
Choice3Outline.visible = false;
};
if (button3 == 1){
Choice3Outline.visible = true;
};
if (button4 == 0){
Choice4Outline.visible = false;
};
if (button4 == 1){
Choice4Outline.visible = true;
};
if (button5 == 0){
Choice5Outline.visible = false;
};
if (button5 == 1){
Choice5Outline.visible = true;
};
if (button6 == 0){
Choice6Outline.visible = false;
};
if (button6 == 1){
Choice6Outline.visible = true;
};
if (button7 == 0){
Choice7Outline.visible = false;
};
if (button7 == 1){
Choice7Outline.visible = true;
};
if (button8 == 0){
Choice8Outline.visible = false;
};
if (button8 == 1){
Choice8Outline.visible = true;
};
if (button9 == 0){
Choice9Outline.visible = false;
};
if (button9 == 1){
Choice9Outline.visible = true;
};
if (button10 == 0){
Choice10Outline.visible = false;
};
if (button10 == 1){
Choice10Outline.visible = true;
};
if (button11 == 0){
Choice11Outline.visible = false;
};
if (button11 == 1){
Choice11Outline.visible = true;
};
if (button12 == 0){
Choice12Outline.visible = false;
};
if (button12 == 1){
Choice12Outline.visible = true;
};
}
public function doBothMasturbate():void{
if (ment >= (lib - 10)){
outputMainText("", true);
};
if ((((ment < (lib - 10))) && ((ment >= (lib - 25))))){
outputMainText("", true);
};
if ((((ment < (lib - 25))) && ((ment >= (lib - 50))))){
outputMainText("", true);
};
if (ment < (lib - 50)){
outputMainText("", true);
};
if (lust > 20){
doSexP(10);
};
doLust(-(Math.floor((sen * 1.5))));
}
public function doLevelUP():void{
outputMainText((("You have this many perks pending: " + levelUP) + "\r\rClick on an option to view a description and spend a perk."), true);
bc();
viewButtonOutline(1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1);
viewButtonText(1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1);
buttonWrite(1, "Body Build");
buttonWrite(3, "Hyper Happy");
buttonWrite(5, "Baby Fact");
if (vagTotal > 0){
Choice5.visible = true;
};
buttonWrite(7, "Alchemist");
buttonWrite(12, "Return");
doListen = function ():void{
if (buttonChoice == 1){
outputMainText((("Body Builder is training to make you strong and more buff.\r\rWith every level in Body Builder, you gain a +1 increase to your Strength score.\r\rWith every 2 levels, your body fills out a little more.\r\rEvery 3 levels, you grow 2 inches taller...\r\rYou have " + bodyBuildLevel) + " levels in Body Builder.\r\r\rAre you sure you want to spend a Perk on Body Builder?"), true);
buttonConfirm();
doListen = function ():void{
if (buttonChoice == 6){
stats(1, 0, 0, 0);
outputMainText("You flex you muscles, feeling stronger already!", true);
if (Math.floor(((bodyBuildLevel + 1) / 2)) > Math.floor((bodyBuildLevel / 2))){
body = (body + 2);
outputMainText("\r\rEven your body feels more developed.", false);
};
if (Math.floor(((bodyBuildLevel + 1) / 3)) > Math.floor((bodyBuildLevel / 3))){
tallness = (tallness + 2);
outputMainText("\r\rAnd you measure 2 inches taller than you were before.", false);
};
bodyBuildLevel++;
levelUP--;
doEnd();
} else {
doLevelUP();
};
};
};
if (buttonChoice == 3){
outputMainText((("Hyper Happy is a perk for those who like things... 'big'.\r\rEvery level of Hyper Happy, you can choose a body part you would like to make a little bigger.\r\rEvery 3 levels, you become slightly used to your growth, increasing your carrying capacity.\r\rEvery 5th level, you forego that level's smaller change for a much greater growth.\r\rYou have " + hyperHappyLevel) + " levels in Hyper Happy."), true);
buttonConfirm();
doListen = function ():void{
if (buttonChoice == 6){
if (Math.floor(((hyperHappyLevel + 1) / 5)) == Math.floor((hyperHappyLevel / 5))){
outputMainText("Choose a body part you would like to increase.", true);
viewButtonText(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0);
viewButtonOutline(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0);
buttonWrite(1, "Penis");
if (cockTotal < 1){
Choice1.visible = false;
};
buttonWrite(2, "Balls");
if (balls < 1){
Choice2.visible = false;
};
buttonWrite(3, "Pussy");
if (vagTotal < 1){
Choice3.visible = false;
};
buttonWrite(4, "Vulva");
if (vagTotal < 1){
Choice4.visible = false;
};
buttonWrite(5, "Clit");
if (vagTotal < 1){
Choice5.visible = false;
};
buttonWrite(6, "Breasts");
buttonWrite(7, "Nipples");
buttonWrite(8, "Udder");
if (udders == false){
Choice8.visible = false;
};
buttonWrite(9, "Teats");
if (udders == false){
Choice9.visible = false;
};
buttonWrite(10, "Butt");
buttonWrite(11, "Hips");
doListen = function ():void{
if (buttonChoice == 1){
outputMainText((((("Your cock" + plural(1)) + " grow") + plural(3)) + " slightly larger."), true);
cockChange(2, 0);
};
if (buttonChoice == 2){
ballSize = (ballSize + 2);
outputMainText("Your testicles swell a bit.", true);
};
if (buttonChoice == 3){
outputMainText((((("Your vagina" + plural(2)) + " grow") + plural(4)) + " slightly deeper."), true);
vagChange(2, 0);
};
if (buttonChoice == 4){
vulvaSize = (vulvaSize + 2);
outputMainText("Your pussy lips swell a bit.", true);
};
if (buttonChoice == 5){
clitSize = (clitSize + 2);
outputMainText((((("Your clit" + plural(2)) + " grow") + plural(4)) + " slightly larger."), true);
};
if (buttonChoice == 6){
breastSize = (breastSize + 2);
outputMainText("Your breasts swell a bit.", true);
};
if (buttonChoice == 7){
nippleSize = (nippleSize + 2);
outputMainText("Your nipples grow slightly longer.", true);
};
if (buttonChoice == 8){
udderSize = (udderSize + 2);
outputMainText("Your udder swells a bit.", true);
};
if (buttonChoice == 9){
teatSize = (teatSize + 2);
outputMainText("Your teats grow slightly longer.", true);
};
if (buttonChoice == 10){
butt = (butt + 2);
outputMainText("Your rump swells a bit.", true);
};
if (buttonChoice == 11){
hips = (hips + 2);
outputMainText("Your hips widen a bit.", true);
};
levelUP--;
hyperHappyLevel++;
doEnd();
};
};
if (Math.floor(((hyperHappyLevel + 1) / 5)) > Math.floor((hyperHappyLevel / 5))){
outputMainText("Choose a body part you would like to greatly increase. This will be 10x more effective than a normal level in Hyper Happy, so be careful what you choose.", true);
viewButtonText(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0);
viewButtonOutline(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0);
buttonWrite(1, "Penis");
if (cockTotal < 1){
Choice1.visible = false;
};
buttonWrite(2, "Balls");
if (balls < 1){
Choice2.visible = false;
};
buttonWrite(3, "Pussy");
if (vagTotal < 1){
Choice3.visible = false;
};
buttonWrite(4, "Vulva");
if (vagTotal < 1){
Choice4.visible = false;
};
buttonWrite(5, "Clit");
if (vagTotal < 1){
Choice5.visible = false;
};
buttonWrite(6, "Breasts");
buttonWrite(7, "Nipples");
buttonWrite(8, "Udder");
if (udders == false){
Choice8.visible = false;
};
buttonWrite(9, "Teats");
if (udders == false){
Choice9.visible = false;
};
buttonWrite(10, "Butt");
buttonWrite(11, "Hips");
doListen = function ():void{
if (buttonChoice == 1){
outputMainText((((("Your cock" + plural(1)) + " grow") + plural(3)) + " much larger."), true);
cockChange(20, 0);
};
if (buttonChoice == 2){
ballSize = (ballSize + 20);
outputMainText("Your testicles swell tremendously.", true);
};
if (buttonChoice == 3){
outputMainText((((("Your vagina" + plural(2)) + " grow") + plural(4)) + " much deeper."), true);
vagChange(20, 0);
};
if (buttonChoice == 4){
vulvaSize = (vulvaSize + 20);
outputMainText("Your pussy lips swell tremendously.", true);
};
if (buttonChoice == 5){
clitSize = (clitSize + 20);
outputMainText((((("Your clit" + plural(2)) + " grow") + plural(4)) + " much larger."), true);
};
if (buttonChoice == 6){
breastSize = (breastSize + 20);
outputMainText("Your breasts swell tremendously.", true);
};
if (buttonChoice == 7){
nippleSize = (nippleSize + 20);
outputMainText("Your nipples grow much longer.", true);
};
if (buttonChoice == 8){
udderSize = (udderSize + 20);
outputMainText("Your udder swells tremendously.", true);
};
if (buttonChoice == 9){
teatSize = (teatSize + 20);
outputMainText("Your teats grow much longer.", true);
};
if (buttonChoice == 10){
butt = (butt + 20);
outputMainText("Your rump swells tremendously.", true);
};
if (buttonChoice == 11){
hips = (hips + 20);
outputMainText("Your hips widen tremendously.", true);
};
levelUP--;
hyperHappyLevel++;
doEnd();
};
};
if (Math.floor(((hyperHappyLevel + 1) / 3)) == Math.floor((hyperHappyLevel / 3))){
outputMainText("\r\rYou also become a bit more accustomed to your attributes, learning how to carry them more efficiently.", false);
carryMod = (carryMod + 10);
};
} else {
doLevelUP();
};
};
};
if (buttonChoice == 5){
outputMainText((("Baby Factory makes you much better at making babies.\r\rEvery level of Baby Factory increases the gestation period of your offspring by half a day.\r\rEvery 2 levels, your chance to get pregnant increases by 5%\r\rEvery 4 levels results in hip and rear growth.\r\rYou have " + babyFactLevel) + " levels in Baby Factory.\r\r\rAre you sure you want to spend a Perk on Baby Factory?"), true);
buttonConfirm();
doListen = function ():void{
if (buttonChoice == 6){
pregTimeMod = (pregTimeMod + 12);
outputMainText("Your womb tingles as it grows more complex, able to maintain pregnancies even longer.", true);
if (Math.floor(((babyFactLevel + 1) / 2)) > Math.floor((babyFactLevel / 2))){
pregChanceMod = (pregChanceMod + 5);
outputMainText("\r\rThere's also an odd feeling like you... 'need' to get pregnant?", false);
};
if (Math.floor(((babyFactLevel + 1) / 4)) > Math.floor((babyFactLevel / 4))){
hips = (hips + 3);
butt = (butt + 3);
outputMainText("\r\rWith all of the fertile preparation, your hips widen and your ass swells, giving you a more fecund appearance.", false);
};
levelUP--;
babyFactLevel++;
doEnd();
} else {
doLevelUP();
};
};
};
if (buttonChoice == 12){
doReturn();
};
if (buttonChoice == 7){
outputMainText((("When not turning metals into gold, alchemists also dabble in a variety of other... things.\r\rWith every level in Alchemist, you can create one potion that has a variety of effects.\r\rEvery second level, you make a more complex potion.\r\rEvery third level, your potion is superior.\r\rYou have " + alchemistLevel) + " levels in Alchemist."), true);
buttonConfirm();
doListen = function ():void{
if (buttonChoice == 6){
if ((((Math.floor(((alchemistLevel + 1) / 2)) == Math.floor((alchemistLevel / 2)))) && ((Math.floor(((alchemistLevel + 1) / 3)) > Math.floor((alchemistLevel / 3)))))){
outputMainText("Which potion would you like to create?\r\rSuperior Lust Draft - When you're having difficulty performing, a quick sip of this will get you up so fast that you may wanna avoid pointing towards any nearby eyes. A batch of Superior Lust Draft results in 3 potions.\r\rSuperior Rejuvenating Potion - Both greatly heals and soothes the body. A batch of Superior Rejuvenating Potion results in 3 potions.\r\rSuper Bad Experiment - The result of mixing the wrong chemicals, this would make for a big badda boom in battle. A batch of Bad Experiment results in 3 potions.\r\rSuperior Express Pregnancy Potion - Tired of waiting for that baby to come? Drink one of these and that baby will be wanting out in no time! A batch of Express Pregnancy results in 2 potions.\r\rSuperior Ball Sweller - When you're ejaculating often, your testicles have difficulty keeping up. A dose of this will help speed up your sperm production so much that you may wanna be wary of explosions. A batch of Ball Sweller results in 3 potions.", true);
viewButtonText(1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0);
viewButtonOutline(1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0);
buttonWrite(1, "S Lust Draft");
buttonWrite(3, "S Rejuv Pot");
buttonWrite(6, "S Bad Exper");
buttonWrite(9, "S Exp Preg");
buttonWrite(11, "S Ball Swell");
doListen = function ():void{
if (buttonChoice == 1){
itemAdd(508);
itemAdd(508);
itemAdd(508);
};
if (buttonChoice == 3){
itemAdd(509);
itemAdd(509);
itemAdd(509);
};
if (buttonChoice == 6){
itemAdd(510);
itemAdd(510);
itemAdd(510);
};
if (buttonChoice == 9){
itemAdd(511);
itemAdd(511);
};
if (buttonChoice == 11){
itemAdd(0x0200);
itemAdd(0x0200);
itemAdd(0x0200);
};
doEnd();
};
} else {
if (Math.floor(((alchemistLevel + 1) / 2)) == Math.floor((alchemistLevel / 2))){
outputMainText("Which potion would you like to create?\r\rLust Draft - When you're having difficulty performing, a quick sip of this will get you up and ready in no time. A batch of Lust Draft results in 4 potions.\r\rRejuvenating Potion - Both heals and soothes the body. A batch of Rejuvenating Potion results in 3 potions.\r\rBad Experiment - The result of mixing the wrong chemicals, this would make for quite the explosive disaster in battle. A batch of Bad Experiment results in 4 potions.\r\rExpress Pregnancy Potion - Tired of waiting for that baby to come? Drink one of these to get a jump on the gestation period! A batch of Express Pregnancy results in 3 potions.\r\rBall Sweller - When you're ejaculating often, your testicles have difficulty keeping up. A dose of this will help speed up your sperm production for the next volley. A batch of Ball Sweller results in 4 potions.", true);
viewButtonText(1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0);
viewButtonOutline(1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0);
buttonWrite(1, "Lust Draft");
buttonWrite(3, "Rejuv Pot");
buttonWrite(6, "Bad Exper");
buttonWrite(9, "Exp Preg");
buttonWrite(11, "Ball Swell");
doListen = function ():void{
if (buttonChoice == 1){
itemAdd(503);
itemAdd(503);
itemAdd(503);
itemAdd(503);
};
if (buttonChoice == 3){
itemAdd(504);
itemAdd(504);
itemAdd(504);
};
if (buttonChoice == 6){
itemAdd(505);
itemAdd(505);
itemAdd(505);
itemAdd(505);
};
if (buttonChoice == 9){
itemAdd(506);
itemAdd(506);
itemAdd(506);
};
if (buttonChoice == 11){
itemAdd(507);
itemAdd(507);
itemAdd(507);
itemAdd(507);
};
doEnd();
};
} else {
if ((((Math.floor(((alchemistLevel + 1) / 2)) > Math.floor((alchemistLevel / 2)))) && ((Math.floor(((alchemistLevel + 1) / 3)) > Math.floor((alchemistLevel / 3)))))){
outputMainText("Which potion would you like to create?\r\rSuperior Gender Swap Potion - If you've ever wondered how the other sex feels, this is a great way to do it. And the best part is your endowments will be of equal proportion! Unless you're both, in which case your proportions will swap, or androgynous, in which case who knows which gender you'll end up as.\r\rSuperior Masochism Potion - This little drink messes up your nervous system for a while, making you perceive all damage as pleasure instead.\r\rRed Dye - A dye that will turn your hair red. Or it sells pretty well too.\r\rSuperior Baby Free Potion - This potion really has no babies in it I swear! Seriously. Please believe me! If you drink it you'll be nearly baby free as well for over a week! A batch of Superior Baby Free results in 2 potions\r\rSuperior Potency Potion - Not happy with the amount of cum you're producing with your measly testicles? This will definitely kick them... into gear!", true);
viewButtonText(1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0);
viewButtonOutline(1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0);
buttonWrite(1, "S Gen Swap");
buttonWrite(3, "S Maso Pot");
buttonWrite(6, "Red Dye");
buttonWrite(9, "S Baby Free");
buttonWrite(11, "S Pot Pot");
doListen = function ():void{
if (buttonChoice == 1){
itemAdd(518);
};
if (buttonChoice == 3){
itemAdd(519);
};
if (buttonChoice == 6){
itemAdd(520);
};
if (buttonChoice == 9){
itemAdd(521);
itemAdd(521);
};
if (buttonChoice == 11){
itemAdd(522);
};
doEnd();
};
} else {
if (Math.floor(((alchemistLevel + 1) / 2)) > Math.floor((alchemistLevel / 2))){
outputMainText("Which potion would you like to create?\r\rGender Swap Potion - If you've ever wondered how the other sex feels, this is a great way to do it. Although you may lose your proportions, you'll know what it feels to be like the opposite gender in no time. Unless you're both, in which case you'd just know how a rather undeveloped version of both genders feels, or androgynous, in which case who knows which gender you'll end up as.\r\rMasochism Potion - This little drink messes up your nervous system for a while, making you perceive some damage as pleasure instead. A batch of Masochism Potion results in 2 potions.\r\rBlack Dye - A dye that will turn your hair black. Or it sells pretty well too.\r\rBaby Free Potion - Though this potion may lack babies as an ingredient, it also reduces the chances of any woman who takes it from getting pregnant for a period of time. A batch of Baby Free results in 2 potions.\r\rPotency Potion - Not happy with the amount of cum you're producing with your measly testicles? This will make your nuts more effective at their job!", true);
viewButtonText(1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0);
viewButtonOutline(1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0);
buttonWrite(1, "Gen Swap");
buttonWrite(3, "Maso Pot");
buttonWrite(6, "Black Dye");
buttonWrite(9, "Baby Free");
buttonWrite(11, "Pot Pot");
doListen = function ():void{
if (buttonChoice == 1){
itemAdd(513);
};
if (buttonChoice == 3){
itemAdd(0x0202);
itemAdd(0x0202);
};
if (buttonChoice == 6){
itemAdd(515);
};
if (buttonChoice == 9){
itemAdd(516);
itemAdd(516);
};
if (buttonChoice == 11){
itemAdd(517);
};
doEnd();
};
};
};
};
};
levelUP--;
alchemistLevel++;
} else {
doLevelUP();
};
};
};
};
}
function __setProp_scrollBar_Scene1_scrollBar_1(){
scrollBar["componentInspectorSetting"] = true;
//unresolved jump
var _slot1 = e;
scrollBar.direction = "vertical";
scrollBar.scrollTargetName = "outputWindow";
scrollBar.visible = true;
scrollBar["componentInspectorSetting"] = false;
//unresolved jump
var _slot1 = e;
}
public function doShop():void{
var buy:int;
bc();
inShop = true;
buy = 0;
viewButtonOutline(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
viewButtonText(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
i = 1;
while (i < 13) {
buttonWrite(i, itemName(goodsID(i)));
i++;
};
buttonWrite(4, "Buy");
buttonWrite(8, "Sell");
buttonWrite(12, "Return");
outputMainText("Click on an item to view a description of the item. If you would like to purchase it, click the Buy button.\r\rIf you would like to sell an item from your bag, click Sell.", true);
doListen = function ():void{
if (((((((!((buttonChoice == 4))) && (!((buttonChoice == 8))))) && (!((buttonChoice == 12))))) && (!((goodsID(buttonChoice) == 0))))){
outputMainText((((itemDescription(goodsID(buttonChoice)) + "\r\rCost: ") + (3 * itemValue(goodsID(buttonChoice)))) + " coins."), true);
buy = buttonChoice;
};
if ((((buttonChoice == 4)) && (!((buy == 0))))){
outputMainText((("\r\rAre you sure you would like to buy" + itemName(goodsID(buttonChoice))) + "?"), false);
buttonConfirm();
doListen = function ():void{
if (buttonChoice == 6){
if (coin < (3 * itemValue(goodsID(buy)))){
outputMainText((((((("Sorry, but you only have " + coin) + " coins. You require at least ") + ((3 * itemValue(goodsID(buy))) - coin)) + " more coins to purchase") + itemName(goodsID(buy))) + "."), true);
doNext();
doListen = function ():void{
doShop();
};
} else {
if (((checkItem(goodsID(buy))) && (!(conItem(goodsID(buy)))))){
outputMainText((("Sorry, but you cannot buy " + itemName(goodsID(buy))) + " if you already have one. Please choose something else."), true);
doNext();
doListen = function ():void{
doShop();
};
} else {
item1 = goodsID(buy);
doCoin((-3 * itemValue(goodsID(buy))));
doProcess();
};
};
} else {
doShop();
};
};
};
if (buttonChoice == 8){
doSell();
};
if (buttonChoice == 12){
inShop = false;
doReturn();
};
};
}
public function doNext():void{
bc();
viewButtonOutline(0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0);
viewButtonText(0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0);
buttonWrite(6, "Next");
}
public function clothesChange(ID:int):void{
if (ID == 1){
changeTop(1);
};
if (ID == 2){
changeBot(2);
};
if (ID == 3){
changeTop(3);
};
if (ID == 4){
changeBot(4);
};
if (ID == 5){
changeTop(5);
changeBot(5);
};
if (ID == 6){
changeTop(6);
changeBot(6);
};
if (ID == 7){
changeBot(7);
};
if (ID == 8){
changeBot(8);
};
if (ID == 9){
changeTop(9);
};
if (ID == 10){
changeBot(10);
};
if (ID == 11){
changeBot(11);
};
if (ID == 12){
changeTop(12);
changeBot(12);
};
if (ID == 13){
changeTop(13);
changeBot(13);
};
if (ID == 14){
changeBot(14);
};
if (ID == 15){
changeBot(15);
};
}
public function doEntice():void{
var chance:int;
chance = percent();
if ((((((((eGen == 1)) && ((gender == 1)))) && (!((ePref == 2))))) && (!((ePref == 0))))){
if (chance <= 50){
outputMainText((((((((((("You turn around and bend over before the " + enemyName()) + " stroking the ") + cockDesc()) + " bulge in your ") + clothesBottom()) + " and patting your ") + buttDesc()) + " rump while you wave your ") + hipDesc()) + " hips"), true);
if (tail != 0){
outputMainText(((", your " + tailDesc()) + " tail dancing above"), false);
};
outputMainText(" tantalizingly.", false);
};
if (chance > 50){
outputMainText((((("You flex your muscles, trying to show off your masculinity, while you thrust your " + hipDesc()) + " hips in an attempt to show off your ") + cockDesc()) + " bulge."), true);
};
if ((((ePref == 1)) || ((ePref == 4)))){
doeLust(Math.floor((((percent() / 10) + (eLib / 5)) + enticeMod)));
} else {
if (ePref == 3){
doeLust(Math.floor((((percent() / 10) + (eLib / 10)) + enticeMod)));
};
};
} else {
if ((((((((eGen == 1)) && ((gender == 2)))) && (!((ePref == 1))))) && (!((ePref == 0))))){
if (chance <= 50){
outputMainText(((((("You turn around and bend over before the " + enemyName()) + ", stroking your ") + vulvaDesc()) + " vulva through your ") + clothesBottom()), true);
if ((((lust > 20)) && ((vagMoist > 3)))){
outputMainText(" until your feminine arousal seeps through", false);
};
outputMainText(((". Your " + hipDesc()) + " hips wiggle erotically"), false);
if (tail != 0){
outputMainText(((", your " + tailDesc()) + " tail dancing above"), false);
};
outputMainText(".", false);
};
if (chance > 50){
outputMainText((((("You lick your finger before sliding it into your mouth, sucking and pulling it out slowly with a small drop of saliva dangling upon your supple lips while you rub a " + nipDesc()) + " nipple through your ") + clothesTop()) + " with your other hand."), true);
};
if ((((ePref == 2)) || ((ePref == 4)))){
doeLust(Math.floor((((percent() / 10) + (eLib / 5)) + enticeMod)));
} else {
if (ePref == 3){
doeLust(Math.floor((((percent() / 10) + (eLib / 10)) + enticeMod)));
};
};
} else {
if ((((((((eGen == 2)) && ((gender == 1)))) && (!((ePref == 2))))) && (!((ePref == 0))))){
if (chance <= 50){
outputMainText((((("You pull " + pullUD(2)) + " your ") + clothesBottom()) + " a little, revealing the base of your cock-flesh"), true);
if (lust > 20){
outputMainText((((", the " + cockDesc()) + " erection pulsing strongly beneath your ") + clothesBottom()), false);
};
outputMainText(", rubbing it to show off what you can offer", false);
if ((((lust > 20)) && ((cockMoist > 3)))){
outputMainText(", a blotch of pre beginning to seep across the fabric", false);
};
outputMainText(".", false);
};
if (chance > 50){
outputMainText("You flex your muscles as you groan with sexual desire, trying to turn you opponent on with the possibilities of what might come.", true);
};
if ((((ePref == 1)) || ((ePref == 4)))){
doeLust(Math.floor((((percent() / 10) + (eLib / 5)) + enticeMod)));
} else {
if (ePref == 3){
doeLust(Math.floor((((percent() / 10) + (eLib / 10)) + enticeMod)));
};
};
} else {
if ((((((((eGen == 2)) && ((gender == 2)))) && (!((ePref == 1))))) && (!((ePref == 0))))){
if (chance <= 50){
outputMainText((("You spread you knees, crouching down as both hands grind into your " + vulvaDesc()) + " pussy"), true);
if ((((lust > 20)) && ((vagMoist > 3)))){
outputMainText(((", your honey spreading from the crotch of your " + clothesBottom()) + ","), false);
};
if (tail != 0){
outputMainText(((", your " + tailDesc()) + " tail swishing across the ground,"), false);
};
outputMainText(((" luring the " + enemyName()) + " to come grind instead."), false);
};
if (chance > 50){
outputMainText((("Your arms hug beneath your " + boobDesc()) + " chest, squeezing the mounds and making them look even bigger"), true);
if ((((((lust > 20)) && ((nippleSize > 1)))) || ((nippleSize > 6)))){
outputMainText((((", your " + nipDesc()) + " nipples clearly visible through your ") + clothesTop()), false);
};
outputMainText(".", false);
};
if ((((ePref == 2)) || ((ePref == 4)))){
doeLust(Math.floor((((percent() / 10) + (eLib / 5)) + enticeMod)));
} else {
if (ePref == 3){
doeLust(Math.floor((((percent() / 10) + (eLib / 10)) + enticeMod)));
};
};
} else {
if ((((((((eGen == 3)) && ((gender == 1)))) && (!((ePref == 2))))) && (!((ePref == 0))))){
if (chance <= 25){
outputMainText((((((((((("You turn around and bend over before the " + enemyName()) + " stroking the ") + cockDesc()) + " bulge in your ") + clothesBottom()) + " and patting your ") + buttDesc()) + " rump while you wave your ") + hipDesc()) + " hips"), true);
if (tail != 0){
outputMainText(((", your " + tailDesc()) + " tail dancing above"), false);
};
outputMainText(" tantalizingly.", false);
};
if ((((chance > 25)) && ((chance <= 50)))){
outputMainText((((("You flex your muscles, trying to show off your masculinity, while you thrust your " + hipDesc()) + " hips in an attempt to show off your ") + cockDesc()) + " bulge."), true);
};
if ((((chance > 50)) && ((chance <= 75)))){
outputMainText((((("You pull " + pullUD(2)) + " your ") + clothesBottom()) + " a little, revealing the base of your cock-flesh"), true);
if (lust > 20){
outputMainText((((", the " + cockDesc()) + " erection pulsing strongly beneath your ") + clothesBottom()), false);
};
outputMainText(", rubbing it to show off what you can offer", false);
if ((((lust > 20)) && ((cockMoist > 3)))){
outputMainText(", a blotch of pre begining to seep across the fabric", false);
};
outputMainText(".", false);
};
if (chance > 75){
outputMainText("You flex your muscles as you groan with sexual desire, trying to turn you opponent on with the possibilities of what might come.", true);
};
if ((((ePref == 1)) || ((ePref == 4)))){
doeLust(Math.floor((((percent() / 10) + (eLib / 5)) + enticeMod)));
} else {
if (ePref == 3){
doeLust(Math.floor((((percent() / 10) + (eLib / 10)) + enticeMod)));
};
};
} else {
if ((((((((eGen == 3)) && ((gender == 2)))) && (!((ePref == 1))))) && (!((ePref == 0))))){
if (chance <= 25){
outputMainText((("You spread your knees, crouching down as both hands grinding into your " + vulvaDesc()) + " pussy"), true);
if ((((lust > 20)) && ((vagMoist > 3)))){
outputMainText(((", your honey spreading from the crotch of your " + clothesBottom()) + ","), false);
};
if (tail != 0){
outputMainText(((", your " + tailDesc()) + " tail swishing across the ground,"), false);
};
outputMainText(((" luring the " + enemyName()) + " to come grind instead."), false);
};
if ((((chance > 25)) && ((chance <= 50)))){
outputMainText((("Your arms hug beneath your " + boobDesc()) + " chest, squeezing the mounds and making them look even bigger"), true);
if ((((((lust > 20)) && ((nippleSize > 1)))) || ((nippleSize > 6)))){
outputMainText(((((", your " + nipDesc()) + " nipples clearly visible through your ") + clothesTop()) + "."), false);
};
outputMainText(".", false);
};
if ((((chance > 50)) && ((chance <= 75)))){
outputMainText(((((("You turn around and bend over before the " + enemyName()) + ", stroking your ") + vulvaDesc()) + " vulva through your ") + clothesBottom()), true);
if ((((lust > 20)) && ((vagMoist > 3)))){
outputMainText(" until your feminine arousal seeps through", false);
};
outputMainText(((". Your " + hipDesc()) + " hips waggle erotically"), false);
if (tail != 0){
outputMainText(((", your " + tailDesc()) + " tail dancing above"), false);
};
outputMainText(".", false);
};
if (chance > 75){
outputMainText((((("You lick your finger before sliding it into your mouth, sucking and pulling it out slowly with a small drop of saliva dangling upon your supple lips while you rub a " + nipDesc()) + " nipple through your ") + clothesTop()) + " with your other hand."), true);
};
if ((((ePref == 2)) || ((ePref == 4)))){
doeLust(Math.floor(((percent() / 10) + (eLib / 5))));
} else {
if (ePref == 3){
doeLust(Math.floor(((percent() / 10) + (eLib / 10))));
};
};
} else {
if ((((((gender == 3)) && (!((ePref == 0))))) && (!((eGen == 0))))){
if (chance <= 25){
outputMainText((((((((((((("You turn around and bend over before the " + enemyName()) + ", patting your ") + buttDesc()) + " ass and ") + vulvaDesc()) + " pussy. You waggle your ") + hipDesc()) + " hips, the ") + cockDesc()) + " bulge in your ") + clothesBottom()) + " swaying"), true);
if (tail != 0){
outputMainText(((", your " + tailDesc()) + " tail dancing above"), false);
};
outputMainText(" deliciously.", false);
};
if ((((chance > 25)) && ((chance <= 50)))){
outputMainText((((("Your arms hug beneath your " + boobDesc()) + " chest, squeezing the mounds and making them look even bigger while you flex, thrusting at the air with your ") + cockDesc()) + " package bobbing."), true);
};
if ((((chance > 50)) && ((chance <= 75)))){
outputMainText((((("You pull " + pullUD(2)) + " your ") + clothesBottom()) + " a little, revealing the base of your male anatomy while you spread your knees, crouching down as both hands grind across the bulge and into your female portions"), true);
if ((((lust > 20)) && ((((vagMoist > 3)) || ((cockMoist > 3)))))){
outputMainText(", the fabric quickly growing damp", false);
};
outputMainText(".", false);
if (tail != 0){
outputMainText((("Your " + tailDesc()) + " tail swishes across the ground in anticipation."), false);
};
};
if (chance > 75){
outputMainText((((("You lick your finger before sliding it into your mouth, sucking and pulling it out slowly with a small drop of saliva dangling upon your supple lips while you rub the " + cockDesc()) + " phallic outline in your ") + clothesBottom()) + " with your other hand."), true);
};
if ((((ePref == 3)) || ((ePref == 4)))){
doeLust(Math.floor(((percent() / 10) + (eLib / 5))));
} else {
if ((((ePref == 1)) || ((ePref == 2)))){
doeLust(Math.floor(((percent() / 10) + (eLib / 10))));
};
};
} else {
if ((((((gender == 0)) && (!((ePref == 0))))) && (!((eGen == 0))))){
outputMainText((("Your " + hipDesc()) + " hips dance provocatively while you lick and suckle your fingers, trying to show off what you can do with what you've still got."), true);
doeLust(Math.floor(((percent() / 10) + (eLib / 10))));
} else {
outputMainText((("Your attempt at an erotic display only seems to turn the " + enemyName()) + " off further."), true);
eLust = (eLust - 5);
};
};
};
};
};
};
};
};
}
public function itemValue(ID:int):int{
var tempNum:int;
tempNum = 0;
if (ID == 1){
tempNum = 13;
};
if (ID == 101){
tempNum = 50;
};
if (ID == 102){
tempNum = 50;
};
if (ID == 103){
tempNum = 20;
};
if (ID == 104){
tempNum = 100;
};
if (ID == 105){
tempNum = 30;
};
if (ID == 106){
tempNum = 75;
};
if (ID == 110){
tempNum = 20;
};
if (ID == 111){
tempNum = 15;
};
if (ID == 112){
tempNum = 15;
};
if (ID == 113){
tempNum = 15;
};
if (ID == 114){
tempNum = 15;
};
if (ID == 115){
tempNum = 10;
};
if (ID == 116){
tempNum = 20;
};
if (ID == 117){
tempNum = 30;
};
if (ID == 118){
tempNum = 55;
};
if (ID == 119){
tempNum = 40;
};
if (ID == 120){
tempNum = 30;
};
if (ID == 121){
tempNum = 15;
};
if (ID == 122){
tempNum = 15;
};
if (ID == 123){
tempNum = 15;
};
if (ID == 124){
tempNum = 15;
};
if (ID == 200){
tempNum = 1;
};
if (ID == 201){
tempNum = 15;
};
if (ID == 202){
tempNum = 15;
};
if (ID == 203){
tempNum = 5;
};
if (ID == 204){
tempNum = 1;
};
if (ID == 205){
tempNum = 1;
};
if (ID == 206){
tempNum = 30;
};
if (ID == 207){
tempNum = 20;
};
if (ID == 208){
tempNum = 15;
};
if (ID == 209){
tempNum = 3;
};
if (ID == 210){
tempNum = 17;
};
if (ID == 211){
tempNum = 10;
};
if (ID == 212){
tempNum = 14;
};
if (ID == 213){
tempNum = 5;
};
if (ID == 214){
tempNum = 5;
};
if (ID == 215){
tempNum = 1;
};
if (ID == 216){
tempNum = 100;
};
if (ID == 217){
tempNum = 40;
};
if (ID == 218){
tempNum = 20;
};
if (ID == 219){
tempNum = 5;
};
if (ID == 220){
tempNum = 50;
};
if (ID == 221){
tempNum = 30;
};
if (ID == 500){
tempNum = 5;
};
if (ID == 501){
tempNum = 15;
};
if (ID == 502){
tempNum = 70;
};
if (ID == 503){
tempNum = 10;
};
if (ID == 504){
tempNum = 10;
};
if (ID == 505){
tempNum = 10;
};
if (ID == 506){
tempNum = 10;
};
if (ID == 507){
tempNum = 10;
};
if (ID == 508){
tempNum = 25;
};
if (ID == 509){
tempNum = 25;
};
if (ID == 510){
tempNum = 25;
};
if (ID == 511){
tempNum = 25;
};
if (ID == 0x0200){
tempNum = 25;
};
if (ID == 513){
tempNum = 20;
};
if (ID == 0x0202){
tempNum = 20;
};
if (ID == 515){
tempNum = 20;
};
if (ID == 516){
tempNum = 20;
};
if (ID == 517){
tempNum = 20;
};
if (ID == 518){
tempNum = 50;
};
if (ID == 519){
tempNum = 50;
};
if (ID == 520){
tempNum = 50;
};
if (ID == 521){
tempNum = 50;
};
if (ID == 522){
tempNum = 50;
};
if (ID == 523){
tempNum = 2;
};
if (ID == 524){
tempNum = 7;
};
if (ID == 525){
tempNum = 25;
};
if (ID == 526){
tempNum = 5;
};
return (tempNum);
}
public function moistMod(which:int):Number{
var tempNum:Number;
tempNum = 0;
if (lust >= 75){
if (which == 1){
tempNum = (cockMoist / 12);
};
if (which == 2){
tempNum = (vagMoist / 12);
};
} else {
if (lust >= 50){
if (which == 1){
tempNum = ((cockMoist - 3) / 12);
};
if (which == 2){
tempNum = ((vagMoist - 3) / 12);
};
} else {
if (lust >= 25){
if (which == 1){
tempNum = ((cockMoist - 6) / 12);
};
if (which == 2){
tempNum = ((vagMoist - 6) / 12);
};
} else {
if (which == 1){
tempNum = ((cockMoist - 9) / 12);
};
if (which == 2){
tempNum = ((vagMoist - 9) / 12);
};
};
};
};
if (tempNum < 0){
tempNum = 0;
};
return (tempNum);
}
public function enemyName():String{
var tempStr:String;
tempStr = "ENEMY NAME ERROR";
if (enemyID == 101){
tempStr = "cock-snake";
};
if (enemyID == 201){
tempStr = "lone male wolf";
};
if (enemyID == 301){
tempStr = "felin in heat";
};
if (enemyID == 302){
tempStr = "drunken equan";
};
if (enemyID == 303){
tempStr = "octopus girl";
};
return (tempStr);
}
public function eDmg(eweapon:Number):int{
var dmg:int;
dmg = Math.floor((((percent() / eweapon) + (eStr / 2)) - ((100 - sen) / 20)));
return (dmg);
}
public function nipDesc():String{
var chance:int;
var tempStr:String;
chance = percent();
tempStr = ("NIPPLE ERROR " + nippleSize);
if (chance <= 100){
if (nippleSize <= 2){
tempStr = "small";
};
if ((((nippleSize > 2)) && ((nippleSize <= 5)))){
tempStr = "noticeable";
};
if ((((nippleSize > 5)) && ((nippleSize <= 9)))){
tempStr = "blatant";
};
if ((((nippleSize > 9)) && ((nippleSize <= 30)))){
tempStr = "teat-like";
};
if ((((nippleSize > 30)) && ((nippleSize <= 50)))){
tempStr = "cock-like";
};
if ((((nippleSize > 50)) && ((nippleSize <= 100)))){
tempStr = "horsecock-like";
};
if ((((nippleSize > 100)) && ((nippleSize <= 140)))){
tempStr = "arm-length";
};
if ((((nippleSize > 140)) && ((nippleSize <= 300)))){
tempStr = "street-clearing";
};
if (nippleSize > 300){
tempStr = "obscene";
};
};
if (chance > 50){
if (nippleSize <= 2){
tempStr = "";
};
if ((((nippleSize > 2)) && ((nippleSize <= 5)))){
tempStr = "perky";
};
if ((((nippleSize > 5)) && ((nippleSize <= 9)))){
tempStr = "hypnotizing";
};
if ((((nippleSize > 9)) && ((nippleSize <= 30)))){
tempStr = "long";
};
if ((((nippleSize > 30)) && ((nippleSize <= 50)))){
tempStr = "huge";
};
if ((((nippleSize > 50)) && ((nippleSize <= 100)))){
tempStr = "enormous";
};
if ((((nippleSize > 100)) && ((nippleSize <= 140)))){
tempStr = "extreme";
};
if ((((nippleSize > 140)) && ((nippleSize <= 300)))){
tempStr = "ridiculous";
};
if (nippleSize > 300){
tempStr = "obscene";
};
};
return (tempStr);
}
public function vagChange(sizeChange:int, totalChange:int):void{
if (((((((((vagSize + sizeChange) <= 0)) || (((vagTotal + totalChange) < 1)))) && ((vagSize > 0)))) && ((vagTotal > 0)))){
outputMainText((((((((("\r\rSudden intense cramping makes you double over. A slight moistness in your " + clothesBottom()) + " causes your hand to inspect the situation. It reaches your once ") + vulvaDesc()) + " vulva just in time to feel it shrink to nothing, sealing over with ") + skinDesc()) + ". It seems you have lost your vagina") + plural(2)) + ", "), false);
if (cockTotal > 0){
outputMainText((("leaving only your cock" + plural(1)) + " remaining. You are now considered only male."), false);
gender = 1;
};
if (cockTotal < 1){
outputMainText("leaving you with no genetalia, completely androgynous where it matters. Things might be difficult...", false);
gender = 0;
};
vagBellyChange(sizeChange, totalChange);
stats(0, 0, (2 * vagTotal), 0);
vagSize = 0;
vagTotal = 0;
vulvaSize = 0;
clitSize = 0;
} else {
if (((((vagTotal + totalChange) > 0)) && ((vagTotal < 1)))){
outputMainText((("\r\rYour tummy feels weird as your thighs rub against each other. Your " + clothesBottom()) + " feels wet in the crotch, an oddly new sensation. Reaching in, your hand slips across sensitive and supple flesh. It splits beneath your touch, letting your finger slip in between the moist folds. You let out a moan as your palm slips across the sensitive bump at the front of the crevice, your finger sinking into a hole. The tip brushes against an even more sensitive ring that sinks further into your body - a fresh womb."), false);
vagSize = 1;
vulvaSize = 1;
clitSize = 1;
stats(0, 0, (2 * totalChange), 0);
vagBellyChange(sizeChange, totalChange);
vagTotal = (vagTotal + totalChange);
vagSize = (vagSize + sizeChange);
if (cockTotal > 0){
outputMainText((("\r\rYou lay your " + cockDesc()) + " cock back down to cover your new slit, as you're now considered to be both genders... A herm."), false);
gender = 3;
} else {
outputMainText("\r\rYou have now graduated from androgynous to female, congratulations!", false);
gender = 2;
};
} else {
if ((((totalChange > 0)) && ((vagTotal > 0)))){
outputMainText((("\r\rYour " + clothesBottom()) + " feels wet in the crotch, an oddly new sensation. Reaching in, your hand slips across another slit of sensitive and supple flesh. It splits beneath your touch, letting your finger slip in between the moist folds. You let out a moan as your palm slips across another bump at the front of the crevice, your finger sinking into a hole. A brand new vagina to go with the rest."), false);
if (totalChange > 1){
outputMainText(((((" Yet, that's simply the first. More moistness slimes your hand as " + totalChange) + " more gashes fill your ") + vulvaDesc()) + " groin, all as sensitive and large as the first."), false);
};
vagBellyChange(sizeChange, totalChange);
stats(0, 0, (2 * totalChange), 0);
vagTotal = (vagTotal + totalChange);
vagSize = (vagSize + sizeChange);
} else {
if ((((totalChange < 0)) && (((vagTotal + totalChange) > 0)))){
outputMainText((((("\r\rYou notice an odd sensation of numbness within your groin. Slipping a hand into your " + clothesBottom()) + ", you notice you're missing ") + -(totalChange)) + " of your vaginas."), false);
vagBellyChange(sizeChange, totalChange);
stats(0, 0, (2 * totalChange), 0);
vagTotal = (vagTotal + totalChange);
vagSize = (vagSize + sizeChange);
} else {
if (vagTotal > 0){
vagBellyChange(sizeChange, totalChange);
vagSize = (vagSize + sizeChange);
};
};
};
};
};
}
public function newGameGo():void{
appearanceText.visible = false;
appearanceBox.visible = false;
buttonConfirm();
outputMainText("Are you sure you would like to start a new game?", true);
if (currentState == 0){
Choice7.visible = false;
};
doListen = function ():void{
if (buttonChoice == 6){
hideUpDown();
statPane.visible = true;
statValuePane.visible = true;
DayPane.visible = true;
DayValuePane.visible = true;
clockPane.visible = true;
levelPane.visible = true;
levelValuePane.visible = true;
currentState = 0;
currentZone = 0;
inBag = false;
inShop = false;
str = 0;
ment = 0;
lib = 0;
sen = 0;
HP = 0;
lust = 0;
coin = 0;
day = 0;
hour = 8;
SexP = 0;
levelUP = 0;
level = 0;
runMod = 0;
rapeMod = 0;
cumMod = 1;
cockSizeMod = 1;
vagSizeMod = 1;
vagElastic = 1;
milkMod = 0;
carryMod = 0;
bellyMod = 0;
pregChanceMod = 0;
pregTimeMod = 0;
enticeMod = 0;
milkHPMod = 0;
gender = 0;
race = 0;
body = 0;
dominant = 0;
hips = 0;
butt = 0;
tallness = 0;
skinType = 0;
tail = 0;
ears = 0;
hair = 0;
hairLength = 0;
hairColor = 0;
cockTotal = 0;
humanCocks = 0;
horseCocks = 0;
wolfCocks = 0;
catCocks = 0;
cockSize = 0;
cockMoist = 0;
balls = 0;
ballSize = 0;
showBalls = true;
knot = false;
breastSize = 0;
boobTotal = 0;
nippleSize = 1;
udders = false;
udderSize = 0;
teatSize = 0;
clitSize = 0;
vagTotal = 0;
vagSize = 0;
vagMoist = 0;
vulvaSize = 0;
attireTop = 1;
attireBot = 2;
weapon = 10;
pregnancy = false;
pregnancyType = 0;
pregnancyTime = 0;
pregMaxTime = 0;
exhaustion = 0;
exhaustionPenalty = 0;
milkEngorgement = 0;
milkEngorgementLevel = 0;
udderEngorgement = 0;
udderEngorgementLevel = 0;
heat = 0;
heatTime = 0;
heatMaxTime = 0;
lactation = 0;
nipplePlay = 0;
udderPlay = 0;
blueBalls = 0;
teatPump = 0;
nipPump = 0;
cockPump = 0;
clitPump = 0;
vulvaPump = 0;
masoPot = 0;
sMasoPot = 0;
babyFree = 0;
humanAffinity = 0;
horseAffinity = 0;
wolfAffinity = 0;
catAffinity = 0;
cowAffinity = 0;
lilaRep = 0;
malonRep = 0;
malonPreg = 0;
malonChildren = 0;
mistressRep = 0;
babyFactLevel = 0;
bodyBuildLevel = 0;
hyperHappyLevel = 0;
alchemistLevel = 0;
itemArray1 = ["1", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
itemArray2 = ["2", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
itemArray3 = ["3", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
currentItems = 1;
stashArray1 = ["1", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
stashArray2 = ["2", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
stashArray3 = ["3", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
currentStash = 1;
trace("end new game");
doRace();
} else {
doReturn();
};
};
}
public function saveG(e:MouseEvent):void{
saveGo();
}
public function doItemUse(ID:int):void{
var tempNum:int;
var chance:int;
var dmg:int;
var tempCockSize:int;
var tempBallSize:int;
var ID = ID;
if (ID == 103){
bc();
viewButtonText(0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0);
viewButtonOutline(0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0);
buttonWrite(5, "Penis");
if (cockTotal < 1){
Choice5.visible = false;
};
buttonWrite(7, "Pussy");
if (vagTotal < 1){
Choice7.visible = false;
};
buttonWrite(10, "Breasts");
outputMainText("Which genitalia would you like to make a bit dryer?", true);
doListen = function ():void{
if (buttonChoice == 5){
outputMainText((("You dab the sand onto your cock-head" + plural(1)) + ". It feels odd at first, but as you rub yourself to arousal a bit, you notice a decrease in pre."), true);
cockMoist--;
doEnd();
};
if (buttonChoice == 7){
outputMainText((("You dab the sand onto your cunt" + plural(2)) + ". It feels odd at first, but as you rub yourself to arousal a bit, you notice a decrease in lubrications."), true);
vagMoist--;
doEnd();
};
if (buttonChoice == 10){
outputMainText("You dab the sand onto your nipples. It feels odd at first, but as you rub them until they are stiff, you notice a decrease in lactation.", true);
lactChange(-1);
doEnd();
};
};
};
if (ID == 104){
if (currentState != 3){
outputMainText("You can only use a milker while masturbating.", true);
doEnd();
} else {
tempNum = 0;
bc();
viewButtonText(0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0);
viewButtonOutline(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0);
buttonWrite(5, "Breasts");
buttonWrite(7, "Udder");
if (udders == true){
Choice7.visible = true;
};
outputMainText("What would you like to pump?", true);
doListen = function ():void{
var getMilk:int;
if (buttonChoice == 5){
tempNum = 1;
};
if (buttonChoice == 7){
tempNum = 2;
};
getMilk = 0;
outputMainText("You uncoil the tubes of your milker, stretching them out and starting up the pump. Attaching the appropriate cups, you slip them onto your ", true);
if (tempNum == 1){
outputMainText((((nipDesc() + " nipples, until the rims press up and seal onto your ") + boobDesc()) + " breasts with the gentle suction."), false);
};
if (tempNum == 2){
outputMainText((((teatDesc() + " teats, until the rims press up and seal onto your ") + udderDesc()) + " udder with the gentle suction."), false);
};
outputMainText("\r\rYou shudder a little as the stuttered pumping vibrates through your body. Warmth begins to envelop your ", false);
if (tempNum == 1){
outputMainText("chest", false);
};
if (tempNum == 2){
outputMainText("belly", false);
};
outputMainText(" feeling all tingly.", false);
if (lactation > 0){
hrs++;
getMilk = milkAmount(tempNum);
outputMainText(" Droplets of milk begin to trickle around your ", false);
if (tempNum == 1){
outputMainText("nipples", false);
};
if (tempNum == 2){
outputMainText("teats", false);
};
outputMainText(" and slurps through the tubes. Within moments, your ", false);
if (tempNum == 1){
outputMainText("nipples", false);
};
if (tempNum == 2){
outputMainText("teats", false);
};
outputMainText(" throb along with the pulse, ", false);
if (getMilk <= 500){
outputMainText("small dribbles", false);
};
if ((((getMilk > 500)) && ((getMilk <= 1000)))){
outputMainText("spurts", false);
};
if ((((getMilk > 1000)) && ((getMilk <= 2000)))){
outputMainText("sprays", false);
};
if ((((getMilk > 2000)) && ((getMilk <= 8000)))){
outputMainText("jets", false);
};
if ((((getMilk > 8000)) && ((getMilk <= 19000)))){
outputMainText("steady streams", false);
};
if (getMilk > 19000){
outputMainText("small floods", false);
};
outputMainText(" of milk swishing through the tubes and collecting at the machine.", false);
};
outputMainText(" The pleasurable sensation lingers constantly, bringing you to a small orgasm", false);
if (getMilk > 0){
outputMainText(" while your flow of milk slows to a stop", false);
};
outputMainText(".\r\rYou flip the machine off, the cups making a loud kissing sound as the vacuum is released. As they fall to the floor, you rub your aroused ", false);
if (tempNum == 1){
outputMainText((nipDesc() + " nipples"), false);
};
if (tempNum == 2){
outputMainText((teatDesc() + " teats"), false);
};
outputMainText(", shivering from their shortly increased sensitivity, slightly engorged and inflated.", false);
if ((((boobTotal > 2)) || ((tempNum == 2)))){
outputMainText(" Then you move onto the next pair...", false);
};
outputMainText(" Eventually you clean yourself up and put the machine away.", false);
if (tempNum == 1){
nipPump = (nipPump + 10);
if (nipPump > 40){
nipPump = 0;
nippleSize++;
outputMainText("\r\rHowever, this time your nipples don't seem to relax back to their original state, permanently swollen larger...", false);
};
};
if (tempNum == 2){
teatPump = (teatPump + 10);
if (teatPump > 40){
teatPump = 0;
teatSize++;
outputMainText("\r\rHowever, this time your teats don't seem to relax back to their original state, permanently swollen larger...", false);
};
};
doNext();
doListen = function ():void{
if (getMilk < 1000){
outputMainText((("You have produced " + getMilk) + " ml of milk!"), true);
} else {
if (getMilk >= 1000){
outputMainText((("You have produced " + decGet((getMilk / 1000), 1)) + " liters of milk!"), true);
};
};
doLust(-(Math.floor((sen / 2))));
if (lactation > 0){
if (tempNum == 1){
if (((nipplePlay + 10) / (lactation * 30)) > 1){
lactChange(1);
outputMainText("\r\rYour breasts ache from all the milking, growing larger to meet the demand...", false);
boobChange(1);
};
nipplePlay = (nipplePlay + 10);
};
if (tempNum == 2){
if (((udderPlay + 10) / (lactation * 30)) > 1){
lactChange(1);
outputMainText("\r\rYour udder aches from all the milking, growing larger to meet the demand...", false);
udderChange(1);
};
udderPlay = (udderPlay + 10);
};
};
if (getMilk < 1000){
outputMainText("\r\rUnfortunately, you haven't produced enough milk to fill a full bottle yet.", false);
};
if ((((getMilk >= 1000)) && ((getMilk < 3000)))){
item1 = 500;
};
if ((((getMilk >= 3000)) && ((getMilk < 6000)))){
item1 = 501;
};
if ((((getMilk >= 6000)) && ((getMilk < 17000)))){
item1 = 501;
item2 = 501;
};
if ((((getMilk >= 17000)) && ((getMilk < 25000)))){
item1 = 502;
};
if (getMilk >= 25000){
item1 = 502;
outputMainText("\r\rHowever, you produced so much milk that the container in the milker couldn't hold it all and everything beyond a barrel-full splashed out around the edges, making a mess everywhere!", false);
};
hrs++;
doEnd();
};
};
};
};
if (ID == 106){
if (currentState != 3){
outputMainText("You can only use the a penis pump while masturbating.", true);
doEnd();
} else {
tempNum = 0;
bc();
viewButtonText(0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0);
viewButtonOutline(0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0);
buttonWrite(5, "Penis");
if (cockTotal > 0){
Choice5.visible = true;
};
buttonWrite(7, "Clit");
if (vagTotal > 0){
Choice7.visible = true;
};
buttonWrite(10, "None");
outputMainText("What would you like to pump?", true);
doListen = function ():void{
var whichCock:String;
var chance:int;
var getCum:int;
if (buttonChoice == 5){
whichCock = "";
while (whichCock == "") {
chance = percent();
if ((((chance <= 25)) && ((humanCocks > 0)))){
whichCock = "hard human rod";
};
if ((((((chance > 25)) && ((chance <= 50)))) && ((horseCocks > 0)))){
whichCock = "long equine flesh";
};
if ((((((chance > 50)) && ((chance <= 75)))) && ((wolfCocks > 0)))){
whichCock = "pointy wolf meat";
};
if ((((((chance > 75)) && ((chance <= 100)))) && ((catCocks > 0)))){
whichCock = "pink thorny cat prick";
};
};
outputMainText((((((((((("You pick out the appropriate cylinder size for " + oneYour(1)) + " cock") + plural(1)) + ". You slip it over your ") + whichCock) + " and attach the tube at the other end. Whether you were hard or not already, as soon as you flip the switch to the pump on your ") + hipDesc()) + " hips jerks as blood flushes through the ") + cockDesc()) + " member. The vacuum pressure makes it swell, growing stiffer and larger than before!\r\rThe pump then gently relaxes before giving you another nice suck, followed by another release, eventually building into a slow rhythm."), true);
if (lust < 20){
outputMainText(" Yet, despite the pleasurable sensation, you're not really horny enough to climax, the pump merely sucking away at your engorgement for a while before you finally give up and put it away.", false);
cockPump = (cockPump + 10);
if (cockPump > 40){
cockPump = 0;
cockSize++;
outputMainText((("\r\rAlthough, the swelling from the suction doesn't seem to go down all the way, your cock" + plural(1)) + " permanently slightly larger."), false);
};
hrs = 1;
doEnd();
} else {
getCum = cumAmount();
if ((((cockMoist > 0)) && ((cockMoist <= 3)))){
outputMainText(" The bottle within the machine fills a little with your pre as it seeps out, but its hardly much.\r\r", false);
};
if ((((cockMoist > 3)) && ((cockMoist <= 6)))){
outputMainText(" The bottle within the machine fills nearly halfway with your pre as it dribbles out, so you quickly spill it out before you climax.\r\r", false);
};
if ((((cockMoist > 6)) && ((cockMoist <= 9)))){
outputMainText(" The bottle within the machine fills to the brim with your pre as it spurts from your cock, forcing you to quickly replace it with a fresh bottle before you climax.\r\r", false);
};
if ((((cockMoist > 9)) && ((cockMoist <= 12)))){
outputMainText(" The bottle within the machine fills to the brim with your pre as it gushes from your cock, spilling over the rim. You pull the bottle out and let your slime spew across the floor until you're about to climax and replace it with a fresh one.\r\r", false);
};
if (showBalls == true){
outputMainText((("Eventually, your " + ballDesc()) + " balls groan as the sensation gets the best of them. "), false);
};
outputMainText((("You begin to buck as the machine does it's job, your cum spurting from the tip of your " + whichCock) + " and flowing through the tubes, despositing into the bottle. Spurt after spurt gets sucked out, milking your cock until it's dry."), false);
if (getCum < 1000){
outputMainText((("\r\rYou have produced " + getCum) + " ml of spooge!"), false);
} else {
if (getCum >= 1000){
outputMainText((("\r\rYou have produced " + decGet((getCum / 1000), 1)) + " liters of spooge!"), false);
};
};
if (getCum < 150){
outputMainText(" Although, the resulting amount is so small that you can't really do anything with it...", false);
};
if ((((getCum > 400)) && ((getCum <= 600)))){
outputMainText(" The resulting amount of spunk is just enough to fill a vial!", false);
itemAdd(523);
};
if ((((getCum > 600)) && ((getCum <= 1200)))){
outputMainText(" The resulting amount of spunk is more than enough to fill a vial, with a quite a bit left to spill over the edge.", false);
itemAdd(523);
};
if ((((getCum > 1200)) && ((getCum <= 2000)))){
outputMainText(" You come so much that you fill the whole bottle, great for resale!", false);
itemAdd(524);
};
if ((((getCum > 2000)) && ((getCum <= 4500)))){
outputMainText(" You come so much that you fill the whole bottle, and more continues to gush out over the edge, making quite the mess.", false);
itemAdd(524);
};
if ((((getCum > 4500)) && ((getCum <= 5500)))){
outputMainText(" Well prepared, you quickly swap out the bottle with a jug. Your cum floods inside, filling it up to the brim!", false);
itemAdd(525);
};
if ((((getCum > 5500)) && ((getCum <= 21000)))){
outputMainText(" Prepared, you quickly swap out the bottle with a jug. Your cum floods inside, filling it up to the brim. However, you continue to gush, overfilling it until cum spills over the edge and floods around you, making quite the mess...", false);
itemAdd(525);
};
if (getCum > 21000){
outputMainText(" Worried about drowing in your own cum, you quickly pull the bottle out and attach a hose to the item you came prepared with... a barrel. Though you still manage to overfill it, you haven't created quite the natural disaster. And since you can't quite get much for a whole barrel of cum, you top off a jug as well...", false);
itemAdd(525);
itemAdd(526);
};
cockPump = (cockPump + 10);
if (cockPump > 40){
cockPump = 0;
cockSize++;
outputMainText((("\r\rAlthough, after cleaning up, the swelling from the suction doesn't seem to go down, your cock" + plural(1)) + " permanently slightly larger..."), false);
};
doLust(-(Math.floor((sen / 2))));
hrs = 2;
doEnd();
};
};
if (buttonChoice == 7){
if (lust < 20){
outputMainText("You're not really in the mood to do it at the moment, opting to put the pump back in your bag for now...", true);
doEnd();
} else {
if (clitSize <= 20){
outputMainText((((((((("Feeling a little kinky, you take the smallest available cylinder and push it over " + oneYour(2)) + " clit") + plural(2)) + ". Turning on the machine, you quickly notice you're still too small, having to manually seal the cylindar against your skin with your fingers. However, that isn't a problem, as you soon begin to enjoy the sucking on your clit, the button swelling from the vacuum while your fingers sliding through your ") + vulvaDesc()) + " lips and dipping into your hole") + plural(2)) + ", moving in rhythm to the pumping."), true);
};
if (clitSize > 20){
outputMainText((((((((((("Feeling a little kinky, you take some cylinders to slide over " + oneYour(2)) + " clit") + plural(2)) + ". Its so big that it easily fits into one of them, just like it were a cock. Turning on the machine, your ") + hipDesc()) + " hips squirm as the suction forces your button to swell, becoming even larger. Your fingers slide through your ") + vulvaDesc()) + " lips and dip into your hole") + plural(2)) + ", moving in rhythm to the pumping."), true);
};
if ((((vagMoist > 0)) && ((vagMoist <= 3)))){
outputMainText(" The pump manages to suck up a few drops of your feminine honey as you masturbate, misting the tubes slightly.", false);
};
if ((((vagMoist > 3)) && ((vagMoist <= 6)))){
outputMainText(" The pump manages to suck up some of your dribbling feminine honey, letting it drip lazily from into a bottle that was meant for spunk.", false);
};
if ((((vagMoist > 6)) && ((vagMoist <= 9)))){
outputMainText(" The pump manages to suck up a bit of your flowing feminine honey, spurting it into a bottle meant for spunk instead.", false);
};
if ((((vagMoist > 9)) && ((vagMoist <= 12)))){
outputMainText(" The pump manages to suck up a good deal of your gushing feminine honey, filling a bottle in the machine that was meant for spunk instead. It's not something you can sell, but it amuses you nonetheless.", false);
};
outputMainText(" You soon quiver and moan as you come to climax, sighing gently as you turn the pump off to enjoy your swollen clit by hand for a while.", false);
clitPump = (clitPump + 10);
if (clitPump > 40){
clitPump = 0;
clitSize++;
outputMainText((("\r\rAlthough, after cleaning up, the swelling from the suction doesn't seem to go down, your clit" + plural(1)) + " permanently slightly larger..."), false);
};
doLust(-(Math.floor((sen / 2))));
hrs = 2;
doEnd();
};
};
if (buttonChoice == 10){
outputMainText("You realize you didn't actually want to use the pump and put it back in your bag. You fickle bastard.", true);
doEnd();
};
};
};
};
if (ID == 105){
outputMainText((((("Bringing the vial filled with white liquid to your lips, you soon taste the sweet, milky stuff within. Downing it, your " + boobDesc()) + " breasts feel warm. Small blotches of milk form through your ") + clothesTop()) + ", around your nipples. The tingling heat then permeates your body, making you feel slightly more aroused as well."), true);
stats(0, 0, 1, 0);
doLust(5);
lactChange(1);
doEnd();
};
if (ID == 110){
bc();
viewButtonText(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0);
viewButtonOutline(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0);
buttonWrite(1, "Penis");
if (cockTotal < 1){
Choice1.visible = false;
};
buttonWrite(2, "Balls");
if (balls < 1){
Choice2.visible = false;
};
buttonWrite(3, "Pussy");
if (vagTotal < 1){
Choice3.visible = false;
};
buttonWrite(4, "Vulva");
if (vagTotal < 1){
Choice4.visible = false;
};
buttonWrite(5, "Clit");
if (vagTotal < 1){
Choice5.visible = false;
};
buttonWrite(6, "Breasts");
buttonWrite(7, "Nipples");
buttonWrite(8, "Udder");
if (udders == false){
Choice8.visible = false;
};
buttonWrite(9, "Teats");
if (udders == false){
Choice9.visible = false;
};
buttonWrite(10, "Butt");
buttonWrite(11, "Hips");
outputMainText("Select which body part you would like to halve in size. If you don't have that part, this elixer will do nothing but will still be consumed.", true);
doListen = function ():void{
outputMainText("You splash the elixir out onto your ", true);
if (buttonChoice == 1){
outputMainText(((cockDesc() + " cock") + plural(1)), false);
cockChange(Math.floor((-(cockSize) / 2)), 0);
outputMainText(((" and watch with a shiver as the flesh receeds, becoming " + cockDesc()) + "."), false);
};
if (buttonChoice == 2){
outputMainText((ballDesc() + " balls"), false);
ballSize = (ballSize - (ballSize / 2));
outputMainText(((" and watch with a shiver as the orbs shrink, becoming " + ballDesc()) + "."), false);
};
if (buttonChoice == 3){
outputMainText(("vagina" + plural(2)), false);
vagChange(Math.floor((-(vagSize) / 2)), 0);
outputMainText(" and quiver as the fleshy walls within your body shrink.", false);
};
if (buttonChoice == 4){
outputMainText((vulvaDesc() + " vulva"), false);
vulvaSize = (vulvaSize - (vulvaSize / 2));
outputMainText(((" and watch with a quiver as nether-lips shrink, becoming " + vulvaDesc()) + "."), false);
};
if (buttonChoice == 5){
outputMainText(((clitDesc() + " clit") + plural(2)), false);
clitSize = (clitSize - (clitSize / 2));
outputMainText(((((((" and watch with a quiver as the button" + plural(2)) + " shrink") + plural(4)) + ", becoming ") + clitDesc()) + "."), false);
};
if (buttonChoice == 6){
outputMainText((boobDesc() + " breasts"), false);
breastSize = (breastSize - (breastSize / 2));
outputMainText(((" and shudder as they shrink, becoming " + boobDesc()) + "."), false);
};
if (buttonChoice == 7){
outputMainText((nipDesc() + " nipples"), false);
nippleSize = (nippleSize - (nippleSize / 2));
outputMainText(((" and shudder as they receed into your breasts, becoming " + nipDesc()) + "."), false);
};
if (buttonChoice == 8){
outputMainText((udderDesc() + " udder"), false);
udderSize = (udderSize - (udderSize / 2));
outputMainText(((" and watch as it shrivels, becoming " + udderDesc()) + "."), false);
};
if (buttonChoice == 9){
outputMainText((teatDesc() + " teats"), false);
teatSize = (teatSize - (teatSize / 2));
outputMainText(((" and watch as they recede, becoming " + teatDesc()) + "."), false);
};
if (buttonChoice == 10){
outputMainText((buttDesc() + " butt"), false);
butt = (butt - (butt / 2));
outputMainText(((" and squirm as it shrinks, becoming " + buttDesc()) + "."), false);
};
if (buttonChoice == 11){
outputMainText((hipDesc() + " hips"), false);
hips = (hips - (hips / 2));
outputMainText(((" and squirm as they narrow, becoming " + hipDesc()) + "."), false);
};
doEnd();
};
};
if (ID == 111){
outputMainText("Smearing the balm around your body, you feel slightly more sensitive and your curiousity is slightly piquied.", true);
stats(0, 1, 0, 1);
affinity(Math.floor(((percent() / 15) + 2)), -2, -2, -2, -2);
doEnd();
};
if (ID == 112){
outputMainText("Downing the 'juice', you realize it's a lot thicker and stickier than you expected, and quite heady. You heart beats a bit stronger and you shudder a bit.", true);
stats(1, 0, 1, 0);
affinity(-2, Math.floor(((percent() / 15) + 2)), -2, -2, -2);
doEnd();
};
if (ID == 113){
outputMainText("Biting into the leaf, it feels oddly sour. However, afterward your mind feels a bit clearer and your body more prepared for whatever may come.", true);
stats(1, 1, 0, 0);
affinity(-2, -2, Math.floor(((percent() / 15) + 2)), -2, -2);
doEnd();
};
if (ID == 114){
outputMainText("Drinking the slick, slimey, slightly sweet sap, you realize it probably isn't sap... The thought makes you tingle with arousal, your whole body slightly more sensitive.", true);
stats(0, 0, 1, 1);
affinity(-2, -2, -2, Math.floor(((percent() / 15) + 2)), -2);
doEnd();
};
if (ID == 115){
outputMainText("You rub the soothing poultice all over your wounds, quickly making them heal. Rubbing yourself down with the wet rag, you rub a little too much in some areas and become slightly more aroused.", true);
doHP(20);
doLust(5);
doEnd();
};
if (ID == 116){
outputMainText("You have equipped the dagger.", true);
weapon = 116;
doEnd();
};
if (ID == 117){
outputMainText("You have equipped the warhammer.", true);
weapon = 117;
doEnd();
};
if (ID == 118){
outputMainText("You have equipped the saber.", true);
weapon = 118;
doEnd();
};
if (ID == 119){
outputMainText("You have equipped the whip.", true);
weapon = 119;
doEnd();
};
if (ID == 120){
bc();
viewButtonText(0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0);
viewButtonOutline(0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0);
buttonWrite(2, "None");
buttonWrite(5, "Cock");
if (cockTotal < 1){
Choice5.visible = false;
Choice10.visible = false;
};
buttonWrite(7, "Cunt");
if (vagTotal < 1){
Choice7.visible = false;
};
buttonWrite(10, "Balls");
if ((((showBalls == true)) && ((balls > 0)))){
Choice10.visible = true;
};
outputMainText("What would you like to remove?\r\rNote that removing balls removes one at a time. If try to remove them when you only have two left, neuterizer simply hides them, as it would severely damage your plumbing without them.", true);
doListen = function ():void{
if (buttonChoice == 2){
outputMainText("You decide you'd rather keep what you got, for the moment, and put the neuterizer back in your bag.", true);
itemAdd(120);
doEnd();
};
if (buttonChoice == 5){
outputMainText((((((("You rub the neuterizer into " + oneYour(1)) + " ") + cockDesc()) + " cock") + plural(1)) + "..."), true);
cockChange(0, -1);
doEnd();
};
if (buttonChoice == 7){
outputMainText((((((("You rub the neuterizer into " + oneYour(2)) + " ") + vulvaDesc()) + " cunt") + plural(1)) + "..."), true);
vagChange(0, -1);
doEnd();
};
if (buttonChoice == 10){
if (balls > 2){
outputMainText("You rub the neuterizer into your scrotum. You squirm a bit as one of your testicles wrenches a bit, shrinking down. Once it disappears into nothing, you feel perfectly fine again.", true);
balls--;
doEnd();
} else {
outputMainText("Unfortunately, the neuterizer cannot simply make your testicles disappear while you still have any cocks. It would be... too dangerous. But, rubbing it onto your scrotum, your balls disappear up into your body, hidden from view.", true);
showBalls = false;
doEnd();
};
};
};
};
if (ID == 121){
outputMainText("You read the scroll and soft, sparkling lights between to shine and fly around you, faster and faster until you can't see beyond them.\r\rWith a whoosh, they quickly disappear and you find yourself back in the human city of Softlik!", true);
currentState = 1;
inBag = false;
regionChange(1);
doEnd();
};
if (ID == 122){
outputMainText("You read the scroll and soft, sparkling lights between to shine and fly around you, faster and faster until you can't see beyond them.\r\rWith a whistle, they quickly disappear and you find yourself back in the equan city of Firmshaft!", true);
currentState = 1;
inBag = false;
regionChange(2);
doEnd();
};
if (ID == 123){
outputMainText("You read the scroll and soft, sparkling lights between to shine and fly around you, faster and faster until you can't see beyond them.\r\rWith a howl, they quickly disappear and you find yourself back in the lupan city of Tieden!", true);
currentState = 1;
inBag = false;
regionChange(3);
doEnd();
};
if (ID == 124){
outputMainText("You read the scroll and soft, sparkling lights between to shine and fly around you, faster and faster until you can't see beyond them.\r\rWith a swish, they quickly disappear and you find yourself back in the felin city of Siz'Calit!", true);
currentState = 1;
inBag = false;
regionChange(4);
doEnd();
};
if (ID == 201){
bc();
viewButtonText(0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0);
viewButtonOutline(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0);
buttonWrite(5, "Breasts");
if (udders == true){
buttonWrite(7, "Udder");
Choice7.visible = true;
};
outputMainText("What would you like to rub the Milk Creeper Poison into?", true);
doListen = function ():void{
if (buttonChoice == 5){
outputMainText((("You pour out the vial of poison and rub the pearlescant fluid all over your " + boobDesc()) + " breasts. You shiver a little as they tingle warmly, the nipples wobbling as they and the mounds beneath them swell slightly larger."), true);
boobChange(1);
doLust((percent() / 10));
doEnd();
};
if (buttonChoice == 7){
outputMainText((("You pour out the vial of poison and rub the pearlescant fluid all over your " + udderDesc()) + " udder. Your hips twitch a little as the fleshy bag tingles warmly, the teats wobbling as they and the mound beneath them swell slightly larger."), true);
udderChange(1);
doLust((percent() / 10));
doEnd();
};
};
};
if (ID == 202){
if (cockTotal > 0){
outputMainText((((((((("You pull your " + clothesBottom()) + " ") + pullUD(2)) + " and rub the venom into you cock") + plural(1)) + ". Within seconds, you begin to shudder erotically as warmth fills your cock") + plural(1)) + ", becoming erect. Growing and growing, even further than before, gaining 1 full inch in length!"), true);
cockChange(2, 0);
doLust((4 * cockTotal));
doEnd();
};
if (cockTotal < 1){
outputMainText((((("You pull your " + clothesBottom()) + " ") + pullUD(2)) + " and rub the venom into your groin, just above your crotch. Within seconds, you begin to shudder..."), true);
cockChange(0, 1);
doLust((8 * cockTotal));
doEnd();
if ((((clitSize > 20)) && ((percent() <= 25)))){
outputMainText((((((((("\r\rYou feel " + oneYour(2)) + " ") + clitDesc()) + " clit") + plural(2)) + " swell and shift within your ") + clothesBottom()) + ", your lips starting to grow quite oddly as well..."), false);
vagChange(0, -1);
cockChange(0, 1);
doLust(4);
} else {
outputMainText((((((("\r\rYou feel your " + clitDesc()) + " clit") + plural(2)) + " grow warm. Within seconds, you begin to shudder erotically as you clit") + plural(2)) + " grow hot, swelling larger and larger, gaining over half an inch in length!"), false);
clitSize = (clitSize + 3);
doLust((4 * vagTotal));
};
};
};
if (ID == 203){
outputMainText((("You rub the tuft of coarse wolf fur into your " + skinDesc()) + ". The roughness desensitizes you a bit."), true);
stats(0, 0, 0, -3);
doEnd();
};
if (ID == 204){
chance = percent();
if (chance <= 30){
outputMainText("You find some coins inside!", true);
doCoin(Math.floor((percent() / 5)));
} else {
if ((((chance > 40)) && ((chance <= 55)))){
item1 = 105;
} else {
if ((((chance > 55)) && ((chance <= 75)))){
item1 = 103;
} else {
if ((((chance > 75)) && ((chance <= 90)))){
item1 = 114;
} else {
outputMainText("Daww, turns out the pouch was empty...", true);
};
};
};
};
doEnd();
};
if (ID == 205){
chance = percent();
if (chance <= 50){
outputMainText("You find some coins inside!", true);
doCoin(Math.floor(((percent() / 5) + 5)));
} else {
if ((((chance > 50)) && ((chance <= 65)))){
item1 = 112;
} else {
if ((((chance > 65)) && ((chance <= 85)))){
item1 = 115;
} else {
if (chance > 85){
outputMainText("Daww, turns out the pouch was empty...", true);
};
};
};
};
doEnd();
};
if (ID == 207){
chance = percent();
outputMainText("You crack open the wooden cock. ", true);
if (chance <= 15){
outputMainText(((" Sparkling lights erupt from the crack, swirling around in the air until they come together to form the outline of a disembodied glowing cock, looking much like the carving. Before you react, it flips around and dives down, before driving back up between your legs and disappearing into the crotch of your " + clothesBottom()) + "."), false);
vagChange(0, 1);
doLust((percent() / 5));
} else {
if (chance <= 30){
outputMainText(((" Sparkling lights erupt from the crack, swirling around in the air until they come together to form the outline of a disembodied glowing cock, looking much like the carving. Before you react, it flips around and charges at your groin, ramming right above your crotch and disappearing into the front of of your " + clothesBottom()) + "."), false);
cockChange(0, 1);
doLust((percent() / 5));
} else {
outputMainText(" There's nothing inside... Either this thing was just some kinky woman's play-toy, or it was a dud.", false);
};
};
doEnd();
};
if (ID == 208){
chance = percent();
outputMainText("You pop the berry into your mouth. As it pops and gushes with juice within your mouth, your face cringes at how un-sweet it is. Tasting more salty with a thick texture, you swallow it as fast as possible.", true);
if ((((((balls > 0)) && ((ballSize > 0)))) && ((showBalls == true)))){
outputMainText(" Moments later, you feel a warmth in your groin. You squirm as you feel your testicles swell within their scrotum, growing hot with seed... Seems as though this berry has increased the size of your balls, somehow.", false);
if (chance <= 33){
ballSize = (ballSize + 3);
} else {
if (chance <= 66){
ballSize = (ballSize + 2);
} else {
ballSize++;
};
};
doLust((percent() / 10));
} else {
if ((((((balls > 0)) && ((ballSize > 0)))) && ((showBalls == false)))){
outputMainText(" Moments later, you feel a warmth in your groin. You squirm as you feel your cum churning within your body, something swelling within... Seems as though this berry has increased the size of your non-visible balls, somehow.", false);
if (chance <= 33){
ballSize = (ballSize + 3);
} else {
if (chance <= 66){
ballSize = (ballSize + 2);
} else {
ballSize++;
};
};
doLust((percent() / 10));
} else {
outputMainText(" Moments later, you feel a bit of warmth in your groin, but it quickly passes. Now all you're left with is the aftertaste...", false);
};
};
doEnd();
};
if (ID == 209){
if (countItem(209) >= 10){
outputMainText("Hmm... You've got enough grain that you could probably make some blonde-colored dye for your hair. It will take about 10 handfuls of grain to make one dye.\r\rWould you like to make the dye or just eat it?", true);
viewButtonText(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0);
viewButtonOutline(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0);
buttonWrite(5, "Dye");
buttonWrite(7, "Eat");
doListen = function ():void{
if (buttonChoice == 5){
outputMainText("You grind the grain into a pulp, mix in some water, and further pulverize it until you have a nice smooth dye that you can easily apply to your hair or be sold for more.", true);
itemAdd(220);
loseManyItem(209, 10);
doEnd();
} else {
outputMainText("You pop the handful into your mouth and munch on them. Doesn't taste too bad. Although, the thought of mixing them in a bowl with some milk for breakfast does cross your mind, but passes shortly as you feel like you can get through the day better anyways.", true);
exhaustion = (exhaustion - 4);
if (percent() <= 25){
outputMainText((((("\r\rUnfortunately, it seems the carbs have gone straight to your " + buttDesc()) + " ass, making your ") + clothesBottom()) + " feel slightly tight around it as it grows larger."), false);
butt++;
};
doEnd();
};
};
} else {
outputMainText("You pop the handful into your mouth and munch on them. Doesn't taste too bad. Although, the thought of mixing them in a bowl with some milk for breakfast does cross your mind, but passes shortly as you feel like you can get through the day better anyways.", true);
exhaustion = (exhaustion - 4);
if (percent() <= 25){
outputMainText((((("\r\rUnfortunately, it seems the carbs have gone straight to your " + buttDesc()) + " ass, making your ") + clothesBottom()) + " feel slightly tight around it as it grows larger."), false);
butt++;
};
doEnd();
};
};
if (ID == 210){
chance = percent();
outputMainText("You bite into the fold-like cleft of the pussy fruit, sweet juices spilling out around your face and drooling from your chin in long, slimy strands. You devour it shortly and feel great!", true);
doHP(15);
if ((((chance <= 25)) && ((vagTotal > 0)))){
outputMainText((((((("\r\rHowever, it feels as though the juices have run straight to your crotch as a warmth spreads around your cunt" + plural(2)) + ". You squeeze your ") + vulvaDesc()) + " groin through your ") + clothesBottom()) + ", feeling it swell larger...\r\rYou walk a bit awkwardly afterward, getting used to your now extra-swollen lips..."), false);
vulvaSize++;
doLust((percent() / 10));
} else {
if ((((chance <= 50)) && ((vagTotal > 0)))){
outputMainText((((("\r\rHowever, it feels as though the juices have run straight to your crotch as a warmth spreads around your cunt" + plural(2)) + ". You double over as your stomach cramps a little. It feels like your insides are being compressed, your cunt") + plural(2)) + " feeling larger within...\r\rThe cramping shortly passes, but the increased size is real..."), false);
vagChange(1, 0);
doLust((percent() / 10));
} else {
if ((((chance <= 60)) && ((vagTotal > 0)))){
outputMainText((((((((("\r\rHowever, it feels as though the juices have run straight to your crotch as a warmth spreads around your cunt" + plural(2)) + ". You double over as your stomach cramps a little. It feels like your insides are being compressed, your cunt") + plural(2)) + " feeling larger within. You squeeze your ") + vulvaDesc()) + " groin through your ") + clothesBottom()) + ", feeling it swell larger...\r\rThe cramping shortly passes, but you walk awkwardly afterward, getting used to your now extra-swollen lips..."), false);
vulvaSize++;
vagChange(1, 0);
doLust((percent() / 5));
};
};
};
doEnd();
doLust((percent() / 10));
};
if (ID == 211){
outputMainText((("Considering you don't have any cows to give it to, you pop the pill into your mouth and gulp it down. Within seconds your " + boobDesc()) + " chest begins to feel warm..."), true);
lactChange(1);
doLust((percent() / 10));
affinity(-1, -1, -1, -1, Math.floor(((percent() / 20) + 2)));
doEnd();
};
if (ID == 212){
outputMainText((((((((("You munch on the red mushroom. It doesn't taste terribly good or bad, but a blush quickly heats up your face as your chest turns intensely warm. Your " + clothesTop()) + " feels unexpectedly tight.\r\rAs you look down, you let out a gasp as your ") + boobDesc()) + " chest swells beneath your ") + clothesTop()) + ", your ") + nipDesc()) + " nipples pushing against the fabric.\r\rThe warmth quickly passes, leaving your chest-bumps a bit more wobbly"), true);
boobChange(1);
doEnd();
};
if (ID == 213){
bc();
viewButtonText(0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0);
viewButtonOutline(0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0);
buttonWrite(5, ("Cock" + plural(1)));
buttonWrite(7, ("Cunt" + plural(2)));
buttonWrite(10, "Breasts");
if (cockTotal > 0){
Choice5.visible = true;
};
if (vagTotal > 0){
Choice7.visible = true;
};
outputMainText("What would you like to rub the wet, slimy cloth on?", true);
doListen = function ():void{
if (buttonChoice == 5){
outputMainText((((((((((("You rub the slimy cloth around the head" + plural(1)) + " of your ") + cockDesc()) + " cock") + plural(1)) + ", polishing until there's a nice sheen. You feel a bit aroused from doing so, yet the cloth seems to have finally dried off.\r\rHowever, instead your cock") + plural(1)) + " begin") + plural(3)) + " dripping with the slime of the cloth instead..."), true);
cockMoist++;
if (cockMoist > 12){
outputMainText("\r\rHowever, that's not really any different than normal, leaving you fairly unaffected.", false);
};
doLust((percent() / 10));
doEnd();
};
if (buttonChoice == 7){
outputMainText((((((((("You rub the slimy cloth through the lips of your " + vulvaDesc()) + " cunt") + plural(2)) + " until your thighs are completely wet. You feel a bit aroused from doing so, yet the cloth seems to have finally dried off.\r\rHowever, instead your cunt") + plural(2)) + " begin") + plural(4)) + " dripping with the slime of the cloth instead..."), true);
vagMoist++;
if (vagMoist > 12){
outputMainText("\r\rHowever, that's not really any different than normal, leaving you fairly unaffected.", false);
};
doLust((percent() / 10));
doEnd();
};
if (buttonChoice == 10){
outputMainText((((("You rub the slimy cloth over your " + boobDesc()) + " breasts and ") + nipDesc()) + " nipples until they're all completely wet. You feel a bit aroused from doing so, yet the cloth seems to have finally dried off.\r\rHowever, other than make your chest shine erotically, it doesn't really do much."), true);
doLust((percent() / 10));
doEnd();
};
};
};
if (ID == 214){
outputMainText("You down the bottle of milk and feel refreshed!", true);
doHP((15 + milkHPMod));
affinity(0, 0, 0, 0, Math.floor((percent() / 10)));
exhaustion = (exhaustion - 3);
doEnd();
};
if (ID == 216){
outputMainText("You smear the ink around in your hair, dying it a bright coral pink color!", true);
hairColor = 5;
doEnd();
};
if (ID == 217){
outputMainText("You smear the jelly around your genitals. It's so slick and hot, you can't help but feel immensely aroused.", true);
if (vagTotal > 0){
outputMainText(((" And as you rub it into your nether-lips, you feel it absorb into the walls of your vagina" + plural(2)) + ". Slipping a finger in, it doesn't feel much different, until you actually prod a wall. It bends much more easily, as though it were more elastic than before. You could probably shove even larger things in there without feeling pain..."), false);
vagElastic = (vagElastic + 0.1);
};
doLust(50);
doEnd();
};
if (ID == 218){
outputMainText("You pop the berry into your mouth. As it pops and gushes with juice within your mouth, your face cringes at how un-sweet it is. Tasting more salty with a thick texture, you swallow it as fast as possible.", true);
if ((((((balls > 0)) && ((ballSize > 0)))) && ((showBalls == true)))){
outputMainText(" Moments later, you feel a warmth in your groin. You squirm as your testicles feel crowded, your scrotum growing tight. You look to see and find an extra testicle in your sack!", false);
balls++;
doLust((percent() / 10));
} else {
if ((((((balls > 0)) && ((ballSize > 0)))) && ((showBalls == false)))){
outputMainText(" Moments later, you feel a warmth in your groin. You squirm as you feel your cum churning within your body, something extra growing within... Seems as though this berry caused you to grow an extra internal testicle, somehow.", false);
balls++;
doLust((percent() / 10));
} else {
outputMainText(" Moments later, you feel a bit of warmth in your groin, but it quickly passes. Now all you're left with is the aftertaste...", false);
};
};
doEnd();
};
if (ID == 219){
outputMainText("You crack the egg open and swallow its contents, your belly thanking you for the food.", true);
doHP(5);
if (percent() <= 25){
outputMainText("\r\rHowever, the fertile nature of the egg (and lots of protein) seem to go straight to your hips, making them grow wider.", false);
hips++;
};
doEnd();
};
if (ID == 220){
outputMainText("You smear the dye around in your hair and wash the excess out, making your hair blonde in color!", true);
hairColor = 2;
doEnd();
};
if (ID == 221){
outputMainText("You down the vial. It's so sweet that your face puckers a bit, the concentrated syrup slowly dripping down your throat.", true);
if (vagTotal < 1){
outputMainText("\r\rYour loins feel quite warm for a moment, but the sensation quickly passes. It does nothing for you other than overwhelm your sweet-tooth.", false);
};
if (vagTotal > 0){
outputMainText((((((("\r\rYour loins begin to grow hot. Your hand jerks down to your crotch, rubbing yourself feverishly through your " + clothesBottom()) + ". The garment quickly grows moist, your arousal spreading between your legs. You can feel your labia swell beneath your grip, your lips bulging out of your grasp, while your belly aches slightly with a bloating sensation. Your clit") + plural(2)) + " squeeze") + plural(4)) + " between your fingers.\r\rThe change soon passes, but the changing in the size of your nethers is easily noticeable, making you walk awakwardly at first as you become accustomed."), false);
vagChange(4, 0);
vulvaSize = (vulvaSize + 4);
clitSize = (clitSize + 4);
vagMoist++;
};
doEnd();
};
if (ID == 500){
outputMainText("You down the bottle of milk and feel refreshed!", true);
doHP((10 + milkHPMod));
exhaustion = (exhaustion - 2);
doEnd();
};
if (ID == 501){
outputMainText("You guzzle down the jug of milk and feel very refreshed! And you feel like you have a rather full bladder...", true);
doHP((40 + milkHPMod));
exhaustion = (exhaustion - 6);
doEnd();
};
if (ID == 502){
outputMainText("You pour the milk out of the barrel into 4 jugs...", true);
item1 = 501;
item2 = 501;
item3 = 501;
item4 = 501;
doEnd();
};
if (ID == 503){
outputMainText("You take a swig of the draft, you loins warming within seconds.", true);
doLust(20);
doEnd();
};
if (ID == 504){
outputMainText("You down the potion, your body feeling much better than before.", true);
doHP(30);
doLust(-15);
doEnd();
};
if (ID == 505){
if (currentState != 2){
outputMainText("You can only use this explosive potion in battle. You put the bad experiment back into your bag.", true);
itemAdd(505);
doEnd();
} else {
dmg = (Math.floor((Math.random() * ((1 + 20) - 10))) + 10);
outputMainText((((("You pull the bad experiment from your bag and toss it at the " + enemyName()) + ". The crude stuff explodes, far enough away to not harm you, dealing ") + dmg) + " damage!"), true);
doeHP(-(dmg));
doBattle();
};
};
if (ID == 506){
if (pregnancy == true){
outputMainText((((("Drinking this potion, you can feel your " + bellyDesc()) + " belly quiver, the offspring inside moving about. With a groan, you double over for a moment, your belly stretching beneath your hands. You can almost hear the ") + skinDesc()) + " creak, growing taut!"), true);
pregnancyTime = (pregnancyTime + 50);
outputMainText((("\r\rA few moments pass before you gather yourself, standing upright once more. You are slightly more swollen now, wielding a " + bellyDesc()) + " gut instead. Fortunately, both you and your offspring are uninjured, though it'll take a bit to get used to the sudden increase in size."), false);
doEnd();
} else {
outputMainText("For some reason, you thought it necessary to drink this potion. It... doesn't seem to have any effect. Though you do strangely feel like you have to go to the bathroom all of a sudden...", true);
doEnd();
};
};
if (ID == 507){
if ((((balls > 0)) && ((showBalls == true)))){
outputMainText((("Downing the potion, you quickly begin to feel a slight ache in your " + ballDesc()) + " testicles, like you haven't had an orgasm in a while..."), true);
blueBalls = (blueBalls + 30);
doEnd();
} else {
if ((((balls > 0)) && ((showBalls == false)))){
outputMainText("Downing the potion, you quickly begin to feel a slight ache in your abdomen, like you haven't had an orgasm in a while...", true);
blueBalls = (blueBalls + 30);
doEnd();
} else {
outputMainText("Despite not having any balls to speak of, you drink this potion anyways. It does nothing. I hope you're happy.", true);
doEnd();
};
};
};
if (ID == 508){
outputMainText("You take a swig of the draft, you loins burning hot within seconds.", true);
doLust(50);
doEnd();
};
if (ID == 509){
outputMainText("You down the potion, your body feeling immensely better than before.", true);
doHP(70);
doLust(-40);
doEnd();
};
if (ID == 510){
if (currentState != 2){
outputMainText("You can only use this explosive potion in battle. You put the bad experiment back into your bag.", true);
itemAdd(510);
doEnd();
} else {
dmg = (Math.floor((Math.random() * ((1 + 40) - 20))) + 20);
outputMainText((((("You pull the super bad experiment from your bag and toss it at the " + enemyName()) + ". The super crude stuff explodes superbly, far enough away to not harm you, dealing a super ") + dmg) + " damage!"), true);
doeHP(-(dmg));
doBattle();
};
};
if (ID == 511){
if (pregnancy == true){
outputMainText((((("Drinking this potion, you can feel your " + bellyDesc()) + " belly shake, the offspring inside moving about. With a groan, you double over for a moment, your belly stretching beneath your hands. You're pretty sure you can hear the ") + skinDesc()) + " creak, growing taut, to the point where you fear it will tear!"), true);
pregnancyTime = (pregnancyTime + 120);
outputMainText((("\r\rA few moments pass before you gather yourself, standing upright once more, having a bit of difficulty doing so. You are much more swollen now, wielding a " + bellyDesc()) + " gut instead. Fortunately, both you and your offspring are uninjured, though you're unsure if you'll be able to get used to this sudden increase in size..."), false);
doEnd();
} else {
outputMainText("For some reason, you thought it necessary to drink this potion. It... doesn't seem to have any effect. Though you do strangely wish there was a bathroom here all of a sudden...", true);
doEnd();
};
};
if (ID == 0x0200){
if ((((balls > 0)) && ((showBalls == true)))){
outputMainText((("Downing the potion, you quickly begin to feel a great ache in your " + ballDesc()) + " testicles, like you haven't had an orgasm in sooo long!"), true);
blueBalls = (blueBalls + 70);
doEnd();
} else {
if ((((balls > 0)) && ((showBalls == false)))){
outputMainText("Downing the potion, you quickly begin to feel a great ache in your abdomen, like you haven't had an orgasm in sooo long!", true);
blueBalls = (blueBalls + 70);
doEnd();
} else {
outputMainText("Despite not having any balls to speak of, you drink this potion anyways. It does nothing. I hope you're happy.", true);
doEnd();
};
};
};
if (ID == 513){
if (gender == 1){
outputMainText((((((((("You ingest the potion and quickly begin to feel its effects. You pull " + pullUD(2)) + " your ") + clothesBottom()) + " and watch as your ") + cockDesc()) + " cock") + plural(1)) + " shrink more and more before eventually disappearing into your groin. Then, you hug your belly as you feel your insides wrench, making room for a small amount of vaginal flesh inside."), true);
if (showBalls == true){
outputMainText(((((" Your " + ballDesc()) + " balls squeeze up between your legs before eventually melding into your ") + skinDesc()) + ", leaving behind 1 tiny pair of feminine lips."), false);
};
if (showBalls == false){
outputMainText(" The skin between your legs swells slightly, forming two tiny mounds, 1 pair of new feminine lips.", false);
};
outputMainText(" The lips part, the fresh air making you shiver as it passes across the moist flesh within. Your hand passes over your clitoris, making you shiver slightly, before you dip your finger into your new cunny, amazed at the sensation of being penetrated like that. For all intents and purposes, you are now a girl.", false);
balls = 0;
ballSize = 0;
cockSize = 0;
stats(0, 0, -((2 * (cockTotal - 1))), 0);
cockTotal = 0;
humanCocks = 0;
horseCocks = 0;
wolfCocks = 0;
catCocks = 0;
vagBellyChange(1, 1);
vagTotal = 1;
vagSize = 1;
vulvaSize = 1;
clitSize = 1;
gender = 2;
} else {
if (gender == 2){
outputMainText("You ingest the potion and quickly begin to feel its effects. You hug your belly as you feel your insides wrench, your vaginal flesh shrinking within.", true);
cockChange(1, 1);
outputMainText((((((("\r\rHowever, it doesn't last long as the last of your vagina" + plural(2)) + " shrink") + plural(4)) + " to nothing, your ") + vulvaDesc()) + " lips disintegrating back against your groin before finally vanishing, making you a boy for all intents and purposes."), false);
vagBellyChange(-(vagSize), -(vagTotal));
stats(0, 0, -((2 * (vagTotal - 1))), 0);
vagSize = 0;
vagTotal = 0;
vulvaSize = 0;
clitSize = 0;
gender = 1;
} else {
if (gender == 3){
outputMainText((((("You ingest the potion and quickly begin to feel its effects. You hug your belly as you feel your insides wrench, your vaginal flesh shrinking within. Your " + clothesBottom()) + " feels loser as your ") + cockDesc()) + " bulges dwindle as well."), true);
if (showBalls == true){
outputMainText(" Even your testicles shrivel up, growing smaller and smaller.", false);
};
outputMainText((((("\r\rBy the time you finally pull " + pullUD(2)) + " your ") + clothesBottom()) + ", all your attributes are like that of a childs..."), false);
vagBellyChange(-((vagSize - 1)), 0);
ballSize = 1;
cockSize = 1;
vagSize = 1;
vulvaSize = 1;
clitSize = 1;
} else {
if (gender == 0){
chance = percent();
outputMainText("You ingest the potion and quickly begin to feel its effects.", true);
if (chance <= 40){
cockChange(1, 1);
};
if ((((chance > 40)) && ((chance <= 80)))){
vagChange(1, 1);
};
if (chance > 80){
cockChange(1, 1);
vagChange(1, 1);
};
};
};
};
};
doEnd();
};
if (ID == 0x0202){
outputMainText("After drinking the potion, your body feels tingly all over. You have the odd feeling like it would be fun to be whipped right about now...", true);
masoPot = (masoPot + 24);
doEnd();
};
if (ID == 515){
outputMainText("You smear the dye around in your hair and wash the excess out, making your hair black in color!", true);
hairColor = 1;
doEnd();
};
if (ID == 516){
outputMainText("Taking the potion, you sudden feel less... fertile than before. You might still be a little fertile, but you suspect you can go out 'clubbing' for the next few days and not have to worry so much about a little extra weight in a few more. If you knew what any of that even meant.", true);
babyFree = (babyFree + 72);
doEnd();
};
if (ID == 517){
if ((((showBalls == true)) && ((balls > 0)))){
outputMainText((("Within seconds of drinking this potion, you can feel your balls grow slightly warmer. You can almost hear them hum as they work harder to produce more fun goop for your cock" + plural(1)) + "."), true);
} else {
if ((((showBalls == true)) && ((balls > 0)))){
outputMainText((("Within seconds of drinking this potion, you can feel your abdomen grow slightly warmer. You can almost hear something inside hum as it works harder to produce more fun goop for your cock" + plural(1)) + "."), true);
} else {
outputMainText("If you had balls to be kicked in, they'd probably be feeling more active right now. Not that you would know, you ball-less freak.", true);
};
};
cumMod = (cumMod + 0.2);
doEnd();
};
if (ID == 518){
if (gender == 1){
outputMainText((((((((("You ingest the potion and quickly begin to feel its effects. You pull " + pullUD(2)) + " your ") + clothesBottom()) + " and watch as your ") + cockDesc()) + " cock") + plural(1)) + " shrink more and more before eventually disappearing into your groin. Then, you hug your belly as you feel your insides wrench, making room for an equal amount of vaginal flesh inside."), true);
if (showBalls == true){
outputMainText(((((((((" Your " + ballDesc()) + " balls squeeze up between your legs before eventually melding into your ") + skinDesc()) + ", forming mounds of equal size until you have ") + cockTotal) + " pair") + plural(1)) + " of feminine lips."), false);
};
if (showBalls == false){
outputMainText(((((" The skin between your legs swells slightly, forming mounds of plush flesh, " + cockTotal) + " pair") + plural(1)) + " of new feminine lips."), false);
};
outputMainText(((((((" The lips part, the fresh air making you shiver as it passes across the moist flesh within. Your hand passes over your new clit" + cockTotal) + ", making you shiver slightly, before you dip your finger into ") + oneYour(1)) + " new cunt") + plural(1)) + ", amazed at the sensation of being penetrated like that. For all intents and purposes, you are now a girl."), false);
vagBellyChange(cockSize, cockTotal);
vagTotal = cockTotal;
vagSize = cockSize;
vulvaSize = ballSize;
clitSize = ballSize;
balls = 0;
ballSize = 0;
cockSize = 0;
cockTotal = 0;
humanCocks = 0;
horseCocks = 0;
wolfCocks = 0;
catCocks = 0;
gender = 2;
} else {
if (gender == 2){
outputMainText("You ingest the potion and quickly begin to feel its effects. You hug your belly as you feel your insides wrench, your vaginal flesh shrinking within.", true);
cockChange(vagSize, vagTotal);
outputMainText((((((("\r\rHowever, it doesn't last long as the last of your vagina" + plural(2)) + " shrink") + plural(4)) + " to nothing, your ") + vulvaDesc()) + " lips disintegrating into your new scrotum, your testicles growing larger and larger before your lips finally vanish, making you a boy for all intents and purposes."), false);
ballSize = vulvaSize;
vagBellyChange(-(vagSize), -(vagTotal));
vagSize = 0;
vagTotal = 0;
vulvaSize = 0;
clitSize = 0;
gender = 1;
} else {
if (gender == 3){
outputMainText((((("You ingest the potion and quickly begin to feel its effects. You hug your belly as you feel your insides wrench, your vaginal flesh attempting to match the size of your male anatomy. Your " + clothesBottom()) + " shakes as your ") + cockDesc()) + " bulges try to mimic your female anatomy as well."), true);
if (showBalls == true){
outputMainText(((((" Even your testicles shift, growing to match your pussy lips, while those lips do the same. Your clit" + plural(2)) + " also change") + plural(4)) + " to more closely match the size of your different vulva."), false);
} else {
outputMainText((((("Even your pussy lips shift, trying to match the size of what's in your abdomen. Your clit" + plural(2)) + " also change") + plural(4)) + " to more closely match the size of your different vulva."), false);
};
outputMainText(" In the end, your whole body feels a little off balanced, having to adjust to the backwards genitals...", false);
tempCockSize = cockSize;
tempBallSize = ballSize;
cockSize = vagSize;
ballSize = vulvaSize;
vagBellyChange((tempCockSize - vagSize), 0);
vagSize = tempCockSize;
vulvaSize = tempBallSize;
clitSize = tempBallSize;
} else {
if (gender == 0){
chance = percent();
outputMainText("You ingest the potion and quickly begin to feel its effects.", true);
if (chance <= 40){
cockChange(Math.ceil((percent() / 5)), 1);
ballSize = Math.ceil((percent() / 5));
};
if ((((chance > 40)) && ((chance <= 80)))){
vagChange(Math.ceil((percent() / 5)), 1);
vulvaSize = Math.ceil((percent() / 5));
clitSize = Math.ceil((percent() / 5));
};
if (chance > 80){
cockChange(Math.ceil((percent() / 5)), 1);
vagChange(Math.ceil((percent() / 5)), 1);
ballSize = Math.ceil((percent() / 5));
vulvaSize = Math.ceil((percent() / 5));
clitSize = Math.ceil((percent() / 5));
};
};
};
};
};
doEnd();
};
if (ID == 519){
outputMainText("After drinking the potion, your body feels like electricity is sparking all over. You have the odd feeling like it would be fun to be beaten to a pulp right about now...", true);
sMasoPot = (sMasoPot + 24);
doEnd();
};
if (ID == 520){
outputMainText("You smear the dye around in your hair and wash the excess out, making your hair red in color!", true);
hairColor = 3;
doEnd();
};
if (ID == 521){
outputMainText("Taking the potion, you sudden feel less... fertile than before. You might still be a little fertile, but you suspect you can go out 'clubbing' for the next several days and not have to worry so much about a little extra weight afterwards. If you knew what any of that even meant.", true);
babyFree = (babyFree + 216);
doEnd();
};
if (ID == 522){
if ((((showBalls == true)) && ((balls > 0)))){
outputMainText((("Within seconds of drinking this potion, you can feel your balls grow slightly hotter. You can almost hear them whir as they work harder to produce more fun goop for your cock" + plural(1)) + "."), true);
} else {
if ((((showBalls == true)) && ((balls > 0)))){
outputMainText((("Within seconds of drinking this potion, you can feel your abdomen grow slightly hotter. You can almost hear something inside whir as it works harder to produce more fun goop for your cock" + plural(1)) + "."), true);
} else {
outputMainText("If you had balls to be kicked in, they'd probably be feeling much more active right now. Not that you would know, you ball-less freak.", true);
};
};
cumMod = (cumMod + 0.5);
doEnd();
};
if (ID == 523){
outputMainText("You pop open the vial of cum and let it ooze down your throat, shivering a bit from the heady taste.", true);
doHP(2);
doLust(5);
doEnd();
};
if (ID == 524){
outputMainText("You gulp down the thick, creamy, sticky cum, having difficulty getting down the large amount of hot spunk with it's heady taste.", true);
doHP(5);
doLust(15);
doEnd();
};
if (ID == 525){
outputMainText("You pour the jug of cum out into 3 bottles...", true);
itemAdd(524);
itemAdd(524);
itemAdd(524);
doEnd();
};
if (ID == 526){
if (currentState == 2){
outputMainText("You have no use for a barrel full of cum in the midst of battle, so you... tuck it away somewhere in your bag?", true);
itemAdd(526);
doEnd();
} else {
outputMainText((("Without much of a use for it otherwise, you decide to... strip down naked and jump in!\r\rThe cum is nice and warm and feels so good on your " + skinDesc()) + ". You scrub yourself nice and thoroughly, making sure to get all the nooks and crannies. And with the slimy goop, you really focus on those crannies~\r\rAfter cleaning yourself up a bit, you sit back and relax, pulling out a toy to play with.\r\r\r'Oh rubber ducky, you're the one. You make bath-time lots of fun~'"), true);
stats(0, 0, 1, 1);
hrs++;
doEnd();
};
};
}
public function vagBellyChange(sizeChange:int, totalChange:int):void{
if (((((((vagSize + sizeChange) * (vagTotal + totalChange)) * vagSizeMod) > (tallness / 2))) && ((((vagSize + sizeChange) * (vagTotal + totalChange)) > (vagSize * vagTotal))))){
outputMainText("\r\rYour belly bulges slightly more as the vaginal flesh within takes up more room than your belly can handle...", false);
if (((vagSize * vagTotal) * vagSizeMod) > (tallness / 2)){
bellyMod = (bellyMod + ((vagSizeMod * sizeChange) * totalChange));
};
if (((vagSize * vagTotal) * vagSizeMod) <= (tallness / 2)){
bellyMod = (bellyMod + ((((vagSize + sizeChange) * (vagTotal + totalChange)) * vagSizeMod) - Math.ceil((tallness / 2))));
};
};
if ((((((vagSize * vagTotal) * vagSizeMod) > (tallness / 2))) && ((((vagSize + sizeChange) * (vagTotal + totalChange)) < (vagSize * vagTotal))))){
outputMainText("\r\rYour belly flattens slightly as the amount of vaginal flesh within shrinks a bit.", false);
if ((((vagSize + sizeChange) * (vagTotal + totalChange)) * vagSizeMod) > (tallness / 2)){
bellyMod = (bellyMod + ((vagSizeMod * sizeChange) * totalChange));
};
if ((((vagSize + sizeChange) * (vagTotal + totalChange)) * vagSizeMod) <= (tallness / 2)){
if (((tallness / 2) + (((vagSize + sizeChange) * (vagTotal + totalChange)) * vagSizeMod)) >= 0){
bellyMod = (bellyMod + (Math.ceil((tallness / 2)) + (((vagSize + sizeChange) * (vagTotal + totalChange)) * vagSizeMod)));
} else {
if (((tallness / 2) + (((vagSize + sizeChange) * (vagTotal + totalChange)) * vagSizeMod)) < 0){
bellyMod = (bellyMod + ((((vagSize + sizeChange) * (vagTotal + totalChange)) * vagSizeMod) + Math.abs((Math.ceil((tallness / 2)) + (((vagSize + sizeChange) * (vagTotal + totalChange)) * vagSizeMod)))));
};
};
};
};
}
public function doPassOut():void{
var tempNum:int;
tempNum = Math.floor((((percent() / 10) * level) + ((level * percent()) / 10)));
if ((coin - tempNum) < 0){
tempNum = coin;
};
specialKOLose();
outputMainText((("\r\rYou pass out from all the pain. When you wake back up, you manage to stumble back to town. However, it seems as though your pockets are a bit lighter for some reason or another.\r\rYou have lost " + tempNum) + " coins."), false);
if (currentState == 2){
currentState = 1;
};
doCoin(-(tempNum));
exhaustion = (exhaustion - Math.floor((percent() / 20)));
hrs = (2 + Math.floor((percent() / 20)));
doEnd();
}
public function hairstyleName(ID:int):String{
var tempStr:String;
tempStr = ("HAIRSTYLE NAME ERROR " + hair);
if (ID == 0){
tempStr = "None";
};
if (ID == 1){
tempStr = "Wavy";
};
if (ID == 2){
tempStr = "Pigtail";
};
if (ID == 3){
tempStr = "Ponytail";
};
if (ID == 4){
tempStr = "Straight";
};
if (ID == 5){
tempStr = "Buzzcut";
};
if (ID == 6){
tempStr = "Mohawk";
};
if (ID == 7){
tempStr = "Bun";
};
if (ID == 8){
tempStr = "Curly";
};
if (ID == 9){
tempStr = "B Pigtail";
};
if (ID == 10){
tempStr = "B Ponytail";
};
if (ID == 11){
tempStr = "Braided";
};
if (ID == 12){
tempStr = "Spiky";
};
if (ID == 13){
tempStr = "Emo";
};
if (ID == 14){
tempStr = "Afro";
};
return (tempStr);
}
public function doSell():void{
var sell:int;
bc();
sell = 0;
viewButtonOutline(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
viewButtonText(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
outputMainText("Click on an item you would like to sell.", true);
i = 1;
while (i < 13) {
buttonWrite(i, itemName(itemID(i)));
i++;
};
buttonWrite(12, "Return");
buttonWrite(4, "<<");
buttonWrite(8, ">>");
showPage(true, 1);
doListen = function ():void{
if (((((((!((buttonChoice == 4))) && (!((buttonChoice == 8))))) && (!((buttonChoice == 12))))) && (!((itemID(buttonChoice) == 0))))){
outputMainText((((itemName(itemID(buttonChoice)) + " sells for ") + itemValue(itemID(buttonChoice))) + ".\r\rAre you sure you want to sell it?"), true);
sell = buttonChoice;
buttonConfirm();
showPage(false, 1);
doListen = function ():void{
if (buttonChoice == 6){
doCoin(itemValue(itemID(sell)));
loseItem(sell);
doSell();
} else {
doSell();
};
};
} else {
if (buttonChoice == 12){
showPage(false, 1);
doShop();
} else {
if (buttonChoice == 4){
if (currentItems == 1){
currentItems = 3;
} else {
if (currentItems == 2){
currentItems = 1;
} else {
if (currentItems == 3){
currentItems = 2;
};
};
};
showPage(true, 1);
doSell();
} else {
if (buttonChoice == 8){
if (currentItems == 1){
currentItems = 2;
} else {
if (currentItems == 2){
currentItems = 3;
} else {
if (currentItems == 3){
currentItems = 1;
};
};
};
showPage(true, 1);
doSell();
};
};
};
};
};
}
public function clothesDescription(ID:int):String{
var tempStr:String;
tempStr = "CLOTHES NAME ERROR";
if (ID == 1){
tempStr = "A generic shirt with no special attributes.\r\rTakes top clothes slot";
};
if (ID == 2){
tempStr = "A generic pair of pants with no special attributes.\r\rTakes bottom clothes slot";
};
if (ID == 3){
tempStr = "A rather revealing bikini top/s, covering all your breasts. Also improves enticement and sensitivity, but reduces your mentality and milk production.\r\rTakes top clothes slot";
};
if (ID == 4){
tempStr = "A rather revealing bikini bottom, covering your groin. Also improves enticement and sensitivity, but reduces your mentality and cum production.\r\rTakes bottom clothes slot.";
};
if (ID == 5){
tempStr = "A courtly dress that's more about giving a good impression than a slutty one. Improves mentality, but reduces strength.\r\rTakes both top and bottom clothes slots.";
};
if (ID == 6){
tempStr = "A suit made of a thin, very tight material that covers most of your body. Greatly improves enticement and sensitivity, but also reduces mentality, run chance, cum and milk production.\r\rTakes both top and bottom clothes slots.";
};
if (ID == 7){
tempStr = "A modest skirt, very helpful in terms of function. Improves run chance, strength, and cum production, but reduces mentality and increases pregnancy chance.\r\rTakes bottom clothes slot.";
};
if (ID == 8){
tempStr = "A pair of shorts, very helpful in terms of function. Improves run chance and strength, but reduces libido.\r\rTakes bottom clothes slot.";
};
if (ID == 9){
tempStr = "A buttoned shirt that improves milk production and mentality, but reduces sensitivity and strength.\r\rTakes top clothes slot.";
};
if (ID == 10){
tempStr = "A diaper that helps soak up some of your moistness and makes your hips look bigger, but reduces mentality.\r\rWarning: Removing the diaper after wearing it could potentially make you even wetter than before you put it on, your body depending too much on it.\r\rTakes bottom clothes slot.";
};
if (ID == 11){
tempStr = "A poofy diaper that helps soak up a lot of your moistness and makes both your hips and butt look bigger, but reduces mentality and libido.\r\rWarning: Removing the poofy diaper after wearing it could potentially make you even wetter than before you put it on, your body depending too much on it.\r\rTakes bottom clothes slot.";
};
if (ID == 12){
tempStr = "A casual dress that gives your body a lot of exposure. Improves sensitivity, cum production, and libido, but reduces run chance, strength, and increases pregnancy chance.\r\rTakes both top and bottom clothes slots.";
};
if (ID == 13){
tempStr = "A skimpy dress that really hugs your curves. Improves sensitivity, enticement, and libido, but reduces strength, mentality, and increases pregnancy chance.\r\rTakes both top and bottom clothes slots.";
};
if (ID == 14){
tempStr = "A short skirt that's more attractive than modest. Improves cum production, sensitivity, and enticement, but reduces mentality and increases pregnancy chance.\r\rTakes bottom clothes slot.";
};
if (ID == 15){
tempStr = "A pair of short shorts that are more skimpy than funtional. Improves sensitivity, enticement, and run chance, but reduces cum production, mentality, and strength.\r\rTakes bottom clothes slot.";
};
return (tempStr);
}
public function cockDesc():String{
var chance:int;
var tempCock:int;
var tempStr:String;
chance = percent();
tempCock = (cockSize * cockSizeMod);
tempStr = ("COCK ERROR " + tempCock);
if (chance <= 100){
if (tempCock <= 8){
tempStr = "puny";
};
if ((((tempCock > 8)) && ((tempCock <= 12)))){
tempStr = "average-sized";
};
if ((((tempCock > 12)) && ((tempCock <= 24)))){
tempStr = "big";
};
if ((((tempCock > 24)) && ((tempCock <= 32)))){
tempStr = "large";
};
if ((((tempCock > 32)) && ((tempCock <= 56)))){
tempStr = "huge";
};
if ((((tempCock > 56)) && ((tempCock <= 72)))){
tempStr = "enormous";
};
if ((((tempCock > 72)) && ((tempCock <= 100)))){
tempStr = "gigantic";
};
if ((((tempCock > 100)) && ((tempCock <= 152)))){
tempStr = "humongous";
};
if ((((tempCock > 152)) && ((tempCock <= 304)))){
tempStr = "tremendous";
};
if ((((tempCock > 304)) && ((tempCock <= 608)))){
tempStr = "colossal";
};
if ((((tempCock > 608)) && ((tempCock <= 1200)))){
tempStr = "ridiculous";
};
if (tempCock > 1200){
tempStr = "impossibly-ginormous";
};
};
if (chance > 50){
if (tempCock <= 8){
tempStr = "infantile";
};
if ((((tempCock > 8)) && ((tempCock <= 12)))){
tempStr = "hand-length";
};
if ((((tempCock > 12)) && ((tempCock <= 24)))){
tempStr = "larger than normal";
};
if ((((tempCock > 24)) && ((tempCock <= 32)))){
tempStr = "foot-long";
};
if ((((tempCock > 32)) && ((tempCock <= 56)))){
tempStr = "thigh-slapping";
};
if ((((tempCock > 56)) && ((tempCock <= 72)))){
tempStr = "knee-knocking";
};
if ((((tempCock > 72)) && ((tempCock <= 100)))){
tempStr = "leg-sized";
};
if ((((tempCock > 100)) && ((tempCock <= 152)))){
tempStr = "person-sized";
};
if ((((tempCock > 152)) && ((tempCock <= 304)))){
tempStr = "car-sized";
};
if ((((tempCock > 304)) && ((tempCock <= 608)))){
tempStr = "bus-sized";
};
if ((((tempCock > 608)) && ((tempCock <= 1200)))){
tempStr = "building-sized";
};
if (tempCock > 1200){
tempStr = "landscape-filling";
};
};
return (tempStr);
}
public function doTailor():void{
var buy:int;
bc();
buy = 0;
viewButtonOutline(1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1);
viewButtonText(1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1);
i = 1;
while (i < 12) {
if (((!((i == 4))) && (!((i == 8))))){
buttonWrite(i, clothesName(clothesID(i)));
};
i++;
};
buttonWrite(4, "Buy");
buttonWrite(12, "Return");
outputMainText("Click on a piece of clothing to view a description for the piece. If you would like to purchase it, click the Buy button.\r\rNote: Buying clothes automatically replaces what you're already wearing. You cannot sell outfits.", true);
doListen = function ():void{
if (((((((!((buttonChoice == 4))) && (!((buttonChoice == 8))))) && (!((buttonChoice == 12))))) && (!((clothesID(buttonChoice) == 0))))){
outputMainText((((clothesDescription(clothesID(buttonChoice)) + "\r\rCost: ") + clothesValue(clothesID(buttonChoice))) + " coins."), true);
buy = buttonChoice;
};
if ((((buttonChoice == 4)) && (!((buy == 0))))){
outputMainText((("\r\rAre you sure you would like to buy " + clothesName(clothesID(buy))) + "?"), false);
if (attireTop == attireBot){
outputMainText((("\r\rBe wary, replacing your " + clothesTop()) + " with something that only takes a single clothes slot will leave you half naked (also resulting in funky wording)."), false);
};
buttonConfirm();
doListen = function ():void{
if (buttonChoice == 6){
if (coin < clothesValue(clothesID(buy))){
outputMainText((((((("Sorry, but you only have " + coin) + " coins. You require at least ") + (clothesValue(clothesID(buy)) - coin)) + " more coins to purchase ") + clothesName(clothesID(buy))) + "."), true);
doNext();
doListen = function ():void{
doTailor();
};
} else {
clothesChange(clothesID(buy));
doCoin(-(clothesValue(clothesID(buy))));
doTailor();
};
} else {
doTailor();
};
};
};
if (buttonChoice == 12){
doReturn();
};
};
}
public function buttonEvent11(e:MouseEvent):void{
buttonChoice = 11;
hideUpDown();
doListen();
}
public function buttonEvent3(e:MouseEvent):void{
buttonChoice = 3;
hideUpDown();
doListen();
}
public function buttonEvent5(e:MouseEvent):void{
buttonChoice = 5;
hideUpDown();
doListen();
}
public function buttonEvent1(e:MouseEvent):void{
buttonChoice = 1;
hideUpDown();
doListen();
}
public function buttonEvent2(e:MouseEvent):void{
buttonChoice = 2;
hideUpDown();
doListen();
}
public function buttonEvent4(e:MouseEvent):void{
buttonChoice = 4;
hideUpDown();
doListen();
}
public function doBoobMasturbate():void{
var getMilk:int;
if (ment >= (lib - 10)){
outputMainText((((((((((("You sneak off to the private place where you sleep in " + regionName()) + ". Carefully, so as to not let anybody hear, you pull ") + pullUD(1)) + " your ") + clothesTop()) + " and gently knead your ") + boobDesc()) + " breasts.\r\rHunching over at the side of the bed, you massage your ") + nipDesc()) + " nipples, tugging and squeezing them each with"), true);
};
if ((((ment < (lib - 10))) && ((ment >= (lib - 25))))){
outputMainText((((((((((((("You quickly head off to the private place where you sleep with your intentions clear as those around " + regionName()) + " can easily see you rub your ") + boobDesc()) + " chest through your ") + clothesTop()) + ". Before you even reach your destination, your hands are already reaching ") + pullUD(1)) + " under your ") + clothesTop()) + " to play with your ") + nipDesc()) + " nipples, giving someone a good view of your under-boob.\r\rBy the time you're hidden inside, both hands are fondling your chest, kneading and massaging your nipples with"), true);
};
if ((((ment < (lib - 25))) && ((ment >= (lib - 50))))){
outputMainText((((((((((("Your " + boobDesc()) + " breasts heave with your heavy breathing as you think about playing with them. You don't think you can reach the private place where you sleep without your hands diving underneath your ") + clothesTop()) + " and massaging them roughly.\r\rInstead, you duck into one of the more hidden corners of ") + regionName()) + " and without even taking off your ") + clothesTop()) + ", you grope your chest through the fabric before reaching underneath, kneading and massaging your ") + nipDesc()) + " nipples with"), true);
};
if (ment < (lib - 50)){
outputMainText((((((((((("Without a second thought, right in the middle of " + regionName()) + " you pull ") + pullUD(1)) + " your ") + clothesTop()) + ", rubbing a hand across your ") + boobDesc()) + " breasts and making them jiggle obscenely.\r\rPeople gasp and stare as you knead and massage your ") + nipDesc()) + " nipples with"), true);
};
if (nippleSize <= 25){
outputMainText(" your fingers", false);
} else {
if ((((nippleSize > 25)) && ((nippleSize <= 60)))){
outputMainText(" your hands", false);
} else {
if ((((nippleSize > 60)) && ((nippleSize <= 180)))){
outputMainText(" both hands", false);
} else {
if (nippleSize > 180){
outputMainText(" the nearby wall", false);
};
};
};
};
outputMainText(" until they begin to feel warm and tingly.", false);
if (boobTotal == 6){
outputMainText(" Your hands have their work cut out for them as they attempt to give all 6 of your breasts attention, running up and down, from chest to belly, caressing them restlessly as you heave to control yourself just a little longer.", false);
};
if (sen <= 30){
outputMainText(" Unfortunately, you can't really come as your breasts simply aren't sensitive enough. But, it does feel nice as you continue to play with your nipples.", false);
doLust(-(Math.floor((sen / 2))));
} else {
if (lust <= 30){
outputMainText("\r\rSlowly,", false);
};
if ((((lust > 30)) && ((lust <= 70)))){
outputMainText("\r\rQuickly,", false);
};
if (lust > 70){
outputMainText("\r\rAlmost instantly,", false);
};
outputMainText(" your whole body begins to quiver,", false);
if ((((((cockMoist > 0)) && ((cockMoist <= 3)))) || ((((vagMoist > 0)) && ((vagMoist <= 3)))))){
outputMainText(((" your " + clothesBottom()) + " growing a tad moist,"), false);
};
if ((((((cockMoist > 3)) && ((cockMoist <= 6)))) || ((((vagMoist > 3)) && ((vagMoist <= 6)))))){
outputMainText(((" your " + clothesBottom()) + " growing wet,"), false);
};
if ((((((cockMoist > 6)) && ((cockMoist <= 9)))) || ((((vagMoist > 6)) && ((vagMoist <= 9)))))){
outputMainText(((" your " + clothesBottom()) + " becoming soaked through,"), false);
};
if ((((((cockMoist > 9)) && ((cockMoist <= 12)))) || ((((vagMoist > 9)) && ((vagMoist <= 12)))))){
outputMainText(((((" your " + clothesBottom()) + " becoming drenched, your ") + buttDesc()) + " bum absolutely swamped,"), false);
};
outputMainText(" being wracked by a boobgasm.", false);
if (lust > 20){
doSexP(5);
};
doLust(-(sen));
};
if (lactation > 0){
hrs++;
getMilk = milkAmount(1);
outputMainText("\r\rMilk ", false);
if (getMilk <= 500){
outputMainText("spits", false);
};
if ((((getMilk > 500)) && ((getMilk <= 1000)))){
outputMainText("squirts", false);
};
if ((((getMilk > 1000)) && ((getMilk <= 2000)))){
outputMainText("spews", false);
};
if ((((getMilk > 2000)) && ((getMilk <= 8000)))){
outputMainText("gushes", false);
};
if ((((getMilk > 8000)) && ((getMilk <= 19000)))){
outputMainText("erupts", false);
};
if (getMilk > 19000){
outputMainText("explodes", false);
};
outputMainText(" from your nipples and dribbles down your front as you begin to lactate. You continue to pump it out in ", false);
if (getMilk <= 500){
outputMainText("small dribbles", false);
};
if ((((getMilk > 500)) && ((getMilk <= 1000)))){
outputMainText("spurts", false);
};
if ((((getMilk > 1000)) && ((getMilk <= 2000)))){
outputMainText("sprays", false);
};
if ((((getMilk > 2000)) && ((getMilk <= 8000)))){
outputMainText("jets", false);
};
if ((((getMilk > 8000)) && ((getMilk <= 19000)))){
outputMainText("steady streams", false);
};
if (getMilk > 19000){
outputMainText("small floods", false);
};
outputMainText(((", relieving your " + boobDesc()) + " breasts of their supply"), false);
if (dominant == 5){
outputMainText(" as you let out a contented 'mooo~'", false);
};
outputMainText(".", false);
} else {
if (ment >= (lib - 10)){
outputMainText("\r\rYou quietly heave as you attempt to clean up any mess you have made, hoping the bedsheets will dry quickly. Except for some stains, you don't think anybody will catch on to your lewd actions, and you continue on with your day.", false);
};
if ((((ment < (lib - 10))) && ((ment >= (lib - 25))))){
outputMainText("\r\rComing down from your high, you clean up your mess the best you can, though its likely some of your fluids have seeped in somewhere. At least, you're cautious of cleaning any mess up with your sheets. And as you leave the place, one of your neighbors eyes you with a surprised look. You probably left a blotch or few on your clothes somewhere...", false);
};
if ((((ment < (lib - 25))) && ((ment >= (lib - 50))))){
outputMainText((("\r\rYou realize your hiding place probably echoed your moans as you come to your senses. You also have the slight problem of milk blotching your " + clothesTop()) + "... As you attempt to casually walk away, some nearby strangers blink at you curiously, not quite sure what they just heard. Rubbing you chest through the fabric once more, you dash away hoping it will dry."), false);
};
if (ment < (lib - 50)){
outputMainText((("\r\rGasping, you blink and look around you. You've gathered quite the crowd, especially some men, and they all gaze out you in amazement, having given them quite the show. A few tug at their own groins, ducking away from the rest, while others don't look so happy at what you have done, especially the ones with children beside them. You pull back your " + clothesTop()) + ", milk splashing everywhere and slink away, trying to avoid any more stares. Although, your heart pounds within your chest at the thought of what you had just done..."), false);
};
};
if ((((getMilk > 0)) && ((getMilk < 1000)))){
outputMainText((("\r\r\rYou produced " + getMilk) + " ml of milk!"), false);
} else {
if ((((getMilk > 0)) && ((getMilk >= 1000)))){
outputMainText((("\r\r\rYou produced " + decGet((getMilk / 1000), 1)) + " liters of milk!"), false);
};
};
if (lactation > 0){
if (((nipplePlay + 8) / (lactation * 30)) > 1){
lactChange(1);
outputMainText("\r\rYour breasts ache from all the milking, growing larger to meet the demand...", false);
boobChange(1);
};
nipplePlay = (nipplePlay + 8);
};
hrs++;
doEnd();
}
public function buttonEvent6(e:MouseEvent):void{
buttonChoice = 6;
hideUpDown();
doListen();
}
public function buttonEvent7(e:MouseEvent):void{
buttonChoice = 7;
hideUpDown();
doListen();
}
public function buttonEvent8(e:MouseEvent):void{
buttonChoice = 8;
hideUpDown();
doListen();
}
public function doStash():void{
viewButtonOutline(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1);
viewButtonText(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1);
buttonWrite(4, "Store");
buttonWrite(8, "Remove");
buttonWrite(12, "Return");
outputMainText("Click 'Store' to store an item from your bag in the stash.\r\rClick 'Remove' to remove an item from your stash and put it into your bag.\r\rClick 'Return' to leave your stash.", true);
doListen = function ():void{
if (buttonChoice == 4){
doStoreStash();
};
if (buttonChoice == 8){
doRemoveStash();
};
if (buttonChoice == 12){
doReturn();
};
};
}
public function itemSlotWrite(slotNumber:int, slotItem:int):void{
if ((((slotNumber < 36)) && ((slotNumber > 24)))){
currentItems = 3;
slotNumber = (slotNumber - 24);
};
if ((((slotNumber < 24)) && ((slotNumber > 12)))){
currentItems = 2;
slotNumber = (slotNumber - 12);
};
if (currentItems == 1){
itemArray1[slotNumber] = slotItem;
};
if (currentItems == 2){
itemArray2[slotNumber] = slotItem;
};
if (currentItems == 3){
itemArray3[slotNumber] = slotItem;
};
passiveItem(slotItem);
}
public function buttonEvent10(e:MouseEvent):void{
buttonChoice = 10;
hideUpDown();
doListen();
}
public function specialKOWin():void{
if (enemyID == 303){
outputMainText("\r\rSaddened with your rough treatment, you don't seem to want to play like she does. A bit hurt, she jumps back into the ocean, leaving nothing but a gob of pink goop behind.", false);
} else {
outputMainText((("\r\rYou have made the " + enemyName()) + " pass out from all the pain."), false);
};
}
public function buttonEvent9(e:MouseEvent):void{
buttonChoice = 9;
hideUpDown();
doListen();
}
public function hipDesc():String{
var chance:int;
var tempStr:String;
chance = percent();
tempStr = ("HIP ERROR " + hips);
if (chance <= 100){
if (hips <= 3){
tempStr = "narrow";
};
if ((((hips > 3)) && ((hips <= 8)))){
tempStr = "unnoticeable";
};
if ((((hips > 8)) && ((hips <= 16)))){
tempStr = "wide";
};
if ((((hips > 16)) && ((hips <= 28)))){
tempStr = "endowed";
};
if ((((hips > 28)) && ((hips <= 40)))){
tempStr = "protruding";
};
if ((((hips > 40)) && ((hips <= 55)))){
tempStr = "cow-like";
};
if ((((hips > 55)) && ((hips <= 75)))){
tempStr = "shelf-like";
};
if ((((hips > 75)) && ((hips <= 100)))){
tempStr = "doorway-jamming";
};
if (hips > 100){
tempStr = "perpetually-swaying";
};
};
if (chance > 50){
if (hips <= 3){
tempStr = "prepubescent";
};
if ((((hips > 3)) && ((hips <= 8)))){
tempStr = "average";
};
if ((((hips > 8)) && ((hips <= 16)))){
tempStr = "child-bearing";
};
if ((((hips > 16)) && ((hips <= 28)))){
tempStr = "especially fertile";
};
if ((((hips > 28)) && ((hips <= 40)))){
tempStr = "hypnotizing";
};
if ((((hips > 40)) && ((hips <= 55)))){
tempStr = "blatantly obvious";
};
if ((((hips > 55)) && ((hips <= 75)))){
tempStr = "excessively wide";
};
if ((((hips > 75)) && ((hips <= 100)))){
tempStr = "greatly protruding";
};
if (hips > 100){
tempStr = "gigantic";
};
};
return (tempStr);
}
public function boobChange(sizeChange:int):void{
breastSize = (breastSize + sizeChange);
nippleSize = (nippleSize + sizeChange);
}
public function doHP(changes:int):void{
if ((((((masoPot > 0)) && ((sMasoPot <= 0)))) && ((changes < 0)))){
doLust(Math.floor((-(changes) / 2)));
changes = (changes - Math.ceil((changes / 2)));
};
if ((((((sMasoPot > 0)) && ((lust < 100)))) && ((changes < 0)))){
doLust(-(changes));
changes = 0;
};
if ((((((sMasoPot > 0)) && ((lust >= 100)))) && ((changes < 0)))){
outputMainText("\r\rIt seems that no matter how much fun you had getting beaten like that, there's just some things your body wasn't meant to withstand.", false);
};
if (changes < 0){
hpDown.visible = true;
};
if (changes > 0){
hpUp.visible = true;
};
if ((HP + changes) <= 0){
HP = 1;
changes = 0;
doPassOut();
};
if ((HP + changes) > (30 + (15 * level))){
HP = (30 + (15 * level));
} else {
HP = (HP + changes);
};
statDisplay();
}
public function hairstyleLength(ID:int):Boolean{
var tempBool:Boolean;
tempBool = false;
if (ID == 1){
tempBool = true;
};
if (ID == 2){
tempBool = true;
};
if (ID == 3){
tempBool = true;
};
if (ID == 4){
tempBool = true;
};
if (ID == 8){
tempBool = true;
};
if (ID == 9){
tempBool = true;
};
if (ID == 10){
tempBool = true;
};
if (ID == 11){
tempBool = true;
};
if (ID == 13){
tempBool = true;
};
return (tempBool);
}
public function buttonEvent12(e:MouseEvent):void{
buttonChoice = 12;
hideUpDown();
doListen();
}
public function passiveItem(ID:int):void{
if (ID == 101){
rapeMod = (rapeMod + 10);
};
if (ID == 102){
runMod = (runMod + 20);
};
if (ID == 200){
vagMoist = (vagMoist + 4);
cockMoist = (cockMoist + 4);
stats(0, 0, 0, 10);
};
if (ID == 215){
rapeMod = (rapeMod + 5);
runMod = (runMod + 5);
milkHPMod = (milkHPMod + 5);
};
}
public function cockChange(sizeChange:int, totalChange:int):void{
var maxCock:int;
var nonCock:Boolean;
var chance:int;
maxCock = Math.max(humanAffinity, horseAffinity, wolfAffinity, catAffinity);
nonCock = false;
if (dominant == 5){
nonCock = true;
};
if (((((((((cockSize + sizeChange) <= 0)) || (((cockTotal + totalChange) < 1)))) && ((cockSize > 0)))) && ((cockTotal > 0)))){
outputMainText((("\r\rYou shiver a little as your cock" + plural(1)) + " and balls shrink into your body, disappearing"), false);
if (vagTotal > 0){
outputMainText(((", leaving you with only your vagina" + plural(2)) + " and making you solely female."), false);
gender = 2;
};
if (vagTotal < 1){
outputMainText(", leaving you with no genitals whatsoever. This is going to make things tough...", false);
gender = 0;
};
balls = 0;
stats(0, 0, -((2 * cockTotal)), 0);
ballSize = 0;
cockSize = 0;
cockTotal = 0;
humanCocks = 0;
horseCocks = 0;
wolfCocks = 0;
catCocks = 0;
} else {
if (((((cockTotal + totalChange) > 0)) && ((cockTotal < 1)))){
outputMainText((((((("\r\rA strange sensation of arousal engulfs your groin. Your " + clothesBottom()) + " grows tight as you feel something swell within. You don't have much time to pull ") + pullUD(2)) + " your ") + clothesBottom()) + " as flesh bulges over the fitted garment. Throbbing and dripping with pre, a fresh, new "), false);
if ((((dominant == 1)) || ((((nonCock == true)) && ((maxCock == humanAffinity)))))){
outputMainText("human ", false);
humanCocks++;
} else {
if ((((dominant == 2)) || ((((nonCock == true)) && ((maxCock == horseAffinity)))))){
outputMainText("equine ", false);
horseCocks++;
} else {
if ((((dominant == 3)) || ((((nonCock == true)) && ((maxCock == wolfAffinity)))))){
outputMainText("canine ", false);
wolfCocks++;
} else {
if ((((dominant == 4)) || ((((nonCock == true)) && ((maxCock == catAffinity)))))){
outputMainText("feline ", false);
catCocks++;
};
};
};
};
outputMainText("penis stands erect and balls to match settle within your crotch beneath", false);
if (vagTotal > 0){
outputMainText(((", slipping into your " + vulvaDesc()) + " lips. You now are considered a cross between genders, a herm."), false);
gender = 3;
} else {
outputMainText(". You have now graduated from androgynous to male, congratulations!", false);
gender = 1;
};
ballSize = 1;
balls = 2;
showBalls = true;
cockSize = 1;
stats(0, 0, 2, 0);
cockTotal = 1;
cockSize = (cockSize + sizeChange);
totalChange--;
cockChange(0, totalChange);
} else {
if ((((totalChange > 0)) && ((cockTotal > 0)))){
outputMainText((((("\r\rA strange sensation of arousal engulfs your groin. Your " + clothesBottom()) + " grows tight as you feel something swell within. You don't have much time to open your ") + clothesBottom()) + " as flesh bulges over the fitted garment. Throbbing and dripping with pre, fresh and new,"), false);
if (totalChange > 1){
outputMainText((" " + totalChange), false);
};
if ((((dominant == 1)) || ((((nonCock == true)) && ((maxCock == humanAffinity)))))){
outputMainText(" human ", false);
humanCocks = (humanCocks + totalChange);
} else {
if ((((dominant == 2)) || ((((nonCock == true)) && ((maxCock == horseAffinity)))))){
outputMainText(" equine ", false);
horseCocks = (horseCocks + totalChange);
} else {
if ((((dominant == 3)) || ((((nonCock == true)) && ((maxCock == wolfAffinity)))))){
outputMainText(" canine ", false);
wolfCocks = (wolfCocks + totalChange);
} else {
if ((((dominant == 4)) || ((((nonCock == true)) && ((maxCock == catAffinity)))))){
outputMainText(" feline ", false);
catCocks = (catCocks + totalChange);
};
};
};
};
outputMainText("penis", false);
if (totalChange > 1){
outputMainText("es", false);
};
outputMainText(((" standing erect with the other" + plural(1)) + "."), false);
stats(0, 0, (2 * totalChange), 0);
cockTotal = (cockTotal + totalChange);
cockSize = (cockSize + sizeChange);
} else {
if ((((((totalChange < 0)) && ((cockTotal > 0)))) && ((cockSize > 0)))){
outputMainText((((("\r\rYou notice an odd sensation of numbness within your groin. Your " + clothesBottom()) + " feels looser, something going missing within. By the time you open your ") + clothesBottom()) + " you notice that you have lost something."), false);
cockTotal = (cockTotal + totalChange);
while (totalChange < 0) {
chance = percent();
if ((((chance <= 25)) && ((humanCocks > 0)))){
outputMainText("\r\rYou have lost one human cock.", false);
humanCocks--;
totalChange++;
};
if ((((((chance > 25)) && ((chance <= 50)))) && ((horseCocks > 0)))){
outputMainText("\r\rYou have lost one horse cock.", false);
horseCocks--;
totalChange++;
};
if ((((((chance > 50)) && ((chance <= 75)))) && ((wolfCocks > 0)))){
outputMainText("\r\rYou have lost one dog cock.", false);
wolfCocks--;
totalChange++;
};
if ((((chance > 75)) && ((catCocks > 0)))){
outputMainText("\r\rYou have lost one cat cock.", false);
catCocks--;
totalChange++;
};
};
stats(0, 0, (2 * totalChange), 0);
} else {
if (cockTotal > 0){
cockSize = (cockSize + sizeChange);
};
};
};
};
};
}
public function doFirmshaft():void{
var chance:int;
chance = percent();
if ((((chance > 0)) && ((chance <= 100)))){
outputMainText("There's nothing to do here...", true);
hrs = 1;
doEnd();
};
}
public function outputMainText(texts:String, reset:Boolean):void{
if (reset == false){
currentText = (currentText + texts);
} else {
currentText = texts;
};
outputWindow.htmlText = currentText;
if (bgC.visible == true){
outputWindow.textColor = 0xFFFFFF;
};
scrollBar.update();
}
public function domName():String{
var tempStr:String;
tempStr = ("DOMINANT ERROR " + dominant);
if (dominant == 1){
tempStr = "human";
};
if (dominant == 2){
tempStr = "horse";
};
if (dominant == 3){
tempStr = "wolf";
};
if (dominant == 4){
tempStr = "cat";
};
if (dominant == 5){
tempStr = "cow";
};
return (tempStr);
}
public function itemDescription(ID:int):String{
var tempStr:String;
tempStr = ("ITEM DESCRIPTION ERROR " + ID);
if (ID == 101){
tempStr = "Claws of the Lupine Ancestors\r\rHarkening back to supposed Lupan ancestry, as long as this item remains in your bag, your hands will change into clawed paws that will help hold down your foes, just like the wolves of the forest.\r\rAlthough, in your case, it just gives you a bonus to Rape attempts...";
};
if (ID == 102){
tempStr = "Imbued Horseshoes\r\rCrafted by the Equans of Firmshaft, these horseshoes help improve your running capabilities as long as they're in your bag. And they'll turn your feet into hooves.";
};
if (ID == 103){
tempStr = "Magical Sands of the Dry Dunes\r\rApplying this special sand to your genitalia will permanently make it a bit less moist than usual. Often used by the women of Siz'Calit when their heat makes them a little too moist. Or when they're producing a bit too much milk (though that's rarely the case in Siz'Calit).";
};
if (ID == 104){
tempStr = "Milking Machine\r\rA compact device that produces enough suction to pump any breasts/udder you wish to collect the lactation of. Doing so will allow you to store the milk to be used or sold later, if you can produce enough. Comes with 2 hoses and multiple cups to work on almost any nipple/teat.\r\rWarning: Excessive use may result in permanent nipple/teat growth.\r\rCan only be used during Masturbation.";
};
if (ID == 105){
tempStr = "'Cat's Meow' Potion\r\rFavored by the Felins of Siz'Calit, this potion helps increase the production of breastmilk. Just try not to show off in Siz'Calit, or you may draw a crowd.";
};
if (ID == 106){
tempStr = "Penis Pump\r\rA simple device with an elastic cylinder that's intended to slip over a penis and pump it until it climaxes. Doing so will allow you to store the semen to be used or sold later, if you can produce enough.\r\rCan only be used during Masturbation.";
};
if (ID == 110){
tempStr = "A Reduction of Reducer Agents\r\rThis is a powerful - yet often necessary in Nimin - elixer that, when rubbed on a part of your body, will permanently shrink that part to half its original size. Be careful!\r\rWarning: This item is not useful against your enemies.";
};
if (ID == 111){
tempStr = "Skin Balm\r\rUsed and created by the Humans of Softlik, this balm helps increase their skin's supplesness and other human attributes, as well as decrease those of other races.";
};
if (ID == 112){
tempStr = "Bolstering Juice\r\rThis white 'juice' is often used and created by the Equans of Firmshaft. It helps strengthen their equan attributes and decrease those of other races.";
};
if (ID == 113){
tempStr = "Tainted Leaf\r\rThis paw-shaped leaf is farmed and used by the Lupans of Tieden to fend off the attributes of other races, usually the more violent ones, and increase their lupan strengths.";
};
if (ID == 114){
tempStr = "Sweet Sap\r\rUsed and created by the Felins of Siz'Calit, this vial of clear liquid helps increase their felin sensitivities as well as ward off outside influences.";
};
if (ID == 115){
tempStr = "Poultice\r\rA generic swathe of cloth soaked in soothing balms, this poultice will heal 20 HP. It'll also make you a little aroused from rubbing it all over yourself...";
};
if (ID == 116){
tempStr = "Dagger\r\rA relatively cheap weapon, the dagger is a nice way to defend oneself in Nimin.\r\rBase damage: 5-12";
};
if (ID == 117){
tempStr = "Warhammer\r\rA rather blunt weapon, it's a bit unwieldy but gets the job done.\r\rBase damage: 2-20";
};
if (ID == 118){
tempStr = "Saber\r\rA well-designed blade, the saber can deal significant damage to foes.\r\rBase damage: 10-25";
};
if (ID == 119){
tempStr = "Whip\r\rA somewhat kinky weapon, the whip can leave some rather nasty welts.\r\rBase damage: 12-18";
};
if (ID == 120){
tempStr = "Neuterizer\r\rDeveloped by the Lupans of Tieden, this isn't actually intended to be used on most of their inhabitants. Instead, it was created as a post-defensive measure against the... oddities of Nimin.";
};
if (ID == 121){
tempStr = "Teleport Scroll: Softlik\r\rCreated to make sure explorers can find their way back home, this scroll of teleportation will instantly return the user to the city of Softlik.\r\rCan be used at any time, even in the midst of battle.";
};
if (ID == 122){
tempStr = "Teleport Scroll: Firmshaft\r\rCreated to make sure explorers can find their way back home, this scroll of teleportation will instantly return the user to the city of Firmshaft.\r\rCan be used at any time, even in the midst of battle.";
};
if (ID == 123){
tempStr = "Teleport Scroll: Tieden\r\rCreated to make sure explorers can find their way back home, this scroll of teleportation will instantly return the user to the city of Tieden.\r\rCan be used at any time, even in the midst of battle.";
};
if (ID == 124){
tempStr = "Teleport Scroll: Siz'Calit\r\rCreated to make sure explorers can find their way back home, this scroll of teleportation will instantly return the user to the city of Siz'Calit.\r\rCan be used at any time, even in the midst of battle.";
};
if (ID == 200){
tempStr = "Lila's Gift\r\rA small charm given to you by the young felin girl in Siz'Calit, it seems to be pretty decoration made from flowers and leaves and some other cute little things. However, as you hold it, you notice it makes you wetter down under... This might have been the reason the girl was so wet to begin with, or maybe her extreme wetness for such a young age rubbed off onto her charm? Either way, as long as you carry it, you'll be wetter than usual. And you seem much more sensitive than usual...\r\rWarning: You cannot regain this item should you lose it.";
};
if (ID == 201){
tempStr = "Milk Creeper Poison\r\rObtained from a passed out Milk Creeper, this poison is a bit diluted from her ingestion from so much of your milk. It is unlikely that it will affect your lactation rate directly like the pure poison does, but rubbing it into your mammary glands will cause them to swell slightly larger.";
};
if (ID == 202){
tempStr = "Cock-Snake Venom\r\rObtained from the fangs of a passed out cock-snake, this venom is a potent male enhancement. And if you aren't male when you use it, you will be, if at least partially...";
};
if (ID == 203){
tempStr = (("Tuft of Wolf Fur\r\rObtained from an encounter with a feral wolf, a tuft of their fur has been known to decrease sensitivity, and thus increase your toughness against attacks, when rubbed onto your " + skinDesc()) + ".");
};
if (ID == 204){
tempStr = "Small Pouch\r\rThis is a small pouch you have obtained somewhere. Use it to see what it contains!";
};
if (ID == 205){
tempStr = "Small Pouch\r\rThis is a small pouch you have obtained somewhere. Use it to see what it contains!";
};
if (ID == 206){
tempStr = "Shiny Trinket\r\rOther than being a pretty decoration, this thing isn't much use to you. However, it probably sells fairly well.";
};
if (ID == 207){
tempStr = "Wooden Cock Carving\r\rThis thing looks like a dildo made of wood, with decorated carvings all around. It sounds hollow, so maybe you could break it open and see if anything is inside?";
};
if (ID == 208){
tempStr = "Bloated Berry\r\rA berry from across the ocean, it looks oddly bloated, nearly two berries in one. It seems edible though.";
};
if (ID == 209){
tempStr = "Handful of Grain\r\rA handful of fresh grain, it smells slightly sweet in your hands. Eating it will provide you some energy from the carbs!";
};
if (ID == 210){
tempStr = "Pussy Fruit\r\rIt is unknown whether the name derives from the cat-like felin people that enjoy this fruit or from the fruit's rather... lewd shape. Either way, it is a very sweet and juicy fruit that felin females love.";
};
if (ID == 211){
tempStr = "DairE Pill\r\rProduced by the farmers of the Dairy Farm outside of Softlik, this pill supposedly helps increase the lactation rate of dairy cows. It is not suggested to be ingested by anything other than cows, though that's just a suggestion.";
};
if (ID == 212){
tempStr = "Red Mushroom\r\rAn odd looking mushroom with a red cap with a few white dots found on the walls of the Old Cave, you're not really sure what it does.";
};
if (ID == 213){
tempStr = "Wet, Slimy Cloth\r\rThis piece of white cloth seems to be perpetually wet and slimy, no matter how long you keep it in your bag. You have no idea what it can do, however.";
};
if (ID == 214){
tempStr = "Malon's Milk\r\rUnlike the other bottles of milk that come from the Dairy Farm, this wasn't from a cow. From Malon's own supply, you're unsure exactly how it's different from the rest, though it does taste better.";
};
if (ID == 215){
tempStr = "Malon's Pendant\r\rGiven to you by Malon from the Dairy Farm, this gift of admiration seems to have been a keepsake of hers since she was a child and has imbued by her long-time love of animals and rather bovine qualities. As long as you hold onto it, everything is a bit more consensual towards being 'raped', be a bit more lenient to you running away. and all milk products heal you slightly more than usual.\r\rWarning: You cannot regain this item should you lose it.";
};
if (ID == 216){
tempStr = "Pink Ink\r\rOctopus ink gained from a rather pink octopus girl, this ink serves as a very rare and valuable hair dye. Should you use it, your hair will turn a coral pink color, if you have hair.";
};
if (ID == 217){
tempStr = "Octopus Egg Jelly\r\rThe jelly from the eggs of the octopus girls you gave birth to, it seems like it'd make you very aroused if you rubbed it on your genitals. Although, you're not quite sure what it would do beyond that...";
};
if (ID == 218){
tempStr = "Bulging Berry\r\rA cousin of the bloated berry, this fruit splits into multiple spheres from the same stem, somewhat like cherries but can often have three of four from the same stem. It is quite edible, though it is highly suggested to not eat many.";
};
if (ID == 219){
tempStr = "Lizan Egg\r\rAn unfertilized egg from a lizan female (or herm), eggs like this are common in the lizan diet. High in protein, they're good for your health.";
};
if (ID == 220){
tempStr = "Blonde Dye\r\rA dye made from mashed grain, this will turn your hair blonde in color when used, if you have hair, or it can be sold for a decent sum.";
};
if (ID == 221){
tempStr = "Concentrated Pussy Fruit Juice\r\rCreated by a notable mistress in Siz'calit, this vial contains some rather concentrated juice from the Pussy Fruit. It is likely to have a notable effect on a woman's loins, more potent than its source";
};
if (ID == 500){
tempStr = "Bottle of Milk\r\rA bottle of delicious milk that, when drunk, will heal 10 HP and help you stay awake a little longer.";
};
if (ID == 501){
tempStr = "Jug of Milk\r\rA large jug of delicious milk that, when drunk, will heal 40 HP and help you stay awake a while longer. When you're done peeing, of course.";
};
if (ID == 502){
tempStr = "Barrel of Milk\r\rA barrel full of delicious milk, this is mostly meant to be used for easy handling by merchants. However, if you use it, you will gain 4 Jugs of Milk instantly.";
};
if (ID == 503){
tempStr = "Lust Draft\r\rA potion that will increase your lust by 20 instantly when used.";
};
if (ID == 504){
tempStr = "Rejuvenating Potion\r\rA potion that will heal 30 HP and reduce your lust by 15 instantly when used.";
};
if (ID == 505){
tempStr = "Bad Experiment\r\rThis combustable concoction will deal 10-20 damage to your enemy before they can react!\r\rThis item can only be used during battle";
};
if (ID == 506){
tempStr = "Express Pregnancy Potion\r\rWhen that baby is taking a while to gestate, this potion up the pregnancy as though 50 hours had passed.";
};
if (ID == 507){
tempStr = "Ball Sweller\r\rImbibing this will make your balls feel as though you hadn't ejaculated in 30 hours.";
};
if (ID == 508){
tempStr = "Superior Lust Draft\r\rA potion that will increase your lust by 50 instantly when used.";
};
if (ID == 509){
tempStr = "Superior Rejuvenating Potion\r\rA potion that will heal 70 HP and reduce your lust by 40 instantly when used.";
};
if (ID == 510){
tempStr = "Super Bad Experiment\r\rThis extremely combustable concoction will deal 20-40 damage to your enemy before they can react!\r\rThis item can only be used during battle";
};
if (ID == 511){
tempStr = "Superior Express Pregnancy Potion\r\rWhen that baby is taking a while to gestate, this potion up the pregnancy as though 120 hours had passed.";
};
if (ID == 0x0200){
tempStr = "Superior Ball Sweller\r\rImbibing this will make your balls feel as though you hadn't ejaculated in 70 hours.";
};
if (ID == 513){
tempStr = "Gender Swap Potion\r\rIf you want to try out the opposite sex, this potion will revert your genitals back to infancy, allowing them to reform as their opposite counterparts. If a hermaphrodite takes this, it reverts all genitals to their smallest value. If a genderless person takes this, the resulting gender is random.";
};
if (ID == 0x0202){
tempStr = "Masochism Potion\r\rAfter this potion is imbibed, your nervous system confuses half of all damage as pleasure for a whole day.";
};
if (ID == 515){
tempStr = "Black Dye\r\rThis will turn your hair black in color when used, if you have hair.";
};
if (ID == 516){
tempStr = "Baby Free Potion\r\rSipping this potion will reduce your chance of becoming pregnancy by 50% for the next 3 days. This contraceptive is not gauranteed to prevent pregnancy, especially if you're especially fertile. It will work whether you have the appropriate plumbing or not. Multiple instances of Baby Free Potion will only extend the time of its duration, not increase the reduction in chance.";
};
if (ID == 517){
tempStr = "Potency Potion\r\rKicking your balls into gear, they will permanently produce 20% more cum, despite their size.";
};
if (ID == 518){
tempStr = "Superior Gender Swap Potion\r\rIf you want to try out the opposite sex, this potion will transform your genitals into their opposite counterparts, retaining the relative size. If a hermaphrodite takes this, the genitals swap sizes. If a genderless person takes this, the resulting gender is random, along with the sizes of their genitals (up to a certain amount).";
};
if (ID == 519){
tempStr = "Superior Masochism Potion\r\rAfter this potion is imbibed, your nervous system confuses all damage as pleasure for a whole day.";
};
if (ID == 520){
tempStr = "Red Dye\r\rThis will turn your hair red in color when used, if you have hair.";
};
if (ID == 521){
tempStr = "Superior Baby Free Potion\r\rSipping this potion will reduce your chance of becoming pregnancy by 50% for the next 9 days. This contraceptive is not gauranteed to prevent pregnancy, especially if you're especially fertile. It will work whether you have the appropriate plumbing or not. Multiple instances of Superior Baby Free Potion will only extend the time of its duration, not increase the reduction in chance.";
};
if (ID == 522){
tempStr = "Superior Potency Potion\r\rDrop-kicking your balls into gear, they will permanently produce 50% more cum, despite their size.";
};
if (ID == 523){
tempStr = "Vial of Cum\r\rStill kinda warm, this vial of goop will arouse you slightly when imbibed, plus heal a bit.";
};
if (ID == 524){
tempStr = "Bottle of Cum\r\rA bottle of warm cum that will arouse you and heal you slightly when imbibed. If you can get it all down.";
};
if (ID == 525){
tempStr = "Jug of Cum\r\rA jug full of hot cum, this is mostly meant to be used for easy handling by the merchants that might be able to find a use for it. However, if you use it, you will gain 3 Bottles of Cum instantly.";
};
if (ID == 526){
tempStr = "Barrel of Cum\r\rThere's... not really muh you can do with a barrel full of hot cum. The merchants will still buy it, but at a very low price, since there's not much they can do with it either...";
};
return (tempStr);
}
public function doWeight():Boolean{
var tempBool:Boolean;
tempBool = false;
if ((cockSize * cockSizeMod) > (((body + str) + carryMod) * 2)){
outputMainText((((((("\r\rThe weight of your " + cockDesc()) + " cock") + plural(1)) + " is too much to carry, making it impossible to walk. You're stuck in this town until either you get stronger or the bulge in your ") + clothesBottom()) + " gets smaller..."), false);
tempBool = true;
};
if ((((breastSize > (((body + str) + carryMod) * 2))) || ((((boobTotal == 6)) && ((breastSize > ((body + str) + carryMod))))))){
outputMainText((("\r\rThe weight of your " + boobDesc()) + " tits is too much to really carry, making standing a chore alone. You're stuck in this town until either you get stronger or they get smaller..."), false);
tempBool = true;
};
if ((((((ballSize * balls) / 2) > (((body + str) + carryMod) * 2))) && ((showBalls == true)))){
outputMainText((("\r\rThe weight of your " + ballDesc()) + " nuts is too much to carry, anchoring you to the ground. You're stuck here until you get strong or you balls get smaller..."), false);
tempBool = true;
};
if (udderSize > (((body + str) + carryMod) * 2)){
outputMainText("\r\rThe weight of your milk-engorged udder is too much to carry, sitting heavily in front of you. You're stuck in this town until either you get stronger or it gets smaller...", false);
tempBool = true;
};
if ((pregnancyTime / 5) > (((body * 2) + str) + carryMod)){
outputMainText("\r\rThe weight of your pregnant belly is too much to much carry, putting your weight more on it than you can yourself. You're stuck in this town until either you get stronger or you give birth...", false);
tempBool = true;
};
return (tempBool);
}
public function cumAmount():int{
var tempNum:int;
tempNum = 0;
if (blueBalls <= 12){
tempNum = (((((ballSize * ballSize) / 2) * balls) * cumMod) * 0.5);
};
if ((((blueBalls > 12)) && ((blueBalls <= 36)))){
tempNum = (((((ballSize * ballSize) / 2) * balls) * cumMod) * 1);
};
if ((((blueBalls > 36)) && ((blueBalls <= 84)))){
tempNum = (((((ballSize * ballSize) / 2) * balls) * cumMod) * 2);
};
if (blueBalls > 84){
tempNum = (((((ballSize * ballSize) / 2) * balls) * cumMod) * 2.5);
};
blueBalls = 0;
tempNum = Math.floor(tempNum);
return (tempNum);
}
public function doUdderMasturbate():void{
var getMilk:int;
if (ment >= (lib - 10)){
outputMainText((((((((((("You sneak off to the private place where you sleep in " + regionName()) + " with a bunch of towels in hand. Carefully, so as to not let anybody hear, you pull ") + pullUD(1)) + " your ") + clothesTop()) + " and gently knead your ") + udderDesc()) + " udder.\r\rHunching over at the side of the bed, you massage your ") + teatDesc()) + " teats, tugging and squeezing them each with"), true);
};
if ((((ment < (lib - 10))) && ((ment >= (lib - 25))))){
outputMainText((((((((((((("You quickly head off to the private place where you sleep with your intentions clear as those around " + regionName()) + " can easily see you rub your ") + udderDesc()) + " bulge through your ") + clothesTop()) + ". Before you even reach your destination, your hands are already reaching ") + pullUD(1)) + " under your ") + clothesTop()) + " to play with your ") + teatDesc()) + " teats, giving someone a good view of your fleshy bag.\r\rBy the time you're hidden inside, both hands are fondling your udder, kneading and massaging your teats with"), true);
};
if ((((ment < (lib - 25))) && ((ment >= (lib - 50))))){
outputMainText((((((((((("Your " + udderDesc()) + " udder heaves with your heavy breathing as you think about playing with it. You don't think you can reach the private place where you sleep without your hands diving underneath your ") + clothesTop()) + " and massaging it roughly.\r\rInstead, you duck into one of the more hidden corners of ") + regionName()) + " and without even taking off your ") + clothesTop()) + ", you grope your udder through the fabric before your reaching underneath, kneading and massaging your ") + teatDesc()) + " teats with"), true);
};
if (ment < (lib - 50)){
outputMainText((((((((((("Without a second thought, right in the middle of " + regionName()) + " you pull ") + pullUD(1)) + " your ") + clothesTop()) + ", rubbing a hand across your ") + udderDesc()) + " udder and making it jiggle obscenely.\r\rPeople gasp and stare as you knead and massage your ") + teatDesc()) + " teats with"), true);
};
if (teatSize <= 25){
outputMainText(" your fingers", false);
} else {
if ((((teatSize > 25)) && ((teatSize <= 60)))){
outputMainText(" your hands", false);
} else {
if ((((teatSize > 60)) && ((teatSize <= 180)))){
outputMainText(" both hands", false);
} else {
if (teatSize > 180){
outputMainText(" the nearby wall", false);
};
};
};
};
outputMainText(" until they begin to feel warm and tingly.", false);
if (sen <= 30){
outputMainText(" Unfortunately, you can't really come as your udder simply isn't sensitive enough. But, it does feel nice as you continue to play with your teats.", false);
doLust(-(Math.floor((sen / 2))));
} else {
if (lust <= 30){
outputMainText("\r\rSlowly,", false);
};
if ((((lust > 30)) && ((lust <= 70)))){
outputMainText("\r\rQuickly,", false);
};
if (lust > 70){
outputMainText("\r\rAlmost instantly,", false);
};
outputMainText(" your whole body begins to quiver,", false);
if ((((((cockMoist > 0)) && ((cockMoist <= 3)))) || ((((vagMoist > 0)) && ((vagMoist <= 3)))))){
outputMainText(((" your " + clothesBottom()) + " growing a tad moist,"), false);
};
if ((((((cockMoist > 3)) && ((cockMoist <= 6)))) || ((((vagMoist > 3)) && ((vagMoist <= 6)))))){
outputMainText(((" your " + clothesBottom()) + " growing wet,"), false);
};
if ((((((cockMoist > 6)) && ((cockMoist <= 9)))) || ((((vagMoist > 6)) && ((vagMoist <= 9)))))){
outputMainText(((" your " + clothesBottom()) + " becoming soaked through,"), false);
};
if ((((((cockMoist > 9)) && ((cockMoist <= 12)))) || ((((vagMoist > 9)) && ((vagMoist <= 12)))))){
outputMainText(((((" your " + clothesBottom()) + " becoming drenched, your ") + buttDesc()) + " bum absolutely swamped,"), false);
};
outputMainText(" being wracked by an udder orgasm.", false);
if (lust > 20){
doSexP(5);
};
doLust(-(sen));
};
if (lactation > 0){
hrs++;
getMilk = milkAmount(2);
outputMainText("\r\rMilk ", false);
if (getMilk <= 500){
outputMainText("spits", false);
};
if ((((getMilk > 500)) && ((getMilk <= 1000)))){
outputMainText("squirts", false);
};
if ((((getMilk > 1000)) && ((getMilk <= 2000)))){
outputMainText("spews", false);
};
if ((((getMilk > 2000)) && ((getMilk <= 8000)))){
outputMainText("gushes", false);
};
if ((((getMilk > 8000)) && ((getMilk <= 19000)))){
outputMainText("erupts", false);
};
if (getMilk > 19000){
outputMainText("explodes", false);
};
outputMainText(" from your teats and dribbles down your front as you begin to lactate. You continue to pump it out in ", false);
if (getMilk <= 500){
outputMainText("small dribbles", false);
};
if ((((getMilk > 500)) && ((getMilk <= 1000)))){
outputMainText("spurts", false);
};
if ((((getMilk > 1000)) && ((getMilk <= 2000)))){
outputMainText("sprays", false);
};
if ((((getMilk > 2000)) && ((getMilk <= 8000)))){
outputMainText("jets", false);
};
if ((((getMilk > 8000)) && ((getMilk <= 19000)))){
outputMainText("steady streams", false);
};
if (getMilk > 19000){
outputMainText("small floods", false);
};
outputMainText(((", relieving your " + udderDesc()) + " udder of its supply"), false);
if (dominant == 5){
outputMainText(" as you let out a contented 'mooo~'", false);
};
outputMainText(".", false);
};
if (ment >= (lib - 10)){
outputMainText("\r\rYou quietly heave as you attempt to clean up any mess you have made, hoping the bedsheets will dry quickly. Except for some stains, you don't think anybody will catch on to your lewd actions, and you continue on with your day.", false);
};
if ((((ment < (lib - 10))) && ((ment >= (lib - 25))))){
outputMainText("\r\rComing down from your high, you clean up your mess the best you can, though its likely some of your fluids have seeped in somewhere. At least, you're cautious of cleaning any mess up with your sheets. And as you leave the place, one of your neighbors eyes you with a surprised look. You probably left a blotch or few on your clothes somewhere...", false);
};
if ((((ment < (lib - 25))) && ((ment >= (lib - 50))))){
outputMainText((("\r\rYou realize your hiding place probably echoed your moans as you come to your senses. You also have the slight problem of milk blotching your " + clothesTop()) + "... As you attempt to casually walk away, some nearby strangers blink at you curiously, not quite sure what they just heard. Rubbing you chest through the fabric once more, you dash away hoping it will dry."), false);
};
if (ment < (lib - 50)){
outputMainText((((("\r\rGasping, you blink and look around you. You've gathered quite the crowd, especially some men, and they all gaze out you in amazement, having given them quite the show. A few tug at their own groins, ducking away from the rest, while others don't look so happy at what you have done, especially the ones with children beside them. You pull " + pullUD(1)) + " your ") + clothesTop()) + ", milk splashing everywhere and slink away, trying to avoid any more stares. Although, your heart pounds within your chest at the thought of what you had just done..."), false);
};
if ((((getMilk > 0)) && ((getMilk < 1000)))){
outputMainText((("\r\r\rYou produced " + getMilk) + " ml of milk!"), false);
} else {
if ((((getMilk > 0)) && ((getMilk >= 1000)))){
outputMainText((("\r\r\rYou produced " + decGet((getMilk / 1000), 1)) + " liters of milk!"), false);
};
};
if (lactation > 0){
if (((udderPlay + 8) / (lactation * 30)) > 1){
lactChange(1);
outputMainText("\r\rYour udder aches from all the milking, growing larger to meet the demand...", false);
udderChange(1);
};
udderPlay = (udderPlay + 8);
};
hrs++;
doEnd();
}
public function doStoreStash():void{
viewButtonOutline(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
viewButtonText(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
i = 1;
while (i < 13) {
buttonWrite(i, itemName(itemID(i)));
i++;
};
buttonWrite(4, "<<");
buttonWrite(8, ">>");
buttonWrite(12, "Return");
showPage(true, 1);
outputMainText("Click on an item you would like to stash.\r\rClick 'Return' to return to the main stash options.", true);
doListen = function ():void{
if (buttonChoice == 12){
showPage(false, 1);
doStash();
} else {
if (buttonChoice == 4){
if (currentItems == 1){
currentItems = 3;
} else {
if (currentItems == 2){
currentItems = 1;
} else {
if (currentItems == 3){
currentItems = 2;
};
};
};
showPage(true, 1);
doStoreStash();
} else {
if (buttonChoice == 8){
if (currentItems == 1){
currentItems = 2;
} else {
if (currentItems == 2){
currentItems = 3;
} else {
if (currentItems == 3){
currentItems = 1;
};
};
};
showPage(true, 1);
doStoreStash();
} else {
if (((((!((buttonChoice == 0))) && (!((buttonChoice == 4))))) && (!((buttonChoice == 8))))){
showPage(false, 1);
stashStore(buttonChoice);
};
};
};
};
};
}
public function tailDesc():String{
var chance:int;
var tempStr:String;
chance = percent();
tempStr = ("TAIL ERROR " + tail);
if (chance <= 100){
if (tail == 2){
tempStr = "equine";
};
if (tail == 3){
tempStr = "wolfish";
};
if (tail == 4){
tempStr = "cat-like";
};
if (tail == 5){
tempStr = "bovine";
};
};
if (chance <= 50){
if (tail == 2){
tempStr = "bristly";
};
if (tail == 3){
tempStr = "fluffy";
};
if (tail == 4){
tempStr = "lithe";
};
if (tail == 5){
tempStr = "skinny, bristly-tipped";
};
};
return (tempStr);
}
public function clothesName(ID:int):String{
var tempStr:String;
tempStr = "CLOTHES NAME ERROR";
if (ID == 1){
tempStr = "shirt";
};
if (ID == 2){
tempStr = "pants";
};
if (ID == 3){
tempStr = "bikini top";
};
if (ID == 4){
tempStr = "bikini bottom";
};
if (ID == 5){
tempStr = "elegant dress";
};
if (ID == 6){
tempStr = "latex suit";
};
if (ID == 7){
tempStr = "skirt";
};
if (ID == 8){
tempStr = "shorts";
};
if (ID == 9){
tempStr = "blouse";
};
if (ID == 10){
tempStr = "diaper";
};
if (ID == 11){
tempStr = "poofy diaper";
};
if (ID == 12){
tempStr = "sundress";
};
if (ID == 13){
tempStr = "skimpy dress";
};
if (ID == 14){
tempStr = "short skirt";
};
if (ID == 15){
tempStr = "short shorts";
};
return (tempStr);
}
public function doBirth():void{
if (vagTotal < 1){
vagChange(0, 1);
};
outputMainText((((("\r\rSuddenly, you feel water splash across your thighs, flooding from your cunt" + plural(2)) + ". You've gone into labor!\r\rYou sit on the ground, huffing and heaving as pain envelops your body. Between each heave and your hands on your ") + bellyDesc()) + " belly, you push with all your might!"), false);
if (pregnancyType == 100){
outputMainText(((" Rather quickly, a small body pushes out from between your legs. You hear a small, high-pitched whine come from it. Pausing from your labor, you pull the child up to your chest, cradling it. Covered in fur, eyes shut to the world, it's a small puppy. A wolf puppy, to be more accurate. Although, you have little time to consider the symantics as another contraction makes you seize in pain. Soon, another whine cries out. Followed by another contraction... Until you have given birth to a litter of " + Math.floor(((percent() / 20) + 3))) + " wolf pups! Congratulations, mommy!\r\rYou keep the pups at your personal menagerie/day-care, where your children are well taken care of."), false);
if (vagLimit() < 12){
vulvaSize++;
vagChange(1, 0);
};
};
if (pregnancyType == 2){
outputMainText(((((((((((((" Slowly, a large body pushes out from between your legs. You hear a snort as the long muzzle breaches " + oneYour(2)) + " ") + vulvaDesc()) + " pair") + plural(2)) + " of lips. Shortly after, you heave for fresh air as the rest of the body slides out. As the newborn cries out, your reach down and bring it up to your ") + boobDesc()) + " chest. With a horse-like muzzle and rather large body, it's easy to tell you've given birth to an equan child. With a sigh, you pull ") + pullUD(1)) + " your ") + clothesTop()) + ", letting it suckle from its mother.\r\rEventually, you bring the equan child to your own personal menagerie/day-care, where your children are well taken care of."), false);
if (vagLimit() < 36){
vulvaSize++;
vagChange(1, 0);
};
if (vagLimit() < 20){
outputMainText("\r\rYou're also quite a bit looser than before, from giving birth to such a big body...", false);
vulvaSize = (vulvaSize + 2);
vagChange(2, 0);
};
};
if (pregnancyType == 4){
outputMainText(((" Quite soon, you feel a small fuzzy body push out between your legs. A soft mewl escapes its lips, taking its first gasp of air. Pulling the babe up to your chest and cradling it, the small humanoid body is covered in fur with cat-like ears and tail. Especially small, the felin child is just the first, as several more could easily fit within your belly... As another contraction yanks back your attention, another mewl cries out, with another soon on its way...\r\rEventually, you have given birth to a litter of " + Math.floor(((percent() / 20) + 2))) + " kitten-like felin babies. They crawl around your body as you let them suckle from your nipples, before you bring them to your personal menagerie/day-care, where your children are well taken care of."), false);
};
if (pregnancyType == 200){
outputMainText(((((((" It doesn't take much effort as you feel a round object roll out of " + oneYour(2)) + " ") + vulvaDesc()) + " cunt") + plural(2)) + " with a wet plop. You attempt to look around your body to see what it is, but you don't have much time before another squeezes through your cervix, demanding your attention to get back to pushing.\r\rThere's not much of a rest in between contractions to see what is coming out exactly, but all you can tell is that there are a lot. At least a dozen; although it's impossible to keep track amidst all the birthing. It's not until the very last one exits that you're given a long enough reprieve to actually look...\r\rYou seem to be just in time to spot the clear, jelly-like egg unravel around something pink in the center. The pink thing tumbles out from the egg, spreading apart into several small tentacles. Eight, to be exact. And in the center of them is a cute little girl. Not quite a baby, just a really small child, no taller than half a foot. You can hear her giggle a little as she kisses your thighs, thanking you a little before wiggling her way away from you.\r\rYour legs are too weak at the moment to chase after her, but you can see a trail of slime that all of the others had used. They seem to be headed in the same direction: back to the beach where you had obtained them."), false);
itemAdd(217);
};
}
public function goodsID(goodsSlot:int):int{
var goodNum:int;
goodNum = 0;
if (currentZone == 1){
if (goodsSlot == 1){
goodNum = 104;
};
if (goodsSlot == 2){
goodNum = 111;
};
if (goodsSlot == 3){
goodNum = 116;
};
if (goodsSlot == 5){
goodNum = 500;
};
if (goodsSlot == 6){
goodNum = 501;
};
if (goodsSlot == 9){
goodNum = 110;
};
if (goodsSlot == 10){
goodNum = 115;
};
if (goodsSlot == 11){
goodNum = 121;
};
};
if (currentZone == 2){
if (goodsSlot == 1){
goodNum = 102;
};
if (goodsSlot == 2){
goodNum = 112;
};
if (goodsSlot == 3){
goodNum = 117;
};
if (goodsSlot == 5){
goodNum = 106;
};
if (goodsSlot == 9){
goodNum = 110;
};
if (goodsSlot == 10){
goodNum = 115;
};
if (goodsSlot == 11){
goodNum = 122;
};
};
if (currentZone == 3){
if (goodsSlot == 1){
goodNum = 101;
};
if (goodsSlot == 2){
goodNum = 113;
};
if (goodsSlot == 3){
goodNum = 118;
};
if (goodsSlot == 5){
goodNum = 120;
};
if (goodsSlot == 9){
goodNum = 110;
};
if (goodsSlot == 10){
goodNum = 115;
};
if (goodsSlot == 11){
goodNum = 123;
};
};
if (currentZone == 4){
if (goodsSlot == 2){
goodNum = 114;
};
if (goodsSlot == 3){
goodNum = 119;
};
if (goodsSlot == 5){
goodNum = 103;
};
if (goodsSlot == 6){
goodNum = 105;
};
if (goodsSlot == 9){
goodNum = 110;
};
if (goodsSlot == 10){
goodNum = 115;
};
if (goodsSlot == 11){
goodNum = 124;
};
};
return (goodNum);
}
public function teatDesc():String{
var chance:int;
var tempStr:String;
chance = percent();
tempStr = ("TEAT ERROR " + teatSize);
if (chance <= 100){
if (teatSize <= 2){
tempStr = "normal";
};
if ((((teatSize > 2)) && ((teatSize <= 5)))){
tempStr = "noticeable";
};
if ((((teatSize > 5)) && ((teatSize <= 9)))){
tempStr = "blatant";
};
if ((((teatSize > 9)) && ((teatSize <= 30)))){
tempStr = "normal-for-a-cow";
};
if ((((teatSize > 30)) && ((teatSize <= 50)))){
tempStr = "cock-like";
};
if ((((teatSize > 50)) && ((teatSize <= 100)))){
tempStr = "horsecock-like";
};
if ((((teatSize > 100)) && ((teatSize <= 140)))){
tempStr = "arm-length";
};
if ((((teatSize > 140)) && ((teatSize <= 300)))){
tempStr = "street-clearing";
};
if (teatSize > 300){
tempStr = "obscene";
};
};
if (chance > 50){
if (teatSize <= 2){
tempStr = "";
};
if ((((teatSize > 2)) && ((teatSize <= 5)))){
tempStr = "perky";
};
if ((((teatSize > 5)) && ((teatSize <= 9)))){
tempStr = "hypnotizing";
};
if ((((teatSize > 9)) && ((teatSize <= 30)))){
tempStr = "long";
};
if ((((teatSize > 30)) && ((teatSize <= 50)))){
tempStr = "huge";
};
if ((((teatSize > 50)) && ((teatSize <= 100)))){
tempStr = "enormous";
};
if ((((teatSize > 100)) && ((teatSize <= 140)))){
tempStr = "extreme";
};
if ((((teatSize > 140)) && ((teatSize <= 300)))){
tempStr = "ridiculous";
};
if (teatSize > 300){
tempStr = "obscene";
};
};
return (tempStr);
}
public function doSoftlik():void{
var chance:int;
chance = percent();
if (chance <= 25){
};
if (chance <= 100){
outputMainText("There's nothing to do here...", true);
hrs = 1;
doEnd();
};
}
public function earDesc():String{
var chance:int;
var tempStr:String;
chance = percent();
tempStr = ("EAR ERROR " + ears);
if (chance <= 100){
if (ears == 1){
tempStr = "Hugging the side of your head, you have small rounded ears that can easily be hidden by your hair, like that of a human's";
};
if (ears == 2){
tempStr = "Atop your head, you have large tear-drop shaped ears that flick every now and then, able to hear quite well, like that of a horse's";
};
if (ears == 3){
tempStr = "Atop your head, you have small triangular ears that stand perk, like that of a wolf's";
};
if (ears == 4){
tempStr = "Atop your head, you have small triangular ears that stand perk, like that of a cat's";
};
if (ears == 5){
tempStr = "Standing out perpendicular from the sides of your head, you have large oval ears that that droop slightly from their size, like that of a cow's";
};
};
return (tempStr);
}
public function showPage(changes:Boolean, which:int):void{
if (changes == true){
pageNum.visible = true;
};
if (changes == false){
pageNum.visible = false;
};
if (which == 1){
pageNum.text = ("BAG " + currentItems);
} else {
if (which == 2){
pageNum.text = ("STASH " + currentStash);
};
};
}
public function gainItem(ID:int, more:int):void{
var openSlot:int;
outputMainText((("You have obtained a " + itemName(ID)) + "!"), true);
openSlot = 0;
i = 36;
while (i > 0) {
if ((((((((((((((((((((itemID(i) == 0)) && (!((i == 4))))) && (!((i == 8))))) && (!((i == 12))))) && (!((i == 16))))) && (!((i == 20))))) && (!((i == 24))))) && (!((i == 28))))) && (!((i == 32))))) && (!((i == 36))))){
openSlot = i;
};
if (i == 12){
currentItems = 1;
};
if (i == 24){
currentItems = 2;
};
if (i == 36){
currentItems = 3;
};
i--;
};
if (openSlot > 0){
itemSlotWrite(openSlot, ID);
if (more == 1){
item1 = 0;
};
if (more == 2){
item2 = 0;
};
if (more == 3){
item3 = 0;
};
if (more == 4){
item4 = 0;
};
if (more == 5){
item5 = 0;
};
if (more == 6){
item6 = 0;
};
doEnd();
} else {
outputMainText("\r\rHowever, you do not have enough room in your bag. Click on an item in your bag to replace it with the new one or click a non-item button to ignore the new item.", false);
doDiscard(ID, more);
};
}
public function doGender():void{
trace("gender");
bc();
viewButtonText(0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0);
viewButtonOutline(0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0);
Choice5.htmlText = "Male";
Choice6.htmlText = "Female";
Choice7.htmlText = "Herm";
outputMainText("Choose which gender you want to be:\r\rMale - You has painus!\r\rFemale - You has vagoo!\r\rHerm - You has painus and vagoo!", true);
doListen = function ():void{
if (buttonChoice == 5){
gender = 1;
};
if (buttonChoice == 6){
gender = 2;
};
if (buttonChoice == 7){
gender = 3;
};
if (gender == 1){
cockSize = 12;
ballSize = 3;
balls = 2;
cockTotal = 1;
cockMoist = 1;
str++;
if (dominant == 1){
humanCocks = 1;
};
if (dominant == 2){
horseCocks = 1;
};
if (dominant == 3){
wolfCocks = 1;
};
if (dominant == 4){
catCocks = 1;
};
};
if (gender == 2){
vagSize = 12;
vulvaSize = 5;
vagTotal = 1;
vagMoist = 1;
clitSize = 2;
ment++;
};
if (gender == 3){
cockSize = 8;
ballSize = 2;
balls = 2;
cockTotal = 1;
cockMoist = 1;
vagTotal = 1;
vagMoist = 1;
vagSize = 8;
vulvaSize = 3;
boobTotal = 2;
if (dominant == 1){
humanCocks = 1;
};
if (dominant == 2){
horseCocks = 1;
};
if (dominant == 3){
wolfCocks = 1;
};
if (dominant == 4){
catCocks = 1;
};
lib++;
};
boobTotal = 2;
if (dominant == 4){
boobTotal = 6;
};
bodyType();
};
}
public function buttonConfirm():void{
bc();
viewButtonText(0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0);
viewButtonOutline(0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0);
buttonWrite(6, "Yes");
buttonWrite(7, "No");
}
public function invertC(e:MouseEvent):void{
invertGo();
}
public function saveGo():void{
var so:SharedObject;
so = SharedObject.getLocal("NiminFetishFantasy");
bc();
appearanceText.visible = false;
appearanceBox.visible = false;
viewButtonOutline(1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1);
viewButtonText(1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1);
if (so.data.saveGame1){
buttonWrite(1, ((("D:" + so.data.saveGame1[9]) + " H:") + so.data.saveGame1[10]));
} else {
buttonWrite(1, "Empty");
};
if (so.data.saveGame2){
buttonWrite(2, ((("D:" + so.data.saveGame2[9]) + " H:") + so.data.saveGame2[10]));
} else {
buttonWrite(2, "Empty");
};
if (so.data.saveGame3){
buttonWrite(3, ((("D:" + so.data.saveGame3[9]) + " H:") + so.data.saveGame3[10]));
} else {
buttonWrite(3, "Empty");
};
if (so.data.saveGame5){
buttonWrite(5, ((("D:" + so.data.saveGame5[9]) + " H:") + so.data.saveGame5[10]));
} else {
buttonWrite(5, "Empty");
};
if (so.data.saveGame6){
buttonWrite(6, ((("D:" + so.data.saveGame6[9]) + " H:") + so.data.saveGame6[10]));
} else {
buttonWrite(6, "Empty");
};
if (so.data.saveGame7){
buttonWrite(7, ((("D:" + so.data.saveGame7[9]) + " H:") + so.data.saveGame7[10]));
} else {
buttonWrite(7, "Empty");
};
if (so.data.saveGame9){
buttonWrite(9, ((("D:" + so.data.saveGame9[9]) + " H:") + so.data.saveGame9[10]));
} else {
buttonWrite(9, "Empty");
};
if (so.data.saveGame10){
buttonWrite(10, ((("D:" + so.data.saveGame10[9]) + " H:") + so.data.saveGame10[10]));
} else {
buttonWrite(10, "Empty");
};
if (so.data.saveGame11){
buttonWrite(11, ((("D:" + so.data.saveGame11[9]) + " H:") + so.data.saveGame11[10]));
} else {
buttonWrite(11, "Empty");
};
buttonWrite(12, "Return");
outputMainText("Click on a save slot to save your current game to that slot.\r\rOtherwise, click Return to go back to what you were doing.", true);
doListen = function ():void{
var slot:int;
if (buttonChoice != 12){
slot = buttonChoice;
if ((((buttonChoice == 1)) && (so.data.saveGame1))){
outputMainText((((("Day: " + so.data.saveGame1[9]) + ", Hour: ") + so.data.saveGame1[10]) + ":00"), true);
} else {
if (buttonChoice == 1){
outputMainText("The chosen slot is empty", true);
};
};
if ((((buttonChoice == 2)) && (so.data.saveGame2))){
outputMainText((((("Day: " + so.data.saveGame2[9]) + ", Hour: ") + so.data.saveGame2[10]) + ":00"), true);
} else {
if (buttonChoice == 2){
outputMainText("The chosen slot is empty", true);
};
};
if ((((buttonChoice == 3)) && (so.data.saveGame3))){
outputMainText((((("Day: " + so.data.saveGame3[9]) + ", Hour: ") + so.data.saveGame3[10]) + ":00"), true);
} else {
if (buttonChoice == 3){
outputMainText("The chosen slot is empty", true);
};
};
if ((((buttonChoice == 5)) && (so.data.saveGame5))){
outputMainText((((("Day: " + so.data.saveGame5[9]) + ", Hour: ") + so.data.saveGame5[10]) + ":00"), true);
} else {
if (buttonChoice == 5){
outputMainText("The chosen slot is empty", true);
};
};
if ((((buttonChoice == 6)) && (so.data.saveGame6))){
outputMainText((((("Day: " + so.data.saveGame6[9]) + ", Hour: ") + so.data.saveGame6[10]) + ":00"), true);
} else {
if (buttonChoice == 6){
outputMainText("The chosen slot is empty", true);
};
};
if ((((buttonChoice == 7)) && (so.data.saveGame7))){
outputMainText((((("Day: " + so.data.saveGame7[9]) + ", Hour: ") + so.data.saveGame7[10]) + ":00"), true);
} else {
if (buttonChoice == 7){
outputMainText("The chosen slot is empty", true);
};
};
if ((((buttonChoice == 9)) && (so.data.saveGame9))){
outputMainText((((("Day: " + so.data.saveGame9[9]) + ", Hour: ") + so.data.saveGame9[10]) + ":00"), true);
} else {
if (buttonChoice == 9){
outputMainText("The chosen slot is empty", true);
};
};
if ((((buttonChoice == 10)) && (so.data.saveGame10))){
outputMainText((((("Day: " + so.data.saveGame10[9]) + ", Hour: ") + so.data.saveGame10[10]) + ":00"), true);
} else {
if (buttonChoice == 10){
outputMainText("The chosen slot is empty", true);
};
};
if ((((buttonChoice == 11)) && (so.data.saveGame11))){
outputMainText((((("Day: " + so.data.saveGame11[9]) + ", Hour: ") + so.data.saveGame11[10]) + ":00"), true);
} else {
if (buttonChoice == 11){
outputMainText("The chosen slot is empty", true);
};
};
outputMainText((("\r\rAre you sure you want to save your game to slot " + buttonChoice) + "?\r\rAny data already saved there will be automatically overwritten."), false);
buttonConfirm();
doListen = function ():void{
if (buttonChoice == 6){
doSave(slot);
doReturn();
} else {
saveGo();
};
};
};
if (buttonChoice == 12){
doReturn();
};
};
}
public function doOldCave():void{
var chance:int;
chance = percent();
if (chance <= 50){
outputMainText("Growing on the wall of the cave, you find a small, odd looking mushroom. It has a red cap speckled with a few large white dots. You pluck it.", true);
item1 = 212;
hrs = 2;
doEnd();
};
if ((((chance > 50)) && ((chance <= 100)))){
outputMainText("Too dark to go inside, you merely wander around the entrance of the cave. However, an odd scent fills your nostrils and makes you feel a bit randy...", true);
stats(0, -1, 3, 0);
doLust(5);
hrs = 1;
doEnd();
};
}
public function bodyDesc():String{
var tempStr:String;
tempStr = ((("BODY ERROR " + gender) + " ") + body);
if (gender == 1){
if ((((body > 11)) && ((body <= 17)))){
if (hips > 2){
tempStr = "femme-boyish";
} else {
tempStr = "boyish";
};
} else {
if ((((body > 17)) && ((body <= 25)))){
tempStr = "manly";
} else {
if (body <= 11){
tempStr = "childish";
} else {
if (body > 25){
tempStr = "musclebound";
};
};
};
};
} else {
if (gender == 2){
if ((((body > 9)) && ((body <= 14)))){
tempStr = "girly";
};
if ((((body > 14)) && ((body <= 20)))){
if ((((((hips > 4)) || ((butt > 4)))) || ((breastSize > 4)))){
tempStr = "voluptuous";
} else {
tempStr = "womanly";
};
};
if (body <= 10){
tempStr = "childish";
} else {
if (body > 20){
tempStr = "musclebound";
};
};
} else {
if (gender == 3){
if ((((body > 11)) && ((body <= 23)))){
if ((((hips > 2)) && ((breastSize > 2)))){
tempStr = "feminine";
} else {
tempStr = "masculine";
};
} else {
if (body <= 11){
tempStr = "childish";
} else {
if (body > 23){
tempStr = "musclebound";
};
};
};
} else {
if (gender == 0){
if ((((body > 11)) && ((body <= 15)))){
tempStr = "teenage";
} else {
if ((((body > 15)) && ((body <= 23)))){
tempStr = "fully grown";
} else {
if (body <= 11){
tempStr = "childish";
} else {
if (body > 23){
tempStr = "musclebound";
};
};
};
};
};
};
};
};
return (tempStr);
}
public function affinityChange():void{
var chance:int;
var second:int;
var maxNonSkin:*;
var maxNonFur:*;
var maxTail:*;
var maxNonTail:*;
var hasHumanCock:int;
var hasHorseCock:int;
var hasWolfCock:int;
var hasCatCock:int;
var minCock:int;
outputMainText("Something feels odd...", true);
chance = percent();
second = 0;
if (((((((((humanAffinity + human) > horseAffinity)) && (((humanAffinity + human) > wolfAffinity)))) && (((humanAffinity + human) > catAffinity)))) && (((humanAffinity + human) > cowAffinity)))){
dominant = 1;
} else {
if (((((((((horseAffinity + horse) > humanAffinity)) && (((horseAffinity + horse) > wolfAffinity)))) && (((horseAffinity + horse) > catAffinity)))) && (((horseAffinity + horse) > cowAffinity)))){
dominant = 2;
} else {
if (((((((((wolfAffinity + wolf) > humanAffinity)) && (((wolfAffinity + wolf) > horseAffinity)))) && (((wolfAffinity + wolf) > catAffinity)))) && (((wolfAffinity + wolf) > cowAffinity)))){
dominant = 3;
} else {
if (((((((((catAffinity + cat) > humanAffinity)) && (((catAffinity + cat) > horseAffinity)))) && (((catAffinity + cat) > wolfAffinity)))) && (((catAffinity + cat) > cowAffinity)))){
dominant = 4;
} else {
if (((((((((cowAffinity + cow) > humanAffinity)) && (((cowAffinity + cow) > horseAffinity)))) && (((cowAffinity + cow) > wolfAffinity)))) && (((cowAffinity + cow) > catAffinity)))){
dominant = 5;
};
};
};
};
};
if (dominant == 1){
second = Math.max(horseAffinity, wolfAffinity, catAffinity, cowAffinity);
};
if (dominant == 2){
second = Math.max(humanAffinity, wolfAffinity, catAffinity, cowAffinity);
};
if (dominant == 3){
second = Math.max(humanAffinity, horseAffinity, catAffinity, cowAffinity);
};
if (dominant == 4){
second = Math.max(humanAffinity, horseAffinity, wolfAffinity, cowAffinity);
};
if (dominant == 5){
second = Math.max(humanAffinity, horseAffinity, wolfAffinity, catAffinity);
};
maxNonSkin = Math.max(horseAffinity, wolfAffinity, catAffinity, cowAffinity);
maxNonFur = Math.max(humanAffinity);
maxTail = Math.max(horseAffinity, wolfAffinity, catAffinity, cowAffinity);
maxNonTail = Math.max(humanAffinity);
if ((((((dominant == 1)) && (((humanAffinity + human) > (maxNonSkin + 35))))) && (!((skinType == 1))))){
outputMainText((((("\r\rYour " + skinDesc()) + " feels oddly cool. Looking at it, your ") + skinDesc()) + " shrinks into your skin, leaving you 'bald' all over. You feel a little naked as you get used to your bare skin."), false);
skinType = 1;
};
if ((((((dominant == 2)) && (((horseAffinity + horse) > (maxNonFur + 35))))) && (!((skinType == 2))))){
outputMainText((("\r\rYour " + skinDesc()) + " begins to itch all over as soft hairs begin to sprout in patches. Before you know it, your whole body is soon covered in a coat of fur."), false);
skinType = 2;
};
if ((((((dominant == 3)) && (((wolfAffinity + wolf) > (maxNonFur + 35))))) && (!((skinType == 2))))){
outputMainText((("\r\rYour " + skinDesc()) + " begins to itch all over as soft hairs begin to sprout in patches. Before you know it, your whole body is soon covered in a coat of fur."), false);
skinType = 2;
};
if ((((((dominant == 4)) && (((catAffinity + cat) > (maxNonFur + 35))))) && (!((skinType == 2))))){
outputMainText((("\r\rYour " + skinDesc()) + " begins to itch all over as soft hairs begin to sprout in patches. Before you know it, your whole body is soon covered in a coat of fur."), false);
skinType = 2;
};
if ((((((dominant == 5)) && (((cowAffinity + cow) > (maxNonFur + 35))))) && (!((skinType == 2))))){
outputMainText((("\r\rYour " + skinDesc()) + " begins to itch all over as soft hairs begin to sprout in patches. Before you know it, your whole body is soon covered in a coat of fur."), false);
skinType = 2;
};
if (tail < 1){
if ((((dominant == 2)) && (((horseAffinity + horse) > (maxNonTail + 15))))){
tail = 2;
};
if ((((dominant == 3)) && (((wolfAffinity + wolf) > (maxNonTail + 15))))){
tail = 3;
};
if ((((dominant == 4)) && (((catAffinity + cat) > (maxNonTail + 15))))){
tail = 4;
};
if ((((dominant == 5)) && (((cowAffinity + cow) > (maxNonTail + 15))))){
tail = 5;
};
if (tail > 1){
outputMainText((((((("\r\rYou feel a tickle upon your backside as your " + clothesBottom()) + " feels tight. With a groan, the pressure builds behind you, until a tearing sound fills the air and the pain is gone. Checking your backside, you see a new ") + tailDesc()) + " tail bobbing above your ") + buttDesc()) + " bum. Next time you go to town, you'll be visiting a tailor to fix your clothes to account for your new appendage..."), false);
};
};
if ((((((dominant == 1)) && (((humanAffinity + human) > (second + 10))))) && ((tail > 1)))){
tail = 0;
outputMainText("\r\rYour tail begins to tingle. As you turn around, you watch as it shrinks into your back, disappearing altogether. You no longer have any tail.", false);
};
if ((((((((dominant == 2)) && (((horseAffinity + horse) > (second + 10))))) && ((tail > 1)))) && (!((tail == 2))))){
tail = 2;
outputMainText("\r\rYour tail begins to tingle. As you turn around, you watch as it bursts into hundreds of long hairs. Any control you had over it before is gone, save for the muscles at the base that allow you to swish it with your mood and swat against your thighs. Just like a horse's", false);
};
if ((((((((dominant == 3)) && (((wolfAffinity + wolf) > (second + 10))))) && ((tail > 1)))) && (!((tail == 3))))){
tail = 3;
outputMainText("\r\rYour tail begins to tingle. As you turn around, you watch as it widens with long hairs around a skeletal base. It wags with your mood and reflexes, though you don't really have control over it otherwise, and it's oh so fluffy. Just like a wolf's", false);
};
if ((((((((dominant == 4)) && (((catAffinity + cat) > (second + 10))))) && ((tail > 1)))) && (!((tail == 4))))){
tail = 4;
outputMainText("\r\rYour tail begins to tingle. As you turn around, you watch as it narrows with short hairs around a skeletal base. It wags with your mood and reflexes and likes to curl around your touch with limited control, and it's oh so soft. Just like a cat's", false);
};
if ((((((((dominant == 5)) && (((cowAffinity + cow) > (second + 10))))) && ((tail > 1)))) && (!((tail == 5))))){
tail = 5;
outputMainText((("\r\rYour tail begins to tingle. As you turn around, you watch as it narrows with short hairs around a skeletal base and a tuft of long hair bursts at the tip. It sways lazily across your " + buttDesc()) + " backside and you can swat yourself with the tip like a soft whip. Just like a cow's"), false);
};
if ((((((dominant == 1)) && (((humanAffinity + human) > (second + 15))))) && (!((ears == 1))))){
ears = 1;
outputMainText("\r\rYour ears twitch as they become rounded and hug the sides of you head, looking more like a human's.", false);
};
if ((((((dominant == 2)) && (((horseAffinity + horse) > (second + 15))))) && (!((ears == 2))))){
ears = 2;
outputMainText("\r\rYour ears twitch as they become rounded and pointed at the tip, flicking atop your head, looking more like a horse's.", false);
};
if ((((((dominant == 3)) && (((wolfAffinity + wolf) > (second + 15))))) && (!((ears == 3))))){
ears = 3;
outputMainText("\r\rYour ears twitch as they become triangular, standing perk atop your head, looking more like a wolf's.", false);
};
if ((((((dominant == 4)) && (((catAffinity + cat) > (second + 15))))) && (!((ears == 4))))){
ears = 4;
outputMainText("\r\rYour ears twitch as they become triangular, standing perk atop your head, looking more like a cat's.", false);
};
if ((((((dominant == 5)) && (((cowAffinity + cow) > (second + 15))))) && (!((ears == 5))))){
ears = 5;
outputMainText("\r\rYour ears twitch as they become rounded and large, standing out from the sides of you head several inches, looking more like a cow's.", false);
};
hasHumanCock = 101;
hasHorseCock = 101;
hasWolfCock = 101;
hasCatCock = 101;
if (humanCocks > 0){
hasHumanCock = humanAffinity;
};
if (horseCocks > 0){
hasHorseCock = horseAffinity;
};
if (wolfCocks > 0){
hasWolfCock = wolfAffinity;
};
if (catCocks > 0){
hasCatCock = catAffinity;
};
minCock = Math.min(hasHumanCock, hasHorseCock, hasWolfCock, hasCatCock);
if ((((((((dominant == 1)) && (((humanAffinity + human) > (second + 25))))) && ((cockTotal > 0)))) && ((humanCocks < cockTotal)))){
outputMainText((((((((((((("\r\rYour " + hipDesc()) + " hips twitch as ") + oneYour(1)) + " cock") + plural(1)) + " begins to feel strange. You open your ") + clothesBottom()) + " to see what is happening, only to watch the sheath surrounding ") + oneYour(1)) + " cock") + plural(1)) + " disappears, leaving your cock exposed . It's smooth and fleshy, easily teased into erection. Its skin is slightly less sensitive, but the thick mushroom-like head twitches in your grip. It looks very much like a human's."), false);
humanCocks++;
if (minCock == horseAffinity){
horseCocks--;
} else {
if (minCock == wolfAffinity){
wolfCocks--;
} else {
if (minCock == catAffinity){
catCocks--;
};
};
};
};
if ((((((((dominant == 2)) && (((horseAffinity + horse) > (second + 25))))) && ((cockTotal > 0)))) && ((horseCocks < cockTotal)))){
outputMainText((((((((((((((("\r\rYour " + hipDesc()) + " hips twitch as ") + oneYour(1)) + " cock") + plural(1)) + " begins to feel strange. You open your ") + clothesBottom()) + " to see what is happening, only to watch as a thick sheath envelopes ") + oneYour(1)) + " cock") + plural(1)) + ". Relaxing your muscles, the cock slowly droops out over your ") + clothesBottom()) + ". It's long and smooth, with the prepuce only reaching halfway down its length making an obvious ring. The head is flat and as you knead it in your hand, it flares wide. It looks very much like a horse's."), false);
horseCocks++;
if (minCock == humanAffinity){
humanCocks--;
} else {
if (minCock == wolfAffinity){
wolfCocks--;
} else {
if (minCock == catAffinity){
catCocks--;
};
};
};
};
if ((((((((dominant == 3)) && (((wolfAffinity + wolf) > (second + 25))))) && ((cockTotal > 0)))) && ((wolfCocks < cockTotal)))){
outputMainText((((((((((((("\r\rYour " + hipDesc()) + " hips twitch as ") + oneYour(1)) + " cock") + plural(1)) + " begins to feel strange. You open your ") + clothesBottom()) + " to see what is happening, only to watch as a thin sheath envelopes ") + oneYour(1)) + " cock") + plural(1)) + ". Flexing your muscles, the cock slowly pushes out, red and hard, no matter how aroused you are. It's veiny and smooth, already a bit moist from being within the sheath. The head narrows off to a pointy tip where you can feel the urethra resides. It looks very much like a wolf's."), false);
wolfCocks++;
if (minCock == humanAffinity){
humanCocks--;
} else {
if (minCock == horseAffinity){
horseCocks--;
} else {
if (minCock == catAffinity){
catCocks--;
};
};
};
};
if ((((((((dominant == 4)) && (((catAffinity + cat) > (second + 25))))) && ((cockTotal > 0)))) && ((catCocks < cockTotal)))){
outputMainText((((((((((((("\r\rYour " + hipDesc()) + " hips twitch as ") + oneYour(1)) + " cock") + plural(1)) + " begins to feel strange. You open your ") + clothesBottom()) + " to see what is happening, only to watch as a thin sheath envelopes ") + oneYour(1)) + " cock") + plural(1)) + ". Flexing your muscles, the cock slowly pushes out, pink and soft. It's smooth and already a bit moist from being within the sheath, covered in tiny barbs that feel rough as your hand strokes against them. The head narrows off to a pointy tip where you can feel the urethra resides. It looks very much like a cat's."), false);
catCocks++;
if (minCock == humanAffinity){
humanCocks--;
} else {
if (minCock == horseAffinity){
horseCocks--;
} else {
if (minCock == wolfAffinity){
wolfCocks--;
};
};
};
};
if (((((horseAffinity + horse) > 40)) && ((horseAffinity <= 40)))){
if (cockTotal > 0){
outputMainText((((((((("\r\rYour " + clothesBottom()) + " grows tight, filling with extra cockflesh. Opening the ") + clothesBottom()) + ", your cock") + plural(1)) + " spill") + plural(3)) + " out, dangling while swelling larger and larger. The growth slows to a halt, much, much longer than before. 'Hung like a horse' seems like the appropriate phrase. And you're also going to have to sneak back into town while you hide your perverse excess flesh, rushing to a tailor to refit you."), false);
};
cockSizeMod = (cockSizeMod + 1);
};
if (((((horseAffinity + horse) < 40)) && ((horseAffinity >= 40)))){
if (cockTotal > 0){
outputMainText((((((("\r\rYour " + clothesBottom()) + " feel baggier. Opening the ") + clothesBottom()) + ", your cock") + plural(1)) + " shrinking towards your groin, losing a great deal of length. It seems like you have lost your equine engorgement."), false);
};
cockSizeMod = (cockSizeMod - 1);
};
if (((((wolfAffinity + wolf) > 40)) && ((wolfAffinity <= 40)))){
if (cockTotal > 0){
outputMainText((((((((((((((("\r\rA sudden wave of lust washes over you, your cock" + plural(1)) + " growing stiff in your ") + clothesBottom()) + ". You quickly open open your ") + clothesBottom()) + " to see what's going on. Within, the base") + plural(1)) + " of your shaft") + plural(1)) + " swell") + plural(3)) + ". In an instant, you're suprised by spurts of cum that shower you, a small volley from a quick unexpected orgasm. Wiping your eyes so you can see, the swelling persists as you continue to come for a while. It would be very difficult to remove your cock") + plural(1)) + " from a hot hole with large 'knots' like that, until they finished draining your seed."), false);
};
knot = true;
cumMod = (cumMod + 0.5);
};
if (((((wolfAffinity + wolf) < 40)) && ((wolfAffinity >= 40)))){
if (cockTotal > 0){
outputMainText((((((((((((((((((("\r\rAn odd draining fills your " + clothesBottom()) + ". Looking within, you see your cock") + plural(1)) + " grow slightly stiff, your knot") + plural(1)) + " swelling. Pre lazily seeps from your urethra") + plural(1)) + " as the knot") + plural(1)) + " deflate") + plural(1)) + " immediately while your cock") + plural(1)) + " remain") + plural(3)) + " stiff. It seems as though you have lost your knot") + plural(1)) + "."), false);
};
knot = false;
cumMod = (cumMod - 0.5);
};
if (((((catAffinity + cat) > 40)) && ((catAffinity <= 40)))){
outputMainText((("\r\rYour chest and belly tickle. Four new nipples form amongst your " + skinDesc()) + ", a fresh pair below your original two and another pair below that, creating two rows of three breasts."), false);
if (breastSize > 4){
outputMainText(((" The nipples protrude as mounds form beneath them. Breast-flesh wobbles, each row a fraction in size of the one above it. When you head back to town, you'll be covering your extra indecency with your arms the best you can while you head for the tailor to update your " + clothesTop()) + " accordingly."), false);
};
if (vagTotal > 0){
outputMainText((((("\r\rYour " + clothesBottom()) + " grows slightly moist, your cunt") + plural(2)) + " burning with arousal. The feeling quickly fades, but something tells you your reproductive instincts might occasionally take over..."), false);
};
if (heat < 1){
heatMaxTime = 96;
heatTime = 96;
heat++;
} else {
if (heat >= 1){
heatMaxTime = (heatMaxTime - 12);
heat++;
};
};
boobTotal = 6;
};
if (((((catAffinity + cat) < 40)) && ((catAffinity >= 40)))){
outputMainText("\r\rYour chest and belly tickle", false);
if (breastSize > 4){
outputMainText(", both growing much lighter", false);
};
outputMainText(((". Checking, you catch your four extra nipples disappear flat into your " + skinDesc()) + ", leaving you with only what's on your chest."), false);
if (vagTotal > 0){
outputMainText(((" You also feel your vagina" + plural(2)) + " cool a little, no longer as eager to be impregnated on certain days."), false);
};
if (heat >= 2){
heatMaxTime = (heatMaxTime + 12);
};
heat--;
boobTotal = 2;
};
if (((((cowAffinity + cow) > 10)) && ((cowAffinity <= 10)))){
outputMainText((("\r\rYour nipples stiffen beneath your " + clothesTop()) + ". They protrude nearly half an inch further than before!"), false);
nippleSize = (nippleSize + 2);
milkMod = (milkMod + 2);
};
if (((((cowAffinity + cow) > 25)) && ((cowAffinity <= 25)))){
outputMainText((("\r\rYour nipples stiffen beneath your " + clothesTop()) + ". They protrude an inch further than before! And your hips seem slightly broader..."), false);
lactChange(1);
nippleSize = (nippleSize + 5);
hips = (hips + 4);
milkMod = (milkMod + 2);
};
if (((((cowAffinity + cow) > 40)) && ((cowAffinity <= 40)))){
outputMainText((("\r\rYour nipples squirm within your " + clothesTop()) + ". They've grown over an inch and a half in length! And your hips feel like they're more 'square' than before..."), false);
lactChange(1);
nippleSize = (nippleSize + 8);
hips = (hips + 6);
milkMod = (milkMod + 2);
};
if (((((cowAffinity + cow) > 55)) && ((cowAffinity <= 55)))){
outputMainText((((((("\r\rJust above your groin, your belly begins to feel bloated. You wince as it pushes against your " + clothesBottom()) + ", especially noticing the increased sensitivity of four spots in particular. Before you can act, your ") + clothesBottom()) + " tears at the waist, as a mound crashes through. Hanging naked and free, with four teats twice as long as your nipples, an udder about twice as large as your chest, dripping with milk. You'll definitely be getting a special bra or perhaps adjust your ") + clothesBottom()) + " when you get back to town, at least to account for your surprisingly wider hips... "), false);
lactChange(2);
hips = (hips + 8);
udders = true;
udderSize = (2 * breastSize);
teatSize = (2 * nippleSize);
};
if (((((cowAffinity + cow) < 10)) && ((cowAffinity >= 10)))){
outputMainText("\r\rYour nipples are less noticeable, shrinking by nearly half an inch.", false);
nippleSize = (nippleSize - 2);
milkMod = (milkMod - 2);
};
if (((((cowAffinity + cow) < 25)) && ((cowAffinity >= 25)))){
outputMainText("\r\rYour nipples seem less noticeable as they shrink by an inch and your hips are less wide.", false);
lactChange(-1);
nippleSize = (nippleSize - 5);
hips = (hips - 4);
milkMod = (milkMod - 2);
};
if (((((cowAffinity + cow) < 40)) && ((cowAffinity >= 40)))){
outputMainText((("\r\rYour " + clothesTop()) + " feels slightly looser, as your nipples shrink by over an inch and a half. You hips also narrow a little, protruding less than before."), false);
lactChange(-1);
hips = (hips - 6);
nippleSize = (nippleSize - 8);
milkMod = (milkMod - 2);
};
if (((((cowAffinity + cow) < 55)) && ((cowAffinity >= 55)))){
outputMainText("\r\rThe fleshy bag of milk at your abdomen shrinks to nothing, disappearing along with its teats. You're no longer lugging around an udder. Plus all your waistbands seem quite loose after you hips shrink by a few inches.", false);
lactChange(-2);
hips = (hips - 8);
udders = false;
udderEngorgement = 0;
udderEngorgementLevel = 0;
udderPlay = 0;
udderSize = 0;
teatSize = 0;
};
if ((humanAffinity + human) < 0){
humanAffinity = 0;
} else {
if ((humanAffinity + human) > 100){
humanAffinity = 100;
} else {
humanAffinity = (humanAffinity + human);
};
};
if ((horseAffinity + horse) < 0){
horseAffinity = 0;
} else {
if ((horseAffinity + horse) > 100){
horseAffinity = 100;
} else {
horseAffinity = (horseAffinity + horse);
};
};
if ((wolfAffinity + wolf) < 0){
wolfAffinity = 0;
} else {
if ((wolfAffinity + wolf) > 100){
wolfAffinity = 100;
} else {
wolfAffinity = (wolfAffinity + wolf);
};
};
if ((catAffinity + cat) < 0){
catAffinity = 0;
} else {
if ((catAffinity + cat) > 100){
catAffinity = 100;
} else {
catAffinity = (catAffinity + cat);
};
};
if ((cowAffinity + cow) < 0){
cowAffinity = 0;
} else {
if ((cowAffinity + cow) > 100){
cowAffinity = 100;
} else {
cowAffinity = (cowAffinity + cow);
};
};
human = 0;
horse = 0;
wolf = 0;
cat = 0;
cow = 0;
if (currentText == "Something feels odd..."){
outputMainText("", true);
doProcess();
} else {
doEnd();
};
}
public function clothesID(choice:int):int{
var tempNum:int;
tempNum = 0;
if (currentZone == 1){
if (choice == 1){
tempNum = 1;
};
if (choice == 2){
tempNum = 2;
};
if (choice == 3){
tempNum = 5;
};
if (choice == 5){
tempNum = 6;
};
if (choice == 6){
tempNum = 7;
};
if (choice == 7){
tempNum = 8;
};
if (choice == 9){
tempNum = 9;
};
if (choice == 10){
tempNum = 11;
};
if (choice == 11){
tempNum = 12;
};
};
if (currentZone == 2){
if (choice == 1){
tempNum = 1;
};
if (choice == 2){
tempNum = 2;
};
if (choice == 3){
tempNum = 3;
};
if (choice == 5){
tempNum = 4;
};
if (choice == 6){
tempNum = 6;
};
if (choice == 7){
tempNum = 7;
};
if (choice == 9){
tempNum = 8;
};
if (choice == 10){
tempNum = 14;
};
if (choice == 11){
tempNum = 15;
};
};
if (currentZone == 3){
if (choice == 1){
tempNum = 1;
};
if (choice == 2){
tempNum = 2;
};
if (choice == 3){
tempNum = 5;
};
if (choice == 5){
tempNum = 7;
};
if (choice == 6){
tempNum = 8;
};
if (choice == 7){
tempNum = 9;
};
if (choice == 9){
tempNum = 12;
};
if (choice == 10){
tempNum = 13;
};
if (choice == 11){
tempNum = 15;
};
};
if (currentZone == 4){
if (choice == 1){
tempNum = 1;
};
if (choice == 2){
tempNum = 2;
};
if (choice == 3){
tempNum = 3;
};
if (choice == 5){
tempNum = 4;
};
if (choice == 6){
tempNum = 11;
};
if (choice == 7){
tempNum = 12;
};
if (choice == 9){
tempNum = 13;
};
if (choice == 10){
tempNum = 14;
};
if (choice == 11){
tempNum = 15;
};
};
return (tempNum);
}
public function invertGo():void{
if (bgC.visible == false){
bgC.visible = true;
statPane.textColor = 0xFFFFFF;
statValuePane.textColor = 0xFFFFFF;
levelPane.textColor = 0xFFFFFF;
levelValuePane.textColor = 0xFFFFFF;
DayPane.textColor = 0xFFFFFF;
DayValuePane.textColor = 0xFFFFFF;
clockPane.textColor = 0xFFFFFF;
outputWindow.textColor = 0xFFFFFF;
region.textColor = 0xFFFFFF;
currentRegion.textColor = 0xFFFFFF;
} else {
bgC.visible = false;
statPane.textColor = 0;
statValuePane.textColor = 0;
levelPane.textColor = 0;
levelValuePane.textColor = 0;
DayPane.textColor = 0;
DayValuePane.textColor = 0;
clockPane.textColor = 0;
outputWindow.textColor = 0;
currentRegion.textColor = 0;
region.textColor = 0;
};
}
public function buttDesc():String{
var chance:int;
var tempStr:String;
chance = percent();
tempStr = ("BUTT ERROR " + butt);
if (chance <= 100){
if (butt <= 2){
tempStr = "flat";
};
if ((((butt > 2)) && ((butt <= 5)))){
tempStr = "tight";
};
if ((((butt > 5)) && ((butt <= 15)))){
tempStr = "ample";
};
if ((((butt > 15)) && ((butt <= 30)))){
tempStr = "large";
};
if ((((butt > 30)) && ((butt <= 50)))){
tempStr = "huge";
};
if ((((butt > 50)) && ((butt <= 80)))){
tempStr = "grand";
};
if ((((butt > 80)) && ((butt <= 130)))){
tempStr = "jumbo";
};
if ((((butt > 130)) && ((butt <= 175)))){
tempStr = "giant";
};
if (butt > 175){
tempStr = "ginormous";
};
};
if (chance > 50){
if (butt <= 2){
tempStr = "boney";
};
if ((((butt > 2)) && ((butt <= 5)))){
tempStr = "firm";
};
if ((((butt > 5)) && ((butt <= 15)))){
tempStr = "grope-able";
};
if ((((butt > 15)) && ((butt <= 30)))){
tempStr = "jiggly";
};
if ((((butt > 30)) && ((butt <= 50)))){
tempStr = "pillow-like";
};
if ((((butt > 50)) && ((butt <= 80)))){
tempStr = "wobbling";
};
if ((((butt > 80)) && ((butt <= 130)))){
tempStr = "swaying";
};
if ((((butt > 130)) && ((butt <= 175)))){
tempStr = "bouncing";
};
if (butt > 175){
tempStr = "constantly quivering";
};
};
return (tempStr);
}
public function doProcess():void{
if (item1 != 0){
gainItem(item1, 1);
} else {
if (item2 != 0){
gainItem(item2, 2);
} else {
if (item3 != 0){
gainItem(item3, 3);
} else {
if (item4 != 0){
gainItem(item4, 4);
} else {
if (item5 != 0){
gainItem(item5, 5);
} else {
if (item6 != 0){
gainItem(item6, 6);
} else {
if (((((((((!((human == 0))) || (!((horse == 0))))) || (!((wolf == 0))))) || (!((cat == 0))))) || (!((cow == 0))))){
affinityChange();
} else {
if (hrs != 0){
dayTime(hrs);
} else {
doReturn();
};
};
};
};
};
};
};
};
}
public function itemID(slotNumber:int):int{
var tempNum:Number;
tempNum = 0;
if (currentItems == 1){
tempNum = itemArray1[slotNumber];
};
if (currentItems == 2){
if (slotNumber > 12){
slotNumber = (slotNumber - 12);
};
tempNum = itemArray2[slotNumber];
};
if (currentItems == 3){
if (slotNumber > 24){
slotNumber = (slotNumber - 24);
};
tempNum = itemArray3[slotNumber];
};
return (tempNum);
}
public function doBag():void{
inBag = true;
bc();
viewButtonText(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
viewButtonOutline(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
i = 1;
while (i < 13) {
buttonWrite(i, itemName(itemID(i)));
if (i == 12){
buttonWrite(12, "Return");
};
i++;
};
buttonWrite(4, "<<");
buttonWrite(8, ">>");
showPage(true, 1);
doListen = function ():void{
if (buttonChoice == 12){
inBag = false;
showPage(false, 1);
doReturn();
} else {
if (buttonChoice == 4){
if (currentItems == 1){
currentItems = 3;
} else {
if (currentItems == 2){
currentItems = 1;
} else {
if (currentItems == 3){
currentItems = 2;
};
};
};
showPage(true, 1);
doBag();
} else {
if (buttonChoice == 8){
if (currentItems == 1){
currentItems = 2;
} else {
if (currentItems == 2){
currentItems = 3;
} else {
if (currentItems == 3){
currentItems = 1;
};
};
};
showPage(true, 1);
doBag();
} else {
if (((((!((buttonChoice == 0))) && (!((buttonChoice == 4))))) && (!((buttonChoice == 8))))){
useItem(buttonChoice);
};
};
};
};
};
}
public function doExplore():void{
bc();
if (currentZone == 1){
viewButtonOutline(1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0);
viewButtonText(1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0);
buttonWrite(6, "Softlik");
buttonWrite(1, "Forest");
buttonWrite(7, "Dairy Farm");
buttonWrite(10, "Plains");
doListen = function ():void{
if (buttonChoice == 6){
doSoftlik();
};
if (buttonChoice == 1){
doForest();
};
if (buttonChoice == 7){
doDairyFarm();
};
if (buttonChoice == 10){
doPlains();
};
};
};
if (currentZone == 2){
viewButtonOutline(0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0);
viewButtonText(0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0);
buttonWrite(6, "Firmshaft");
buttonWrite(3, "Plains");
buttonWrite(9, "Savanna");
buttonWrite(11, "Old Cave");
doListen = function ():void{
if (buttonChoice == 6){
doFirmshaft();
};
if (buttonChoice == 3){
doPlains();
};
if (buttonChoice == 9){
doSavanna();
};
if (buttonChoice == 11){
doOldCave();
};
};
};
if (currentZone == 3){
viewButtonOutline(0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0);
viewButtonText(0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0);
buttonWrite(6, "Tieden");
buttonWrite(5, "Lake");
buttonWrite(7, "Forest");
buttonWrite(10, "Jungle");
doListen = function ():void{
if (buttonChoice == 6){
doTieden();
};
if (buttonChoice == 5){
doLake();
};
if (buttonChoice == 7){
doForest();
};
if (buttonChoice == 10){
doJungle();
};
};
};
if (currentZone == 4){
viewButtonOutline(0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0);
viewButtonText(0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0);
buttonWrite(6, "Siz'Calit");
buttonWrite(2, "Jungle");
buttonWrite(9, "Beach");
buttonWrite(11, "Savanna");
doListen = function ():void{
if (buttonChoice == 6){
doSizCalit();
};
if (buttonChoice == 2){
doJungle();
};
if (buttonChoice == 9){
doBeach();
};
if (buttonChoice == 11){
doSavanna();
};
};
};
}
public function doSavanna():void{
var chance:int;
chance = percent();
if (chance <= 25){
outputMainText("While heading through the warm savanna, you think you feel it get suddenly warmer... A mrowl echoes around you as you see a slender felin female sway her hips towards you. Her fur looks like a mess, her bikini tops disheveled, 2 of her 6 nipples exposed and looking quite stiff and sore, and her loin cloth is completely drenched in something slick and sticky. Her hand reaches behind the cloth as she spots you and shivers.\r\r'Please... So hot... Must fuck...'\r\rUtterly driven and distraught by her lonely, fruitless heat, the desperately horny felin lunges at you, not sure whether she's about to fuck you or tear you to shreds!", true);
doNext();
doListen = function ():void{
enemyID = 301;
currentState = 2;
enemyBaseStats();
eMaxHP = eHP;
doBattle();
};
};
if ((((chance > 25)) && ((chance <= 50)))){
outputMainText("While trudging along the savanna, you hear the stamping of hooves. Drunken song erupts in the air as a large equan man stumbles your way. His pants unbuttoned, his hand hidden within, you can see him groping his large erection. In his other hand he holds a large mug, still filled with alcohol. He smiles as he sees you, and then charges right at you!", true);
doNext();
doListen = function ():void{
enemyID = 302;
currentState = 2;
enemyBaseStats();
eMaxHP = eHP;
doBattle();
};
};
if ((((chance > 50)) && ((chance <= 75)))){
outputMainText("You roam about the savanna, not really finding anything interesting. However, the warm weather kinda makes you wanna take off your clothes...", true);
doLust(Math.floor(((lib * 2) - ment)));
hrs = 1;
doEnd();
};
if (chance > 75){
outputMainText("After a few hours of being lost under the sweltering sun, you come across the faint signs of a path. Would you like to follow it?", true);
buttonConfirm();
doListen = function ():void{
if (buttonChoice == 6){
if (currentZone == 2){
outputMainText("Following the path, the vegetation becomes denser and denser until trees surround you. You begin to see various wooden structures built amongst the canopy. Rope-bridges and circular huts everywhere, with lithe cat-like people walking about or jumping from branch to branch. The path leads you right to one of the few spiraling ramps that encircles the trees, bringing you up to the tree-born city.\r\rYou have now entered the Felin home-city of Siz'Calit! Although, looking behind you, there seems to be no sign of the path you just took. Getting back might be a bit difficult...", true);
regionChange(4);
hrs = 4;
doEnd();
} else {
if (currentZone == 4){
outputMainText("Following the path, signs of civilization come into view. Large tents flutter in the breeze, made from canvas held up by rocks and logs, with a few smaller brick buildings here and there. You can hear the soft clapping of hard feet everywhere, as you spot several large horse-like people walk and dash about.\r\rYou have now entered the Equan home-city of Firmshaft! Although, looking behind you, there seems to be no sign of the path you just took. Getting back might be a bit difficult...", true);
regionChange(2);
hrs = 4;
doEnd();
};
};
} else {
outputMainText("You return from whence you came.", true);
hrs = 1;
doEnd();
};
};
};
}
public function doImpregnate(erace:int):void{
var chance:int;
var tempPregMod:int;
chance = percent();
tempPregMod = 0;
if (babyFree > 0){
tempPregMod = (tempPregMod - 50);
};
if ((((pregnancy == false)) && ((((chance + pregChanceMod) + tempPregMod) >= 70)))){
if (erace == 100){
pregMaxTime = ((120 + Math.floor((percent() / 10))) + pregTimeMod);
};
if (erace == 4){
pregMaxTime = ((130 + Math.floor((percent() / 5))) + pregTimeMod);
};
if (erace == 2){
pregMaxTime = ((205 + Math.floor((percent() / 5))) + pregTimeMod);
};
if (erace == 1){
pregMaxTime = ((40 + Math.floor((percent() / 10))) + pregTimeMod);
};
pregnancyType = erace;
pregnancy = true;
};
}
public function doBeach():void{
var chance:int;
chance = percent();
if (chance <= 10){
outputMainText("While taking a nice stroll along the beach, you see the silhouette of somebody sunning themselves on the sand in the distance. Judging by the ample curves at their chest, they seem to be a rather well-endowed in the breast department. Considering you can also spot the plump perk nipples protruding unrestrained from where you are, you also assume the person is likely to be nude. And judging by the large, swollen belly, you suspect that 'she' may be quite pregnant as well...\r\rWould you like to inspect her more closely?", true);
buttonConfirm();
doListen = function ():void{
if (buttonChoice == 6){
outputMainText("Moving closer, you squint in an attempt for a better view. However, her body seems moist as the sun reflects off her slick skin easily, making it difficult for you to see. It's not until you're nearly on top of her that you can clearly make out what she is...\r\rShe has curly hair that hangs past her shoulders, coral pink in color. It looks like it's completely drenched, despite laying out in the sun, and has bits of seaweed caught within it.\r\rHer face is slightly slightly round, with incredibly smooth looking skin that is oddly pinker than usual, though not nearly as noticeable as her hair. She wears a very relaxed and content expression, her eyes closed as she soaks up the warmth of the sun.\r\rUpon her chest heaves two quite enourmous breasts, each larger than her head. She doesn't seem to be completely nude as two starfish cover her nipples. They stick out against her breasts quite far, easily mistaken from your first observations. They also pulsate slightly, their twitching causing the fleshy mounds to jiggle, as though they were suckling from her.\r\rAs suspected, her belly is quite gravid indeed. Her slender hands caress it as she lays there, practically glowing with her engorged fertility. In relation to the rest of her torso, the belly seems far too large for her. Although, as you look further still, it's no surprise that she can manage to carry it...", true);
doNext();
doListen = function ():void{
outputMainText("Her 'butt' is large for her slender torso, her hips wider than you'd expect. And she has no legs...\r\rEight large, long tentacles squirm idly below her waist. They share a similar tone of pink as her hair, though much deeper and nearly purple, with a thin membrane of fleshy webbing between them. Their undersides are riddled with little suction cups, popping and sticking onto each other as they writhe. And as you step too close, one twitches out and touches you, realizing you're there.\r\rThe octopus girl's eyes snap open. They're large and nearly all a deep purple in color, with a slight amount of white around the edges. She glares at you in an instant and smirks. And you're quite unsure if it's a playful smirk or a predatory one...\r\rEither way, as her tentacles roll beneath her body and bring her to a 'stand', wobbling slightly from her large bosom and belly, you'll soon find out!", true);
doNext();
doListen = function ():void{
enemyID = 303;
currentState = 2;
enemyBaseStats();
eMaxHP = eHP;
doBattle();
};
};
} else {
outputMainText("Deciding it best to leave the curvy woman in peace, you turn around and head back to Siz'Calit.", true);
hrs = 1;
stats(0, 1, 0, 0);
doEnd();
};
};
};
if ((((chance > 10)) && ((chance <= 35)))){
outputMainText("While taking a nice stroll along the beach, you see the silhouette of somebody sunning themselves on the sand in the distance. Judging by the ample curves at their chest, they seem to be a rather well-endowed in the breast department. Considering you can also spot the plump perk nipples protruding unrestrained from where you are, you also assume the person is likely to be nude. And judging by the large, swollen belly, you suspect that 'she' may be quite pregnant as well...\r\rWould you like to inspect her more closely?", true);
buttonConfirm();
doListen = function ():void{
if (buttonChoice == 6){
outputMainText("Moving closer, you can make out her figure much more easily. She has a slender frame, quite lithe, with a thick tail that narrows to a point and swishes through the sand between her spread legs. Oddly, she seems to be covered in scales, ranging from green to a light purple. And you seem to be able to see ALL of her scales, as she is quite nude while she soaks up the sun.\r\rShe spots you as you approach and gently turns to face you, a smile on her reptillian face 'Hello dearie. Do you enjoy the view?' She sticks out her tongue as her hand gropes at her large breast. 'Mmm, but I don't mind. I'm much too happy. Days like this with my husband are so nice~ When he gets so horny and just absolutely fills me up~!'\r\rHer other hand roams over her huge belly before finding its way to her crotch. You can hear a slurp as she pleasure herself and you spot a spurt of white gunk spew across the sand.\r\r'He went off to fetch some food, though, and I don't know when he'll be back. Would you be a dear and help me with something down there while he's gone, if you would?'", true);
buttonConfirm();
doListen = function ():void{
if (buttonChoice == 6){
outputMainText("You nod your head and begin to move towards her legs.\r\r'Thank you so much, dearie~ I have a tendency to build up my eggs, unlike other lizan girls, and my husband's stuff is the easiest way for me to lay them all at once. I just need you to sit there and be ready to catch them when they do, or else they'll float into the water and be such a waste...'\r\rNodding once again, you maneuver around her body and kneel down between her legs, straddling her thick reptilian tail. Your eyes go wide, however, as there's much more white gunk than you expected, spunk literally oozing from her scaley slit, despite the fact she's clenching to keep it in.\r\r'Just like that dearie. Sitting on my tail helps me push. Now, get ready!'\r\rYou reach out in preparation, your fingers slipping across her supple lips and making her moan. Her thighs shudder as she lets out a gasp, letting her cunt stretch wide.\r\rCum floods from her loins, pooling around your knees and over her tail. You quickly realize that her large belly had mostly been inflated with cum rather than some mere eggs! Especially as the eggs that rush out are relatively small, maybe twice the size of a chicken's. You scramble to pluck them from the river of cum, trying to spot their white shells amidst the white fluid. Your hands slip and stick from all the spunk, but you manage to get them all. Hardly half a dozen...", true);
doNext();
doListen = function ():void{
outputMainText((("'Whew... Thanks a lot, dearie. Sorry to umm...' She looks at your " + clothesBottom()) + " and how drenched it is with her husband's seed. 'come on you like that... Don't worry though, it'll wash right out. And he takes a drug to keep it sterile for our little outtings. Wouldn't want to have all these eggs be alive now, would we?' She chuckles. 'But here, take one for yourself. They're good for you, when they don't have babies in them!'\r\rShe giggles and kisses you on the cheek, thanking you once again before you head off. She dozes back off, her tail idly swishing in the pool of semen, her thighs drenched in the stuff, and looking all the happier for it."), true);
item1 = 219;
if (percent() < 35){
outputMainText("\r\rAs you begin to leave, however, you spot something move towards you. Another reptillian, this one seems quite male as two cocks hang from his groin and knock against his knees. He seems a bit sheepish at first, blush filling the scales of his face due to his rather immodest lack of an outfit, but realizes the damage is already done and waves you over.\r\r'Umm... I suppose you helped out my wife then?' He spots the egg in your hand and the lack of belly on his wife. 'Well, thank you for that. Sometimes I just can't get back in time. Here, take one of these at least, I've think I've got plenty.'\r\rHe hands you a berry but actually refers to his scrotum. It hangs past his wangs and seems stuffed with testicles, though you can't easily count how many. They're each at least the size of a small melon and can easily explain how his wife was so bloated.\r\rNevertheless, he thanks you again and lets you head off, wanting some more time with his wife.", false);
itemAdd(218);
};
hrs = 4;
doEnd();
};
} else {
outputMainText("You shake your head no, not wanting to interrupt their time together.\r\r'Ahh, thank you dearie, I appreciate the sentiment. Here, at least take one of these. My husband uses them on occasion, but he prefers a different kind. Not that it matters to me, either way he makes me happy~' She twitches as her head leans back with a strong sigh, another spurt spewing over the sand.\r\rShe then picks something from her pack beside her and tosses it over to you, letting you head back to Siz'Calit.", true);
item1 = 208;
hrs = 2;
doEnd();
};
};
} else {
outputMainText("Deciding it best to leave the curvy woman in peace, you turn around and head back to Siz'Calit.", true);
hrs = 1;
stats(0, 1, 0, 0);
doEnd();
};
};
};
if ((((chance > 35)) && ((chance <= 40)))){
outputMainText("Walking along the beach, you spot something shiny in the sand.", true);
item1 = 206;
hrs = 2;
doEnd();
};
if ((((chance > 40)) && ((chance <= 60)))){
outputMainText("Combing the beach, you find something odd buried in the sand.", true);
item1 = 207;
hrs = 2;
doEnd();
};
if ((((chance > 60)) && ((chance <= 80)))){
outputMainText("Strolling along the beach, you suddenly begin to hop up and down, your foot aching painfully as you step on an urchin!", true);
doHP(-(Math.floor((percent() / 10))));
hrs = 2;
doEnd();
};
if (chance > 80){
outputMainText("You walk along the beach, the ocean breeze blowing through your hair, the smell of salt on the wind. You take a deep breath and feel a bit rejuvenated.", true);
doLust(-5);
stats(0, 0, -1, 0);
exhaustion = (exhaustion - 2);
hrs = 1;
doEnd();
};
}
public function stashSlotWrite(slotNumber:int, slotItem:int):void{
if (currentStash == 1){
stashArray1[slotNumber] = slotItem;
};
if (currentStash == 2){
stashArray2[slotNumber] = slotItem;
};
if (currentStash == 3){
stashArray3[slotNumber] = slotItem;
};
}
public function changeTop(ID:int):void{
if (attireTop == -1){
stats(2, 2, 0, 0);
};
if (attireTop == 0){
stats(0, 4, 0, 0);
};
if (attireTop == 1){
};
if (attireTop == 3){
enticeMod = (enticeMod - 3);
stats(0, 2, 0, -2);
milkMod = (milkMod + 0.5);
};
if (attireTop == 5){
stats(2, -4, 0, 0);
};
if (attireTop == 6){
enticeMod = (enticeMod - 7);
stats(0, 2, 0, -8);
cumMod = (cumMod + 0.2);
milkMod = (milkMod + 0.3);
};
if (attireTop == 9){
stats(2, -2, 0, 1);
milkMod = (milkMod - 0.5);
};
if (attireTop == 12){
stats(2, 0, -2, -2);
cumMod = (cumMod - 0.2);
runMod = (runMod + 5);
pregChanceMod = (pregChanceMod - 5);
};
if (attireTop == 13){
stats(2, 3, -2, -3);
enticeMod = (enticeMod - 5);
pregChanceMod = (pregChanceMod - 5);
};
if (ID == -1){
if ((((attireTop == attireBot)) && (!((attireBot == -1))))){
attireTop = ID;
changeBot(-1);
};
stats(-2, -2, 0, 0);
};
if (ID == 0){
stats(0, -4, 0, 0);
};
if (ID == 1){
};
if (ID == 3){
enticeMod = (enticeMod + 3);
stats(0, -2, 0, 2);
milkMod = (milkMod - 0.5);
};
if (ID == 5){
stats(-2, 4, 0, 0);
};
if (ID == 6){
enticeMod = (enticeMod + 7);
stats(0, -2, 0, 8);
cumMod = (cumMod - 0.2);
milkMod = (milkMod - 0.3);
};
if (ID == 9){
stats(-2, 2, 0, -1);
milkMod = (milkMod + 0.5);
};
if (ID == 12){
stats(-2, 0, 2, 2);
cumMod = (cumMod + 0.2);
runMod = (runMod - 5);
pregChanceMod = (pregChanceMod + 5);
};
if (ID == 13){
stats(-2, -3, 2, 3);
enticeMod = (enticeMod + 5);
pregChanceMod = (pregChanceMod + 5);
};
if ((((((attireTop == attireBot)) && (!((ID == 0))))) && (!((ID == -1))))){
changeBot(0);
};
attireTop = ID;
}
public function bellyDesc():String{
var chance:int;
var tempStr:String;
chance = percent();
tempStr = ("BELLY ERROR " + (pregnancyTime + bellyMod));
if (chance <= 100){
if (((((pregnancyTime + bellyMod) > 18)) && (((pregnancyTime + bellyMod) <= 36)))){
tempStr = "hardly noticeable";
};
if (((((pregnancyTime + bellyMod) > 36)) && (((pregnancyTime + bellyMod) <= 72)))){
tempStr = "rather bloated";
};
if (((((pregnancyTime + bellyMod) > 72)) && (((pregnancyTime + bellyMod) <= 108)))){
tempStr = "obviously bulging";
};
if (((((pregnancyTime + bellyMod) > 108)) && (((pregnancyTime + bellyMod) <= 144)))){
tempStr = "cradleable";
};
if (((((pregnancyTime + bellyMod) > 144)) && (((pregnancyTime + bellyMod) <= 180)))){
tempStr = "greatly protruding";
};
if (((((pregnancyTime + bellyMod) > 180)) && (((pregnancyTime + bellyMod) <= 216)))){
tempStr = "beachball-sized";
};
if (((((pregnancyTime + bellyMod) > 216)) && (((pregnancyTime + bellyMod) <= 252)))){
tempStr = "excessively large";
};
if (((((pregnancyTime + bellyMod) > 252)) && (((pregnancyTime + bellyMod) <= 288)))){
tempStr = "eye-catching";
};
if (((((pregnancyTime + bellyMod) > 288)) && (((pregnancyTime + bellyMod) <= 324)))){
tempStr = "doorway-crowding";
};
if (((((pregnancyTime + bellyMod) > 324)) && (((pregnancyTime + bellyMod) <= 360)))){
tempStr = "hallway-filling";
};
if (((((pregnancyTime + bellyMod) > 360)) && (((pregnancyTime + bellyMod) <= 396)))){
tempStr = "street-clearing";
};
if (((((pregnancyTime + bellyMod) > 396)) && (((pregnancyTime + bellyMod) <= 432)))){
tempStr = "larger-than-an-average-person";
};
if ((pregnancyTime + bellyMod) > 432){
tempStr = "impossibly huge";
};
};
if (chance > 50){
};
return (tempStr);
}
public function vulvaDesc():String{
var chance:int;
var tempStr:String;
chance = percent();
tempStr = ("VULVA ERROR " + vulvaSize);
if (chance <= 100){
if (vulvaSize <= 2){
tempStr = "tiny";
};
if ((((vulvaSize > 2)) && ((vulvaSize <= 8)))){
tempStr = "plush";
};
if ((((vulvaSize > 8)) && ((vulvaSize <= 16)))){
tempStr = "plump";
};
if ((((vulvaSize > 16)) && ((vulvaSize <= 24)))){
tempStr = "huge";
};
if ((((vulvaSize > 24)) && ((vulvaSize <= 36)))){
tempStr = "enormous";
};
if ((((vulvaSize > 36)) && ((vulvaSize <= 54)))){
tempStr = "gigantic";
};
if ((((vulvaSize > 54)) && ((vulvaSize <= 84)))){
tempStr = "humongous";
};
if ((((vulvaSize > 84)) && ((vulvaSize <= 124)))){
tempStr = "tremendous";
};
if ((((vulvaSize > 124)) && ((vulvaSize <= 160)))){
tempStr = "colossal";
};
if (vulvaSize > 160){
tempStr = "ridiculous";
};
};
if (chance > 50){
if (vulvaSize == 2){
tempStr = "childlike";
};
if ((((vulvaSize > 2)) && ((vulvaSize <= 8)))){
tempStr = "dainty";
};
if ((((vulvaSize > 8)) && ((vulvaSize <= 16)))){
tempStr = "kissable";
};
if ((((vulvaSize > 16)) && ((vulvaSize <= 24)))){
tempStr = "groin-filling";
};
if ((((vulvaSize > 24)) && ((vulvaSize <= 36)))){
tempStr = "thigh-spreading";
};
if ((((vulvaSize > 36)) && ((vulvaSize <= 54)))){
tempStr = "leg-spreading";
};
if ((((vulvaSize > 54)) && ((vulvaSize <= 84)))){
tempStr = "ground-scraping";
};
if ((((vulvaSize > 84)) && ((vulvaSize <= 124)))){
tempStr = "person-sized";
};
if ((((vulvaSize > 124)) && ((vulvaSize <= 160)))){
tempStr = "room-sized";
};
if (vulvaSize > 160){
tempStr = "building-sized";
};
};
return (tempStr);
}
public function doVagMasturbate():void{
if (lust < 20){
outputMainText("You're not really in the mood to play with yourself. You'll just have to settle for something else.", true);
doEnd();
} else {
if (ment >= (lib - 10)){
outputMainText((((((((((((((("You sneak off to the private place where you sleep in " + regionName()) + " with a bunch of towels in hand. Carefully, so as to not let anybody hear, you pull ") + pullUD(2)) + " your ") + clothesBottom()) + ", and gently squeeze your ") + vulvaDesc()) + " nether-lips.\r\rYou lay down on your back and slide your fingers through the front of the cleft") + plural(2)) + " at your crotch, you tease your ") + clitDesc()) + " button") + plural(2)) + ". Stiff and erect, you rub "), true);
};
if ((((ment < (lib - 10))) && ((ment >= (lib - 25))))){
outputMainText((((((((((((((((((("You quickly head off to the private place where you sleep with your intentions clear as those around " + regionName()) + " can easily see you rub your ") + vulvaDesc()) + " groin through your ") + clothesBottom()) + ". Before you even reach your destination, you're already pulling the ") + clothesBottom()) + " ") + pullUD(2)) + ", accidentally flashing someone your ") + buttDesc()) + " bum.\r\rNevertheless, you squeeze your nether-lips, rubbing your hands down through your ") + vulvaDesc()) + " crotch, grinding your ") + clitDesc()) + " button") + plural(2)) + " and kneading "), true);
};
if ((((ment < (lib - 25))) && ((ment >= (lib - 50))))){
outputMainText((((((((((((("Your chest heaving with your heavy breathing, you don't think you can reach the private place where you sleep without crouching and spreading your legs erotically, the thought of coming hanging so heavily on your mind.\r\rInstead, you duck into one of the more hidden corners of " + regionName()) + " as you pull ") + pullUD(2)) + " your ") + clothesBottom()) + ", squeezing your ") + vulvaDesc()) + " nether-lips with anticipation and tug at your ") + clitDesc()) + " clit") + plural(2)) + " grinding "), true);
};
if (ment < (lib - 50)){
outputMainText((((((((((((("Without a second thought, right in the middle of " + regionName()) + " you pull ") + pullUD(2)) + " your ") + clothesBottom()) + ", rubbing a hand across your ") + vulvaDesc()) + " cunt and pinching your ") + clitDesc()) + " clit") + plural(2)) + ".\r\rPeople gasp as you continue to grind "), true);
};
if (vagTotal > 1){
outputMainText("them ", false);
};
if (vagTotal == 1){
outputMainText("it ", false);
};
outputMainText("vigorously, making ", false);
if (vagTotal > 1){
outputMainText("them ", false);
};
if (vagTotal == 1){
outputMainText("it ", false);
};
outputMainText((("stiff. Faster and faster you go, until your " + vulvaDesc()) + " vulva swells with blood."), false);
if ((((vagMoist > 0)) && ((vagMoist <= 3)))){
outputMainText(" A bit of sweet feminine honey slips out from between your legs, your hand taking as much as possible to meagerly lubricate your sex.", false);
};
if ((((vagMoist > 3)) && ((vagMoist <= 6)))){
outputMainText(((" Some sweet feminine honey dribbles from between your legs, slipping back across your " + buttDesc()) + " tush and smearing across your thighs, plenty to take care of business."), false);
};
if ((((vagMoist > 6)) && ((vagMoist <= 9)))){
outputMainText(((((" Lubricant spills from your slit" + plural(2)) + ", running down your legs and smearing across your ") + buttDesc()) + " backside, dribbling off your body, more than enough to frig yourself silly."), false);
};
if ((((vagMoist > 9)) && ((vagMoist <= 12)))){
outputMainText(((" Fem-cum floods your crotch, loudly slurping as your hands, all the way up to your elbows, become slick with the stuff. Your " + buttDesc()) + " ass is practically sopping with it and more flings across your legs and down below you as you go."), false);
};
if (lust <= 30){
outputMainText("\r\rSlowly,", false);
};
if ((((lust > 30)) && ((lust <= 70)))){
outputMainText("\r\rQuickly,", false);
};
if (lust > 70){
outputMainText("\r\rAlmost instantly,", false);
};
outputMainText(((((" your cunt" + plural(2)) + " begin") + plural(4)) + " to quake and shiver, your whole body tingling. So eager, you ram "), false);
if (vagLimit() <= (tallness / 5)){
outputMainText("a finger", false);
};
if ((((vagLimit() > (tallness / 5))) && ((vagLimit() <= (tallness / 2.2))))){
outputMainText("your fingers", false);
};
if ((((vagLimit() > (tallness / 2.2))) && ((vagLimit() <= (tallness / 1.25))))){
outputMainText("your hand", false);
};
if ((((vagLimit() > (tallness / 1.25))) && ((vagLimit() <= (tallness * 1.2))))){
outputMainText("both hands", false);
};
if ((((vagLimit() > (tallness * 1.2))) && ((vagLimit() <= (tallness * 1.7))))){
outputMainText("your forearm", false);
};
if (vagLimit() > (tallness * 1.7)){
outputMainText("as much of one arm as possible", false);
};
outputMainText(((((" into " + oneYour(2)) + " hungry hole") + plural(2)) + ", pounding away at yourself. Your body twitches and jerks as you come again and again."), false);
if (ment >= (lib - 10)){
outputMainText("\r\rYou quietly heave as you attempt to clean up your mess with the towels you have brought along, hiding them until you can safely clean them without being caught. Except for the smell that permeates the area and the bit of slurping that echoed, you don't think anybody will catch on to your lewd actions, and you continue on with your day.", false);
};
if ((((ment < (lib - 10))) && ((ment >= (lib - 25))))){
outputMainText((("\r\rComing down from your high, you clean up your mess the best you can, though its likely some of your slick lubricant has seeped in somewhere. At least, you're cautious of your step, in case of slipping and falling back on your " + buttDesc()) + " ass... And as you leave the place, one of your neighbors eyes you with a surprised look. You were probably a bit loud... Well... you were definitely loud, actually."), false);
};
if ((((ment < (lib - 25))) && ((ment >= (lib - 50))))){
outputMainText((((("\r\rYou realize your hiding place probably echoed your moans as you come to your senses. Before you're caught, you quickly don your " + clothesBottom()) + " again, even though fem-cum is still slathered about and making your ") + clothesBottom()) + " blotch. As you attempt to casually walk away, some nearby strangers blink at you curiously, not quite sure what they just heard. With an awkward flutter in your step, you dash off, your body still slightly in mid-orgasm."), false);
};
if (ment < (lib - 50)){
outputMainText((((("\r\rGasping, you blink and look around you. You've gathered quite the crowd, especially some men, and they all gaze out you in amazement. A few tug at their own groins, ducking away from the rest, while others don't look so happy at what you have done, especially the ones with children beside them. You pull " + pullUD(2)) + " your ") + clothesBottom()) + ", slick slime dripping down your legs and smearing about within, and you slink away, trying to avoid any more stares. Although, your heart pounds within your chest at the thought of what you had just done..."), false);
};
if (lust > 20){
doSexP(10);
};
doLust(-(sen));
hrs = 1;
doEnd();
};
}
public function conItem(ID:int):Boolean{
var tempBool:Boolean;
tempBool = false;
if (ID == 103){
return (true);
};
if (ID == 105){
return (true);
};
if (ID == 110){
return (true);
};
if (ID == 111){
return (true);
};
if (ID == 112){
return (true);
};
if (ID == 113){
return (true);
};
if (ID == 114){
return (true);
};
if (ID == 115){
return (true);
};
if (ID == 120){
return (true);
};
if (ID == 121){
return (true);
};
if (ID == 122){
return (true);
};
if (ID == 123){
return (true);
};
if (ID == 124){
return (true);
};
if (ID == 201){
return (true);
};
if (ID == 202){
return (true);
};
if (ID == 203){
return (true);
};
if (ID == 204){
return (true);
};
if (ID == 205){
return (true);
};
if (ID == 207){
return (true);
};
if (ID == 208){
return (true);
};
if (ID == 209){
return (true);
};
if (ID == 210){
return (true);
};
if (ID == 211){
return (true);
};
if (ID == 212){
return (true);
};
if (ID == 213){
return (true);
};
if (ID == 214){
return (true);
};
if (ID == 216){
return (true);
};
if (ID == 217){
return (true);
};
if (ID == 218){
return (true);
};
if (ID == 219){
return (true);
};
if (ID == 220){
return (true);
};
if (ID == 221){
return (true);
};
if (ID == 500){
return (true);
};
if (ID == 501){
return (true);
};
if (ID == 502){
return (true);
};
if (ID == 503){
return (true);
};
if (ID == 504){
return (true);
};
if (ID == 505){
return (true);
};
if (ID == 506){
return (true);
};
if (ID == 507){
return (true);
};
if (ID == 508){
return (true);
};
if (ID == 509){
return (true);
};
if (ID == 510){
return (true);
};
if (ID == 511){
return (true);
};
if (ID == 0x0200){
return (true);
};
if (ID == 513){
return (true);
};
if (ID == 0x0202){
return (true);
};
if (ID == 515){
return (true);
};
if (ID == 516){
return (true);
};
if (ID == 517){
return (true);
};
if (ID == 518){
return (true);
};
if (ID == 519){
return (true);
};
if (ID == 520){
return (true);
};
if (ID == 521){
return (true);
};
if (ID == 522){
return (true);
};
if (ID == 523){
return (true);
};
if (ID == 524){
return (true);
};
if (ID == 525){
return (true);
};
if (ID == 526){
return (true);
};
return (tempBool);
}
public function pullUD(source:int):String{
var tempStr:String;
tempStr = ((("PULL UP/DOWN ERROR " + attireTop) + " ") + attireBot);
if (source == 1){
if (attireTop == -1){
tempStr = "open";
};
if (attireTop == 0){
tempStr = "up";
};
if (attireTop == 1){
tempStr = "up";
};
if (attireTop == 3){
tempStr = "down";
};
if (attireTop == 5){
tempStr = "down";
};
if (attireTop == 6){
tempStr = "open";
};
if (attireTop == 9){
tempStr = "open";
};
if (attireTop == 12){
tempStr = "down";
};
if (attireTop == 13){
tempStr = "down";
};
};
if (source == 2){
if (attireBot == -1){
tempStr = "open";
};
if (attireBot == 0){
tempStr = "down";
};
if (attireBot == 2){
tempStr = "down";
};
if (attireBot == 4){
tempStr = "down";
};
if (attireBot == 5){
tempStr = "up";
};
if (attireBot == 6){
tempStr = "open";
};
if (attireBot == 7){
tempStr = "up";
};
if (attireBot == 8){
tempStr = "down";
};
if (attireBot == 10){
tempStr = "down";
};
if (attireBot == 11){
tempStr = "down";
};
if (attireBot == 12){
tempStr = "up";
};
if (attireBot == 13){
tempStr = "up";
};
if (attireBot == 14){
tempStr = "up";
};
if (attireBot == 15){
tempStr = "down";
};
};
return (tempStr);
}
public function regionName():String{
var tempStr:String;
tempStr = ("REGION ERROR " + currentZone);
if (currentZone == 1){
tempStr = "Softlik";
};
if (currentZone == 2){
tempStr = "Firmshaft";
};
if (currentZone == 3){
tempStr = "Tieden";
};
if (currentZone == 4){
tempStr = "Siz'Calit";
};
return (tempStr);
}
public function oneYour(topic:int):String{
var tempStr:String;
tempStr = ((("ONE YOUR ERROR " + cockTotal) + " ") + vagTotal);
if (topic == 1){
if (cockTotal > 1){
tempStr = "one of your";
};
if (cockTotal == 1){
tempStr = "your";
};
};
if (topic == 2){
if (vagTotal > 1){
tempStr = "one of your";
};
if (vagTotal == 1){
tempStr = "your";
};
};
return (tempStr);
}
public function doRape():void{
var chance:int;
if (enemyID == 1){
if (gender == 1){
outputMainText("You stick your cock in the test enemy's butt and cum.", true);
};
if (gender == 2){
outputMainText("You sit on the test enemy's cock until you cum.", true);
};
if (gender == 3){
outputMainText("You stuff your cock in the test enemy's butt, then sit on its cock and cum.", true);
};
};
if (enemyID == 201){
outputMainText((((((((((("You easily roll the wolf onto his back. Pulling " + pullUD(2)) + " your ") + clothesBottom()) + ", you squat your ") + vulvaDesc()) + " cunt over his sheath, wedging it between your folds while you grind against it. Once his bright red prick twitches as it stretches from its sheath, reaching long and hard while dribbling with pre, you slip it into ") + oneYour(2)) + " hungry hole") + plural(2)) + ". You bounce on top of his belly,"), true);
if (vagMoist > 6){
outputMainText(" your honey splashing about everywhere,", false);
};
outputMainText(" his hard doggy dick scraping against your inner walls. The lone wolf howls and drools, his tongue lolling out the side of his muzzle, as hot spurts of fresh cum gush within you. You shudder at the raw sensation, squeezing his coarse fur between your thighs. Then, you shiver as you feel the base of his cock swell, knotting within you. You collapse beside him, your pussy throbbing with orgasm, as you gasp and moan with his howls...", false);
outputMainText("\r\r\rEventually, his knot deflates. You rub your ", false);
if (vagLimit() < 8){
outputMainText("sore little pussy, a bit stretched from the size of the thing,", false);
vagChange(1, 0);
} else {
outputMainText("satiated cunt,", false);
};
outputMainText(" the cock sliding out with cum dripping down between your legs.", false);
doImpregnate(enemyBaby());
};
if (enemyID == 301){
chance = percent();
if ((((gender == 1)) || ((((percent() <= 50)) && ((gender == 3)))))){
if (chance <= 100){
outputMainText((((((((((("The felin woman is easily bent forward by your efforts. Her loincloth droops out of the way, giving you a perfect view of the swollen, supple lips that pucker around the crotch of her bikini bottom. Pulling " + pullUD(2)) + " your ") + clothesBottom()) + ", you slide ") + oneYour(1)) + " ") + cockDesc()) + " prick") + plural(1)) + " out and through the cheeks of her ample rump, making her quiver with anticipation. Not wanting to leave her waiting for too long, the head of your cock pushes into the bikini bottom, pushing through to kiss the waiting hole within."), true);
if ((cockSize * cockSizeMod) > eVagLimit(40)){
outputMainText((("\r\rHowever, she cries out in pain and disappointment, your " + cockDesc()) + " cock far to big to fit inside without tearing her apart. So, instead, you slip it between her legs, rubbing it across her stiff clit and through her loincloth and over her belly as you "), false);
};
if (((((cockSize * cockSizeMod) <= eVagLimit(40))) && (((cockSize * cockSizeMod) > eVagLimit(24))))){
outputMainText((("\r\rShe cries out in pain and pleasure as your " + cockDesc()) + " cock stretches her thisting cunt wide, pushing her bikini in until it tears from your path. She pushes her rump back towards you, trying her best to devour the hot rod all the way to its hilt as you "), false);
};
if ((cockSize * cockSizeMod) <= eVagLimit(24)){
outputMainText((("\r\rShe cries out in ecstacy as her hungry cunt devours your " + cockDesc()) + " cock, along with her own bikini until it tears from your path. She takes it all the way in to your hilt as you "), false);
};
outputMainText("lean forward and hug her from behind, your hands groping about her many breasts. You pump hard, again and again, until the unavoidable pressure begins to build. Soon, you blow your load ", false);
if ((cockSize * cockSizeMod) > eVagLimit(40)){
outputMainText("across her chest while she tries to lap up the spray with her tongue. You pull back, leaving her a mess.", false);
};
if ((cockSize * cockSizeMod) <= eVagLimit(40)){
outputMainText("into her womb, making her let out a long and joyful mewl. Before she can become too content, you pull out of her with a slurp, your cum still dribbling from her used sex.", false);
};
cumAmount();
};
} else {
if ((((gender == 2)) || ((gender == 3)))){
outputMainText("You knock the felin woman backwards onto her ample ass, her legs spreading wide. She cries out as you duck beneath her loincloth and lick her stiff clit through her bikini. Juices flood within your mouth as she instantly reacts, her swollen cunt-lips gnawing at the crotch of the messy bottom. You pull it aside, diving in and getting a good mouthful of her supple flavor. You devour her folds until she twitches uncontrollably, so desparate to come. But, before she does, you consider your own needs and draw your head out before repaclacing it with your own crotch.", true);
outputMainText((((((("\r\rYou grind against her stiff clit as it pokes through her loin cloth, your own " + clitDesc()) + " button") + plural(2)) + " throbbing through your ") + clothesBottom()) + "."), false);
if ((((cockTotal > 0)) && ((cumAmount() > 0)))){
outputMainText(((((((" You pull your " + cockDesc()) + " cock") + plural(1)) + ", letting the engorged length") + plural(1)) + " bounce against her belly and hump through her many breasts."), false);
};
outputMainText(((" You grind, cunt to cunt" + plural(2)) + ", until you both let out a yowl as you climax together.\r\rYou're quick to gather your wits and clean yourself up, standing before her pussy even stops gushing with honey."), false);
};
};
};
if (enemyID == 302){
if ((((gender == 2)) || ((((percent() <= 50)) && ((gender == 3)))))){
outputMainText((((((("The drunken equan falls to his ass, his huge cock bouncing out of his loose pants. It throbs in the air, a large gob of pre spilling out. With a smirk, you step over him, pulling " + pullUD(2)) + " your ") + clothesBottom()) + " and showing him your own hungry flesh. You spread your legs over his twitchy rod, kissing the flat head of the horsy member with your ") + vulvaDesc()) + " lips."), true);
if (vagLimit() < 32){
outputMainText((((((((((("\r\rHis man-meat is far too large for your cunt" + plural(2)) + " however, so you do the next best thing and sit down in his lap. Grinding your hips forward, your ") + clitDesc()) + " clit") + plural(2)) + " hump") + plural(4)) + " into his length. The long prick squeezes between your ") + boobDesc()) + " tits as you press against him, making him tense even more."), false);
} else {
outputMainText((((((((("\r\rYou plunge down onto his giant man-meat with " + oneYour(2)) + " ") + vulvaDesc()) + " cunt") + plural(2)) + ". It fills you up so much you grin with a drool. You hug him close, your ") + boobDesc()) + " tits pressing against his firm chest, making the thing inside you even harder."), false);
};
outputMainText(((" Your hips jerk up and down again and again as you rub along his length. Tingling sparks between the two of you as you feel his softball-sized testicles tighten up beneath your " + buttDesc()) + " butt. Within seconds, the two of you echo in ecstacy, his whinnying quickly over-taking your moans,"), false);
if (vagLimit() < 32){
outputMainText(" his cock erupting like a volcano between the two of you", false);
if ((((cockTotal > 0)) && ((cumAmount() > 0)))){
outputMainText(", with yours joining in the volley,", false);
};
outputMainText(" and the hot spunk spills back down all over your bodies.\r\rYou don't give him much time to recover as you pull away, leaving a bit of after-cum to gush out over his belly.", false);
} else {
outputMainText(" his cock erupting within you like a powerful volcano, the molten spunk making your belly swell slightly before spilling back out onto the ground", false);
if ((((cockTotal > 0)) && ((cumAmount() > 0)))){
outputMainText(", while yours sprays across his chest and face", false);
};
outputMainText(((".\r\rYou don't give him much time to recover as you pull him out, a bit of after-cum gushing across your clit" + plural(2)) + "."), false);
doImpregnate(enemyBaby());
};
} else {
if ((((gender == 1)) || ((gender == 3)))){
outputMainText((((((((((("The drunken equan falls to his ass, his huge cock bouncing out of his loose pants. It throbs in the air, a large gob of pre spilling out. With a smirk, you step over him, pulling " + pullUD(2)) + " your ") + clothesBottom()) + " and brandishing ") + oneYour(1)) + " own ") + cockDesc()) + " cock") + plural(1)) + ". You roll him over onto all fours, his pants quickly slipping from his tight rump as you give it a slap."), true);
outputMainText((("\r\rHe whinnies loudly as you plunge your " + cockDesc()) + " erection into his backside. Again and again, you pump away at his hole, until he lets out a loud whinny. His eyes going wide, his giant rod explodes across the ground until its massive length is swimming in a puddle of his own stuff,"), false);
if (cumAmount() > 0){
outputMainText(" while yours erupts into his ass, churning his insides,", false);
};
outputMainText(" until you've both had a heady orgasm. You pull out quickly, fluids still dripping from your cock, while he heaves upon the ground.", false);
};
};
};
if (enemyID == 303){
if ((((gender == 1)) || ((gender == 3)))){
outputMainText((((((((("Able to wrestle through the octopus girl's eight powerful tentacles and knock her onto her squishy bottom, pinning her onto her back. Her tentacles spread wide before you, you're able to see the underside of her fleshy webbing. Her hands cover her face in a futile attempt to hide her blush while you inspect her. In the center of all the tentacles, right beneath her hips, gasps a gaping hole.\r\rA sort of 'beak', like octopuses normally have, encompasses the hole. It looks tougher than the surrounding flesh, able to maintain its shape, but as you stick your finger into the maw and it bites down upon you, you realize it's still quite soft, merely molding around your finger. Beyond the beak itself is a deep hallway of supple folds that ripple as it tries to swallow your finger, and supremely lubricated as your finger comes out with a long strand of translucent slime trailing behind it. With your own smirk, you pull " + pullUD(2)) + " your ") + clothesBottom()) + " and let your ") + cockDesc()) + " erection") + plural(2)) + " wobble out. Aligning yourself, you thrust "), true);
if (cockTotal == 1){
outputMainText("it", false);
} else {
outputMainText("all of them", false);
};
outputMainText(" into her juicy hole.", false);
if (((cockTotal * cockSize) * cockSizeMod) > 40){
outputMainText((((((((("\r\rSurprisingly, she's able to take in all of your length" + plural(1)) + ", although you hear a dulcet, yet quite high pitched, cry as her face escapes her hands and lurches forward with her mouth wide in a strange combination of pain and confusion. She settles down quickly, however, and idly grips at the sand beneath her and her tentacles wrap around you to hang on for dear life. Her body literally stretches to form around your ") + cockDesc()) + " cock") + plural(1)) + ", with lubrication spitting out from her beak, her skin becoming more translucent the more taut she becomes, until you can make out your throbbing erection") + plural(1)) + " within. Fortunately, her belly isn't affected by the stretching, her pregnancy perfectly fine."), false);
} else {
outputMainText((("\r\rShe seems to be able to take your length" + plural(1)) + " easily, her passage large and excessively lubricated. Her hands leave her face as she grins wryly, not having expected you to take her on as such. Her tentacles wrap around your body, pulling you in deeper as she gropes her large belly."), false);
};
outputMainText((("\r\rThe hungry maw seems to constantly swallow your dick" + plural(1)) + " as you plunge into her again and again. The slick folds do a number on you, bringing you to orgasm within a minute. You gush inside of her,"), false);
if (cumAmount() > 2000){
outputMainText(" your massive amount of cum causing her to swell further, her soft skin growing lighter as it stretches,", false);
};
outputMainText(" until you're fully spent.\r\rJust as you're about to pull out, you see her squirm, her belly jiggling and growing slightly larger, deforming slightly as the offspring inside her shifts.", false);
} else {
if (gender == 2){
outputMainText((((((((((((((("Able to wrestle through the octopus girl's eight powerful tentacles and knock her onto her squishy bottom, pinning her onto her back. Her tentacles spread wide before you, you're able to see the underside of her fleshy webbing. Her hands cover her face in a futile attempt to hide her blush while you inspect her. In the center of all the tentacles, right beneath her hips, gasps a gaping hole.\r\rA sort of 'beak', like octopuses normally have, encompasses it. The beak looks tougher than the surrounding flesh, able to maintain its shape, but as you stick your finger into the maw and it bites down upon you, you realize it's still quite soft, merely molding around your finger. Beyond the beak itself is a deep hallway of supple folds that ripple as it tries to swallow your finger, and supremely lubricated as your finger comes out with a long strand of translucent slime trailing behind it. With your own smirk, you pull " + pullUD(2)) + " your ") + clothesBottom()) + " and begin to grind your ") + vulvaDesc()) + " cunt") + plural(2)) + " against it.\r\rShe lets out a warbling moan. Her hands leave her face, showing the blush and lustful expression she now wears. The beak nips at your ") + clitDesc()) + " clit") + plural(2)) + " whenever the stiff thing") + plural(2)) + " rub against it, making you buck in turn. Her tentacles quickly begin to grope around your body, making you slick as the move towards your crotch."), true);
if ((((vagTotal > 1)) && ((vagTotal < 9)))){
outputMainText("\r\rOne tentacle for each of your pussies, they softly dive in, as far as they can go before they feel you begin to stretch. They slip in and out as you hump the girl, quickly driving you towards climax.", false);
} else {
if (vagTotal == 1){
outputMainText("\r\rA tentacle softly slips into your pussy, diving in as far as it can go before it feels you begin to stretch. It slips in and out as you hump the girl, quickly driving you towards climax.", false);
} else {
if (vagTotal > 8){
outputMainText("\r\rTaking turns at each of your pussies, the tentacles softly dive in, as far as they can go before they feel you begin to stretch. They slip in and out as you hump the girl, quickly driving you towards climax.", false);
};
};
};
outputMainText(((" You can soon feel her shudder between your legs, her large belly jiggling as milk drizzles past the feeding starfish and down her large breasts. The tentacles leave your slit" + plural(2)) + " as you finish with your own orgasm..."), false);
};
};
};
}
public function weaponAttack():void{
var dmg:int;
dmg = 0;
if (weapon == 10){
dmg = ((Math.floor((Math.random() * ((1 + 10) - 1))) + 1) + Math.floor(((str / 2) - ((100 - eSen) / 20))));
outputMainText((((("You punch the " + enemyName()) + " with your fists, dealing ") + dmg) + " damage!"), true);
doeHP(-(dmg));
};
if (weapon == 116){
dmg = ((Math.floor((Math.random() * ((1 + 12) - 5))) + 5) + Math.floor(((str / 2) - ((100 - eSen) / 20))));
outputMainText((((("You lung at the " + enemyName()) + " and stab it with your dagger, dealing ") + dmg) + " damage!"), true);
doeHP(-(dmg));
};
if (weapon == 117){
dmg = ((Math.floor((Math.random() * ((1 + 20) - 2))) + 2) + Math.floor(((str / 2) - ((100 - eSen) / 20))));
outputMainText((((("You swing your hammer at the " + enemyName()) + ", dealing ") + dmg) + " damage!"), true);
doeHP(-(dmg));
};
if (weapon == 118){
dmg = ((Math.floor((Math.random() * ((1 + 25) - 10))) + 10) + Math.floor(((str / 2) - ((100 - eSen) / 20))));
outputMainText((((("You slash at the " + enemyName()) + " with your saber, dealing ") + dmg) + " damage!"), true);
doeHP(-(dmg));
};
if (weapon == 119){
dmg = ((Math.floor((Math.random() * ((1 + 18) - 12))) + 12) + Math.floor(((str / 2) - ((100 - eSen) / 20))));
outputMainText((((("You lash at the " + enemyName()) + " with your whip, dealing ") + dmg) + " damage!"), true);
doeHP(-(dmg));
};
}
public function doeHP(changes:int):void{
var changes = changes;
if ((eHP + changes) <= 0){
specialKOWin();
outputMainText("\r\r You win the battle!", false);
currentState = 1;
doNext();
doListen = function ():void{
battleWin();
};
};
eHP = (eHP + changes);
if (eHP > 0){
outputMainText((("\r\rYour enemy now seems to be under " + (Math.ceil(((eHP / eMaxHP) * 10)) * 10)) + "% HP."), false);
};
}
public function regionChange(changes:int):void{
currentZone = changes;
if (changes == 1){
region.text = "Softlik";
};
if (changes == 2){
region.text = "Firmshaft";
};
if (changes == 3){
region.text = "Tieden";
};
if (changes == 4){
region.text = "Siz'Calit";
};
if (bgC.visible == true){
region.textColor = 0xFFFFFF;
};
}
public function buttonWrite(buttonNumber:int, buttonText:String):void{
if (buttonNumber == 1){
Choice1.htmlText = buttonText;
};
if (buttonNumber == 2){
Choice2.htmlText = buttonText;
};
if (buttonNumber == 3){
Choice3.htmlText = buttonText;
};
if (buttonNumber == 4){
Choice4.htmlText = buttonText;
};
if (buttonNumber == 5){
Choice5.htmlText = buttonText;
};
if (buttonNumber == 6){
Choice6.htmlText = buttonText;
};
if (buttonNumber == 7){
Choice7.htmlText = buttonText;
};
if (buttonNumber == 8){
Choice8.htmlText = buttonText;
};
if (buttonNumber == 9){
Choice9.htmlText = buttonText;
};
if (buttonNumber == 10){
Choice10.htmlText = buttonText;
};
if (buttonNumber == 11){
Choice11.htmlText = buttonText;
};
if (buttonNumber == 12){
Choice12.htmlText = buttonText;
};
}
public function loseItem(slot:int):void{
if (itemID(slot) == 101){
rapeMod = (rapeMod - 10);
};
if (itemID(slot) == 102){
runMod = (runMod - 20);
};
if (itemID(slot) == 200){
vagMoist = (vagMoist - 4);
cockMoist = (cockMoist - 4);
stats(0, 0, 0, -10);
};
if ((((itemID(slot) == 116)) && ((weapon == 116)))){
weapon = 10;
};
if ((((itemID(slot) == 117)) && ((weapon == 117)))){
weapon = 10;
};
if ((((itemID(slot) == 118)) && ((weapon == 118)))){
weapon = 10;
};
if ((((itemID(slot) == 119)) && ((weapon == 119)))){
weapon = 10;
};
if (itemID(slot) == 215){
rapeMod = (rapeMod - 5);
runMod = (runMod - 5);
milkHPMod = (milkHPMod - 5);
};
itemSlotWrite(slot, 0);
}
public function checkZero():void{
if (cockSize < 0){
cockSize = 0;
};
if (cockTotal < 0){
cockTotal = 0;
};
if (balls < 0){
balls = 0;
};
if (ballSize < 0){
ballSize = 0;
};
if (cockMoist < 0){
cockMoist = 0;
};
if (cockMoist > 12){
cockMoist = 12;
};
if (breastSize < 0){
breastSize = 0;
};
if (boobTotal < 0){
boobTotal = 0;
};
if (nippleSize < 1){
nippleSize = 1;
};
if (udderSize < 1){
udderSize = 1;
};
if (teatSize < 2){
teatSize = 2;
};
if (clitSize < 0){
clitSize = 0;
};
if (vagSize < 0){
vagSize = 0;
};
if (vagTotal < 0){
vagTotal = 0;
};
if (vagMoist < 0){
vagMoist = 0;
};
if (vagMoist > 12){
vagMoist = 12;
};
if (vulvaSize < 0){
vulvaSize = 0;
};
if (exhaustion < 0){
exhaustion = 0;
};
if (exhaustionPenalty < 0){
exhaustionPenalty = 0;
};
if (hips < 1){
hips = 1;
};
if (butt < 1){
butt = 1;
};
if (body < 5){
body = 5;
};
if (tallness < 24){
tallness = 24;
};
if (cockSizeMod < 0.1){
cockSizeMod = 0.1;
};
if (vagSizeMod < 0.1){
vagSizeMod = 0.1;
};
if (bellyMod < 0){
bellyMod = 0;
};
if (pregChanceMod < -100){
pregChanceMod = -100;
};
if (lactation < 0){
lactation = 0;
};
if (coin < 0){
coin = 0;
};
}
public function statDisplay():void{
statValuePane.htmlText = ((((((((((("\r\r" + int(str)) + "\r") + int(ment)) + "\r") + int(lib)) + "\r") + int(sen)) + "\r\r\r") + int(HP)) + "\r") + int(lust));
if (bgC.visible == true){
statValuePane.textColor = 0xFFFFFF;
};
}
public function hairstyleValue(ID:int):int{
var tempNum:int;
tempNum = 0;
if (ID == 0){
tempNum = 0;
};
if (ID == 1){
tempNum = 5;
};
if (ID == 2){
tempNum = 8;
};
if (ID == 3){
tempNum = 8;
};
if (ID == 4){
tempNum = 5;
};
if (ID == 5){
tempNum = 7;
};
if (ID == 6){
tempNum = 20;
};
if (ID == 7){
tempNum = 10;
};
if (ID == 8){
tempNum = 5;
};
if (ID == 9){
tempNum = 15;
};
if (ID == 10){
tempNum = 15;
};
if (ID == 11){
tempNum = 23;
};
if (ID == 12){
tempNum = 18;
};
if (ID == 13){
tempNum = 18;
};
if (ID == 14){
tempNum = 20;
};
return (tempNum);
}
public function hotKeys(e:KeyboardEvent):void{
if ((((((e.keyCode == 103)) || ((e.keyCode == 81)))) && ((Choice1.visible == true)))){
buttonChoice = 1;
hideUpDown();
doListen();
};
if ((((((e.keyCode == 104)) || ((e.keyCode == 87)))) && ((Choice2.visible == true)))){
buttonChoice = 2;
hideUpDown();
doListen();
};
if ((((((e.keyCode == 105)) || ((e.keyCode == 69)))) && ((Choice3.visible == true)))){
buttonChoice = 3;
hideUpDown();
doListen();
};
if ((((((e.keyCode == 109)) || ((e.keyCode == 82)))) && ((Choice4.visible == true)))){
buttonChoice = 4;
hideUpDown();
doListen();
};
if ((((((e.keyCode == 100)) || ((e.keyCode == 65)))) && ((Choice5.visible == true)))){
buttonChoice = 5;
hideUpDown();
doListen();
};
if ((((((e.keyCode == 101)) || ((e.keyCode == 83)))) && ((Choice6.visible == true)))){
buttonChoice = 6;
hideUpDown();
doListen();
};
if ((((((e.keyCode == 102)) || ((e.keyCode == 68)))) && ((Choice7.visible == true)))){
buttonChoice = 7;
hideUpDown();
doListen();
};
if ((((((e.keyCode == 107)) || ((e.keyCode == 70)))) && ((Choice8.visible == true)))){
buttonChoice = 8;
hideUpDown();
doListen();
};
if ((((((e.keyCode == 97)) || ((e.keyCode == 90)))) && ((Choice9.visible == true)))){
buttonChoice = 9;
hideUpDown();
doListen();
};
if ((((((e.keyCode == 98)) || ((e.keyCode == 88)))) && ((Choice10.visible == true)))){
buttonChoice = 10;
hideUpDown();
doListen();
};
if ((((((e.keyCode == 99)) || ((e.keyCode == 67)))) && ((Choice11.visible == true)))){
buttonChoice = 11;
hideUpDown();
doListen();
};
if ((((((e.keyCode == 13)) || ((e.keyCode == 86)))) && ((Choice12.visible == true)))){
buttonChoice = 12;
hideUpDown();
doListen();
};
if ((((e.keyCode == 80)) && ((appearanceText.visible == true)))){
appearanceGo();
};
if ((((e.keyCode == 113)) && ((saveGame.visible == true)))){
saveGo();
};
if ((((e.keyCode == 115)) && ((loadGame.visible == true)))){
loadGo();
};
if ((((e.keyCode == 27)) && ((newGame.visible == true)))){
newGameGo();
};
if ((((e.keyCode == 73)) && ((Choice12.visible == true)))){
invertGo();
};
}
public function decGet(number:Number, places:int):String{
var tempStr:String;
var tempStr2:String;
var tempInt:int;
tempStr = (("" + number) + "");
tempStr2 = "";
tempInt = 0;
tempInt = tempStr.indexOf(".", 0);
if (tempInt > 0){
tempStr2 = tempStr.substring(0, ((tempInt + places) + 1));
} else {
tempStr2 = tempStr;
};
return (tempStr2);
}
public function doSexP(changes:int):void{
if ((SexP + changes) >= 100){
changes = (changes - (100 - SexP));
SexP = 0;
SexP = (SexP + changes);
level++;
levelUP++;
} else {
SexP = (SexP + changes);
};
levelValuePane.text = ((((level + "\r") + SexP) + "\r") + coin);
if (bgC.visible == true){
levelValuePane.textColor = 0xFFFFFF;
};
}
public function setEnemyStats(enemyHP:int, enemyStr:int, enemyMenta:int, enemySen:int, enemyLib:int, enemyLust:int, enemyGen:int, enemyPref:int, enemyCoin:int, enemySexP:int, enemyItem:int):void{
eHP = enemyHP;
eStr = enemyStr;
eMenta = enemyMenta;
eSen = enemySen;
eLib = enemyLib;
eLust = enemyLust;
eGen = enemyGen;
ePref = enemyPref;
eCoin = enemyCoin;
eSexP = enemySexP;
eItem = enemyItem;
}
public function enemyAttack():void{
var attack:int;
attack = percent();
if (enemyID == 101){
if (attack <= 50){
outputMainText("\r\rThe cock-snake whips around, slapping you harshly with its tail and causing a painful welt.", false);
doHP(-(eDmg(9)));
} else {
if (attack > 50){
outputMainText((("\r\rThe cock-snake opens its maw, long thin fangs dripping with venom, and it springs forward at your crotch. Its mouth bites down onto the crotch of your " + clothesBottom()) + ", fangs sinking right into"), false);
if (cockTotal > 0){
outputMainText(((((((((((" " + oneYour(1)) + " cock") + plural(1)) + ". It doesn't hurt much, but the venom that spills into you makes you feel strangely aroused and your cock") + plural(1)) + " swell") + plural(3)) + " within your ") + clothesBottom()) + ", becoming permanently larger..."), false);
doLust(Math.floor((((cockSize * cockSizeMod) / 5) + (percent() / 10))));
cockChange(1, 0);
} else {
if ((((cockTotal < 1)) && ((vagTotal > 0)))){
if ((((clitSize > 20)) && ((percent() <= 25)))){
outputMainText(((((((((" " + oneYour(2)) + " ") + clitDesc()) + " clit") + plural(2)) + ". You feel it swell and shift within your ") + clothesBottom()) + ", your lips started to grow quite oddly as well..."), false);
vagChange(0, -1);
cockChange(0, 1);
doLust(Math.floor((((cockSize * cockSizeMod) / 5) + (percent() / 10))));
} else {
outputMainText(((((((((((((" " + oneYour(2)) + " ") + clitDesc()) + " clit") + plural(2)) + ". It doesn't hurt much, but the venom that spills into you makes you feel strangely aroused as your clit") + plural(2)) + " swell") + plural(4)) + " a little within your ") + clothesBottom()) + ", becoming permanently larger..."), false);
clitSize++;
doLust(Math.floor(((clitSize / 5) + (percent() / 10))));
};
} else {
if (percent() <= 40){
outputMainText(" your groin. It doesn't hurt much, but you feel a little odd...", false);
cockChange(1, 0);
doLust((percent() / 10));
} else {
outputMainText(" your groin. Though the endeavor proves fruitless, as all its venom manages to do is arouse you a little.", false);
doLust((percent() / 20));
};
};
};
};
};
};
if (enemyID == 201){
if ((((attack > 35)) && ((attack <= 50)))){
outputMainText("\r\rThe lone wolf leaps at you, taking a large bite with its sharp teeth.", false);
doHP(-(eDmg(6)));
} else {
if ((((((attack > 50)) && ((attack <= 70)))) && ((lust > 15)))){
outputMainText("\r\rHis cock beating against his belly with each step, his lust overcomes him for a moment. He runs up to you, jumping onto your leg and humps wildly, smearing his canine pre up and down your leg. A small spurt of cum shoots out, the large drop oozing down to your feet. Not exactly a full climax, but enough for now, the wolf backs off.", false);
doLust(Math.floor((((percent() / 5) + lib) - ment)));
doeLust(-(Math.floor(((percent() / 10) + (eSen / 2)))));
} else {
if ((((((attack > 70)) && (!((gender == 0))))) && (!((gender == 1))))){
outputMainText("\r\rThe lone wolf lifts his leg after running up beside you, a bit of urine splashing out onto your feet. However, he was simply peeing, as the heady smell wafts up to your nose, the pheromones making your body shudder with arousal.", false);
doLust(Math.floor((((percent() / 5) + lib) - (ment / 2))));
} else {
outputMainText("\r\rThe lone wolf rushes at you, scratching you with its claws.", false);
doHP(-(eDmg(8)));
};
};
};
};
if (enemyID == 301){
if ((((((attack > 30)) && ((attack <= 60)))) && ((eLust > 20)))){
outputMainText((("\r\rThe horny felin woman comes in close, embracing you as she grinds her slick cunt up and down your leg. She licks your " + boobDesc()) + " chest while her feminine fluids spill down your thigh. She mewls a little as she has a small climax, alleviating some of her own frustrations while increasing yours in the process."), false);
doLust(Math.floor((((percent() / 5) + lib) - (ment / 2))));
doeLust(-(Math.floor(((percent() / 10) + (eSen / 2)))));
} else {
if ((((((attack > 60)) && ((attack <= 85)))) && ((eLust > 10)))){
outputMainText("\r\rUtterly thirsting for sex, she turns away from you and gets on all fours. She bends down further while raising her butt high into the air, showing off her lithe body while also showing off the swollen lips that bulge out of either side of her bikini bottom beneath the loin cloth, her tail waving enticingly above. Her sex-driven display makes you a little hot as well.", false);
doLust(Math.floor((((percent() / 10) + lib) - (ment / 2))));
} else {
if (attack > 85){
outputMainText("\r\rPlayfully, she lunges forward and bites you... hard. The pain is quite noticeable, but her giggling afterwards might also arouse you slightly, if you didn't know better...", false);
doHP(-(eDmg(7)));
doLust((lib - ment));
} else {
outputMainText("\r\rIn her frustration, she claws at you.", false);
doHP(-(eDmg(10)));
};
};
};
};
if (enemyID == 302){
if ((((((attack > 30)) && ((attack <= 60)))) && ((eLust >= 20)))){
outputMainText("\r\rThe drunken equan adjusts the giant bulge in his pants, grunting as a large gob of pre smears across his knee and blotches his pants. While not the most erotic display, whatever he's drinking makes the stuff smell extremely enticing...", false);
doLust(Math.floor((((percent() / 10) + lib) - (ment / 2))));
} else {
if ((((attack > 60)) && ((attack <= 80)))){
outputMainText("\r\rHe lifts his large mug up to his lips, taking a big swig. He burps after downing it, his wounds seemingly less severe than before.", false);
doeHP(Math.floor(((percent() / 10) + 5)));
} else {
if (attack > 80){
outputMainText("\r\rStumbling uncontrollably, he plows into you.", false);
doHP(-(eDmg(7)));
} else {
outputMainText("\r\rWith a hearty laugh, he bonks you on the head with his mug.", false);
doHP(-(eDmg(9)));
};
};
};
};
if (enemyID == 303){
if ((((attack > 30)) && ((attack <= 55)))){
outputMainText((("\r\rWith a giggle that makes her breasts quiver, her hands move up to one of the starfish on her chest. She pries it away, her plump nipple popping out with a squirt of slightly pink milk. Giving you a quick wink, her other hand squeezes her breast, shooting a spurt of the stuff onto your body. The sweet-smelling liquid quickly absorbs into your " + skinDesc()) + ", making you grow warm and aroused."), false);
doLust(Math.floor(((20 + (percent() / 10)) - (ment / 5))));
} else {
if ((((attack > 55)) && ((attack <= 80)))){
outputMainText((("\r\rOne of her tentacles lashes out at you and whips up between your legs. It smarts a bit, but it seems as though she intentionally hit you with the softer underside. The suction cups tear through your " + clothesBottom()) + " and stick to "), false);
attireBot = -1;
if (vagTotal > 0){
outputMainText((((((((((("the front of your feminine cleft" + plural(2)) + ". You can feel fluid seep from the cups and into your clit") + plural(2)) + ", arousing you further. She twists with a focused expression, tugging again and again at your clit") + plural(2)) + ", trying to wrench herself free after the attack and making your hips buck in turn. By the time she manages to remove her tentacle with a pop, your poor button") + plural(2)) + " feel") + plural(4)) + " a bit larger than before..."), false);
doLust(Math.floor(((20 + (percent() / 5)) - (ment / 5))));
doHP(-5);
clitSize++;
} else {
if ((((vagTotal < 1)) && ((cockTotal > 0)))){
outputMainText((((((oneYour(1) + " cock") + plural(1)) + ". You can feel fluid seep from the cups and into your cock") + plural(2)) + ", arousing you further. The tentacle wraps around, tugging again and again at your erection, as through she were masturbating you. Although, from the focused expression on her first, she seems to simply be trying to wrench herself free after the attack. Not that it arouses you any less..."), false);
doLust(Math.floor((((10 + (percent() / 10)) + (lib / 10)) - (ment / 5))));
} else {
if ((((vagTotal < 1)) && ((cockTotal < 1)))){
outputMainText((("your empty groin. You can feel fluid seep from the cups and into your crotch, arousing you further. She twists with a focused expression, tugging again and again at your " + skinDesc()) + ", trying to wrench herself free after the attack. By the time she manages to remove her tentacle with a pop, you spot several hickies from where she had her way with you."), false);
doLust(Math.floor(((10 + (percent() / 10)) - (ment / 5))));
};
};
};
} else {
if ((((attack > 80)) && ((attireBot == -1)))){
outputMainText("\r\rShe lunges forward at you with a naughty look in her large eyes. She comes intimately close to your face, a long tongue drawing from her mouth and licking you up your cheek. Caught off guard by the sudden sign of affection, you fail to notice her tentacles move in around you.", false);
if (vagTotal > 0){
outputMainText(((((((((" Some creep up your legs and sneak beneath your " + clothesBottom()) + ", sliding through your ") + vulvaDesc()) + " nether-lips. With a jump, you find your naughty hole") + plural(2)) + " being penetrated. The slick tentacle") + plural(2)) + " thrust in and out slightly, as if gauging your size."), false);
if (vagLimit() < 20){
outputMainText(((((" Not quite satisfied, the tentacle" + plural(2)) + " plunge") + plural(4)) + " in deep, stretching you wider than before."), false);
vagChange(2, 0);
};
doLust(Math.floor(((lib / 2) - (ment / 4))));
};
if (cockTotal > 0){
outputMainText(((((((((((((" A few wrap around your " + hipDesc()) + " hips and pull out your ") + cockDesc()) + " erection") + plural(1)) + " from your ") + clothesBottom()) + ". Your hips buck as she wraps her tentacle") + plural(1)) + " around your shaft") + plural(1)) + ", the slick skin seemingly gauging your girth more by touch than sight."), false);
doLust(Math.floor(((lib / 2) - (ment / 4))));
};
outputMainText(((((((((" Her tentacles then wrap around your " + buttDesc()) + " bum with a hug as she leans in, her breasts pressing against your ") + boobDesc()) + " chest. She kisses you lightly on the lips, slipping her tongue into your mouth. The sweet taste lingers for a moment, making you shiver in pleasure, before she moves back. Her tentacles then slime through your ") + clothesBottom()) + ", leaving your ") + buttDesc()) + " ass nice and wet before she give it a light smack."), false);
doLust(Math.floor((10 - (ment / 10))));
doHP(-2);
} else {
outputMainText("\r\rOne of her eight tentacles whips out and lashs you, leaving a welt. She still smiles, however, as she seems to find the act a little kinky.", false);
doHP(-(eDmg(4)));
};
};
};
};
}
}
}//package NiminFetishFantasyv0_fla
Section 19
//downArrow (downArrow)
package {
import flash.display.*;
public dynamic class downArrow extends MovieClip {
public function downArrow(){
super();
}
}
}//package
Section 20
//focusRectSkin (focusRectSkin)
package {
import flash.display.*;
public dynamic class focusRectSkin extends MovieClip {
public function focusRectSkin(){
super();
}
}
}//package
Section 21
//newGameButton (newGameButton)
package {
import flash.display.*;
public dynamic class newGameButton extends MovieClip {
public function newGameButton(){
super();
}
}
}//package
Section 22
//ScrollArrowDown_disabledSkin (ScrollArrowDown_disabledSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowDown_disabledSkin extends MovieClip {
public function ScrollArrowDown_disabledSkin(){
super();
}
}
}//package
Section 23
//ScrollArrowDown_downSkin (ScrollArrowDown_downSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowDown_downSkin extends MovieClip {
public function ScrollArrowDown_downSkin(){
super();
}
}
}//package
Section 24
//ScrollArrowDown_overSkin (ScrollArrowDown_overSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowDown_overSkin extends MovieClip {
public function ScrollArrowDown_overSkin(){
super();
}
}
}//package
Section 25
//ScrollArrowDown_upSkin (ScrollArrowDown_upSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowDown_upSkin extends MovieClip {
public function ScrollArrowDown_upSkin(){
super();
}
}
}//package
Section 26
//ScrollArrowUp_disabledSkin (ScrollArrowUp_disabledSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowUp_disabledSkin extends MovieClip {
public function ScrollArrowUp_disabledSkin(){
super();
}
}
}//package
Section 27
//ScrollArrowUp_downSkin (ScrollArrowUp_downSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowUp_downSkin extends MovieClip {
public function ScrollArrowUp_downSkin(){
super();
}
}
}//package
Section 28
//ScrollArrowUp_overSkin (ScrollArrowUp_overSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowUp_overSkin extends MovieClip {
public function ScrollArrowUp_overSkin(){
super();
}
}
}//package
Section 29
//ScrollArrowUp_upSkin (ScrollArrowUp_upSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowUp_upSkin extends MovieClip {
public function ScrollArrowUp_upSkin(){
super();
}
}
}//package
Section 30
//ScrollBar_thumbIcon (ScrollBar_thumbIcon)
package {
import flash.display.*;
public dynamic class ScrollBar_thumbIcon extends MovieClip {
public function ScrollBar_thumbIcon(){
super();
}
}
}//package
Section 31
//ScrollThumb_downSkin (ScrollThumb_downSkin)
package {
import flash.display.*;
public dynamic class ScrollThumb_downSkin extends MovieClip {
public function ScrollThumb_downSkin(){
super();
}
}
}//package
Section 32
//ScrollThumb_overSkin (ScrollThumb_overSkin)
package {
import flash.display.*;
public dynamic class ScrollThumb_overSkin extends MovieClip {
public function ScrollThumb_overSkin(){
super();
}
}
}//package
Section 33
//ScrollThumb_upSkin (ScrollThumb_upSkin)
package {
import flash.display.*;
public dynamic class ScrollThumb_upSkin extends MovieClip {
public function ScrollThumb_upSkin(){
super();
}
}
}//package
Section 34
//ScrollTrack_skin (ScrollTrack_skin)
package {
import flash.display.*;
public dynamic class ScrollTrack_skin extends MovieClip {
public function ScrollTrack_skin(){
super();
}
}
}//package
Section 35
//upArrow (upArrow)
package {
import flash.display.*;
public dynamic class upArrow extends MovieClip {
public function upArrow(){
super();
}
}
}//package