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 (UTG_Combat_WIP_fla.MainTimeline)
package UTG_Combat_WIP_fla {
import fl.controls.*;
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import flash.system.*;
import flash.net.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.filters.*;
import flash.geom.*;
import flash.media.*;
import flash.printing.*;
import flash.profiler.*;
import flash.sampler.*;
import flash.xml.*;
public dynamic class MainTimeline extends MovieClip {
public var libUp:upArrow;
public var nextButton:Boolean;
public var pregnancyType:Number;
public var lakeChoice:TextField;
public var eMaxHP:Number;
public var senUp:upArrow;
public var inteDown:downArrow;
public var eCockLength:Number;
public var elib:Number;
public var forestChoice:TextField;
public var eNippleCocks:Boolean;
public var ePronoun:String;
public var winEvent:Number;
public var rand:Number;
public var farm:Number;
public var einte:Number;
public var horseAffinity:Number;
public var button3Choice:Number;
public var eHP:Number;
public var eLastStrike:Number;
public var ePronoun2:String;
public var outputWindow:TextField;
public var ePronoun3:String;
public var sen:Number;
public var expDown:downArrow;
public var eAssHoleWetness:Number;
public var forestBox:MovieClip;
public var Choice2Outline:MovieClip;
public var inCombat:Boolean;
public var normalCocks:Number;
public var levelTouUp:upArrow;
public var eLong:String;
public var tallness:Number;
public var sand:Number;
public var statValuePane:TextField;
public var loseEvent:Number;
public var strUp:upArrow;
public var eVaginalLooseness:Number;
public var baseCockThickness:Number;
public var inHeat:Boolean;
public var inAssT:Number;
public var libDown:downArrow;
public var eDogCocks:Boolean;
public var ownsNaturalOnahole:Boolean;
public var eInTitsT:Number;
public var version:String;
public var breastsPerRow:Number;
public var ownsDangerousPlants:Boolean;
public var tempTou:int;
public var eTotalFuckToolsUsed:Number;
public var levelTouDown:downArrow;
public var inTitsT:Number;
public var button2Choice:Number;
public var HP:Number;
public var eVaginas:Number;
public var touDown:downArrow;
public var lactationMultiplier:Number;
public var vaginas:Number;
public var tempSpe:int;
public var levelUp:upArrow;
public var dogCocks:Number;
public var catTail:Boolean;
public var levelSpeUp:upArrow;
public var Choice3Outline:MovieClip;
public var levelValuePane:TextField;
public var tou:Number;
public var ownsTravelersGuide:Boolean;
public var lustDown:downArrow;
public var desertBox:MovieClip;
public var eInMouthT:Number;
public var eInAssT:Number;
public var cor:Number;
public var eHorseCocks:Boolean;
public var touUp:upArrow;
public var expUp:upArrow;
public var remSkillPoints:int;
public var eClitLength:Number;
public var ownsDildo:Boolean;
public var spe:Number;
public var lust:Number;
public var newGame:newGameButton;
public var foundItem:Number;
public var eInAss:Number;
public var tempExp:Number;
public var dogFace:Boolean;
public var lakeBox:MovieClip;
public var tempStr:int;
public var button1Choice:Number;
public var dataBox:MovieClip;
public var hpUp:upArrow;
public var hpDown:downArrow;
public var nippleCocks:Boolean;
public var horseTail:Boolean;
public var merchant:Number;
public var esen:Number;
public var demonTail:Boolean;
public var cockTotal:Number;
public var lustUp:upArrow;
public var eInPussyT:Number;
public var mimicAppearance:int;
public var inMouthT:Number;
public var pregnancyIncubation:Number;
public var scrollBar:UIScrollBar;
public var levelUpWindow:TextField;
public var desertChoice:TextField;
public var exp:Number;
public var eSpecial2:Number;
public var eSpecial3:Number;
public var eSpecial1:Number;
public var vaginalLooseness:Number;
public var eTotalFuckableUsed:Number;
public var Choice4Outline:MovieClip;
public var str:Number;
public var levelSpeDown:downArrow;
public var ownsHentaiComic:Boolean;
public var grappling:Boolean;
public var levelStrDown:downArrow;
public var eTotalFuckable:Number;
public var breastCupSize:String;
public var debug:Boolean;
public var balls:Number;
public var currentText:String;
public var inte:Number;
public var speUp:upArrow;
public var inPussyT:Number;
public var speDown:downArrow;
public var strDown:downArrow;
public var inTits:Number;
public var eInMouth:Number;
public var lib:Number;
public var totalUsedFuckTools:Number;
public var dogAffinity:Number;
public var mountainChoice:TextField;
public var Choice1:TextField;
public var Choice2:TextField;
public var Choice3:TextField;
public var Choice4:TextField;
public var winLustEvent:Number;
public var eTitFuck:Number;
public var eAssHoleLooseness:Number;
public var itemSlot2:Number;
public var itemSlot3:Number;
public var eTemperment:Number;
public var inMouth:Number;
public var ballSize;
public var totalFuckable:Number;
public var itemSlot1:Number;
public var levelTable;
public var eAssHole:Number;
public var ownsStimBelt:Boolean;
public var gender:Number;
public var appearanceBox:MovieClip;
public var corUp:upArrow;
public var playerStartedGrapple:Boolean;
public var levelText:TextField;
public var etou:Number;
public var slotUsed:Number;
public var monk:Number;
public var race:String;
public var shopHolding:Number;
public var shop:Number;
public var breastTotal:Number;
public var ecor:Number;
public var gems:Number;
public var furry:Boolean;
public var eShort:String;
public var eNipples:Number;
public var inAss:Number;
public var senDown:downArrow;
public var espe:Number;
public var catAffinity:Number;
public var horseCocks:Number;
public var eInTits:Number;
public var corDown:downArrow;
public var nipplesPerBreast:Number;
public var ownsDeluxeOnahole:Boolean;
public var catFace:Boolean;
public var horns:Number;
public var clitLength:Number;
public var button4Choice:Number;
public var level:Number;
public var levelStrUp:upArrow;
public var baseCockLength:Number;
public var eGender:String;
public var elust:Number;
public var inteUp:upArrow;
public var Choice1Outline:MovieClip;
public var currEvent:Number;
public var totalUsedFuckable:Number;
public var eCockThickness:Number;
public var eTotalFuckTools:Number;
public var levelBox:MovieClip;
public var eInPussy:Number;
public var dogTail:Boolean;
public var nipplesFuckable:Boolean;
public var appearanceText:TextField;
public var estr:Number;
public var ownsOnahole:Boolean;
public var nippleLength:Number;
public var eVaginalWetness:Number;
public var stoneLust:Boolean;
public var totalFuckTools:Number;
public var eCocks:Number;
public var breastRows:Number;
public var ownsNaturalStimBelt:Boolean;
public var inPussy:Number;
public var horseFace:Boolean;
public var statPane:TextField;
public var hair:String;
public var vaginalWetness:Number;
public var dataText:TextField;
public var mountainBox:MovieClip;
public function MainTimeline(){
addFrameScript(0, frame1);
__setProp_scrollBar_Scene1_TextFields_0();
}
public function clitDescript():String{
var _local1 = "";
var _local2:Number = rando(10);
var _local3:Boolean;
if (rando(2) == 0){
if (clitLength <= 0.5){
if (_local2 < 3){
_local1 = (_local1 + "tiny ");
};
if ((((_local2 >= 3)) && ((_local2 < 6)))){
_local1 = (_local1 + "little ");
};
if ((((_local2 >= 6)) && ((_local2 < 8)))){
_local1 = (_local1 + "petite ");
};
if (_local2 == 8){
_local1 = (_local1 + "diminutive ");
};
if (_local2 == 9){
_local1 = (_local1 + "miniature ");
};
};
if ((((clitLength > 0.5)) && ((clitLength < 1.5)))){
};
if ((((clitLength >= 1.5)) && ((clitLength < 4)))){
if (_local2 < 4){
_local1 = (_local1 + "large ");
};
if ((((_local2 >= 4)) && ((_local2 < 9)))){
_local1 = (_local1 + "substantial ");
};
if (_local2 == 9){
_local1 = (_local1 + "considerable ");
};
};
if (clitLength >= 4){
if (_local2 < 3){
_local1 = (_local1 + "monster ");
};
if ((((_local2 >= 3)) && ((_local2 < 6)))){
_local1 = (_local1 + "tremendous ");
};
if ((((_local2 >= 6)) && ((_local2 < 8)))){
_local1 = (_local1 + "colossal ");
};
if (_local2 == 8){
_local1 = (_local1 + "enormous ");
};
if (_local2 == 9){
_local1 = (_local1 + "bulky ");
};
};
};
if (rando(2) == 0){
if ((((((dogAffinity > 2)) && (!(_local3)))) && ((rando(2) == 0)))){
_local3 = true;
_local1 = (_local1 + "bitch-");
};
if ((((((horseAffinity > 2)) && (!(_local3)))) && ((rando(2) == 0)))){
_local3 = true;
_local1 = (_local1 + "mare-");
};
if ((((((lust > 70)) && ((rando(4) < 3)))) && (!(_local3)))){
_local3 = true;
_local2 = rando(3);
if (_local2 == 0){
_local1 = (_local1 + "throbbing ");
};
if (_local2 == 1){
_local1 = (_local1 + "pulsating ");
};
if (_local2 == 2){
_local1 = (_local1 + "hard ");
};
};
if ((((lib > 50)) && (!(_local3)))){
_local3 = true;
_local2 = rando(4);
if (_local2 == 0){
_local1 = (_local1 + "insatiable ");
};
if (_local2 == 1){
_local1 = (_local1 + "greedy ");
};
if (_local2 == 2){
_local1 = (_local1 + "demanding ");
};
if (_local2 == 3){
_local1 = (_local1 + "rapacious ");
};
};
};
_local2 = rando(10);
if (_local2 == 0){
_local1 = (_local1 + "clit");
};
if (_local2 == 1){
_local1 = (_local1 + "clitty");
};
if (_local2 == 2){
_local1 = (_local1 + "button");
};
if (_local2 == 3){
_local1 = (_local1 + "pleasure-buzzer");
};
if (_local2 == 4){
_local1 = (_local1 + "clit");
};
if (_local2 == 5){
_local1 = (_local1 + "clitty");
};
if (_local2 == 6){
_local1 = (_local1 + "button");
};
if (_local2 == 7){
_local1 = (_local1 + "clit");
};
if (_local2 == 8){
_local1 = (_local1 + "clit");
};
if (_local2 == 9){
_local1 = (_local1 + "button");
};
return (_local1);
}
public function onaholeUse():void{
if (cockTotal > 1){
if (ownsNaturalOnahole){
outputMainText("Scratching your head, you wonder how such a goofy contraption can offer the extreme pleasures Giacomo was peddling. Shrugging your shoulders, you disrobe and quickly stir your she-cock for a nice quick fuck. With little difficulty, you push the two cushions aside as you penetrate the toy. It feels very warm, like the warmth of flesh. You push the onahole down on your cock until you bottom out. You feel some sort of soft protrusion in the base of the toy, pressing against the opening of your cock.", false);
outputMainText("\r\rYou begin gently stroking yourself with the toy. You decide for a nice, leisurely pace over your usual marathon moods. The toy is warm and is very pleasurable. While hardly worthy of the sales pitch made by Giacomo, you feel that it was worth the money. If nothing else, it is different.", false);
outputMainText("\r\rWithout warning, you feel immense pressure clamp down upon your cock. Shocked, you instinctively try to pull out. Your efforts only succeed in pulling your foreskin up and down your shaft. Whatever went wrong, your cock is stuck. You feel a pulse from the two cushions inside the onahole. The thing lurches forward on your cock and it is now embedded deeper. Frustrated, you start thumping your trapped pecker against the ground, trying to shake the thing loose. To no avail, the thing lurches forward on your cock. You now feel the annoying impression against the head of your cock as you bottom out.", false);
outputMainText("\r\rBefore you can react, you feel the impression move. It shifts…adjusts. Utterly confused and revolted, you pause to figure out what is going on. You then feel the unmistakable sensation of something prodding at the opening in the head of your dick. The horrid reality crashes down upon you like a falling wall; this \"toy\" is a living creature!!!!", false);
outputMainText("\r\rAs the true reality of your plight buffets against your mind, you feel a slender tendril push past your opening and into your urethra! Unaccustomed to this kind of \"penetration\", your body convulses and bucks as you try to shake the thing off. You grab the creature and begin to pull it off, only to see needle-like growths come from the holes around the main opening. They push against the base of your pubic mound and you feel the needles prickling against your skin. As you try to pull, the needles react by trying to pierce your skin. When you stop, the needles retract. You come to the realization that you will not get this thing off your dick without tearing yourself apart.", false);
outputMainText("\r\rThe tendril continues exploring your urethra until it settles inside your prostate. The tendril begins flicking its end around your inner sex as the muscular body begins humping and pumping your cock. Within minutes, the pace of the little creature is frenetic. Scream upon scream thunders from your lungs as the creature plunders your insides. Pain and pleasure become the same sensation as you get the cock-milking of your life.", false);
outputMainText("\r\rAs you feel your cum build, you fell a sharp suction inside you. The suction immediately triggers your orgasm and your muscles cramp and push to cum. Instead of shooting a load, you feel the sucking of the tendril vacuum up your cum! As it swells to feed, you feel your inner tube match its growth. The uncoordinated sensation of your urethra dilating against your own orgasm forces you to cum again, prompting the creature to suck the cum right out of you again.", false);
outputMainText("\r\rThe more semen you produce, the harder the accursed thing sucks. Eventually, the pain subsides and only the unholy pleasure of such deep penetration and stimulation remains. THIS is what that crazy merchant was talking about. You have never cum so hard or as much as now. Your mind is polluted with lust and all you want is for this thing to keep milking you and leave you intoxicated with pleasure. The shock of this treatment sends you in and out of consciousness. You wake up only long enough to pump another load down its endless pipe. Each time you wake up to cum, you see the thing get fatter and fatter.", false);
outputMainText("\r\rAwake…out…awake, out. The next minutes, hours or whatever, are a blur. You sense the need to cum. You feel your muscles squeeze to force your seed out. You feel the animal, or whatever it is, suck the very life-milk from you. It grows fatter. You want to feel your muscles squeeze again! You want to feel the semen surge again! You want the thing to work your shaft some more! Endless pleasure. Endless orgasm. You faint.", false);
outputMainText("\r\rYou have no clue how much time has passed. However, you wake up with you sex organs sore from the inside out. There is small dribbles of cum on the ground and you see the thing has swelled up twice its size. Horrified, you reach to grab the thing to kill it. However, you are prevented from doing so for one reason; after you got over being penetrated, it was THE best orgasms you have ever had.", false);
stats(0, 0, 0, 0, 1, 0, -100, 0);
return;
};
outputMainText("You get naked and settle down with your new toy. ", false);
if (ownsDeluxeOnahole){
outputMainText("You are amazed at the level of care and detail in the craftsmanship of this toy. You wonder if it feels as good as it looks.\r\r", false);
} else {
outputMainText("The device looks mildly unappealing and almost comical. However, you have never been one to slouch in the search for new forms of pleasure.\r\r", false);
};
outputMainText((("With your free hand, you slap your " + allCocksDescript()) + " to 'attention' and ease the onahole over your cocks. "), false);
if (ownsDeluxeOnahole){
outputMainText("As you 'deflower' the toy, you are floored by how realistic it REALLY does feel. Giacomo must use one of these, himself as it does feel damn close to a real twat. You especially enjoy how it manages to roll back your foreskin halfway in. ", false);
} else {
outputMainText("Much to your surprise, Giacomo failed to point out that the ugly rubber sheath was open-ended on the inside and is providing an impressive grip around the foreskin of your shaft. ", false);
};
outputMainText("Without hesitation, you begin working your cock as if the world would die tomorrow. Stroke upon stroke, you demand your body to break itself in half with massive orgasmic pulses. Inside the toy, your foreskin rolls up and over your head, triggering floods of precum into the tube, making it feel even sharper. ", false);
if (ownsDeluxeOnahole){
outputMainText("As your precum fills the nooks and crannies of the toy pussy, it begins warming up and feels like an actual lubricated cunt! Amazing! ", false);
};
outputMainText("Your body is quick to respond to your demands and you pump impressive amounts of your seed into your toy. Savoring each shot, you relish the sensation of feeling the warmth of your cum radiate throughout and warm your cock even more. ", false);
doNext(46);
} else {
if (ownsNaturalOnahole){
outputMainText("Scratching your head, you wonder how such a goofy contraption can offer the extreme pleasures Giacomo was peddling. Shrugging your shoulders, you disrobe and quickly stir your she-cock for a nice quick fuck. With little difficulty, you push the two cushions aside as you penetrate the toy. It feels very warm, like the warmth of flesh. You push the onahole down on your cock until you bottom out. You feel some sort of soft protrusion at the base of the toy, pressing against the opening of your cock.", false);
outputMainText("\r\rYou begin gently stroking yourself with the toy. You decide for a nice, leisurely pace over your usual marathon moods. The toy is warm and is very pleasurable. While hardly worthy of the sales pitch made by Giacomo, you feel that it was worth the money. If nothing else, it is different.", false);
outputMainText("\r\rWithout warning, you feel immense pressure clamp down upon your cock. Shocked, you instinctively try to pull out. Your efforts only succeed in pulling your foreskin up and down your shaft. Whatever went wrong, your cock is stuck. You feel a pulse from the two cushions inside the onahole. The thing lurches forward on your cock and it is now embedded deeper. Frustrated, you start thumping your trapped pecker against the ground, trying to shake the thing loose. To no avail, the thing lurches forward on your cock. You now feel the annoying impression against the head of your cock as you bottom out.", false);
outputMainText("\r\rBefore you can react, you feel the impression move. It shifts…adjusts. Utterly confused and revolted, you pause to figure out what is going on. You then feel the unmistakable sensation of something prodding at the opening in the head of your dick. The horrid reality crashes down upon you like a falling wall; this \"toy\" is a living creature!!!!", false);
outputMainText("\r\rAs the true reality of your plight buffets against your mind, you feel a slender tendril push past your opening and into your urethra! Unaccustomed to this kind of \"penetration\", your body convulses and bucks as you try to shake the thing off. You grab the creature and begin to pull it off, only to see needle-like growths come from the holes around the main opening. They push against the base of your pubic mound and you feel the needles prickling against your skin. As you try to pull, the needles react by trying to pierce your skin. When you stop, the needles retract. You come to the realization that you will not get this thing off your dick without tearing yourself apart.", false);
outputMainText("\r\rThe tendril continues exploring your urethra until it settles inside your prostate. The tendril begins flicking its end around your inner sex as the muscular body begins humping and pumping your cock. Within minutes, the pace of the little creature is frenetic. Scream upon scream thunders from your lungs as the creature plunders your insides. Pain and pleasure become the same sensation as you get the cock-milking of your life.", false);
outputMainText("\r\rAs you feel your cum build, you fell a sharp suction inside you. The suction immediately triggers your orgasm and your muscles cramp and push to cum. Instead of shooting a load, you feel the sucking of the tendril vacuum up your cum! As it swells to feed, you feel your inner tube match its growth. The uncoordinated sensation of your urethra dilating against your own orgasm forces you to cum again, prompting the creature to suck the cum right out of you again.", false);
outputMainText("\r\rThe more semen you produce, the harder the accursed thing sucks. Eventually, the pain subsides and only the unholy pleasure of such deep penetration and stimulation remains. THIS is what that crazy merchant was talking about. You have never cum so hard or as much as now. Your mind is polluted with lust and all you want is for this thing to keep milking you and leave you intoxicated with pleasure. The shock of this treatment sends you in and out of consciousness. You wake up only long enough to pump another load down its endless pipe. Each time you wake up to cum, you see the thing get fatter and fatter.", false);
outputMainText("\r\rAwake…out…awake, out. The next minutes, hours or whatever, are a blur. You sense the need to cum. You feel your muscles squeeze to force your seed out. You feel the animal, or whatever it is, suck the very life-milk from you. It grows fatter. You want to feel your muscles squeeze again! You want to feel the semen surge again! You want the thing to work your shaft some more! Endless pleasure. Endless orgasm. You faint.", false);
outputMainText("\r\rYou have no clue how much time has passed. However, you wake up with you sex organs sore from the inside out. There is small dribbles of cum on the ground and you see the thing has swelled up twice its size. Horrified, you reach to grab the thing to kill it. However, you are prevented from doing so for one reason; after you got over being penetrated, it was THE best orgasms you have ever had.", false);
stats(0, 0, 0, 0, 1, 0, -100, 0);
return;
};
outputMainText("You get naked and settle down with your new toy. ", false);
if (ownsDeluxeOnahole){
outputMainText("You are amazed at the level of care and detail in the craftsmanship of this toy. You wonder if it feels as good as it looks.\r\r", false);
} else {
outputMainText("The device looks mildly unappealing and almost comical. However, you have never been one to slouch in the search for new forms of pleasure.\r\r", false);
};
outputMainText("With your free hand, you slap your cock to 'attention' and ease the onahole over your cock. ", false);
if (ownsDeluxeOnahole){
outputMainText("As you 'deflower' the toy, you are floored by how realistic it REALLY does feel. Giacomo must use one of these himself, as it does feel damn close to a real twat. You especially enjoy how it manages to roll back your foreskin halfway in. ", false);
} else {
outputMainText("Much to your surprise, Giacomo failed to point out that the ugly rubber sheath was open-ended on the inside and is providing an impressive grip around the foreskin of your shaft. ", false);
};
outputMainText("Without hesitation, you begin working your cock as if the world would die tomorrow. Stroke upon stroke, you demand your body to break itself in half with massive orgasmic pulses. Inside the toy, your foreskin rolls up and over your head, triggering floods of precum into the tube, making it feel even sharper. ", false);
if (ownsDeluxeOnahole){
outputMainText("As your precum fills the nooks and crannies of the toy pussy, it begins warming up and feels like an actual lubricated cunt! Amazing! ", false);
};
outputMainText("Your body is quick to respond to your demands and you pump impressive amounts of your seed into your toy. Savoring each shot, you relish the sensation of feeling the warmth of your cum radiate throughout and warm your cock even more. ", false);
if (gender == 3){
doNext(21);
} else {
stats(0, 0, 0, 0, 0, -0.75, -100, 0);
};
};
}
public function chooseSexToy():void{
var _local1:Number = 0;
var _local2:Number = 0;
if (gender == 0){
outputMainText("You lament your lack of genetalia, and eventually fall asleep, dreaming of the endowments you wish you had.", false);
};
if (gender == 1){
if (((((ownsOnahole) || (ownsDeluxeOnahole))) || (ownsNaturalOnahole))){
onaholeUse();
} else {
masturbate();
};
};
if (gender == 2){
if (((ownsStimBelt) || (ownsNaturalStimBelt))){
stimBeltUse();
} else {
masturbate();
};
};
if (gender == 3){
if (((((ownsOnahole) || (ownsDeluxeOnahole))) || (ownsNaturalOnahole))){
_local1++;
};
if (((ownsStimBelt) || (ownsNaturalStimBelt))){
_local1++;
};
if (_local1 == 1){
if (((((ownsOnahole) || (ownsDeluxeOnahole))) || (ownsNaturalOnahole))){
onaholeUse();
};
if (((ownsStimBelt) || (ownsNaturalStimBelt))){
stimBeltUse();
};
} else {
_local2 = (int((Math.random() * _local1)) + 1);
if (_local2 == 1){
stimBeltUse();
};
if (_local2 == 2){
onaholeUse();
};
};
if (_local1 == 0){
masturbate();
};
};
}
public function levelPaneRefresh():void{
levelValuePane.htmlText = ((((((("\r\r" + tempStr) + "\r") + tempTou) + "\r") + tempSpe) + "\r\r") + remSkillPoints);
}
public function horseAffinityChange(_arg1:Number):void{
_arg1 = (_arg1 / 20);
if (horseAffinity > 1.2){
_arg1 = (_arg1 / 1.5);
};
if (horseAffinity > 1.5){
_arg1 = (_arg1 / 2);
};
if (horseAffinity > 2){
_arg1 = (_arg1 / 2);
};
horseAffinity = (horseAffinity + _arg1);
trace((("Horseaffinity increased by " + _arg1) + "."));
}
public function mountainButton(_arg1:MouseEvent):void{
mountainBox.visible = false;
mountainChoice.visible = false;
desertChoice.visible = false;
desertBox.visible = false;
forestChoice.visible = false;
forestBox.visible = false;
lakeChoice.visible = false;
lakeBox.visible = false;
dataBox.visible = false;
dataText.visible = false;
exploreMountain();
}
public function takeItem():void{
if (itemSlot1 == 0){
itemSlot1 = foundItem;
outputMainText((("\r\rYou take the " + itemLongName(foundItem)) + " and place it in your first belt pouch."), false);
if (shop != 0){
shop = 0;
shopHolding = 0;
doNext(20);
} else {
doNext(3);
};
return;
};
if (itemSlot2 == 0){
itemSlot2 = foundItem;
outputMainText((("\r\rYou take the " + itemLongName(foundItem)) + " and place it in your second belt pouch."), false);
if (shop != 0){
shop = 0;
shopHolding = 0;
doNext(20);
} else {
doNext(3);
};
return;
};
if (itemSlot3 == 0){
itemSlot3 = foundItem;
outputMainText((("\r\rYou take the " + itemLongName(foundItem)) + " and place it in your last belt pouch."), false);
if (shop != 0){
shop = 0;
shopHolding = 0;
doNext(20);
} else {
doNext(3);
};
return;
};
outputMainText((((("\r\rWhich pouch will you place " + itemLongName(foundItem)) + " in? Placing it in a full slot will force you to leave the old item behind.\r\rChoose to return to leave the ") + itemLongName(foundItem)) + " behind."), false);
if (itemSlot1 == 0){
Choice1Outline.visible = true;
Choice1.visible = true;
Choice1.htmlText = "Empty";
button1Choice = 9;
} else {
Choice1.htmlText = itemName(itemSlot1);
Choice1.visible = true;
Choice1Outline.visible = true;
button1Choice = 9;
};
if (itemSlot2 == 0){
Choice2Outline.visible = true;
Choice2.visible = true;
Choice2.htmlText = "Empty";
button2Choice = 10;
} else {
Choice2.htmlText = itemName(itemSlot2);
Choice2.visible = true;
Choice2Outline.visible = true;
button2Choice = 10;
};
if (itemSlot3 == 0){
Choice3Outline.visible = true;
Choice3.visible = true;
Choice3.htmlText = "Empty";
button3Choice = 11;
} else {
Choice3.htmlText = itemName(itemSlot3);
Choice3.visible = true;
Choice3Outline.visible = true;
button3Choice = 11;
};
Choice4.visible = true;
Choice4Outline.visible = true;
Choice4.htmlText = "Return";
button4Choice = 3;
if (shop != 0){
button4Choice = 20;
};
appearanceText.visible = false;
appearanceBox.visible = false;
}
public function thicknessChange(_arg1:Number):void{
var _local2:Number = _arg1;
var _local3:Number = 0;
while (_local2 > 0) {
if ((_local2 - 1) > 0){
_arg1 = 1;
} else {
_arg1 = _local2;
};
_local2--;
_arg1 = (_arg1 / 2.5);
if (baseCockThickness > 1.8){
_arg1 = (_arg1 / 2);
};
if (baseCockThickness > 3){
_arg1 = (_arg1 / 3);
};
if (baseCockThickness > 5){
_arg1 = (_arg1 / 3);
};
baseCockThickness = (baseCockThickness + _arg1);
_local3 = (_local3 + _arg1);
trace(((("Thickness increased by " + _arg1) + ". Total now: ") + baseCockThickness));
};
if (_local3 >= 1){
if (cockTotal == 1){
outputMainText("\r\rYour cock spreads rapidly, swelling an inch or more in girth, making it feel fat and floppy.", false);
} else {
outputMainText("\r\rYour cocks spread rapidly, swelling as they grow an inch or more in girth, making them feel fat and floppy.", false);
};
};
if (_local3 <= 0.5){
if (cockTotal > 1){
outputMainText("\r\rYour cocks feel swollen and heavy. With a firm, but gentle, squeeze, you confirm your suspicions. They are definitely thicker.", false);
} else {
outputMainText("\r\rYour cock feels swollen and heavy. With a firm, but gentle, squeeze, you confirm your suspicions. It is definitely thicker.", false);
};
};
if ((((_local3 > 0.5)) && ((_local3 < 1)))){
if (cockTotal == 1){
outputMainText("\r\rYour cock seems to swell up, feeling heavier. You look down and watch it growing fatter as it thickens.", false);
};
if (cockTotal > 1){
outputMainText("\r\rYour cocks seem to swell up, feeling heavier. You look down and watch them growing fatter as they thicken.", false);
};
};
if ((((baseCockThickness >= 1.8)) && (((baseCockThickness - _local3) < 1.8)))){
outputMainText(" <b>You are now thick enough to satisfy most any woman.</b>", false);
};
if ((((baseCockThickness >= 3)) && (((baseCockThickness - _local3) < 3)))){
outputMainText(" <b>You are so thick you would have a hard time fucking a normal woman.</b>", false);
};
if ((((baseCockThickness >= 5)) && (((baseCockThickness - _local3) < 5)))){
outputMainText(" <b>You are hung so thick you'll be lucky to find a demon or animal that could take you.</b>", false);
};
}
public function nippleCockDescript(_arg1:Number):String{
if (_arg1 < 3){
return ("tiny");
};
if ((((_arg1 >= 3)) && ((_arg1 < 5)))){
return ("small");
};
if ((((_arg1 >= 5)) && ((_arg1 < 7)))){
return ("veiny");
};
if ((((_arg1 >= 7)) && ((_arg1 < 9)))){
return ("large");
};
if ((((_arg1 >= 10)) && ((_arg1 < 13)))){
return ("huge");
};
if ((((_arg1 >= 13)) && ((_arg1 < 18)))){
return ("massive");
};
if ((((_arg1 >= 18)) && ((_arg1 < 30)))){
return ("enormous");
};
if (_arg1 >= 30){
return ("giant-sized");
};
return ("null");
}
public function itemName(_arg1:Number):String{
if (_arg1 == 1000){
return ("H. Pill");
};
if (_arg1 == 1001){
return ("Equinum");
};
if (_arg1 == 1002){
return ("Incubi Draft");
};
if (_arg1 == 1003){
return ("Succubi Milk");
};
if (_arg1 == 1004){
return ("Canine Pepp");
};
if (_arg1 == 1005){
return ("Vitality T.");
};
if (_arg1 == 1006){
return ("Scholars T.");
};
if (_arg1 == 1007){
return ("Cerulean P.");
};
if (_arg1 == 1008){
return ("Purity Phtr");
};
if (_arg1 == 1009){
return ("Numbing Oil");
};
if (_arg1 == 1010){
return ("Hummanus");
};
return ("ERROR");
}
public function killCocks(_arg1:Number):void{
var _local4:int;
var _local2:Number = 0;
var _local3 = "";
_local3 = " and balls";
if (_arg1 == -1){
if (cockTotal == 1){
if (horseCocks == 1){
outputMainText(((("\r\r<b>Your " + horseDescript()) + _local3) + " shrink into your body, disappearing completely.</b>"), false);
};
if (normalCocks == 1){
outputMainText(((("\r\r<b>Your " + cockDescript()) + _local3) + " shrink into your body, disappearing completely.</b>"), false);
};
if (dogCocks == 1){
outputMainText(((("\r\r<b>Your " + cockDescript()) + _local3) + " shrink into your body, disappearing completely.</b>"), false);
};
} else {
outputMainText((("\r\r<b>Your " + allCocksDescript()) + " and balls shrink into your body, disappearing forever.</b>"), false);
};
cockTotal = 0;
horseCocks = 0;
normalCocks = 0;
dogCocks = 0;
if (nippleCocks){
outputMainText("\rYour nipplecocks shrink rapidly, the cocks becoming tinier and tinier until they flatten in to normal nipples.", false);
nippleLength = 0.1;
};
nippleCocks = false;
} else {
_local4 = _arg1;
while ((((cockTotal > 0)) && ((_local4 > 0)))) {
_local2 = (int((Math.random() * cockTotal)) + 1);
if (_local2 <= normalCocks){
if (normalCocks == 1){
outputMainText((("\r\r<b>Your " + cockDescript()) + " shrinks into your body, disappearing completely.</b>"), false);
};
if (normalCocks > 1){
outputMainText((("\r\r<b>One of your " + cockDescript()) + "s shrinks into your body, disappearing completely.</b>"), false);
};
cockTotal--;
normalCocks--;
};
if ((((_local2 > normalCocks)) && ((_local2 <= (normalCocks + horseCocks))))){
if (horseCocks == 1){
outputMainText((("\r\r<b>Your " + horseDescript()) + " disappears into your sheath... completely.</b> "), false);
};
if (horseCocks > 1){
outputMainText((("\r\r<b>One of your " + horseDescript()) + "s recedes into your sheath, completely.</b> "), false);
};
horseCocks--;
cockTotal--;
if ((horseCocks + dogCocks) == 0){
outputMainText("Your sheath ripples and vanishes with it.", false);
};
};
if ((((_local2 > (normalCocks + horseCocks))) && ((_local2 <= ((normalCocks + horseCocks) + dogCocks))))){
if (dogCocks == 1){
outputMainText((("\r\r<b>Your " + dogDescript()) + " disappears into your sheath...completely.</b> "), false);
};
if (dogCocks > 1){
outputMainText((("\r\r<b>One of your " + dogDescript()) + "s recedes into your sheath, completely.</b> "), false);
};
dogCocks--;
cockTotal--;
if ((horseCocks + dogCocks) == 0){
outputMainText("Your sheath ripples and vanishes with it.", false);
};
};
if (cockTotal < 0){
cockTotal = 0;
};
if (normalCocks < 0){
normalCocks = 0;
};
if (dogCocks < 0){
dogCocks = 0;
};
if (horseCocks < 0){
horseCocks = 0;
};
_local4--;
};
};
if ((((cockTotal == 0)) && ((vaginas == 0)))){
gender = 0;
};
if ((((cockTotal > 0)) && ((vaginas == 0)))){
gender = 1;
};
if ((((cockTotal == 0)) && ((vaginas > 0)))){
gender = 2;
};
if ((((cockTotal > 0)) && ((vaginas > 0)))){
gender = 3;
};
}
public function appearance(_arg1:MouseEvent):void{
appearanceGo();
}
public function hpRestore(_arg1:Number):Boolean{
HP = (HP + _arg1);
if (HP > ((tou * 2) + 50)){
HP = ((tou * 2) + 50);
return (false);
};
hpUp.visible = true;
return (true);
}
function frame1(){
mimicAppearance = 0;
debug = false;
version = "0.2.6d";
str = 0;
tou = 0;
spe = 0;
inte = 0;
lib = 0;
sen = 0;
HP = 0;
lust = 0;
cor = 0;
rand = 0;
gems = 0;
levelTable = new Array();
levelTable[0] = 0;
levelTable[1] = 15;
levelTable[2] = 30;
levelTable[3] = 50;
levelTable[4] = 75;
levelTable[5] = 100;
levelTable[6] = 150;
levelTable[7] = 200;
levelTable[8] = 300;
levelTable[9] = 400;
levelTable[10] = 500;
levelTable[11] = 750;
levelTable[12] = 1000;
levelTable[13] = 1500;
levelTable[14] = 2000;
levelTable[15] = 2500;
levelTable[16] = 3000;
levelTable[17] = 3500;
levelTable[18] = 4000;
levelTable[19] = 5000;
exp = 0;
level = 0;
race = "Human";
tallness = 0;
hair = "Grey";
gender = 0;
horseTail = false;
horseFace = false;
demonTail = false;
dogTail = false;
dogFace = false;
inHeat = false;
catTail = false;
catFace = false;
furry = false;
horns = 0;
merchant = 0;
monk = 0;
farm = 0;
sand = 0;
cockTotal = 0;
normalCocks = 0;
horseCocks = 0;
balls = 0;
ballSize = 0;
dogCocks = 0;
baseCockLength = 0;
baseCockThickness = 0;
breastTotal = 0;
breastsPerRow = 0;
breastRows = 0;
nipplesPerBreast = 0;
breastCupSize = "N/A";
nippleLength = 0;
nipplesFuckable = false;
nippleCocks = false;
vaginas = 0;
eTitFuck = 0;
vaginalLooseness = 0;
vaginalWetness = 1;
pregnancyIncubation = 0;
pregnancyType = 0;
lactationMultiplier = 0;
clitLength = 0.1;
horseAffinity = 1;
dogAffinity = 1;
catAffinity = 1;
itemSlot1 = 1003;
itemSlot2 = 1001;
itemSlot3 = 1002;
slotUsed = 0;
foundItem = 0;
inCombat = false;
grappling = false;
loseEvent = 0;
winEvent = 0;
winLustEvent = 0;
tempExp = 0;
playerStartedGrapple = false;
stoneLust = false;
eShort = "a short description";
eLong = "A short description has appeared, surprising you with it's longness!";
eGender = "numeric";
ePronoun = "it";
ePronoun2 = "it";
ePronoun3 = "its";
estr = 0;
etou = 0;
espe = 0;
einte = 0;
elib = 0;
esen = 0;
eHP = 0;
eMaxHP = 0;
elust = 0;
ecor = 0;
eTemperment = 0;
eSpecial1 = 0;
eSpecial2 = 0;
eSpecial3 = 0;
eLastStrike = 0;
eCocks = 0;
eHorseCocks = false;
eDogCocks = false;
eCockLength = 0;
eCockThickness = 0;
eNippleCocks = false;
eNipples = 0;
eVaginas = 0;
eVaginalWetness = 1;
eVaginalLooseness = 1;
eClitLength = 0.5;
eAssHole = 0;
eAssHoleLooseness = 0;
eAssHoleWetness = 0;
totalFuckable = 0;
totalUsedFuckable = 0;
totalFuckTools = 0;
totalUsedFuckTools = 0;
eTotalFuckable = 0;
eTotalFuckableUsed = 0;
eTotalFuckTools = 0;
eTotalFuckToolsUsed = 0;
inPussy = 0;
inPussyT = 0;
inAss = 0;
inAssT = 0;
inTits = 0;
inTitsT = 0;
inMouth = 0;
inMouthT = 0;
eInPussy = 0;
eInPussyT = 0;
eInAss = 0;
eInAssT = 0;
eInTits = 0;
eInTitsT = 0;
eInMouth = 0;
eInMouthT = 0;
currentText = "";
button1Choice = 0;
button2Choice = 0;
button3Choice = 0;
button4Choice = 0;
currEvent = 0;
shop = 0;
shopHolding = 0;
nextButton = false;
ownsDangerousPlants = false;
ownsTravelersGuide = false;
ownsHentaiComic = false;
ownsDildo = false;
ownsStimBelt = false;
ownsNaturalStimBelt = false;
ownsOnahole = false;
ownsDeluxeOnahole = false;
ownsNaturalOnahole = false;
remSkillPoints = 0;
tempStr = 0;
tempSpe = 0;
tempTou = 0;
hideUpDown();
levelWindow(false);
levelUp.visible = false;
newGame.addEventListener(MouseEvent.CLICK, newGameStart);
outputWindow.htmlText = ("Click 'New Game' to begin a new game.\r\rCoding and Main Events:\r --Fenoxo\r\rSupplimentary Events (Tentacles, Giacomo):\r --Dxasmodeus\rSupplimentary Events (Faerie/Ivory Succubus):\r --Thrext\rSupplimentary Events (Extra masturbation code):\r --trknarfy\rSupplimentary Event (Sand-Witch Bad-End):\r --LimitLax\rLevel Up's (Including XP):\r --kamikosis\rSupplimentary Event (Minotaur Rape):\r --soretu\rSupplimentary Event (Queen Bee):\r --blusox6\r\rFor more information see Fenoxo's Furaffinity or the thread on Futanari Palace.\rhttp://www.furaffinity.net/user/fenoxo/\rVersion: " + version);
this.addEventListener(KeyboardEvent.KEY_DOWN, keyboard1);
Choice1Outline.addEventListener(MouseEvent.CLICK, buttonEvent1);
Choice2Outline.addEventListener(MouseEvent.CLICK, buttonEvent2);
Choice3Outline.addEventListener(MouseEvent.CLICK, buttonEvent3);
Choice4Outline.addEventListener(MouseEvent.CLICK, buttonEvent4);
Choice1.addEventListener(MouseEvent.CLICK, buttonEvent1);
Choice2.addEventListener(MouseEvent.CLICK, buttonEvent2);
Choice3.addEventListener(MouseEvent.CLICK, buttonEvent3);
Choice4.addEventListener(MouseEvent.CLICK, buttonEvent4);
appearanceText.addEventListener(MouseEvent.CLICK, appearance);
appearanceBox.addEventListener(MouseEvent.CLICK, appearance);
mountainBox.addEventListener(MouseEvent.CLICK, mountainButton);
desertBox.addEventListener(MouseEvent.CLICK, desertButton);
forestBox.addEventListener(MouseEvent.CLICK, forestButton);
lakeBox.addEventListener(MouseEvent.CLICK, lakeButton);
mountainChoice.addEventListener(MouseEvent.CLICK, mountainButton);
desertChoice.addEventListener(MouseEvent.CLICK, desertButton);
forestChoice.addEventListener(MouseEvent.CLICK, forestButton);
lakeChoice.addEventListener(MouseEvent.CLICK, lakeButton);
dataBox.addEventListener(MouseEvent.CLICK, dataButton);
dataText.addEventListener(MouseEvent.CLICK, dataButton);
levelText.addEventListener(MouseEvent.CLICK, levelRaise);
levelBox.addEventListener(MouseEvent.CLICK, levelRaise);
levelTouUp.addEventListener(MouseEvent.CLICK, raiseTou);
levelSpeUp.addEventListener(MouseEvent.CLICK, raiseSpe);
levelStrUp.addEventListener(MouseEvent.CLICK, raiseStr);
levelTouDown.addEventListener(MouseEvent.CLICK, lowerTou);
levelSpeDown.addEventListener(MouseEvent.CLICK, lowerSpe);
levelStrDown.addEventListener(MouseEvent.CLICK, lowerStr);
appearanceText.visible = false;
appearanceBox.visible = false;
Choice1Outline.visible = false;
Choice2Outline.visible = false;
Choice3Outline.visible = false;
Choice4Outline.visible = false;
Choice1.visible = false;
Choice2.visible = false;
Choice3.visible = false;
Choice4.visible = false;
statPane.visible = false;
statValuePane.visible = false;
mountainBox.visible = false;
mountainChoice.visible = false;
desertChoice.visible = false;
desertBox.visible = false;
forestChoice.visible = false;
forestBox.visible = false;
lakeChoice.visible = false;
lakeBox.visible = false;
dataBox.visible = true;
dataText.visible = true;
levelBox.visible = false;
levelText.visible = false;
statDisplay();
}
public function appearanceGo():void{
var _local3:Number;
trace(("TOTALCOCKS: " + cockTotal));
var _local1:Number = (Math.round(((nippleLength + (baseCockLength / 2)) * 100)) / 100);
var _local2:String = nippleCockDescript(_local1);
outputMainText("You are a ", true);
if (gender == 1){
outputMainText("man", false);
};
if (gender == 2){
outputMainText("woman", false);
};
if (gender == 3){
outputMainText("hermaphrodite", false);
};
if (gender == 0){
outputMainText("genderless human", false);
};
if (furry == true){
outputMainText(((((" with " + hair) + " fur. You are ") + int((tallness / 12))) + " feet "), false);
} else {
outputMainText(((((" with " + hair) + " hair. You are ") + int((tallness / 12))) + " feet "), false);
};
if ((tallness % 12) > 0){
outputMainText((("and " + (tallness % 12)) + " inches "), false);
};
outputMainText("tall.", false);
if (dogFace){
outputMainText(" Your face is a cross between a dog and human's, possesing a canine muzzle but large eyes full of human emotion.", false);
};
if (horseFace){
outputMainText(" Your face combines elements of a horse while retaining trace human features and human eyes.", false);
};
if (furry){
outputMainText(" Your entire body is covered in a soft coat of fur from head to toe.", false);
};
if (horns > 0){
outputMainText(" ", false);
if (horns == 2){
outputMainText("A pair of small demon horns have sprouted from your forehead.", false);
};
if (horns == 4){
outputMainText("Two pair of demon horns mark you as something more than human.", false);
};
if (horns == 6){
outputMainText("A trio of horn groupings crown your head, curling back towards your ears.", false);
};
if (horns == 8){
outputMainText("A quartet of horn clusters adorn your skull, each row larger and more curved than the back.", false);
};
if (horns == 10){
outputMainText("A mass of horns grows in ridges along your head, curving over your ears and down the back of your head.", false);
};
if (horns > 10){
outputMainText("Your skull is covered in large horns that curve down to your shoulders.", false);
};
};
if ((((pregnancyIncubation <= 14)) && ((pregnancyIncubation > 9)))){
outputMainText(" You've put on a little weight around the middle.", false);
};
if ((((pregnancyIncubation <= 9)) && ((pregnancyIncubation > 5)))){
outputMainText(" Your abdomen is beginning to show the telltale bulge of pregnancy.", false);
};
if ((((pregnancyIncubation <= 5)) && ((pregnancyIncubation > 3)))){
outputMainText(" You are obviously pregnant.", false);
};
if ((((pregnancyIncubation <= 3)) && (!((pregnancyIncubation == 0))))){
outputMainText(" Your stomach is distended, painfully large with your pregnancy. The birth is not far away.", false);
};
outputMainText("\r\r", false);
if (breastTotal > 0){
if (breastRows == 1){
outputMainText(((((("You have " + breastTotal) + " ") + breastCupSize) + "-sized breasts with ") + nipplesPerBreast), false);
};
if (breastRows > 1){
outputMainText(((((((("You have a total of " + breastTotal) + " breasts, starting with a row of ") + breastsPerRow) + " ") + breastCupSize) + "-cup tits with ") + nipplesPerBreast), false);
};
if (!nippleCocks){
outputMainText(" nipple", false);
} else {
outputMainText(" nipplecock", false);
};
if ((((nipplesPerBreast > 1)) || ((nipplesPerBreast == 0)))){
outputMainText("s", false);
};
outputMainText(" each. ", false);
if ((((((((nippleLength > 0)) && (!(nippleCocks)))) && ((((lib > 50)) || ((lust > 50)))))) && ((((lib < 80)) && ((lust < 80)))))){
outputMainText((("They jut forward " + (int((nippleLength * 10)) / 10)) + " inches as a result of your current arousal. "), false);
};
if ((((((nippleLength > 0)) && (!(nippleCocks)))) && ((((lib >= 80)) || ((lust >= 80)))))){
outputMainText((("They are bright and puckered, visibly prodding forwards " + (int(((nippleLength * 1.5) * 10)) / 10)) + " inches, a sensitive reminder of your lusty state. "), false);
};
if ((((((((((lactationMultiplier >= 2)) && (!((breastCupSize == "N/A"))))) && (!((breastCupSize == "A"))))) && (!(nippleCocks)))) && (!(nipplesFuckable)))){
outputMainText("Small white drops of milk slowly work their way out from your nipples from time to time. ", false);
};
if (nippleCocks){
if ((((lib <= 50)) && ((lust <= 50)))){
outputMainText((((("The " + _local2) + " ") + _local1) + " inch nipplecocks are barely visible, the only sign of them being the cock-like tips of your nipples. "), false);
if ((((((lactationMultiplier >= 2)) && (!((breastCupSize == "N/A"))))) && (!((breastCupSize == "A"))))){
outputMainText("Occasionally, a small bead of surprisingly thick milk drips from each. ", false);
};
};
if ((((((lib > 50)) || ((lust > 50)))) && ((((lib < 80)) && ((lust < 80)))))){
outputMainText((((("The " + _local2) + " ") + _local1) + " inch nipplecocks on your chest have burst forth and swollen to a semi-erect state. They swing in a deliciously distracting way with every step you take. "), false);
if ((((((lactationMultiplier >= 2)) && (!((breastCupSize == "N/A"))))) && (!((breastCupSize == "A"))))){
outputMainText("Small white drops of surprisingly thick milk occasionally drip from the swollen heads of your nipples. ", false);
};
};
if ((((lib > 80)) || ((lust > 80)))){
outputMainText((((("The " + _local2) + " ") + _local1) + " inch nipplecocks are swollen with need, pulsing in hot lust with every heartbeat. Rivulets of "), false);
if (lactationMultiplier > 0){
outputMainText("milky ", false);
};
outputMainText("precum leak down your breasts, sliming you with your own needs. ", false);
};
};
if (nipplesFuckable){
if ((((lib < 50)) && ((lust < 50)))){
if (vaginalWetness < 2){
outputMainText("Odd feelings emanate from ", false);
};
if ((((vaginalWetness >= 2)) && ((vaginalWetness < 4)))){
outputMainText("Moisture gleams in ", false);
};
if (vaginalWetness >= 4){
outputMainText("Occasional beads of ", false);
if (lactationMultiplier > 0){
outputMainText("milky ", false);
};
outputMainText("lubricant drip from ", false);
};
if (vaginalLooseness < 2){
outputMainText("the barely visible openings at the center of each nipple. ", false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText("the puckered openings at the center of each nipple. ", false);
};
if (vaginalLooseness >= 4){
outputMainText("between the vagina-like lips that top the swollen domes of your huge nipples. ", false);
};
};
if ((((((lib >= 50)) || ((lust >= 50)))) && ((((lib < 80)) && ((lust < 80)))))){
if (vaginalWetness < 2){
outputMainText("Moisture gleams in ", false);
};
if ((((vaginalWetness >= 2)) && ((vaginalWetness < 4)))){
outputMainText("Occasional beads of ", false);
if (lactationMultiplier > 0){
outputMainText("milky ", false);
};
outputMainText("lubricant drip from ", false);
};
if (vaginalWetness >= 4){
outputMainText("Thin streams of ", false);
if (lactationMultiplier > 0){
outputMainText("milky ", false);
};
outputMainText("lubricant occasionally dribble from ", false);
};
if (vaginalLooseness < 2){
outputMainText("the small, dimpled openings at the center of each nipple. ", false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText("the obvious, puckered openings at the center of each nipple. ", false);
};
if (vaginalLooseness >= 4){
outputMainText("the openings that sit between the parted, vagina-like lips that top the swollen domes of your huge nipples. ", false);
};
};
if ((((lib > 80)) || ((lust > 80)))){
if (vaginalWetness < 2){
outputMainText("Occasional beads of ", false);
if (lactationMultiplier > 0){
outputMainText("milky ", false);
};
outputMainText("lubricant drip from ", false);
};
if ((((vaginalWetness >= 2)) && ((vaginalWetness < 4)))){
outputMainText("Thin streams of ", false);
if (lactationMultiplier > 0){
outputMainText("milky ", false);
};
outputMainText("lubricant occasionally dribble from ", false);
};
if (vaginalWetness >= 4){
outputMainText("Thick streams of ", false);
if (lactationMultiplier > 0){
outputMainText("milky ", false);
};
outputMainText("lubricant drool constantly from ", false);
};
if (vaginalLooseness < 2){
outputMainText("the small holes that sit open at the center of each nipple, almost begging to be filled. ", false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText("the swollen openings that gape open at the center of each nipple, begging to be filled. ", false);
};
if (vaginalLooseness >= 4){
outputMainText("the gaping fuck-holes that yawn open between the swollen cuntlips that top the bulging domes of your engorged nipples. ", false);
};
};
};
if (breastRows >= 2){
outputMainText((("A second row of breasts, " + breastRatingSize((breastRating() - 1))) + "-cups, occupies the space below your regular tits. "), false);
};
if (breastRows == 3){
outputMainText((("Below that is a third row of smaller " + breastRatingSize((breastRating() - 2))) + "-cup breasts. "), false);
};
outputMainText("\r\r", false);
};
if (cockTotal > 0){
if (normalCocks > 0){
outputMainText(((("You have " + normalCocks) + " ") + cockDescript()), false);
if (normalCocks > 1){
outputMainText("s, each ", false);
} else {
outputMainText(" that is ", false);
};
outputMainText(((int((10 * baseCockLength)) / 10) + " inches long. "), false);
};
if (horseCocks > 0){
if (lib < 30){
outputMainText(((horseCocks + " ") + horseDescript()), false);
if (horseCocks > 1){
outputMainText("s are nestled", false);
} else {
outputMainText(" is nestled", false);
};
outputMainText(" in a large, black, and very equin looking sheath on your crotch. ", false);
if (horseCocks > 1){
outputMainText("They ", false);
} else {
outputMainText("It ", false);
};
outputMainText((("can reach " + (int(((baseCockLength * horseAffinity) * 100)) / 100)) + " inches when erect."), false);
};
if ((((lib >= 30)) && ((lib < 45)))){
outputMainText(((horseCocks + " ") + horseDescript()), false);
if (horseCocks > 1){
outputMainText("s have ", false);
} else {
outputMainText(" has ", false);
};
outputMainText("spilled out from your swollen sheath. ", false);
if (horseCocks > 1){
outputMainText("They dangle ", false);
} else {
outputMainText("It dangles ", false);
};
outputMainText(((int(((baseCockLength * horseAffinity) * 10)) / 10) + " inches down your leg."), false);
};
if ((((lib >= 45)) && ((lib < 90)))){
outputMainText(((((horseCocks + " erect ") + (int(((baseCockLength * horseAffinity) * 10)) / 10)) + " inch ") + horseDescript()), false);
if (horseCocks > 1){
outputMainText("s fan out from ", false);
} else {
outputMainText(" protrudes fowards from ", false);
};
outputMainText("the throbbing sheath at your crotch all the time. ", false);
};
if (lib >= 90){
outputMainText(((((horseCocks + " throbbing ") + (int(((baseCockLength * horseAffinity) * 10)) / 10)) + " inch ") + horseDescript()), false);
if (horseCocks > 1){
outputMainText("s pulse and dribble precum constantly, always ready to cum. ", false);
} else {
outputMainText(" pulses and dribbles precum constantly, always ready to cum. ", false);
};
};
};
if (dogCocks > 0){
if (lib < 30){
outputMainText(((dogCocks + " ") + dogDescript()), false);
if (dogCocks > 1){
outputMainText("s are nestled", false);
} else {
outputMainText(" is nestled", false);
};
outputMainText(" in a large fuzzy dog-sheath on your crotch. ", false);
if (dogCocks > 1){
outputMainText("They can reach ", false);
} else {
outputMainText("It can reach ", false);
};
outputMainText(((int((baseCockLength * 10)) / 10) + " inches when erect."), false);
};
if ((((lib >= 30)) && ((lib < 45)))){
outputMainText(((dogCocks + " ") + dogDescript()), false);
if (dogCocks > 1){
outputMainText("s have ", false);
} else {
outputMainText(" has ", false);
};
outputMainText("spilled out from your swollen sheath. ", false);
if (dogCocks > 1){
outputMainText("They dangle ", false);
} else {
outputMainText("It dangles ", false);
};
outputMainText(((int((baseCockLength * 10)) / 10) + " inches down your leg."), false);
};
if ((((lib >= 45)) && ((lib < 90)))){
outputMainText(((((dogCocks + " erect ") + (int((baseCockLength * 10)) / 10)) + " inch ") + dogDescript()), false);
if (dogCocks > 1){
outputMainText("s fan out from ", false);
} else {
outputMainText(" protrudes fowards from ", false);
};
outputMainText("the throbbing sheath at your crotch all the time. ", false);
};
if (lib >= 90){
outputMainText(((((dogCocks + " throbbing ") + (int((baseCockLength * 10)) / 10)) + " inch ") + dogDescript()), false);
if (dogCocks > 1){
outputMainText("s pulse and dribble precum constantly, always ready to cum. ", false);
} else {
outputMainText(" pulses and dribbles precum constantly, always ready to cum. ", false);
};
};
if (dogCocks == 1){
outputMainText((("When fully aroused, the knot can get as thick as " + (int(((baseCockThickness * dogAffinity) * 10)) / 10)) + " inches across."), false);
};
if (dogCocks > 1){
outputMainText((("When fully aroused, your knots can get as thick as " + (int(((baseCockThickness * dogAffinity) * 10)) / 10)) + " inches."), false);
};
};
outputMainText("\r\r", false);
};
if (vaginas > 0){
if (vaginas == 1){
outputMainText((((("You have a " + vaginaDescript()) + ", with a ") + (int((clitLength * 10)) / 10)) + " inch clit. "), false);
};
if (vaginas > 1){
outputMainText((((((("You have " + vaginas) + " ") + vaginaDescript()) + "s, with ") + (int((clitLength * 10)) / 10)) + " inch clits each. "), false);
};
if ((((lib < 50)) && ((lust < 50)))){
if ((((vaginalWetness >= 2)) && ((vaginalWetness < 4)))){
outputMainText("Moisture gleams in ", false);
};
if (vaginalWetness >= 4){
outputMainText("Occasional beads of ", false);
outputMainText("lubricant drip from ", false);
};
if (vaginalWetness >= 2){
if (vaginalLooseness < 2){
outputMainText((("your " + vaginaDescript()) + ". "), false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText((("your " + vaginaDescript()) + ", it's lips slightly parted. "), false);
};
if (vaginalLooseness >= 4){
outputMainText((("the gaing hole that is your " + vaginaDescript()) + ". "), false);
};
};
};
if ((((((lib >= 50)) || ((lust >= 50)))) && ((((lib < 80)) && ((lust < 80)))))){
if (vaginalWetness < 2){
outputMainText("Moisture gleams in ", false);
};
if ((((vaginalWetness >= 2)) && ((vaginalWetness < 4)))){
outputMainText("Occasional beads of ", false);
outputMainText("lubricant drip from ", false);
};
if (vaginalWetness >= 4){
outputMainText("Thin streams of ", false);
outputMainText("lubricant occasionally dribble from ", false);
};
if (vaginalLooseness < 2){
outputMainText((("your " + vaginaDescript()) + ". "), false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText((("your " + vaginaDescript()) + ", it's lips slightly parted. "), false);
};
if (vaginalLooseness >= 4){
outputMainText((("the gaing hole that is your " + vaginaDescript()) + ". "), false);
};
};
if ((((lib > 80)) || ((lust > 80)))){
if (vaginalWetness < 2){
outputMainText("Occasional beads of ", false);
if (lactationMultiplier > 0){
outputMainText("milky ", false);
};
outputMainText("lubricant drip from ", false);
};
if ((((vaginalWetness >= 2)) && ((vaginalWetness < 4)))){
outputMainText("Thin streams of ", false);
if (lactationMultiplier > 0){
outputMainText("milky ", false);
};
outputMainText("lubricant occasionally dribble from ", false);
};
if (vaginalWetness >= 4){
outputMainText("Thick streams of ", false);
if (lactationMultiplier > 0){
outputMainText("milky ", false);
};
outputMainText("lubricant drool constantly from ", false);
};
if (vaginalLooseness < 2){
outputMainText((("your " + vaginaDescript()) + ". "), false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText((("your " + vaginaDescript()) + ", it's lips slightly parted. "), false);
};
if (vaginalLooseness >= 4){
outputMainText((("the gaing hole that is your " + vaginaDescript()) + ". "), false);
};
};
outputMainText("\r\r", false);
};
if (horseTail){
outputMainText((("You have a long shiny " + hair) + " horsetail that nearly touches the ground."), false);
};
if (demonTail){
outputMainText("You have long sinuous demon-tail, ending in a bulbous little spade.", false);
};
if (dogTail){
outputMainText("You have a shaggy dog-tail that flicks back and forth when you are happy.", false);
};
if (gems > 1){
outputMainText((("\r<b>You have " + gems) + " shining gems, collected in your travels."), false);
};
if (gems == 1){
outputMainText((("\r<b>You have " + gems) + " shining gem, collected in your travels."), false);
};
}
public function titurbate():void{
var _local1:Number = (Math.round(((nippleLength + (baseCockLength / 2)) * 100)) / 100);
var _local2:String = nippleCockDescript(_local1);
if (nippleCocks){
outputMainText((("You eagerly grab a " + _local2) + ", throbbing dicknipple in each hand. "), false);
if (_local1 < 4){
outputMainText("You alternate between tugging on the short, fat little cocks protruding from each breast, and rubbing the swollen purple heads that top them. ", false);
};
if ((((_local1 >= 4)) && ((_local1 < 12)))){
outputMainText("You begin to quickly stroke your hands up and down each of the fat cocks crowning your breasts, groaning with pleasure. ", false);
};
if (_local1 >= 12){
outputMainText("You languidly stroke the long, thick shafts that protrude from your breasts where your nipples should be. Their tips wobble erotically with each stroke, and you gasp with pleasure each time they rub against each other. ", false);
};
if (breastRows > 1){
outputMainText((("You breifly wish for " + int((breastTotal - 2))) + " extra hands as your extra tit-cocks swing back and forth, unattended. Undaunted, you hunch over, attempting to squish them all as close together as possible. "), false);
outputMainText((((("You nearly black out from the sensations as you mash your " + (breastTotal * nipplesPerBreast)) + " ") + _local2) + " dicknipples into a giant gooey tangle of cocks and tits. "), false);
};
if ((((_local1 >= 6)) && ((breastRating() > 2)))){
if ((((breastRows == 1)) && ((nipplesPerBreast == 1)))){
outputMainText("Not satisfied with just your hands, you turn your swollen nipplecocks upwards and begin to lick and suck on each one in turn, drooling a mixture of precum", false);
};
if ((((breastRows > 1)) || ((nipplesPerBreast > 1)))){
outputMainText("Realizing you have more than just your hands, you jam two of your throbbing nipplecocks into your greedy mouth, drooling a mixture of precum", false);
};
if (lactationMultiplier > 0){
outputMainText(", milk,", false);
};
outputMainText(" and spit all over your breasts ", false);
if ((((breastRows > 1)) || ((nipplesPerBreast > 1)))){
outputMainText(", while using your hands to stroke and fondle your remaining nippledicks. ", false);
} else {
outputMainText(". ", false);
};
};
if ((((lactationMultiplier > 0)) && ((lactationMultiplier < 2)))){
outputMainText("Your body is splattered with a slimy mixture of milk and cum that drips constantly from each engorged phallus. ", false);
};
if ((((lactationMultiplier >= 2)) && ((lactationMultiplier < 3)))){
outputMainText("Your body is coated with a slimy mixture of milk and cum that drools constantly from each engorged phallus. ", false);
};
if (lactationMultiplier >= 3){
outputMainText("Your body is drenched in a slimy mixture of milk and cum that spurts constantly from each engorged phallus. ", false);
};
};
if (nipplesFuckable){
if (lib < 45){
outputMainText("With some trepidation, you gently insert a finger into ", false);
};
if ((((lib >= 45)) && ((lib < 70)))){
outputMainText("Slowly, you slide a finger into ", false);
};
if (lib >= 70){
outputMainText("Without hesitation, you plunge a finger into ", false);
};
if (nipplesPerBreast == 1){
if (vaginalLooseness < 2){
outputMainText("the small opening at the tip of one of your strangely swollen nipples. Moaning loudly, you quickly repeat the gesture on ", false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText("the puckered opening on the end of one of your hugely swollen nipples. Moaning loudly, you quickly repeat the gesture on ", false);
};
if (vaginalLooseness >= 4){
outputMainText("the engorged, cunt-like opening that gapes where one of your nipples should be. Moaning loudly, you quickly repeat the gesture on ", false);
};
if (breastRows > 1){
outputMainText((("another of your " + int((breastTotal - 1))) + " breasts. "), false);
};
if (breastRows == 1){
outputMainText("your other breast. ", false);
};
};
if (nipplesPerBreast > 1){
if (vaginalLooseness < 2){
outputMainText((("one of the small openings that tip each of your " + (breastTotal * nipplesPerBreast)) + " strangely swollen nipples. Moaning loudly, you quickly repeat the gesture on "), false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText((("one of the puckered openings that tip each of your " + (breastTotal * nipplesPerBreast)) + " bizarrely engorged nipples. Moaning loudly, you quickly repeat the gesture on "), false);
};
if (vaginalLooseness >= 4){
outputMainText((("one of the " + nipplesPerBreast) + " cunt-like openings that gape open on one of your breasts. Moaning loudly, you quickly repeat the gesture on "), false);
};
if (breastRows > 1){
outputMainText((("another of your " + breastTotal) + " breasts. "), false);
};
if (breastRows == 1){
outputMainText("your other breast.", false);
};
};
if (vaginalWetness < 4){
outputMainText("Squelching noises fill the air as you ", false);
};
if (vaginalWetness >= 4){
outputMainText("The air is filled with spurts of ", false);
if (lactationMultiplier > 0){
outputMainText("milky ", false);
};
outputMainText("pussy-lube as you ", false);
};
if (lib < 45){
outputMainText("carefully work your fingers in and out of your ", false);
};
if ((((lib >= 45)) && ((lib < 70)))){
outputMainText("urgently thrust your fingers into your ", false);
};
if (lib >= 70){
outputMainText("violently finger-fuck your ", false);
};
if (vaginalLooseness < 2){
outputMainText("painfully stretched nipples. ", false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText("freakishly swollen nipples. ", false);
};
if (vaginalLooseness >= 4){
outputMainText("huge, bloated cunt-nipples. ", false);
};
if ((((((breastTotal == 2)) && ((nipplesPerBreast <= 4)))) && ((nipplesPerBreast > 1)))){
outputMainText((("Not content to pleasure only two of your unnatural teats, you manage to get a finger into each of your " + (breastTotal * nipplesPerBreast)) + " orifices and begin pushing them in and out with gusto."), false);
if (vaginalLooseness > 2){
outputMainText(("Dissatisfied with only a single finger in each hole, you select two of your " + (breastTotal * nipplesPerBreast)), false);
if (vaginalWetness < 2){
outputMainText(" nipples, ", false);
};
if ((((vaginalWetness >= 2)) && ((vaginalWetness < 4)))){
outputMainText("dripping orifices, ", false);
};
if (vaginalWetness >= 4){
outputMainText("drooling holes, ", false);
};
outputMainText("and jam two fingers into each, ", false);
if ((((vaginalLooseness > 2)) && ((vaginalLooseness < 5)))){
outputMainText("relishing the stretched feeling in each teat. ", false);
};
if (vaginalLooseness > 5){
outputMainText("Still not satisfied, you insert another finger into each teat, and then another. You nearly pass out as, with a splash of ", false);
if (lactationMultiplier > 0){
outputMainText("milky ", false);
};
outputMainText("nectar and scream of pleasure, you shove your entire hand inside one of your freakishly distended nipples. ", false);
};
};
if ((((cockTotal > 0)) && ((((baseCockLength >= 20)) || (((baseCockLength * horseAffinity) >= 20)))))){
outputMainText((("Panting with lust, you eye your " + allCocksDescript()) + " with anticipation. "), false);
};
};
if ((((breastTotal > 2)) || ((nipplesPerBreast > 4)))){
outputMainText((("Mad with lust, you franticly move your hands from one breast to another, futilely attempting to pleasure all " + (breastTotal * nipplesPerBreast)) + " of your needy orifices. Unfortunately, you just dont have enough hands or fingers to get them all at once. You decide to focus your attention on just two for the moment"), false);
if ((((cockTotal > 0)) && ((((baseCockLength >= 20)) || (((baseCockLength * horseAffinity) >= 20)))))){
outputMainText(((", but eye your " + allCocksDescript()) + " with anticipation"), false);
};
outputMainText(". ", false);
};
if ((((nipplesPerBreast > 4)) || ((nipplesPerBreast == 1)))){
if (vaginalLooseness > 2){
outputMainText("Panting with lust, you shove another finger into each ", false);
if (vaginalWetness < 2){
outputMainText("nipple, ", false);
};
if ((((vaginalWetness >= 2)) && ((vaginalWetness < 4)))){
outputMainText("dripping orifice, ", false);
};
if (vaginalWetness >= 4){
outputMainText("drooling hole, ", false);
};
if ((((vaginalLooseness > 2)) && ((vaginalLooseness < 5)))){
outputMainText("relishing the bizzare sensations. ", false);
};
if (vaginalLooseness >= 5){
outputMainText("and then another, and another. You nearly pass out as, with a splash of ", false);
if (lactationMultiplier > 0){
outputMainText("milky ", false);
};
outputMainText("nectar and scream of pleasure, you shove your entire hand inside one of your freakishly distended nipples. ", false);
};
};
};
};
}
public function breastRating():Number{
if (breastCupSize == "N/A"){
return (0);
};
if (breastCupSize == "A"){
return (1);
};
if (breastCupSize == "B"){
return (2);
};
if (breastCupSize == "C"){
return (3);
};
if (breastCupSize == "D"){
return (4);
};
if (breastCupSize == "DD"){
return (5);
};
if (breastCupSize == "E"){
return (6);
};
if (breastCupSize == "F"){
return (7);
};
if (breastCupSize == "G"){
return (8);
};
if (breastCupSize == "H"){
return (9);
};
if (breastCupSize == "HH"){
return (10);
};
trace(("breastRating() ERROR. BreastCupSize = " + breastCupSize));
return (0);
}
public function hummanus():void{
var _local2:int;
var _local1:int;
outputMainText("You crack open the small clay jar to reveal a lightly colored paste that smells surprisingly delicious. You begin eating it with your fingers, wishing all the while for some crackers...", true);
if (horseAffinity > 1){
horseAffinity = (horseAffinity - 0.5);
if (horseAffinity < 1){
horseAffinity = 1;
outputMainText("\r\rYou feel slightly weaker as some of your horse like vitality seeps away. On the upside, the fog of animal lust that has been clouding your thoughts lets up a bit.", false);
stats(-2, -2, 0, 2, -10, 0, 0, 0);
_local1++;
};
if (horseCocks > 0){
if (horseAffinity == 1){
if (horseCocks == 1){
outputMainText("\r\rYour horse cock shudders and begins ", false);
} else {
outputMainText("\r\rYour horse cocks shudder and begin ", false);
};
outputMainText("to shrink as the skin returns to a more natural color.\rYour horse cock", false);
if (horseCocks > 1){
outputMainText("s have ", false);
} else {
outputMainText(" has ", false);
};
outputMainText("turned human!", false);
normalCocks = (normalCocks + horseCocks);
horseCocks = 0;
_local1++;
} else {
if (horseCocks == 1){
outputMainText("\r\rYour horse cock shudders and shrinks ", false);
} else {
outputMainText("\r\rYour horse cocks shudder and shrink ", false);
};
outputMainText("a bit.", false);
};
};
if ((((horseAffinity == 1)) && (horseTail))){
outputMainText("\r\rYou feel a weird sensation in your rear, and when you look behind you, you see that your tail has dissapeared!", false);
horseTail = false;
_local1++;
};
};
if (dogAffinity > 1){
dogAffinity = (dogAffinity - 0.5);
if (dogAffinity < 1){
dogAffinity = 1;
outputMainText("\r\rYou feel slightly weaker as some of your canine strength and speed seeps away. On the upside, your thoughts are clearer, and your desire to chase things seems significantly reduced.", false);
stats(-2, 0, -2, 2, 0, 0, 0, 0);
_local1++;
};
if (dogCocks > 0){
if (dogAffinity == 1){
if (dogCocks == 1){
outputMainText("\r\rYour dog cock shudders and begins ", false);
} else {
outputMainText("\r\rYour dog cocks shudder and begin ", false);
};
outputMainText("to shrink as the skin returns to a more natural color.\rYour dog cock", false);
if (horseCocks > 1){
outputMainText("s have ", false);
} else {
outputMainText(" has ", false);
};
outputMainText("turned human!", false);
normalCocks = (normalCocks + dogCocks);
dogCocks = 0;
_local1++;
} else {
if (horseCocks == 1){
outputMainText("\r\rYour dog cock shudders and shrinks ", false);
} else {
outputMainText("\r\rYour dog cocks shudder and shrink ", false);
};
outputMainText("a bit.", false);
};
};
if ((((dogAffinity == 1)) && (dogTail))){
outputMainText("\r\rYou feel a weird sensation in your rear, and when you look behind you, you see that your tail has dissapeared!", false);
dogTail = false;
_local1++;
};
if ((((dogAffinity == 1)) && (furry))){
outputMainText("\r\rYour skin tingles all over. You briefly feel like your whole body is under intense pressure as your fur dissapears!.", false);
furry = false;
_local1++;
};
if ((((dogAffinity == 1)) && (dogFace))){
outputMainText("\r\rYou howl as pain explodes through your face. It feels like you just got kicked by a horse! As the pain fades, you realize that your face looks completely human!", false);
dogFace = false;
_local1++;
};
};
if (cockTotal > 1){
killCocks(Math.ceil((cockTotal / 2)));
_local1++;
};
if ((((baseCockThickness > 1.8)) && ((cockTotal > 0)))){
if (cockTotal == 1){
outputMainText("\r\rA tremor passes down your cock as it thins down towards something more human. ", false);
} else {
outputMainText((("\r\rA tremor passes down your " + allCocksDescript()) + " as they thin down towards something more human. "), false);
};
baseCockThickness = (Math.round(((baseCockThickness / 2) * 100)) / 100);
_local1++;
};
if (baseCockLength > 8){
lengthChange(-((baseCockLength / 2)));
_local1++;
};
if (vaginas > 1){
_local2 = Math.ceil((vaginas / 2));
outputMainText((("\r\rYou feel a strange tightening in your crotch as " + _local2) + " of your vaginas close up completely, leaving smooth skin behind."), false);
vaginas = (vaginas - _local2);
if ((((cockTotal == 0)) && ((vaginas == 0)))){
gender = 0;
};
if ((((cockTotal > 0)) && ((vaginas == 0)))){
gender = 1;
};
if ((((cockTotal == 0)) && ((vaginas > 0)))){
gender = 2;
};
if ((((cockTotal > 0)) && ((vaginas > 0)))){
gender = 3;
};
_local1++;
};
if (vaginalWetness > 2){
outputMainText("\r\rYou feel a weird prickling sensation in your crotch, and you get the sense that your not as wet down there as you used to be.", false);
vaginalWetness = (vaginalWetness - Math.ceil((vaginalWetness / 2)));
_local1++;
};
if (vaginalLooseness > 2){
outputMainText("\r\rYou feel the muscles in your crotch clench tightly, and it suddenly doesn't feel quite so drafty down there anymore.", false);
vaginalLooseness = (vaginalLooseness - Math.ceil((vaginalLooseness / 2)));
_local1++;
};
if (clitLength > 0.5){
outputMainText("\r\rYour feel a pinching sensation in your clit", false);
if (vaginas > 1){
outputMainText("s as they shrink.", false);
} else {
outputMainText(" as it shrinks.", false);
};
clitLength = (Math.round(((clitLength / 2) * 100)) / 100);
_local1++;
};
if (nippleCocks){
outputMainText("\r\rYour nipplecocks shrink and shrink and shrink...becoming normal nipples.", false);
nippleCocks = false;
_local1++;
};
if (nipplesFuckable){
outputMainText("\r\rYou feel a strange tightening in your nipples. You don't think you'll be able to fit anything inside them anymore.", false);
nipplesFuckable = false;
_local1++;
};
if (breastRows > 1){
outputMainText((("\r\rYou inhale sharply as one of your " + breastRows) + " rows of breasts suddenly retracts into your torso, leaving smooth skin behind."), false);
breastRows--;
breastTotal = (breastRows * breastsPerRow);
_local1++;
};
if (nipplesPerBreast > 1){
outputMainText("\r\rYou feel a tickling sensation on your breasts as some of your nipples dissapear!", false);
nipplesPerBreast = (nipplesPerBreast - Math.ceil((nipplesPerBreast / 2)));
_local1++;
};
if ((((breastRating() > 5)) || ((gender == 1)))){
breastChange((int((Math.random() * -3)) - 1), true);
_local1++;
};
if (nippleLength > 0.5){
outputMainText("\r\rYour nipples tingle strangely as they shrink to a more human size.", false);
nippleLength = (Math.round(((nippleLength / 2) * 100)) / 100);
_local1++;
};
if (horns > 0){
outputMainText("\r\rYour scalp itches as some of your horns dissapear.", false);
horns = (horns - Math.ceil((horns / 2)));
_local1++;
};
if (((demonTail) && ((horns > 0)))){
outputMainText("\r\rYou feel a weird sensation in your rear, and when you look behind you, you see that your tail has dissapeared!", false);
demonTail = false;
_local1++;
};
if (_local1 > 10){
outputMainText("\r\rAfter you recover from the blizzard of changes, you look yourself over, and ", false);
} else {
if (_local1 > 0){
outputMainText("\r\rAs your body finishes changing, you look yourself over, and ", false);
} else {
outputMainText("\r\rWell, that was a tasty snack!", false);
};
};
if (_local1 > 0){
if (cor <= 25){
outputMainText("are overjoyed with the results. ", false);
};
if ((((cor > 25)) && ((cor < 75)))){
outputMainText("suppose that it's for the best, though you can't help but feel like your old body was more fun...", false);
};
if (cor >= 75){
outputMainText("are shocked and dissapointed at just how <i>boring</i> your body has become.", false);
};
};
if (!debug){
clearItemSlot();
};
}
public function ceruleanPotion():void{
outputMainText("The liquid tastes rather bland and goes down easily. You do not notice any real effects. Did the merchant con you?", true);
merchant = 1;
if (!debug){
clearItemSlot();
};
}
public function mimicTentacleStart(_arg1:int=0):void{
if (_arg1 == 1){
outputMainText("The wind howls through the tall pillars of rock that thrust out of the sand on both sides ", true);
} else {
if (_arg1 == 2){
outputMainText("Thunder rumbles overhead ", true);
} else {
outputMainText("The peaceful sounds of nature are everywhere ", true);
};
};
outputMainText("as you explore deeper into this strange land. The relative monotony of your journey is interrupted as you see ", false);
mimicAppearance = (Math.random() * 4);
if (mimicAppearance == 1){
outputMainText("a huge block of grey stone covered in bizarre runes and symbols ", false);
} else {
if (mimicAppearance == 2){
outputMainText("what can only be described as an enormous, disembodied… boob ", false);
} else {
if (mimicAppearance == 3){
outputMainText("what is unmistakably an enormous, flaccid penis, complete with gigantic balls, ", false);
} else {
outputMainText("a large wooden box with a hinged lid and tarnished brass fittings ", false);
};
};
};
outputMainText("nestled in a shady alcove.\r\r", false);
if (inte <= 5){
outputMainText("You are entranced by the sight of ", false);
if (mimicAppearance == 1){
outputMainText("a magic rock", false);
} else {
if (mimicAppearance == 2){
outputMainText("a giant boob", false);
} else {
if (mimicAppearance == 3){
outputMainText("a huge penis", false);
} else {
outputMainText("what is clearly a treasure chest", false);
};
};
};
outputMainText(". Ignoring the sad remnants of your better judgment, you walk over. ", false);
doNext(5013);
} else {
if (mimicAppearance == 1){
outputMainText("While a magic rock ", false);
} else {
if (mimicAppearance == 2){
outputMainText("While a giant boob ", false);
} else {
if (mimicAppearance == 3){
outputMainText("While a huge penis ", false);
} else {
outputMainText("While what is clearly a treasure chest ", false);
};
};
};
outputMainText("certainly warrants further investigation, you aren’t absolutely sure that this is the best idea. Do you choose to investigate? ", false);
doYesNo(5013, 3);
};
}
public function exploreDesert():void{
var _local1:Number = 0;
_local1 = int((Math.random() * 3));
if ((((_local1 == 1)) && ((rando(3) == 0)))){
_local1 = 2;
};
if (_local1 == 0){
outputMainText("You are attacked by an imp!", true);
startCombat(1);
};
if (_local1 == 1){
outputMainText("As you travel, you see another person on the road. He is tethered to a small cart that is overloaded with a hodgepodge of items. He is dressed in a very garish manner, having a broad, multicolored hat, brocaded coat and large, striped pantaloons. His appearance is almost comical and contrasts with is severe and hawkish facial features. The man sees you, smiles and stops his cart.\r", true);
outputMainText("'<i>Greetings, traveler! My name is Giacomo. I am, as you see, a humble purveyor of items, curios and other accoutrements. While I am not in a position to show you my full wares as my shop is packed on this push-cart, I do offer some small trinkets for travelers I meet.</i>'\r\r", false);
outputMainText("The merchant looks at you sharply and cracks a wide, toothy smile you find…unnerving. The merchant works his way around a sack he has around his back. He swings the sack from his back to have better access to its contents. Inquisitively, the merchant turns back to you.\r", false);
outputMainText("'<i>So stranger, be you interested in some drafts to aid you in your travels, some quick pamphlets to warn you of dangers on journeys or…</i>'\r\r", false);
outputMainText("Giacomo pauses and turns his head in both directions in a mocking gesture of paranoid observation. His little bit of theatrics does make you wonder what he is about to offer.\r", false);
outputMainText("'<i>…maybe you would be interested in some items that enhance the pleasures of the flesh? Hmmm?</i>'\r\r", false);
outputMainText("Giacomo's grin is nothing short of creepy as he offers his wares to you. What are you interested in?", false);
choices("Potions", 20, "Books", 29, "Erotica", 22, "Leave", 3);
};
if (_local1 == 2){
outputMainText("A strange woman seems to appear from the dunes themselves. She identifies herself as a Sand-Witch, and politely asks if she can cast a spell on you.", true);
doYesNo(50, 51);
};
}
public function exploreForest():void{
outputMainText("", true);
var _local1:Number = 0;
_local1 = rando(5);
if ((((_local1 == 4)) && ((((gender == 2)) || ((gender == 0)))))){
_local1 = 2;
};
if ((((((_local1 == 0)) && (ownsDangerousPlants))) && (((rando(100) * (inte / 100)) >= 8)))){
_local1 = (rando(2) + 1);
outputMainText("Using the knowledge from \"Dangerous Plants\", you ascertain that this section of forest is near the lair of a tentacle beast. You quietly sneak to a safer section of the forest...\r\r", false);
};
if (_local1 == 0){
outputMainText("You see a massive, shambling form emerge from the underbrush. While appearing as a large shrub, it shifts its bulbous mass and reveals a collection of thorny tendrils and cephalopodan limbs. Sensing your presence, it lumbers at you, full speed, tentacles outstretched.\r\r", false);
if (((((Math.random() * 100) > 50)) && ((cor < 51)))){
if ((((cor > 50)) && ((cor <= 75)))){
outputMainText("You debate the merits of running from such a creature, and realize it's now too late to escape. ", false);
};
if (cor > 75){
outputMainText("You smile and stride forward, welcoming the pleasure you expect from such a monster. ", false);
};
if ((((horseCocks > 0)) && ((rando(100) < 50)))){
outputMainText("It grabs you before you can get away!\r\rWhile you attempt to resist the abomination, its raw muscle mass is too much. It pins you to the ground easily. You immediately feel a sharp, horrible pain at the base of your cock. You look down to se the end of a thorny tendril impaled in your pelvic region. Fiery pain courses through your veins as you feel the creature inject you with some sort of liquid. As the pain sears through you, your monstrous equine member immediately becomes fully erect and pre-cum flows freely from your flare.\r\r", false);
outputMainText("You see a large hollow tentacle attempt to descend upon your stiff cock. Much to your surprise and the creature's frustration, It barely opens wide enough to cover the tip of your impressive member. The creature mindlessly continues attempting to entrap your penis. It only succeeds in sending pangs of pleasure down your shaft as the thumping on the end of your cock shoots down to your roots.\r\r", false);
outputMainText("Amused as well as aroused, you choose to lull the creature into reticence as it keeps trying to suck you horsecock in. Each wave of pleasure makes your prick bob about and you feel you massive balls rise and drop in unison to the muscular contractions pumping freshly made cum into position for release.\r\r", false);
outputMainText("You bask in the glow of pleasure as the creature still fumbles around your dong, not realizing that you are just too big. An evil thought crosses your mind. Since this thing wants you bad enough, why not oblige it. Not expecting your increased strength due to your equine features, you wrench yourself free of the creature's restraints and summarily grasp the tentacle trying to cover your cock. With a great buck and heave, you force your dick into the tentacle, stretching it immensely. The creature lets out an inhuman howl as it reacts painfully to your newfound zeal.\r\r", false);
outputMainText("You begin pumping and thrusting like mad, working yourself to an orgasm. The creature tries to pull away, but finds that it is the one that cannot escape. Feeling your balls rise up, you thrust as deep as you can go before you begin hosing a massive, steady stream of cum into the creature. For several minutes, you continuously empty yourself into the beast as it flops about, trying to escape. After a few minutes, the creature struggles more and you feel the wet warmth of your own cum around your tip. Cum begins leaking liberally from the tentacle. Your balls have overfilled the creature!\r\r", false);
outputMainText("One last jerk from the creature breaks your hold and it pulls itself away from your member, excess cum spilling everywhere and flying through the air as it flops about. Clearly overwhelmed, the beast lumbers clumsily back into the bush. You laugh to yourself as you made the creature taste its own proverbial medicine as its efforts to overwhelm you completely backfired.", false);
stats(0.5, 0, -0.5, -1, 5, 1, -100, 1);
doNext(3);
return;
};
if (gender == 1){
stats(-1, 0, 0, -1, 5, 2, 25, 1);
outputMainText("It grabs you before you can get away!\r\rWhile you attempt to resist the abomination, its raw muscle mass is too much. It pins you to the ground easily. You immediately feel a sharp, horrible pain ", false);
if (cockTotal > 1){
outputMainText((("at the base of your " + allCocksDescript()) + "."), false);
};
outputMainText(" You look down to see the end of a thorny tendril impaled in your pelvic region. Fiery pain courses through your veins as you feel the creature inject you with some sort of liquid. As the pain sears through you, ", false);
if (cockTotal == 1){
outputMainText("your member immediately becomes fully erect and pre-cum leaks liberally from your tip.", false);
} else {
outputMainText("your members immediately become fully erect, precum drizzling from the tips.", false);
};
outputMainText("\r\rRealizing what is about to happen, you try to struggle. The beast responds by slamming you to the ground a few times, stunning you. ", false);
if (cockTotal == 1){
outputMainText("In your daze you see a monstrous, hollow tentacle poised over you furious cock. You scream in shock and protest, but your cries fall upon deaf ears. The tentacle descends upon your penis, now begging for release, and clamps down upon you pubic mound, fully encapsulating your member.", false);
} else {
outputMainText((((("In your daze you see " + cockTotal) + " monstrous, hollow tentacles poised over your furious cocks. You scream in shock and protest, but your cries fall upon deaf ears. The tentacles descend upon your ") + allCocksDescript()) + ", all begging for release, and clamps down upon your pubic mound, fully encapsulating your dicks."), false);
};
};
if (gender == 2){
stats(0, 0, -1, -1, 5, 3, 20, 1);
outputMainText("It grabs you before you can get away!\r\rWhile you struggle valiantly, the beast's raw might is more than a match for you. Tentacles burst from the mass and bind your arms, legs and midriff. You struggle to break free, but the creature only constricts, ensuring your immobility. A quick flex of the tentacles securing your legs leaves you spread eagle before the maw of the horror. Fearing for your life, you scream and struggle for help, only to have the apathetic sounds of nature respond.", false);
outputMainText((("\r\r" + (breastTotal + 1)) + " thorny tendrils appear and pierce your breasts and groin. A sharp pain and a burning sensation tear through you, overriding the previous wave of pleasure. You feel fluids being injected into you and a distinctive, agonizing misery flows into your veins. You feel your breasts and "), false);
if (vaginas == 1){
outputMainText("clit ", false);
} else {
outputMainText("clits ", false);
};
outputMainText("heat up and begin to swell. The pressure in your breasts is maddening and to your shock, you feel yourself leaking milk.", false);
};
if (gender == 3){
stats(0, 0, -1, -1, 5, 4, 35, 2);
outputMainText("While you attempt to resist the abomination, its raw muscle mass is too much. It pins you to the ground easily. You immediately feel a sharp, horrible pain at the base of your ", false);
if (cockTotal > 1){
outputMainText("cocks", false);
} else {
outputMainText(cockDescript(), false);
};
outputMainText(". You look down to se the end of a thorny tendril impaled in your pelvic region. Fiery pain courses through your veins as you feel the creature inject you with some sort of liquid. As the pain sears through you, your ", false);
if (cockTotal > 1){
outputMainText((allCocksDescript() + " immediately become fully erect and leak pre-cum liberally from their tips. "), false);
} else {
outputMainText("member immediately becomes fully erect and pre-cum leaks liberally from your tip. ", false);
};
outputMainText(((" " + (breastTotal * nipplesPerBreast)) + " thorny tentacles pierce your nipples, and you feel as if someone shot acid into your tits, which immediately begin to swell."), false);
breastChange(1, false);
outputMainText("\r\rRealizing what is about to happen, you try to struggle. The beast responds by slamming you to the ground a few times, stunning you. In your daze you see a monstrous, hollow tentacle poised over your ", false);
if (cockTotal > 1){
outputMainText("furious cocks. ", false);
} else {
outputMainText("furious cock. ", false);
};
outputMainText("You scream in shock and protest, but your cries fall upon deaf ears. The tentacle descends upon your ", false);
if (cockTotal > 1){
outputMainText((allCocksDescript() + ", now begging for release, and clamps down around your pubic mound, fully encapsulating your members. "), false);
} else {
outputMainText((cockDescript() + ", now begging for release, and clamps down upon you pubic mound, fully encapsulating your member."), false);
};
};
if (gender == 0){
outputMainText("While you attempt to resist the abomination, its raw muscle mass is too much. It pins you to the ground easily. You feel slimy tentacles run up and down your groin as the creature searches for whatever gonads it expected you to have. When it realizes that you have neither penis nor vagina, it smartly casts you to the ground in apparent disgust.\r\r\"<i>WHAT THE FUCK IS THIS SHIT?!!</i>\" The creature speaks in an unnervingly human voice. The voice sounds almost too human.\r\r", false);
outputMainText("Completely confused, all you can do is sit there in shock.\r\r\"<i>here are your naughty bits, goddammit!</i>\", the creature bellows. \"<i>Us tentacle creatures need to FEED!</i>\"\r\r", false);
outputMainText("You sheepishly state that you are gender neutral and have no genitalia.\r\r\"<i>You gotta be shitting me!!</i>\", the monster bellows in contempt. \"<i>Of all the motherfuckers I ambush, it has to be the ONE bastard I can't feed from! What am I supposed to do now, asshole?! I gotta eat!</i>\"", false);
outputMainText("At a loss for words, you meekly offer the creature some of your food you have packed for your journey. The creature slaps it out of your hand, almost breaking your wrist.\r\r\"<i>I can't eat that shit!</i>\", roars the abomination. \"<i>Do I look like I have a fucking mouth to chew that with?! NOOOOOO! I feed off futas and wayward women! Futa cum and tit milk! YOU have NEITHER!!!</i>\"", false);
outputMainText("The beast slaps you squarely on the ass as if to push you along. \"<i>Get the fuck out of here!</i>\", it screams. \"<i>Get lost so I can hunt me a REAL meal!!!</i>\"", false);
outputMainText("You walk away from the creature, which hides back in the brush. After you trek a bit, you wonder if what happened really DID happen...", false);
stats(0, 0, 0, 0, 0, 0, -5, 0);
doNext(3);
return;
};
doNext(100);
} else {
outputMainText("Luckily you manage to outpace the beast, and escape from it's clutches!", false);
doNext(3);
};
};
if (_local1 == 1){
doNext(3);
outputMainText("A fairy slightly taller and thicker than your middle finger flits about the air. Her flat chest and girlish bob of hair make her look quite cute, but the solid black stockings and leather straps covering her chest show her slutty nature. Her wings are a light red, the colour of aroused genitals.\r\r", false);
if (cockTotal > 0){
outputMainText("She seems to notice you getting hard at the sight of her and looks down. \"<i>Ew, man parts!</i>\" the fairy exclaims, flying away like a frightened bird.", false);
if (lust >= 90){
outputMainText("\r\rYou groan miserably with frustration. Desperate for stimulation, you sink to your knees and start jacking off, the fairy's visage still fresh in your mind. You catch a fleeting glimpse of yourself tightly gripping the fairy's legs in each of your fists, dragging her toward ", false);
if (cockTotal == 1){
outputMainText("your dick", false);
} else {
outputMainText("one of your dicks", false);
};
outputMainText(", too large for her tiny frame...the depraved image overwhelms your mind's eye and you find yourself shooting all over the ground furiously.", false);
stats(0, 0, 0, 0, 0, 0, -100, 0);
} else {
outputMainText("\r\rYou try in vain to jump and catch her, but she's too high above you and much too fast.", false);
};
return;
};
outputMainText("The fairy slows the beating of her wings and hovers towards you. You dismiss your fearful notions, certain a small fairy is quite harmless to you.\r\r", false);
if (nippleLength >= 1){
outputMainText("She looks you over, stopping at your upper torso and letting out a cry of glee. she lands on your chest, her exposed pussy coming to rest on your nipple. With one hand she grabs hold of you above her head and uses her other hand to guide the rapidly hardening nub between her legs. She sighs in delight as her tight confines squeeze your nipple hard, the feeling somewhere between pinching fingers and suckling lips. You gasp in delight yourself, and you notice she can exercise amazing control with her groin muscles as a rippling feeling courses through your nipple.\r\r", false);
outputMainText("Your nipple starts to get sloppy and wet as if someone's tongue were around it, but it's really the fairy's love juices dribbling down, some running down your breast and some down her legs. She starts thrusting against you, and you notice her clit getting hard and pushing into your soft flesh. With a free hand you grab the area around your nipple and squeeze it harder, forcing more into her.\r\r", false);
if (lactationMultiplier > 0){
outputMainText("A squirt of milk shoots inside her, making the fairy moan. She looks up at you with lusty, slitted eyes, squeezing her legs together to draw more from you.\r\r", false);
};
outputMainText("Eventually you both find a rhythm and soon she's moaning loudly. ", false);
if (vaginas == 1){
outputMainText((("With your other hand you start diddling your " + vaginaDescript()) + ", adding your own soft moans to hers. "), false);
};
if (vaginas > 1){
outputMainText((("With your other hand you start diddling your " + vaginaDescript()) + "s, adding your own soft moans to hers. "), false);
};
outputMainText("A few blissful moments later, she shudders and you feel her uncontrolled spasms around your nipple. ", false);
if (vaginas > 0){
outputMainText("You join her shortly after. ", false);
};
outputMainText("The fairy goes limp and spirals to the ground, crashing gently and still twitching in the afterglow. Stepping back carefully, you leave her.", false);
if (lactationMultiplier >= 1){
outputMainText("\r\rA copious gout of your milk escapes her rosy folds.", false);
};
stats(0, 0, 0, 0, -2, 0, -100, 0);
return;
};
if ((((((clitLength >= 1)) && ((clitLength <= 4.5)))) && ((vaginas > 0)))){
outputMainText("A smile crosses her face and she flutters down to your crotch. She starts by scissoring you despite the size difference, driving your clit into her despite it's erect state. Compared to her, it looks massive. She swings one leg over it and starts impaling herself on it. Your taut clitoris barely fits inside her, and the tight confines on your sensitive nub are enough to make you weak in the knees. Staggering to the ground, you grab hold of her frail body in your fist and thrust her roughly on your engorged button. She wails in both pain and pleasure, being crushed and stretched open at once. Her cries of pain combined with the intense stimulation on your most sensitive part bring you to a quick orgasm.\r\r", false);
if (vaginalWetness >= 4){
outputMainText("You drench the poor fairy completely in your female juices, soaking her hair and body. Overwhelmed and spent, you drop her to the ground and catch your breath. She licks up what's around her face, but is too weak to do anything else but lie in the dirt.\r\r", false);
} else {
outputMainText("Shuddering, you maintain your composure and keep going, trying to ride the high for another. Eventually you look down and you can see the fairy's eyes have glazed over and rolled to the back of her head. Her cunt has started clamping down on you a lot harder, evidence of her state of near-constant orgasm. The random clenching brings you off again very quickly and you have an intense orgasm, joining your fae cohort.\r\r", false);
};
outputMainText("Time skips a beat and you eventually come down, gently relaxing your grip and disengaging the worn out fairy from your softening female parts. The fairy regains consciousness slowly and thanks you before flying off.", false);
stats(0, 0, 0, 0, -2, 0, -100, 0);
return;
};
if (clitLength > 4.5){
outputMainText("The fairy flies close to your ear and speaks in a volume that would be a whisper from another human. \"You've got some sexy parts, girl, but you're too big for me. I hope you find someone to get you off so I can watch.\" Then she flies in front of you, cutely kisses the bridge of your nose, and flies off.", false);
stats(0, 0, 0, 0, 0, 0, 5, 0);
return;
};
outputMainText("The fairy flies close to your nipple and sucks it gingerly. You pant in pleasure as you feel it pucker tight in her mouth, tingling with her saliva. She lets it pop free, swollen with arousal. Her hand flicks it playfully, the sudden sensation fluttering through you as you close your eyes in pleasure. You recover, and find she has flown high into the trees, waving playfully as she escapes.\r\rYou frown and begin to dress yourself, flushing irritably as your nipples protrude further into your clothes than you remember.", false);
nippleLength = (nippleLength + 0.5);
stats(0, 0, 0, 0, 0, 1, 5, 0);
};
if (_local1 == 2){
doNext(3);
if (monk == 0){
if (cor < 25){
outputMainText("You enjoy a peaceful walk in the woods, it gives you time to think.", true);
stats(0, 1, 0, 1, 0, 0, 0, 0);
return;
};
monk = 1;
outputMainText("While marvelling at the strange trees and vegetation of the forest, the bushes ruffle ominously. A bush seems to explode into a flurry of swirling leaves and movement. Before you can react you feel your feet swept out from under you, and land hard on your back.\r\r", false);
outputMainText("The wizened visage of a white mouse gazes down on your prone form with a look of confusion.", false);
outputMainText("\r\r\"<i>I'm sorry, I sensed a great deal of corruption, and thought a demon or monster had come to my woods,</i>\" says the Mouse, \"<i>Oh where are my manners!</i>\"\r\rHe helps you to your feet and introduces himself as Jojo. Now that you have a good look at him, it is obvious this mouse is some kind of monk, dressed in robes, holy symbols, and draped with prayer beads.\r\rHe smiles knowingly, \"<i>Yes I am a monk, and yes this is a strange place for one such as I...this world was not always this way. Long ago this world was home to many villages, including my own. But then the demons came. I'm not sure if they were summoned, created, or simply a perversion of magic or breeding, but they came swarming out of the mountains to destroy everything in their path.</i>\"", false);
outputMainText("\r\rJojo sighs sadly, \"<i>Enough of my woes. You are very corrupted. If you cannot be sufficiently purified you WILL become one of them in time. Will you let me help you?", false);
choices("Accept", 52, "Rape Him", 53, "BWUH?", 0, "Decline", 3);
return;
};
if (monk == 1){
if (cor < 10){
outputMainText("You enjoy a peaceful walk in the woods, it gives you time to think.", true);
stats(0, 1, 0, 1, 0, 0, 0, 0);
return;
};
outputMainText("Jojo the monk appears before you, robes and soft white fur fluttering in the breeze. He asks, \"Are you ready for a meditation session?\"", false);
choices("Yes", 52, "No", 3, "BWUH", 0, "Rape Him", 53);
};
if (monk >= 2){
outputMainText("Jojo drops from the trees before you, ", false);
if (monk == 2){
outputMainText("his mousey visage twisted into a ferocious snarl. \"YOU!\" he screams, launching himself towards you, claws extended.", false);
};
if (monk == 3){
outputMainText("unsteady on his feet, but looking for a fight!", false);
};
if (monk == 4){
outputMainText("visibly tenting his robes, but intent on fighting you.", false);
};
if (monk == 5){
outputMainText("panting and nude, his fur rustling in the breeze, a twitching behemoth of a cock pulsing between his legs.", false);
};
startCombat(3);
};
};
if (_local1 == 3){
mimicTentacleStart(3);
};
if (_local1 == 4){
queenBee();
doNext(3);
};
}
public function growDemonCock(_arg1:Number):void{
if (cockTotal == 0){
baseCockLength = 5;
baseCockThickness = 0.75;
};
normalCocks = (normalCocks + _arg1);
cockTotal = (cockTotal + _arg1);
if (gender == 0){
gender = 1;
};
if (gender == 2){
gender = 3;
};
outputMainText("You shudder as a pressure builds in your crotch, peaking painfully as a large bulge begins to push out from your body. ", false);
if (_arg1 == 1){
outputMainText("The skin seems to fold back as a fully formed demon-cock bursts forth from your loins, drizzling hot cum everywhere as it orgasms. ", false);
} else {
outputMainText((("The skin bulges obscenely, darkening and splitting around " + _arg1) + " of your new, fat, bulging cocks. For an instant they turn a demonic purple and cum in thick spasms of scalding demon-cum. After, they return to a more humanoid coloration. "), false);
};
if (_arg1 > 4){
outputMainText("Your sensitive bundle of new cocks feels deliciously sensitive, and you cannot stop yourself from wrapping your hands around the slick demonic bundle and pleasuring them.\r\rNearly an hour later, you finally pull your slick body away from the puddle you left on the ground. When you look back, you notice it has already been devoured by the hungry earth.", false);
};
stats(0, 0, 0, 0, 3, 5, 10, 5);
lengthChange(_arg1);
}
public function stats(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number){
str = (str + _arg1);
tou = (tou + _arg2);
spe = (spe + _arg3);
inte = (inte + _arg4);
lib = (lib + _arg5);
sen = (sen + _arg6);
lust = (lust + _arg7);
cor = (cor + _arg8);
if (cor < 0){
cor = 0;
};
if (cor > 100){
cor = 100;
};
if (str > 100){
str = 100;
};
if (str < 1){
str = 1;
};
if (tou > 100){
tou = 100;
};
if (tou < 1){
tou = 1;
};
if (spe > 100){
spe = 100;
};
if (spe < 1){
spe = 1;
};
if (inte > 100){
inte = 100;
};
if (inte < 1){
inte = 1;
};
if (lib > 100){
lib = 100;
};
if (lib < 0){
lib = 0;
};
if (sen > 100){
sen = 100;
};
if (sen < 0){
sen = 0;
};
if (lust < (lib - int((cor / 2)))){
lust = (lib - int((cor / 2)));
if (lust < 0){
lust = 0;
};
if (_arg5 != 0){
if (_arg5 > 0){
_arg7 = 1;
};
} else {
_arg7 = 1;
};
};
if (lust > 100){
lust = 100;
};
if (_arg1 > 0){
strUp.visible = true;
strDown.visible = false;
};
if (_arg1 < 0){
strDown.visible = true;
strUp.visible = false;
};
if (_arg2 > 0){
touUp.visible = true;
touDown.visible = false;
};
if (_arg2 < 0){
touDown.visible = true;
touUp.visible = false;
};
if (_arg3 > 0){
speUp.visible = true;
speDown.visible = false;
};
if (_arg3 < 0){
speDown.visible = true;
speUp.visible = false;
};
if (_arg4 > 0){
inteUp.visible = true;
inteDown.visible = false;
};
if (_arg4 < 0){
inteDown.visible = true;
inteUp.visible = false;
};
if (_arg5 > 0){
libUp.visible = true;
libDown.visible = false;
};
if (_arg5 < 0){
libDown.visible = true;
libUp.visible = false;
};
if (_arg6 > 0){
senUp.visible = true;
senDown.visible = false;
};
if (_arg6 < 0){
senDown.visible = true;
senUp.visible = false;
};
if (_arg7 > 0){
lustUp.visible = true;
lustDown.visible = false;
};
if (_arg7 < 0){
lustDown.visible = true;
lustUp.visible = false;
};
if (_arg8 > 0){
corUp.visible = true;
corDown.visible = false;
};
if (_arg8 < 0){
corDown.visible = true;
corUp.visible = false;
};
statDisplay();
}
public function levelWindow(_arg1:Boolean):void{
levelUpWindow.visible = _arg1;
levelValuePane.visible = _arg1;
levelTouUp.visible = _arg1;
levelStrUp.visible = _arg1;
levelSpeUp.visible = _arg1;
levelTouDown.visible = _arg1;
levelStrDown.visible = _arg1;
levelSpeDown.visible = _arg1;
}
public function heightGen():void{
tallness = (65 + rando((8 * (3 - gender))));
if (tallness == 72){
tallness++;
};
trace((("Tallness generated value: " + tallness) + " inches"));
}
public function display():void{
var _local1:String;
var _local2:Number;
_local1 = "";
_local2 = (eHP / eMaxHP);
_local1 = (("(<b>" + String((int(((eHP * 1000) / eMaxHP)) / 10))) + "% HP</b>)");
if (grappling){
outputMainText("<b>You are grappling with:\r</b>", false);
};
outputMainText((eLong + "\r"), false);
if (_local2 == 1){
outputMainText((("You see " + ePronoun) + " is in perfect health."), false);
};
if ((((_local2 > 0.75)) && (!((_local2 == 1))))){
outputMainText((("You see " + ePronoun) + " isn't very hurt."), false);
};
if ((((_local2 <= 0.75)) && ((_local2 > 0.5)))){
outputMainText((("You see " + ePronoun) + " is slightly wounded."), false);
};
if ((((_local2 <= 0.5)) && ((_local2 > 0.25)))){
outputMainText((("You see " + ePronoun) + " is seriously hurt."), false);
};
if (_local2 <= 0.25){
outputMainText((("You see " + ePronoun) + " is unsteady and close to death."), false);
};
outputMainText((" " + _local1), false);
}
public function doEvent(_arg1:Number):void{
trace((("doEvent called. Eventnum " + _arg1) + " triggered."));
if (_arg1 == 1){
manSelect();
statDisplay();
appearanceText.visible = true;
appearanceBox.visible = true;
doNext(3);
};
if (_arg1 == 2){
womanSelect();
statDisplay();
appearanceText.visible = true;
appearanceBox.visible = true;
doNext(3);
};
if (_arg1 == 3){
if (str == 0){
dataBox.visible = true;
dataText.visible = true;
choices("Slot 1", 9004, "Slot 2", 9005, "Slot 3", 9006, "Cancel", 0);
outputMainText("Please load a valid file or start a new game.", true);
return;
};
hideUpDown();
foundItem = 0;
outputMainText("You find yourself near the portal exit. Where do you go?", true);
levelRdy();
Choice1Outline.visible = true;
Choice2Outline.visible = true;
Choice3Outline.visible = true;
Choice4Outline.visible = true;
Choice1.visible = true;
Choice2.visible = true;
Choice3.visible = true;
Choice4.visible = true;
mountainBox.visible = false;
mountainChoice.visible = false;
desertChoice.visible = false;
desertBox.visible = false;
forestChoice.visible = false;
forestBox.visible = false;
lakeChoice.visible = false;
lakeBox.visible = false;
dataBox.visible = true;
dataText.visible = true;
Choice1.htmlText = "Explore";
Choice2.htmlText = "Shop";
Choice3.htmlText = "Items";
Choice4.htmlText = "Sleep";
appearanceText.visible = true;
appearanceBox.visible = true;
button1Choice = 4;
button2Choice = 0;
button3Choice = 6;
button4Choice = 7;
};
if (_arg1 == 4){
explore();
};
if (_arg1 == 6){
itemScreen();
};
if (_arg1 == 7){
sleep();
};
if (_arg1 == 8){
takeItem();
};
if (_arg1 == 9){
itemSlot1 = foundItem;
if (shop != 0){
doEvent(20);
shop = 0;
trace((("Shop overriding return from item placement to event#:" + _arg1) + "."));
} else {
doEvent(3);
};
};
if (_arg1 == 10){
itemSlot2 = foundItem;
if (shop != 0){
doEvent(20);
shop = 0;
trace((("Shop overriding return from item placement to event#:" + _arg1) + "."));
} else {
doEvent(3);
};
};
if (_arg1 == 11){
itemSlot3 = foundItem;
if (shop != 0){
doEvent(20);
shop = 0;
trace((("Shop overriding return from item placement to event#:" + _arg1) + "."));
} else {
doEvent(3);
};
};
if (_arg1 == 12){
outputMainText("Your natural instincts immediately take over and you open your mouth and allow her nipple inside. Immediately, your mouth has a mind of its own as you press your head firmly into her breast and begin suckling the unnaturally long teat like a starving baby. The demon-woman laughs in satisfaction. '<i>To think, that you believed me to do you harm!</i>', she taunts. '<i>Drink, little man. Feed your lust as you will soon feed mine.</i>' Immediately, you feel her milk flood your mouth. Its taste immediately reminds you of the potion you got from Giacomo. You realize the potion was not a potion at all, but this demon's breast milk! Concerned only for your blind libido, the suction of your mouth coaxes torrents of the devil's fluid into your mouth and down your throat. She continues teasing your cock only enough to maintain your erection. In time, your stomach signals that you are full and you break the seal from her tit making a loud 'pop' as you break your seal from her flesh, briefly hosing you down with milk.\r\r", true);
outputMainText("The demon has a satisfied look on her face. '<i>Did I taste good? Was I wholesome and fulfilling?</i>', she asks. '<i>Since you have fed from my life-milk, it is only fair that I do the same. To be fair, 'yes', I am a fierce as I look and I will leave you sore and insensible. However, I do so to pleasure you and feed myself. Accept it and be happy.</i>' She gives you another inhumanly toothy grin and kisses you deeply. A small pang of fear still shoots through you as you feel the sharpness of her eye-teeth. She breaks away from your lips and sighs in excitement. '<i>Now, I FEED!</i>', she utters jubilantly.", false);
stats(0, 0.3, 0, 0, 0.5, 0.5, 5, 1);
doNext(13);
};
if (_arg1 == 13){
outputMainText("Rotating herself into a 69 position, she seizes you throbbing member and effortlessly begins deep throating. Her thighs Wrap around your head and confront you with her surprisingly hairy pussy. Her clitoris is long and erect, begging for attention and the smell of her pheromones enslaves you. You bury your face into her furry mound, ignoring your normal revulsion to such an unshaved state and begin eating her as well as any woman you have ever pleased. The demon takes your cock out of her mouth to cry in delight. 'YES, LITTLE MAN!', she screams. 'LICK ME! TEASE ME! LOVE MY WOMB WITH YOUR TONGUE!!!!' She responds by clamping her mouth around the head of your penis and sucking smartly. A sharp pain in your ass signals the entry of her bony fingers working it way to your inner manhood. Finding the root of your sex easily, she mashes down to force you to cum.\r\r", true);
outputMainText("Finding it impossible to resist such pleasure, you immediately begin cumming. Glob after glob, stream after stream of your semen shoots into the woman's mouth. Her timed sucking ensures that she swallows each drop as you launch it into her. While you have been proud of the ability to cum in a woman for over a minute, you are wracked with both pain and pleasure as your ejaculations continue for almost ten minutes. Once you have spent your last, the demon releases your penis to bear down on your face with her thighs and unloads a massive squirting orgasm. Your face is soaked with pussy juice as you see her cunt spasm from the force of her pleasure. The sight of her rhythmic muscles is hypnotic. She then promptly removes her finger from your ass.", false);
stats(0, 0, 0, 0, 0.5, 0, -100, 0);
doNext(14);
};
if (_arg1 == 14){
outputMainText("She stands up and helps you to your feet. While dazed, you see that she towers over you. She must stand well over seven feet in height. She braces you against a tree and picks up the empty potion bottle. Grabbing the tit you ignored during the unholy tryst, she pokes her nipple into the bottle and squeezes for about a minute. Satisfied, she corks the bottle and hands it to you. She begins licking her nectar off your face. '<i>You have pleased me, little man.</i>', she coos. '<i>It is a rare thing indeed for one of my meals to pleasure me so. If you ever desire for me again, all you need is to drink my milk. I will appear forthwith to let you suckle me and I will suckle you! We will feed each other and grow stronger for the effort!</i>' She gives a giggle and disappears before your eyes. At that moment the fatigue from the massive fucking you received catches up with you and you pass out in a slump.\r\rYou wake up in the morning with a sore cock and muscle cramps all over your body. Was it worth it? ", true);
stats(0.5, 0, 0, 0, 0, 0, 4, 0);
foundItem = 1007;
doNext(8);
};
if (_arg1 == 19){
outputMainText("Giacomo's grin is nothing short of creepy as he offers his wares to you. What are you interested in?", true);
choices("Potions", 20, "Books", 29, "Erotica", 22, "Leave", 3);
};
if (_arg1 == 20){
if ((((((gender == 2)) || ((gender == 0)))) || ((gender == 3)))){
choices("Vitality T.", 23, "Scholar's T.", 24, "Blank", 0, "Back", 19);
} else {
choices("Vitality T.", 23, "Scholars T.", 24, "Cerulean P.", 25, "Back", 19);
};
outputMainText("Which potion or tincture will you examine?", true);
};
if (_arg1 == 21){
if (gender == 3){
outputMainText("\r\rThe blessing (or curse, depending on how you feel) of your gender catches up. As with all members of your gender, you are incapable of having just ONE orgasm. You feel the muscles deep in your crotch bear down hard. Your eyes widen as you realize you are about to blow a monumental load. The pressure works its way through you and towards your cock as, with one final push, you force a torrent of semen out of your body. Your grip was not sufficient on the onahole and you launch it ", true);
outputMainText(String((int(((((Math.random() * str) / 12) + (str / 6)) * 10)) / 10)), false);
outputMainText(" feet away from you. Delirious with pleasure, you continue your 'impression' of a semen volcano, covering yourself and the area with your seed. ", false);
outputMainText(" As your orgasms fade, you find yourself a well-fucked mess, and pass out.", false);
if (!debug){
stats(0, 0, 0, 0, 0, -1, -100, 0);
};
};
doNext(3);
};
if (_arg1 == 22){
if (gender == 1){
choices("Dildo", 36, "Plain Onahole", 39, "Deluxe Onahole", 40, "Back", 19);
};
if (gender == 2){
choices("Dildo", 36, "Stimulation Belt", 37, "Natural Stim. Belt", 38, "Back", 19);
};
if (gender == 3){
if (int((Math.random() * 2)) == 0){
choices("Dildo", 36, "Deluxe Onahole", 40, "Natural Stim. Belt", 38, "Back", 19);
} else {
choices("Deluxe Onahole", 40, "Natural Stim. Belt", 38, "Natural Onahole", 48, "Back", 19);
};
};
if (gender == 0){
choices("Dildo", 36, "Plain Onahole", 39, "Stim. Belt", 37, "Back", 19);
};
outputMainText("Giacomo's grin is nothing short of creepy as he offers his wares to you. What are you interested in?", true);
};
if (_arg1 == 23){
outputMainText("Giacomo holds up the item and says, '<i>Ah, yes! The quintessential elixir for all travelers, this little bottle of distilled livelihood will aid you in restoring your energy on your journey and, should you be hurt or injured, will aid the body's ability to heal itself. Yes ", true);
if (gender == 1){
outputMainText("sir, ", false);
};
if ((((gender == 2)) || ((gender == 3)))){
outputMainText("madam, ", false);
};
outputMainText("this is liquid gold for pilgrim and adventurer alike. Interested? It is <b>15 gems</b></i>'.", false);
doYesNo(26, 20);
};
if (_arg1 == 24){
outputMainText("Giacomo holds up a pouch of dried, fragrant leaves and begins his spiel, '<i>Have you ever wondered how scholars and other smart folk keep up such a mental effort for so long? They make a tea out of this fine mixture of quality plants and herbs. Nothing but the best, this mysterious mixture of herbs in its Orange Pekoe base makes anyone, short of a lummox, as brainy as the finest minds of the land. All you do is steep the leaves in some water and drink up! Hot or cold, straight or sweetened with honey, your mind will run around itself once this is fuelling your mind. Buy it now and I will throw in the strainer for free!. Interested? Only <b>15 gems</b>!</i>'", true);
doYesNo(27, 20);
};
if (_arg1 == 25){
outputMainText("Giacomo makes his comical over-the-shoulder search and holds up a sky-blue bottle. He grins widely as he begins his pitch. '<i>My friend, you truly have a discerning eye. Even the most successful of men seek to attract more women for pleasure and status. This, my friend, will attract the most discerning and aroused of women. Women attracted by this fine unction will NEVER say no. I GUARANTEE that she will want pleasure every time you demand pleasure! A bit of a caution to you, brother. Some say this works TOO well. If you aren't man enough to handle the women this urn draws to you, you best say so now and I will offer something more to your liking. However, if you have the heart for it, I can sell you this little gem for <b>100 gems</b></i>!'", true);
doYesNo(28, 20);
};
if (_arg1 == 26){
if (gems < 15){
outputMainText((("\r\rGiacomo sighs, indicating you need " + String((15 - gems))) + " more gems to purchase this item."), true);
doNext(20);
} else {
foundItem = 1005;
shop = 8;
doEvent(8);
gems = (gems - 15);
shopHolding = (shopHolding + 15);
};
};
if (_arg1 == 27){
if (gems < 15){
outputMainText((("\r\rGiacomo sighs, indicating you need " + String((15 - gems))) + " more gems to purchase this item."), true);
doNext(20);
} else {
foundItem = 1006;
shop = 8;
doEvent(8);
gems = (gems - 15);
shopHolding = (shopHolding + 15);
};
};
if (_arg1 == 28){
if (gems < 100){
outputMainText((("\r\rGiacomo sighs, indicating you need " + String((100 - gems))) + " more gems to purchase this item."), true);
doNext(20);
} else {
foundItem = 1007;
shop = 8;
doEvent(8);
gems = (gems - 100);
shopHolding = (shopHolding + 100);
};
};
if (_arg1 == 29){
choices("Dangerous Plants", 30, "Traveler's Guide", 31, "Hentai Comic", 32, "Back", 19);
outputMainText("Which book are you interested in perusing?", true);
};
if (_arg1 == 30){
if (ownsDangerousPlants){
outputMainText("<b>You already own the Book 'Dangerous Plants'.</b>", true);
doNext(29);
return;
};
doYesNo(33, 29);
outputMainText("Giacomo proudly holds up a small text. The cover is plain and unadorned with artwork. '<i>According to the scholars…</i>', Giacomo begins. '<i>…knowledge is power. It is one of the few things that scholars say that I agree with. You cannot survive in today's world without knowing about the dangers in it. This book specializes in the dangerous plants of the realm. Beasts and men are not your only problems. There exists flora and fauna, the likes of which will chew you up and spit you out faster than any pack of wolves or gang of thieves. For the small price of 10 gems, you can benefit from this fine book of the nastiest blossoms in existence. Care to broaden your learning apiece?</i>'", true);
};
if (_arg1 == 31){
if (ownsTravelersGuide){
outputMainText("<b>You already own the book 'Traveler's Guide'.</b>", true);
doNext(29);
return;
};
doYesNo(34, 29);
outputMainText("Giacomo holds up a humble pamphlet. '<i>While you may not find value in this, as a seasoned traveler,…</i>', Giacomo opens, '<i>…you never know what you may learn from this handy, dandy information packet! Geared to the novice, this piece of work emphasizes the necessary items and some good rules of thumb for going out into the world. You may not need it, but you may know someone who does. Why waste your time on them when you can give them this and be on your way! I will offer the super-cheap price of 1 gem!</i>'", true);
};
if (_arg1 == 32){
if (ownsHentaiComic){
outputMainText("<b>You already own a Hentai Comic!</b>", true);
doNext(29);
return;
};
doYesNo(35, 29);
outputMainText("Giacomo takes out a colorfully written magazine from his bag. The cover contains well-drawn, overly-endowed women in sexual poses. '<i>Perhaps your taste in reading is a bit more primal, my good ", true);
if (gender == 1){
outputMainText("man", false);
};
if ((((gender == 2)) || ((gender == 3)))){
outputMainText("lady", false);
};
if (gender == 0){
outputMainText("...err whatever you are", false);
};
outputMainText("</i>.', says Giacomo. '<i>Taken from the lands far East of here, this is a tawdry tale of a group of ladies seeking out endless pleasures. A half a dozen picture on every page to illustrate their peccadilloes, you will have your passions inflamed and wish to join these fantasy vixens in their adventures! Collectable and in high demand, even if these are not to your tastes, you can easily turn a profit on your own! Care to adventure into the realm of fantasy? It's only 10 gems and I am doing YOU a favor for such a price.</i>'", false);
};
if (_arg1 == 33){
if (ownsDangerousPlants){
outputMainText("<b>You already own the Book 'Dangerous Plants'.</b>", true);
doNext(29);
return;
};
if (gems < 10){
outputMainText((("\r\rGiacomo sighs, indicating you need " + String((10 - gems))) + " more gems to purchase this item."), true);
doNext(29);
} else {
outputMainText("You consider yourself fortunate to be quite literate in this day and age. It certainly comes in handy with this book. Obviously written by well-informed, but women-starved men, the narrative drearily states the various types of poisonous and carnivorous plants in the world. One entry that really grabs you is the chapter on 'Violation Plants'. The chapter drones on about an entire classification of specially bred plants whose purpose is to torture or feed off a human being without permanently injuring and killing them. Most of these plants attempt to try breeding with humans and are insensitive to the intricacies of human reproduction to be of any value, save giving the person no end of hell. These plants range from massive shambling horrors to small plant-animal hybrids that attach themselves to people. As you finish the book, you cannot help but shiver at the many unnatural types of plants out there and wonder what sick bastard created such monstrosities. ", true);
doNext(29);
gems = (gems - 10);
ownsDangerousPlants = true;
};
};
if (_arg1 == 34){
if (ownsTravelersGuide){
outputMainText("<b>You already own the book 'Traveler's Guide'.</b>", true);
doNext(29);
return;
};
if (gems < 1){
outputMainText("\r\rGiacomo sighs, indicating you need 1 gem to purchase this item.", true);
doNext(29);
} else {
outputMainText("The crazy merchant said you might not need this and he was right. Written at a simple level, this was obviously intended for a city-dweller who never left the confines of their walls. Littered with childish illustrations and silly phrases, the book is informative in the sense that it does tell a person what they need and what to do, but naively downplays the dangers of the forest and from bandits. Were it not so cheap, you would be pissed at the merchant. However, he is right in the fact that giving this to some idiot ignorant of the dangers of the road saves time from having to answer a bunch of stupid questions.", true);
doNext(29);
gems = (gems - 1);
ownsTravelersGuide = true;
};
};
if (_arg1 == 35){
if (ownsHentaiComic){
outputMainText("<b>You already own a Hentai Comic!</b>", true);
doNext(29);
return;
};
if (gems < 10){
outputMainText((("\r\rGiacomo sighs, indicating you need " + String((10 - gems))) + " more gems to purchase this item."), true);
doNext(29);
} else {
outputMainText("You peruse the erotic book. The story is one of a group of sisters who are all impossibly heavy-chested and equally horny getting into constant misadventures trying to satisfy their lust. While the comic was entertaining and erotic to the highest degree, you cannot help but laugh at how over-the-top the story and all of the characters are. Were the world as it was in the book, nothing would get done as humanity would be fucking like jackrabbits in heat for the rest of their lives. While certainly a tempting proposition, everyone gets worn out sometime. You place the book in your sack, well entertained and a head filled with wilder perversions than what you woke up with this morning.", true);
doNext(29);
gems = (gems - 10);
ownsHentaiComic = true;
};
};
if (_arg1 == 36){
if (ownsDildo){
outputMainText("<b>You already own a Dildo!</b>", true);
doNext(22);
return;
};
outputMainText("Giacomo takes out a slender tube roughly over half a foot in length. '<i>Since you seek pleasure, this is as simple and effective as it gets. This dildo is a healthy seven inches long and is suitable for most women and even adventurous men. Pick a hole, stick it in and work it to your heart's content or your partner's pleasure. The single-piece construction makes it solid, sturdy and straightforward. For 20 gems, you can take matters into your own hands. How about it?</i>'", true);
doYesNo(41, 22);
};
if (_arg1 == 41){
if (gems < 20){
outputMainText((("\r\rGiacomo sighs, indicating you need " + String((20 - gems))) + " more gems to purchase this item."), true);
doNext(22);
return;
};
outputMainText("After making the payment, Giacomo hands you the Dildo", true);
doNext(22);
gems = (gems - 20);
ownsDildo = true;
};
if (_arg1 == 37){
if (ownsStimBelt){
outputMainText("<b>You already own a Self-Stimulation Belt!</b>", true);
doNext(22);
return;
};
outputMainText("Giacomo holds up what appears to be a chastity belt. However, this device has a dildo attached to the inside. There is a small gearbox on the outside and a wind-up key is tethered to it. The crazed merchant holds the contraption up and begins his liturgy. '<i>Ah! Someone who both appreciates pleasure AND the wonders of artifice. This little piece of naughty jewelry is designed to pleasure any woman all at the push of a button! All you do is take this key, wind up the gear box…</i>' Giacomo takes the key and inserts it into the box and winds it like a watch. He then points to a switch. '<i>…you then press this button and enjoy yourself!</i>' Giacomo flips the switch and the dildo vibrates rapidly. The distinct hum from the toy and the whirring of gears stirs your imagination. Giacomo pipes up, breaking your train of thought. '<i>This belt is not cheap, but it is most certainly worth the investment of 30 gems!</i>'", true);
doYesNo(42, 22);
};
if (_arg1 == 42){
if (gems < 30){
outputMainText((("\r\rGiacomo sighs, indicating you need " + String((30 - gems))) + " more gems to purchase this item."), true);
doNext(22);
return;
};
outputMainText("After making the payment, Giacomo hands you the Self-Stimulation Belt", true);
ownsStimBelt = true;
doNext(22);
gems = (gems - 30);
return;
};
if (_arg1 == 38){
if (ownsNaturalStimBelt){
outputMainText("<b>You already own a All-Natural Self-Stimulation Belt!</b>", true);
doNext(22);
return;
};
outputMainText("The merchant places his bag on the ground. He reaches into one of his purses and pulls out a pair of gloves. After putting them on, he reaches into his bag and pulls out what appears to be a chastity belt. The device has a clearly organic look to it. In the center of the front cover is a nodule. You have heard of similar devices. They normally have a dildo attached to them to pleasure women. ", true);
outputMainText("'<i>This device is quite intriguing,</i>' Giacomo begins talking about the device, '<i>This pleasure engine is NOT for the faint-of-heart. Being constructed of materials resulting from the workshops of biomechanical artificers, this device outperforms its mechanical cousin in every way. Guaranteed to last longer than you do, this machine will give you as many mind-shattering orgasms as you can handle. Unlike the mechanical belt, you do not need to wind it up. It soaks up the power of the sun itself in an amazing feat of engineering. Four hours a day is all it needs! Keep in mind that if there is no sun for a couple of days, it will not work without a full day's sunshine. You may wonder why I am wearing gloves. Well, that is because of the pads on the belt.</i>' Giacomo points to a couple of small, amber pads on the belt. '<i>They are sensitive to human touch and activate the belt. This is all yours for 40 gems and you get the gloves for free! Again, this device offers ultimate pleasure. If you can't handle it, I will not be offended if you turn it down.</i>'", false);
if (((ownsDangerousPlants) && ((inte > 39)))){
outputMainText("\r\rThe nodule and the base of the stimulator look vaguely like some of the things you have seen in the Dangerous Plant book. You wonder if there is not something devious about this item. Giacomo is also sweating. It is too cool for that, this time of year.", false);
} else {
if (inte > 29){
outputMainText("\r\rYou notice a change in Giacomo's attitude. He REALLY wants to sell you this sex toy. Something this exotic should cost much more than what he is offering.", false);
};
};
outputMainText("\r\rDo you buy the All-Natural Self-Stimulation Belt?", false);
doYesNo(43, 22);
};
if (_arg1 == 43){
if (gems < 40){
outputMainText((("\r\rGiacomo sighs, indicating you need " + String((40 - gems))) + " more gems to purchase this item."), true);
doNext(22);
return;
};
outputMainText("After making the payment, Giacomo hands you the All-Natural Self-Stimulation Belt", true);
ownsNaturalStimBelt = true;
doNext(22);
gems = (gems - 40);
return;
};
if (_arg1 == 39){
if (ownsOnahole){
outputMainText("<b>You already own a Plain Onahole!</b>", true);
doNext(22);
return;
};
outputMainText("Giacomo takes out a pink cylinder from his bag. It appears to be sealed at one end and the cap is topped with a piece of rubber that has a vertical slit. \"<i>Friend</i>\", Giacomo starts. \"<i>When you do not want to go through all of the shit to bag a woman, this is the thing for you. It never says no, it never bitches and it never takes everything you own in a divorce. All you do is get hard, slip your cock in the slit, work it at your pace and unload. Simple is as simple does. Take the top off for easy clean up and there you go! As you can see it is portable and is much safer than risking some social disease from an errant barmaid. I have plenty of these in stock and I can let it go for 20 gems. What say you?</i>\"", true);
doYesNo(44, 22);
};
if (_arg1 == 44){
if (gems < 20){
outputMainText((("\r\rGiacomo sighs, indicating you need " + String((20 - gems))) + " more gems to purchase this item."), true);
doNext(22);
return;
};
outputMainText("After making the payment, Giacomo hands you the Plain Onahole", true);
ownsOnahole = true;
doNext(22);
gems = (gems - 20);
return;
};
if (_arg1 == 40){
if (ownsDeluxeOnahole){
outputMainText("<b>You already own a Deluxe Onahole!</b>", true);
doNext(22);
return;
};
outputMainText("Giacomo holds up a weirdly shaped lump of rubber. One end is shaped and contoured like a woman's genitalia while the rest stretches out to almost a foot long. \"<i>This thing right here is excellent! While a standard onahole will get you off, this has the look and feel of the real thing! As you can see, the outside orifice looks just like a woman's privy and…</i>\", Giacomo pauses to open the inside for you to view. You see the inner folds and curves that are typical to the inside of a woman's womb. \"<i>…as you can see, great care has been taken to make the inside feel as much like a real pussy as possible. You hammer your cock with this thing a few times and you may never want the real thing again! If nothing else, it won't whine about you running out the door first thing in the morning. 50 gems is more than reasonable for all of the satisfaction this will bring.</i>\"", true);
doYesNo(45, 22);
};
if (_arg1 == 45){
if (gems < 50){
outputMainText((("\r\rGiacomo sighs, indicating you need " + String((50 - gems))) + " more gems to purchase this item."), true);
doNext(22);
return;
};
outputMainText("After making the payment, Giacomo hands you the Deluxe Onahole", true);
ownsDeluxeOnahole = true;
doNext(22);
gems = (gems - 50);
return;
};
if (_arg1 == 46){
outputMainText((("You pull the sloppy toy from your dribbling dick and smile, shoving it's slippery surface down on another of your " + allCocksDescript()) + ". You rapidly work it around your cocks, orgasming until "), true);
if (balls > 0){
outputMainText("you pass out with aching, empty balls.", false);
} else {
outputMainText((("you pass out with " + allCocksDescript()) + " sore from exertion."), false);
};
if (!debug){
stats(0, 0, 0, 0, 0, -0.75, -100, 0);
};
doNext(3);
};
if (_arg1 == 47){
outputMainText("In shock, you scream as you realize the nodule has instantly grown into a massive, organic dildo. It bottoms out easily and rests against your cervix as you recover from the initial shock of its penetration. As the pangs subside, the infernal appendage begins working itself. It begins undulating in long, slow strokes. It takes great care to adjust itself to fit every curve of your womb. Overwhelmed, your body begins reacting against your conscious thought and slowly thrusts your pelvis in tune to the thing.\r\r", true);
outputMainText("As suddenly as it penetrated you, it shifts into a different phase of operation. It buries itself as deep as it can and begins short, rapid strokes. The toy hammers your insides faster than any man could ever hope to do. You orgasm immediately and produce successive climaxes. Your body loses what motor control it had and bucks and undulates wildly as the device pistons your cunt without end. You scream at the top of your lungs. Each yell calls to creation the depth of your pleasure and lust.\r\r", false);
outputMainText("The fiendish belt shifts again. It buries itself as deep as it can go and you feel pressure against the depths of your womanhood. You feel a hot fluid spray inside you. Reflexively, you shout, \"<b>IT'S CUMMING!!!! IT'S CUMMING INSIDE ME!!!</b>\" Indeed, each push of the prodding member floods your box with juice. It cums…and cums…and cums…and cums...\r\r", false);
outputMainText("Eternity passes and your pussy is sore. It is stretched and filled completely whatever this thing shoots for cum. It retracts itself from your hole and you feel one last pang of pressure as your body now has a chance to force out all of the spunk that it cannot handle. Ooze sprays out from the sides of the belt and leaves you in a smelly, sticky mess. You feel the belt's tension ease up as it loosens. The machine has run its course. You immediately pass out.", false);
if (!debug){
stats(0, 0, 0, 0, 1, -0.5, -100, 0);
};
doNext(3);
};
if (_arg1 == 48){
if (ownsNaturalOnahole){
outputMainText("<b>You already own an All-Natural Onahole!</b>", true);
doNext(22);
return;
};
outputMainText("Giacomo reaches into his bag and pulls out what looks like an oblong coconut. It is roughly seven inches in diameter. There is a distinctive opening in one end that is just large enough for an erect penis. Inside the opening you see what looks like two pink cushions. There are multiple symmetrical depressions surrounding the outside hole of the thing. Giacomo's smile fades and he takes on a much more serious attitude befitting his aquiline face. \"<i>Miss...,</i>\", Giacomo states. \"<i>Without sounding too bold, it is no secret that members of the third gender are capable of sexual feats that force the other two genders into jealous fits. Having bigger cocks than men, cumming more than an elephant and a pussy with the strength and coordination of a human hand, regular toys do not last long for you folk. Hence, this little beasty. I will tell you straightaway, only the third sex ", true);
outputMainText("can handle this toy. The other two genders simply do not have the stamina for it. This thing is all-natural, meaning that it powers itself and is made with the Artificers' organic methods. It will cease functioning if it is not used or you fail to give the opening a few drops of this fluid once every three days.</i>\" Giacomo pauses to hold up a small bottle. He places the bottle down and continues his sell. \"<i>If you plan on not using this thing regularly, do not buy it. They are very rare and this one will probably be the only one you ever see. Normally I pitch my products like crazy. However, with this I do not need to. This thing DOES work too good. You WILL cum. Period. It will work you until you do not want it to work anymore. It will not stop until IT decides to stop. However, for the extreme needs of a lovely example of the dual-sex, it may be the very thing you need. Again, this is for the ultimate hardcore pleasure seeker amongst the ultimate hardcore. It costs a humble 150 gems, but for superhuman thrills, who can put a price tag on that?</i>", false);
if (((ownsDangerousPlants) && ((inte > 35)))){
outputMainText("\r\rWhile skillfully avoiding Giacomo's suspicion, you correctly surmise that the toy is not a toy at all. It is the outer shell for a hybrid animal-plant. The creature is very much alive. While the technical name for this beast is in the usual unpronounceable scholastic gibberish, the common nickname for this is the \"All-Day Sucker\". It gets its name due to the fact that its diet consists of high nutrient fluids, especially semen. It was used both as a torture device and as a pleasure pet of the snobbish elite because it would clamp down upon the member of a person and not release until it has stimulated the person enough to ejaculate sufficiently to feed. However, the All-Day Sucker swells up like fleas and ticks do, thus requiring hours of stimulation to have its fill. There was something else about these things, but you cannot remember exactly.", false);
if (inte > 65){
outputMainText("After a moment, you remember what it was you read. Unlike many simple beasts, this creature has a male and a female gender. The creature itself is similar to a tubeworm. While the males are considered reasonably \"safe\", the females have a nasty habit of injecting its young inside the sex organs of the person using the thing, leaving the hapless person to convulse in endless, painful orgasms as the beasties wriggle around their insides until they are ready for birth. The process takes about a week and recorded victims normally make full recovery after a period of blindingly painful orgasms as they shoot out the young. It is not a surprise to have people's hearts give out at the endless stimulation from the young. The recovery time is quite long due to the stress on the body such overwhelming stimulus would generate. Some ultra-extreme pleasure seekers actively look for these things just for this experience.\r\rHowever, the problem is there is NO WAY to tell if this is male or female by looking at it.", false);
};
};
doYesNo(49, 22);
};
if (_arg1 == 49){
if (gems < 150){
outputMainText((("\r\rGiacomo sighs, indicating you need " + String((150 - gems))) + " more gems to purchase this item."), true);
doNext(22);
return;
};
outputMainText("After making the payment, Giacomo hands you the All-Natural Onahole", true);
ownsNaturalOnahole = true;
doNext(22);
gems = (gems - 150);
return;
};
if (_arg1 == 50){
outputMainText("", true);
if (hair == "sandy blonde"){
outputMainText("She smiles wickedly and intones, \"<i>Tresed eht retaw llahs klim ruoy.</i>\"\r\r", false);
if ((((breastsPerRow < 2)) || ((breastCupSize == "N/A")))){
outputMainText("You grow a perfectly rounded pair of C-cup breasts! ", false);
(breastsPerRow == 2);
breastCupSize = "C";
if (nipplesPerBreast < 1){
nipplesPerBreast = 1;
};
if (breastRows < 1){
breastRows = 1;
};
stats(0, 0, 0, 0, 0, 2, 1, 0);
};
if ((((breastCupSize == "A")) || ((breastCupSize == "B")))){
outputMainText("Your breasts suddenly balloon outwards, stopping as they reach a perfectly rounded C-cup. ", false);
breastCupSize = "C";
stats(0, 0, 0, 0, 0, 1, 1, 0);
};
if (nipplesPerBreast < 1){
outputMainText("Two dark spots appear on chest, rapidly forming into sensitive nipples. ", false);
nipplesPerBreast = 1;
nippleLength = 0.2;
stats(0, 0, 0, 0, 0, 2, 1, 0);
};
if (lactationMultiplier > 0){
outputMainText("A strong pressure builds in your chest, painful in it's intensity. You yank down your top as ", false);
if (lactationMultiplier < 2){
outputMainText("powerful jets of milk spray from your nipples, spraying thick streams over the desert sands. You moan at the sensation and squeeze your tits, hosing down the tainted earth with an offering of your milk. You blush as the milk ends, quite embarassed with your increased milk production. ", false);
};
if ((((lactationMultiplier >= 2)) && ((lactationMultiplier <= 2.6)))){
outputMainText("eruptions of milk squirt from your nipples, hosing thick streams everywhere. The feeling of the constant gush of fluids is very erotic, and you feel yourself getting more and more turned on. You start squeezing your breasts as the flow diminishes, anxious to continue the pleasure, but eventually all good things come to an end. ", false);
};
if ((((lactationMultiplier > 2.6)) && ((lactationMultiplier < 3)))){
outputMainText("thick hoses of milk erupt from your aching nipples, forming puddles in the sand. You smile at how well you're feeding the desert, your milk coating the sand faster than it can be absorbed. The constant lactation is pleasurable... in a highly erotic way, and you find yourself moaning and pulling on your nipples, totally outside of your control. In time you realize the milk has stopped, and even had time to soak into the sands. You wonder at your strange thoughts and pull your hands from your sensitive nipples. ", false);
};
if (lactationMultiplier >= 3){
outputMainText("you drop to your knees and grab your nipples. With a very sexual moan you begin milking yourself, hosing out huge quantities of milk. You pant and grunt, offering as much of your milk as you can. It cascades down the dune in a small stream, and you can't help but blush with pride...and lust. The erotic pleasures build as you do your best to feed the desert of all your milk. You ride the edge of orgasm for an eternity, milk everywhere. When you come to, you realize you're kneeling there, tugging your dry nipples. Embarrassed, you stop, but your arousal remains. ", false);
};
if (lactationMultiplier < 3){
lactationMultiplier = (lactationMultiplier + 0.75);
outputMainText("Your breasts feel fuller...riper...like your next milking could be even bigger. ", false);
};
stats(0, 0, 0, 0, 1, 4, 15, 0);
};
if (lactationMultiplier == 0){
outputMainText("A pleasurable release suddenly erupts from your nipples! Streams of milk are spraying from your breasts, soaking into the sand immediately. It stops all too soon, though the witch assures you that you can lactate quite often now. ", false);
lactationMultiplier++;
stats(0, 0, 0, 0, 0.5, 1, 10, 0);
};
outputMainText("The Sand-Witch smiles and thanks you for your offering. You notice her dress is damp in four spots on the front. ", false);
if (sand == 0){
outputMainText("You wonder at what her robes conceal as she vanishes into the dunes.", false);
};
if (sand == 1){
if (cor <= 33){
outputMainText("You are glad to avoid servicing her again as she vanishes into the dunes.", false);
};
if ((((cor > 33)) && ((cor <= 66)))){
outputMainText("You wonder if you should've resisted and tried for some sex as she departs.", false);
};
if (cor > 66){
outputMainText("You wish you had said no, so you could fuck with her and her magnificent quartet of breasts some more.", false);
};
};
doNext(3);
return;
} else {
outputMainText("She smiles wickedly and intones, \"<i>nuf erutuf rof riah ydnas, nus tresed eht sa ydnas.</i>\"\r\rYou feel a tingling in your scalp, and realize your hair has become a sandy blonde!", false);
hair = "sandy blonde";
doNext(3);
return;
};
};
if (_arg1 == 51){
outputMainText("With an inarticulate scream of rage, the Sand Witch attacks!", true);
startCombat(2);
};
if (_arg1 == 52){
outputMainText("Jojo smiles and leads you off the path to a small peaceful clearing. There is a stump in the center, polished smooth and curved in a way to be comfortable. He gestures for you to sit, and instructs you to meditate.\r\rAn indeterminate amount of time passes, but you feel more in control of yourself. Jojo congratulates you, but offers a warning as well,\"<i>Be ever mindful of your current state, and seek me out before you lose yourself to the taints of this world. Perhaps someday this tainted world can be made right again.</i>\"\r\rHe bows his head sadly and dismisses you.", true);
stats(0.5, 0.5, 0, 1, -1, 0, -5, -1);
doNext(3);
};
if (_arg1 == 53){
doNext(3);
if (monk == 5){
outputMainText("Jojo smiles serenely, pleased at the outcome, a foot of tumescent mouse-meat bobbing at attention.\r\r", true);
outputMainText("You fuck your mousey slut for what feels like hours, orgasming until both of you are tired and worn out. ", false);
takeDamage(20);
if (lib > 40){
outputMainText("When you're done you feel more clear-headed, but Jojo looks hornier than ever.", false);
stats(0, 0, 0, 0, -4, 0, -100, 0);
};
};
if (monk == 4){
outputMainText("Jojo flops down, eyes filled with anticipation. His self-control has really slipped away. The corrupted and horny mouse on display here is an anenthema to the studious monk you met before. His cock is close to a foot long and over two inches thick, veiny with arousal.\r\r", true);
if (gender == 1){
outputMainText("The mousy once-monk kneels as you disrobe, his will nearly broken by desire. ", false);
if (cockTotal == 1){
outputMainText((((("You touch his head softly and guide him to your " + cockDescript()) + ", smiling as he licks his lips with anticipation. You gasp at the feeling of his soft lips and wet tongue as he pleasures you, your knees going weak from his efforts. Jojo cups your balls and slips a fuzzy finger into your ass. He labors to take as much of you as possible into his mouth, panting warmly and wetly around your ") + cockDescript()) + ". You twitch in pleasure as he alternates pressure on your prostate with smooth strokes of his slick tongue. "), false);
} else {
outputMainText((("You touch his head softly and guide him to your " + allCocksDescript()) + ", smiling as he licks his lips in anticipation. You gasp at the feelings of his soft lips and wet tongue on your heads as he pleasures you, your knees going weak from his efforts. Jojo cups your balls and slips a fuzzy finger into your ass. He labors to take in two shafts, struggling to swallow them as deep as possible, panting wetly around you. You twitch with pleasure as he alternates pressure on your prostate with smooth strokes of his slick tongue. "), false);
};
if ((((baseCockThickness > 3)) || ((((dogCocks > 0)) && (((baseCockThickness * dogAffinity) > 3)))))){
outputMainText((("Jojo is forced to back of your " + cockDescript()) + " from time to time to come up for air, barely opening his jaw wide enough to take your girth back inside his mouth. "), false);
};
if ((((baseCockLength > 10)) || ((((horseCocks > 0)) && (((baseCockLength * horseAffinity) > 10)))))){
outputMainText((("He struggles not to gag on your " + cockDescript()) + "'s length, opening his throat as far as he can. "), false);
};
outputMainText("You rock back and forth on his face as he expertly keeps you on the edge of orgasm. ", false);
if (cumQuantity() > 7){
outputMainText("Your constant stream of heavy pre pactically chokes the poor mouse as he edges you mercilessly, his own equipment drizzling in sympathetic lust. ", false);
};
outputMainText("Jojo presses his paw hard into your ass, squeezing your prostate tightly as his hot muzzle dives deeply over your cock. You feel the building tightness of your orgasm and pull him tightly against you as the pressure builds. ", false);
if (cumQuantity() < 5){
outputMainText("You buck against him as you orgasm, your small squirts of cum eagerly devoured my the slutty mouse.", false);
};
if ((((cumQuantity() >= 5)) && ((cumQuantity() < 7)))){
outputMainText("You buck against him as you orgasm, the slutty mouse's throat squeezing against you as he works to swallow your seed.", false);
};
if ((((cumQuantity() >= 7)) && ((cumQuantity() < 10)))){
outputMainText("You spasm against him as you orgasm, the pleasure erupting into the slut-mouse's throat as he tries to swallow it all. Excess cum dribbles from the corners of his mouth as you fully spend yourself.", false);
};
if (cumQuantity() >= 10){
outputMainText("You buck against him as you orgasm, the slutty mouse's cheeks bulging in surprise as your cum explodes into his mouth. Thick streams escape from the corners of his muzzle, your seed pouring into him faster than he can swallow. Eventually you finish, and see the mouse dripping with your spunk nearly to the waist, a small bulge in his belly.", false);
};
outputMainText(" Jojo leans back, panting for breath, a dull smile on his face. He spits a load of your cum into his paw and begins jerking himself off with it, lewdly putting on a show for you.\r\r", false);
if ((((lib > 50)) && ((cor > 80)))){
outputMainText("<b>You feel a familiar power growing within you and decide to unleash it.</b> You grab the prayer beads from his outfit and spit on them, making them slick and wet. Holding them below your flagging cock, you focus on the demonic visions in your mind, slowly but constantly milking larger and larger dollops of cum onto the once holy beads. Jojo moans as he comes to understand your intent, and turns around, shaking his lithe mouse-bum at you. You lean over him, whispering into his ear, \"<i>Each defiled bead I push into you is going to make you more of a willing slut. More willing receptacle for demon cum. More a fountain of desire waiting to be tapped by Succubi. More my toy.</i>\"\r\r", false);
outputMainText((("He whimpers as you slide the first bead in, his eyes growing foggy and his bum wiggling more eagerly. You push the second bead inside him, and feel his asshole stretch and loosen, welcoming the corruption. The third bead slips right in, and he moans, \"<i>sluuuut</i>,\" his cock grows longer and thicker throughout the moan, stopping at over a foot long and 3 inches thick, dribbling cum. You whisper, \"<i>Cum, my Toy,</i>\" and push the remaining beads inside inside him. His eyes roll back as his paws frantically milk his " + eCockDescript(1)) + ", cum spraying from him like a fountain. Jojo trembles, losing complete control and falling away from you. You still hold the end of his beads, and smile as the pop out, stained almost as dark as the poor mouse's soul.\r\r"), false);
outputMainText("You walk away, leaving your new pet to explore his outlook on life, and to test your awakened powers. ", false);
monk++;
stats(0, 0, 0, 0, -10, 0, -100, 10);
} else {
outputMainText("Jojo eventually cums violently, collapsing into a puddle of spent jizz. You smile and walk away, hoping to encounter him again. ", false);
stats(0, 0, 0, 0, 2, 0, -100, 1);
};
};
if ((((gender == 2)) || ((gender == 3)))){
outputMainText("The mousy once-monk kneels as you disrobe, his will nearly broken by desire. ", false);
outputMainText((((((("You touch his head softly, guiding him to your " + vaginaDescript()) + ", lips breaking into a grin as he licks his mouth with desire. You gasp at the feeling of his wet nose as it bumps against your groin, shooting thunderbolts of pleasure from your ") + clitDescript()) + ". He attacks with his tongue, thrusting strikes practically attacking your ") + vaginaDescript()) + " with his long, practically serpentine, tongue. You shudder, knowing a visible sign of corruption when you see it, moisture slicking the mouse's face.\r\r"), false);
outputMainText((((((((("Jojo moans into your folds as his " + eCockDescript(1)) + " brushes against your calf. You get a devilish idea, and push his ") + eCockDescript(1)) + " with your foot, sandwhiching it under one foot and on top of the other. Holding his shoulder for balance, you slowly squeeze him, gently milking out small dribbles of pre. He redoubles his efforts, burying his nose into your ") + vaginaDescript()) + ", tongue swirling over your folds and around ") + clitDescript()) + ". For every effort on his part you step up your own, squeezing and stroking him with your feet, doing your best to impart a foot fetish on his slowly warping mind. You feel a hot wetness on your feet, they grow slicker and wetter every second, Jojo's cum dripping between them. "), false);
if (vaginalWetness <= 1){
outputMainText("You clamp down on his muzzle as you writhe in orgasm, ", false);
};
if ((((vaginalWetness > 1)) && ((vaginalWetness <= 3)))){
outputMainText((("Your legs trap his muzzle in your " + vaginaDescript()) + " as orgasm wracks your body, "), false);
};
if (vaginalWetness == 4){
outputMainText((("Your legs trap his muzzle in your " + vaginaDescript()) + ", slicking his muzzle with girlcum as you spasm with bliss, "), false);
};
if (vaginalWetness == 5){
outputMainText((("Your legs squeeze him against your " + vaginaDescript()) + ", girlcum erupting over his face, soaking him as you bliss out with orgasm, "), false);
};
if (cockTotal == 1){
outputMainText((("Your " + cockDescript()) + " drizzles cum in his hair, some dripping off by his ear. "), false);
};
if (cockTotal > 1){
outputMainText((("Your " + cockDescript()) + "s drizzle him with cum, covering his head with thick white streams of your jizz. "), false);
};
outputMainText("you fall back as your muscles give out, twitching with pleasure.\r\r", false);
outputMainText((((((("The pleasure was magnificent...but you want MORE. You push yourself up, feeling pleased as you spy Jojo stroking his cum-slick " + eCockDescript(1)) + ", thick streams of cum leaking from the tip. You pounce him, pushing him down on the ground, and position your ") + vaginaDescript()) + " over him, allowing him to scent your sex. With a triumphant smile, you sink down onto him, impaling yourself on his ") + eCockDescript(1)) + ". "), false);
if (vaginalLooseness == 0){
outputMainText("He is painfully large, so much so that you feel more pain than pleasure. ", false);
};
if (vaginalLooseness == 1){
outputMainText((((("He stretches you around him like a latex glove, pulling your " + vaginaDescript()) + " taught with his ") + eCockDescript(1)) + ", the sensation riding a razor's edge between pleasure and pain. "), false);
};
if (vaginalLooseness == 2){
outputMainText((((("His " + eCockDescript(1)) + " stuffs you completely, filling your ") + vaginaDescript()) + " to capacity. "), false);
};
if (vaginalLooseness == 3){
outputMainText((("His " + eCockDescript(1)) + " fits you perfectly, burying deep into folds. "), false);
};
if (vaginalLooseness == 4){
outputMainText((("You easily accomadate his member into your " + vaginaDescript()) + ". "), false);
};
if (vaginalLooseness == 5){
outputMainText((((("His " + eCockDescript(1)) + " slips inside your ") + vaginaDescript()) + " with little resistance, easily sinking in to the hilt. You muse to yourself, \"<i>If only he were thicker...</i>\" "), false);
};
outputMainText((("You ride him slowly, gyrating your hips in tiny grinding circles while you run your hands through his fur. His hips bounce you gently with tiny twitching thrusts, cum pooling out of your " + vaginaDescript()) + " as it continues to drip from him. "), false);
outputMainText((((((("He gradually ups the tempo, and you are forced to go along for the ride as you begin to bounce on his " + eCockDescript(1)) + ". You grab fistfulls of his fur and hang on as he begins pounding your ") + vaginaDescript()) + ", his huge balls slapping against you. Cum squirts from your pussy with each of his violent thrusts, more pouring deep inside you continually. Jojo squeals with glee and slams his hips into yours a final time, triggering an eruption of seed in your channel. You feel it pouring into your womb, slowly distending your belly with every shuddering pump of cum. You orgasm helplessly, fingering your ") + clitDescript()) + " the whole time. "), false);
if (cockTotal > 0){
if (cockTotal == 1){
if (horseCocks == 1){
outputMainText((((("Your " + cockDescript()) + " feels a building pressure, the whole thing pulsating wildly with each of your heartbeats, most noticably the tip, which flares out wildly. Powerful contractions wrack your sheath and ") + cockDescript()) + " as pre practically fountains from it. "), false);
};
if (dogCocks == 1){
outputMainText((("Your " + cockDescript()) + " feels an intense pressure, and begins bulging out obscenely above your sheath. The knot thickens gratuitiously, filling as it pulses with need. Cum drips from your pointed tip as it continues to bulge wider, filling you with unbearable pressure. "), false);
};
if (normalCocks == 1){
outputMainText((("Your " + cockDescript()) + " twitches, muscle contractions slowly working their way up from the base. "), false);
};
if (cumQuantity() < 5){
outputMainText("Your body tenses and cums, spraying spurts of jizz over the mouse. ", false);
};
if ((((cumQuantity() >= 5)) && ((cumQuantity() < 10)))){
if (horseCocks == 1){
outputMainText(((" Your " + cockDescript()) + " flares wildly as musky horse-cum erupts from it, splattering over Jojo. "), false);
};
if (dogCocks == 1){
outputMainText((((("The terrible pressure in your " + dogDescript()) + " finally relents, in the form of a fountain of doggie-cum, spraying out from your ") + cockDescript()) + " in a steady stream that seems to last and last. "), false);
};
if (normalCocks == 1){
outputMainText("Your body tenses and cums a thick eruption far beyond what a normal human could produce. Jojo is splattered with the stuff. ", false);
};
};
if (cumQuantity() >= 10){
if (horseCocks == 1){
outputMainText((("Your " + cockDescript()) + " ripples and bulges with animalistic vigor, horse-cum splattering everywhere with each contraction. The musky animal-jizz never seems to stop pouring from your equine organ, soaking the mouse from the waist up. "), false);
};
if (dogCocks == 1){
outputMainText((((("Your " + cockDescript()) + " suddenly releases the pressure, a constant stream of doggie-cum spouting from your ") + cockDescript()) + " like some kind of cum-hose. It seems to go on endlessly, covering the mouse from the waist up with thick ribbons of doggie-spooge as your knot slowly shrinks to normal. "), false);
};
if (normalCocks == 1){
outputMainText("Your body tenses and cums a thick eruption far beyond what a normal human could produce. Jojo is splattered with the stuff. ", false);
};
};
};
if (cockTotal > 1){
outputMainText("Your cocks feel a building pressure at their base, it only seems to get stronger and stronger, until at last it explodes out from you, jizz covering the poor mouse from the waist up. ", false);
};
};
if ((((lactationMultiplier >= 1)) && ((breastRating() > 3)))){
if (((breastRating() * lactationMultiplier) * breastRows) < 8){
outputMainText((("Milk sprays from your " + breastDescript()) + " in tiny streams, triggered by your orgasms."), false);
};
if ((((((breastRating() * lactationMultiplier) * breastRows) < 20)) && ((((breastRating() * lactationMultiplier) * breastRows) >= 8)))){
outputMainText((("Milk erupts from your " + breastDescript()) + ", spraying out over the mouse, squirting out the contractions of each shuddering orgasm."), false);
};
if ((((((breastRating() * lactationMultiplier) * breastRows) < 35)) && ((((breastRating() * lactationMultiplier) * breastRows) >= 20)))){
outputMainText((("Milk erupts from your " + breastDescript()) + ", spraying in pulsing blasts, soaking the mouse. Each nerve-wracking orgasm seems to wring more and more milk from you, till it puddles around."), false);
};
if (((breastRating() * lactationMultiplier) * breastRows) >= 35){
outputMainText((("Milk fountains from your " + breastDescript()) + ", soaking the mouse with a continuous river of cream. For every blob of cum you feel pushing into your over-filled uterous, another torrent of milk sprays out. As your mind-bending orgasms drag on, a small lake of milk forms around you."), false);
};
};
cuntChange(3, true);
if ((((lib > 50)) && ((cor > 80)))){
outputMainText("\r\r<b>You feel a familiar power growing within you and decide to unleash it.</b> You grab the prayer beads from his outfit and spit on them, making them slick and wet. Holding them below his flagging cock, you focus on the demonic visions in your mind, slowly but constantly milking larger and larger dollops of cum onto the once holy beads. Jojo moans as he comes to understand your intent, and turns around, shaking his lithe mouse-bum at you. You lean over him, whispering into his ear, \"<i>Each defiled bead I push into you is going to make you more of a willing slut. More willing receptacle for demon cum. More a fountain of desire waiting to be tapped by Succubi. More my toy.</i>\"\r\r", false);
outputMainText((("He whimpers as you slide the first bead in, his eyes growing foggy and his bum wiggling more eagerly. You push the second bead inside him, and feel his asshole stretch and loosen, welcoming the corruption. The third bead slips right in, and he moans, \"<i>sluuuut</i>,\" his cock grows longer and thicker throughout the moan, stopping at over a foot long and 3 inches thick, dribbling cum. You whisper, \"<i>Cum, my Toy,</i>\" and push the remaining beads inside inside him. His eyes roll back as his paws frantically milk his " + eCockDescript(1)) + ", cum spraying from him like a fountain. Jojo trembles, losing complete control and falling away from you. You still hold the end of his beads, and smile as the pop out, stained almost as dark as the poor mouse's soul.\r\r"), false);
outputMainText("You walk away, leaving your new pet to explore his outlook on life, and to test your awakened powers. ", false);
monk++;
stats(0, 0, 0, 0, -10, 0, -100, 10);
} else {
outputMainText("\r\rExhausted, you pull yourself free from the mouse, drained of lust but feeling VERY naughty. Jojo doesn't even bother getting up, he just keeps masturbating, lost in the scents of your slick juices and his cum. As you walk away with a sexy wiggle, the sexual fluids are absorbed into the ground.", false);
stats(0, 0, 0, 0, 2, 0, -100, 1);
};
};
};
if (monk == 3){
outputMainText((("It's no wonder the monk's body has betrayed him so thoroughly, his " + eCockDescript(1)) + " is nearly ten inches long, pulsing with hot need.\r\r"), true);
if (gender == 1){
outputMainText("You yank Jojo up from the ground and onto his knees, ", false);
if (cockTotal == 1){
outputMainText((("presenting your " + cockDescript()) + " to him. "), false);
} else {
outputMainText((("presenting your " + allCocksDescript()) + " to him. "), false);
};
outputMainText("The monk betrays his violated state of mind, licking his lips demurely and opening wide. The invitation is all you need ", false);
if (cockTotal == 1){
outputMainText((("to ram your " + cockDescript()) + " deep into his maw. You roughly grab his ears, facefucking him hard, his tongue working hard to please. "), false);
};
if (cockTotal > 1){
outputMainText("to cram two cocks deep into his maw, making his jaw stretch obscenely. You roughly grab his ears, facefucking him hard, his tongue working hard to please you. ", false);
};
outputMainText((("One of Jojo's paws is buried in his groin, stroking his " + eCockDescript(1)) + " with feverish intensity. The hornier he gets, the more his throat seems to relax, allowing you to push deeper. The glazed, lust-addled look on his face is so hot, you can't hold back any longer. "), false);
if (cockTotal == 1){
outputMainText((("Your " + cockDescript()) + " clenches tightly, erupting "), false);
};
if (cockTotal > 1){
outputMainText("Your twin dicks clench tightly, erupting ", false);
};
outputMainText("hot seed into the now meek and subdued bitch-boy. His throat squeezes around you as he presses his nose tightly against your crotch, pulling as much of you in as he can. Mouse-spunk spatters your legs as he cums with you.\r\r", false);
if ((((lib > 60)) && ((cor > 40)))){
outputMainText("You flip him onto his back, both of you still hard and ready for more. He gets up on all-fours and wiggles his bum tantalizingly. You press on, ", false);
if (cockTotal == 1){
outputMainText((("violating his loosened sphincter, and begin to fuck him hard. He whimpers with a mixture of pain and pleasure, your spit-lubed " + cockDescript()) + " pounding his prostate mercilessly. Thick ropes of mousey-cum drool with each anus-stretcing thrust of your cock, pooling below you. You wickedly smile, slapping his ass, imagining him stretched further, his ass gaping, his cock huge and dripping with cum. The strange thoughts filling your mind seem to travel straight to your balls and distil into pools of cum. Like a long dormant volcano, you erupt, hot liquid spraying into Jojo, pumping his ass full and leaking down his legs. He cums again, harder than before, his prick pusling seeming to grow larger throughout his orgasm.\r\r"), false);
} else {
outputMainText("violating his loosened sphincter, and begin to fuck him hard. He whimpers with a mixture of pain and pleasure, a spit-lubed cock pounding his prostate mercilessly. Thick ropes of mousey-cum drool with each anus-stretcing thrust of your cock, pooling below you. You wickedly smile, slapping his ass, imagining him stretched further, his ass gaping, his cock huge and dripping with cum. The strange thoughts filling your mind seem to travel straight to your balls and distil into pools of cum. Like a long dormant volcano, you erupt, hot liquid spraying into Jojo, pumping his ass full and leaking down his legs. He cums again, harder than before, his prick pusling seeming to grow larger throughout his orgasm.\r\r", false);
};
};
outputMainText("You leave the exhausted mousey behind you, wondering how you'll take him next time. ", false);
if ((((lib > 60)) && ((cor > 40)))){
outputMainText("You smile as you hear him begin masturbating in the background. There can be no doubt, you are tainting him more and more...", false);
monk++;
stats(0, 0, 0, 0, -10, 0, -100, 4);
} else {
stats(0, 0, 0, 0, 2, 0, -100, 1);
};
};
if (gender == 2){
outputMainText((("You spread your legs and crook your finger, beckoning him towards your " + vaginaDescript()) + ". He looks disheartened, but obediently kneels before you, his whiskers tickling, his wet nose bumping your clit, his tongue taking long licks between your lips. "), false);
if (breastRating() >= 2){
outputMainText("You sigh and knead your breasts in pleasure. ", false);
};
if ((((((((lactationMultiplier >= 1.5)) && ((breastRating() > 2)))) && ((breastsPerRow >= 2)))) && ((breastRows >= 1)))){
outputMainText("Every sensual peak within you is mirrored with small spurts of milk from your nipples. It eventually trickles down to Jojo's tongue, spurring his efforts on. ", false);
};
outputMainText("The mousey gets more and more in to eating your box, making it harder and harder to stave off an orgasm. You wrap your thighs around his head and quiver with passion, ", false);
if (vaginalWetness <= 1){
outputMainText((("squeezing him tightly into your " + vaginaDescript()) + "."), false);
};
if ((((vaginalWetness > 1)) && ((vaginalWetness <= 3)))){
outputMainText("creaming his tongue liberally with girlcum.", false);
};
if (vaginalWetness == 4){
outputMainText("creaming all over him with your slobbering pussy.", false);
};
if (vaginalWetness == 5){
outputMainText((("splattering him with you girlcum from your " + vaginaDescript()) + "."), false);
};
outputMainText("\r\rYou pull the cunt-dazed mouse away reluctantly, and bend over, spreading your legs and shaking your rump. ", false);
if (((((demonTail) || (dogTail))) || (horseTail))){
outputMainText("Your tail swishes back and forth teasingly. ", false);
};
outputMainText((((((("Your tantalizing backside is too much for him. He pounces your ass in a second, penetrating your " + vaginaDescript()) + " forcefully. The knowledge that your demonic influence is responsible for his state nearly makes you cream all over his cock. You fantasize about your cunt making his cock grow longer and fatter as it corrupts him further, transforming his morals and values into cock and cum. Jojo thrashes against you, brutally pounding your ") + vaginaDescript()) + " as he orgasms. His ") + eCockDescript(1)) + " erupts inside you, the feeling of being filled with mouse-spunk drives you over the edge with him. More and more of his cum sprays inside you, unnatural amounts for a creature his size. Thick streams of the stuff escape down your thighs as your belly distends. "), false);
cuntChange(2, true);
outputMainText("\r\r", false);
outputMainText("You let the drained mouse pop free, reveling in the sensation of cum pouring from between your thighs. Jojo has already passed out behind you. ", false);
if ((((lib > 60)) && ((cor > 50)))){
outputMainText("You lean down and whisper strange un-words as you stroke his cock. It spasms and grows, cum pumping from it slowly but constantly. You walk away, leaving him in a growing puddle of what was once his morals. You don't know where the words came from, but you do know you're getting better at tempting and corrupting.", false);
monk++;
stats(0, 0, 0, 0, -10, 0, -100, 4);
} else {
stats(0, 0, 0, 0, 2, 0, -100, 1);
};
outputMainText("\r\r", false);
};
if (gender == 3){
outputMainText((("You spread your legs and crook your finger, beckoning him towards your " + vaginaDescript()) + ". He looks disheartened, but obediantly kneels before you, his whiskes tickling, his wet nose bumping your clit, his tongue taking long lips between your lips. "), false);
if (cockTotal == 1){
outputMainText((("You sigh as your " + cockDescript()) + " droops over his head. "), false);
};
if (cockTotal > 1){
outputMainText((("You sigh as your " + allCocksDescript()) + " pile atop his head. "), false);
};
if (breastRating() >= 2){
outputMainText("You sigh and kneed your breasts in pleasure. ", false);
};
if ((((((((lactationMultiplier >= 1.5)) && ((breastRating() > 2)))) && ((breastsPerRow >= 2)))) && ((breastRows >= 1)))){
outputMainText("Every sensual peak within you is mirrored with small spurts of milk from your nipples. It eventually trickles down to Jojo's tongue, spurring his efforts on. ", false);
};
outputMainText("The mousey gets more and more in to eating your box, making it harder and harder to stave off an orgasm. You wrap your thighs around his head and quiver with passion, ", false);
if (vaginalWetness <= 1){
outputMainText((("squeezing him tightly into your " + vaginaDescript()) + "."), false);
};
if ((((vaginalWetness > 1)) && ((vaginalWetness <= 3)))){
outputMainText("creaming his tongue liberally with girlcum.", false);
};
if (vaginalWetness == 4){
outputMainText("creaming all over him with your slobbering pussy.", false);
};
if (vaginalWetness == 5){
outputMainText((("splattering him with you girlcum from your " + vaginaDescript()) + "."), false);
};
if (cockTotal > 0){
outputMainText("Thick runners of your pre dribble down his neck, sticking to his fur. ", false);
};
outputMainText("\r\rYou pull the cunt-dazed mouse away reluctantly, and bend over, spreading your legs and shaking your rump. ", false);
if (((((demonTail) || (dogTail))) || (horseTail))){
outputMainText("Your tail swishes back and forth teasingly. ", false);
};
outputMainText((((((("Your tantalizing backside is too much for him. He pounces your ass in a second, penetrating your " + vaginaDescript()) + " forcefully. The knowledge that your demonic influence is responsible for his state nearly makes you cream all over his cock. You fantasize about your cunt making his cock grow longer and fatter as it corrupts him further, transforming his morals and values into cock and cum. Jojo thrashes against you, brutally pounding your ") + vaginaDescript()) + " as he orgasms. His ") + eCockDescript(1)) + " erupts inside you, the feeling of being filled with mouse-spunk drives you over the edge with him. More and more of his cum sprays inside you, unnatural amounts for a creature his size. Thick streams of the stuff escape down your thighs as your belly distends. "), false);
cuntChange(2, true);
if (cockTotal == 1){
outputMainText((("Your " + cockDescript()) + " trembles in orgasm, squirting your load into the thick forest loam. "), false);
};
if (cockTotal > 1){
outputMainText((("Your " + allCocksDescript()) + " tremble in orgasm, squirting their hot loads all over the thick forest loam. "), false);
};
outputMainText("\r\r", false);
outputMainText("You let the drained mouse pop free, reveling in the sensation of cum pouring from between your thighs. Jojo has already passed out behind you. ", false);
if ((((lib > 60)) && ((cor > 50)))){
outputMainText("You lean down and whisper strange un-words as you stroke his cock. It spasms and grows, cum pumping from it slowly but constantly. You walk away, leaving him in a growing puddle of what was once his morals. You don't know where the words came from, but you do know you're getting better at tempting and corrupting.", false);
monk++;
stats(0, 0, 0, 0, -10, 0, -100, 4);
} else {
stats(0, 0, 0, 0, 2, 0, -100, 1);
};
outputMainText("\r\r", false);
};
outputMainText("", false);
};
if (monk == 2){
outputMainText("The poor mouse is already hard...his cock throbbing eagerly, looking nearly eight inches long. You're pretty sure it wasn't that big last time.\r\r", true);
monk++;
stats(0, 0, 0, 0, -10, 0, -100, 4);
if (gender == 1){
outputMainText("You force Jojo over a log, running your hands through his fur and slapping his ass. He grunts, but it's impossible to tell if it's in frustration, anger, or arousal. You quickly force yourself back into his ass, finding it noticably stretched from your last incursion. ", false);
if (baseCockThickness >= 3){
outputMainText((("It makes little difference to your " + cockDescript()) + ", he still feels tight as a virgins cunt to you. "), false);
};
outputMainText((("You grab him by the waist and fuck him powerfully, slamming your " + cockDescript()) + " in brutally hard and fast. You notice his hands are in his crotch, feverishly masturbating his disproportionately large cock like a slut. You start leaking precum like a seive, realizing your doing it, really doing it - making this virtuous mouse into a wanton slut! You squeeze him tightly as you cum into his bowells, his belly distending slightly as your orgasm goes on and on. Trails of cum run down his fur as it becomes more than his ass can handle."), false);
if (cockTotal > 1){
outputMainText(" Your remaining equipment showers him with jizz, more than you ever thought you could produce.", false);
};
outputMainText(" The mouse moans and cums himself, with loud moans and messy splurts coating the ground every time your hips meet.\r\r", false);
outputMainText("Eventually it ends, and you drop him into the puddled spooge like a used condom. He lays there, idly stroking himself in a daze, his prick still swollen with need and dripping fluids. You can't wait to corrupt him some more.", false);
};
if ((((gender == 2)) || ((gender == 3)))){
outputMainText((((("You throw him on the soft soil of the forest and mount him. As you slide down you marvel at how he feels larger and thicker than before, deliciously so. Your " + vaginaDescript()) + " throbs in the most pleasant way as you rape his small form. You play with your clit, watching Jojo's face flit between rapture and disgust. You lick your lips and smile as the disgust vanishes, hot jets of cum painting your cunt walls. You giggle and keep fucking him, hoping that somehow your corruption and lust are influencing him, turning him into your personal fucktoy. The thought brings you over the edge. You clamp down, your ") + vaginaDescript()) + " milking, squeezing him of every drop as his prick erupts inside you. "), false);
cuntChange(1.5, true);
if ((((lactationMultiplier >= 1)) && ((lactationMultiplier < 2)))){
outputMainText("Milk squirts from your nipples, spraying him down with small droplets of your creamy tit-treat. ", false);
};
if ((((lactationMultiplier >= 2)) && ((lactationMultiplier < 3)))){
outputMainText("Streams of milk spray from your nipples in time with your pussy contractions, hosing the poor mouse down and puddling on his fur. ", false);
};
if (lactationMultiplier >= 3){
outputMainText("Gouts of milk erupt from your nipples, spraying continually as you cum. The poor mouse is soaked from head to toe, your cream utterly drenching the monk. ", false);
};
if (vaginalWetness == 5){
outputMainText((("Your " + vaginaDescript()) + " drenches him with your squirting girl-cum, mixed with his own seed."), false);
};
if (cockTotal == 1){
outputMainText((("Jizz sprays onto his chest from your " + cockDescript()) + ". "), false);
};
if (cockTotal == 2){
outputMainText((("A hail of jizz splatters over Jojo from your " + allCocksDescript()) + ". "), false);
};
if (cockTotal == 3){
outputMainText((("A multitude of thick cum-streams splatter over Jojo from head to waist as your " + allCocksDescript()) + " hose him down. "), false);
};
outputMainText("\r\rSatisfied at last, you pull yourself away from the dazed mouse. His shaft is still swollen with need, his hands irresistably stroking it, eyes vacant. You're going to corrupt him so much more next time.\r\r", false);
};
};
if (monk == 1){
outputMainText("You pretend to agree, and follow Jojo into the woods. You bide your time, waiting for him to relax. Eventually the the mouse stumbles, and you have your chance!\r\r", true);
if (gender == 1){
outputMainText("You push him hard, following through to pin his small frame. He struggles but you twist his arm expertly and hold him down with your larger bodyweight. He squirms as you cut tear off the bottom of his outfit, protesting mightily as you force him into the dirt and expose his toned bottom.\r\r", false);
if (cockTotal == 1){
outputMainText((((("You grin and press your " + cockDescript()) + " against him, making him squeel in protest. You press on, eager to violate his tight asshole, reveling in the crushing tightness. His muscles quiver nervelessly as you pound him raw, his muted protests getting weaker as you notice a rapidly swelling bulge under him. You reach around and begin jerking him off as you fuck him, fantasizing about pouring him full of corruptive demon power, making him your slave. The dirty thoughts make your balls feel full, a pulsing squeezing tightness building in your nethers as your ") + cockDescript()) + " flexes and bulges inside your prey. You cum hard, pressing his muzzle into the dirt as you pump glob after glob of cum up his ass, violating him to his core.\r\r"), false);
outputMainText((("With a satisfied sigh, you pull your " + cockDescript()) + " out with an audible 'pop'. Your cum begins leaking out, pooling under him and mixing with his own. The little guy must have cum hard, he seems fairly comatose. As you leave your senseless victim, you realize you feel more satisfied than you have in a while, almost like you've cum so hard it took some of your libido with it."), false);
stats(0, 0, 0, 0, -10, 0, -100, 4);
monk++;
return;
};
outputMainText((((("You grin and press your " + allCocksDescript()) + " against him, making him squeel in protest. You press on, eager to violate his tight asshole, reveling in the crushing tightness. His muscles quiver nervelessly as you pound him raw, his muted protests getting weaker as you notice a rapidly swelling bulge under him. You reach around and begin jerking him off as you fuck him, fantasizing about pouring him full of corruptive demon power, making him your slave. The dirty thoughts make your balls feel full, a pulsing squeezing tightness building in your nethers as your ") + cockDescript()) + " flexes and bulges inside your prey. You cum hard, pressing his muzzle into the dirt as you pump glob after glob of cum up his ass, violating him to his core. Cum sprays over his ass, the rest of your equipment soaking him as it cums as hard as the one you sank up into the rabbit-hole.\r\r"), false);
outputMainText((("With a satisfied sigh, you pull your " + cockDescript()) + " out with an audible 'pop'. Your cum begins leaking out, pooling under him and mixing with his own. The little guy must have cum hard, he seems fairly comatose. As you leave your senseless victim, you realize you feel more satisfied than you have in a while, almost like you've cum so hard it took some of your libido with it."), false);
stats(0, 0, 0, 0, -10, 0, -100, 4);
monk++;
return;
};
if (gender == 2){
outputMainText("You smack the back of his head hard, dazing him. You spin him around as you take his feet out from under him, one hand pulling his pants while the other slashes his belt. He literally 'falls out of his pants' and onto the soft earth of the forest. You pounce the stunned monk, shedding your own clothes and pinning him to the ground. He begins to resist, squirming under you ", false);
if (vaginalWetness < 2){
outputMainText("but the sensation of you grinding your folds against him momemtarily breaks his will to resist. ", false);
} else {
outputMainText((("but the feeling of your " + vaginaDescript()) + " grinding against his hardening cock robs him of any will to resist. "), false);
};
outputMainText((((("You smile when you realize how large he is for his frame, and mount him, taking care to keep him pinned hard to the ground.\r\rHe lets out little grunts and whines of protest as you ride him hard, but quickly cums. The flood of warmth inside your canal only serves to spur you on, slamming your " + vaginaDescript()) + " down on him with brutal force. You envision yourself raping others, corrupting all those you come across with your needy pussy. You imagine what it must be like to be a succubus, fucking poor monks like this, your magics making your victims manhoods ever larger. The thought breaks over you like a wave and you cum, hard, your ") + vaginaDescript()) + " clamping down hard on Jojo's cock as he finds himself cumming again, eyes rolling back in his head. You shudder and moan, cum squirting out of your fuck-hole with each bounce on the poor mouse. "), false);
cuntChange(1, true);
if ((((lactationMultiplier >= 1)) && ((lactationMultiplier < 2)))){
outputMainText("Milk squirts from your nipples, spraying him down with small droplets of your creamy tit-treat. ", false);
};
if ((((lactationMultiplier >= 2)) && ((lactationMultiplier < 3)))){
outputMainText("Streams of milk spray from your nipples in time with your pussy contractions, hosing the poor mouse down and puddling on his fur. ", false);
};
if (lactationMultiplier >= 3){
outputMainText("Gouts of milk erupt from your nipples, spraying continually as you cum. The poor mouse is soaked from head to toe, your cream utterly drenching the monk. ", false);
};
outputMainText("\r\rYou stand on wobbly legs, happy to have so thoroughly fucked such a chaste and good-natured creature. You vow to do it again soon, realizing you feel more clearheaded, if a bit more evil.", false);
stats(0, 0, 0, 0, -10, 0, -100, 4);
monk++;
return;
};
if (gender == 3){
outputMainText("You push him hard, following through to pin his small frame. He struggles but you twist his arm expertly and hold him down with your larger bodyweight. He squirms as you cut tear off the bottom of his outfit, protesting mightily as you force him into the dirt and expose his toned bottom.\r\r", false);
if (cockTotal == 1){
outputMainText((((("You grin and press your " + cockDescript()) + " against him, making him squeel in protest. You press on, eager to violate his tight asshole, reveling in the crushing tightness. His muscles quiver nervelessly as you pound him raw, his muted protests getting weaker as you notice a rapidly swelling bulge under him. You reach around and begin jerking him off as you fuck him, fantasizing about pouring him full of corruptive demon power, making him your slave. The dirty thoughts make your balls feel full, a pulsing squeezing tightness building in your nethers as your ") + cockDescript()) + " flexes and bulges inside your prey. You cum hard, pressing his muzzle into the dirt as you pump glob after glob of cum up his ass, violating him to his core. Your pussy quivers, cumming as well, feeling empty. You resolve to take his cock's virginity next time."), false);
if ((((lactationMultiplier >= 1)) && ((lactationMultiplier < 2)))){
outputMainText("Milk squirts from your nipples, spraying him down with small droplets of your creamy tit-treat. ", false);
};
if ((((lactationMultiplier >= 2)) && ((lactationMultiplier < 3)))){
outputMainText("Streams of milk spray from your nipples in time with your pussy contractions, hosing the poor mouse down and puddling on his fur. ", false);
};
if (lactationMultiplier >= 3){
outputMainText("Gouts of milk erupt from your nipples, spraying continually as you cum. The poor mouse is soaked from head to toe, your cream utterly drenching the monk. ", false);
};
outputMainText((("\r\rWith a satisfied sigh, you pull your " + cockDescript()) + " out with an audible 'pop'. Your cum begins leaking out, pooling under him and mixing with his own. The little guy must have cum hard, he seems fairly comatose. As you leave your senseless victim, you realize you feel more satisfied than you have in a while, almost like you've cum so hard it took some of your libido with it."), false);
stats(0, 0, 0, 0, -10, 0, -100, 4);
monk++;
return;
} else {
outputMainText((((("You grin and press your " + allCocksDescript()) + " against him, making him squeel in protest. You press on, eager to violate his tight asshole, reveling in the crushing tightness. His muscles quiver nervelessly as you pound him raw, his muted protests getting weaker as you notice a rapidly swelling bulge under him. You reach around and begin jerking him off as you fuck him, fantasizing about pouring him full of corruptive demon power, making him your slave. The dirty thoughts make your balls feel full, a pulsing squeezing tightness building in your nethers as your ") + cockDescript()) + " flexes and bulges inside your prey. You cum hard, pressing his muzzle into the dirt as you pump glob after glob of cum up his ass, violating him to his core. Cum sprays over his ass, the rest of your equipment soaking him as it cums as hard as the one you sank up into the rabbit-hole. Your pussy quivers, cumming as well, feeling empty. You resolve to take his cock's virginity next time."), false);
if ((((lactationMultiplier >= 1)) && ((lactationMultiplier < 2)))){
outputMainText("Milk squirts from your nipples, spraying him down with small droplets of your creamy tit-treat. ", false);
};
if ((((lactationMultiplier >= 2)) && ((lactationMultiplier < 3)))){
outputMainText("Streams of milk spray from your nipples in time with your pussy contractions, hosing the poor mouse down and puddling on his fur. ", false);
};
if (lactationMultiplier >= 3){
outputMainText("Gouts of milk erupt from your nipples, spraying continually as you cum. The poor mouse is soaked from head to toe, your cream utterly drenching the monk. ", false);
};
outputMainText((("\r\rWith a satisfied sigh, you pull your " + cockDescript()) + " out with an audible 'pop'. Your cum begins leaking out, pooling under him and mixing with his own. The little guy must have cum hard, he seems fairly comatose. As you leave your senseless victim, you realize you feel more satisfied than you have in a while, almost like you've cum so hard it took some of your libido with it."), false);
stats(0, 0, 0, 0, -10, 0, -100, 4);
monk++;
return;
};
};
};
};
if (_arg1 == 54){
outputMainText("As you take the winding path up through the rocky trail, you come upon the opening to a cave. Peering inside, the stench of an overpowering musk washes over you. The primal scent excites you, causing you to become aroused almost immediately. Not thinking as clearly as you normally might, you slowly sneak your way into the cave. Signs of life litter the cave floor.\r\r", true);
outputMainText("Suddenly you're grabbed from behind, your arms held together by a single massive, furry hand. A heavy, snorting breath brushes the top of your head. You turn your neck to see a massive bull-man. His impressive dick presses into the small of your back as it grows larger and harder, smearing its precum into your skin and making you shiver. ", false);
if (vaginas > 0){
outputMainText((("The bull-man roughly grabs your hair and begins rubbing the flared head of his penis along your " + vaginaDescript()) + ". "), false);
if (vaginalWetness < 2){
outputMainText((("You aren't very wet, and fear the damage this beast will inflict on your " + vaginaDescript()) + ". "), false);
} else {
outputMainText("You're shamefully wet by this point, and your knees are ready to buckle. ", false);
};
} else {
outputMainText("The bull-man roughly grabs your hair and repositions himself to press against your asshole, slowly building the pressure until suddenly, the flared head pops into you. ", false);
};
outputMainText("\r\rToo soon he lifts you into the air, with little effort hefting your insignificant weight, and roughly impales you onto his shaft, forcing himself as far into you as he can manage. You cry out, and looking down you can see your stomach distending to accommodate his incredible size. Using you like a human cock-sleeve, he simply holds you by the torso and begins lifting you up and down. ", false);
if ((((((breastRating() > 0)) && ((breastsPerRow > 1)))) && ((breastRows > 0)))){
outputMainText("He manhandles your tits as he does so, almost violently squeezing and stretching them to his enjoyment. ", false);
if (lactationMultiplier > 1.5){
outputMainText("He then gives a grunt in what you take to be approval as your milk begins to squirt out. He licks a milk-coated finger in satisfaction. ", false);
};
};
if (cockTotal == 1){
outputMainText((("The bull-man bends forward a little, and grabs your " + cockDescript()) + " in a crushing grip. He makes short jerking motions as he keeps thrusting into you."), false);
};
if (cockTotal > 1){
outputMainText((("The bull-man bends forward a little, and grabs one of your " + cockDescript()) + "s in a crushing grip. He makes short jerking motions as he keeps thrusting into you."), false);
};
outputMainText("\r\rFinally, you can feel he's ready to cum. His thrusts become shorter and faster, and just when you think you can't stand it anymore he starts shooting his sperm into you. You notice your stomach beginning to round out from the sheer ammount of bull seed being pumped into your belly. ", false);
stats(0, 0, 0, 0, 1, -0.5, 0, 1);
if (vaginas > 0){
if (vaginalWetness >= 2){
if (vaginalWetness < 4){
outputMainText("You squirm and quiver, orgasming from the beast's rough usage. ", false);
};
if (vaginalWetness == 4){
outputMainText((("You squirm and quiver, orgasming from the beast's rough usage, soaking him with your " + vaginaDescript()) + ". "), false);
};
if (vaginalWetness == 5){
outputMainText("You orgasm on his massive rod, splattering the beast with girlcum. ", false);
};
stats(0, 0, 0, 0, 0.5, 0, -100, 1);
};
if (vaginalWetness < 2){
outputMainText("You gasp in pain, your cunt rubbed raw by the rough and violent penetration. ", false);
stats(0, -0.5, 0, 0, 0, 0, -5, 1);
};
};
if ((((cockTotal > 0)) && (((sen + rando(40)) > 50)))){
outputMainText("You orgasm, ", false);
if (cumQuantity() < 5){
outputMainText("spurting your seed helplessly from the brutal rape. ", false);
};
if ((((cumQuantity() >= 5)) && ((cumQuantity() < 7)))){
outputMainText("squirting thick ropes of cum over the cave. ", false);
};
if ((((cumQuantity() >= 7)) && ((cumQuantity() < 10)))){
outputMainText("erupting potent ropes of seed in thick bursts, splattering the cave walls and floors. ", false);
};
if (cumQuantity() >= 10){
outputMainText((("erupting a thick torrent of seed that seems to go on forever, spurred by the constant pressure of the huge minotaur cock. You paint the cave wall with cum, the beast egging you on as it roughly jacks your " + cockDescript()) + ". You are vaguely aware of your orgasm dragging on and on, until eventually your orgasm stops, leaving a sizable puddle of cum on the floor. "), false);
};
stats(0, 0, 0, 0, 0.5, 0, -100, 1);
};
if (vaginas > 0){
cuntChange(4, true);
};
outputMainText("The bull-man relaxes for a moment, then shoves you off of him and to the cold ground. You pass out.\r\rYou awaken several hours later. The bull-man is nowhere to be seen, so you make a hasty exit.", false);
doNext(3);
};
if (_arg1 == 55){
doNext(3);
outputMainText("You awake an indeterminable time later, covered in warm sticky mouse spoo. You feel sore all over...particularly from your leaking backside. The scent and feel of it seems to cloud your mind, egging on a more noticable libido.\r\r", true);
if (cockTotal > 0){
if (cockTotal == 1){
outputMainText("You do your best to ignore your surging erection as you clean up and prepare to limp back towards your camp. ", false);
} else {
outputMainText("You do your best to ignore your throbbing erections as you clean up and prepare to limp back to your camp. ", false);
};
} else {
if (vaginas > 0){
outputMainText((("You catch your hand sneaking down to your " + vaginaDescript()) + " and fight to pull it away, eventually staggering to your feet and limping back towards camp. "), false);
} else {
outputMainText("You suppose your lack of genitals makes it easier to handle your lust, and stagger off towards your camp. ", false);
};
};
stats(0, 0, 0, 0, 0, 0, -100, 0);
hideUpDown();
stats(0, 0, 0, 0, 4, 1, 50, 2);
statDisplay();
};
if (_arg1 == 100){
hideUpDown();
stats(0, 1, 0, -0.5, 2, 1, -100, 0.5);
if (gender == 1){
outputMainText("You next feel the wretched sensation of another tentacle pushing its way past your anus and unto your rectum. You cry more out of frustration and anger than pain as the foreign body settles a few inches inside your body. With a furious, coordinated rhythm, the monstrosity begins swelling the tentacle in your ass and ", true);
if (cockTotal == 1){
outputMainText((("using a sucking-stroking motion on your helpless " + allCocksDescript()) + ". The swelling of the ass tentacle pressures your prostate in a paradoxical pleasurable and painful manner. You realize, much to your terror, that this beast is MILKING you of your semen!"), false);
} else {
outputMainText((("using a sucking-stroking motion on your " + allCocksDescript()) + ". The swelling of the ass tentacle pressures your prostate in a paradoxical pleasurable and painful manner. You realize, much to your terror, that this beast is MILKING you of your semen!"), false);
};
outputMainText("\r\rHelpless and overwhelmed by the pleasure of such rough and primal stimulation, all you can do is give the creature what it wants; your hot cum. Your body only responds to the sensations from your ", false);
if (cockTotal == 1){
outputMainText((((allCocksDescript() + " and ass and in a very short time, your phallus explodes, launching stream upon stream of hot, thick cum into the horror. Your hips and pelvis buck violently with each thrust as the creature masterfully strokes your ") + allCocksDescript()) + " and milks your prostate of your fluids. You cry with each orgasm, prompting the thing to milk you harder. After an eternity of successive ejaculations, the creature withdraws its unholy arms and leaves you in a bruised, lacerated, overfucked heap on the ground, discarded like a person throws away a corn cob after a meal."), false);
} else {
outputMainText((((allCocksDescript() + " and ass and in a very short time, your dicks explode, launching stream upon stream upon stream of hot, thick cum into the horror. Your hips and pelvis buck violently with each thrust as the creature masterfully strokes your ") + allCocksDescript()) + " and milks your prostate of your fluids. You cry with each orgasm, prompting the thing to milk you harder. After an eternity of successive ejaculations, the creature withdraws its unholy arms and leaves you in a bruised, lacerated, overfucked heap on the ground, discarded like a person throws away a corn cob after a meal."), false);
};
};
if (gender == 2){
outputMainText("The beast rears up to reveal a beak-like maw. It opens its massive jaws to reveal ", true);
if (vaginas == 1){
outputMainText("a tongue shaped like a large cock. It extends its tongue like any tentacle or limb and immediately seeks out your defenseless pussy. It prods itself mockingly around your labia as you attempt to contract to keep it from violating you and depriving you of what dignity you have left. The creature flexes its appendage and easily forces its way into your vagina", false);
} else {
outputMainText((((vaginas + " tongues shaped like large cocks. It extends its tongues like any other tentacles and seeks out your defenseless pussies. It prods itself mockingly around your labias as you attempt to contract to keep them from violating you and depriving you of what dignity you have left. The creature flexes its appendages and easily forces its way into your ") + vaginaDescript()) + "s"), false);
};
if (vaginas > 1){
outputMainText("s", false);
};
outputMainText(". As you cry out in shock, you are greeted by having another dick-shaped appendage force its way into your throat. The beast takes care to prevent you from choking on its limb.", false);
outputMainText(("\r\rIn a coordination that can only signify higher intelligence, the monster fucks your " + vaginaDescript()), false);
if (vaginas > 1){
outputMainText("s", false);
};
outputMainText(" and mouth and begins milking your swollen breasts and sucks your throbbing ", false);
if (vaginas > 1){
outputMainText("clits. ", false);
} else {
outputMainText("clit. ", false);
};
outputMainText((" Your body betrays your resistance as pleasure hammers you from crotch to head. After some time, you begin bucking your hips in tandem to the creature's thrusts, drunk with pleasure. As you peak for your orgasm, you feel the creature bottom out inside your womb. Oceans of hot cum flood your " + vaginaDescript()), false);
if (vaginas > 1){
outputMainText("s", false);
};
outputMainText(" and your mouth. You are being inseminated by the abomination, but you do not care. The fucking is too good. The hot, musky fluids pour into your mouth. The taste crushes your last bit of resistance and you NEED MORE. You manage to free one hand, only to grasp the tentacle in your mouth to coax more semen inside you. You feel your stomach distend from the amount of cum you greedily swallow. The beast floods you with more cum than you can handle and proceeds to soak you from head to toe in its fluids as it runs from your overwhelmed orifices.", false);
doNext(101);
lactationMultiplier = (lactationMultiplier + 0.5);
return;
};
if (gender == 3){
if (cockTotal == 1){
outputMainText(((((((("A sharp tug tells you that the creature has sealed itself upon your " + cockDescript()) + ". You see ") + breastTotal) + " smaller tentacles latch onto your erect nipples. You feel milk begin to leak out as the creature makes a perfect seal around your areola. A thick, phallic tentacle probes underneath your trapped ") + cockDescript()) + " until it finds your vaginal opening. You cry out as the member punches past your opening and bottoms out in your womb. The tentacle swells up until it completely fills your ") + vaginaDescript()), true);
if ((((vaginalLooseness == 4)) && ((rando(5) == 0)))){
vaginalLooseness++;
};
if ((((vaginalLooseness == 3)) && ((rando(4) == 0)))){
vaginalLooseness++;
};
if ((((vaginalLooseness == 2)) && ((rando(2) == 0)))){
vaginalLooseness++;
};
if ((((vaginalLooseness == 0)) || ((vaginalLooseness == 1)))){
vaginalLooseness++;
};
outputMainText(((((((((((" With freakish coordination, the beast sucks your " + cockDescript()) + " and tits while hammering away at your ") + vaginaDescript()) + ". The overwhelming pleasure courses through your body and triggers an immediate orgasm, sending gouts of cum into the tentacle sealed around your ") + cockDescript()) + ". The sensation of your fluids entering the creature prompts it to suck your ") + cockDescript()) + " harder as well as hammer your ") + vaginaDescript()) + " faster, leading to a chain of orgasms.\r\r"), false);
outputMainText("Drunk with pleasure, you revel in the sensation of cumming into the creature while it breast feeds from you. All you can do is drown in the experience of being milked from top to bottom. The creature begins piledriving your box faster and you feel like the creature is going to impale you with its phallic tentacle.\r\r", false);
outputMainText((("The creature's milking tentacles stop moving and you feel the dick-tentacle press sharply against your womb. You feel the thunderous force of hot fluid lance into your body as the creature cums repeatedly inside you, triggering yet another orgasm. The creature cums in surges and shoots repeatedly inside you. Within moments, excess cum spews out of your " + vaginaDescript()) + " as it cannot hold anymore, but the creature keeps cumming.\r\r"), false);
outputMainText("After a while the creature withdraws its tentacles from you. It poises the tentacle-cock over your face and lets out one last load, covering your face in hot, thick sperm. You reflexively open your mouth and allow loads of the salty juice down your throat. Once spent, the creature shambles off, leaving you well milked and cum-soaked.", false);
} else {
outputMainText(((((("A sharp tug tells you that the creature has sealed itself upon your " + allCocksDescript()) + ". You see ") + breastTotal) + " smaller tentacles latch onto your erect nipples. You feel milk begin to leak out as the creature makes a perfect seal around your areola. A thick, phallic tentacle probes underneath your trapped cocks until it finds your vaginal opening. You cry out as the member punches past your opening and bottoms out in your womb. The tentacle swells up until it completely fills your ") + vaginaDescript()), true);
if ((((vaginalLooseness == 4)) && ((rando(5) == 0)))){
vaginalLooseness++;
};
if ((((vaginalLooseness == 3)) && ((rando(4) == 0)))){
vaginalLooseness++;
};
if ((((vaginalLooseness == 2)) && ((rando(2) == 0)))){
vaginalLooseness++;
};
if ((((vaginalLooseness == 0)) || ((vaginalLooseness == 1)))){
vaginalLooseness++;
};
outputMainText(((((((" With freakish coordination, the beast sucks your " + allCocksDescript()) + " and tits while hammering away at your ") + vaginaDescript()) + ". The overwhelming pleasure courses through your body and triggers an immediate orgasm, sending gouts of cum into the tentacles sealed around your pricks. The sensation of your fluids entering the creature prompts it to suck your throbbing cocks harder as well as hammer your ") + vaginaDescript()) + " faster, leading to a chain of orgasms.\r\r"), false);
outputMainText("Drunk with pleasure, you revel in the sensation of cumming into the creature while it breast feeds from you. All you can do is drown in the experience of being milked from top to bottom. The creature begins piledriving your box faster and you feel like the creature is going to impale you with its phallic tentacle.\r\r", false);
outputMainText((("The creature's milking tentacles stop moving and you feel the dick-tentacle press sharply against your womb. You feel the thunderous force of hot fluid lance into your body as the creature cums repeatedly inside you, triggering yet another orgasm. The creature cums in surges and shoots repeatedly inside you. Within moments, excess cum spews out of your " + vaginaDescript()) + " as it cannot hold anymore, but the creature keeps cumming.\r\r"), false);
outputMainText("After a while the creature withdraws its tentacles from you. It poises the tentacle-cock over your face and lets out one last load, covering your face in hot, thick sperm. You reflexively open your mouth and allow loads of the salty juice down your throat. Once spent, the creature shambles off, leaving you well milked and cum-soaked.", false);
};
lactationMultiplier = (lactationMultiplier + 0.5);
};
doNext(3);
};
if (_arg1 == 101){
if (vaginas == 1){
outputMainText("Satisfied, the creature drops you smartly and withdraws its limbs from you and lumbers away. Covered completely in cum, you see that your clitoris swelled up to almost four inches in length. Bruised and sore, you pass into unconsciousness too intoxicated with lust to fume over your violation.", true);
} else {
outputMainText((("Satisfied, the creature drops you smartly and withdraws its limbs from you and lumbers away. Covered completely in cum, you see that your " + vaginas) + " clits swelled up to almost four inches in length. Bruised and sore, you pass into unconsciousness too intoxicated with lust to fume over your violation. "), true);
};
if (clitLength < 4){
clitLength = 4;
};
if (vaginalLooseness == 0){
vaginalLooseness = 1;
};
doNext(3);
};
if (_arg1 == 1000){
hPill();
};
if (_arg1 == 1001){
equinum();
};
if (_arg1 == 1002){
incubiDraft();
};
if (_arg1 == 1003){
succubiMilk();
};
if (_arg1 == 1004){
caninePeppers();
};
statDisplay();
if (_arg1 == 1005){
vitalityTincture();
};
if (_arg1 == 1006){
scholarsTea();
};
if (_arg1 == 1007){
ceruleanPotion();
};
if (_arg1 == 1008){
purityPhilter();
};
if (_arg1 == 1009){
numbingOil();
};
if (_arg1 == 1010){
hummanus();
};
if (_arg1 == 3000){
outputMainText("<b>GAME OVER</b>", true);
choices("BLAH", 0, "Blah", 0, " BLAH", 0, "BLAH", 0);
};
if (_arg1 == 3001){
outputMainText("You awaken in a candlelit stone shrine of some sort, resting naked and facedown on some warm, comfortable body pillows. Remembering your fight against the witch, you hurriedly try to get up, only to gasp with surprise when a painful weight pulls on your chest. Glancing down to find the source of the weight, you blink with shock, then fight rising panic – the \"pillows\" that you are lying on are your own breasts, swollen to such a size that you cannot possibly lift them!\r\r", true);
outputMainText("\"<i>Hello, my beautiful pet,</i>\" says a familiar voice. Looking to your front – and trying not to notice the vast expanse of cleavage that dominates the lower half of your vision – you see the Sand Witch sitting, nude, in a large granite basin set into the floor just in front of you. She smirks when she sees how your eyes avoid resting on your obscenely massive bust.\r\r", false);
outputMainText("\"<i>What's wrong? Don't you like them?</i>\" The witch leans toward you and roughly tugs on one huge nipple, causing you to yelp with surprise and pleasure. \"<i>I'm afraid that's too bad. You offered yourself to me, and now you are mine, all mine, forever.</i>\" She slowly rubs her hands over your colossal bosom, crooning with approval as you squirm and bite your lip. \"<i>Mmm, yes... first, you will give me a bath.</i>\"\r\rYou hardly have time to wonder what she means before a familiar, hugely intense pressure builds in your chest...", false);
doNext(3002);
};
if (_arg1 == 3002){
outputMainText("With an audible gurgling noise, your breasts begin to fill with prodigious quantities of milk. Your eyes widen in amazement when you feel your tits swelling, filling, pumping up to their limits. It feels shockingly pleasurable and somehow almost right, like you were meant to have these shamefully huge, milk-filled titties. As you watch the soft flesh stretch taut, your breasts fatten into a very round shape beneath you, and the pleasurable sensation becomes a painful feeling of urgency.\r\r", true);
outputMainText("For a moment nothing happens, and you are surprised that your nipples are not leaking milk. The Sand Witch smiles at you, leaning to rest her arms and chin on your overstressed tits, and speaks: \"<i>Ask to be milked, slave.</i>\" Apalled, you shake your head, then grit your teeth and moan as you realize that the pressure in your chest is still building up, becoming unbearably painful. The witch patiently repeats herself, staring directly into your eyes, and you are struck by the awful knowledge that you are likely to be trapped here forever.", false);
doNext(3003);
};
if (_arg1 == 3003){
outputMainText("Something breaks within your soul, accompanied by a strangled sob. Tears of humiliation trickle down your face as you part your quivering lips. \"<i>Please milk me, Mistress. Your slave needs to be milked.</i>\"\r\rNo sooner have you spoken than a huge torrent of milk spurts from each of your nipples. Between the sudden alleviation of your pain and the sensitivity of your nipples, you orgasm almost instantly with a huge groan of relief. When you can focus your eyes again, you see that the Sand Witch... your new Mistress... is bathing languidly in the basin, relaxing in a pool of your fresh breastmilk.\r\r", true);
outputMainText("The dusky-skinned witch catches your eye and smiles, this time more warmly than before. \"<i>See? You'll enjoy yourself more if you obey your Mistress. After all, I <b>ALWAYS</b> get what I want...</i>\"\r\rAs much as you hate to admit it, you realize that she's right. You're trapped here on top of your bloated bust, at the mercy of this perverse spellcaster. She has all the time in the world to train you, and between the pain of overfilled breasts and the orgasmic joy of being drained, it won't take her long to turn you into a perfectly obedient, even eager, milk-slave...", false);
doNext(3000);
};
if (_arg1 == 5013){
mimicTentacle1();
};
if (_arg1 == 5014){
mimicTentacle2();
};
if (_arg1 == 5015){
mimicTentacleEnd();
};
if (_arg1 == 5016){
foundItem = 1008;
doEvent(8);
return;
};
if (_arg1 == 5017){
foundItem = 1009;
doEvent(8);
return;
};
if (_arg1 == 5018){
foundItem = 1010;
doEvent(8);
return;
};
if (_arg1 == 5019){
findSomeGems();
doNext(3);
return;
};
if (_arg1 == 9000){
if (str > 0){
choices("Slot 1", 9001, "Slot 2", 9002, "Slot 3", 9003, "Cancel", 3);
} else {
choices("Slot 1", 9001, "Slot 2", 9002, "Slot 3", 9003, "Cancel", 9008);
};
outputMainText("Which slot will you save in?", true);
};
if (_arg1 == 9001){
if (saveGame("one")){
outputMainText("Game saved! (in slot 1)", true);
} else {
outputMainText("SAVE FAILED!", true);
};
doNext(3);
};
if (_arg1 == 9002){
if (saveGame("two")){
outputMainText("Game saved! (in slot 2)", true);
} else {
outputMainText("SAVE FAILED!", true);
};
doNext(3);
};
if (_arg1 == 9003){
if (saveGame("three")){
outputMainText("Game saved! (in slot 3)", true);
} else {
outputMainText("SAVE FAILED!", true);
};
doNext(3);
};
if (_arg1 == 9004){
if (loadGame("one")){
outputMainText("Game loaded! (from slot 1)", true);
} else {
outputMainText("LOAD FAILED!", true);
};
doNext(3);
};
if (_arg1 == 9005){
if (loadGame("two")){
outputMainText("Game loaded! (from slot 2)", true);
} else {
outputMainText("LOAD FAILED!", true);
};
doNext(3);
};
if (_arg1 == 9006){
if (loadGame("three")){
outputMainText("Game loaded! (from slot 3)", true);
} else {
outputMainText("LOAD FAILED!", true);
};
doNext(3);
};
if (_arg1 == 9007){
if (str > 0){
choices("Slot 1", 9004, "Slot 2", 9005, "Slot 3", 9006, "Cancel", 3);
} else {
choices("Slot 1", 9004, "Slot 2", 9005, "Slot 3", 9006, "Cancel", 9008);
};
outputMainText("Which slot will you load from?", true);
};
if (_arg1 == 9008){
choices("Save", 9000, "Load", 9007, "blah", 0, "bleh", 0);
outputMainText("Save or Load a file?", true);
};
if (_arg1 == 10001){
raceSelect(1);
};
if (_arg1 == 10002){
raceSelect(2);
};
if (_arg1 == 10003){
raceSelect(3);
};
if (_arg1 == 10004){
raceSelect(4);
};
if (_arg1 == 10005){
remSkillPoints = 0;
exp = tempExp;
tempExp = 0;
outputWindow.visible = true;
levelWindow(false);
doEvent(3);
};
if (_arg1 == 10006){
if (remSkillPoints == 0){
tempExp = 0;
remSkillPoints = 0;
level++;
str = tempStr;
tou = tempTou;
spe = tempSpe;
tempStr = 0;
tempTou = 0;
tempSpe = 0;
levelUp.visible = false;
outputWindow.visible = true;
doEvent(3);
levelWindow(false);
statDisplay();
};
};
}
public function rando(_arg1:Number):Number{
return (int((Math.random() * _arg1)));
}
public function queenBee():void{
outputMainText("As you approach the edge of the forest, a sweet scent wafts into your nose. Tantalizing, teasing, alluring. As you sniff the air, you find yourself following it, as if an invisible hand is pulling you toward its origin. And little do you know, that is essentially what's happening. The further and further you go, the more heavy the scent grows, as well as a sound. A sound of a buzz, but not in a maddening tone, as if someone is humming. It's a lovely tune, one that would stick in the back of the mind, but not in a bad way.\r\rThat's when she comes into view. A great woman, yellow and black, a Queen Bee would be the best comparison. She sits, humming her tune, atop a great flower. Happily picking the petals off of another flower. Her body is thin, save her abdomen. Her head is more humanoid than bee, black eyes, antennae, no nose, and a human mouth, bending into a smile as she sees you climb up onto her flower. Standing, she welcomes you in, her wings giving a small buzz as her four arms welcome you in.\r\rAs if you have lost control of your body, you fall into her arms, happy. At first, it's simple, as expected, she holds you close, but as she does, a stinger slowly emerges from her abdomen, as well as a thick knot like organ, both covered in a sweet smelling lubricant. Your mind synaesthetically sees a myriad of colors and scents, you don't resist as she gently pushes you down to your stomach. Nor do you protest as she leans over you, that stinger, thank goodness it isn't poison, looms close to your anus. With no more words she shoves the thick, lengthy stinger and knot inside of you. Her 'cock' slipping in slowly, the lube keeping you from shaking out of your scent induced pleasure coma. Your hand even venturing to your own engorged ", false);
if (cockTotal == 1){
outputMainText("member", false);
};
if (cockTotal > 1){
outputMainText("members", false);
};
outputMainText(" as she rather forcefully rapes your once tight hole. Humming her tune all the while.\r\rAfter hours of her forcefully filling your hole, her stinger pumping almost gallons of her Queen-seed into your very bowels, hours of you stroking yourself to ejaculation she finally pulls out. Her stinger, still dripping seed onto your back, she smiles, watching you blow your last load into a pool of semen underneath you. \r\rThe sun has risen and you awake, your nose full of a honey like scent, some strange fluid on your back, and the feeling of something leaking from you.", false);
stats(0, 0, 0, -0.5, 0, 0, -100, 0);
if ((((rando(3) == 0)) && ((pregnancyType == 0)))){
pregnancyIncubation = 5;
pregnancyType = 2;
};
}
public function getPenetrated(){
var _local1:Number;
_local1 = 0;
_local1 = (int((Math.random() * eTotalFuckTools)) + 1);
if (totalFuckTools >= totalUsedFuckTools){
return;
};
if (inPussy == 0){
if ((vaginalLooseness + 2) < eCockThickness){
if ((Math.random() * 2) == 0){
outputMainText((((((((((("You gasp, " + vaginaDescript()) + " stretching as ") + eShort) + "'s ") + eCockDescript(_local1)) + " presses hard against your opening, desperate for entrance, and you feel yourself painfully stretching from ") + ePronoun3) + " efforts. ") + ePronoun2) + " fails to penetrate you."), false);
} else {
outputMainText((((((("Your " + vaginaDescript()) + " is intensely pressured by ") + eShort) + "'s ") + eCockDescript(_local1)) + " as it presses against you, but it's far to thick to penetrate."), false);
};
return;
};
if (_local1 <= eCocks){
inPussyT = 1;
};
if ((((_local1 <= (eCocks + eHorseCocks))) && ((_local1 > eCocks)))){
inPussyT = 2;
};
if ((((_local1 <= ((eCocks + eHorseCocks) + eDogCocks))) && ((_local1 > (eCocks + eHorseCocks))))){
inPussyT = 3;
};
inPussy = 1;
if (vaginalLooseness == eCockThickness){
outputMainText("You get penetrated by equally sized cock!", false);
};
if (vaginalLooseness > eCockThickness){
outputMainText("You got penetrated by a smaller cock!", false);
};
if ((((vaginalLooseness < eCockThickness)) && (((vaginalLooseness + 2) >= eCockThickness)))){
outputMainText("You got stretched by a bigger cock as it penetrated you!", false);
};
};
}
public function combatStatusesUpdate():void{
hideUpDown();
if (stoneLust){
if (vaginas > 0){
if (lust < 40){
outputMainText("You squirm as the smooth stone orb vibrates within you.\r\r", false);
};
if ((((lust >= 40)) && ((lust < 70)))){
outputMainText((("Your " + vaginaDescript()) + " squeezes the magical stone in your twat tightly, reacting to the constant erotic vibrations.\r\r"), false);
};
if ((((lust >= 70)) && ((lust < 85)))){
outputMainText((("You stagger in surprise as a particularly pleasant burst of vibrations erupt from the smooth stone sphere in your " + vaginaDescript()) + ".\r\r"), false);
};
if (lust >= 85){
outputMainText("The magical orb inside of you is making it VERY difficult to keep your focus on combat, white-hot lust suffusing your body with each new motion.\r\r", false);
};
} else {
outputMainText("The orb continues vibrating in your ass, doing it's best to arouse you.\r\r", false);
};
stats(0, 0, 0, 0, 0, 0.2, (2 + (int(sen) / 10)), 0);
};
if (lust >= 100){
doNext(loseEvent);
};
}
public function clearItemSlot():void{
if (slotUsed == 1){
itemSlot1 = 0;
};
if (slotUsed == 2){
itemSlot2 = 0;
};
if (slotUsed == 3){
itemSlot3 = 0;
};
doNext(6);
}
public function titCum(_arg1:Number=3):void{
var _local2:Number = (Math.round(((nippleLength + (baseCockLength / 2)) * 100)) / 100);
var _local3:String = nippleCockDescript(_local2);
if ((((((lactationMultiplier >= 2)) && (!(nippleCocks)))) && (!(nipplesFuckable)))){
outputMainText("As orgasm after orgasm thunders through your body, you feel pressure build in your breasts and then suddenly release, as ", false);
if (lactationMultiplier <= 2.6){
outputMainText("thin streams of milk spray out of your ", false);
};
if ((((lactationMultiplier > 2.6)) && ((lactationMultiplier < 3)))){
outputMainText("thick gouts of milk spurt out of your ", false);
};
if (lactationMultiplier >= 3){
outputMainText("huge torrents of milk blast out of your ", false);
};
if (nippleLength <= 1){
outputMainText("erect nipples, ", false);
};
if ((((nippleLength > 1)) && ((nippleLength < 4)))){
outputMainText("fat, puckered nipples, ", false);
};
if (nippleLength >= 4){
outputMainText("huge, swollen teats, ", false);
};
if (lactationMultiplier <= 2.6){
outputMainText("spattering milk everywhere. ", false);
};
if ((((lactationMultiplier > 2.6)) && ((lactationMultiplier < 3)))){
outputMainText("covering everything nearby. ", false);
};
if (lactationMultiplier >= 3){
outputMainText("drenching the entire area.", false);
};
};
if (nippleCocks){
outputMainText("As your eyes roll back in orgasmic bliss, you feel a terrible pressure in your breasts. As the pressure builds, your arms go limp, and you moan with frustration. Suddenly, your moans turn into screams of pleasure as ", false);
if (_arg1 > 5){
outputMainText("huge ", false);
};
outputMainText("gouts of ", false);
if (lactationMultiplier > 0){
outputMainText("milky ", false);
};
outputMainText((("cum erupt from your " + _local3) + " swollen nippledicks. "), false);
if (_arg1 < 5){
outputMainText("After a few thick spurts, the pressure subsides, and you regain control of yourself. ", false);
};
if ((((_arg1 >= 5)) && ((_arg1 < 7)))){
outputMainText("The pressure in your tits slowly subsides as your freakish dicknipples unleash spurt after spurt of viscous goo. ", false);
};
if ((((_arg1 >= 7)) && ((_arg1 < 10)))){
outputMainText("You spasm as your engorged dicknipples unleash spurt after spurt of gooey spunk. Just when you think that the orgasm might never end, each nipplecock lets loose one last, enormous splurt of jism, and you collapse to the ground, exhausted.", false);
};
if (_arg1 >= 10){
outputMainText((("Cum is being spewed out of your " + _local3) + " dicknipples with so much force that it feels like someone is fucking you from inside your tits. Your vision blurs and fades as everything within several feet is blasted with goo."), false);
};
};
if (nipplesFuckable){
outputMainText("A strange feeling builds in your breasts as your nipples seem to tighten and quiver with anticipation. You ", false);
if (sen < 70){
outputMainText("moan with ecstacy as your freakishly swollen nipples ", false);
};
if (sen >= 70){
outputMainText("scream with ecstacy as your freakishly swollen nipples ", false);
};
if (vaginalWetness < 2){
outputMainText("dribble ", false);
};
if ((((vaginalWetness >= 2)) && ((vaginalWetness < 4)))){
outputMainText("spray ", false);
};
if (vaginalWetness >= 4){
outputMainText("gush ", false);
};
if (lactationMultiplier > 0){
outputMainText("milk and ", false);
};
outputMainText("pussy juice everywhere.", false);
};
}
public function keyboard1(_arg1:KeyboardEvent):void{
trace(("KEYBOARD INPUT WORKING:" + _arg1.keyCode));
if (_arg1.keyCode == 8){
newGameGo();
return;
};
if (((((nextButton) && (!((_arg1.keyCode == 13))))) && (!((_arg1.keyCode == 32))))){
trace("Next active and not return hit!");
return;
};
if ((((_arg1.keyCode == 65)) && (appearanceBox.visible))){
appearanceGo();
return;
};
if ((((_arg1.keyCode == 78)) && ((Choice2.text == "No")))){
if ((((button2Choice == 0)) || (!(Choice2.visible)))){
trace("'N' for no hit while inactive.");
return;
};
currEvent = button2Choice;
slotUsed = 2;
if (inCombat){
doCombatEvent(currEvent);
} else {
doEvent(currEvent);
};
return;
};
if ((((_arg1.keyCode == 89)) && ((Choice1.text == "Yes")))){
if ((((button1Choice == 0)) || (!(Choice1.visible)))){
trace("'Y' for yes hit while inactive.");
return;
};
currEvent = button1Choice;
slotUsed = 1;
if (inCombat){
doCombatEvent(currEvent);
} else {
doEvent(currEvent);
};
return;
};
if (_arg1.keyCode == 50){
if ((((button2Choice == 0)) || ((Choice2.visible == false)))){
trace("Key 2 pressed while inactive.");
return;
};
if (Choice2.text == "Forest"){
exploreForest();
return;
};
currEvent = button2Choice;
slotUsed = 2;
if (inCombat){
doCombatEvent(currEvent);
} else {
doEvent(currEvent);
};
};
if ((((((_arg1.keyCode == 49)) || ((((_arg1.keyCode == 13)) && (nextButton))))) || ((((_arg1.keyCode == 32)) && (nextButton))))){
if (nextButton){
nextButton = false;
};
if ((((button1Choice == 0)) || ((Choice1.visible == false)))){
trace("Key 1 pressed while inactive.");
return;
};
if (Choice1.text == "Desert"){
exploreDesert();
return;
};
currEvent = button1Choice;
slotUsed = 1;
if (inCombat){
doCombatEvent(currEvent);
} else {
doEvent(currEvent);
};
return;
};
if (_arg1.keyCode == 51){
if ((((button3Choice == 0)) || ((Choice3.visible == false)))){
trace("Key 3 pressed while inactive.");
return;
};
if (Choice3.text == "Lake"){
exploreLake();
return;
};
currEvent = button3Choice;
slotUsed = 3;
if (inCombat){
doCombatEvent(currEvent);
} else {
doEvent(currEvent);
};
};
if ((((((((_arg1.keyCode == 52)) || ((((((_arg1.keyCode == 13)) || ((_arg1.keyCode == 32)))) && ((Choice4.text == "Leave")))))) || ((((((_arg1.keyCode == 13)) || ((_arg1.keyCode == 32)))) && ((Choice4.text == "Return")))))) || ((((((_arg1.keyCode == 13)) || ((_arg1.keyCode == 32)))) && ((Choice4.text == "Back")))))){
if (nextButton){
nextButton = false;
};
if ((((button4Choice == 0)) || ((Choice4.visible == false)))){
trace("Key 4 pressed while inactive.");
return;
};
if (Choice4.text == "Mountain"){
exploreMountain();
return;
};
if (shop != 0){
shop = 0;
gems = (gems + shopHolding);
shopHolding = 0;
trace("Shop cancelled, adding money back in!");
};
currEvent = button4Choice;
if (inCombat){
doCombatEvent(currEvent);
} else {
doEvent(currEvent);
};
};
if (_arg1.keyCode == 87){
scrollBar.scrollPosition = (scrollBar.scrollPosition - 1);
return;
};
if (_arg1.keyCode == 83){
scrollBar.scrollPosition = (scrollBar.scrollPosition + 1);
return;
};
if ((((_arg1.keyCode == 68)) && ((dataBox.visible == true)))){
if (str > 0){
choices("Save", 9000, "Load", 9007, "blah", 0, "Cancel", 3);
} else {
choices("Save", 9000, "Load", 9007, "blah", 0, "bleh", 0);
};
outputMainText("Save or Load a file?", true);
};
}
public function succubiMilk():void{
rand = (Math.random() * 100);
if (cor < 35){
outputMainText("You wonder why in the gods' names you would drink such a thing, but you have to admit, it is the best thing you have ever tasted.", true);
};
if ((((cor >= 35)) && ((cor < 70)))){
outputMainText("You savor the incredible flavor as you greedily gulp it down.", true);
if ((((gender == 2)) || ((gender == 3)))){
outputMainText(((" The taste alone makes your " + vaginaDescript()) + " feel "), false);
if (vaginalWetness == 0){
outputMainText("tingly.", false);
};
if (vaginalWetness == 1){
outputMainText("wet.", false);
};
if (vaginalWetness == 2){
outputMainText("sloppy and wet.", false);
};
if (vaginalWetness == 3){
outputMainText("sopping and juicy.", false);
};
if (vaginalWetness >= 4){
outputMainText("dripping wet.", false);
};
} else {
outputMainText(" You feel a building arousal, but it doesn't affect your cock.", false);
};
};
if (cor >= 70){
outputMainText("You pour the milk down your throat, chugging the stuff as fast as you can. You want more.", true);
if ((((gender == 2)) || ((gender == 3)))){
outputMainText((" Your " + vaginaDescript()), false);
if (vaginas > 1){
outputMainText(" quiver in orgasm, ", false);
};
if (vaginas == 1){
outputMainText(" quivers in orgasm, ", false);
};
if (vaginalWetness == 0){
outputMainText("becoming slightly sticky.", false);
};
if (vaginalWetness == 1){
outputMainText("leaving your undergarments sticky.", false);
};
if (vaginalWetness == 2){
outputMainText("wet with girlcum.", false);
};
if (vaginalWetness == 3){
outputMainText("staining your undergarments with cum.", false);
};
if (vaginalWetness == 4){
outputMainText("leaving cunt-juice trickling down your leg.", false);
};
if (vaginalWetness == 5){
outputMainText("spraying your undergarments liberally with slick girl-cum.", false);
};
} else {
outputMainText(" You feel a strange sexual pleasure, but your cock remains unaffected.", false);
};
};
stats(0, 0, 1, 0, 0, 0, 3, 1);
if (rand <= 75){
breastChange(int(((Math.random() * 2.2) + 1)), true);
if (breastTotal < 2){
outputMainText("\r\rA perfect pair of B cup breasts, complete with tiny nipples, form on your chest.", false);
breastTotal = 2;
breastRows = 1;
breastsPerRow = 2;
nipplesPerBreast = 2;
breastCupSize = "B";
nippleLength = 0.1;
};
if (cockTotal > 0){
if ((((baseCockLength < 6)) && ((baseCockLength >= 2.9)))){
baseCockLength = (baseCockLength - 0.5);
};
lengthChange(-3);
if (baseCockLength < 3){
killCocks(1);
};
};
};
if ((((rand > 75)) && ((rand < 90)))){
if (cockTotal > 0){
if (int(((Math.random() * 3) == 1))){
killCocks(1);
};
};
if (vaginas > 0){
outputMainText("\r\r", false);
if (vaginalWetness == 5){
if (vaginas == 1){
outputMainText((("Your " + vaginaDescript()) + " gushes fluids down your leg as you spontaneously orgasm."), false);
} else {
outputMainText((("Your " + vaginaDescript()) + "s gush fluids down your legs as you spontaneously orgasm, leaving a thick puddle of pussy-juice on the ground. It is rapidly absorbed by the earth."), false);
};
lust = lib;
stats(0, 0, 0, 0, 0, 0, 0, 1);
};
if (vaginalWetness == 4){
if (vaginas == 1){
outputMainText((("Your pussy feels hot and juicy, aroused and tender. You cannot resist as your hands dive into your " + vaginaDescript()) + ". You quickly orgasm, squirting fluids everywhere. <b>You are now a squirter</b>."), false);
};
if (vaginas > 1){
outputMainText((("Your pussies feel hot and juicy, aroused and tender. You cannot resist plunging your hands inside your " + vaginaDescript()) + "s. You quiver around your fingers, squirting copious fluids over yourself and the ground. The fluids quickly disappear into the dirt."), false);
};
lust = lib;
stats(0, 0, 0, 0, 0, 0, 0, 1);
vaginalWetness++;
};
if (vaginalWetness == 3){
if (vaginas == 1){
outputMainText("You feel a sudden trickle of fluid down your leg. You smell it and realize it's your pussy-juice. It now drools lubricant constantly down your leg.", false);
};
if (vaginas > 1){
outputMainText("You feel sudden trickles of fluids down your leg. You smell the stuff and realize it's your pussies-juices. They seem to drool lubricant constantly down your legs.", false);
};
vaginalWetness++;
};
if (vaginalWetness == 2){
outputMainText("You flush in sexual arousal as you realize how moist your cunt-lips have become. Once you've calmed down a bit you realize they're still slick and ready to fuck, and will always be.", false);
vaginalWetness++;
};
if (vaginalWetness == 1){
if (vaginas == 1){
outputMainText((("A feeling of intense arousal passes through you, causing you to masturbate furiously. You realize afterwords that your " + vaginaDescript()) + " felt much wetter than normal."), false);
} else {
outputMainText((("A feeling of intense arousal passes through you, causing you to masturbate furiously. You realize afterwords that your " + vaginaDescript()) + " were much wetter than normal."), false);
};
vaginalWetness++;
};
if (vaginalWetness == 0){
outputMainText("You feel a tingling in your crotch, but cannot identify it.", false);
vaginalWetness++;
};
};
if (vaginas == 0){
vaginas++;
vaginalLooseness = 0;
vaginalWetness = 1;
clitLength = 0.25;
outputMainText((("\r\rAn itching starts in your crotch and spreads vertically. You reach down and discover an opening. You have grown a <b>new " + vaginaDescript()) + "</b>!"), false);
if (gender == 1){
gender = 3;
};
if (gender == 0){
gender = 2;
};
};
};
if (rand >= 90){
outputMainText("\r\r", false);
if ((((int(Math.random()) == 0)) && (!(demonTail)))){
if (horseTail){
outputMainText("You feel a tingling in your tail. You are amazed to discover it has shifted into a flexible demon-tail, complete with a round spaded tip.", false);
};
if (dogTail){
outputMainText("You feel a tingling in your tail. You are amazed to discover it has shifted into a flexible demon-tail, complete with a round spaded tip.", false);
};
if (((!(horseTail)) && (!(dogTail)))){
outputMainText("A pain builds in your backside...growing more and more pronounced. The pressure suddenly disappears with a loud ripping and tearing noise. You realize you now have a demon tail...complete with a cute little spade.", false);
};
stats(0, 0, 0, 0, 0, 0, 0, 3);
demonTail = true;
horseTail = false;
dogTail = false;
} else {
if (horns == 0){
outputMainText("A small pair of demon horns erupts from your forehead. They actually look kind of cute.", false);
} else {
outputMainText("Another pair of demon horns, larger than the last, forms behind the first row.", false);
};
horns++;
horns++;
stats(0, 0, 0, 0, 0, 0, 0, 2);
};
};
if (!debug){
clearItemSlot();
};
}
public function doYesNo(_arg1:Number, _arg2:Number){
Choice3Outline.visible = false;
Choice4Outline.visible = false;
Choice1Outline.visible = true;
Choice2Outline.visible = true;
appearanceText.visible = false;
appearanceBox.visible = false;
dataBox.visible = false;
dataText.visible = false;
Choice1.visible = true;
Choice2.visible = true;
Choice3.visible = false;
Choice4.visible = false;
button1Choice = _arg1;
button2Choice = _arg2;
Choice1.htmlText = "Yes";
Choice2.htmlText = "No";
}
public function eGrappleRetreat():void{
var _local1:Boolean;
if (!playerStartedGrapple){
outputMainText((("You are surprised when " + eShort) + " backs away from you."), false);
grappling = false;
};
if (((((str + 40) < estr)) && (grappling))){
outputMainText((((("You are easily brushed off from " + eShort) + " as ") + ePronoun2) + " backs away."), false);
grappling = false;
} else {
if (((((str + 20) <= ((estr + rando(60)) + 1))) && (grappling))){
outputMainText((("You gasp in surprise as " + eShort) + " squirms out of your grip and backs away!"), false);
grappling = false;
};
};
if (grappling){
if (((((str - 40) > estr)) && (grappling))){
outputMainText((("You smile as " + eShort) + " struggles pitifully against you."), false);
} else {
outputMainText((((("You smile at " + eShort) + " as ") + ePronoun2) + " fails to break free."), false);
};
};
outputMainText("\r", false);
}
public function itemScreen():void{
hideUpDown();
outputMainText("You may carry up to three consumables.\r\rYou currently have the following key items:\r", true);
if (ownsDangerousPlants){
outputMainText("*Book - Dangerous Plants\r", false);
};
if (ownsHentaiComic){
outputMainText("*Book - Hentai Comic\r", false);
};
if (ownsTravelersGuide){
outputMainText("*Book - Traveler's Guide\r", false);
};
if (ownsDildo){
outputMainText("*Sex Toy - Dildo\r", false);
};
if (ownsStimBelt){
outputMainText("*Sex Toy - Stimulation Belt\r", false);
};
if (ownsNaturalStimBelt){
outputMainText("*Sex Toy - All Natural Stimulation Belt\r", false);
};
if (ownsOnahole){
outputMainText("*Sex Toy - Plain Onahole\r", false);
};
if (ownsDeluxeOnahole){
outputMainText("*Sex Toy - Deluxe Onahole\r", false);
};
if (ownsNaturalOnahole){
outputMainText("*Sex Toy - All-Natural Onahole\r", false);
};
if (itemSlot1 == 0){
Choice1Outline.visible = false;
Choice1.visible = false;
} else {
Choice1.htmlText = itemName(itemSlot1);
Choice1.visible = true;
Choice1Outline.visible = true;
button1Choice = itemSlot1;
};
if (itemSlot2 == 0){
Choice2Outline.visible = false;
Choice2.visible = false;
} else {
Choice2.htmlText = itemName(itemSlot2);
Choice2.visible = true;
Choice2Outline.visible = true;
button2Choice = itemSlot2;
};
if (itemSlot3 == 0){
Choice3Outline.visible = false;
Choice3.visible = false;
} else {
Choice3.htmlText = itemName(itemSlot3);
Choice3.visible = true;
Choice3Outline.visible = true;
button3Choice = itemSlot3;
};
Choice4.visible = true;
Choice4Outline.visible = true;
Choice4.htmlText = "Return";
button4Choice = 3;
appearanceText.visible = false;
appearanceBox.visible = false;
dataBox.visible = false;
dataText.visible = false;
}
public function incubiDraft():void{
rand = (Math.random() * 100);
outputMainText("The draft is slick and sticky, just swallowing it makes you feel unclean.\r\r", true);
stats(0, 0, 0, 0, 0, 0, 0, 2);
if (rand < 50){
if (cockTotal == 1){
outputMainText("Your cock becomes shockingly hard. It turns a shiny inhuman purple and spasms, spurting hot demon-cum everywhere.", false);
if (int((Math.random() * 4)) == 0){
lengthChange(3);
} else {
lengthChange(1);
};
stats(0, 0, 0, 1, 2, 1, -100, 1);
};
if (cockTotal > 1){
outputMainText("All of your cocks become shockingly hard, swollen and twitching as they turn a shiny inhuman purple in color. They spasm, spraying thick gouts of hot demon-cum everywhere. Eventually they return to normal.", false);
if (int((Math.random() * 4)) == 0){
lengthChange(3);
} else {
lengthChange(1);
};
stats(0, 0, 0, 1, 3, 2, -100, 2);
};
if (cockTotal == 0){
growDemonCock((int((Math.random() * 1.2)) + 1));
};
if (int((Math.random() * 2)) == 0){
breastChange(-1, true);
};
};
if ((((rand >= 50)) && ((rand < 95)))){
if (cockTotal == 0){
growDemonCock((int((Math.random() * 2)) + 1));
};
if (cockTotal > 1){
outputMainText("Your cocks fill to full-size...and begin growing obscenely. ", false);
thicknessChange(3);
lengthChange(int(((Math.random() * 5) + 2)));
};
if (cockTotal == 1){
outputMainText("Your cock fills to it's normal size...and begins growing obscenely. ", false);
thicknessChange(2);
lengthChange(int(((Math.random() * 5) + 2)));
};
breastChange(-1, true);
};
if (rand >= 95){
if (int((Math.random() * 10)) < int((cor / 25))){
growDemonCock((rando(2) + 2));
} else {
growDemonCock(1);
};
thicknessChange(3);
breastChange(-2, true);
};
if (!debug){
clearItemSlot();
};
}
public function stimBeltUse():void{
if (((ownsStimBelt) && (!(ownsNaturalStimBelt)))){
outputMainText("Brimming with anticipation, you wind up the small gearbox on the weird contraption. You place the machine down and strip yourself naked. Stepping through the straps of the garment, you pull it up. The dildo does not come out, so you take the time to ease the artificial phallus to rest deep in your womanhood. After nestling the false cock in your pussy, you finish pulling up the belt and you tighten the straps. You lay down and you flip the switch. The machine vibrates around and inside you vigorously. Immediately, waves and cramps of pleasure swirl around your cunt and shoot up and down your spine. The machine, free of human limitations and fatigue, ceaselessly rubs and caresses your insides at impossibly high speeds. Within minutes, you begin experiencing the tell-tale contractions of an impending orgasm. With your hands free, you are able to explore your breasts and body as the device hammers away. You squeeze your ", false);
outputMainText((breastCupSize + "-cup"), false);
outputMainText(" tits as your body convulses with multiple orgasms. Savoring every moment, you relish in the pangs of delight searing your body. Eventually, the belt moves slower and slower, until it comes to a stop, along with your fun. You realize that the gears have wound down and the box needs to be wound for your pleasure to continue. Deciding not to overwhelm yourself, you carefully remove your toy and save it for another time.", false);
stats(0, 0, 0, 0, 0, -1, -100, 0);
};
if (ownsNaturalStimBelt){
outputMainText("Brimming with anticipation, you put on the gloves to avoid prematurely triggering the machine. You place the belt down and strip yourself completely. Stepping through the straps of the garment, you pull it up. You take the time to align the nodule with the opening of your womanhood. After settling the knob to the entrance to your pussy, you take off the gloves, lay back and touch the amber pads with your fingers.\r\r", false);
outputMainText("You hear a distinctive squishing sound and you feel the belt tighten around your waist and pelvis. It becomes tighter and tighter until its removal is an impossibility because of your own bulk. While you are concerned, you maintain composure as the belt eventually stops tightening. There is a pause. A couple of minutes go by and little happens. You notice that the entire front of the belt is becoming warm. It is not the typical heat from a blanket or a piece of metal, but it feels like the warmth of flesh on flesh. You hear more squishing and you feel the nodule stir and rub against your opening. Your pleasure slowly begins to build and you are stimulated and amused by the teasing the apparatus seems to produce. Without warning, you feel your cunt stretch open as something thrusts inside you.\r\r", false);
doNext(47);
};
}
public function grappleRetreat():void{
var _local1:Boolean;
_local1 = false;
playerStartedGrapple = false;
if (rando(2) == 0){
_local1 = true;
};
outputMainText("", true);
if ((((((eTemperment == 0)) || ((((eTemperment == 1)) && ((elust < 50)))))) || ((((eTemperment == 2)) && (!(_local1)))))){
outputMainText((("You break off from " + eShort) + ", who didn't want to grapple anyway."), false);
grappling = false;
};
if ((((str > (estr + 40))) && (grappling))){
outputMainText((("You easily brush off " + eShort) + " step back, assuming a combat stance."), false);
grappling = false;
} else {
if ((((((str + rando(60)) + 1) >= (estr + 20))) && (grappling))){
outputMainText((("You struggle valiantly and break free of " + eShort) + "!"), false);
grappling = false;
};
};
if (grappling){
if ((((str < (estr - 40))) && (grappling))){
outputMainText((("You can't break free of " + eShort) + "'s iron grip!"), false);
} else {
outputMainText((("Despite your best efforts, you are stuck in a grapple with " + eShort) + "."), false);
};
};
outputMainText("\r", false);
enemyAI();
}
public function clearStatuses(_arg1:Boolean):void{
stoneLust = false;
}
public function vitalityTincture():void{
outputMainText("You down the contents of the bottle. The liquid is thick and tasted remarkably like cherries. Within moments, you feel much more alert and attentive. ", true);
if (hpRestore(30)){
outputMainText("Any aches, pains and bruises you have suffered no longer hurt and you feel much better. ", false);
};
stats(1, 1, 0, 0, 0, 0, 0, 0);
if (!debug){
clearItemSlot();
};
}
public function lakeButton(_arg1:MouseEvent):void{
mountainBox.visible = false;
mountainChoice.visible = false;
desertChoice.visible = false;
desertBox.visible = false;
forestChoice.visible = false;
forestBox.visible = false;
lakeChoice.visible = false;
lakeBox.visible = false;
dataBox.visible = false;
dataText.visible = false;
exploreLake();
}
public function forestButton(_arg1:MouseEvent):void{
mountainBox.visible = false;
mountainChoice.visible = false;
desertChoice.visible = false;
desertBox.visible = false;
forestChoice.visible = false;
forestBox.visible = false;
lakeChoice.visible = false;
lakeBox.visible = false;
dataBox.visible = false;
dataText.visible = false;
exploreForest();
}
public function mimicTentacleEnd():void{
stats(0, 0, 0, -2, 0, 5, -100, 2);
outputMainText("Much to your surprise, you wake up some time later. You aren’t sure where you are, or how you got there, but you are certainly glad to be alive. You are covered in some kind of slime, and your body seems strangely sensitive. ", true);
if ((((gender == 2)) || ((gender == 3)))){
if ((((mimicAppearance == 2)) || ((mimicAppearance == 3)))){
if (vaginalLooseness == 0){
vaginalLooseness = 1;
};
if (int((Math.random() * 5)) > vaginalWetness){
vaginalWetness++;
outputMainText("<b>Strangely, even after that ordeal, your vagina seems wetter than usual.</b> ", false);
};
} else {
if (vaginalLooseness == 0){
vaginalLooseness = 1;
} else {
if ((((vaginalLooseness > 0)) && ((int((Math.random() * 5)) > vaginalLooseness)))){
vaginalLooseness++;
outputMainText("<b>Your cunt is painfully stretched from the ordeal, permanently enlarged.</b> ", false);
};
};
};
};
doNext(3);
}
public function enemyAI():void{
var _local1:Number;
var _local2:Number;
_local1 = 1;
_local2 = 1;
if (grappling){
if (eTemperment == 0){
eGrappleRetreat();
};
if (eTemperment == 1){
if (elust < 50){
eGrappleRetreat();
};
doNext(3);
return;
};
outputMainText("Lust Placeholder!!", false);
doNext(3);
return;
};
if (eSpecial1 > 0){
_local1++;
};
if (eSpecial2 > 0){
_local1++;
};
if (eSpecial3 > 0){
_local1++;
};
_local2 = int((Math.random() * _local1));
if (_local2 == 0){
doCombatEvent(5000);
};
if (_local2 == 1){
doCombatEvent(eSpecial1);
};
if (_local2 == 2){
doCombatEvent(eSpecial2);
};
if (_local2 == 3){
doCombatEvent(eSpecial3);
};
}
public function horseTitFuckSingle():void{
if (lib < 45){
outputMainText((("You grip your " + horseDescript()) + " and begin cautiously guiding it towards "), false);
};
if ((((lib >= 45)) && ((lib < 70)))){
outputMainText((("Shivering with anticipation, you place the flared tip of your " + horseDescript()) + " against the opening of "), false);
};
if (lib >= 70){
outputMainText((("Without hesitation, you shove the flared tip of your " + horseDescript()) + " into "), false);
};
if (breastRows > 1){
outputMainText("one of the ", false);
};
if (breastRows == 1){
outputMainText("one of your ", false);
};
if (nipplesPerBreast > 1){
outputMainText("many ", false);
};
if (vaginalLooseness < 2){
outputMainText("painfully stretched nipples", false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText("freakishly swollen nipples", false);
};
if (vaginalLooseness >= 4){
outputMainText("huge, bloated cunt-nipples", false);
};
if (breastRows > 1){
outputMainText(" on one of your lower breasts", false);
};
outputMainText(". ", false);
if (lactationMultiplier == 0){
if (vaginalWetness < 2){
outputMainText("Y", false);
};
if ((((vaginalWetness >= 2)) && ((vaginalWetness < 4)))){
outputMainText((("Slick juices dribble down the mottled skin of your " + horseDescript()) + " and y"), false);
};
if (vaginalWetness >= 4){
outputMainText((("Slick juices squirt out from around your " + horseDescript()) + " and y"), false);
};
} else {
if (lactationMultiplier < 2){
outputMainText((("Rivulets of milky girlgum drizzle down the mottled skin of your " + horseDescript()) + " and y"), false);
};
if (lactationMultiplier >= 2){
outputMainText((("Milky girlgum squirts out from around your " + horseDescript()) + ", staining its mottled skin white. Y"), false);
};
};
if (Math.round(baseCockThickness) >= vaginalLooseness){
if (sen < 45){
outputMainText((("ou grunt with exertion as you attempt to stuff your " + horseDescript()) + " into "), false);
};
if ((((sen >= 45)) && ((sen < 70)))){
outputMainText((("ou blink back tears as you attempt to stuff your " + horseDescript()) + " into "), false);
};
if (sen >= 70){
outputMainText((("ou scream with a combination of pain and pleasure as you attempt to stuff your " + horseDescript()) + " into "), false);
};
if (vaginalLooseness < 2){
outputMainText("the small, over-stretched opening of your swollen nipple. ", false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText("the engorged and distended opening of your fat, swollen nipple. ", false);
};
if (vaginalLooseness >= 4){
outputMainText("the gaping fuck-mouth of your inhuman nipple-cunt. ", false);
};
if (Math.round(baseCockThickness) == vaginalLooseness){
if (vaginalLooseness < 2){
outputMainText((("Your poor, tortured nipple is barely up to the task of accepting the " + horseDescript()) + ", but accept it it does. "), false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText((("The engorged opening at the end of your swollen nipple is stretched to its limit as you shove your " + horseDescript()) + " home. "), false);
};
if (vaginalLooseness >= 4){
outputMainText((("The swollen lips of your bloated nipple stretch around the flared tip of your " + horseDescript()) + " swallowing it like an enormous mouth. "), false);
};
outputMainText((("With each thrust, you bury your " + horseDescript()) + " deeper into your greedy tit. Overwhelmed by the combined sensations, your mind is barely able to cope with intese feeling of fullness where no such feeling should be possible."), false);
};
if (Math.round(baseCockThickness) > vaginalLooseness){
if (vaginalLooseness < 2){
outputMainText((("Your poor, tortured nipple is woefully insufficient compared to your " + horseDescript()) + ", delerious with arousal, you keep trying anyway. "), false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText((("The engorged opening at the end of your swollen nipple is stretched to its limits and beyond as you shove your " + horseDescript()) + " home. "), false);
};
if (vaginalLooseness >= 4){
outputMainText((("The swollen lips of your bloated nipple gape wide, but the flared tip of your " + horseDescript()) + " spreads them even wider. "), false);
};
outputMainText((((("Grunting and sweating with effort, you stuff as much of your " + horseDescript()) + " into your overstretched nipple as you can fit. The feeling of incredible tightness around your ") + horseDescript()) + " combines with the pain of your distended nipple to form a mindbending sensation that makes your head spin. "), false);
};
if (lactationMultiplier > 0){
outputMainText("Milky ", false);
} else {
outputMainText("Slick ", false);
};
if (vaginalWetness < 2){
outputMainText((("girl-lube quickly coats the whole length of your " + horseDescript()) + " in a glistening layer of fuck juice. "), false);
};
if ((((vaginalWetness >= 2)) && ((vaginalWetness < 4)))){
outputMainText((("girl-lube drizzles down the length of your " + horseDescript()) + " in thick streams, pooling in and around your sheath. "), false);
};
if (vaginalWetness >= 4){
outputMainText((("girl-lube spurts out of your tortured nipple with each thrust of your " + horseDescript()) + ", spattering your arms and face with your secretions. "), false);
};
};
if (Math.round(baseCockThickness) < vaginalLooseness){
if (sen < 45){
outputMainText((("ou sigh with pleasure as your " + horseDescript()) + " slides into "), false);
};
if ((((sen >= 45)) && ((sen < 70)))){
outputMainText((("ou moan with pleasure as your " + horseDescript()) + " slides into "), false);
};
if (sen >= 70){
outputMainText((("ou scream with delight as your " + horseDescript()) + " slides into "), false);
};
if (vaginalLooseness < 2){
outputMainText((("the small, over-stretched opening of your swollen nipple. Your " + horseDescript()) + " penetrates your swollen nipple easily, sliding half way in on your first thrust. "), false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText((("the engorged and distended opening of your fat, swollen nipple. Your " + horseDescript()) + " plunges deeply into your freakishly engorged nipple, penetrating it easily. "), false);
};
if (vaginalLooseness >= 4){
outputMainText((("the gaping fuck-mouth of your inhuman nipple-cunt. The swollen lips of your bloated nipple engulf the flared tip of your " + horseDescript()) + " and begin to slide down its length, swallowing it completely. "), false);
};
outputMainText((("You revel in the sensation as you slowly stroke your " + horseDescript()) + " in and out of your distended nipple. Your shaft is enveloped in the warm, wet embrace of your freakish tit, and "), false);
if (lactationMultiplier > 0){
outputMainText("milky ", false);
} else {
outputMainText("slippery ", false);
};
if (vaginalWetness < 2){
outputMainText((("girl-lube quickly coats the whole length of your " + horseDescript()) + " in a glistening layer of fuck juice. "), false);
};
if ((((vaginalWetness >= 2)) && ((vaginalWetness < 4)))){
outputMainText((("girl-lube drizzles down the length of your " + horseDescript()) + " in thick streams, pooling in and around your sheath. "), false);
};
if (vaginalWetness >= 4){
outputMainText((("girl-lube pours out of your swollen nipple over your " + horseDescript()) + " and hands, pooling on the ground below you. "), false);
};
};
}
public function hideUpDown():void{
strUp.visible = false;
touUp.visible = false;
speUp.visible = false;
inteUp.visible = false;
libUp.visible = false;
senUp.visible = false;
hpUp.visible = false;
lustUp.visible = false;
corUp.visible = false;
expUp.visible = false;
strDown.visible = false;
touDown.visible = false;
speDown.visible = false;
inteDown.visible = false;
libDown.visible = false;
senDown.visible = false;
hpDown.visible = false;
lustDown.visible = false;
corDown.visible = false;
expDown.visible = false;
}
public function hPill():void{
rand = (Math.random() * 100);
if (hpRestore(50)){
outputMainText("Some of your wounds are healed. ", true);
} else {
outputMainText("You feel an odd sensation. ", true);
};
if (rand < 70){
outputMainText("You feel a sense of warmth spread through your erogenous areas.", false);
stats(0, 0, 0, 0, 0, 0, 5, 0);
};
if ((((rand >= 70)) && ((rand <= 90)))){
outputMainText("Your body tingles and feels more sensitive.", false);
stats(0, 0, 0, 0, 0, 4, 0, 0);
};
if (rand > 90){
outputMainText("You shudder as a small orgasm passes through you. When you recover you actually feel more aroused.", false);
stats(0, 0, 0, 0, 5, 0, 0, 0);
};
if (!debug){
clearItemSlot();
};
}
public function raiseTou(_arg1:MouseEvent):void{
if (remSkillPoints > 0){
remSkillPoints--;
tempTou++;
};
levelPaneRefresh();
}
function __setProp_scrollBar_Scene1_TextFields_0(){
try {
scrollBar["componentInspectorSetting"] = true;
} catch(e:Error) {
};
scrollBar.direction = "vertical";
scrollBar.scrollTargetName = "outputWindow";
scrollBar.visible = true;
try {
scrollBar["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
public function lustCap():Number{
return ((100 + (cor / 2)));
}
public function dogDescript():String{
var _local2:Number;
var _local1 = "";
if (int((Math.random() * 3)) == 0){
if (baseCockLength < 3){
_local1 = "toy-sized ";
};
if ((((baseCockLength >= 3)) && ((baseCockLength < 5)))){
_local1 = "short ";
};
if ((((baseCockLength >= 5)) && ((baseCockLength < 7)))){
_local1 = "average ";
};
if ((((baseCockLength >= 7)) && ((baseCockLength < 9)))){
_local1 = "long ";
};
if ((((baseCockLength >= 10)) && ((baseCockLength < 13)))){
_local1 = "mastiff-length ";
};
if ((((baseCockLength >= 13)) && ((baseCockLength < 18)))){
_local1 = "giant ";
};
if ((((baseCockLength >= 18)) && ((baseCockLength < 30)))){
_local1 = "massive ";
};
if (baseCockLength >= 30){
_local1 = "towering ";
};
};
if (int((Math.random() * 3)) == 0){
if (baseCockThickness <= 0.75){
_local1 = (_local1 + "narrow ");
};
if ((((baseCockThickness > 1)) && ((baseCockThickness <= 1.4)))){
_local1 = (_local1 + "ample ");
};
if ((((baseCockThickness > 1.4)) && ((baseCockThickness <= 2)))){
_local1 = (_local1 + "broad ");
};
if ((((baseCockThickness > 2)) && ((baseCockThickness <= 3.5)))){
_local1 = (_local1 + "fat ");
};
if (baseCockThickness > 3.5){
_local1 = (_local1 + "distended ");
};
};
_local2 = int((Math.random() * 11));
if (_local2 == 0){
_local1 = (_local1 + "doggie dong");
};
if (_local2 == 1){
_local1 = (_local1 + "canine shaft");
};
if (_local2 == 2){
_local1 = (_local1 + "bulbous prick");
};
if (_local2 == 3){
_local1 = (_local1 + "knotted shaft");
};
if (_local2 == 4){
_local1 = (_local1 + "dog-cock");
};
if (_local2 == 5){
_local1 = (_local1 + "puppy-pecker");
};
if (_local2 == 6){
_local1 = (_local1 + "dog-dick");
};
if (_local2 == 7){
_local1 = (_local1 + "bulbous shaft");
};
if (_local2 == 8){
_local1 = (_local1 + "canine cock");
};
if (_local2 == 9){
_local1 = (_local1 + "canine cock");
};
if (_local2 == 10){
_local1 = (_local1 + "knotted cock");
};
return (_local1);
}
public function mimicTentacle1():void{
var _local1:int;
outputMainText("You approach within a few feet of the ", true);
if (mimicAppearance == 1){
outputMainText("stone ", false);
} else {
if (mimicAppearance == 2){
outputMainText("huge tit ", false);
} else {
if (mimicAppearance == 3){
outputMainText("giant dick ", false);
} else {
outputMainText("chest ", false);
};
};
};
if ((((inte > 5)) && (((int((Math.random() * 100)) + int((inte / 1.5))) >= 75)))){
if ((int((Math.random() * 100)) + int((inte / 3))) >= 50){
outputMainText("and begin to reach towards it. However, just as you begin to move your hand, the… thing gives a strange shudder and emits a bizarre, snorting sound. You quickly realize that not only is this some kind of creature, but you have somehow come upon it while it sleeps! As you begin to slowly back away, you notice a ", false);
_local1 = int((Math.random() * 4));
if (_local1 == 0){
outputMainText("glinting silver vial ", false);
};
if (_local1 == 1){
outputMainText("small sack ", false);
};
if (_local1 == 2){
outputMainText("large glass bottle ", false);
};
if (_local1 == 3){
outputMainText("small clay jar ", false);
};
outputMainText("in a pile of rubbish off to one side of the alcove. Careful not to disturb the… whatever it is, you grab the ", false);
if (_local1 == 0){
outputMainText("vial ", false);
};
if (_local1 == 1){
outputMainText("sack ", false);
};
if (_local1 == 2){
outputMainText("bottle ", false);
};
if (_local1 == 3){
outputMainText("jar ", false);
};
outputMainText("and leave the monster to its slumber. ", false);
if (_local1 == 0){
doNext(5016);
};
if (_local1 == 1){
doNext(5019);
};
if (_local1 == 2){
doNext(5017);
};
if (_local1 == 3){
doNext(5018);
};
return;
} else {
outputMainText("and slowly reach towards it with one hand. As your fingers hover within inches of touching it, you feel a sudden sense of danger, and leap back just as dozens of tentacles sprout from the thing's surface. The strange creature lunges for you again, but you have already escaped its reach and, to your great relief, it appears to be immobile. ", false);
doNext(3);
return;
};
} else {
outputMainText("and slowly reach out to touch it with one hand. You get a sense that something is terribly wrong when you realize that your hand is stuck fast to the ", false);
if (mimicAppearance == 1){
outputMainText("stone's surface! ", false);
} else {
if (mimicAppearance == 2){
outputMainText("enormous boob's skin! ", false);
} else {
if (mimicAppearance == 3){
outputMainText("enormous cock's skin! ", false);
} else {
outputMainText("box's surface! ", false);
};
};
};
outputMainText("As you struggle to pull your hand free, the monster, for that is clearly what it is, opens its beady little eyes and stares at you hungrily. ", false);
outputMainText("\r\r", false);
if (mimicAppearance == 1){
outputMainText("An enormous maw opens in front of you, lined with huge rocky teeth. Dozens of tentacles shoot out of the thing's gaping mouth, and you scream with terror as they begin to drag you into its rocky gullet. ", false);
} else {
if (mimicAppearance == 2){
outputMainText("The enormous nipple opens wide to reveal a lamprey like mouth lined with hundreds of tiny pointy teeth and thin, whippy tongues shoot out and splatter milky saliva everywhere as they flail back and forth. Dozens of tentacles sprout from its quivering bulk and wrap around your limbs and waist, lifting you into the air. ", false);
} else {
if (mimicAppearance == 3){
outputMainText("The monstrous cock rears up like a snake and a emits a horrible hissing garble as what would be its urethral opening splits open to reveal row after row of tiny, pointy teeth. Thin, whippy tongues shoot out and splatter gooey cum-spit everywhere as they flail back and forth. Dozens of tentacles sprout from its shaft and wrap around your limbs and waist, lifting you into the air. ", false);
} else {
outputMainText("The lid of the chest opens to reveal a giant mouth filled with hundreds of tiny pointy teeth and a huge slavering tongue that lashes about wildly. Dozens of tentacles shoot out of the thing's gaping jaws, and you scream with terror as they begin to drag you into its gullet. ", false);
};
};
};
if (((!((mimicAppearance == 2))) && (!((mimicAppearance == 3))))){
outputMainText("\r\rThough you struggle with every ounce of your strength, you are unable to prevent yourself from being dragged into the thing’s enormous maw. You are pulled deeper and deeper into the monster’s surprisingly vast innards, and the light streaming in through its jaws grows more and more faint, until with a final <i>*snap*</i>, the light is cut off completely. Surrounded by total darkness and gripped by what must be hundreds of tentacles, you let loose an involuntary moan of terror as the finality of your fate sinks home. ", false);
};
};
doNext(5014);
}
public function mimicTentacle2():void{
var _local1:Number = (Math.round(((nippleLength + (baseCockLength / 2)) * 100)) / 100);
var _local2:String = nippleCockDescript(_local1);
outputMainText("You feel hundreds of tiny tendrils begin gently stroking and teasing your whole body. They seem to seek out every erogenous zone you have with unnatural precision. In a matter of minutes, you are quaking with arousal, ", true);
if (gender == 0){
outputMainText("but your crotch remains smooth and featureless. You sense that the creature is becoming angry with your genderless state, ", false);
if (nippleCocks){
outputMainText((((("but before it does something rash, your " + _local2) + " ") + _local1) + " inch nipplecocks grow painfully erect, throbbing in time with your racing heart. The creature burbles appreciatively, clearly glad that you have something to offer. "), false);
if ((((mimicAppearance == 2)) || ((mimicAppearance == 3)))){
outputMainText("The tentacles move your torso towards the thing’s toothy maw, and with mounting terror, you realize that it intends to suck all of your throbbing dicknipples into its nightmare hole of a mouth! As the echoes of your screams finally die away, you realize that your breasts are still intact, and that the horrible looking teeth are actually fairly soft. However, you quickly understand their purpose when they dig painfully into your tits as you attempt to pull them free. ", false);
} else {
outputMainText("You feel some kind of tentacle collect ", false);
if ((breastTotal * nipplesPerBreast) == 2){
outputMainText((("both of your " + _local2) + " dicknipples and engulf them in some kind of orifice. "), false);
} else {
outputMainText((((("every single one of your " + int((breastTotal * nipplesPerBreast))) + " ") + _local2) + " dicknipples into a big bundle and engulf them all in a single large orifice. "), false);
};
};
outputMainText("\r\rThe ", false);
if ((((mimicAppearance == 2)) || ((mimicAppearance == 3)))){
outputMainText("creature's mouth begins ", false);
} else {
outputMainText("mouth-tentacle begins ", false);
};
outputMainText("to suck and massage your cockteats with a sort of spinning motion. The combined sensations from that and the countless other tendrils quickly bring you to orgasm, causing you to spew unusually large amounts of ", false);
if (lactationMultiplier > 0){
outputMainText("milky ", false);
};
outputMainText("cum deep into the creatures hungry mouth. Unfortunately, the beast doesn’t seem satisfied with just one emission, and its ministrations become more forceful as you are made to cum again and again. Far beyond the limits of your endurance, you still manage to hold on to some last shred of consciousness. Even as dozens of small tendrils are forced into your tortured nippledicks in search of more cum, your only reaction is a weak moan. As the thing continues to alternate between scouring your body for any last traces of semen and attempting to coax you to further orgasm, you eventually slip into unconsciousness. ", false);
if ((((mimicAppearance == 2)) || ((mimicAppearance == 3)))){
outputMainText("\r\rJust before you black out, you look up to see yourself being lifted towards the beast’s suddenly huge, gaping maw. ", false);
};
};
if (nipplesFuckable){
outputMainText("but before it does something rash, the ", false);
if (vaginalLooseness < 2){
outputMainText("small openings ", false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText("puckered openings ", false);
};
if (vaginalLooseness >= 4){
outputMainText("engorged lips ", false);
};
outputMainText("on your nipples to ease open and begin ", false);
if (vaginalWetness < 2){
outputMainText("dripping ", false);
};
if ((((vaginalWetness >= 2)) && ((vaginalWetness < 4)))){
outputMainText("drooling ", false);
};
if (vaginalWetness >= 4){
outputMainText("spurting ", false);
};
if (lactationMultiplier > 0){
outputMainText("milky ", false);
};
outputMainText("fluids. The monster makes a surprised but appreciative gurgle as it begins to use its ", false);
if ((((mimicAppearance == 2)) || ((mimicAppearance == 3)))){
outputMainText("long, whippy tongues ", false);
} else {
outputMainText("gigantic tongue", false);
};
outputMainText("to slurp at this new bounty.\r\rYour mind reels as ", false);
if ((((mimicAppearance == 2)) || ((mimicAppearance == 3)))){
outputMainText("the seemingly uncountable number of tongues and tendrils slurp, stroke, and suck at your breasts. ", false);
} else {
outputMainText("the monster’s huge tongue covers the entire front of your body, dragging its bumpy, slick surface over your ", false);
if (breastTotal > 2){
outputMainText((breastTotal + " "), false);
};
outputMainText("breasts in long strokes. ", false);
};
outputMainText("You orgasm again and again, far beyond the limits of your endurance. Yet you still hold on to some last shred of consciousness. The creature’s ministrations become more forceful, but you’re too far gone to care. Even when the creature shoves ", false);
if ((((mimicAppearance == 2)) || ((mimicAppearance == 3)))){
outputMainText("what must be two dozen of its wriggling tongues deep into each of your tortured nippples, exploring every nook and crevice", false);
} else {
outputMainText("its huge tongue deep into each of your tortured nipples one by one", false);
};
outputMainText(", your reaction is only a weak moan. ", false);
outputMainText("As the thing continues to alternate between scouring your body for any last traces of nectar and attempting to coax you to further orgasm, you eventually slip into unconsciousness. ", false);
if ((((mimicAppearance == 2)) || ((mimicAppearance == 3)))){
outputMainText("\r\rJust before you black out, you look up to see yourself being lifted towards the beast’s suddenly huge, gaping maw. ", false);
};
};
if (((!(nippleCocks)) && (!(nipplesFuckable)))){
if ((((mimicAppearance == 2)) || ((mimicAppearance == 3)))){
outputMainText("and its eyes narrow, giving it a singularly furious expression. ", false);
} else {
outputMainText("and the tentacles holding you seem to quiver with a palpable fury. ", false);
};
outputMainText("\r\rWithout warning, hundreds of tentacles begin whipping and beating you violently. You try to scream, but your shouts are cut off by a punishing series of blows to the stomach. Your ears are filled with the monster's burbling roars of fury as you are pummeled into unconsciousness. ", false);
if ((((mimicAppearance == 2)) || ((mimicAppearance == 3)))){
outputMainText("\r\rJust before you black out, you look up to see yourself being lifted towards the beast’s suddenly huge, gaping maw. ", false);
};
};
};
if (gender == 1){
outputMainText("and your ", false);
if (cockTotal == 1){
outputMainText((cockDescript() + " is "), false);
} else {
outputMainText((allCocksDescript() + " are "), false);
};
outputMainText("soon rock hard. ", false);
if ((((mimicAppearance == 2)) || ((mimicAppearance == 3)))){
outputMainText("The tentacles move your crotch towards the thing’s toothy maw, and with mounting terror, you realize that it intends to suck your throbbing dick", false);
if (cockTotal > 1){
outputMainText("s", false);
};
outputMainText(" into its nightmare hole of a mouth! As the echoes of your screams finally die away, you realize that your junk is still intact, and that the horrible looking teeth are actually fairly soft. However, you quickly understand their purpose when they dig painfully into your cock", false);
if (cockTotal == 1){
outputMainText(" as you attempt to pull it free. ", false);
} else {
outputMainText("s as you attempt to pull them free. ", false);
};
} else {
outputMainText("You feel some kind of orifice enveloping ", false);
if (cockTotal == 1){
outputMainText((("your " + cockDescript()) + ". "), false);
} else {
outputMainText("all of your cocks at once. ", false);
};
};
if (nippleCocks){
outputMainText((((("\r\rMeanwhile, the tiny tendrils continue to stimulate the rest of your body, causing your " + _local2) + " ") + _local1) + " inch nipplecocks to grow painfully erect, throbbing in time with your racing heart. The creature lets loose an irritated burble"), false);
if ((((mimicAppearance == 2)) || ((mimicAppearance == 3)))){
outputMainText(", and you see its eyes narrow with anger", false);
};
outputMainText(". It seems to be annoyed that you would dare sprout more cocks in such an inconvenient location! Your affront is dealt with quickly as your errant dicknipples are engulfed in hastily sprouted sucker tentacles. ", false);
};
outputMainText("\r\rThe ", false);
if ((((mimicAppearance == 2)) || ((mimicAppearance == 3)))){
if (nippleCocks){
outputMainText("creature's mouths begin ", false);
} else {
outputMainText("creature's mouth begins ", false);
};
} else {
if (nippleCocks){
outputMainText("mouth-tentacles begin ", false);
} else {
outputMainText("mouth-tentacle begins ", false);
};
};
outputMainText("to suck and massage your cock", false);
if ((((cockTotal > 1)) || (nippleCocks))){
outputMainText("s", false);
};
outputMainText(" with a sort of spinning motion. The combined sensations from that and the countless other tendrils quickly bring you to orgasm, causing you to spew unusually large amounts of cum deep into the creatures hungry mouth", false);
if (nippleCocks){
outputMainText("s", false);
};
outputMainText(". Unfortunately, the beast doesn’t seem satisfied with just one emission, and its ministrations become more forceful as you are made to cum again and again. Far beyond the limits of your endurance, you still manage to hold on to some last shred of consciousness. Even as dozens of small tendrils are forced down your urethra", false);
if ((((cockTotal > 1)) || (nippleCocks))){
outputMainText("s", false);
};
outputMainText(" in search of more cum, your only reaction is a weak moan. As the thing continues to alternate between scouring your body for any last traces of semen and attempting to coax you to further orgasm, you eventually slip into unconsciousness. ", false);
if ((((mimicAppearance == 2)) || ((mimicAppearance == 3)))){
outputMainText("\r\rJust before you black out, you look up to see yourself being lifted towards the beast’s suddenly huge, gaping maw. ", false);
};
};
if (gender == 2){
outputMainText(("and your " + vaginaDescript()), false);
if (vaginas > 1){
outputMainText("s are ", false);
} else {
outputMainText(" is ", false);
};
if (vaginalWetness < 2){
outputMainText("dripping ", false);
};
if ((((vaginalWetness >= 2)) && ((vaginalWetness < 4)))){
outputMainText("drooling ", false);
};
if (vaginalWetness >= 4){
outputMainText("spurting ", false);
};
outputMainText("juices everywhere. The thing's ", false);
if ((((mimicAppearance == 2)) || ((mimicAppearance == 3)))){
outputMainText("thin, whippy tongues run", false);
} else {
outputMainText("huge tongue runs", false);
};
outputMainText((" across your " + vaginaDescript()), false);
if (vaginas > 1){
outputMainText("s", false);
};
outputMainText(", and you hear the creature burble with satisfaction. It clearly likes the taste. ", false);
if (nipplesFuckable){
outputMainText("\r\rMeanwhile, the tiny tendrils continue to stimulate the rest of your body, causing the ", false);
if (vaginalLooseness < 2){
outputMainText("small openings ", false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText("puckered openings ", false);
};
if (vaginalLooseness >= 4){
outputMainText("engorged lips ", false);
};
outputMainText("on your nipples to ease open and begin ", false);
if (vaginalWetness < 2){
outputMainText("dripping ", false);
};
if ((((vaginalWetness >= 2)) && ((vaginalWetness < 4)))){
outputMainText("drooling ", false);
};
if (vaginalWetness >= 4){
outputMainText("spurting ", false);
};
if (lactationMultiplier > 0){
outputMainText("milky ", false);
};
outputMainText("fluids. The monster makes a surprised but appreciative gurgle as it begins to use its ", false);
if ((((mimicAppearance == 2)) || ((mimicAppearance == 3)))){
outputMainText("cluster of newly sprouted tongues ", false);
} else {
outputMainText("seemingly <i>even larger</i> tongue ", false);
};
outputMainText("to slurp at this new bounty. ", false);
};
outputMainText("\r\rYour mind reels as ", false);
if ((((mimicAppearance == 2)) || ((mimicAppearance == 3)))){
outputMainText(("the seemingly uncountable number of tongues and tendrils slurp, stroke, and suck at your " + vaginaDescript()), false);
if (vaginas > 1){
outputMainText("s", false);
};
outputMainText(" and ", false);
if (breastTotal > 2){
outputMainText((breastTotal + " "), false);
};
outputMainText("breasts. ", false);
} else {
outputMainText("the monster’s huge tongue covers your crotch and the entire front of your body, dragging its bumpy, slick surface over ", false);
if (vaginas == 1){
outputMainText(("your " + vaginaDescript()), false);
} else {
outputMainText((((("all " + vaginas) + " of your ") + vaginaDescript()) + "s"), false);
};
outputMainText(" and ", false);
if (breastTotal > 2){
outputMainText((breastTotal + " "), false);
};
outputMainText("breasts in long strokes. ", false);
};
outputMainText("You orgasm again and again, far beyond the limits of your endurance. Yet you still hold on to some last shred of consciousness. The creature’s ministrations become more forceful, but you’re too far gone to care. Even when the creature shoves ", false);
if ((((mimicAppearance == 2)) || ((mimicAppearance == 3)))){
outputMainText("what must be two dozen of its wriggling tongues deep into ", false);
if (vaginas == 1){
outputMainText(("your " + vaginaDescript()), false);
} else {
outputMainText((((("each of your " + vaginas) + " ") + vaginaDescript()) + "s"), false);
};
outputMainText(", exploring every nook and crevice", false);
} else {
outputMainText("its huge tongue deep into ", false);
if (vaginas == 1){
outputMainText(("your " + vaginaDescript()), false);
} else {
outputMainText((((("each of your " + vaginas) + " ") + vaginaDescript()) + "s one by one"), false);
};
};
outputMainText(", your reaction is only a weak moan. ", false);
if (nipplesFuckable){
outputMainText("Your moan drags out a bit longer as your poor nipples receive the same treatment. ", false);
};
outputMainText("As the thing continues to alternate between scouring your body for any last traces of nectar and attempting to coax you to further orgasm, you eventually slip into unconsciousness. ", false);
if ((((mimicAppearance == 2)) || ((mimicAppearance == 3)))){
outputMainText("\r\rJust before you black out, you look up to see yourself being lifted towards the beast’s suddenly huge, gaping maw. ", false);
};
};
if (gender == 3){
outputMainText((" your " + vaginaDescript()), false);
if (vaginas > 1){
outputMainText("s", false);
};
if (vaginalWetness < 2){
outputMainText(" dripping ", false);
};
if ((((vaginalWetness >= 2)) && ((vaginalWetness < 4)))){
outputMainText(" drooling ", false);
};
if (vaginalWetness >= 4){
outputMainText(" spurting ", false);
};
outputMainText("juices everywhere while your ", false);
if (cockTotal == 1){
outputMainText((cockDescript() + " rapidly becomes "), false);
} else {
outputMainText((allCocksDescript() + " rapidly become "), false);
};
outputMainText("rock hard. Your eyes roll back in your head as the thing's ", false);
if ((((mimicAppearance == 2)) || ((mimicAppearance == 3)))){
outputMainText("thin, whippy tongues run", false);
} else {
outputMainText("huge tongue runs", false);
};
outputMainText((" across your " + vaginaDescript()), false);
if (vaginas > 1){
outputMainText("s", false);
};
outputMainText(". ", false);
outputMainText("You feel some kind of orifice enveloping ", false);
if (cockTotal == 1){
outputMainText((("your " + cockDescript()) + ". "), false);
} else {
outputMainText("all of your cocks at once. ", false);
};
if (((nippleCocks) || (nipplesFuckable))){
outputMainText("\r\rMeanwhile, the tiny tendrils continue to stimulate the rest of your body, causing ", false);
};
if (nipplesFuckable){
if (vaginalLooseness < 2){
outputMainText("the small openings ", false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText("the puckered openings ", false);
};
if (vaginalLooseness >= 4){
outputMainText("the engorged lips ", false);
};
outputMainText("on your nipples to ease open and begin ", false);
if (vaginalWetness < 2){
outputMainText("dripping ", false);
};
if ((((vaginalWetness >= 2)) && ((vaginalWetness < 4)))){
outputMainText("drooling ", false);
};
if (vaginalWetness >= 4){
outputMainText("spurting ", false);
};
if (lactationMultiplier > 0){
outputMainText("milky ", false);
};
outputMainText("fluids. The monster makes a surprised but appreciative gurgle as it begins to use its ", false);
if ((((mimicAppearance == 2)) || ((mimicAppearance == 3)))){
outputMainText("cluster of newly sprouted tongues ", false);
} else {
outputMainText("seemingly <i>even larger</i> tongue ", false);
};
outputMainText("to slurp at this new bounty. ", false);
};
if (nippleCocks){
outputMainText((((("your " + _local2) + " ") + _local1) + " inch nipplecocks to grow painfully erect, throbbing in time with your racing heart. The creature lets loose an irritated burble"), false);
if ((((mimicAppearance == 2)) || ((mimicAppearance == 3)))){
outputMainText(", and you see its eyes narrow with anger", false);
};
outputMainText(". It seems to be annoyed that you would dare sprout more cocks in such an inconvenient location! Your affront is dealt with quickly as your errant dicknipples are engulfed in hastily sprouted sucker tentacles. ", false);
};
outputMainText("\r\rYour mind reels as ", false);
if ((((mimicAppearance == 2)) || ((mimicAppearance == 3)))){
outputMainText(("the seemingly uncountable number of tongues and tendrils slurp, stroke, and suck at your " + vaginaDescript()), false);
if (vaginas > 1){
outputMainText("s", false);
};
outputMainText(" and ", false);
if (breastTotal > 2){
outputMainText((breastTotal + " "), false);
};
outputMainText("breasts while the ", false);
if (nippleCocks){
outputMainText("creature's mouths begin ", false);
} else {
outputMainText("creature's mouth begins ", false);
};
} else {
outputMainText("the monster’s huge tongue slithers over your crotch, around your ", false);
if ((((cockTotal == 1)) && (!(hasSheath())))){
outputMainText("cock, ", false);
} else {
if (!hasSheath()){
outputMainText("bundle of cocks, ", false);
} else {
outputMainText("sheath, ", false);
};
};
outputMainText("and up the entire front of your body, dragging its bumpy, slick surface over ", false);
if (vaginas == 1){
outputMainText(("your " + vaginaDescript()), false);
} else {
outputMainText((((("all " + vaginas) + " of your ") + vaginaDescript()) + "s"), false);
};
outputMainText(" and ", false);
if (breastTotal > 2){
outputMainText((breastTotal + " "), false);
};
outputMainText("breasts in long strokes while the ", false);
if (nippleCocks){
outputMainText("mouth-tentacles begin ", false);
} else {
outputMainText("mouth-tentacle begins ", false);
};
};
outputMainText("to suck and massage your cock", false);
if ((((cockTotal > 1)) || (nippleCocks))){
outputMainText("s", false);
};
outputMainText(" with a sort of spinning motion.", false);
outputMainText("You orgasm again and again, far beyond the limits of your endurance. Yet you still hold on to some last shred of consciousness. The creature’s ministrations become more forceful, but you’re too far gone to care. Even when the creature shoves ", false);
if ((((mimicAppearance == 2)) || ((mimicAppearance == 3)))){
outputMainText("what must be two dozen of its wriggling tongues deep into ", false);
if (vaginas == 1){
outputMainText(("your " + vaginaDescript()), false);
} else {
outputMainText((((("each of your " + vaginas) + " ") + vaginaDescript()) + "s"), false);
};
outputMainText(", exploring every nook and crevice, ", false);
} else {
outputMainText("its huge tongue deep into ", false);
if (vaginas == 1){
outputMainText(("your " + vaginaDescript()), false);
} else {
outputMainText((((("each of your " + vaginas) + " ") + vaginaDescript()) + "s one by one"), false);
};
};
outputMainText(" while dozens of small tendrils are forced down your urethra", false);
if ((((cockTotal > 1)) || (nippleCocks))){
outputMainText("s", false);
};
outputMainText(" in search of more cum, your reaction is only a weak moan. ", false);
if (nipplesFuckable){
outputMainText("Your moan drags out a bit longer as your poor nipples receive the same treatment. ", false);
};
outputMainText("As the thing continues to alternate between scouring your body for any last traces of fluid and attempting to coax you to further orgasm, you eventually slip into unconsciousness. ", false);
if ((((mimicAppearance == 2)) || ((mimicAppearance == 3)))){
outputMainText("\r\rJust before you black out, you look up to see yourself being lifted towards the beast’s suddenly huge, gaping maw. ", false);
};
};
doNext(5015);
}
public function loadGame(_arg1:String):Boolean{
var _local2:* = SharedObject.getLocal(_arg1);
if (_local2.data.exists){
str = _local2.data.str;
tou = _local2.data.tou;
spe = _local2.data.spe;
inte = _local2.data.inte;
lib = _local2.data.lib;
sen = _local2.data.sen;
HP = _local2.data.HP;
lust = _local2.data.lust;
cor = _local2.data.cor;
gems = _local2.data.gems;
tallness = _local2.data.tallness;
hair = _local2.data.hair;
gender = _local2.data.gender;
horseTail = _local2.data.horseTail;
horseFace = _local2.data.horseFace;
demonTail = _local2.data.demonTail;
dogTail = _local2.data.dogTail;
dogFace = _local2.data.dogFace;
furry = _local2.data.furry;
horns = _local2.data.horns;
merchant = _local2.data.merchant;
monk = _local2.data.monk;
farm = _local2.data.farm;
sand = _local2.data.sand;
horseAffinity = _local2.data.horseAffinity;
dogAffinity = _local2.data.dogAffinity;
cockTotal = _local2.data.cockTotal;
normalCocks = _local2.data.normalCocks;
horseCocks = _local2.data.horseCocks;
balls = _local2.data.balls;
ballSize = _local2.data.ballSize;
dogCocks = _local2.data.dogCocks;
baseCockLength = _local2.data.baseCockLength;
baseCockThickness = _local2.data.baseCockThickness;
clitLength = _local2.data.clitLength;
breastTotal = _local2.data.breastTotal;
breastsPerRow = _local2.data.breastsPerRow;
breastRows = _local2.data.breastRows;
nipplesPerBreast = _local2.data.nipplesPerBreast;
breastCupSize = _local2.data.breastCupSize;
nippleLength = _local2.data.nippleLength;
nipplesFuckable = _local2.data.nipplesFuckable;
nippleCocks = _local2.data.nippleCocks;
vaginas = _local2.data.vaginas;
vaginalLooseness = _local2.data.vaginalLooseness;
vaginalWetness = _local2.data.vaginalWetness;
pregnancyIncubation = _local2.data.pregnancyIncubation;
pregnancyType = _local2.data.pregnancyType;
lactationMultiplier = _local2.data.lactationMultiplier;
itemSlot1 = _local2.data.itemSlot1;
itemSlot2 = _local2.data.itemSlot2;
itemSlot3 = _local2.data.itemSlot3;
ownsDangerousPlants = _local2.data.ownsDangerousPlants;
ownsTravelersGuide = _local2.data.ownsTravelersGuide;
ownsHentaiComic = _local2.data.ownsHentaiComic;
ownsDildo = _local2.data.ownsDildo;
ownsStimBelt = _local2.data.ownsStimBelt;
ownsNaturalStimBelt = _local2.data.ownsNaturalStimBelt;
ownsOnahole = _local2.data.ownsOnahole;
ownsDeluxeOnahole = _local2.data.ownsDeluxeOnahole;
ownsNaturalOnahole = _local2.data.ownsNaturalOnahole;
exp = _local2.data.expe;
level = _local2.data.levele;
race = _local2.data.race;
inHeat = _local2.data.inHeat;
statDisplay();
statPane.visible = true;
statValuePane.visible = true;
if (str == 0){
return (false);
};
return (true);
};
return (false);
}
public function startCombat(_arg1:Number):void{
inCombat = true;
if (_arg1 == 1){
eShort = "an imp";
eLong = "An imp is here, claws extended and ready to fight!";
ePronoun2 = "he";
ePronoun = "him";
ePronoun3 = "his";
loseEvent = 2001;
winEvent = 3001;
winLustEvent = 4000;
estr = 15;
etou = 10;
espe = 20;
einte = 15;
elib = 45;
esen = 30;
eHP = (50 + (etou * 2));
eMaxHP = eHP;
elust = 60;
ecor = 100;
eSpecial1 = 5001;
eSpecial2 = 0;
eSpecial3 = 0;
eLastStrike = 0;
eCocks = 1;
eHorseCocks = false;
eDogCocks = false;
eCockLength = 12;
eCockThickness = 2;
eNippleCocks = false;
eNipples = 2;
eVaginas = 0;
eVaginalWetness = 0;
eVaginalLooseness = 0;
eClitLength = 0;
eAssHole = 0;
eAssHoleLooseness = 1;
eAssHoleWetness = 2;
doNext(3);
};
if (_arg1 == 2){
eShort = "a sand-witch";
eLong = "In most respects this sand-witch appears like a normal human with dirty blonde hair and a very tanned complexion. She wears robes of the same color as the desert sands of the area, making her impossible to spot from afar. ";
ePronoun2 = "she";
ePronoun = "her";
ePronoun3 = "hers";
loseEvent = 2002;
winEvent = 3002;
winLustEvent = 4000;
estr = 22;
etou = 20;
espe = 35;
einte = 45;
elib = 55;
esen = 40;
eHP = (50 + (etou * 2));
eMaxHP = eHP;
elust = 70;
ecor = 80;
eSpecial1 = 5002;
eSpecial2 = 5003;
eSpecial3 = 0;
eLastStrike = 0;
eCocks = 0;
eHorseCocks = false;
eDogCocks = false;
eCockLength = 0;
eCockThickness = 0;
eNippleCocks = false;
eNipples = 2;
eVaginas = 1;
eVaginalWetness = 2;
eVaginalLooseness = 2;
eClitLength = 1;
eAssHole = 1;
eAssHoleLooseness = 1;
eAssHoleWetness = 2;
doNext(3);
};
if (_arg1 == 3){
eShort = "Jojo";
if (monk == 5){
eShort = "Jojo the slut";
};
eLong = "Jojo is an anthropomorphic mouse with immaculate white fur. Though he stands only four feet tall, he is covered in lean muscle and moves with incredible speed. He wears loose white clothes wrapped in prayer beads and tattered prayer papers.";
if (monk == 5){
eLong = "Jojo is panting and nude, his fur rustling in the breeze, a twitching behemoth of a cock pulsing between his legs.";
};
ePronoun2 = "he";
ePronoun = "his";
ePronoun3 = "his";
loseEvent = 2003;
winEvent = 3003;
winLustEvent = 4000;
estr = 30;
if (monk == 5){
estr = (estr - 20);
};
etou = 40;
if (monk == 5){
etou = (etou + 30);
};
espe = 65;
einte = 55;
elib = 15;
esen = 40;
eHP = (50 + (etou * 2));
eMaxHP = eHP;
elust = 15;
if (monk == 3){
elust = 45;
};
if (monk == 4){
elust = 65;
};
if (monk == 5){
elust = 75;
};
ecor = 0;
eSpecial1 = 5004;
eSpecial2 = 0;
eSpecial3 = 0;
eLastStrike = 0;
eCocks = 1;
eHorseCocks = false;
eDogCocks = false;
eCockLength = 7.5;
if (monk == 3){
(eCockLength + 1.5);
};
if (monk == 4){
(eCockLength + 3.5);
};
if (monk == 5){
(eCockLength + 5.5);
};
eCockThickness = 1.8;
if (monk == 3){
eCockThickness = (eCockThickness + 0.2);
};
if (monk == 4){
eCockThickness = (eCockThickness + 0.5);
};
if (monk == 5){
eCockThickness = (eCockThickness + 1);
};
eNippleCocks = false;
eNipples = 2;
eVaginas = 0;
eVaginalWetness = 0;
eVaginalLooseness = 0;
eClitLength = 0;
eAssHole = 1;
eAssHoleLooseness = 1;
if ((((monk == 3)) && ((((gender == 1)) || ((gender == 3)))))){
eAssHoleLooseness++;
};
if ((((monk == 4)) && ((((gender == 1)) || ((gender == 3)))))){
eAssHoleLooseness++;
};
if ((((monk == 5)) && ((((gender == 1)) || ((gender == 3)))))){
eAssHoleLooseness = (eAssHoleLooseness + 2);
};
eAssHoleWetness = 0;
doNext(3);
};
}
public function raiseSpe(_arg1:MouseEvent):void{
if (remSkillPoints > 0){
remSkillPoints--;
tempSpe++;
};
levelPaneRefresh();
}
public function doNext(_arg1:Number):void{
Choice1Outline.visible = true;
Choice2Outline.visible = false;
Choice3Outline.visible = false;
Choice4Outline.visible = false;
Choice1.visible = true;
Choice2.visible = false;
Choice3.visible = false;
Choice4.visible = false;
Choice1.htmlText = "Next";
Choice2.htmlText = "Unused";
mountainBox.visible = false;
mountainChoice.visible = false;
desertChoice.visible = false;
desertBox.visible = false;
forestChoice.visible = false;
forestBox.visible = false;
lakeChoice.visible = false;
lakeBox.visible = false;
appearanceText.visible = false;
appearanceBox.visible = false;
dataBox.visible = false;
dataText.visible = false;
levelText.visible = false;
levelBox.visible = false;
button1Choice = _arg1;
nextButton = true;
}
public function newGameStart(_arg1:MouseEvent):void{
newGameGo();
}
public function lengthChange(_arg1:Number):void{
var _local2:Number = _arg1;
var _local3:Number = 0;
if (_local2 < 0){
while (_local2 < 0) {
if ((_local2 + 1) < 0){
_arg1 = -1;
} else {
_arg1 = _local2;
};
_local2++;
if (baseCockLength < 12){
_arg1 = (_arg1 / 2);
};
if (baseCockLength < 6){
_arg1 = (_arg1 / 3);
};
if (baseCockLength < 4){
_arg1 = (_arg1 / 4);
};
baseCockLength = (baseCockLength + _arg1);
_local3 = (_local3 + _arg1);
trace(((("Length decreased by " + _arg1) + ". Total length: ") + baseCockLength));
};
} else {
while (_local2 > 0) {
if ((_local2 - 1) > 0){
_arg1 = 1;
} else {
_arg1 = _local2;
};
_local2--;
if (baseCockLength > 12){
_arg1 = (_arg1 / 2);
};
if (baseCockLength > 18){
_arg1 = (_arg1 / 3);
};
if (baseCockLength > 24){
_arg1 = (_arg1 / 4);
};
baseCockLength = (baseCockLength + _arg1);
_local3 = (_local3 + _arg1);
trace(((("Length increased by " + _arg1) + ". Total length: ") + baseCockLength));
};
};
if ((((_local3 <= 1)) && ((_local3 > 0)))){
if (cockTotal == 1){
outputMainText((("\r\rYour " + allCocksDescript()) + " has grown slightly longer."), false);
};
if (cockTotal > 1){
outputMainText((("\r\rYour " + allCocksDescript()) + " seem to fill up...growing a little bit larger."), false);
};
};
if ((((_local3 > 1)) && ((_local3 < 3)))){
if (cockTotal == 1){
outputMainText((("\r\rA very pleasurable feeling spreads from your groin as your " + allCocksDescript()) + " grows permanently longer - at least an inch - and leaks precum from the pleasure of the change."), false);
};
if (cockTotal > 1){
outputMainText((("\r\rA very pleasurable feeling spreads from your groin as your " + allCocksDescript()) + " grow permanently longer - at least an inch - and leak plenty of precum from the pleasure of the change."), false);
};
};
if (_local3 >= 3){
if (cockTotal == 1){
outputMainText((("\r\rYour " + allCocksDescript()) + " feels incredibly tight as a few more inches of length seem to pour out from your crotch."), false);
};
if (cockTotal > 1){
outputMainText((("\r\rYour " + allCocksDescript()) + " feel incredibly tight as inch after inch or length pour out from your groin."), false);
};
};
if (_local3 > 0){
if ((((baseCockLength >= 8)) && (((baseCockLength - _local3) < 8)))){
if (cockTotal == 1){
outputMainText(" <b>Most men would be overly proud to have a tool as long as yours.</b>", false);
};
if (cockTotal > 1){
outputMainText(((" <b>Most men would be overly proud to have one cock as long as yours, let alone " + allCocksDescript()) + ".</b>"), false);
};
};
if ((((baseCockLength >= 12)) && (((baseCockLength - _local3) < 12)))){
if (cockTotal == 1){
outputMainText(((" <b>Your " + allCocksDescript()) + " is so long it nearly swings to your knee at it's full length.</b>"), false);
};
if (cockTotal > 1){
outputMainText(((" <b>Your " + allCocksDescript()) + " are so long they nearly reach your knee when at full length.</b>"), false);
};
};
if ((((baseCockLength >= 16)) && (((baseCockLength - _local3) < 16)))){
if (cockTotal == 1){
outputMainText(((" <b>Your " + allCocksDescript()) + " would look more at home on a large horse than you.</b>"), false);
};
if (cockTotal > 1){
outputMainText(((" <b>Your " + allCocksDescript()) + " would look more at home on a large horse than on your body.</b>"), false);
};
if (gender == 3){
if (cockTotal == 1){
outputMainText(((" You could easily stuff your " + allCocksDescript()) + " between your breasts and give the self-titty-fuck of a lifetime."), false);
};
if (cockTotal > 1){
outputMainText(" They reach so far up your chest it would be easy to stuff a few cocks between your breasts and give yourself the tittyfuck of a lifetime.", false);
};
};
if (gender == 1){
if (cockTotal == 1){
outputMainText(((" Your " + allCocksDescript()) + " is so long it easily reaches your chest. The possibility of autofellatio is now a foregone conclusion."), false);
};
if (cockTotal > 1){
outputMainText(((" Your " + allCocksDescript()) + " are so long they easily reach your chest. Autofellatio would be about as hard as looking down."), false);
};
};
};
if ((((baseCockLength >= 20)) && (((baseCockLength - _local3) < 20)))){
if (cockTotal == 1){
outputMainText(((((" <b>As if the pulsing heat of your " + allCocksDescript()) + " wasn't enough, the tip of your ") + allCocksDescript()) + " keeps poking it's way into your view every time you get hard.</b>"), false);
};
if (cockTotal > 1){
outputMainText(((((" <b>As if the pulsing heat of your " + allCocksDescript()) + " wasn't bad enough, every time you get hard, the tips of your ") + allCocksDescript()) + " wave before you, obscuring the lower portions of your vision.</b>"), false);
};
if (cor > 40){
if (cockTotal > 1){
outputMainText(((" You wonder if there is a demon or beast out there that could take the full length of one of your " + allCocksDescript()) + "?"), false);
};
if (cockTotal == 1){
outputMainText(" You wonder if there is a demon or beast out there that could handle your full length.", false);
};
};
if (cor > 60){
if (cockTotal > 1){
outputMainText(((" You daydream about being attacked by a massive tentacle beast, it's tentacles engulfing your " + allCocksDescript()) + " to their hilts, milking you dry.\r\rYou smile at the pleasant thought."), false);
};
if (cockTotal == 1){
outputMainText(((" You daydream about being attacked by a massive tentacle beast, it's tentacles engulfing your " + allCocksDescript()) + " to the hilt, milking it of all your cum.\r\rYou smile at the pleasant thought."), false);
};
};
if (cor > 80){
if (cockTotal > 1){
outputMainText(((" You find yourself fantasizing about impaling nubile young champions on your " + allCocksDescript()) + " in a year's time."), false);
};
};
};
};
if ((((_local3 < 0)) && ((_local3 >= -1)))){
if (cockTotal == 1){
outputMainText((("\r\rYour " + allCocksDescript()) + " has shrunk to a slightly shorter length."), false);
};
if (cockTotal > 1){
outputMainText((("\r\rYour " + allCocksDescript()) + " have shrunk to a slightly shorter length."), false);
};
};
if ((((_local3 < -1)) && ((_local3 > -3)))){
if (cockTotal == 1){
outputMainText((("\r\rYour " + allCocksDescript()) + " shrinks smaller, flesh vanishing into your groin."), false);
};
if (cockTotal > 1){
outputMainText((("\r\rYour " + allCocksDescript()) + " shrink smaller, the flesh vanishing into your groin."), false);
};
};
if (_local3 <= -3){
if (cockTotal == 1){
outputMainText((("\r\rA large portion of your " + allCocksDescript()) + "'s length shrinks and vanishes."), false);
};
if (cockTotal > 1){
outputMainText((("\r\rA large portion of your " + allCocksDescript()) + " vanishes into your groin, receding rapidly in length."), false);
};
};
}
public function newGameGo():void{
trace("NEWGMAE");
nextButton = false;
statPane.visible = true;
statValuePane.visible = true;
dataBox.visible = false;
dataText.visible = false;
appearanceText.visible = false;
appearanceBox.visible = false;
tempExp = 0;
if (!debug){
ownsDangerousPlants = false;
ownsTravelersGuide = false;
ownsHentaiComic = false;
ownsDildo = false;
ownsStimBelt = false;
ownsNaturalStimBelt = false;
ownsOnahole = false;
ownsDeluxeOnahole = false;
ownsNaturalOnahole = false;
};
gems = 0;
itemSlot1 = 0;
itemSlot2 = 0;
itemSlot3 = 0;
cor = 0;
merchant = 0;
monk = 0;
farm = 0;
sand = 0;
horns = 0;
breastRows = 1;
breastsPerRow = 2;
level = 0;
exp = 0;
lactationMultiplier = 0;
pregnancyIncubation = 0;
pregnancyType = 0;
demonTail = false;
horseTail = false;
horseFace = false;
dogTail = false;
dogFace = false;
catTail = false;
furry = false;
inCombat = false;
genderSelect();
}
public function exploreMountain():void{
var _local1:Number = 0;
_local1 = int((Math.random() * 4));
if ((((_local1 == 0)) || ((_local1 == 1)))){
outputMainText("You are attacked by an imp!", true);
startCombat(1);
};
if (_local1 == 2){
doNext(3);
outputMainText("In the distance, a succubus with ivory skin glares at you.\r\r", true);
if ((((gender == 2)) || ((gender == 3)))){
outputMainText("It starts to close the distance by charging at you! ", false);
if (((lust + (cor / 2)) + rando(40)) >= 100){
outputMainText("Seeing its luscious breasts jiggle, regardless of its clearly visible rage, has only made you horny. You start running toward it as well, desperate to fuck her.\r\r", false);
if ((rando((str / 2)) + (str / 2)) > 30){
outputMainText("You collide in a tackle and succeed in grappling her as you crash to the ground. After a few rolls, you have her pinned in the missionary position. Seeing her luscious breasts so close to your face has you desiring them greatly, and without thinking, you lower your mouth to a nipple and begin to drink. She instantly yields a mouthful of milk, and you swallow the viscous stuff without question.\r\r", false);
if (cockTotal < 1){
outputMainText("Desperate for release, you crush your drooling gash of a cunt against hers. Your clit crosses hers and you grunt at the pleasurable feeling, but you desperately wish she had a cock instead. She struggles against you constantly, but you have her firmly in your grasp. Eventually her strength wavers and she sobs miserably as you grind against her for what feels like hours on end.\r\rEventually you get bored and frustrated by the lack of penetration and leave her there, limp and crying in her own filth.\r\r", false);
stats(0, 0, 0, 0, 2, 0, 10, 2);
return;
};
if (cockTotal > 0){
outputMainText("Lost in the moment, you grind your pelvic region into hers, feeling around for her fuckhole with your erect member", false);
if (cockTotal > 1){
outputMainText("s. When you feel at least one of them sink in a bit, you thrust in her hard, the others splaying out in all directions. The succubus screams at you, obviously violated. But that only serves to drive you on further, fucking her faster and harder. One of your cocks slips out, slathered in her own juices and someone else's cum, and another takes its place.\r\r", false);
} else {
outputMainText(" When you feel yourself sink in a bit, you thrust in her hard. The succubus screams at you, obviously violated. But that only serves to drive you on further, fucking her faster and harder.\r\r", false);
};
outputMainText("Her tight cunt, combined with your crazed lust, has you shooting a huge load into her deepest reaches. But just once isn't enough right now. You keep going, staying hard the whole time. The succubus tries to break free suddenly once you start breathing harder, ", false);
if (((str / 2) + rando(50)) < 45){
outputMainText("and manages to get free of your shaking limbs. You leap to your feet, looking to grab her again and keep going, but she flees the scene immediately. Deciding to make the best of it, you stare at her jiggling ass while you finish with your hand.", false);
return;
};
outputMainText("but you're able to maintain your iron grip.\r\r", false);
if (cockTotal > 1){
outputMainText("She only wears herself out trying to wriggle away from you, and you use the chance to carefully cram another of your cocks into her. You can feel her getting stretched out. ", false);
};
outputMainText("With the glint of a pervert in your eye, you look down on her, drinking in the anguish in her face as you rape her slowly this time. She gets increasingly wet as you keep fucking her, and you mock her openly for supposedly enjoying this. You lick the tears rolling down her face and continue for some time. When you decide she's been broken, you decide to finish and change suddenly to much faster strokes. The succubus howls, ruffling your hair as you cum all over her insides yet again. Satisfied, you pull out and leave her there panting and wasted, evidence of the incursion leaking from her snatch. ", false);
stats(0, 0, 0, 0, -2, 0, -25, 3);
return;
};
} else {
outputMainText("You collide in a tackle with her, but she has more strength and momentum and takes you down to the ground. She hesitates while she has you prone, as if resisting something. She regains her composure and opts to choke you until you pass out.\r\rYou regain consciousness a short time later, alone in the mountains. You feel weak and decide to head back to the portal.", false);
takeDamage(90);
return;
};
} else {
outputMainText("Its body language and face hint that it probably wants to hurt you, so your body's fight-or-flight response kicks in and you turn to run away from it.\r\r", false);
if ((rando(50) + (spe / 2)) > 40){
outputMainText("After a few steps you outpace it. It loses interest and lets you flee.", false);
return;
};
outputMainText("Despite your sprint, it closes the distance and leaps on you, tearing and scratching. ", false);
if ((rando(50) + (str / 2)) > 45){
outputMainText("You bring your strength to bear and throw her off. Realizing she's outmatched, the succubus backs off and disappears.", false);
if ((HP - 20) <= 0){
HP = 1;
} else {
HP = (HP - 20);
};
return;
} else {
outputMainText("You try to shake her off, but she's too powerful and rains painful scratches and blows on you until you fall unconscious. You awaken on the ground, bleeding from cuts and feeling sore all over. ", false);
if ((HP - 30) <= 0){
HP = 1;
} else {
takeDamage(30);
};
return;
};
};
} else {
if (gender == 1){
outputMainText("She saunters toward you, swaying her hips the whole way despite how far away she is. You can't help but get hard at the display. You meet her part way and she kisses you instantly, shoving her tongue into your mouth as far as it can go. At the same time, she wraps a leg around you and hooks it behind you, grabbing your stiff cock and guiding it to her nethers. Her insides and warm and wet already, squeezing around you and twisting eagerly. The succubus moans into your mouth as she caresses your body with her hands. She expertly lowers the both of you from standing to the ground, with her staying on top of you. She switches to bouncing on your cock, taking it as far as she can. Her powerful legs bounce at a pace few human women could match. She coaxes you to shoot inside her quite easily, and the feeling of this ejaculation is so powerful you feel like you could die of pleasure right there. The succubus moans erotically as she accepts your seed inside of her, ", false);
outputMainText("and leans over to kiss you on the forehead as if to wish you good night.\r\rStrangely, the kiss is the last thing you remember, and you awaken on the cold ground, feeling completely exhausted. It feels like she took part of your soul with her...but it felt so good.", false);
if ((HP - 20) <= 0){
HP = 1;
} else {
takeDamage(20);
};
};
if (gender == 0){
outputMainText("She saunters toward you, swaying her hips the whole way despite how far away she is. Curious, you stare at the display until she reaches you. She caresses your cheeks and pulls your face in close to hers, sliding her tongue deep into your mouth. You eagerly engage in the kiss, dueling her tongue with your own, trying to pin it down. She expertly laps your tongue and crushes it against the floor of your mouth. She swings one leg up to your head to scissor against your pubic region, and grinds against it hard despite there being nothing there. She flits her gaze down, then back up to yours, her eyes filled with lust regardless. She makes out with you longer, going on to lick all around your lips. All the way she pushes against you hard enough to let you feel her pubic bone crushing against yours, along with her considerable wetness.\r\rWhen it's finally over she leaves you wordlessly. Suddenly on the ground there's a bottle that wasn't there before. You pick ", false);
outputMainText("it up and examine it. It's a viscous white fluid labeled '<i>Incubus Draft</i>'.", false);
foundItem = 1002;
doEvent(8);
};
};
};
if (_local1 == 3){
doEvent(54);
};
}
public function masturbate():void{
var _local1:Number = (nippleLength + (baseCockLength / 2));
var _local2:String = nippleCockDescript(_local1);
var _local3:Boolean;
var _local4:Boolean;
var _local5:Number = 3;
if ((((cockTotal > 0)) || (nippleCocks))){
if (lib > 50){
_local5 = (_local5 * 1.3);
};
if (lust > 90){
_local5 = (_local5 * 1.25);
};
if (cor > 30){
_local5 = (_local5 * 1.1);
};
if (cor > 60){
_local5 = (_local5 * 1.15);
};
if (ballSize > 1){
_local5 = (_local5 * ((ballSize / 5) + 1));
};
if (balls > 2){
_local5 = (_local5 * ((balls / 5) + 1));
};
if (horseAffinity > 1.5){
_local5 = (_local5 * 1.25);
};
if (dogAffinity > 1.5){
_local5 = (_local5 * 1.3);
};
if (horseAffinity > 2){
_local5 = (_local5 * 1.2);
};
if (dogAffinity > 2){
_local5 = (_local5 * 1.3);
};
};
if (cor < 15){
outputMainText("You sheepishly find some rocks to hide in, where you remove your clothes.\r\r", false);
};
if ((((cor >= 15)) && ((cor < 30)))){
outputMainText("You make sure you are alone and strip naked.\r\r", false);
};
if ((((cor >= 30)) && ((cor < 60)))){
outputMainText("You happily remove your clothes, eager to pleasure yourself.\r\r", false);
};
if ((((cor >= 60)) && ((cor < 80)))){
outputMainText("You strip naked in an exaggerated fashion, hoping someone might be watching.\r\r", false);
};
if (cor >= 80){
outputMainText("You strip naked, fondling your naughty bits as you do so and casting seductive looks around, hoping someone or something is nearby to fuck you.\r\r", false);
};
if ((((((((((((gender == 1)) && (!((breastCupSize == "N/A"))))) || ((gender == 2)))) || ((gender == 3)))) || (nippleCocks))) || (nipplesFuckable))){
titForeplay();
};
if (cockTotal > 0){
if (cockTotal == 1){
outputMainText("You stroke your ", false);
if (normalCocks > 0){
outputMainText(cockDescript(), false);
};
if (horseCocks > 0){
outputMainText(horseDescript(), false);
};
if (dogCocks > 0){
outputMainText(dogDescript(), false);
};
if ((((((dogCocks == 0)) && ((normalCocks == 0)))) && ((horseCocks == 0)))){
outputMainText("ERROR", false);
};
if (lib < 45){
outputMainText(" eagerly, quickly bringing yourself to a full, throbbing state. ", false);
};
if ((((lib >= 45)) && ((lib < 70)))){
outputMainText(" languidly, reveling at it's near-constant hardness. ", false);
};
if (lib >= 70){
outputMainText(" teasingly, precum running down your length from your constant state of arousal. ", false);
};
} else {
outputMainText(("You stroke your " + allCocksDescript()), false);
if (lib < 45){
outputMainText(" eagerly, quickly bringing your cocks to a full, throbbing state. ", false);
};
if ((((lib >= 45)) && ((lib < 70)))){
outputMainText(" languidly, reveling at their near-constant hardness. ", false);
};
if (lib >= 70){
outputMainText(" teasingly, precum running down your cocks from your constant state of arousal, pooling around you. ", false);
};
};
};
if (vaginas > 0){
if (vaginas == 1){
if (lib < 45){
outputMainText((("You touch and play with your " + vaginaDescript()) + ", "), false);
};
if ((((lib >= 45)) && ((lib < 70)))){
outputMainText("You slap your pussy softly, ", false);
};
if (lib >= 70){
outputMainText((("You touch your enflamed and aroused " + vaginaDescript()) + ", "), false);
};
if (vaginalWetness == 0){
outputMainText("expertly arousing your female parts. ", false);
};
if (vaginalWetness == 1){
outputMainText("sighing as it quickly becomes moist. ", false);
};
if (vaginalWetness == 2){
outputMainText("giggling as your fingers get a little wet. ", false);
};
if (vaginalWetness == 3){
outputMainText("smiling as your fingers become coated in your slick fluids. ", false);
};
if (vaginalWetness == 4){
outputMainText((("slicking your fingers in the juices that constatly dribble from your horny " + vaginaDescript()) + " "), false);
};
if (vaginalWetness == 5){
outputMainText("licking your lips as a small spurt of fluid squirts from your nethers.", false);
};
};
if (vaginas > 1){
if (lib < 45){
outputMainText("You touch and play with you many folds, ", false);
};
if ((((lib >= 45)) && ((lib < 70)))){
outputMainText("You slap your pussies softly, ", false);
};
if (lib >= 70){
outputMainText((("Touch your enflamed and aroused " + vaginaDescript()) + "s, "), false);
};
if (vaginalWetness == 0){
outputMainText("expertly arousing your female parts. ", false);
};
if (vaginalWetness == 1){
outputMainText("sighing as it quickly becomes moist. ", false);
};
if (vaginalWetness == 2){
outputMainText("giggling as your fingers get a little wet. ", false);
};
if (vaginalWetness == 3){
outputMainText("smile as your fingers become coated in your slick fluids. ", false);
};
if (vaginalWetness == 4){
outputMainText((("slicking your fingers in the juices that constatly dribble from your horny " + vaginaDescript()) + "s "), false);
};
if (vaginalWetness == 5){
outputMainText("licking your lips as a small spurt of fluid squirts from your nethers.", false);
};
};
};
outputMainText("\r\r", false);
if ((((((((((((gender == 1)) && (!((breastCupSize == "N/A"))))) || ((gender == 2)))) || ((gender == 3)))) || (nippleCocks))) || (nipplesFuckable))){
titurbate();
};
if (cockTotal == 1){
if (horseCocks == 1){
if (baseCockThickness < 1.8){
outputMainText((("You easily wrap a hand around your " + horseDescript()) + " and start masturbating. "), false);
};
if ((((baseCockThickness >= 1.8)) && ((baseCockThickness < 3)))){
outputMainText((("You have some difficulty fitting your hand around your " + horseDescript()) + ", relishing the feelings of your animalistic endowments as you begin masturbating. "), false);
};
if ((((baseCockThickness >= 3)) && ((baseCockThickness < 5)))){
outputMainText((("You use both hands to grip your " + horseDescript()) + ", feeling the throbbing of your member as you begin to masturbate. "), false);
};
if (baseCockThickness >= 5){
outputMainText((("You grasp onto your " + horseDescript()) + " with both hands, but fail to encircle it fully as you begin to masturbate. "), false);
};
if ((baseCockLength * horseAffinity) < 12){
outputMainText("You stroke quickly, reveling in your sensitive horseflesh, darting down to fondle your sensitive sheath. ", false);
};
if (((((baseCockLength * horseAffinity) >= 8)) && (((baseCockLength * horseAffinity) < 20)))){
outputMainText((("You delight in teasing your the sensitive flared tip of your " + horseDescript()) + ", rubbing it at the end of each stroke, squeezing out dollops of pre to smear over it and tease yourself with. It seems to pulse and ripple with each stroke, responding to every touch. "), false);
};
if (((((baseCockLength * horseAffinity) >= 20)) && (((baseCockLength * horseAffinity) < 26)))){
outputMainText((("The flared tip of your " + horseDescript()) + " wobbles towards your face as you masturbate, a dollop of pre slowly growing atop it. "), false);
outputMainText((("You give in to temptation and swallow the tip, slurping greedily as you milk your " + horseDescript()) + " of it's precum. "), false);
if (((nipplesFuckable) && ((Math.round(baseCockThickness) <= (vaginalLooseness * 2))))){
_local4 = true;
horseTitFuckSingle();
} else {
_local3 = true;
};
if ((((((((((((breastsPerRow >= 2)) && (!((breastCupSize == "N/A"))))) && (!((breastCupSize == "A"))))) && (!((breastCupSize == "B"))))) && (!((breastCupSize == "C"))))) && (!(_local4)))){
if (!nippleCocks){
outputMainText((("Your hands migrate to your breasts of their own accord, wrapping your titflesh around your " + horseDescript()) + ", jacking it up and down in your pillowy tits. "), false);
};
if (nippleCocks){
outputMainText((((("Gripping your " + _local2) + " cocknipples like fleshy handles, you wrap your titflesh around your ") + horseDescript()) + ", jacking it up and down in your pillowy tits. "), false);
};
if ((((lactationMultiplier > 0)) && (!(nippleCocks)))){
outputMainText("Jets of milk squirt out of your nipples with each thrust of your hips, adding to the already copious amounts of fluids coating your body. ", false);
};
if ((((lactationMultiplier > 0)) && (nippleCocks))){
outputMainText("Your stiff nippledicks squirt milky precum with each thrust of your hips, adding to the already copious amounts of fluids coating your body. ", false);
};
};
};
if ((baseCockLength * horseAffinity) > 26){
outputMainText((("The flared tip of your " + horseDescript()) + " wobbles over, bumping your face and smearing your lips with it's copious precum. You are unable to resist opening your mouth and sucking it down, filling your mouth with horsemeat. "), false);
if (cor > 60){
outputMainText("The thick animalistic scent fills your nostrils as you force inch after inch into your mouth, deepthroating as much of yourself as you can. ", false);
};
if (((nipplesFuckable) && ((Math.round(baseCockThickness) <= (vaginalLooseness * 2))))){
_local4 = true;
horseTitFuckSingle();
} else {
_local3 = true;
};
if ((((((breastsPerRow >= 2)) && ((breastRating() > 3)))) && (!(_local4)))){
if (!nippleCocks){
outputMainText((("You reach your hands up to your pillowy breasts, wrapping them around the shaft of your " + horseDescript()) + ", causing you to let out muffled moans of excitment. "), false);
};
if (nippleCocks){
outputMainText((((("Gripping your " + _local2) + " cocknipples like fleshy handles, you wrap your titflesh around your ") + horseDescript()) + ", causing you to let out muffled moans of excitment. "), false);
};
if ((((lactationMultiplier > 0)) && (!(nippleCocks)))){
outputMainText("Jets of milk squirt out of your nipples with each thrust of your hips, adding to the already copious amounts of fluids coating your body. ", false);
};
if ((((lactationMultiplier > 0)) && (nippleCocks))){
outputMainText("Your stiff nippledicks squirt milky precum with each thrust of your hips, adding to the already copious amounts of fluids coating your body. ", false);
};
};
if (((nipplesFuckable) && ((Math.round(baseCockThickness) <= (vaginalLooseness * 2))))){
_local4 = true;
horseTitFuckSingle();
};
};
outputMainText("", false);
};
if (normalCocks == 1){
if (baseCockThickness < 1.8){
outputMainText((("You easily wrap a hand around your " + cockDescript()) + " and start masturbating. "), false);
};
if ((((baseCockThickness >= 1.8)) && ((baseCockThickness < 3)))){
outputMainText((("You have some difficulty fitting your hand around your " + cockDescript()) + ", relishing the feelings of your large endowment as you begin masturbating. "), false);
};
if ((((baseCockThickness >= 3)) && ((baseCockThickness < 5)))){
outputMainText((("You use both hands to grip your " + cockDescript()) + ", feeling the throbbing of your member as you begin to masturbate. "), false);
};
if (baseCockThickness >= 5){
outputMainText((("You grasp onto your " + cockDescript()) + " with both hands, but fail to encircle it fully as you begin to masturbate. "), false);
};
if (baseCockLength < 12){
outputMainText((("You stroke quickly, pleasuring your sensitive " + cockDescript()) + ", darting down to fondle the base of your cock. "), false);
};
if ((((baseCockLength >= 8)) && ((baseCockLength < 20)))){
outputMainText((("You delight in teasing the crown of your " + cockDescript()) + ", rubbing it at the end of each stroke, squeezing out dollops of pre to smear over it and tease yourself with. It seems to pulse and twitch with each stroke, responding to every touch. "), false);
};
if ((((baseCockLength >= 20)) && ((baseCockLength < 26)))){
outputMainText((("The head of your " + cockDescript()) + " wobbles towards your face as you masturbate, a dollop of pre slowly growing atop it. "), false);
outputMainText((("You give in to temptation and swallow the tip, slurping greedily as you milk your " + cockDescript()) + " of it's precum. "), false);
if (((nipplesFuckable) && ((Math.round(baseCockThickness) <= (vaginalLooseness * 2))))){
_local4 = true;
titFuckSingle();
} else {
_local3 = true;
};
if ((((((breastsPerRow >= 2)) && ((breastRating() > 3)))) && (!(_local4)))){
if (!nippleCocks){
outputMainText((("Your hands migrate to your breasts of their own accord, wrapping your titflesh around your " + cockDescript()) + ", jacking it up and down in your pillowy tits. "), false);
};
if (nippleCocks){
outputMainText((((("Gripping your " + _local2) + " cocknipples like fleshy handles, you wrap your titflesh around your ") + cockDescript()) + ", jacking it up and down in your pillowy tits. "), false);
};
if ((((lactationMultiplier > 0)) && (!(nippleCocks)))){
outputMainText("Jets of milk squirt out of your nipples with each thrust of your hips, adding to the already copious amounts of fluids coating your body. ", false);
};
if ((((lactationMultiplier > 0)) && (nippleCocks))){
outputMainText("Your stiff nippledicks squirt milky precum with each thrust of your hips, adding to the already copious amounts of fluids coating your body. ", false);
};
};
};
if (baseCockLength > 26){
outputMainText((("The head of your " + cockDescript()) + " wobbles over, bumping your face and smearing your lips with it's copious precum. You are unable to resist opening your mouth and sucking it down, filling your mouth with your cock. "), false);
if (cor > 60){
outputMainText("The heady aroma of your cock fills your nostrils as you force inch after inch into your mouth, deepthroating as much of yourself as you can. ", false);
};
if (((nipplesFuckable) && ((Math.round(baseCockThickness) <= (vaginalLooseness * 2))))){
_local4 = true;
titFuckSingle();
} else {
_local3 = true;
};
if ((((((breastsPerRow >= 2)) && ((breastRating() > 3)))) && (!(_local4)))){
if (!nippleCocks){
outputMainText((("Hands reach up to your pillowy breasts, wrapping them around the shaft of your " + cockDescript()) + ", causing you to let out muffled moans of excitment. "), false);
};
if (nippleCocks){
outputMainText((((("Gripping your " + _local2) + " cocknipples like fleshy handles, you wrap your titflesh around your ") + cockDescript()) + ", causing you to let out muffled moans of excitment. "), false);
};
if ((((lactationMultiplier > 0)) && (!(nippleCocks)))){
outputMainText("Jets of milk squirt out of your nipples with each thrust of your hips, adding to the already copious amounts of fluids coating your body. ", false);
};
if ((((lactationMultiplier > 0)) && (nippleCocks))){
outputMainText("Your stiff nippledicks squirt milky precum with each thrust of your hips, adding to the already copious amounts of fluids coating your body. ", false);
};
};
};
outputMainText("", false);
};
if (dogCocks == 1){
if ((baseCockThickness * dogAffinity) < 1.8){
outputMainText((("You easily wrap a hand around your " + dogDescript()) + " and start masturbating. "), false);
};
if (((((baseCockThickness * dogAffinity) >= 1.8)) && (((baseCockThickness * dogAffinity) < 3)))){
outputMainText((("You have some difficulty fitting your hand around your " + dogDescript()) + ", relishing the feelings of your large bulbous beast endowments as you begin masturbating. "), false);
};
if (((((baseCockThickness * dogAffinity) >= 3)) && (((baseCockThickness * dogAffinity) < 5)))){
outputMainText((("You use both hands to grip your " + dogDescript()) + ", feeling the throbbing of your knot as you begin to masturbate. "), false);
};
if ((baseCockThickness * dogAffinity) >= 5){
outputMainText((("You grasp onto your " + dogDescript()) + " with both hands, but fail to encircle it fully as you begin to masturbate. "), false);
};
if (baseCockLength < 12){
outputMainText((("You stroke quickly, pleasuring your sensitive " + dogDescript()) + ", darting down to fondle the senstivie sheath at the base of your cock. "), false);
};
if ((((baseCockLength >= 8)) && ((baseCockLength < 20)))){
outputMainText((("You delight in teasing pointed tip of your " + dogDescript()) + ", rubbing it at the end of each stroke, squeezing out dollops of pre to smear over it and tease yourself with. Your knot seems to pulse and twitch with each stroke, reacting to every touch. "), false);
};
if ((((baseCockLength >= 20)) && ((baseCockLength < 26)))){
outputMainText((("The pointed tip of your " + dogDescript()) + " angles towards your face as you masturbate, a dollop of pre slowly leaking from it. "), false);
outputMainText((("You give in to temptation and swallow the tip, slurping greedily as you milk your " + dogDescript()) + " of it's precum. "), false);
if (((nipplesFuckable) && ((Math.round((baseCockThickness * dogAffinity)) <= (vaginalLooseness * 2))))){
_local4 = true;
dogTitFuckSingle();
} else {
_local3 = true;
};
if ((((((breastsPerRow >= 2)) && ((breastRating() > 3)))) && (!(_local4)))){
if (!nippleCocks){
outputMainText((("Your hands migrate to your breasts of their own accord, wrapping your titflesh around your " + dogDescript()) + ", jacking it up and down above your knot with your pillowy tits. "), false);
};
if (nippleCocks){
outputMainText((((("Gripping your " + _local2) + " cocknipples like fleshy handles, you wrap your titflesh around your ") + dogDescript()) + ", jacking it up and down above your knot with your pillowy tits. "), false);
};
if ((((lactationMultiplier > 0)) && (!(nippleCocks)))){
outputMainText("Jets of milk squirt out of your nipples with each thrust of your hips, adding to the already copious amounts of fluids coating your body. ", false);
};
if ((((lactationMultiplier > 0)) && (nippleCocks))){
outputMainText("Your stiff nippledicks squirt milky precum with each thrust of your hips, adding to the already copious amounts of fluids coating your body. ", false);
};
};
};
if (baseCockLength > 26){
outputMainText((((("The head of your " + dogDescript()) + " wobbles over, bumping your face and smearing your lips with it's copious precum. You are unable to resist opening your mouth and sucking it down, filling your mouth with your ") + dogDescript()) + ". "), false);
if (cor > 60){
outputMainText("The strong animal scent of your cock fills your nostrils as you force inch after inch into your mouth, deepthroating as much of yourself as you can. ", false);
};
if (((nipplesFuckable) && ((Math.round((baseCockThickness * dogAffinity)) <= (vaginalLooseness * 2))))){
_local4 = true;
dogTitFuckSingle();
} else {
_local3 = true;
};
if ((((((breastsPerRow >= 2)) && ((breastRating() > 3)))) && (!(_local4)))){
if (!nippleCocks){
outputMainText((("Hands reach up to your pillowy breasts, wrapping them around the shaft of your " + dogDescript()) + ", causing you to let out muffled moans of excitment. "), false);
};
if (nippleCocks){
outputMainText((((("Gripping your " + _local2) + " cocknipples like fleshy handles, you wrap your titflesh around your ") + dogDescript()) + ", causing you to let out muffled moans of excitment. "), false);
};
if ((((lactationMultiplier > 0)) && (!(nippleCocks)))){
outputMainText("Jets of milk squirt out of your nipples with each thrust of your hips, adding to the already copious amounts of fluids coating your body. ", false);
};
if ((((lactationMultiplier > 0)) && (nippleCocks))){
outputMainText("Your stiff nippledicks squirt milky precum with each thrust of your hips, adding to the already copious amounts of fluids coating your body. ", false);
};
};
};
outputMainText("", false);
};
};
if (cockTotal > 1){
if (cockTotal == 2){
if (hasSheath()){
outputMainText("Your fingers trace around your sheath, drawing involuntary spasms from your twin members. ", false);
};
outputMainText((("You grasp one of your " + allCocksDescript()) + " in each hand, "), false);
if (baseCockThickness <= 1.8){
outputMainText("wrapping your fingers around each tool and just holding yourself, the feelings of two cocks almost too much to bear. ", false);
} else {
outputMainText("squeezing as much of your tools as your fingers can encircle. The feelings of squeezing your thick twin cocks is amazing and overwhelming at the same time. ", false);
};
if (baseCockLength <= 10){
outputMainText("Your hips twitch of their own volition, force-fucking your hands. In moments you're fiercely masturbating, pumping each shaft in turn, pleasure mounting at the base and growing more urgent with each pump. You squeal softly, and increase the tempo of your masturbation, desperate for release. ", false);
};
if ((((baseCockLength > 10)) && ((baseCockLength < 20)))){
outputMainText("You look down at your trembling members, mere inches away, and tentatively lick at a cocktip. Both dicks begin oozing pre in response. ", false);
if (((nipplesFuckable) && ((Math.round(baseCockThickness) <= (vaginalLooseness * 2))))){
if (dogCocks > 0){
if (((nipplesFuckable) && (((Math.round(baseCockThickness) * dogAffinity) <= (vaginalLooseness * 2))))){
_local4 = true;
if (multiTitFuck()){
_local3 = true;
};
} else {
if (dogCocks != cockTotal){
_local4 = true;
_local3 = true;
if (normalCocks > 0){
titFuckSingle();
};
if (horseCocks > 0){
horseTitFuckSingle();
};
};
};
} else {
_local4 = true;
if (multiTitFuck()){
_local3 = true;
};
};
};
if ((((((breastsPerRow == 2)) && ((breastRating() > 3)))) && (!(_local4)))){
if (!nippleCocks){
outputMainText((((("You wrap your " + breastCupSize) + " cup tits around your ") + allCocksDescript()) + ", sandwitching them inside your pillowy mounds. With delicious slowness you begin jacking yourself off with your tits, shafts rubbing together inside your luxurious breasts, tongue running figure eights across the tips. "), false);
};
if (nippleCocks){
outputMainText((((((("Gripping your " + _local2) + " cocknipples like fleshy handles, you wrap your ") + breastCupSize) + " cup tits around your ") + allCocksDescript()) + ", sandwitching them inside your pillowy mounds. With delicious slowness you begin jacking yourself off with your tits, shafts rubbing together inside your luxurious breasts, tongue running figure eights across the tips. "), false);
};
if ((((lactationMultiplier > 0)) && (!(nippleCocks)))){
outputMainText("Jets of milk squirt out of your nipples with each thrust of your hips, adding to the already copious amounts of fluids coating your body. ", false);
};
if ((((lactationMultiplier > 0)) && (nippleCocks))){
outputMainText("Your stiff nippledicks squirt milky precum with each thrust of your hips, adding to the already copious amounts of fluids coating your body. ", false);
};
};
if ((((((breastsPerRow > 2)) && ((breastRating() > 3)))) && (!(_local4)))){
if (!nippleCocks){
outputMainText((((((("You wrap your " + breastCupSize) + " cup tits around your ") + allCocksDescript()) + ", squeezing them between your ") + breastTotal) + " breasts. With delicious slowness you begin jacking yourself off with your tits, smooth breastflesh massaging your members as you aggressively lick and suck at the tips. "), false);
};
if (nippleCocks){
outputMainText((((((((("Gripping your " + _local2) + " cocknipples like fleshy handles, you wrap your ") + breastCupSize) + " cup tits around your ") + allCocksDescript()) + ", squeezing them between your ") + breastTotal) + " breasts. With delicious slowness you begin jacking yourself off with your tits, smooth breastflesh massaging your members as you aggressively lick and suck at the tips. "), false);
};
if ((((lactationMultiplier > 0)) && (!(nippleCocks)))){
outputMainText("Jets of milk squirt out of your many nipples with each thrust of your hips, adding to the already copious amounts of fluids coating your body. ", false);
};
if ((((lactationMultiplier > 0)) && (nippleCocks))){
outputMainText("Your stiff nippledicks squirt milky precum with each thrust of your hips, adding to the already copious amounts of fluids coating your body. ", false);
};
};
if ((((breastRating() <= 3)) && (!(_local4)))){
if (!nippleCocks){
outputMainText((("You slowly stroke yourself, pausing every few strokes to smear the streaks of pre that leak from your " + allCocksDescript()) + " over yourself. As you become more and more lubed and horny, you increase the tempo, until at last you are pumping yourself hard and fast, squeezing your cocks together in pleasure. "), false);
};
if (nippleCocks){
outputMainText((((("You slowly stroke yourself, pausing every few strokes to rub one of your " + allCocksDescript()) + " against your ") + _local2) + " dicknipples. As you become more and more lubed and horny, you increase the tempo, until at last you are pumping yourself hard and fast, squeezing your cocks together in pleasure. "), false);
};
};
};
if (baseCockLength >= 20){
outputMainText((("Your " + allCocksDescript()) + " brush against your face, throbbing with need. You open your mouth and suck one of your pricks into your mouth, taking as much of it as possible, running your tongue along the underside. You smile and pop it free, then take a different shaft into your maw. "), false);
if (((nipplesFuckable) && ((Math.round(baseCockThickness) <= (vaginalLooseness * 2))))){
if (dogCocks > 0){
if (((nipplesFuckable) && (((Math.round(baseCockThickness) * dogAffinity) <= (vaginalLooseness * 2))))){
_local4 = true;
if (multiTitFuck()){
_local3 = true;
};
} else {
if (dogCocks != cockTotal){
_local4 = true;
_local3 = true;
if (normalCocks > 0){
titFuckSingle();
};
if (horseCocks > 0){
horseTitFuckSingle();
};
};
};
} else {
_local4 = true;
if (multiTitFuck()){
_local3 = true;
};
};
};
if ((((((breastsPerRow == 2)) && ((breastRating() > 3)))) && (!(_local4)))){
if (!nippleCocks){
outputMainText((((("You wrap your " + breastCupSize) + " cup tits around your ") + allCocksDescript()) + ", sandwitching them inside your pillowy mounds. With delicious slowness you begin jacking yourself off with your tits, shafts rubbing together inside your luxurious breasts, mouthfucking yourself with each of your cocks in turn. "), false);
};
if (nippleCocks){
outputMainText((((((("Gripping your " + _local2) + " cocknipples like fleshy handles, you wrap your ") + breastCupSize) + " cup tits around your ") + allCocksDescript()) + ", sandwitching them inside your pillowy mounds. With delicious slowness you begin jacking yourself off with your tits, shafts rubbing together inside your luxurious breasts, mouthfucking yourself with each of your cocks in turn. "), false);
};
if ((((lactationMultiplier > 0)) && (!(nippleCocks)))){
outputMainText("Jets of milk squirt out of your nipples with each thrust of your hips, adding to the already copious amounts of fluids coating your body. ", false);
};
if ((((lactationMultiplier > 0)) && (nippleCocks))){
outputMainText("Your stiff nippledicks squirt milky precum with each thrust of your hips, adding to the already copious amounts of fluids coating your body. ", false);
};
};
if ((((((breastsPerRow > 2)) && ((breastRating() > 3)))) && (!(_local4)))){
if (!nippleCocks){
outputMainText((((((("You wrap your " + breastCupSize) + " cup tits around your ") + allCocksDescript()) + ", squeezing them between your ") + breastTotal) + " breasts. With delicious slowness you begin jacking yourself off with your tits, smooth breastflesh massaging your members as you aggressively mouthfuck each of your cocks. "), false);
};
if (nippleCocks){
outputMainText((((((((("Gripping your " + _local2) + " cocknipples like fleshy handles, you wrap your ") + breastCupSize) + " cup tits around your ") + allCocksDescript()) + ", squeezing them between your ") + breastTotal) + " breasts. With delicious slowness you begin jacking yourself off with your tits, smooth breastflesh massaging your members as you mouthfuck each of your cocks. "), false);
};
if ((((lactationMultiplier > 0)) && (!(nippleCocks)))){
outputMainText("Jets of milk squirt out of your many nipples with each thrust of your hips, adding to the already copious amounts of fluids coating your body. ", false);
};
if ((((lactationMultiplier > 0)) && (nippleCocks))){
outputMainText("Your stiff nippledicks squirt milky precum with each thrust of your hips, adding to the already copious amounts of fluids coating your body. ", false);
};
};
if ((((breastRating() <= 3)) && (!(_local4)))){
if (!nippleCocks){
outputMainText((("You slowly stroke yourself, pausing every few strokes to smear the streaks of pre that leak from your " + allCocksDescript()) + " over yourself. As you become more and more lubed and horny, you increase the tempo, until at last you are pumping yourself hard and fast, squeezing your cocks together in pleasure. "), false);
};
if (nippleCocks){
outputMainText((((("You slowly stroke yourself, pausing every few strokes to rub one of your " + allCocksDescript()) + " against your ") + _local2) + " dicknipples. As you become more and more lubed and horny, you increase the tempo, until at last you are pumping yourself hard and fast, squeezing your cocks together in pleasure. "), false);
};
};
};
};
if (cockTotal >= 3){
if (hasSheath()){
outputMainText("Your fingers trace around your sheath, drawing involuntary spasms from your cocks. ", false);
};
outputMainText((("You grasp one of your " + allCocksDescript()) + " in each hand, "), false);
if (baseCockThickness <= 1.8){
outputMainText((("wrapping your fingers around each tool and just holding yourself, the feelings of your " + cockTotal) + " cocks making you feel giddy. "), false);
} else {
outputMainText("squeezing as much of your tools as your fingers can encircle. The feelings of rubbing your bundle of cocks together is indescribable. Your eyes roll back in uncontrollable pleasure. ", false);
};
if (baseCockLength <= 10){
outputMainText("Your hips twitch of their own volition, forcing fucking your hands. In moments you're fiercely masturbating, pumping each shaft in turn, pleasure mounting in your loins and growing more urgent with each pump. You squeal softly, and increase the tempo of your masturbation, desperate for release. ", false);
};
if ((((baseCockLength > 10)) && ((baseCockLength < 20)))){
outputMainText("You look down at your trembling members, mere inches away, and tentatively lick at a cocktip. Your dicks begin oozing pre in response. ", false);
if (((nipplesFuckable) && ((Math.round(baseCockThickness) <= (vaginalLooseness * 2))))){
if (dogCocks > 0){
if (((nipplesFuckable) && (((Math.round(baseCockThickness) * dogAffinity) <= (vaginalLooseness * 2))))){
_local4 = true;
if (multiTitFuck()){
_local3 = true;
};
} else {
if (dogCocks != cockTotal){
_local4 = true;
_local3 = true;
if ((((normalCocks > 0)) && (((cockTotal - dogCocks) == 1)))){
titFuckSingle();
};
if ((((horseCocks > 0)) && (((cockTotal - dogCocks) == 1)))){
horseTitFuckSingle();
};
if ((cockTotal - dogCocks) > 1){
multiTitFuck();
};
};
};
} else {
_local4 = true;
if (multiTitFuck()){
_local3 = true;
};
};
};
if ((((((breastsPerRow == 2)) && ((breastRating() > 3)))) && (!(_local4)))){
if (!nippleCocks){
outputMainText((((("You wrap your " + breastCupSize) + " cup tits around your ") + allCocksDescript()) + ", sandwitching them inside your pillowy mounds. With delicious slowness you begin jacking yourself off with your tits, shafts rubbing together inside your luxurious breasts, tongue running figure eights across the tips. "), false);
};
if (nippleCocks){
outputMainText((((((("Gripping your " + _local2) + " cocknipples like fleshy handles, you wrap your ") + breastCupSize) + " cup tits around your ") + allCocksDescript()) + ", sandwitching them inside your pillowy mounds. With delicious slowness you begin jacking yourself off with your tits, shafts rubbing together inside your luxurious breasts, tongue running figure eights across the tips. "), false);
};
if ((((lactationMultiplier > 0)) && (!(nippleCocks)))){
outputMainText("Jets of milk squirt out of your nipples with each thrust of your hips, adding to the already copious amounts of fluids coating your body. ", false);
};
if ((((lactationMultiplier > 0)) && (nippleCocks))){
outputMainText("Your stiff nippledicks squirt milky precum with each thrust of your hips, adding to the already copious amounts of fluids coating your body. ", false);
};
};
if ((((((breastsPerRow > 2)) && ((breastRating() > 3)))) && (!(_local4)))){
if (!nippleCocks){
outputMainText((((((("You wrap your " + breastCupSize) + " cup tits around your ") + allCocksDescript()) + ", squeezing them between your ") + breastTotal) + " breasts. With delicious slowness you begin jacking yourself off with your tits, smooth breastflesh massaging your members as you aggressively lick and suck at the tips. "), false);
};
if (nippleCocks){
outputMainText((((((((("Gripping your " + _local2) + " cocknipples like fleshy handles, you wrap your ") + breastCupSize) + " cup tits around your ") + allCocksDescript()) + ", squeezing them between your ") + breastTotal) + " breasts. With delicious slowness you begin jacking yourself off with your tits, smooth breastflesh massaging your members as you aggressively lick and suck at the tips. "), false);
};
if ((((lactationMultiplier > 0)) && (!(nippleCocks)))){
outputMainText("Jets of milk squirt out of your many nipples with each thrust of your hips, adding to the already copious amounts of fluids coating your body. ", false);
};
if ((((lactationMultiplier > 0)) && (nippleCocks))){
outputMainText("Your stiff nippledicks squirt milky precum with each thrust of your hips, adding to the already copious amounts of fluids coating your body. ", false);
};
};
if ((((breastRating() <= 3)) && (!(_local4)))){
if (!nippleCocks){
outputMainText((("You slowly stroke yourself, pausing every few strokes to smear the streaks of pre that leak from your " + allCocksDescript()) + " over yourself. As you become more and more lubed and horny, you increase the tempo, until at last you are pumping yourself hard and fast, squeezing your cocks together in pleasure. "), false);
};
if (nippleCocks){
outputMainText((((("You slowly stroke yourself, pausing every few strokes to rub one of your " + allCocksDescript()) + " against your ") + _local2) + " dicknipples. As you become more and more lubed and horny, you increase the tempo, until at last you are pumping yourself hard and fast, squeezing your cocks together in pleasure. "), false);
};
};
};
if (baseCockLength >= 20){
outputMainText((("Your " + allCocksDescript()) + " brush against your face, throbbing with need. You open your mouth and suck one of your pricks into your mouth, taking as much of it as possible, running your tongue along the underside. You smile and pop it free, then take a different shaft into your maw. "), false);
if (((nipplesFuckable) && ((Math.round(baseCockThickness) <= (vaginalLooseness * 2))))){
if (dogCocks > 0){
if (((nipplesFuckable) && (((Math.round(baseCockThickness) * dogAffinity) <= (vaginalLooseness * 2))))){
_local4 = true;
if (multiTitFuck()){
_local3 = true;
};
} else {
if (dogCocks != cockTotal){
_local4 = true;
_local3 = true;
if ((((normalCocks > 0)) && (((cockTotal - dogCocks) == 1)))){
titFuckSingle();
};
if ((((horseCocks > 0)) && (((cockTotal - dogCocks) == 1)))){
horseTitFuckSingle();
};
if ((cockTotal - dogCocks) > 1){
multiTitFuck();
};
};
};
} else {
_local4 = true;
if (multiTitFuck()){
_local3 = true;
};
};
};
if ((((((breastsPerRow == 2)) && ((breastRating() > 3)))) && (!(_local4)))){
if (!nippleCocks){
outputMainText((((("You wrap your " + breastCupSize) + " cup tits around your ") + allCocksDescript()) + ", sandwitching them inside your pillowy mounds. With delicious slowness you begin jacking yourself off with your tits, shafts rubbing together inside your luxurious breasts, mouthfucking yourself with each of your cocks in turn. "), false);
};
if (nippleCocks){
outputMainText((((((("Gripping your " + _local2) + " cocknipples like fleshy handles, you wrap your ") + breastCupSize) + " cup tits around your ") + allCocksDescript()) + ", sandwitching them inside your pillowy mounds. With delicious slowness you begin jacking yourself off with your tits, shafts rubbing together inside your luxurious breasts, mouthfucking yourself with each of your cocks in turn. "), false);
};
if ((((lactationMultiplier > 0)) && (!(nippleCocks)))){
outputMainText("Jets of milk squirt out of your nipples with each thrust of your hips, adding to the already copious amounts of fluids coating your body. ", false);
};
if ((((lactationMultiplier > 0)) && (nippleCocks))){
outputMainText("Your stiff nippledicks squirt milky precum with each thrust of your hips, adding to the already copious amounts of fluids coating your body. ", false);
};
};
if ((((((breastsPerRow > 2)) && ((breastRating() > 3)))) && (!(_local4)))){
if (!nippleCocks){
outputMainText((((((("You wrap your " + breastCupSize) + " cup tits around your ") + allCocksDescript()) + ", squeezing them between your ") + breastTotal) + " breasts. With delicious slowness you begin jacking yourself off with your tits, smooth breastflesh massaging your members as you aggressively mouthfuck each of your cocks. "), false);
};
if (nippleCocks){
outputMainText((((((((("Gripping your " + _local2) + " cocknipples like fleshy handles, you wrap your ") + breastCupSize) + " cup tits around your ") + allCocksDescript()) + ", squeezing them between your ") + breastTotal) + " breasts. With delicious slowness you begin jacking yourself off with your tits, smooth breastflesh massaging your members as you mouthfuck each of your cocks. "), false);
};
if ((((lactationMultiplier > 0)) && (!(nippleCocks)))){
outputMainText("Jets of milk squirt out of your many nipples with each thrust of your hips, adding to the already copious amounts of fluids coating your body. ", false);
};
if ((((lactationMultiplier > 0)) && (nippleCocks))){
outputMainText("Your stiff nippledicks squirt milky precum with each thrust of your hips, adding to the already copious amounts of fluids coating your body. ", false);
};
};
if ((((breastRating() <= 3)) && (!(_local4)))){
if (!nippleCocks){
outputMainText((("You slowly stroke yourself, pausing every few strokes to smear the streaks of pre that leak from your " + allCocksDescript()) + " over yourself. As you become more and more lubed and horny, you increase the tempo, until at last you are pumping yourself hard and fast, squeezing your cocks together in pleasure. "), false);
};
if (nippleCocks){
outputMainText((((("You slowly stroke yourself, pausing every few strokes to rub one of your " + allCocksDescript()) + " against your ") + _local2) + " dicknipples. As you become more and more lubed and horny, you increase the tempo, until at last you are pumping yourself hard and fast, squeezing your cocks together in pleasure. "), false);
};
};
};
};
};
if (vaginas > 0){
if (vaginas == 1){
outputMainText("You let your hand roam over your pussy-lips, slowly teasing yourself, diving deeper into your folds to arouse and expose your clit. ", false);
if (clitLength < 1.5){
outputMainText("You stroke and tease around the sensitive little pleasure bud, letting your fingers plumb the depths below. ", false);
};
if ((((clitLength >= 1.5)) && ((clitLength < 4.5)))){
outputMainText("Your large clit is already poking out from your ", false);
if (vaginalWetness > 0){
outputMainText("glistening ", false);
};
outputMainText("lips. You gently stroke and touch it till it grows as large as a tiny cock. ", false);
};
if (clitLength >= 4.5){
outputMainText("Your cock-sized clit is already fully engorged and deliciously sensitive. You touch it softly, eliciting a quiet moan from your throat. ", false);
};
if (vaginalWetness == 0){
outputMainText("You have some difficulty with your relatively dry pussy, but you manage to gently and pleasurably masturbate by taking it slowly. ", false);
};
if (vaginalWetness == 1){
outputMainText("Your horny puss is aching for attention and you oblige it, dipping your fingers into the moist honeypot, and jilling yourself vigorously. ", false);
};
if (vaginalWetness == 2){
outputMainText("The moistened cleft on your groin demands your full attention, drawing your fingers deep inside to explore the wet passage. ", false);
};
if (vaginalWetness == 3){
outputMainText("The sweltering heat of your slick cunt aches for something to fill it, and you oblige, dipping your fingers into your slippery cunt. ", false);
};
if (vaginalWetness == 4){
outputMainText((("Warm wetness runs down your legs in thick streams, pouring from your " + vaginaDescript()) + ". You smile sheepishly and stroke up your now slickened legs to your pussy-lips, parting them and letting your fingers dive inside the wet channel. "), false);
};
if (vaginalWetness == 5){
outputMainText("The heavy scent of female arousal fills the air as your steamy sexpot drizzles girl-lube everywhere. You gasp in surprise as your fingers find their way inside, vigerously fingerfucking your passage, spurts of girlcum squirting out with each penatration. ", false);
};
};
};
outputMainText("\r\r", false);
if (cockTotal > 0){
if (cockTotal == 1){
outputMainText("The sensations prove too much for you, and you feel the tightness building in your ", false);
if (normalCocks == 1){
outputMainText("twitching manhood, growing rapidly. You stroke furiously, feeling the pressure of your cum as it nears release. ", false);
};
if (dogCocks == 1){
outputMainText((("swelling, bulbous knot. You feel it growing tighter and tighter until it's nearly twice the width of your " + dogDescript()) + ". The pressure is an agonizing pleasure that only builds higher and higher as you come closer and closer to orgasm. "), false);
};
if (horseCocks == 1){
outputMainText((((("swollen equine sheath, slowly beginning to work it's way up your shaft. Precum begins pouring from your " + horseDescript()) + ", slicking your ") + horseDescript()) + " as you get ready to blow. "), false);
};
outputMainText("Pleasurable spasms overwhelm you as cum erupts from your ", false);
if (normalCocks == 1){
outputMainText(cockDescript(), false);
};
if (dogCocks == 1){
outputMainText(dogDescript(), false);
};
if (horseCocks == 1){
outputMainText(horseDescript(), false);
};
outputMainText(". Your hips jerk in the air in time with your eruptions, spraying cum ", false);
if (_local3){
outputMainText("into your eager mouth. ", false);
};
if (_local4){
outputMainText("deep inside your unnatural breast. ", false);
} else {
if (!_local3){
outputMainText("in the air. ", false);
};
};
if (_local3){
if (_local5 < 5){
outputMainText("You manage to swallow most of your cum as it bursts from your loins, the pleasure of orgasm goading you into cumpulsively swallowing. ", false);
};
if ((((_local5 >= 5)) && ((_local5 < 7)))){
outputMainText("You sputter jism from your mouth as your orgasm becomes too much to keep up with, cum filling your mouth to capacity as you swallow and dribble in equal measure. ", false);
};
if ((((_local5 >= 7)) && ((_local5 < 10)))){
outputMainText((("Pulse after pulse of cum erupts from your " + cockDescript()) + " into your mouth, you swallow what you can but it's too much for you. Cum runs down your cock to pool on you as your orgasm drags on. "), false);
};
if (_local5 >= 10){
outputMainText((("Your orgasm never seems to end, and your world dissolves into the feelings from your " + cockDescript()) + " as it erupts jet after jet of cum into your mouth. You nearly gag, cum overflowing to spray out in a river, pooling around you. "), false);
};
} else {
if (_local4){
if (_local5 < 5){
outputMainText("You feel multiple thick spurts of cum splash against the inside of your breast. ", false);
};
if ((((_local5 >= 5)) && ((_local5 < 7)))){
outputMainText("Cum dribbles down the length of your shaft as your abused tit is filled to overflowing by spurt after spurt of gooey sperm. ", false);
};
if ((((_local5 >= 7)) && ((_local5 < 10)))){
outputMainText("Pulse after pulse of cum splash deep within your breast, causing it to swell with pressure. Cum runs down your cock in a torrent to pool on you as your orgasm drags on. ", false);
};
if (_local5 >= 10){
outputMainText((("Your orgasm never seems to end, and your world dissolves into the feelings from your " + cockDescript()) + " as it erupts jet after jet of cum into your abused tit. With a *pop*, your cock is forced free by the pressure. It continues to squirt semen everywhere, while a river of cum pours out of your dialated nipple, pooling around you. "), false);
};
} else {
if (_local5 < 5){
outputMainText("A few thick spurts of cum burst from your loins, splattering you liberally. ", false);
};
if ((((_local5 >= 5)) && ((_local5 < 7)))){
outputMainText("The orgasm drags on and on, spurt after spurt of jism coating you. ", false);
};
if ((((_local5 >= 7)) && ((_local5 < 10)))){
outputMainText("Your body spasms powerfully, each spurt more making you twitch more powerfully than the last. Rope after rope of jizz rains down. ", false);
};
if (_local5 >= 10){
outputMainText("The orgasm never seems to end, and your world dissolves to little more than the feeling of each jet of cum erupting from your cock. You mind dimly processes the feeling of each burst splattering over you, but it only enhances the feeling. ", false);
};
};
};
};
if (cockTotal > 1){
outputMainText("The sensations prove too much for you, and you feel the tightness building in your loins. ", false);
if ((((dogCocks > normalCocks)) && ((dogCocks > horseCocks)))){
outputMainText((("Your feel your knots bulging and swelling, growing tighter and tighter until they're nearly double the width of a " + dogDescript()) + ". The agonizing pressure builds higher and tighter with every passing second as you get closer and closer to orgasm. "), false);
} else {
if ((((horseCocks > normalCocks)) && ((horseCocks > dogCocks)))){
outputMainText((((("You feel a pulsing in your sheath, slowly working it's way up your " + horseDescript()) + "s. Precum pours from your ") + horseDescript()) + "s, slicking the wobbly equine shafts as they get ready to blow. "), false);
} else {
outputMainText("Your manhoods twitch, growing to their full size. You stroke them furiously, feeling the pressure of your cum as it nears release. ", false);
};
};
if (_local4){
if (_local5 < 5){
outputMainText("You feel multiple thick spurts of cum splash inside of your breasts. As you buck and thrust with orgasm, your cocks begin to pop free of your abused tits. ", false);
};
if ((((_local5 >= 5)) && ((_local5 < 7)))){
outputMainText("Cum dribbles down your shafts as your abused tits are filled to overflowing by spurt after spurt of gooey sperm. As you buck and thrust with orgasm, your cocks begin to pop free of your abused tits. ", false);
};
if ((((_local5 >= 7)) && ((_local5 < 10)))){
outputMainText("Pulse after pulse of cum splash deep within your breasts, causing them to swell with pressure. Torrents of cum run down your cocks to pool around you. As you buck and thrust with orgasm, your cocks begin to pop free of your abused tits. ", false);
};
if (_local5 >= 10){
outputMainText((("Your orgasm never seems to end, and your world dissolves into the feelings from your " + allCocksDescript()) + " as they erupt jet after jet of cum into your abused tits. With a series of wet *pops*, your cocks are forced free by the pressure. They continue to squirt semen everywhere, while rivers of cum pour out of your dilated nipples, pooling around you. "), false);
};
};
outputMainText((("Pleasure overwhelms your fragile mind as cum erupts from your " + allCocksDescript()) + ". Your hips jerk in the air in time with your eruptions, cum spraying from you as your body does its best impression of a perverted sprinkler. "), false);
if (_local3){
if (_local5 < 5){
outputMainText("You manage to swallow most of your cum as it bursts from your loins, the pleasure of orgasm goading you into cumpulsively swallowing. ", false);
};
if ((((_local5 >= 5)) && ((_local5 < 7)))){
outputMainText("You sputter jism from your mouth as your orgasm becomes too much to keep up with, cum filling your mouth to capacity as you swallow and dribble in equal measure. Cum splatters on you from the rest of your equipment, making you a slimy mess.", false);
};
if ((((_local5 >= 7)) && ((_local5 < 10)))){
outputMainText((((("Pulse after pulse of cum erupts from your " + cockDescript()) + " into your mouth, you swallow what you can but it's too much for you. Cum runs down your ") + cockDescript()) + " to pool on you as your orgasm drags on. Jizz rains over you the entire time from the rest of your \"equipment\"."), false);
};
if (_local5 >= 10){
outputMainText((("Your orgasm never seems to end, and your world dissolves into the feelings from your " + cockDescript()) + " as it erupts jet after jet of cum into your mouth. You nearly gag, cum overflowing to spray out in a river, pooling around you. Your other 'equipment' rains jizz upon you the whole while, soaking you in a cum-puddle."), false);
};
};
if (_local5 < 5){
outputMainText("A few thick spurts of cum burst from your cocks, splattering you liberally. ", false);
};
if ((((_local5 >= 5)) && ((_local5 < 7)))){
outputMainText("The orgasm drags on and on, spurt after spurt of jism coating you from each cock. ", false);
};
if ((((_local5 >= 7)) && ((_local5 < 10)))){
outputMainText("Your body spasms powerfully, each spurt making you twitch more powerfully than the last. Rope after rope of jizz rains down as the orgasms from each of your members begin to overlap. Your nearly black out in pleasure. ", false);
};
if (_local5 >= 10){
outputMainText("The orgasm never seems to end, and your world dissolves to little more than the feeling of multiple cum eruptions spurting from your pricks. You mind dimly processes the feeling of each burst splattering over you, but it only enhances the feeling. ", false);
};
};
};
if (vaginas > 0){
if (vaginas == 1){
outputMainText("Your ", false);
if (gender == 3){
outputMainText("fem", false);
};
outputMainText("sex quivers as the pleasure overwhelms you, robbing you of muscle control, your passage rippling and contracting around your fingers. ", false);
if ((((clitLength > 1.5)) && ((clitLength < 4.5)))){
outputMainText("Every muscle-twitch seems to stretch your big oversensitive clitty larger, causing you to squeal with delight at every bump and touch against it. ", false);
};
if (clitLength >= 4.5){
outputMainText("A hand finds your cock-like clit, squeezing it caressing it as the cunt-wrenching orgasm wracks your body, the over-sized joy-buzzer nearly making you black out from the sensations it generates. ", false);
};
if (vaginalWetness == 5){
outputMainText((("A veritable gush of fluid explodes from your nethers, pulsing in time with the ripples of your " + vaginaDescript()) + ". "), false);
};
};
if ((((((int((Math.random() * (2 + vaginalLooseness))) == 0)) && ((vaginalLooseness < 3)))) && ((lust > 85)))){
if (vaginalLooseness == 2){
outputMainText((("<b>Your " + vaginaDescript()) + " gapes open slightly, stretched further from your aggressive and needy masturbation.</b> "), false);
};
if (vaginalLooseness == 1){
outputMainText((("<b>Your " + vaginaDescript()) + " feels sore and stretched from the forcefulness of your masturbation.</b> "), false);
};
if (vaginalLooseness == 0){
outputMainText("<b>You realize there are spots of blood on your fingers - you've taken your own virginity!</b> ", false);
};
vaginalLooseness++;
};
};
if ((((((lactationMultiplier >= 2)) || (nippleCocks))) || (nipplesFuckable))){
titCum(_local5);
};
outputMainText("\r\r", false);
if (cockTotal > 0){
if (cockTotal == 1){
if (lib < 30){
outputMainText("You quickly fall asleep, spent. ", false);
};
if ((((lib >= 30)) && ((lib < 55)))){
outputMainText((("You roll and begin to doze, your semi-erect " + cockDescript()) + " flopping against you. "), false);
};
if ((((lib >= 55)) && ((lib <= 80)))){
outputMainText((("As you close your eyes and relax, your " + cockDescript()) + " surges back to erectness, ensuring "), false);
if (cor < 50){
outputMainText("your dreams will be filled with sex.", false);
} else {
outputMainText("you dream in a depraved kinky fantasia.", false);
};
};
if (lib > 80){
outputMainText((("You groan and drift to sleep, your rigid " + cockDescript()) + " pulsing and throbbing with continual lust."), false);
};
};
if (cockTotal > 1){
if (lib < 30){
outputMainText("You quickly fall asleep, spent. ", false);
};
if ((((lib >= 30)) && ((lib < 55)))){
outputMainText("You roll and begin to doze, your semi-erect cocks flopping against you. ", false);
};
if ((((lib >= 55)) && ((lib <= 80)))){
outputMainText("As you close your eyes and relax, your dicks surge back to erectness, ensuring ", false);
if (cor < 50){
outputMainText("your dreams will be filled with sex.", false);
} else {
outputMainText("you dream in a depraved kinky fantasia.", false);
};
};
if (lib > 80){
outputMainText("You groan and drift to sleep, your rigid erections pulsing and throbbing with continual lust.", false);
};
};
} else {
if (vaginas > 0){
outputMainText("You sigh softly and drift off to sleep, smelling of sex.", false);
} else {
outputMainText("You sigh and drift off to sleep.", false);
};
};
if (!debug){
stats(0, 0, 0, 0, 0, -0.75, -100, 0);
};
}
public function attack():void{
var _local1:Number;
_local1 = 0;
if (((((espe - spe) > 0)) && ((int((Math.random() * (((espe - spe) / 4) + 80))) > 80)))){
if ((espe - spe) < 8){
outputMainText((eShort + " narrowly avoids your attack!"), false);
};
if (((((espe - spe) >= 8)) && (((espe - spe) < 20)))){
outputMainText((eShort + " dodges your attack with superior quickness!"), false);
};
if ((espe - spe) >= 20){
outputMainText((eShort + " deftly avoids your slow attack."), false);
};
outputMainText("\r", false);
enemyAI();
return;
};
_local1 = int((str - (Math.random() * etou)));
if (_local1 <= 0){
_local1 = 0;
outputMainText((("Your attacks are deflected or blocked by " + eShort) + "."), false);
};
if ((((_local1 > 0)) && ((_local1 < 6)))){
outputMainText((((("You strike a glancing blow on " + eShort) + "! (") + _local1) + ")"), false);
};
if ((((_local1 > 5)) && ((_local1 < 11)))){
outputMainText((((("You wound " + eShort) + "! (") + _local1) + ")"), false);
};
if ((((_local1 > 10)) && ((_local1 < 21)))){
outputMainText((((("Your attack staggers " + eShort) + " with its force. (") + _local1) + ")"), false);
};
if (_local1 > 20){
outputMainText((((("Your powerful attack <b>mutilates</b> " + eShort) + "! (") + _local1) + ")"), false);
};
if (_local1 > 0){
doDamage(_local1);
};
outputMainText("\r", false);
if (eHP > 0){
enemyAI();
};
}
public function breastChange(_arg1:Number, _arg2:Boolean):void{
if (breastTotal == 0){
return;
};
var _local3:Number = 0;
var _local4:Number = _arg1;
var _local5:String = breastCupSize;
while (_arg1 < 0) {
if (breastCupSize == "N/A"){
_arg1 = 0;
};
if (breastCupSize == "A"){
breastCupSize = "N/A";
};
if (breastCupSize == "B"){
breastCupSize = "A";
};
if (breastCupSize == "C"){
breastCupSize = "B";
};
if (breastCupSize == "D"){
breastCupSize = "C";
};
if (breastCupSize == "DD"){
breastCupSize = "D";
};
if (breastCupSize == "E"){
breastCupSize = "DD";
};
if (breastCupSize == "F"){
breastCupSize = "E";
};
if (breastCupSize == "G"){
breastCupSize = "F";
};
if (breastCupSize == "H"){
breastCupSize = "G";
};
if (breastCupSize == "HH"){
breastCupSize = "H";
};
if (_arg1 != 0){
_local3--;
};
if (_arg1 != 0){
_arg1++;
};
};
while (_arg1 > 0) {
if (breastCupSize == "HH"){
_arg1 = 0;
};
if (breastCupSize == "H"){
breastCupSize = "HH";
};
if (breastCupSize == "G"){
breastCupSize = "H";
};
if (breastCupSize == "F"){
breastCupSize = "G";
};
if (breastCupSize == "E"){
breastCupSize = "F";
};
if (breastCupSize == "DD"){
breastCupSize = "E";
};
if (breastCupSize == "D"){
breastCupSize = "DD";
};
if (breastCupSize == "C"){
breastCupSize = "D";
};
if (breastCupSize == "B"){
breastCupSize = "C";
};
if (breastCupSize == "A"){
breastCupSize = "B";
};
if (breastCupSize == "N/A"){
breastCupSize = "A";
};
if (_arg1 != 0){
_local3++;
};
if (_arg1 != 0){
_arg1--;
};
};
if (_arg2){
if (breastRows == 1){
outputMainText("\r\rYour breasts ", false);
};
if (breastRows > 1){
outputMainText("\r\rAll your breasts ", false);
};
};
if (((((int(((nippleLength - (_local4 / 10)) * 10)) / 10) > 0.1)) && ((_local3 < 0)))){
_local4 = 0;
};
if ((((((_local3 == 0)) && ((_local4 > 0)))) && (_arg2))){
outputMainText("jiggle obscenely as your nipples grow longer!", false);
};
if ((((_local3 == 1)) && (_arg2))){
outputMainText("grow a single size ", false);
};
if ((((_local3 == 2)) && (_arg2))){
outputMainText("expand rapidly ", false);
};
if ((((_local3 >= 3)) && (_arg2))){
outputMainText("jiggle and twitch as their size explodes outward ", false);
};
if ((((_local3 > 0)) && (_arg2))){
outputMainText((("to a '" + breastCupSize) + "' cup. "), false);
if (breastRows > 1){
outputMainText("The other breasts grow at a similar rate, always staying a size smaller than those above them. ", false);
};
outputMainText("Your nipples expand to match.", false);
};
if ((((((_local3 == 0)) && ((_local4 < 0)))) && (_arg2))){
outputMainText("feel odd as your nipples shrink.", false);
};
if ((((((_local3 < 0)) && ((breastCupSize == "N/A")))) && (_arg2))){
outputMainText("shrink, vanishing almost completely.", false);
} else {
if ((((_local3 == -1)) && (_arg2))){
outputMainText("drop a cup size ", false);
};
if ((((_local3 == -2)) && (_arg2))){
outputMainText("tighten noticeably, dropping cup sizes ", false);
};
if ((((_local3 <= -3)) && (_arg2))){
outputMainText("flatten ", false);
};
if ((((_local3 < 0)) && (_arg2))){
outputMainText(((" to a '" + breastCupSize) + "'cup."), false);
};
};
if (_local4 > 0){
nippleLength = (nippleLength + (_local4 / 10));
};
if (_local4 < 0){
if (((!((_local3 == 0))) && (((int(((nippleLength - (_local4 / 10)) * 10)) / 10) > 0.1)))){
nippleLength = (nippleLength + (_local4 / 7.5));
if (_arg2){
outputMainText(" Your nipples shrink with them, becoming tinier.", false);
};
} else {
if ((int(((nippleLength - (_local4 / 10)) * 10)) / 10) > 0.1){
nippleLength = (nippleLength + (_local4 / 10));
};
};
};
if (_local4 > 0){
stats(0, 0, 0, 0, 0, 1, 0, 0);
};
if (breastRows > 1){
if ((((breastRows == 3)) && ((breastRating() <= 1)))){
outputMainText(" Your third row of breasts vanishes completely.", false);
breastRows = 2;
breastTotal = (breastTotal - breastsPerRow);
};
if ((((breastRows == 2)) && ((breastRating() == 0)))){
outputMainText(" Your second row of breasts shrinks into non-existence.", false);
breastRows = 1;
breastTotal = (breastTotal - breastsPerRow);
};
};
}
public function caninePeppers():void{
outputMainText("", true);
var _local1:Number = 1;
rand = (Math.random() * 100);
var _local2:Number = 0;
var _local3:Number = rando(100);
if (rand < 15){
_local1 = ((int((Math.random() * 20)) / 10) + 2);
outputMainText("The pepper tastes particularly potent, searingly hot and spicy.\r", false);
} else {
outputMainText("The pepper is strangely spicy but very tasty.\r", false);
};
if (inte > 30){
stats(0, 0, 0, (-1 * _local1), 0, 0, 0, 0);
outputMainText("You feel ", false);
if (_local1 > 1){
outputMainText("MUCH ", false);
};
outputMainText("dumber.\r", false);
};
if (str < 50){
stats((1 * _local1), 0, 0, 0, 0, 0, 0, 0);
if (_local1 > 1){
outputMainText("Your muscles ripple and grow, bulging outwards.\r", false);
} else {
outputMainText("Your muscles feel more toned.\r", false);
};
};
if (spe < 30){
stats(0, 0, (1 * _local1), 0, 0, 0, 0, 0);
if (_local1 > 1){
outputMainText("You find your muscles responding quicker, faster, and you feel an odd desire to go for a walk.\r", false);
} else {
outputMainText("You feel quicker.\r", false);
};
};
outputMainText("\r", false);
if (_local3 < 40){
if (cockTotal > 0){
if (cockTotal == 1){
if (dogCocks == 1){
if (_local1 == 1){
outputMainText((("Your " + dogDescript()) + " feels unusually tight in your sheath.\r\r"), false);
};
if ((((_local1 > 1)) && ((_local1 <= 2)))){
outputMainText((("Your " + dogDescript()) + " pops free of your sheath, thickening and knotting up quite nicely.\r\r"), false);
};
if (_local1 > 2){
outputMainText((("Your " + dogDescript()) + " surges free of your sheath, swelling thicker with each passing second. Your knot bulges out at the base, growing far beyond normal.\r\r"), false);
};
dogAffinityChange((3 * _local1));
stats(0, 0, 0, 0, 0, 0.5, (5 * _local1), 0);
};
if (horseCocks == 1){
outputMainText((("Your " + horseDescript()) + " shrinks, the extra equine length seeming to shift into girth. The flared tip vanishes into a more pointed form, a thick knotted bulge forming just above your sheath. <b>You now have a dog-cock.</b>\r\r"), false);
horseCocks--;
dogCocks++;
dogAffinityChange((3 * _local1));
stats(0, 0, 0, 0, 0, 4, (5 * _local1), 0);
} else {
if (dogCocks == 0){
outputMainText((((((("Your " + cockDescript()) + " clenches painfully, becoming fully..throbbingly erect. A tightness seems to squeeze around the base, and you wince as you see your skin and flesh shifting forwards into a canine-looking sheath. You shudder as the crown of your ") + cockDescript()) + " reshapes into a point, the sensations nearly too much for you. You throw back your head as the transformation completes, your ") + dogDescript()) + " much thicker than it ever was before. <b>You now have a dog-cock.</b>\r\r"), false);
normalCocks--;
dogCocks++;
dogAffinityChange((3 * _local1));
stats(0, 0, 0, 0, 0, 10, (5 * _local1), 0);
};
};
if (_local1 > 1){
lengthChange((_local1 * 2));
outputMainText(" ", false);
stats(0, 0, 0, 0, 0, 1, 5, 0);
};
} else {
if (dogCocks < cockTotal){
_local2 = (rando((horseCocks + normalCocks)) + 1);
if (_local2 <= horseCocks){
outputMainText((("A " + horseDescript()) + " shrinks, the extra equine length seeming to shift into girth. The flared tip vanishes into a more pointed form, a thick knotted bulge forming just above your sheath. <b>You now have a dog-cock.</b>\r\r"), false);
horseCocks--;
dogCocks++;
dogAffinityChange((3 * _local1));
stats(0, 0, 0, 0, 0, 3, (5 * _local1), 0);
} else {
outputMainText((("A " + cockDescript()) + " clenches painfully, becoming fully..painfully erect. "), false);
if (horseCocks > 0){
} else {
outputMainText("A tightness seems to squeeze around the base, and you wince as you see your skin and flesh shifting forwards into a canine-looking sheath. ", false);
};
outputMainText((((("You shudder as the crown of your " + cockDescript()) + " reshapes into a point, the sensations nearly too much for you. You throw back your head as the transformation completes, your ") + dogDescript()) + " much thicker than it ever was before. <b>You now have a dog-cock.</b>\r\r"), false);
normalCocks--;
dogCocks++;
dogAffinityChange((3 * _local1));
stats(0, 0, 0, 0, 0, 8, (5 * _local1), 0);
};
if (_local1 > 1){
lengthChange(_local1);
outputMainText(" ", false);
stats(0, 0, 0, 0, 0, 1, 5, 0);
};
} else {
if (dogCocks >= cockTotal){
if (dogCocks == 1){
if (_local1 == 1){
outputMainText((("Your " + dogDescript()) + " feels unusually tight in your sheath.\r\r"), false);
};
if ((((_local1 > 1)) && ((_local1 <= 2)))){
outputMainText((("Your " + dogDescript()) + " pops free of your sheath, thickening and knotting up quite nicely.\r\r"), false);
};
if (_local1 > 2){
outputMainText((("Your " + dogDescript()) + " surges free of your sheath, swelling thicker with each passing second. Your knot bulges out at the base, growing far beyond normal.\r\r"), false);
};
dogAffinityChange((4 * _local1));
stats(0, 0, 0, 0, 0, 0.5, (5 * _local1), 0);
} else {
if (_local1 == 1){
outputMainText((("Your " + dogDescript()) + "s feel unusually tight in your sheath.\r\r"), false);
};
if ((((_local1 > 1)) && ((_local1 <= 2)))){
outputMainText((("Your " + dogDescript()) + "s pop free of your sheath, thickening and knotting up quite nicely.\r\r"), false);
};
if (_local1 > 2){
outputMainText((("Your " + dogDescript()) + "s surge free of your sheath, swelling thicker with each passing second. Your knots bulge out at the base, growing far beyond normal.\r\r"), false);
};
dogAffinityChange((5 * _local1));
stats(0, 0, 0, 0, 0, 0.5, (5 * _local1), 0);
};
};
};
};
};
if ((((cockTotal == 0)) || ((vaginas > 0)))){
dogAffinityChange((4 * _local1));
if ((((((breastsPerRow > 0)) && ((breastRating() >= 3)))) && ((breastRows >= 3)))){
if ((((lactationMultiplier < 4)) && ((_local1 > 1)))){
if (lactationMultiplier == 0){
outputMainText("Your nipples itch, feeling painful. You scratch at them idly, startling as your hand comes away wet. <b>With some shock, you realize you have begun lactating</b>. It's enough to make you very horny. ", false);
};
if (((!((lactationMultiplier == 0))) && ((lactationMultiplier < 2)))){
outputMainText("Your breasts begin dribbling trails of milk, begging to drained. Just the thought of it gets you hot and bothered. ", false);
};
if ((((lactationMultiplier >= 2)) && ((lactationMultiplier < 4)))){
outputMainText("Milk cascades from your rows of bitch-tits as a wave of lust washes through you. ", false);
};
lactationMultiplier = (lactationMultiplier + 1);
stats(0, 0, 0, 0, 0, (1 * _local1), 10, 0);
};
if ((((lactationMultiplier >= 4)) && ((_local1 > 1)))){
lactationMultiplier = (lactationMultiplier + 0.2);
outputMainText("You tug your wet nipples, spraying milk everywhere like a good bitch. ", false);
stats(0, 0, 0, 0, 0, (1 * _local1), 10, 0);
};
if (_local1 > 1){
outputMainText("A sudden orgasm overtakes you, but the desire to be fucked does not fade. A mental image of yourself fucked pregnant till you give birth worms it's way into your mind, and you realize you have gone into heat!\r\r", false);
dogAffinityChange((5 * _local1));
stats(0, 0, 0, 0, 35, 0, -100, 0);
inHeat = true;
};
};
if ((((breastsPerRow > 0)) && (!((breastCupSize == "N/A"))))){
rand = 0;
if ((((breastRows == 2)) && ((breastRating() >= 3)))){
outputMainText((("Your upper abdomen tingles and twitches as a new row of " + breastRatingSize((breastRating() - 2))) + "-cup breasts sprouts below your others.\r"), false);
rand = 1;
breastRows++;
breastTotal = (breastTotal + breastsPerRow);
stats(0, 0, 0, 0, 0, 6, 5, 0);
};
if ((((breastRows == 1)) && ((breastRating() >= 3)))){
outputMainText((("A second set of breasts bulges forth under your current pair, stopping as they reach " + breastRatingSize((breastRating() - 1))) + "-cups.\r"), false);
rand = 1;
breastRows++;
breastTotal = (breastTotal + breastsPerRow);
stats(0, 0, 0, 0, 0, 6, 5, 0);
};
if ((((((_local1 > 1)) && ((_local1 <= 2)))) && ((rand == 1)))){
outputMainText("You touch your new nipples with a mixture of awe and desire, the experience arousing beyond measure. You squeel in delight, nearly orgasming, but in time finding the willpower to stop yourself.\r", false);
if (lactationMultiplier > 0){
lactationMultiplier = (lactationMultiplier + 1);
};
stats(0, 0, 0, 0, 0, 7, 10, 0);
};
if ((((_local1 > 2)) && ((rand == 1)))){
outputMainText("You heft your new chest experimentally, exploring the new flesh with tender touches. Your eyes nearly roll back in your head from the intense feelings.\r", false);
stats(0, 0, 0, 0, 0, 10, 15, 0);
};
};
if ((((breastsPerRow == 0)) || ((breastRows == 0)))){
outputMainText("Your chest tingles uncomfortable as your center of balance shifts. <b>You now have a pair of B-cup breasts.</b>\r", false);
if (nipplesPerBreast == 0){
outputMainText("A sensitive nub grows on the summit of each tit, becoming a new nipple.\r", false);
nipplesPerBreast = 1;
nippleLength = 0.2;
};
breastCupSize = "B";
breastsPerRow = 2;
breastRows = 1;
stats(0, 0, 0, 0, 0, 5, 5, 0);
};
if ((((breastCupSize == "A")) || ((breastCupSize == "N/A")))){
outputMainText("Your chest tingles pleasantly for a moment. You sigh, then realize your top has tighten--no! <b>You've grown B-cup tits.</b>\r", false);
breastCupSize = "B";
if (nipplesPerBreast == 0){
outputMainText("A sensitive nub grows on the summit of each tit, becoming a new nipple.\r", false);
nipplesPerBreast = 1;
nippleLength = 0.2;
};
stats(0, 0, 0, 0, 0, 5, 5, 0);
};
};
};
if ((((_local3 >= 40)) && ((_local3 < 80)))){
if (((dogTail) && (furry))){
outputMainText("You become more...solid. Sinewy. A memory comes unbidden from your youth of a grizzled wolf you encountered while hunting, covered in scars, yet still moving with an easy grace. You imagine that must have felt something like this.\r\r", false);
stats(0, 4, 0, 0, 0, -3, 0, 0);
};
if (((dogTail) && (!(furry)))){
outputMainText((("Your skin itches intensely. You gaze down as more and more hairs break forth from your skin, quickly transforming into a soft coat of fur. <b>You are now covered in " + hair) + " fur from head to toe.</b>\r"), false);
furry = true;
};
if (((!(furry)) && (!(dogTail)))){
dogTail = true;
if (((!(horseTail)) && (!(demonTail)))){
outputMainText("A pressure builds on your backside. You feel under your clothes and discover an odd bump that seems to be growing larger by the moment. In seconds it passes between your fingers, bursts out the back of your clothes, and grows most of the way to the ground. A thick coat of fur springs up to cover your new tail. ", false);
};
if (horseTail){
outputMainText("You feel a tightness in your rump, matched by the tightness with which the strands of your tail clump together. In seconds they fuse into a single tail, rapidly sproating thick fur. ", false);
horseTail = false;
};
if (demonTail){
outputMainText("The tip of your tail feels strange. As you pull it around to check on it, the spaded tip disappears, quickly replaced by a thick coat of fur over the entire surface of your tail. ", false);
demonTail = false;
};
outputMainText("<b>You now have a dog-tail.</b>\r", false);
};
if (cockTotal > 0){
dogAffinityChange((5 * _local1));
if (_local1 == 1){
if (dogCocks == 1){
outputMainText((("Your " + cockDescript()) + " thickens noticeably.\r"), false);
};
if (dogCocks > 1){
outputMainText((("Your " + dogDescript()) + "s thicken noticeably.\r"), false);
};
} else {
if (dogCocks == 1){
outputMainText((("You feel a burning heat in your groin as your " + dogDescript()) + " pulses and swells, thickening obscenely, the knot pulsing darkly.\r"), false);
};
if (dogCocks > 1){
outputMainText((("You feel a burning heat in your groin as your " + dogDescript()) + "s pulse and swell, thickening obscenely, the knots pulsing darkly.\r"), false);
};
};
};
};
if (_local3 >= 80){
dogAffinityChange((5 * _local1));
if (dogFace){
if (gender == 1){
if (cockTotal == 1){
outputMainText((("Your hands dart to your crotch as it fills with heat, your " + cockDescript()) + " becoming painfully hard. "), false);
};
if (cockTotal > 1){
outputMainText((("Your hands dart to your crotch as it fills with heat, your " + cockDescript()) + "s becoming painfully hard. "), false);
};
if (cockTotal > 0){
stats(0, 0, 0, 0, 2, 0, 30, 0);
};
if ((((dogAffinity >= 1.4)) && ((dogAffinity < 1.7)))){
outputMainText("Images of yourself burying your nose in a dripping cunt assault your mind, forcing you to imagine yourself rutting with any female in heat. ", false);
};
if ((((dogAffinity >= 1.7)) && ((dogAffinity < 2)))){
outputMainText("Strange thoughts and daydreams fill your mind. Images of yourself rutting with a six-breasted bitch, hugely knotted cock stuck in her snatch as it pumps the bitch pregnant with cum. ", false);
};
if ((((dogAffinity >= 2)) && ((dogAffinity < 2.2)))){
outputMainText("New thoughts and images assault your mind for a few moments. You see yourself poucing on Whitney, rutting with the she-bitch and asserting your dominance, your bulging cock locking inside her as you pump her FULL of cum. The thoughts don't fade quickly as you imagine rutting with her and any other beasts that might be in heat. ", false);
};
if (dogAffinity >= 2.2){
outputMainText("You daydream about maintaining a pack of she-beasts, all perpetually in heat. You imagine yourself breeding each and every one of them daily, their cunts stretched wide by your inhuman tool. Yes, you'd have a she-wolf, always eager to please and pregnant with a litter. You'd have a centaur, who's gaping gash of a cunt was always ready for your bulging knot. You might even find a Succubi to keep as a pet, feeding on your beastly cum. ", false);
};
if (cor < 30){
outputMainText("The thoughts disgust you.", false);
};
if ((((cor >= 30)) && ((cor < 60)))){
outputMainText("The thoughts do have a certain appeal...", false);
};
if ((((cor >= 60)) && ((cor < 85)))){
outputMainText("You wonder if you could make those thoughts a reality...", false);
};
if (cor >= 85){
outputMainText("If only life could be as perfect as your thoughts...", false);
};
outputMainText("\r\r", false);
};
};
if (!dogFace){
if (!furry){
outputMainText((("Your skin itches intensely. You gaze down as more and more hairs break forth from your skin, quickly transforming into a soft coat of fur. <b>You are now covered in " + hair) + " fur from head to toe.</b>\r"), false);
furry = true;
};
if (horseFace){
outputMainText("Your face is wracked with pain. You throw back your head and scream in agony as you feel your cheekbones breaking and shifting, reforming into something else. <b>Your horse-like features rearrange to take on many canine aspects.</b>", false);
} else {
outputMainText("Your face is wracked with pain. You throw back your head and scream in agony as you feel your cheekbones breaking and shifting, reforming into something...different. You find a puddle to view your reflection...<b>your face is now a cross between human and canine features.</b>\r", false);
};
dogFace = true;
horseFace = false;
if (cockTotal > 0){
if (_local1 == 1){
if (dogCocks == 1){
outputMainText((("Your " + cockDescript()) + " thickens noticeably.\r"), false);
};
if (dogCocks > 1){
outputMainText((("Your " + dogDescript()) + "s thicken noticeably.\r"), false);
};
} else {
if (dogCocks == 1){
outputMainText((("You feel a burning heat in your groin as your " + dogDescript()) + " pulses and swells, thickening obscenely, the knot pulsing darkly.\r"), false);
};
if (dogCocks > 1){
outputMainText((("You feel a burning heat in your groin as your " + dogDescript()) + "s pulse and swell, thickening obscenely, the knots pulsing darkly.\r"), false);
};
};
};
};
};
if (!debug){
clearItemSlot();
};
}
public function levelRdy():void{
if (exp >= levelTable[(level + 1)]){
if (inCombat){
outputMainText(" <b>You have enough XP to level up.</b>", false);
} else {
levelUp.visible = true;
levelText.visible = true;
levelBox.visible = true;
};
} else {
levelUp.visible = false;
levelText.visible = false;
levelBox.visible = false;
};
}
public function doCombatEvent(_arg1:Number){
var _local2:Number;
_local2 = 0;
if (_arg1 == 3){
outputMainText("", true);
combatStatusesUpdate();
if (lust >= 100){
if (stoneLust){
doNext(loseEvent);
} else {
doCombatEvent(loseEvent);
};
return;
};
foundItem = 0;
display();
Choice1Outline.visible = true;
Choice2Outline.visible = true;
Choice3Outline.visible = true;
Choice4Outline.visible = true;
Choice1.visible = true;
Choice2.visible = true;
Choice3.visible = true;
Choice4.visible = true;
if (grappling){
Choice1.htmlText = "Fuck";
Choice2.htmlText = "Oral";
Choice3.htmlText = "Handjob";
Choice4.htmlText = "Retreat";
button1Choice = 11;
button2Choice = 12;
button3Choice = 13;
button4Choice = 14;
} else {
Choice1.htmlText = "Attack";
Choice2.htmlText = "Special";
Choice3.htmlText = "Items";
Choice4.htmlText = "Run!";
button1Choice = 1;
button2Choice = 2;
button3Choice = 6;
button4Choice = 5;
};
appearanceText.visible = true;
appearanceBox.visible = true;
dataBox.visible = false;
dataText.visible = false;
mountainBox.visible = false;
mountainChoice.visible = false;
desertChoice.visible = false;
desertBox.visible = false;
forestChoice.visible = false;
forestBox.visible = false;
lakeChoice.visible = false;
lakeBox.visible = false;
};
if (_arg1 == 1){
outputMainText("", true);
attack();
};
if (_arg1 == 2){
Choice1.htmlText = "Grapple";
Choice2.htmlText = "Heal Magic";
Choice3.htmlText = "Dark Magic";
Choice4.htmlText = "Back";
button1Choice = 7;
button2Choice = 8;
button3Choice = 9;
button4Choice = 3;
outputMainText("What do?", true);
Choice2.visible = false;
Choice3.visible = false;
Choice2Outline.visible = false;
Choice3Outline.visible = false;
};
if (_arg1 == 5){
if (spe > int((Math.random() * (espe + 20)))){
inCombat = false;
outputMainText("You got away!", true);
doNext(3);
} else {
outputMainText("You didn't get away!\r", true);
doNext(10);
};
};
if (_arg1 == 6){
itemScreen();
};
if (_arg1 == 7){
outputMainText("This is where you would grapple with the enemy if the game allowed it.", false);
};
if (_arg1 == 8){
outputMainText("WHOOSH HEALEM UP!", true);
};
if (_arg1 == 9){
outputMainText("Owies for me, mega hornies for you.", true);
};
if (_arg1 == 10){
enemyAI();
};
if (_arg1 == 11){
};
if (_arg1 == 12){
};
if (_arg1 == 13){
};
if (_arg1 == 14){
grappleRetreat();
};
if (_arg1 == 1000){
hPill();
outputMainText("\r", false);
doNext(10);
};
if (_arg1 == 1001){
equinum();
outputMainText("\r", false);
doNext(10);
};
if (_arg1 == 1002){
incubiDraft();
outputMainText("\r", false);
doNext(10);
};
if (_arg1 == 1003){
succubiMilk();
outputMainText("\r", false);
doNext(10);
};
if (_arg1 == 1004){
caninePeppers();
outputMainText("\r", false);
doNext(10);
};
if (_arg1 == 2000){
HP = 1;
statDisplay();
inCombat = false;
clearStatuses(false);
outputMainText("You wake some time later, sore and exhausted, and amazed to be alive. Your foe is nowhere to be seen.", true);
doNext(3);
};
if (_arg1 == 2001){
outputMainText("", true);
if (lust >= 100){
if ((((gender == 2)) || ((gender == 3)))){
outputMainText((("You sink to your knees, too overcome by lust and desire to fight. The imp smiles, a wicked look glinting in his eyes. He drops his loincloth to reveal a hardening cock. Your eyes bulge a bit as it grows...and grows...and grows! That imp has a twelve inch cock..and he's walking towards you. Your " + vaginaDescript()) + " practically juices itself in anticipation, and you find yourself spreading your legs in preparation."), false);
outputMainText((("\r\rHe smiles and presses his cock against your " + vaginaDescript()) + ". Your lust-driven mind is speechless, leaving you panting and moaning like a whore."), false);
if ((vaginalLooseness + vaginalWetness) < eCockThickness){
if (vaginalLooseness == 0){
outputMainText(" He plunges in hard, breaking your hymen and stealing your virginity. A look of surprise crosses his face, chased away by ecstacy. If you had a rational bit let in your mind, you'd notice he looks...stronger somehow, but you're too horny to care.", false);
} else {
outputMainText(" He pushes against your tight little pussy, struggling to penetrate you.", false);
};
outputMainText(((" His cock only sinks a few inches in, but he begins fucking you hard, each time claiming a bit more of your pussy for his demonic tool. You feel a painful stretching as he gets half of it inside you, ruining your " + vaginaDescript()) + " for most humans. He fucks you like this for what seems like forever, never getting much further."), false);
vaginalLooseness++;
} else {
outputMainText(((" He plunges in violently, ramming his " + eCockDescript(1)) + " in to the hilt, leaving you gasping in pain and surprise. He leaves it there, giving you a second to get used to him, and then begins fucking you hard, slapping your ass every few thrusts to remind you who is in charge."), false);
if (vaginalLooseness == 0){
vaginalLooseness++;
};
};
if (gender == 3){
outputMainText((((("\r\rThe rough fucking becomes more and more pleasurable as time passes, until you cannot help but stroke your " + cockDescript()) + " along with each plunge you take in your ") + vaginaDescript()) + ". You feel yourself clench around him as your sexual organs release, erupting spurts of cum and milking the demon's cock like your life depended on it."), false);
};
if (gender == 2){
outputMainText((("\r\rThe rough fucking becomes more and more pleasurable as time passes. You moan loudly and lewdly with each thrust, hips squeezing around the demon-cock, relishing the feeling of fullness. Before long you cannot help but cum all over him, " + vaginaDescript()) + " locking around his cock like a vice, muscles rippling, milking him for his cum."), false);
};
outputMainText(((" The imp's " + eCockDescript(1)) + " explodes inside you, pumping huge loads of hot demon-seed inside you with each eruption. You swoon, feeling it fill your womb, belly distending as the imp's orgasm fills your womb with unnatural levels of cum.\r\rWith a sigh, he pulls his dick free, and you flop back on your back, cum surging out onto the ground from your well-fucked hole. "), false);
if ((((((pregnancyIncubation > 0)) && ((pregnancyIncubation <= 9)))) && (!((pregnancyType == 2))))){
outputMainText("You wonder what this will do to whatever is growing in your womb... ", false);
} else {
outputMainText("You hope you aren't pregnant, but promptly lose consciousness.", false);
};
if ((((int((Math.random() * (3 - (cor / 45)))) == 0)) && ((pregnancyIncubation == 0)))){
pregnancyType = 1;
pregnancyIncubation = 18;
};
stats(0, 0, 0, 0, 1, 1, 1, 1);
stats(0, 0, 0, 0, 0, 0, -100, 0);
};
if ((((gender == 0)) || ((gender == 1)))){
outputMainText((("You sink to your knees, too overcome by lust and desire to fight. The imp smiles and circles you, dropping his loincloth as he goes. You are roughly shoved to the ground, and your backside slapped hard. You're too horny to do anything but moan from the pain as you are disrobed. The imp presses a large bulk against your backside, you realize he has a massive penis!\r\rThe imp pushes his " + eCockDescript(1)) + " into your ass and fucks you hard, with little regard to your pleasure. After a rough fucking, he cums, stuffing your ass full of hot demon cum. His orgasm lasts far longer than any human, leaving your belly slightly distended."), false);
stats(0, 0, 0, 0, 1, 1, 1, 1);
if (sen > 40){
outputMainText(" You manage to orgasm from the feeling of being filled by hot cum.", false);
if (gender == 1){
outputMainText(" You jizz all over the ground in front of you, spraying cum in huge squirts in time with the demon's thrusts.", false);
};
stats(0, 0, 0, 0, 0, 0, -100, 0);
};
outputMainText("\r\rYou drop to the ground when he's done with you, cum spilling from your abused ass all over the ground, too exhausted to move. Consciousness fades.", false);
};
} else {
outputMainText("\r<b>You fall, defeated by the imp!</b> The last thing you see before losing consciousness is the creature undoing it's crude loincloth to reveal a rather disproportionately sized member.\r\r", false);
};
doNext(2000);
};
if (_arg1 == 2002){
HP = 1;
clearStatuses(false);
if (lust >= 100){
if ((((((breastRating() >= 9)) && ((lactationMultiplier >= 3)))) && ((cor >= 25)))){
outputMainText("Overwhelmed by the intense pleasure caused by the vibrating sphere inside your body, you fall to your knees.\r\rYou whimper pathetically, desperate to cum, as the Sand Witch steps nearer to you and gently strokes your face. She smiles cruelly and lets her hands drop down to your chest, then tears your top away, letting your huge breasts bounce free. The mysterious woman firmly rubs and kneads them, making you gasp and writhe, until she starts lightly flicking your painfully hard nipples. You edge closer and closer to orgasm, panting like a whore while the witch teases you with her hands and magic.\r\r", true);
outputMainText("Just before you cum, she leans down to whisper to you, tickling your ear with her warm breath: \"<i>Evals klim ym emoceb llahs uoy.</i>\"\r\rA familiar pressure builds in your chest, but it's far stronger than ever before. You feel your breasts swell rapidly, and milk sprays from your nipples, splattering you and the witch with white droplets. Your eyes roll back and your tongue hangs out as you cum, mind nearly breaking from the world-shattering orgasm that thunders through you.\r\rYou black out.", false);
statDisplay();
inCombat = false;
clearStatuses(false);
doNext(3001);
return;
};
stats(0, 0, 0, 0, 0, 0, -100, 0);
outputMainText("Your wobbly legs give out underneath you as your body's will to fight evaporates.\r\r", true);
if (hair == "sandy blonde"){
outputMainText("The Sand-Witch smiles wickedly and intones, \"<i>Tresed eht retaw llahs klim ruoy.</i>\"\r\r", false);
if ((((breastsPerRow < 2)) || ((breastCupSize == "N/A")))){
outputMainText("You grow a perfectly rounded pair of C-cup breasts! ", false);
(breastsPerRow == 2);
breastCupSize = "C";
if (nipplesPerBreast < 1){
nipplesPerBreast = 1;
};
if (breastRows < 1){
breastRows = 1;
};
stats(0, 0, 0, 0, 0, 2, 1, 0);
};
if ((((breastCupSize == "A")) || ((breastCupSize == "B")))){
outputMainText("Your breasts suddenly balloon outwards, stopping as they reach a perfectly rounded C-cup. ", false);
breastCupSize = "C";
stats(0, 0, 0, 0, 0, 1, 1, 0);
};
if (nipplesPerBreast < 1){
outputMainText("Two dark spots appear on chest, rapidly forming into sensitive nipples. ", false);
nipplesPerBreast = 1;
nippleLength = 0.2;
stats(0, 0, 0, 0, 0, 2, 1, 0);
};
if (lactationMultiplier > 0){
outputMainText("A strong pressure builds in your chest, painful in its intensity. You yank down your top as ", false);
if (lactationMultiplier < 2){
outputMainText("powerful jets of milk spray from your nipples, spraying thick streams over the desert sands. You moan at the sensation and squeeze your tits, hosing down the tainted earth with an offering of your milk. You blush as the milk ends, quite embarassed with your increased milk production. ", false);
};
if ((((lactationMultiplier >= 2)) && ((lactationMultiplier <= 2.6)))){
outputMainText("eruptions of milk squirt from your nipples, hosing thick streams everywhere. The feeling of the constant gush of fluids is very erotic, and you feel yourself getting more and more turned on. You start squeezing your breasts as the flow diminishes, anxious to continue the pleasure, but eventually all good things come to an end. ", false);
};
if ((((lactationMultiplier > 2.6)) && ((lactationMultiplier < 3)))){
outputMainText("thick hoses of milk erupt from your aching nipples, forming puddles in the sand. You smile at how well you're feeding the desert, your milk coating the sand faster than it can be absorbed. The constant lactation is pleasurable... in a highly erotic way, and you find yourself moaning and pulling on your nipples, totally outside of your control. In time you realize the milk has stopped, and even had time to soak into the sands. You wonder at your strange thoughts and pull your hands from your sensitive nipples. ", false);
};
if (lactationMultiplier >= 3){
outputMainText("you drop to your knees and grab your nipples. With a very sexual moan you begin milking yourself, hosing out huge quantities of milk. You pant and grunt, offering as much of your milk as you can. It cascades down the dune in a small stream, and you can't help but blush with pride...and lust. The erotic pleasures build as you do your best to feed the desert of all your milk. You ride the edge of orgasm for an eternity, milk everywhere. When you come to, you realize you're kneeling there, tugging your dry nipples. Embarrassed, you stop, but your arousal remains. ", false);
};
if (lactationMultiplier < 3){
lactationMultiplier = (lactationMultiplier + 0.75);
outputMainText("Your breasts feel fuller...riper...like the your next milking could be even bigger. ", false);
};
stats(0, 0, 0, 0, 1, 4, 15, 0);
};
if (lactationMultiplier == 0){
outputMainText("A pleasurable release suddenly erupts from your nipples! Twin streams of milk are spraying from your breasts, soaking into the sand immediately. It stops all too soon, though the witch assures you that you can lactate quite often now. ", false);
lactationMultiplier++;
stats(0, 0, 0, 0, 0.5, 1, 10, 0);
};
outputMainText("\r\rThe witch whispers into your ear, \"<i>I ALWAYS get what I want dear...</i>\"", false);
doNext(3);
} else {
outputMainText("The Sand-Witch smiles wickedly and intones, \"<i>nuf erutuf rof riah ydnas, nus tresed eht sa ydnas.</i>\"\r\rYou feel a tingling in your scalp, and realize your hair has become a sandy blonde!", false);
hair = "sandy blonde";
doNext(3);
outputMainText("\r\rThe witch whispers into your ear, \"<i>I ALWAYS get what I want dear...</i>\"", false);
};
outputMainText(" You hear the soft impact of her robe upon the sands and cannot resist a peek at your captor. You turn to behold a curvy dark-skinned beauty, her form dominated by a quartet of lactating breasts. Somewhere in your lust fogged mind you register the top two as something close to double-D's, and her lower pair to be about C's. She smiles and leans over you, pushing you to the ground violently.\r\rShe turns around and drops, planting her slick honey-pot firmly against your mouth. Her scent is strong, overpowering in it's intensity. Your tongue darts out for a taste and finds a treasure trove of sticky sweetness. Instinctively you tongue-fuck her, greedily devouring her cunny-juice, shoving your tongue in as far possible while suckling her clit. Dimly you feel the milk spattering over you, splashing off you and into the warm desert sands. Everywhere the milk touches feels silky smooth and sensitive, and your hands begin stroking your body, rubbing it in as the witch sprays more and more of it. You lose track of time, orgasming many times, slick and sticky with sexual fluids.", false);
stats(0, 0, 0, 0, 1, 5, 0, 0);
if (sand == 0){
sand = 1;
};
doNext(2000);
} else {
if ((((((breastRating() >= 9)) && ((lactationMultiplier >= 3)))) && ((cor >= 25)))){
outputMainText("You stagger and fall to one knee, too overcome by pain to keep fighting.\r\rAs your vision wavers with exhaustion, the witch strides towards you, seeming to glide across the sand. Your consciousness starts to fade, and you see the exotic woman lick her lips and smile cruelly, staring at your generous breasts.\r\rThe last thing you hear before passing out is a mysterious spell, murmured right into your ear in a low, throaty whisper: \"<i>Evals klim ym emoceb llahs uoy.</i>\"\r\rYou dream of walking proudly through the desert, enormous rack jiggling shamelessly with every step, and of tempting nubile young champions to wrap their lips around your nipples and drink. Your sleep becomes fevered as your dreams grow more and more corrupt - you dream of using dark magic to lactate succubus milk, and of your former friends from Ingnam greedily drinking your enhanced milk until their bellies strain to contain it all, then going wide-eyed as pound after pound of breast-flesh suddenly swells upon their chests...", true);
statDisplay();
inCombat = false;
clearStatuses(false);
doNext(3001);
return;
};
outputMainText("\r<b>You fall, defeated by the Sand-Witch!</b>\r\r", false);
doNext(2000);
};
};
if (_arg1 == 2003){
statDisplay();
hideUpDown();
inCombat = false;
clearStatuses(false);
if (monk == 1){
outputMainText("Jojo glares down at you, and begins praying, slowly laying prayer papers all over your battered form. You feel rage that quickly disappates, replaced with a calm sense of peace. You quickly lose consciousness, but are happy he defeated you.\r\rWhen you wake, you discover a note:\r\"<i>The fighting allowed me to exorcise most of your inner demons. A part of me wanted to seek revenge for what you had done to me, but I know it was the taint on your soul that was responsible. If we meet again I would be happy to meditate with you.\r\r -Jojo.</i>\"", true);
stats(0, 0, 0, 0, -40, 0, -100, -30);
if (lib < 10){
lib = 0;
stats(0, 0, 0, 0, 15, 0, 0, 0);
};
if (cockTotal == 1){
lib = 15;
};
if (vaginas == 1){
lib = (lib + 10);
};
if (cockTotal > 1){
lib = (lib + 5);
};
if (horseAffinity > 2){
lib = (lib + 3);
};
if (dogAffinity > 2){
lib = (lib + 2);
};
if (lactationMultiplier >= 1){
lib = (lib + 2);
};
takeDamage(200);
monk = 0;
} else {
outputMainText((("Jojo grins wickedly as he senses your defeat, " + eCockDescript(1)) + " throbbing hard. "), true);
if (lust >= 100){
if (gender == 1){
outputMainText((((("Too aroused to think, you just bend over, displaying your bum and letting your " + allCocksDescript()) + " dangle freely. The mouse doesn't hesitate, and he thrusts his ") + eCockDescript(1)) + " with painful force. You stagger from the size and struggle to stay conscious as he fucks you like a mad beast, hammering your ass with incredible force. "), false);
if (cockTotal == 1){
outputMainText((("Pre and cum drip from your " + cockDescript()) + ", forced out of your prostate by the rough beating it's taking. You feel a flash of warm wetness inside you, and realize Jojo is cumming. A sense of relief washes over you as the last burst of cum squirts out from your cheeks, only to be replaced with a dawning sense of horror as he continues fucking you harder than ever.\r\rYou black out after a few dozen of his orgasms and one or two of your own, your gut painfully distended with semen."), false);
};
if (cockTotal >= 1){
outputMainText((("Pre and cum drip from your " + cockDescript()) + "s, forced out of your prostate by the rough beating it's taking. You feel a flash of warm wetness inside you, and realize Jojo is cumming. A sense of relief washes over you as the last burst of cum squirts out from your cheeks, only to be replaced with a dawning sense of horror as he continues fucking you harder than ever.\r\rYou black out after a few dozen of his orgasms and one or two of your own, your gut painfully distended with semen."), false);
};
};
if (gender >= 2){
outputMainText((("Too aroused to think, you bend over, displaying your bum and " + vaginaDescript()) + " to Jojo as open targets. The mouse obliges, plunging himself into you, hard. He fucks you with abandon, pounding your wanton little pussy with no regard for your pleasure. Despite yourself, you enjoy the rough treatment. A spasm of warmth erupts inside you as Jojo cums. You worry he might stop, but as the mouse's orgasm ends he resumes fucking with even greater energy. You cum powerfully, his jizz seeping down your thighs as you begin lose track of yourself. "), false);
if (cockTotal > 1){
outputMainText((("Your " + cockDescript()) + " splatters the ground with cum repeatedly, until both your genders are raw and sore. "), false);
} else {
outputMainText((("Your " + vaginaDescript()) + " cums on him many more times it until it is sore and tender, dripping with spunk. "), false);
};
outputMainText("You black out as Jojo cums AGAIN, forcing a river of spunk from your already over-filled uterous.", false);
cuntChange(eCockThickness, true);
};
if (gender == 0){
outputMainText((("Too aroused to think, you just bend over, displaying your bum and wiggling enticingly. The mouse doesn't hesitate, and he thrusts his " + eCockDescript(1)) + " with painful force. You stagger from the size and struggle to stay conscious as he fucks you like a mad beast, hammering your ass with incredible force. "), false);
outputMainText("You feel a flash of warm wetness inside you, and realize Jojo is cumming. A sense of relief washes over you as the last burst of cum squirts out from your cheeks, only to be replaced with a dawning sense of horror as he continues fucking you harder than ever.\r\rYou black out after a few dozen of his orgasms and one or two of your own, your gut painfully distended with semen.", false);
};
hideUpDown();
stats(0, 0, 0, 0, 0, 0, -100, 1);
statDisplay();
doNext(55);
} else {
outputMainText("You black out from the pain of your injuries.\r\r", false);
statDisplay();
doNext(55);
return;
};
};
statDisplay();
doNext(3);
};
if (_arg1 == 3000){
outputMainText("You are victorious in battle!", true);
inCombat = false;
clearStatuses(true);
doNext(3);
};
if (_arg1 == 3001){
outputMainText("You are victorious in battle!", true);
clearStatuses(true);
_local2 = (int((Math.random() * 10)) + 2);
gems = (gems + _local2);
tempExp = (rando(_local2) + 10);
outputMainText((((("\r\rYou find " + _local2) + " gems on your oppenent and decide to take them. You now have ") + gems) + " gems."), false);
outputMainText((("\r\rYou gain " + tempExp) + " EXP from this encounter!"), false);
exp = (exp + tempExp);
levelRdy();
inCombat = false;
doNext(3);
};
if (_arg1 == 3002){
outputMainText((("You defeat " + eShort) + "!"), true);
clearStatuses(true);
_local2 = (int((Math.random() * 10)) + 8);
gems = (gems + _local2);
tempExp = (rando(_local2) + 20);
outputMainText((((("\r\rYou find " + _local2) + " gems on your oppenent and decide to take them. You now have ") + gems) + " gems."), false);
outputMainText((("\r\rYou gain " + tempExp) + " EXP from this encounter!"), false);
exp = (exp + tempExp);
levelRdy();
inCombat = false;
doNext(3);
};
if (_arg1 == 3003){
outputMainText((("You defeat " + eShort) + "! You disrobe and prepare to teach him a lesson...\r\r"), true);
inCombat = false;
clearStatuses(true);
doNext(53);
};
if (_arg1 == 4000){
outputMainText((((("You pull yourself away from " + eShort) + ", leaving ") + ePronoun) + " comatose with exhaustion "), true);
inCombat = false;
clearStatuses(true);
doNext(3);
};
if (_arg1 == 4001){
outputMainText("Jojo closes his eyes and begins running his hands over his body, giving in to his lust. You disrobe and prepare to ", false);
if (monk == 5){
outputMainText("fuck your violent little senseless. ", false);
} else {
outputMainText("teach the uppity monk a lesson...\r\r", false);
};
inCombat = false;
clearStatuses(true);
doNext(53);
};
if (_arg1 == 5000){
eAttack();
};
if (_arg1 == 5001){
outputMainText((("You see " + eShort) + " make sudden arcane gestures at you!\r\r"), false);
stats(0, 0, 0, 0, 0, 0, (8 + (cor / 7)), 0);
if (lust < 30){
outputMainText("You feel strangely warm. ", false);
};
if ((((lust >= 30)) && ((lust < 60)))){
outputMainText("Blood rushes to your groin as a surge of arousal hits you, making your knees weak. ", false);
};
if (lust >= 60){
outputMainText("Images of yourself fellating and fucking the imp assault your mind, unnaturally arousing you. ", false);
};
if ((((lust >= 60)) && ((cockTotal > 0)))){
outputMainText((("You feel your " + allCocksDescript()) + " dribble precum. "), false);
};
if ((((((lust >= 30)) && ((lust < 60)))) && ((cockTotal == 1)))){
outputMainText((("Your " + cockDescript()) + " hardens, distracting you further. "), false);
};
if ((((((lust >= 30)) && ((lust < 60)))) && ((cockTotal > 1)))){
outputMainText((("Your " + allCocksDescript()) + " harden uncomfortably. "), false);
};
if ((((((lust >= 60)) && ((vaginalWetness == 1)))) && ((vaginas == 1)))){
outputMainText((("Your " + allVaginaDescript()) + " dampens perceptibly. "), false);
};
if ((((((lust >= 60)) && ((vaginalWetness == 1)))) && ((vaginas > 1)))){
outputMainText((("Your " + allVaginaDescript()) + " dampen perceptibly. "), false);
};
if ((((((lust >= 60)) && ((vaginalWetness == 2)))) && ((vaginas > 0)))){
outputMainText("Your crotch becomes sticky with girl-lust. ", false);
};
if ((((((lust >= 60)) && ((vaginalWetness == 3)))) && ((vaginas == 1)))){
outputMainText((("Your " + allVaginaDescript()) + " becomes sloppy and wet. "), false);
};
if ((((((lust >= 60)) && ((vaginalWetness == 3)))) && ((vaginas > 1)))){
outputMainText((("Your " + allVaginaDescript()) + " become sloppy and wet. "), false);
};
if ((((((lust >= 60)) && ((vaginalWetness == 4)))) && ((vaginas > 0)))){
outputMainText("Thick runners of girl-lube stream down the insides of your thighs. ", false);
};
if ((((((lust >= 60)) && ((vaginalWetness == 5)))) && ((vaginas == 1)))){
outputMainText((("Your " + allVaginaDescript()) + " instantly soaks your groin. "), false);
};
if ((((((lust >= 60)) && ((vaginalWetness == 5)))) && ((vaginas > 1)))){
outputMainText((("Your " + allVaginaDescript()) + " instantly soak your groin. "), false);
};
doNext(3);
};
if (_arg1 == 5002){
eAttack();
};
if (_arg1 == 5003){
outputMainText("The Sand-Witch points at you, drawing a circle in the air and mouthing strange words.\r\r", false);
if (stoneLust){
outputMainText("The orb inside you grows warm, almost hot, suffusing your body with heat and arousal. ", false);
stats(0, 0, 0, 0, 0, 0, (4 + (int(sen) / 10)), 0);
} else {
outputMainText("You feel the sands shift by your feet, and look down to see something slip out of the sands and into your clothes! It feels incredibly smooth and circular as it glides upward along your leg, your frantic kicks doing nothing to dislodge it. ", false);
if (vaginas > 0){
outputMainText((("It glides up your thighs to the entrance of your sex, and its intentions dawn on you!\r\rToo late! You reach to stop it, but it pushes against your lips and slips inside your " + vaginaDescript()) + " in an instant. You groan in frustration as it begins pulsing and vibrating, sometimes even seeming to change size."), false);
} else {
outputMainText("It glides up your thighs, curving around your buttocks, and it's intentions dawn on you.\r\rYou desperately grab for it, but are too late! It pushes firmly against your rectum and slips inside instantaneously. You groan in frustration as it begins pulsing and vibrating, sometimes even seeming to change size.", false);
};
stoneLust = true;
stats(0, 0, 0, 0, 0, 0, (4 + (int(sen) / 10)), 0);
};
doNext(3);
};
if (_arg1 == 5004){
doNext(3);
if (monk == 2){
outputMainText("Jojo looks lost in thought for a moment, and fails to attack.", false);
elust = (elust + 4);
};
if (monk == 3){
outputMainText("Jojo blushes as he fights you, distracted by a stray thought. You think you see a bulge in the loose cloth of his pants. ", false);
elust = (elust + 8);
};
if (monk == 4){
outputMainText("Jojo stumbles, shakes his head, and pulls one of his hands away from the stiff tent in his pants. ", false);
elust = (elust + 10);
};
if (monk == 5){
outputMainText((((("Jojo frantically jerks his " + eCockDescript(1)) + ", stroking the ") + eCockDescript(1)) + " as it leaks precum at the sight of you. "), false);
elust = (elust + 15);
};
if ((((elust > 50)) && ((elust < 60)))){
outputMainText("The mouse's skin remains flushed with the beginnings of arousal. ", false);
};
if ((((elust >= 60)) && ((elust < 70)))){
outputMainText("The mouse's eyes constantly dart over your most sexual parts, betraying his lust. ", false);
};
if ((((elust >= 70)) && ((elust < 85)))){
outputMainText("The mouse is having trouble moving due to the rigid protrusion in his groin. ", false);
};
if (elust >= 85){
outputMainText("The mouse is panting and softly whining, each movement seeming to make his bulge more pronounced. You don't think he can hold out much longer. ", false);
};
if (elust >= 100){
doNext(4001);
};
};
if (_arg1 == 6000){
totalFuckable = (((vaginas + 1) + 1) + (breastsPerRow - 1));
totalUsedFuckable = 0;
totalFuckTools = (cockTotal + (((int(nippleCocks) * nipplesPerBreast) * breastsPerRow) * breastRows));
if (clitLength >= 3.5){
totalFuckTools++;
};
totalUsedFuckTools = 0;
eTotalFuckTools = (((eCocks + eHorseCocks) + eDogCocks) + (int(eNippleCocks) * eNipples));
eTotalFuckable = ((eAssHole + eVaginas) + 1);
eTotalFuckableUsed = 0;
eTotalFuckToolsUsed = 0;
};
if (_arg1 == 6001){
totalFuckable = (((vaginas + 1) + 1) + (breastsPerRow - 1));
totalUsedFuckable = 0;
totalFuckTools = (cockTotal + (((int(nippleCocks) * nipplesPerBreast) * breastsPerRow) * breastRows));
if (clitLength >= 3.5){
totalFuckTools++;
};
totalUsedFuckTools = 0;
eTotalFuckTools = (((eCocks + eHorseCocks) + eDogCocks) + (int(eNippleCocks) * eNipples));
eTotalFuckable = ((eAssHole + eVaginas) + 1);
eTotalFuckableUsed = 0;
eTotalFuckToolsUsed = 0;
getPenetrated();
};
statDisplay();
}
public function cockDescript():String{
var _local2:Number;
if ((((horseCocks == 1)) && ((cockTotal == 1)))){
return (horseDescript());
};
if ((((dogCocks == 1)) && ((cockTotal == 1)))){
return (dogDescript());
};
var _local1 = "";
if (int((Math.random() * 3)) == 0){
if (baseCockLength < 3){
_local1 = "squat ";
};
if ((((baseCockLength >= 3)) && ((baseCockLength < 5)))){
_local1 = "short ";
};
if ((((baseCockLength >= 5)) && ((baseCockLength < 7)))){
_local1 = "average ";
};
if ((((baseCockLength >= 7)) && ((baseCockLength < 9)))){
_local1 = "long ";
};
if ((((baseCockLength >= 10)) && ((baseCockLength < 13)))){
_local1 = "huge ";
};
if ((((baseCockLength >= 13)) && ((baseCockLength < 18)))){
_local1 = "massive ";
};
if ((((baseCockLength >= 18)) && ((baseCockLength < 30)))){
_local1 = "enormous ";
};
if (baseCockLength >= 30){
_local1 = "towering ";
};
};
if (int((Math.random() * 3)) == 0){
if (baseCockThickness <= 0.75){
_local1 = (_local1 + "narrow ");
};
if ((((baseCockThickness > 1)) && ((baseCockThickness <= 1.4)))){
_local1 = (_local1 + "ample ");
};
if ((((baseCockThickness > 1.4)) && ((baseCockThickness <= 2)))){
_local1 = (_local1 + "broad ");
};
if ((((baseCockThickness > 2)) && ((baseCockThickness <= 3.5)))){
_local1 = (_local1 + "fat ");
};
if (baseCockThickness > 3.5){
_local1 = (_local1 + "distended ");
};
};
_local2 = int((Math.random() * 10));
if ((((_local2 >= 0)) && ((_local2 <= 4)))){
_local1 = (_local1 + "cock");
};
if ((((_local2 == 5)) || ((_local2 == 6)))){
_local1 = (_local1 + "prick");
};
if (_local2 == 7){
_local1 = (_local1 + "pecker");
};
if (_local2 > 7){
_local1 = (_local1 + "shaft");
};
return (_local1);
}
public function scholarsTea():void{
outputMainText("Following the merchant's instructions, you steep and drink the tea. Its sharp taste fires up your palate and in moments, you find yourself more alert and insightful. As your mind wanders, a creative, if somewhat sordid, story comes to mind. It is a shame that you do not have writing implements as you feel you could make a coin or two off what you have conceived. The strange seller was not lying about the power of the tea.", true);
stats(0, 0, 0, 2.5, 0, 0, 0, 0);
if (!debug){
clearItemSlot();
};
}
public function explore():void{
outputMainText("Where will you explore?\r\rYou see the dunes of a desert in one direction, distorted by the heat of it. Strange geometric ruins waver in the distance, as if they weren't truly there.\r\rIn the opposite direction is the shimmering shores of a lake.\r\rA forest bridges the distance between the two, teeming with life.\r\rA massive mountain rises behind you, shrouded in rainless thunderstorms.", true);
choices("Desert", 3, "Forest", 3, "Lake", 3, "Mountain", 3);
}
public function titFuckSingle():void{
if (lib < 45){
outputMainText((("You grip your " + cockDescript()) + " and begin cautiously guiding it towards "), false);
};
if ((((lib >= 45)) && ((lib < 70)))){
outputMainText((("Shivering with anticipation, you place the tip of your " + cockDescript()) + " against the opening of "), false);
};
if (lib >= 70){
outputMainText((("Without hesitation, you shove the tip of your " + cockDescript()) + " into "), false);
};
if (breastRows > 1){
outputMainText("one of the ", false);
};
if (breastRows == 1){
outputMainText("one of your ", false);
};
if (nipplesPerBreast > 1){
outputMainText("many ", false);
};
if (vaginalLooseness < 2){
outputMainText("painfully stretched nipples", false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText("freakishly swollen nipples", false);
};
if (vaginalLooseness >= 4){
outputMainText("huge, bloated cunt-nipples", false);
};
if (breastRows > 1){
outputMainText(" on one of your lower breasts", false);
};
outputMainText(". ", false);
if (lactationMultiplier == 0){
if (vaginalWetness < 2){
outputMainText("Y", false);
};
if ((((vaginalWetness >= 2)) && ((vaginalWetness < 4)))){
outputMainText((("Slick juices dribble down the skin of your " + cockDescript()) + " and y"), false);
};
if (vaginalWetness >= 4){
outputMainText((("Slick juices squirt out from around your " + cockDescript()) + " and y"), false);
};
} else {
if (lactationMultiplier < 2){
outputMainText((("Rivulets of milky girlgum drizzle down the skin of your " + cockDescript()) + " and y"), false);
};
if (lactationMultiplier >= 2){
outputMainText((("Milky girlgum squirts out from around your " + cockDescript()) + ", staining it white. Y"), false);
};
};
if (Math.round(baseCockThickness) >= vaginalLooseness){
if (sen < 45){
outputMainText((("ou grunt with exertion as you attempt to stuff your " + cockDescript()) + " into "), false);
};
if ((((sen >= 45)) && ((sen < 70)))){
outputMainText((("ou blink back tears as you attempt to stuff your " + cockDescript()) + " into "), false);
};
if (sen >= 70){
outputMainText((("ou scream with a combination of pain and pleasure as you attempt to stuff your " + cockDescript()) + " into "), false);
};
if (vaginalLooseness < 2){
outputMainText("the small, over-stretched opening of your swollen nipple. ", false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText("the engorged and distended opening of your fat, swollen nipple. ", false);
};
if (vaginalLooseness >= 4){
outputMainText("the gaping fuck-mouth of your inhuman nipple-cunt. ", false);
};
if (Math.round(baseCockThickness) == vaginalLooseness){
if (vaginalLooseness < 2){
outputMainText((("Your poor, tortured nipple is barely up to the task of accepting the " + cockDescript()) + ", but accept it it does. "), false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText((("The engorged opening at the end of your swollen nipple is stretched to its limit as you shove your " + cockDescript()) + " home. "), false);
};
if (vaginalLooseness >= 4){
outputMainText((("The swollen lips of your bloated nipple stretch around the tip of your " + cockDescript()) + " swallowing it like an enormous mouth. "), false);
};
outputMainText((("With each thrust, you bury your " + cockDescript()) + " deeper into your greedy tit. Overwhelmed by the combined sensations, your mind is barely able to cope with intese feeling of fullness where no such feeling should be possible."), false);
};
if (Math.round(baseCockThickness) > vaginalLooseness){
if (vaginalLooseness < 2){
outputMainText((("Your poor, tortured nipple is woefully insufficient compared to your " + cockDescript()) + ", delerious with arousal, you keep trying anyway. "), false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText((("The engorged opening at the end of your swollen nipple is stretched to its limits and beyond as you shove your " + cockDescript()) + " home. "), false);
};
if (vaginalLooseness >= 4){
outputMainText((("The swollen lips of your bloated nipple gape wide, but the tip of your " + cockDescript()) + " spreads them even wider. "), false);
};
outputMainText((((("Grunting and sweating with effort, you stuff as much of your " + cockDescript()) + " into your overstretched nipple as you can fit. The feeling of incredible tightness around your ") + cockDescript()) + " combines with the pain of your distended nipple to form a mindbending sensation that makes your head spin. "), false);
};
if (lactationMultiplier > 0){
outputMainText("Milky ", false);
} else {
outputMainText("Slick ", false);
};
if (vaginalWetness < 2){
outputMainText((("girl-lube quickly coats the whole length of your " + cockDescript()) + " in a glistening layer of fuck juice. "), false);
};
if ((((vaginalWetness >= 2)) && ((vaginalWetness < 4)))){
outputMainText((("girl-lube drizzles down the length of your " + cockDescript()) + " in thick streams, pooling at your crotch. "), false);
};
if (vaginalWetness >= 4){
outputMainText((("girl-lube spurts out of your tortured nipple with each thrust of your " + cockDescript()) + ", spattering your arms and face with your secretions. "), false);
};
};
if (Math.round(baseCockThickness) < vaginalLooseness){
if (sen < 45){
outputMainText((("ou sigh with pleasure as your " + cockDescript()) + " slides into "), false);
};
if ((((sen >= 45)) && ((sen < 70)))){
outputMainText((("ou moan with pleasure as your " + cockDescript()) + " slides into "), false);
};
if (sen >= 70){
outputMainText((("ou scream with delight as your " + cockDescript()) + " slides into "), false);
};
if (vaginalLooseness < 2){
outputMainText((("the small, over-stretched opening of your swollen nipple. Your " + cockDescript()) + " penetrates your swollen nipple easily, sliding half way in on your first thrust. "), false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText((("the engorged and distended opening of your fat, swollen nipple. Your " + cockDescript()) + " plunges deeply into your freakishly engorged nipple, penetrating it easily. "), false);
};
if (vaginalLooseness >= 4){
outputMainText((("the gaping fuck-mouth of your inhuman nipple-cunt. The swollen lips of your bloated nipple engulf the tip of your " + cockDescript()) + " and begin to slide down its length, swallowing it completely. "), false);
};
outputMainText((("You revel in the sensation as you slowly stroke your " + cockDescript()) + " in and out of your distended nipple. Your shaft is enveloped in the warm, wet embrace of your freakish tit, and "), false);
if (lactationMultiplier > 0){
outputMainText("milky ", false);
} else {
outputMainText("slippery ", false);
};
if (vaginalWetness < 2){
outputMainText((("girl-lube quickly coats the whole length of your " + cockDescript()) + " in a glistening layer of fuck juice. "), false);
};
if ((((vaginalWetness >= 2)) && ((vaginalWetness < 4)))){
outputMainText((("girl-lube drizzles down the length of your " + cockDescript()) + " in thick streams, pooling at your crotch. "), false);
};
if (vaginalWetness >= 4){
outputMainText((("girl-lube pours out of your swollen nipple over your " + cockDescript()) + " and hands, pooling on the ground below you. "), false);
};
};
}
public function raiseStr(_arg1:MouseEvent):void{
if (remSkillPoints > 0){
remSkillPoints--;
tempStr++;
};
levelPaneRefresh();
}
public function lowerTou(_arg1:MouseEvent):void{
if ((((remSkillPoints < 16)) && ((tempTou > tou)))){
remSkillPoints++;
tempTou--;
};
levelPaneRefresh();
}
public function buttonEvent3(_arg1:MouseEvent):void{
if (button3Choice == 0){
outputMainText("\rInactive.", false);
return;
};
if (Choice3.text == "Lake"){
exploreLake();
return;
};
currEvent = button3Choice;
slotUsed = 3;
if (inCombat){
doCombatEvent(currEvent);
} else {
doEvent(currEvent);
};
}
public function buttonEvent4(_arg1:MouseEvent):void{
if (button4Choice == 0){
outputMainText("\rInactive.", false);
return;
};
if (Choice4.text == "Mountain"){
exploreMountain();
return;
};
if (shop != 0){
shop = 0;
gems = (gems + shopHolding);
shopHolding = 0;
trace("Shop cancelled, adding money back in!");
};
currEvent = button4Choice;
if (inCombat){
doCombatEvent(currEvent);
} else {
doEvent(currEvent);
};
}
public function outputMainText(_arg1:String, _arg2:Boolean):void{
if (_arg2 == false){
currentText = (currentText + _arg1);
} else {
currentText = _arg1;
};
outputWindow.htmlText = currentText;
scrollBar.update();
}
public function buttonEvent1(_arg1:MouseEvent):void{
if (nextButton){
nextButton = false;
};
if (button1Choice == 0){
outputMainText("\rInactive.", false);
return;
};
if (Choice1.text == "Desert"){
exploreDesert();
return;
};
currEvent = button1Choice;
slotUsed = 1;
if (inCombat){
doCombatEvent(currEvent);
} else {
doEvent(currEvent);
};
trace(currEvent);
}
public function allCocksDescript():String{
var _local1 = "";
if (horseCocks > 0){
if (horseCocks == 1){
if (cockTotal > 1){
_local1 = (_local1 + (((horseCocks + " ") + horseDescript()) + "s"));
} else {
_local1 = (_local1 + horseDescript());
};
};
if (horseCocks > 1){
_local1 = (_local1 + (((horseCocks + " ") + horseDescript()) + "s"));
};
};
if ((((((horseCocks > 0)) && ((dogCocks > 0)))) && ((normalCocks > 0)))){
_local1 = (_local1 + ", ");
} else {
if ((((dogCocks == 0)) && ((normalCocks == 0)))){
return (_local1);
};
if (horseCocks > 0){
_local1 = (_local1 + " and ");
};
};
if (dogCocks > 0){
if (dogCocks == 1){
_local1 = (_local1 + dogDescript());
};
if (dogCocks > 1){
_local1 = (_local1 + (((dogCocks + " ") + dogDescript()) + "s"));
};
if ((((normalCocks > 0)) && ((horseCocks > 0)))){
_local1 = (_local1 + ", and ");
};
if ((((normalCocks > 0)) && ((horseCocks == 0)))){
_local1 = (_local1 + " and ");
};
if (normalCocks == 0){
return (_local1);
};
};
if (normalCocks > 0){
if (normalCocks == 1){
_local1 = (_local1 + cockDescript());
};
if (normalCocks > 1){
_local1 = (_local1 + (((normalCocks + " ") + cockDescript()) + "s"));
};
};
return (_local1);
}
public function dogTitFuckSingle():void{
if (lib < 45){
outputMainText((("You grip your " + dogDescript()) + " and begin cautiously guiding it towards "), false);
};
if ((((lib >= 45)) && ((lib < 70)))){
outputMainText((("Shivering with anticipation, you place the pointed tip of your " + dogDescript()) + " against the opening of "), false);
};
if (lib >= 70){
outputMainText((("Without hesitation, you shove the pointed tip of your " + dogDescript()) + " into "), false);
};
if (breastRows > 1){
outputMainText("one of the ", false);
};
if (breastRows == 1){
outputMainText("one of your ", false);
};
if (nipplesPerBreast > 1){
outputMainText("many ", false);
};
if (vaginalLooseness < 2){
outputMainText("painfully stretched nipples", false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText("freakishly swollen nipples", false);
};
if (vaginalLooseness >= 4){
outputMainText("huge, bloated cunt-nipples", false);
};
if (breastRows > 1){
outputMainText(" on one of your lower breasts", false);
};
outputMainText(". ", false);
if (lactationMultiplier == 0){
if (vaginalWetness < 2){
outputMainText("Y", false);
};
if ((((vaginalWetness >= 2)) && ((vaginalWetness < 4)))){
outputMainText((("Slick juices dribble down the red, shiny skin of your " + dogDescript()) + " and y"), false);
};
if (vaginalWetness >= 4){
outputMainText((("Slick juices squirt out from around your " + dogDescript()) + " and y"), false);
};
} else {
if (lactationMultiplier < 2){
outputMainText((("Rivulets of milky girlgum drizzle down the red, shiny skin of your " + dogDescript()) + " and y"), false);
};
if (lactationMultiplier >= 2){
outputMainText((("Milky girlgum squirts out from around your " + dogDescript()) + ", staining its shiny skin white. Y"), false);
};
};
if (Math.round(baseCockThickness) >= vaginalLooseness){
if (sen < 45){
outputMainText((("ou grunt with exertion as you attempt to stuff your " + dogDescript()) + " into "), false);
};
if ((((sen >= 45)) && ((sen < 70)))){
outputMainText((("ou blink back tears as you attempt to stuff your " + dogDescript()) + " into "), false);
};
if (sen >= 70){
outputMainText((("ou scream with a combination of pain and pleasure as you attempt to stuff your " + dogDescript()) + " into "), false);
};
if (vaginalLooseness < 2){
outputMainText("the small, over-stretched opening of your swollen nipple. ", false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText("the engorged and distended opening of your fat, swollen nipple. ", false);
};
if (vaginalLooseness >= 4){
outputMainText("the gaping fuck-mouth of your inhuman nipple-cunt. ", false);
};
if (Math.round(baseCockThickness) == vaginalLooseness){
if (vaginalLooseness < 2){
outputMainText((("Your poor, tortured nipple is barely up to the task of accepting the " + dogDescript()) + ", but accept it it does. "), false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText((("The engorged opening at the end of your swollen nipple is stretched to its limit as you shove your " + dogDescript()) + " home. "), false);
};
if (vaginalLooseness >= 4){
outputMainText((("The swollen lips of your bloated nipple stretch around the pointed tip of your " + dogDescript()) + " swallowing it like an enormous mouth. "), false);
};
outputMainText((("With each thrust, you bury your " + dogDescript()) + " deeper into your greedy tit. Overwhelmed by the combined sensations, your mind is barely able to cope with intese feeling of fullness where no such feeling should be possible."), false);
};
if (Math.round(baseCockThickness) > vaginalLooseness){
if (vaginalLooseness < 2){
outputMainText((("Your poor, tortured nipple is woefully insufficient compared to your " + dogDescript()) + ", delerious with arousal, you keep trying anyway. "), false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText((("The engorged opening at the end of your swollen nipple is stretched to its limits and beyond as you shove your " + dogDescript()) + " home. "), false);
};
if (vaginalLooseness >= 4){
outputMainText((("The swollen lips of your bloated nipple gape wide, but the massive girth of your " + dogDescript()) + " spreads them even wider. "), false);
};
outputMainText((((("Grunting and sweating with effort, you stuff as much of your " + dogDescript()) + " into your overstretched nipple as you can fit. The feeling of incredible tightness around your ") + dogDescript()) + " combines with the pain of your distended nipple to form a mindbending sensation that makes your head spin. "), false);
};
if (lactationMultiplier > 0){
outputMainText("Milky ", false);
} else {
outputMainText("Slick ", false);
};
if (vaginalWetness < 2){
outputMainText((("girl-lube quickly coats the whole length of your " + dogDescript()) + " in a glistening layer of fuck juice. "), false);
};
if ((((vaginalWetness >= 2)) && ((vaginalWetness < 4)))){
outputMainText((("girl-lube drizzles down the length of your " + dogDescript()) + " in thick streams, in and around your sheath. "), false);
};
if (vaginalWetness >= 4){
outputMainText((("girl-lube spurts out of your tortured nipple with each thrust of your " + dogDescript()) + ", spattering your arms and face with your secretions. "), false);
};
};
if (Math.round(baseCockThickness) < vaginalLooseness){
if (sen < 45){
outputMainText((("ou sigh with pleasure as your " + dogDescript()) + " slides into "), false);
};
if ((((sen >= 45)) && ((sen < 70)))){
outputMainText((("ou moan with pleasure as your " + dogDescript()) + " slides into "), false);
};
if (sen >= 70){
outputMainText((("ou scream with delight as your " + dogDescript()) + " slides into "), false);
};
if (vaginalLooseness < 2){
outputMainText((("the small, over-stretched opening of your swollen nipple. Your " + dogDescript()) + " penetrates your swollen nipple easily, sliding half way in on your first thrust. "), false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText((("the engorged and distended opening of your fat, swollen nipple. Your " + dogDescript()) + " plunges deeply into your freakishly engorged nipple, penetrating it easily. "), false);
};
if (vaginalLooseness >= 4){
outputMainText((("the gaping fuck-mouth of your inhuman nipple-cunt. The swollen lips of your bloated nipple engulf the tip of your " + dogDescript()) + " and begin to slide down its length, even swallowing your bulging knot without difficulty. "), false);
};
outputMainText((("You revel in the sensation as you slowly stroke your " + dogDescript()) + " in and out of your distended nipple. The feeling of your engorged knot slipping in and out of your swollen tit is exquisite, and "), false);
if (lactationMultiplier > 0){
outputMainText("milky ", false);
} else {
outputMainText("slippery ", false);
};
if (vaginalWetness < 2){
outputMainText((("girl-lube quickly coats the whole length of your " + dogDescript()) + " in a glistening layer of fuck juice. "), false);
};
if ((((vaginalWetness >= 2)) && ((vaginalWetness < 4)))){
outputMainText((("girl-lube drizzles down the length of your " + dogDescript()) + " in thick streams, pooling in and around your sheath. "), false);
};
if (vaginalWetness >= 4){
outputMainText((("girl-lube pours out of your swollen nipple over your " + dogDescript()) + " and hands, pooling on the ground below you. "), false);
};
};
}
public function exploreLake():void{
var _local1:Number = 0;
_local1 = int((Math.random() * 5));
if (_local1 == 0){
outputMainText("You find a potion on the ground labelled Equinum.", true);
foundItem = 1001;
doEvent(8);
return;
};
if (_local1 == 1){
outputMainText("You find a pill stamped with the letter 'H' discarded on the ground.", true);
foundItem = 1000;
doEvent(8);
return;
};
if (_local1 == 2){
outputMainText((("You discover a bottle full of viscous white liquid. A small label declares it to be " + itemName(1002)) + "."), true);
foundItem = 1002;
doEvent(8);
return;
};
if (_local1 == 3){
outputMainText("A small imp bursts from behind a rock and buzzes towards you. You prepare for a fight, but it stays high and simply flies above you. Suddenly another imp appears from nowhere and attacks the first. In the tussle one of them drops an item, which you handily catch, as the scrapping demons fight their way out of sight.\r\rIt is a small jug labelled 'Succubi Milk'.", true);
foundItem = 1003;
doEvent(8);
return;
};
if (_local1 == 4){
if (farm == 0){
outputMainText("You find a quaint farmhouse on the far shores of the lake. Around the homestead are a range of gardens, filled with delicious fruits and vegetables. Your belly rumbles, aching with hunger, as you approach the dwelling. A figure in a pepper patch rises up to greet you, waving you over.\r\rYou do your best to conceal your surprise as you realize the farmer is a woman...with fur and canine-like features. She giggles happily and beckons you over, \"<i>Welcome stranger, it sure is pleasant to see a new face 'round here. My name's Whitney, and it's mighty fine I don't have to pitchfork you like most guests!</i>\" She fills you in a about the lake and her farm, telling how the demons can't seem to stay close for long, and monsters always seem weaker the few times they have approached her farm. Whitney flushes and rapidly changes subject, \"<i>I've got to get back to work, but you help yourself to the peppers, hun!</i>\"", true);
foundItem = 1004;
doEvent(8);
farm++;
return;
};
if (farm == 1){
outputMainText("You stumble across Whitney's farm again. The anthropomorphic canine woman gives you a friendly wave and tosses you another Canine Pepper.", true);
foundItem = 1004;
doEvent(8);
};
};
}
public function buttonEvent2(_arg1:MouseEvent):void{
if (button2Choice == 0){
outputMainText("\rInactive.", false);
return;
};
if (Choice2.text == "Forest"){
exploreForest();
return;
};
currEvent = button2Choice;
slotUsed = 2;
if (inCombat){
doCombatEvent(currEvent);
} else {
doEvent(currEvent);
};
}
public function takeDamage(_arg1:Number):void{
if ((HP - _arg1) <= 0){
HP = 1;
if (inCombat){
doNext(loseEvent);
};
return;
};
HP = (HP - _arg1);
hpDown.visible = true;
}
public function sleep():void{
var _local1:Boolean;
outputMainText("", true);
if (pregnancyIncubation > 1){
if (pregnancyType == 1){
if (pregnancyIncubation == 14){
outputMainText("You realize your belly has gotten slightly larger, maybe you need to cut back on the strange food.\r\r", false);
};
if (pregnancyIncubation == 9){
outputMainText("The unmistakable bulge of pregnancy is visible in your tummy. ", false);
if (cor < 40){
outputMainText("Oh no.", false);
};
if ((((cor >= 40)) && ((cor < 75)))){
outputMainText("You hope it doesn't hurt.", false);
};
if (cor >= 75){
outputMainText("You can't wait to see what you give birth to.", false);
};
outputMainText("\r\r", false);
stats(0, 0, -1, 0, 1, 1, 2, 0);
};
if (pregnancyIncubation == 5){
outputMainText("Your ever growing belly makes your pregnancy obvious for those around you.\r\r", false);
};
if (pregnancyIncubation == 3){
outputMainText("Your belly is painfully distended, ", false);
if (cor < 40){
outputMainText("making it difficult to function.", false);
};
if ((((cor >= 40)) && ((cor < 75)))){
outputMainText("and you wonder how much longer you have to wait.", false);
};
if (cor >= 75){
outputMainText("and you're eager to birth it, so you can get pregnant again.", false);
};
outputMainText("\r\r", false);
stats(0, 0, -3, 0, 1, 1, 4, 0);
};
};
if (pregnancyType == 2){
if (pregnancyIncubation == 4){
outputMainText("You feel bloated, your bowells shifting uncomfortable from time to time.\r\r", false);
};
if (pregnancyIncubation == 3){
outputMainText("A honey-scented fluid drips from your rectum. At first it worries you, but as the smell fills the air around you, you realize anything with such a beautiful scent must be good. ", false);
if (cockTotal > 0){
outputMainText("The aroma seems to permeate your very being, slowly congregating in your ", false);
};
if (cockTotal == 1){
outputMainText(cockDescript(), false);
if (horseCocks == 1){
outputMainText(((", each inhalation making it bigger, harder, and firmer. You suck in huge lungfulls of air, until your " + cockDescript()) + " is twitching and dripping, the flare swollen and purple. "), false);
};
if (dogCocks == 1){
outputMainText(((", each inhalation making it thicker, harder, and firmer. You suck in huge lungfulls of air, desperate for more, until your " + cockDescript()) + " is twitching and dripping, it's knot swollen to the max. "), false);
};
if (normalCocks == 1){
outputMainText(((", each inhalation making it bigger, harder, and firmer. You suck in huge lungfulls of air, until your " + cockDescript()) + " is twitching and dripping, the head swollen and purple. "), false);
};
};
if (cockTotal > 1){
outputMainText((("groin. Your " + allCocksDescript()) + " fill and grow with every lungful of the stuff you breathe in. You suck in great lungfuls of the tainted air, desperate for more, your cocks twitching and dripping with need. "), false);
};
outputMainText("You smile knowing you couldn't stop from masturbating if you wanted to.\r\r", false);
stats(0, 0, 0, -0.5, 0, 0, 100, 0);
};
};
pregnancyIncubation--;
};
if ((((pregnancyIncubation == 1)) && ((pregnancyType == 2)))){
outputMainText("There is a sudden gush of honey-colored fluids from your ass. Before panic can set in, that wonderful scent overtakes you, making everything ok. ", false);
if (cockTotal > 0){
outputMainText("The muzzy feeling that fills your head seems to seep downwards, making your equipment hard and tight. ", false);
};
if (vaginas > 0){
outputMainText((("Your " + vaginaDescript()) + " becomes engorged and sensitive. "), false);
};
outputMainText("Your hand darts down to the amber, scooping up a handful of the sticky stuff. You wonder what your hand is doing as it brings it up to your mouth, which instinctively opens. You shudder in revulsion as you swallow the sweet-tasting stuff, your mind briefly wondering why it would do that. The stuff seems to radiate warmth, quickly pushing those nagging thoughts away as you scoop up more.\r\r", false);
outputMainText("A sudden slip from below surprises you, a white sphere escaped from your anus along with another squirt of honey. Your drugged brain tries to understand what's happening, but gives up, your hands idly slathering honey over your genitals. The next orb pops out moments later, forcing a startled moan from your mouth. That felt GOOD. You begin masturbating to the thought of laying more eggs...yes, that's what those are. You nearly cum as egg number three squeezes out. ", false);
if ((((lactationMultiplier >= 1)) && ((breastRating() > 2)))){
outputMainText((("Seeking even greater sensation, your hands gather the honey and massage it into your " + breastDescript()) + ", slowly working up to your nipples. Milk immediately begins pouring out from the attention, flooding your chest with warmth. "), false);
};
outputMainText("Each egg seems to come out closer on the heels of the one before, and each time your conscious mind loses more of it's ability to do anything but masturbate and wallow in honey.\r\r", false);
outputMainText("Some time later, your mind begins to return, brought to wakefulness by an incredibly loud buzzing...You sit up and see a pile of dozens of eggs resting in a puddle of sticky honey. Most are empty, but a few have hundreds of honey-bees emptying from them, joining the massive swarms above you. ", false);
if (cor < 35){
outputMainText("You are disgusted, but glad you were not stung during the ordeal. You stagger away and find a brook to wash out your mouth with.", false);
};
if ((((cor >= 35)) && ((cor < 65)))){
outputMainText("You are amazed you could lay so many eggs, and while the act was strange there was something definitely arousing about it.", false);
};
if ((((cor >= 65)) && ((cor < 90)))){
outputMainText("You stretch languidly, noting that most of the drugged honey is gone. Maybe you can find the Queen Bee again and remember to bottle it next time.", false);
};
if (cor >= 90){
outputMainText("You lick your lips, savoring the honeyed residue on them as you admire your thousands of children. If only every night could be like this...", false);
};
pregnancyIncubation = 0;
pregnancyType = 0;
_local1 = true;
stats(0, 0, 0, 1, 4, 3, -100, 2);
};
if ((((pregnancyIncubation == 1)) && ((pregnancyType == 1)))){
_local1 = true;
if (vaginas == 0){
outputMainText("You feel a terrible pressure in your groin...then an incredible pain accompanied by the rending of flesh. You look down and behold a vagina. ", false);
};
outputMainText("A sudden gush of fluids erupts from your vagina - your water just broke. You grunt painfully as you feel wriggling and squirming inside your belly, muscle contractions forcing it downwards. ", false);
if (cor < 50){
outputMainText("You rue the day you encountered that hateful imp. ", false);
};
outputMainText("The pain begins to subside as your delivery continues...replaced with a building sensation of pleasure. Arousal spikes through you as the contractions intensify, and as you feel something pass you have a tiny orgasm.\r\rYet you feel more within you, and the contractions spike again, pushing you to orgasm as you pass something else. It repeats, over and over, nearly a dozen times you birth and orgasm. After an eternity of birthing and orgasm, you sense your ordeal is over and collapse, unconscious.", false);
if (vaginalLooseness == 0){
vaginalLooseness++;
};
if (vaginalLooseness < 4){
vaginalLooseness++;
outputMainText("\r\r<b>Your cunt is painfully stretched from the ordeal, permanently enlarged.</b>", false);
};
pregnancyIncubation = 0;
pregnancyType = 0;
outputMainText("\r\rIn the morning you find a large number of tiny imp tracks...and spatters of cum on your clothes and body. They must be born fully-formed.", false);
if ((((lactationMultiplier > 0)) && ((lactationMultiplier < 5)))){
outputMainText(" This morning your breasts won't seem to stop dribbling milk, you're lactating more heavily than before.", false);
lactationMultiplier = (lactationMultiplier + 0.5);
};
if (((((((((!((breastCupSize == "N/A"))) && (!((breastCupSize == "A"))))) && (!((breastCupSize == "B"))))) && ((breastsPerRow > 1)))) && ((lactationMultiplier == 0)))){
outputMainText(" As you ponder the implications, <b>you realize your breasts have been slowly lactating</b>. You wonder how longer it will be before they stop.", false);
lactationMultiplier = 1;
};
if ((((breastCupSize == "B")) && ((breastsPerRow > 1)))){
outputMainText(" <b>Your breasts have grown to C-cups!</b>", false);
breastCupSize = "C";
};
if ((((breastCupSize == "A")) && ((breastsPerRow > 1)))){
outputMainText(" <b>Your breasts have grown to B-cups!</b>", false);
breastCupSize = "B";
};
if (vaginas == 0){
vaginas++;
};
if (vaginalWetness == 0){
vaginalWetness++;
};
if (gender == 1){
gender = 3;
};
if (gender == 0){
gender = 2;
};
stats(0, -2, 2, 0, 1, 0.5, -100, 7);
_local1 = true;
return;
};
if ((((((merchant == 1)) && ((gender == 1)))) && (!(_local1)))){
outputMainText("As you sleep, your rest becomes increasingly disturbed. You feel a great weight on top of you and you find it difficult to breathe. Stirred to consciousness, your eyes are greeted by an enormous pair of blue tinged breasts. The nipples are quite long and thick and are surrounded by large, round areola. A deep, feminine voice breaks the silence. '<i>I was wondering if you would wake up.</i>' You turn your head to the voice to see the visage of a sharp featured, attractive woman. The woman grins mischievously and speaks again. '<i>I was hoping that idiot, Giacomo, did not dilute the 'potion' again.</i>' Your campfire reflects off the woman's face and her beauty contains some sharply contrasting features. The pupils of her eyes are slit like a cat's. As she grins, she bares her teeth, which contain two pairs of long and short fangs. This woman is clearly NOT human! In shock, you attempt to get up, only prompting the woman to prove her inhuman nature by grabbing your shoulders and pinning you to the ground. You see that each finger on her hand also contains a fourth joint, further proving her status. Before you can speak a word, the woman begins mocking your fear and places her face in front of yours. Her face is almost certainly demonic in nature. '<i>Awwww! Did my blue skin and pointy teeth scare you?</i>', she says in a childish voice. '<i>Believe me stud, If I wanted to harm you, I would not have let you wake up at all. I am here because you have 'called' me.</i>' She teases you with the empty blue bottle you bought from the merchant. '<i>My essence is in this bottle. Any man who drinks this, I am compelled to return the pleasure by drinking his.</i>' The demon woman reaches her skinny hand down to your crotch where you see you have become fiercely erect. The demon gently strokes your cock until you begin oozing generous amounts of your own natural lubricants. The demon takes one of her massive breasts and teases you with her fat nipples. '<i>Open your mouth.</i>' she demands. '<i>Take me into your mouth as I will soon take you into mine.</i>'\r\r", true);
stats(0, 0, 0, 0, 0, 0, 35, 0);
doNext(12);
merchant = 0;
} else {
if (!_local1){
if ((((lust >= 50)) && ((lust < 75)))){
if (int((Math.random() * 3)) == 0){
outputMainText("You prepare to rest, but decide to masturbate first, and ease some 'tension'.\r\r", false);
chooseSexToy();
} else {
outputMainText("You have a peaceful but uncomfortable rest on the ground.", false);
};
};
if ((((lust >= 75)) && ((lust < 90)))){
if (int((Math.random() * 2)) == 0){
outputMainText("You lie down to rest but are increasingly disturbed by your lusty thoughts. Frustrated, you decide to masturbate before bed.\r\r", true);
chooseSexToy();
} else {
outputMainText("You have a peaceful but uncomfortable rest on the ground.", false);
};
};
if (lust >= 90){
outputMainText("You decide to sleep, but are so worked up and filled with deviant thoughts that you HAVE to masturbate.\r\r", false);
chooseSexToy();
};
if (lust < 50){
outputMainText("You have a peaceful but uncomfortable rest on the ground.", false);
};
hpRestore(250);
};
};
}
public function lowerSpe(_arg1:MouseEvent):void{
if ((((remSkillPoints < 16)) && ((tempSpe > spe)))){
remSkillPoints++;
tempSpe--;
};
levelPaneRefresh();
}
public function levelRaise(_arg1:MouseEvent):void{
if (!inCombat){
hideUpDown();
tempExp = exp;
exp = (exp - levelTable[(level + 1)]);
remSkillPoints = 5;
tempStr = str;
tempSpe = spe;
tempTou = tou;
levelRdy();
levelBox.visible = false;
levelText.visible = false;
Choice1.visible = false;
Choice2.visible = false;
Choice1Outline.visible = false;
Choice2Outline.visible = false;
appearanceText.visible = false;
appearanceBox.visible = false;
dataText.visible = false;
dataBox.visible = false;
Choice3.visible = true;
Choice4.visible = true;
Choice3Outline.visible = true;
Choice4Outline.visible = true;
Choice3.htmlText = "Cancel";
Choice4.htmlText = "Finish";
button3Choice = 10005;
button4Choice = 10006;
outputWindow.visible = false;
levelWindow(true);
levelPaneRefresh();
} else {
outputMainText("You can't level up while in combat.", true);
};
}
public function findSomeGems():void{
var _local1:int = int(((Math.random() * 30) + 11));
gems = (gems + _local1);
outputMainText((("Upon opening the small bag, you find " + _local1) + " gems inside!"), true);
doNext(3);
}
public function choices(_arg1:String, _arg2:Number, _arg3:String, _arg4:Number, _arg5:String, _arg6:Number, _arg7:String, _arg8:Number){
nextButton = false;
appearanceText.visible = false;
appearanceBox.visible = false;
dataBox.visible = false;
dataText.visible = false;
levelText.visible = false;
levelBox.visible = false;
if (_arg2 == 0){
Choice1Outline.visible = false;
Choice1.visible = false;
} else {
Choice1Outline.visible = true;
Choice1.visible = true;
Choice1.htmlText = _arg1;
button1Choice = _arg2;
};
if (_arg4 == 0){
Choice2Outline.visible = false;
Choice2.visible = false;
} else {
Choice2Outline.visible = true;
Choice2.visible = true;
Choice2.htmlText = _arg3;
button2Choice = _arg4;
};
if (_arg6 == 0){
Choice3Outline.visible = false;
Choice3.visible = false;
} else {
Choice3Outline.visible = true;
Choice3.visible = true;
Choice3.htmlText = _arg5;
button3Choice = _arg6;
};
if (_arg8 == 0){
Choice4Outline.visible = false;
Choice4.visible = false;
} else {
Choice4Outline.visible = true;
Choice4.visible = true;
Choice4.htmlText = _arg7;
button4Choice = _arg8;
};
}
public function manSelect():void{
randomHair();
tallness = 75;
normalCocks = 1;
baseCockLength = 6;
baseCockThickness = 1;
cockTotal = 1;
breastTotal = 2;
breastsPerRow = 2;
breastRows = 1;
nipplesPerBreast = 1;
nippleLength = 0.1;
horseCocks = 0;
dogCocks = 0;
balls = 2;
ballSize = 1;
clitLength = 0.25;
vaginas = 0;
nipplesFuckable = false;
nippleCocks = false;
vaginalLooseness = 0;
vaginalWetness = 1;
breastCupSize = "N/A";
horseAffinity = 1;
dogAffinity = 1;
horseTail = false;
demonTail = false;
dogTail = false;
horns = 0;
str = 20;
tou = 20;
spe = 15;
inte = 15;
lib = 25;
sen = 15;
HP = ((tou * 2) + 50);
lust = lib;
gender = 1;
gems = 0;
heightGen();
outputMainText((((((("You are a man, " + int((tallness / 12))) + " foot, ") + int((tallness % 12))) + " inches tall. You are physically strong and skilled with weapons and martial arts. You are normal in many respects, with ") + hair) + " hair and a 6 inch cock.\r\rThe time has come for you to take your turn as champion and enter the demon portal. The ancient gateway is housed in a cave not far from the village. A sense of anxiety and worry builds as you are lead from the village to the cave, peaking as you behold the swirling purple-pink vortex. The village elder asks if you are ready.\r\rYou shudder and nod, then step into a world of magic and sin..."), true);
}
public function eAttack():void{
var _local1:Number;
_local1 = 0;
doNext(3);
if (((((spe - espe) > 0)) && ((int((Math.random() * (((spe - espe) / 4) + 80))) > 80)))){
if ((spe - espe) < 8){
outputMainText((("You narrowly avoid " + eShort) + "'s attack!"), false);
};
if (((((spe - espe) >= 8)) && (((spe - espe) < 20)))){
outputMainText((("You dodge " + eShort) + "'s attack with superior quickness!"), false);
};
if ((spe - espe) >= 20){
outputMainText((("You deftly avoid " + eShort) + "'s slow attack."), false);
};
return;
};
_local1 = int((estr - (Math.random() * tou)));
if (_local1 <= 0){
_local1 = 0;
outputMainText((("You deflect and block every attack " + eShort) + " throws at you."), false);
};
if ((((_local1 > 0)) && ((_local1 < 6)))){
outputMainText((((("You are struck a glancing blow by " + eShort) + "! (") + _local1) + ")"), false);
};
if ((((_local1 > 5)) && ((_local1 < 11)))){
outputMainText((((eShort + " wounds you! (") + _local1) + ")"), false);
};
if ((((_local1 > 10)) && ((_local1 < 21)))){
outputMainText((((eShort + " staggers you with the force of the attack! (") + _local1) + ")"), false);
};
if (_local1 > 20){
outputMainText((((eShort + " <b>mutilates</b> you with a powerful attack! (") + _local1) + ")"), false);
};
if (_local1 > 0){
takeDamage(_local1);
};
outputMainText("\r", false);
}
public function saveGame(_arg1:String):Boolean{
if (str == 0){
return (false);
};
var _local2:* = SharedObject.getLocal(_arg1);
_local2.data.exists = true;
_local2.data.str = str;
_local2.data.tou = tou;
_local2.data.spe = spe;
_local2.data.inte = inte;
_local2.data.lib = lib;
_local2.data.sen = sen;
_local2.data.HP = HP;
_local2.data.lust = lust;
_local2.data.cor = cor;
_local2.data.gems = gems;
_local2.data.tallness = tallness;
_local2.data.hair = hair;
_local2.data.gender = gender;
_local2.data.horseTail = horseTail;
_local2.data.horseFace = horseFace;
_local2.data.demonTail = demonTail;
_local2.data.dogTail = dogTail;
_local2.data.dogFace = dogFace;
_local2.data.furry = furry;
_local2.data.horns = horns;
_local2.data.merchant = merchant;
_local2.data.monk = monk;
_local2.data.farm = farm;
_local2.data.sand = sand;
_local2.data.horseAffinity = horseAffinity;
_local2.data.dogAffinity = dogAffinity;
_local2.data.cockTotal = cockTotal;
_local2.data.normalCocks = normalCocks;
_local2.data.horseCocks = horseCocks;
_local2.data.balls = balls;
_local2.data.ballSize = ballSize;
_local2.data.dogCocks = dogCocks;
_local2.data.baseCockLength = baseCockLength;
_local2.data.baseCockThickness = baseCockThickness;
_local2.data.clitLength = clitLength;
_local2.data.breastTotal = breastTotal;
_local2.data.breastsPerRow = breastsPerRow;
_local2.data.breastRows = breastRows;
_local2.data.nipplesPerBreast = nipplesPerBreast;
_local2.data.breastCupSize = breastCupSize;
_local2.data.nippleLength = nippleLength;
_local2.data.nipplesFuckable = nipplesFuckable;
_local2.data.nippleCocks = nippleCocks;
_local2.data.vaginas = vaginas;
_local2.data.vaginalLooseness = vaginalLooseness;
_local2.data.vaginalWetness = vaginalWetness;
_local2.data.pregnancyIncubation = pregnancyIncubation;
_local2.data.pregnancyType = pregnancyType;
_local2.data.lactationMultiplier = lactationMultiplier;
_local2.data.itemSlot1 = itemSlot1;
_local2.data.itemSlot2 = itemSlot2;
_local2.data.itemSlot3 = itemSlot3;
_local2.data.ownsDangerousPlants = ownsDangerousPlants;
_local2.data.ownsTravelersGuide = ownsTravelersGuide;
_local2.data.ownsHentaiComic = ownsHentaiComic;
_local2.data.ownsDildo = ownsDildo;
_local2.data.ownsStimBelt = ownsStimBelt;
_local2.data.ownsNaturalStimBelt = ownsNaturalStimBelt;
_local2.data.ownsOnahole = ownsOnahole;
_local2.data.ownsDeluxeOnahole = ownsDeluxeOnahole;
_local2.data.ownsNaturalOnahole = ownsNaturalOnahole;
_local2.data.expe = exp;
_local2.data.levele = level;
_local2.data.race = race;
_local2.data.inHeat = inHeat;
if (_local2.flush()){
return (true);
};
return (false);
}
public function genderSelect(){
Choice1Outline.visible = false;
Choice2Outline.visible = false;
Choice3Outline.visible = false;
Choice4Outline.visible = false;
Choice1.visible = true;
Choice2.visible = true;
Choice3.visible = false;
Choice4.visible = false;
Choice1.htmlText = "Male";
Choice2.htmlText = "Female";
Choice1Outline.visible = true;
Choice2Outline.visible = true;
button1Choice = 1;
button2Choice = 2;
if (race == "Human"){
outputMainText("You grew up in the small village of Ingnam, a remote village with rich traditions, buried deep in the wilds. Every year for as long as you can remember, your village has chosen a champion to send to the demon realm. Legend has it that in years Ingnam has failed to produce a champion, chaos has reigned over the countryside. Children disappear, crops wilt, and disease spreads like wildfire.\r\rThis year, you have been selected to be the champion.", true);
};
if (race == "Canid"){
outputMainText("Woof woof.", true);
};
if (race == "Equine"){
outputMainText("Neeeeeeeiiigh. I'm a horse.", true);
};
if (race == "Felid"){
outputMainText("I'm a silky pussy. Meow.", true);
};
outputMainText("\r\rAre you male or female?", false);
}
public function hasSheath():Boolean{
if ((((dogCocks > 0)) || ((horseCocks > 0)))){
return (true);
};
return (false);
}
public function numbingOil():void{
outputMainText("You open the bottle and begin pouring the oil all over your body.\r\r", true);
if (cor < 20){
outputMainText("Your skin tingles slightly, and afterwords, you feel less sensitive than before.", false);
};
if ((((cor >= 20)) && ((cor < 60)))){
outputMainText("Your skin burns a bit, but eventually the burning fades away, leaving your skin less sensitive than before.", false);
};
if ((((cor >= 60)) && ((cor < 100)))){
outputMainText("Your skin burns and itches unbearably for several minutes, but eventually returns to normal. You feel less sensitive than before.", false);
};
if (cor == 100){
outputMainText("As you finish rubbing the oil into your skin, you fall gasping to your knees. It feels like someone lit you on fire, and that the fire is made of biting ants. You write in agony for a few minutes until the sensations fade. You feel slightly less sensitive than before.", false);
};
stats(0, 0, 0, 0, 0, -((10 - Math.floor((cor / 20)))), -100, 0);
if (!debug){
clearItemSlot();
};
}
public function raceSelect(_arg1:int):void{
if (_arg1 == 0){
Choice1.visible = true;
Choice2.visible = true;
Choice3.visible = true;
Choice4.visible = true;
Choice1.htmlText = "Human";
Choice2.htmlText = "Canid";
Choice3.htmlText = "Equine";
Choice4.htmlText = "Felid";
Choice1Outline.visible = true;
Choice2Outline.visible = true;
Choice3Outline.visible = true;
Choice4Outline.visible = true;
button1Choice = 10001;
button2Choice = 10002;
button3Choice = 10003;
button4Choice = 10004;
outputMainText("Of what race are you?", true);
} else {
switch (_arg1){
case 1:
race = "Human";
case 2:
furry = true;
dogTail = true;
dogFace = true;
race = "Canid";
dogAffinity = 1;
break;
case 3:
furry = true;
horseTail = true;
race = "Equine";
horseAffinity = 1;
break;
case 4:
furry = true;
catTail = true;
race = "Felid";
catAffinity = 1;
break;
default:
outputMainText("Fucker broke the game. Shit.", true);
break;
};
genderSelect();
};
}
public function multiTitFuck():Boolean{
var _local1:Number = (nipplesPerBreast * breastTotal);
var _local2:Number = cockTotal;
var _local3:Boolean;
var _local4:Boolean;
if (Math.round((baseCockThickness * dogAffinity)) > (vaginalLooseness * 2)){
_local2 = (_local2 - dogCocks);
_local3 = false;
};
var _local5:Number = int(((Math.random() * _local2) + 1));
if (lib < 70){
outputMainText("Shivering with anticipation, you place the ", false);
};
if (lib >= 70){
outputMainText("Without hesitation, you shove the ", false);
};
if (_local5 <= normalCocks){
outputMainText("tip of ", false);
if (normalCocks > 1){
outputMainText((((("one of your " + normalCocks) + " ") + cockDescript()) + "s "), false);
} else {
outputMainText((("your " + cockDescript()) + " "), false);
};
};
if ((((_local5 <= (horseCocks + normalCocks))) && ((_local5 > normalCocks)))){
outputMainText("flared tip of ", false);
if (horseCocks > 1){
outputMainText((((("one of your " + horseCocks) + " ") + horseDescript()) + "s "), false);
} else {
outputMainText((("your " + horseDescript()) + " "), false);
};
};
if ((((_local5 <= ((dogCocks + horseCocks) + normalCocks))) && ((_local5 > (normalCocks + horseCocks))))){
outputMainText("pointed tip of ", false);
if (dogCocks > 1){
outputMainText((((("one of your " + dogCocks) + " ") + dogDescript()) + "s "), false);
} else {
outputMainText((("your " + dogDescript()) + " "), false);
};
};
if (lib < 70){
outputMainText(" against the opening of ", false);
};
if (lib >= 70){
outputMainText(" into ", false);
};
if ((((breastRows > 1)) && ((nipplesPerBreast > 1)))){
outputMainText("one of the ", false);
};
if ((((breastRows > 1)) && ((nipplesPerBreast == 1)))){
outputMainText("the ", false);
};
if (breastRows == 1){
outputMainText("one of your ", false);
};
if (nipplesPerBreast > 1){
outputMainText("many ", false);
};
if (vaginalLooseness < 2){
outputMainText("painfully stretched nipple", false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText("freakishly swollen nipple", false);
};
if (vaginalLooseness >= 4){
outputMainText("huge, bloated cunt-nipple", false);
};
if ((((breastRows == 1)) || ((nipplesPerBreast > 1)))){
outputMainText("s", false);
};
if (breastRows > 1){
outputMainText(" on one of your lower breasts", false);
};
outputMainText(". ", false);
if (_local1 >= _local2){
if (cockTotal == 2){
outputMainText("Quickly, you move your other cock into position against ", false);
};
if ((((cockTotal > 2)) && ((((_local2 == 2)) || ((_local1 == 2)))))){
outputMainText("Quickly, you move another cock into position against ", false);
};
if ((((_local2 > 2)) && ((_local1 >= _local2)))){
outputMainText("Quickly, you move your remaining shafts into position against your other nipples. ", false);
};
if ((((_local1 > 2)) && ((_local2 <= 2)))){
outputMainText("one of your other nipples. ", false);
};
if (_local1 == 2){
outputMainText("your other nipple. ", false);
};
};
if ((((_local2 > 2)) && ((_local1 < _local2)))){
outputMainText("You are momentarily stumped as you realize that you don't have enough nipples for all of your cocks. ", false);
if (vaginalLooseness >= (Math.round(baseCockThickness) * 2)){
_local4 = true;
outputMainText("A word that might have been \"multidivisication\" drifts through your lust-fogged brain, and you begin to position two dicks against each of your poor, unsuspecting nipples. ", false);
if ((_local1 * 2) >= _local2){
if (((_local3) || ((dogCocks == 0)))){
outputMainText((("You giggle with glee as you realize that you will be able to jam every single one of your " + allCocksDescript()) + " into your abused nipples. "), false);
};
if (((!(_local3)) && ((dogCocks > 0)))){
outputMainText((((("You giggle with glee as you realize that you will be able to jam all but your " + dogCocks) + " ") + dogDescript()) + " into your abused nipples. "), false);
};
} else {
outputMainText((("With a flash of irritation, you realize that even if you stick two cocks in each hole, you still won't be able to fit all " + cockTotal) + " of your dicks into your abused tits. Deciding to make the best of it, you prepare to stuff in as many as you can. "), false);
};
} else {
outputMainText("Accepting that you cant do anything about it, you start pushing. ", false);
};
};
if (lactationMultiplier == 0){
if (vaginalWetness < 2){
outputMainText("Y", false);
};
if ((((vaginalWetness >= 2)) && ((vaginalWetness < 4)))){
outputMainText("Slick juices dribble down your shafts, and y", false);
};
if (vaginalWetness >= 4){
outputMainText("Slick juices squirt out from around your shafts and y", false);
};
} else {
if (lactationMultiplier < 2){
outputMainText("Rivulets of milky girlgum drizzle down your shafts and y", false);
};
if (lactationMultiplier >= 2){
outputMainText("Milky girlgum squirts out from around your shafts, staining them white. Y", false);
};
};
if (Math.round(baseCockThickness) >= vaginalLooseness){
if (sen < 45){
outputMainText("ou grunt with exertion as you attempt to stuff your cocks into ", false);
};
if ((((sen >= 45)) && ((sen < 70)))){
outputMainText("ou blink back tears as you attempt to stuff your cocks into ", false);
};
if (sen >= 70){
outputMainText("ou scream with a combination of pain and pleasure as you attempt to stuff your cocks into ", false);
};
if (vaginalLooseness < 2){
outputMainText("the small, over-stretched openings of your swollen nipples. ", false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText("the engorged and distended openings of your fat, swollen nipples. ", false);
};
if (vaginalLooseness >= 4){
outputMainText("the gaping fuck-mouths of your inhuman nipple-cunts. ", false);
};
if (Math.round(baseCockThickness) == vaginalLooseness){
if (vaginalLooseness < 2){
outputMainText("Your poor, tortured nipples are barely up to the task of accepting your swollen rods, but accept them they do. ", false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText("The puckered openings that cap your engorged nipples are stretched to their limits as you shove your fat rods home. ", false);
};
if (vaginalLooseness >= 4){
outputMainText("The swollen lips of your bloated nipples stretch around your throbbing cocks, swallowing them whole. ", false);
};
outputMainText("With each thrust, you bury your shafts deeper into your greedy tits. Overwhelmed by the combined sensations, your mind is barely able to cope with intese feelings of fullness where no such feelings should be possible. ", false);
};
if (Math.round(baseCockThickness) > vaginalLooseness){
if (vaginalLooseness < 2){
outputMainText("Your poor, tortured nipples are woefully insufficient compared to the width of your swollen rods. Delirious with arousal, you keep pushing them in anyway. ", false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText("The puckered openings that cap your engorged nipples are stretched to their limits and beyond as you shove your fat rods home. ", false);
};
if (vaginalLooseness >= 4){
outputMainText("The swollen lips of your bloated nipples gape wide, but the enormous girth of your throbbing members spread them even wider. ", false);
};
outputMainText("Grunting and sweating with effort, you stuff as much cock into each of your overstretched nipples as you can fit. The feeling of incredible tightness around your tools combines with the pain of your distended nipples to form a blizzard of mindbending sensations that makes your head spin. ", false);
};
if (lactationMultiplier > 0){
outputMainText("Milky ", false);
} else {
outputMainText("Slick ", false);
};
if (vaginalWetness < 2){
outputMainText("girl-lube drizzles down your shafts, coating them in glistening layers of fuck juice. ", false);
};
if ((((vaginalWetness >= 2)) && ((vaginalWetness < 4)))){
outputMainText("girl-lube drools from your tortured nipples in thick streams, pooling beneath your ass. ", false);
};
if (vaginalWetness >= 4){
outputMainText("girl-lube spurts out of your tortured nipples with each thrust of your hips, spattering your arms and face with your secretions. ", false);
};
};
if (Math.round(baseCockThickness) < vaginalLooseness){
if (!_local4){
if (sen < 45){
outputMainText("ou sigh with pleasure as your stiff cocks slide into ", false);
};
if ((((sen >= 45)) && ((sen < 70)))){
outputMainText("ou moan with pleasure as your stiff cocks slide into ", false);
};
if (sen >= 70){
outputMainText("ou scream with delight as your stiff cocks slide into ", false);
};
if (vaginalLooseness < 2){
outputMainText("the small, over-stretched openings on your swollen nipples. Your hard rods penetrate your engorged nipples easily, sliding half way in on your first thrust. ", false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText("the engorged and distended openings on your fat, swollen nipples. Your hard rods plunge deeply into your freakishly engorged nipples, penetrating them easily. ", false);
};
if (vaginalLooseness >= 4){
outputMainText("the gaping fuck-mouths of your inhuman nipple-cunts. The swollen lips of your bloated nipples engulf your hard rods and begin to slide down their length, swallowing them completely. ", false);
};
outputMainText("You revel in the sensation as you slowly stroke your shafts in and out of your distended nipples. Your cocks are enveloped in the warm, wet embrace of your freakish tits, and ", false);
if (lactationMultiplier > 0){
outputMainText("milky ", false);
} else {
outputMainText("slippery ", false);
};
if (vaginalWetness < 2){
outputMainText("girl-lube drizzles down your shafts, coating them in glistening layers of fuck juice. ", false);
};
if ((((vaginalWetness >= 2)) && ((vaginalWetness < 4)))){
outputMainText("girl-lube drools from your fat nipples in thick streams, pooling beneath your ass. ", false);
};
if (vaginalWetness >= 4){
outputMainText("girl-lube pours out of your swollen nipples in a constant deluge of sticky fluid, creating a large puddle beneath you. ", false);
};
} else {
if (sen < 45){
outputMainText("ou sigh with pleasure as your stiff cocks slide into ", false);
};
if ((((sen >= 45)) && ((sen < 70)))){
outputMainText("ou moan with pleasure as your stiff cocks slide into ", false);
};
if (sen >= 70){
outputMainText("ou scream with delight as your stiff cocks slide into ", false);
};
if ((Math.round(baseCockThickness) * 2) < (vaginalLooseness / 2)){
if (vaginalLooseness < 2){
outputMainText("the over-stretched openings on your swollen nipples. Though they are reletively small and delicate, you easily slide two of your tiny cocks into each of their slippery passages.", false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText("the engorged and distended openings on your fat, swollen nipples. Stretching easily, they engulf two cocks each with surprising ease, stretching around your turgid rods with little difficulty. ", false);
};
if (vaginalLooseness >= 4){
outputMainText("the gaping fuck-mouths of your inhuman nipple-cunts. The swollen lips of your bloated nipples squish open as each one swallows two of your fat dicks with little difficulty. ", false);
};
outputMainText("With each thrust, you bury your shafts deeper into your greedy tits. The feeling of your cocks rubbing together inside the warm, wet embrace of your inhuman breasts pushes you towards the edge of insanity, and you are briefly unable to comprehend the world around you. ", false);
} else {
if (vaginalLooseness < 2){
outputMainText("the small, over-stretched openings on your swollen nipples. Your poor, tortured nipples are stretched painfully as you cram two of your throbbing cocks into each one. ", false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText("the engorged and distended openings on your fat, swollen nipples. They are stretched to their limits as you shove two of your fat dicks into each one. ", false);
};
if (vaginalLooseness >= 4){
outputMainText("the gaping fuck-mouths of your inhuman nipple-cunts. The swollen lips of your bloated nipples are stretched to their limits as you push two of your fat dicks into each one. ", false);
};
outputMainText("Grunting and sweating with effort, you stuff as much cock into each of your overstretched nipples as you can fit. The feeling of your cocks being crushed together inside the warm, wet embrace of your inhuman breasts pushes you towards the edge of insanity, and you are briefly unable to comprehend the world around you. ", false);
};
if (lactationMultiplier > 0){
outputMainText("Milky ", false);
} else {
outputMainText("Slick ", false);
};
if (vaginalWetness < 2){
outputMainText("girl-lube drizzles down your shafts, coating them in glistening layers of fuck juice. ", false);
};
if ((((vaginalWetness >= 2)) && ((vaginalWetness < 4)))){
outputMainText("girl-lube drools from your tortured nipples in thick streams, pooling beneath your ass. ", false);
};
if (vaginalWetness >= 4){
outputMainText("girl-lube spurts out of your tortured nipples with each thrust of your hips, spattering your arms and face with your secretions. ", false);
};
};
};
if (((((!(_local3)) || (((!(_local4)) && ((_local2 <= _local1)))))) || (((_local4) && ((_local2 <= (_local1 * 2))))))){
return (false);
};
return (true);
}
public function womanSelect():void{
randomHair();
tallness = 68;
vaginas = 1;
vaginalLooseness = 0;
vaginalWetness = 1;
nipplesFuckable = false;
nippleCocks = false;
breastsPerRow = 2;
breastRows = 1;
breastTotal = 2;
nipplesPerBreast = 1;
nippleLength = 0.25;
breastCupSize = "C";
clitLength = 0.25;
cockTotal = 0;
horseCocks = 0;
normalCocks = 0;
dogCocks = 0;
baseCockThickness = 1;
gems = 0;
horseTail = false;
demonTail = false;
horns = 0;
str = 15;
tou = 15;
spe = 20;
inte = 15;
lib = 15;
sen = 15;
HP = ((tou * 2) + 50);
lust = lib;
gender = 2;
heightGen();
outputMainText((((((("You are a woman, " + int((tallness / 12))) + " foot, ") + int((tallness % 12))) + " inches tall. You are physically quick and skilled with weapons and martial arts. You are normal in many respects, with C cup breasts and ") + hair) + " hair.\r\rThe time has come for you to take your turn as champion, and enter the demon portal. The ancient gateway is housed in a cave not far from the village. A sense of anxiety and worry builds as you are lead from the village to the cave, peaking as you behold the swirling purple-pink vortex. The village elder asks if you are ready.\r\rYou shudder and nod, then step into a world of magic and sin..."), true);
}
public function equinum():void{
outputMainText("", true);
rand = (Math.random() * 100);
if ((((str < 100)) && ((tou < 100)))){
outputMainText("You feel stronger and more fit.", false);
if ((((horseCocks > 0)) && ((rand < 90)))){
horseAffinityChange(0.5);
outputMainText((" Your " + horseDescript()), false);
if (horseCocks > 1){
outputMainText("s feel", false);
} else {
outputMainText(" feels", false);
};
outputMainText(" a little bit bigger.", false);
};
} else {
if (str == 100){
outputMainText("You are as strong", false);
if (tou == 100){
outputMainText(" and tough", false);
};
outputMainText(" as possible.", false);
if (tou < 100){
outputMainText(" You feel tougher.", false);
};
} else {
if (tou == 100){
outputMainText("You are as tough as possible, but feel your strength increase.", false);
};
};
};
if (inte > 50){
stats(0, 0, 0, -5, 0, 0, 0, 0);
outputMainText("\rYour usually intelligent mind feels much more sluggish.", false);
};
if ((((inte <= 50)) && ((inte > 30)))){
stats(0, 0, 0, -3, 0, 0, 0, 0);
outputMainText("\rIt becomes harder to keep your mind focused as your intellect diminishes.", false);
};
if ((((inte <= 30)) && ((inte > 20)))){
stats(0, 0, 0, -1, 0, 0, 0, 0);
outputMainText("\rYou smile broadly as your cares seem to melt away. A small part of you worries that you're getting dumber.", false);
};
if ((((inte <= 20)) && ((inte >= 10)))){
stats(0, 0, 0, -0.5, 0, 0, 0, 0);
outputMainText("\rYou find yourself looking down at the empty bottle in your hand and realize you haven't thought ANYTHING since your first sip.", false);
};
if (inte < 10){
stats(0, 0, 0, 0, 0, 0, 3, 0);
outputMainText("\rYou smile vacantly as you drink the potion, knowing you're just a big dumb animal who loves to fuck.", false);
};
stats(1, 1, 0, 0, 0, 0, 0, 0);
if ((((rand > 50)) && ((rand < 90)))){
if ((((((cockTotal > 0)) && ((normalCocks == 0)))) && ((horseCocks > 0)))){
horseAffinityChange(3);
stats(0, 0, 0, 0, 10, 4, 20, 1);
outputMainText((("\r\rYour " + horseDescript()) + " pistons out from its sheath, growing larger and fatter as your veins thicken, becoming more noticable. It feels right"), false);
if ((((horseAffinity > 1.4)) && ((horseAffinity <= 1.7)))){
outputMainText(" to have such a splended tool. You idly daydream about cunts and pussies, and stuffing them pregnant with cum", false);
};
if ((((horseAffinity > 1.7)) && ((horseAffinity <= 2)))){
outputMainText(" to be this way... You breath the powerful animalistic scent and fantasize about fucking centaurs night and day until their bellies slosh with your cum", false);
};
if ((((horseAffinity > 2)) && ((horseAffinity <= 2.2)))){
outputMainText(((" to be a rutting stud. You ache to find a mare or centaur to breed with. Something to spend your evenings plunging a " + horseDescript()) + " deep into their musky passage, dumping load after load of your thick animal-cum into them. You'd be happy just fucking horsecunts morning noon and night. Maybe somewhere there is a farm needing a breeder..."), false);
};
if (horseAffinity > 2.2){
outputMainText(((" to whinny loudly like a rutting stallion. Your " + horseDescript()) + " is the perfect for fucking centaurs and mares. You imagine the feel of plowing an equin pussy deeply, bottoming out and unloading sticky jets of horse-jizz into their fertile womb. Your hand strokes your horsecock of it's own accord, musky pre dripping from the flared tip with each stroke. Your mind wanders to the thought of you with a harem of pregnant centaurs."), false);
};
outputMainText(".", false);
if ((((horseAffinity > 1.4)) && ((cor < 30)))){
outputMainText(" You shudder in revulsion at the strange thoughts and vow to control yourself better.", false);
};
if ((((((horseAffinity > 1.4)) && ((cor >= 30)))) && ((cor < 60)))){
outputMainText(" You wonder why you thought such odd things, but they have a certain appeal.", false);
};
if ((((((horseAffinity > 1.4)) && ((cor >= 60)))) && ((cor < 90)))){
outputMainText(" You relish your twisted fantasies, hoping to dream of them again.", false);
};
if ((((horseAffinity > 1.4)) && ((cor >= 90)))){
outputMainText(" You flush hotly and give a twisted smile, resolving to find a fitting subject to rape and relive your fantasies.", false);
};
};
if ((((cockTotal == 0)) && ((vaginas == 1)))){
horseCocks++;
cockTotal++;
if (clitLength < 4){
baseCockLength = 4;
} else {
baseCockLength = clitLength;
};
baseCockThickness = 0.75;
outputMainText((("\r\rYour pussy swells and bulges obscenely, your labia reshaping into an animal-like sheath. You feel a pressure and arousal inside, and grunt as you reflexively push. With a splash of fluid, your new " + horseDescript()) + " erupts from it's sheath. You stroke it irressistably and cum a massive load of musky horse-cum. You realize afterword that a pair of balls of appeared below the sheath as well."), false);
horseAffinityChange(5);
thicknessChange(1);
stats(0, 0, 0, 0, 20, 10, -100, 0);
gender = 1;
vaginas = 0;
clitLength = 0.2;
vaginalLooseness = 0;
vaginalWetness = 0;
};
if ((((((normalCocks > 0)) || ((dogCocks > 0)))) && ((cockTotal > 1)))){
if (normalCocks > 0){
horseCocks++;
normalCocks--;
horseAffinityChange(1);
stats(0, 0, 0, 0, 15, 7, 30, 0);
outputMainText("\r\rOne of your cocks begins to feel strange...you pull down your pants to take a look and see the skin of your penis darkening to a mottled brown and black pattern.", false);
if ((((horseCocks > 1)) || ((dogCocks > 0)))){
outputMainText(" Your sheath tingles and begins growing larger as the cock's base shifts to lie inside it.", false);
} else {
outputMainText(" You feel a tightness near the base where your skin seems to be bunching up. A sheath begins forming around your cock's base, tightening and pulling your cock inside it's depths.", false);
};
outputMainText(" The shaft suddenly explodes with movement, growing longer and developing a thick flared head leaking steady stream of animal-cum.", false);
if (horseCocks > 1){
outputMainText(((((" It reaches the size of your existing " + horseDescript()) + " and doesn't stop, and your other ") + horseDescript()) + " bulges out with new length to match the newcomer."), false);
};
} else {
if (dogCocks > 0){
horseCocks++;
dogCocks--;
dogAffinityChange(-2);
horseAffinityChange(2);
outputMainText((((("\r\rOne of your " + dogDescript()) + "s begins to feel odd...you pull down your clothes to take a look and see the skin of your ") + dogDescript()) + " darkening to a mottled brown and black pattern."), false);
outputMainText(" Your sheath tingles, growing larger and more horse-like.", false);
outputMainText(" The shaft suddenly explodes with movement, growing longer and developing a thick flared head leaking steady stream of animal-cum.", false);
if (horseCocks > 1){
outputMainText(((((" It reaches the size of your existing " + horseDescript()) + " and doesn't stop, and your other ") + horseDescript()) + " bulges out with new length to match the newcomer."), false);
};
};
};
};
if ((((((normalCocks > 0)) || ((dogCocks > 0)))) && ((cockTotal == 1)))){
horseAffinityChange(2);
horseCocks++;
if (normalCocks > 0){
normalCocks--;
thicknessChange(1);
outputMainText("\r\rYour cock begins to feel strange...you pull down your pants to take a look and see it darkening as you feel a tightness near the base where your skin seems to be bunching up. A sheath begins forming around your cock's base, tightening and pulling your cock inside it's depths. A hot feeling envolops your member as it suddenly grows into a horse penis, dwarfing it's old size. The skin is mottled brown and black and feels more sensitive than normal. Your hands are irressistably drawn to it, and you jerk yourself off, splattering cum with intense force.", false);
} else {
if (dogCocks > 0){
dogCocks--;
outputMainText((((((("\r\rYour " + dogDescript()) + " begins to feel odd...you pull down your clothes to take a look and see it darkening. You feel a growing tightness in the tip of your ") + dogDescript()) + " as it flattens, flaring outwards. Your cock pushes out of your sheath, inch after inch of animal-flesh growing beyond it's traditional size. You notice your knot vanishing, the extra flesh pushing more horsecock out from your sheath. Your hands are drawn to the strange new ") + horseDescript()) + ", and you jerk yourself off, splattering thick ropes of cum with intense force."), false);
dogAffinity = 1;
};
};
stats(0, 0, 0, 0, 20, 10, -100, 0);
};
};
if (rand >= 90){
horseAffinityChange(3);
if (horseCocks >= 1){
outputMainText("\r\rYou feel more horseflesh seep out from your sheath. ", false);
} else {
outputMainText("\r\rYou feel an odd craving for hay. ", false);
};
if (((((furry) && (horseTail))) && (!(horseFace)))){
if (dogFace){
outputMainText("Mind numbing pain shatters through you as you feel your facial bones rearranging. You clutch at your face in agony as you feel your skin crawl and shift, your visage reshaping to replace your dog-like characteristics with those of a horse.", false);
} else {
outputMainText("Mind numbing pain shatters through you as you feel your facial bones breaking and shifting. You clutch at yourself in agony as you feel your skin crawl and enlongate under your fingers. Eventually the pain subsides, leaving you with a face that seamlessly blends human and equine features.", false);
};
horseFace = true;
dogFace = false;
};
if (((!(furry)) && (horseTail))){
outputMainText((("An itchy feeling springs up over every inch of your skin. As you scratch yourself madly, you feel fur grow out under your fingernails until you have a fine coat of " + hair) + "-colored fur."), false);
furry = true;
};
if (demonTail == true){
outputMainText("Your tail bursts into a thousand shards of pain that quickly fade. When you look behind you, you realize it has transformed into a silky horse-tail.", false);
horseTail = true;
demonTail = false;
};
if (dogTail){
outputMainText("Your tail bursts into a thousand shards of pain that quickly fade. When you look behind you, you realize it has transformed into a silky horse-tail.", false);
dogTail = false;
horseTail = true;
};
if (horseTail == false){
outputMainText((("There is a sudden tickling on your ass, and you notice you have sprouted a long shiny horsetail of the same " + hair) + " color as your hair."), false);
horseTail = true;
};
};
if (!debug){
clearItemSlot();
};
}
public function randomHair():void{
switch ((rando(5) + 1)){
case 1:
hair = "blonde";
break;
case 2:
hair = "black";
break;
case 3:
hair = "brown";
break;
case 4:
hair = "red";
break;
case 5:
hair = "auburn";
break;
default:
hair = "grey";
};
}
public function itemLongName(_arg1:Number):String{
if (_arg1 == 1000){
return ("Heal Pill");
};
if (_arg1 == 1001){
return ("Equinum");
};
if (_arg1 == 1002){
return ("Incubi Draft");
};
if (_arg1 == 1003){
return ("Succubi Milk");
};
if (_arg1 == 1004){
return ("Canine Peppers");
};
if (_arg1 == 1005){
return ("Vitality Tincture");
};
if (_arg1 == 1006){
return ("Scholars Tea");
};
if (_arg1 == 1007){
return ("Cerulean Potion");
};
if (_arg1 == 1008){
return ("Purity Philter");
};
if (_arg1 == 1009){
return ("Numbing Oil");
};
if (_arg1 == 1010){
return ("Hummanus");
};
return ("ERROR");
}
public function dogAffinityChange(_arg1:Number):void{
_arg1 = (_arg1 / 20);
if (dogAffinity > 1.2){
_arg1 = (_arg1 / 1.5);
};
if (dogAffinity > 1.5){
_arg1 = (_arg1 / 2);
};
if (dogAffinity > 2){
_arg1 = (_arg1 / 2);
};
dogAffinity = (dogAffinity + _arg1);
trace((("Dogaffinity increased by " + _arg1) + "."));
}
public function purityPhilter():void{
outputMainText("You uncap the small silver vial and place it to your lips. Tilting your head back, you pour the cold tasteless liquid down your throat.\r\r", true);
if (cor < 20){
outputMainText("You shiver as your body is suffused with a cold, refreshing feeling. You feel much calmer than before.", false);
};
if ((((cor >= 20)) && ((cor < 60)))){
outputMainText("You break out into a cold sweat as the freezing liquid surges through your body. Dispite the discomfort, your thoughts do seem clearer.", false);
};
if ((((cor >= 60)) && ((cor < 100)))){
outputMainText("As the freezing liquid hits your stomach, you suddenly feel like your standing in a blizzard. Your hands and feet go numb, and even though you've never felt colder in your life, your covered in sweat. Eventually, you begin to feel more normal, and your thoughts definitely seem clearer.", false);
};
if (cor == 100){
outputMainText("As you swallow the liquid, you fall gasping to your knees. It feels like someone shoved an icecicle through your middle. You break out in a cold sweat as the sensation spreads, and you feel like your blood is freezing in your veins. Mercifully, you pass out.\r\rLater, when you wake up, the constant haze of lust that usually clouds your thoughts seems a bit thinner.", false);
};
stats(0, 0, 0, 0, -((10 - Math.floor((cor / 20)))), 0, -20, -20);
if (!debug){
clearItemSlot();
};
}
public function breastRatingSize(_arg1:Number):String{
if (_arg1 == 0){
return ("N/A");
};
if (_arg1 == 1){
return ("A");
};
if (_arg1 == 2){
return ("B");
};
if (_arg1 == 3){
return ("C");
};
if (_arg1 == 4){
return ("D");
};
if (_arg1 == 5){
return ("DD");
};
if (_arg1 == 6){
return ("E");
};
if (_arg1 == 7){
return ("F");
};
if (_arg1 == 8){
return ("G");
};
if (_arg1 == 9){
return ("H");
};
if (_arg1 == 10){
return ("HH");
};
trace("BreastRatingSize() ERROR. Did not receive suitable rating");
return ("ERROR");
}
public function lowerStr(_arg1:MouseEvent):void{
if ((((remSkillPoints < 16)) && ((tempStr > str)))){
remSkillPoints++;
tempStr--;
};
levelPaneRefresh();
}
public function dataButton(_arg1:MouseEvent):void{
if (str > 0){
choices("Save", 9000, "Load", 9007, "blah", 0, "Cancel", 3);
} else {
choices("Save", 9000, "Load", 9007, "blah", 0, "bleh", 0);
};
outputMainText("Save or Load a file?", true);
}
public function eCockDescript(_arg1:Number):String{
var _local2 = "";
var _local3:Boolean;
var _local4:Number = 0;
if (int(((Math.random() * 3) == 0))){
if (eCockLength < 5){
_local2 = "short ";
};
if ((((eCockLength >= 5)) && ((eCockLength < 7)))){
_local2 = "average ";
};
if ((((eCockLength >= 7)) && ((eCockLength < 9)))){
_local2 = "long ";
};
if ((((eCockLength >= 10)) && ((eCockLength < 13)))){
_local2 = "huge ";
};
if ((((eCockLength >= 13)) && ((eCockLength < 18)))){
_local2 = "massive ";
};
if ((((eCockLength >= 18)) && ((eCockLength < 30)))){
_local2 = "enormous ";
};
if (eCockLength >= 30){
_local2 = "towering ";
};
_local3 = true;
};
if (((int(((Math.random() * 2) == 0))) && (!(_local3)))){
if (eCockThickness <= 0.75){
_local2 = "narrow ";
};
if ((((eCockThickness > 1)) && ((eCockThickness <= 1.4)))){
_local2 = "ample ";
};
if ((((eCockThickness > 1.4)) && ((eCockThickness <= 2)))){
_local2 = "broad ";
};
if ((((eCockThickness > 2)) && ((eCockThickness <= 3.5)))){
_local2 = "fat ";
};
if (eCockThickness > 3.5){
_local2 = "distended ";
};
};
if (((!(eHorseCocks)) && (!(eDogCocks)))){
_local4 = int((Math.random() * 10));
if ((((_local4 >= 0)) && ((_local4 <= 4)))){
_local2 = (_local2 + "cock");
};
if ((((_local4 == 5)) || ((_local4 == 6)))){
_local2 = (_local2 + "prick");
};
if (_local4 == 7){
_local2 = (_local2 + "dick");
};
if (_local4 > 7){
_local2 = (_local2 + "shaft");
};
};
if (eHorseCocks){
_local4 = int((Math.random() * 6));
if (_local4 == 0){
_local2 = (_local2 + "horsecock");
};
if (_local4 == 1){
_local2 = (_local2 + "equin prick");
};
if (_local4 == 2){
_local2 = (_local2 + "horse-shaft");
};
if (_local4 == 3){
_local2 = (_local2 + "horse-prick");
};
if (_local4 == 4){
_local2 = (_local2 + "stallion-prick");
};
if (_local4 == 5){
_local2 = (_local2 + "equin dong");
};
};
if (eDogCocks){
_local4 = int((Math.random() * 11));
if (_local4 == 0){
_local2 = (_local2 + "doggie dong");
};
if (_local4 == 1){
_local2 = (_local2 + "canine shaft");
};
if (_local4 == 2){
_local2 = (_local2 + "bulbous prick");
};
if (_local4 == 3){
_local2 = (_local2 + "knotted shaft");
};
if (_local4 == 4){
_local2 = (_local2 + "dog-cock");
};
if (_local4 == 5){
_local2 = (_local2 + "puppy-pecker");
};
if (_local4 == 6){
_local2 = (_local2 + "dog-dick");
};
if (_local4 == 7){
_local2 = (_local2 + "bulbous shaft");
};
if (_local4 == 8){
_local2 = (_local2 + "canine cock");
};
if (_local4 == 9){
_local2 = (_local2 + "canine cock");
};
if (_local4 == 10){
_local2 = (_local2 + "knotted cock");
};
};
return (_local2);
}
public function horseDescript():String{
var _local1:Number = (baseCockLength * horseAffinity);
var _local2 = "";
if (int((Math.random() * 100)) > 60){
if (((((baseCockThickness * horseAffinity) > 1.5)) && ((baseCockThickness < 2.5)))){
_local2 = "thick ";
};
if (((((baseCockThickness * horseAffinity) >= 2.5)) && ((baseCockThickness < 3.5)))){
_local2 = "fat ";
};
if ((baseCockThickness * horseAffinity) >= 3.5){
_local2 = "meaty ";
};
};
if (int((Math.random() * 100)) > 60){
if (_local1 < 3){
_local2 = (_local2 + "mini ");
};
if ((((_local1 >= 3)) && ((_local1 < 5)))){
_local2 = (_local2 + "short ");
};
if ((((_local1 >= 5)) && ((_local1 < 7)))){
_local2 = (_local2 + "human-sized ");
};
if ((((_local1 >= 7)) && ((_local1 < 9)))){
_local2 = (_local2 + "pony-sized ");
};
if ((((_local1 >= 10)) && ((_local1 < 13)))){
_local2 = (_local2 + "");
};
if ((((_local1 >= 13)) && ((_local1 < 18)))){
_local2 = (_local2 + "large ");
};
if ((((_local1 >= 18)) && ((_local1 < 30)))){
_local2 = (_local2 + "massive ");
};
if (_local1 >= 30){
_local2 = (_local2 + "gigantic ");
};
};
_local1 = int((Math.random() * 6));
if (_local1 == 0){
_local2 = (_local2 + "horsecock");
};
if (_local1 == 1){
_local2 = (_local2 + "equin prick");
};
if (_local1 == 2){
_local2 = (_local2 + "horse-shaft");
};
if (_local1 == 3){
_local2 = (_local2 + "horse-prick");
};
if (_local1 == 4){
_local2 = (_local2 + "stallion-prick");
};
if (_local1 == 5){
_local2 = (_local2 + "equin dong");
};
return (_local2);
}
public function titForeplay():void{
var _local1:Number = (Math.round(((nippleLength + (baseCockLength / 2)) * 100)) / 100);
var _local2:String = nippleCockDescript(_local1);
if (breastRows == 1){
if (lib < 45){
outputMainText((("You caress your " + breastDescript()) + " gently with your fingers"), false);
};
if ((((lib >= 45)) && ((lib < 70)))){
outputMainText((("You grope your " + breastDescript()) + " agressively with both hands"), false);
};
if (lib >= 70){
outputMainText((("You squeeze your " + breastDescript()) + " brutally with both hands"), false);
};
} else {
if (breastRows > 1){
if (lib < 45){
outputMainText((("You hesitantly run your hands across your front, caressing each of your " + breastTotal) + " breasts in turn. "), false);
};
if ((((lib >= 45)) && ((lib < 70)))){
outputMainText((("You run your hands across your front, squeezing each of your " + breastTotal) + " breasts in turn. "), false);
};
if (lib >= 70){
outputMainText((("You aggressively run your hands across your front, groping each of your " + breastTotal) + " breasts in turn. "), false);
};
if (cor <= 25){
outputMainText("You blink back tears of shame as you experience the tactile proof of your abnormal endowments. Even so, you cannot help but ", false);
};
if ((((cor > 25)) && ((cor < 75)))){
outputMainText("Though a small part of you is horrified by your abnormal endowments, the rest of you revels in the sensations as you ", false);
};
if (cor >= 75){
outputMainText("The tactile reminder of your abnormal endowments gives you a delicious thrill. Reveling in your animalistic body, you ", false);
};
};
};
if (((!(nippleCocks)) && (!(nipplesFuckable)))){
if (breastRows == 1){
outputMainText(", emitting ", false);
};
if (breastRows > 1){
outputMainText(" emit ", false);
};
if (sen < 45){
outputMainText("soft gasps of pleasure each time you flick one of your ", false);
};
if ((((sen >= 45)) && ((sen < 70)))){
outputMainText("loud moans of pleasure each time you flick one of your ", false);
};
if (sen >= 70){
outputMainText("squeals of pleasure each time you flick one of your ", false);
};
if (nipplesPerBreast > 1){
outputMainText("many ", false);
};
if (nippleLength <= 1){
outputMainText("erect nipples. ", false);
};
if ((((nippleLength > 1)) && ((nippleLength < 4)))){
outputMainText("fat, puckered nipples. ", false);
};
if (nippleLength >= 4){
outputMainText("huge, swollen nipples. ", false);
};
if ((((lactationMultiplier > 0)) && ((lactationMultiplier < 2)))){
outputMainText("Droplets of milk dribble from each nipple, spattering milk onto your legs and crotch. ", false);
};
if ((((lactationMultiplier >= 2)) && ((lactationMultiplier < 3)))){
outputMainText("Thin squirts of milk spray from each nipple, spattering milk onto your legs and crotch. ", false);
};
if (lactationMultiplier >= 3){
outputMainText("A constant stream of milk drizzles from each teat, soaking your legs and crotch. ", false);
};
};
if (nippleCocks){
if (breastRows == 1){
outputMainText(". You ", false);
};
if (nipplesPerBreast == 1){
if (sen < 45){
outputMainText((((("gasp with pleasure as your " + _local2) + " nipplecocks suddenly thrust ") + _local1) + " inches forward out of your breasts"), false);
};
if ((((sen >= 45)) && ((sen < 70)))){
outputMainText((((("moan lewdly as your " + _local2) + " nipplecocks suddenly thrust ") + _local1) + " inches forward out of your breasts"), false);
};
if (sen >= 70){
outputMainText((((("shout with pleasure as your " + _local2) + " nipplecocks suddenly thrust ") + _local1) + " inches forward out of your breasts"), false);
};
} else {
if (nipplesPerBreast > 1){
if (sen < 45){
outputMainText((((((("gasp with pleasure as " + nipplesPerBreast) + " ") + _local2) + " nipplecocks suddenly thrust ") + _local1) + " inches forward out each breast"), false);
};
if ((((sen >= 45)) && ((sen < 70)))){
outputMainText((((((("moan lewdly as " + nipplesPerBreast) + " ") + _local2) + " nipplecocks suddenly thrust ") + _local1) + " inches forward out each breast"), false);
};
if (sen >= 70){
outputMainText((((((("shout with pleasure as " + nipplesPerBreast) + " ") + _local2) + " nipplecocks suddenly thrust ") + _local1) + " inches forward out each breast"), false);
};
};
};
if (_local1 >= 8){
outputMainText(", wobbling erotically as you shiver in delight. ", false);
} else {
outputMainText(". ", false);
};
if (lib < 45){
outputMainText("You begin to stroke them eagerly as your freakish nipples swell and harden. ", false);
};
if ((((lib >= 45)) && ((lib < 70)))){
outputMainText("You begin to stroke them languidly, enjoying thier turgid hardness. ", false);
};
if (lib >= 70){
outputMainText("You begin to stroke them teasingly, precum drooling from thier swollen tips. ", false);
};
if ((((lactationMultiplier > 0)) && ((lactationMultiplier < 2)))){
outputMainText("A combination of milk and precum drips from each turgid shaft, spattering milky goo onto your legs and crotch.", false);
};
if ((((lactationMultiplier >= 2)) && ((lactationMultiplier < 3)))){
outputMainText("A combination of milk and precum leaks from each tugid shaft, spattering milky goo onto your legs and crotch.", false);
};
if (lactationMultiplier >= 3){
outputMainText("A combination of milk and precum splurts from each turgid shaft, covering your legs and crotch with milky goo.", false);
};
};
if (nipplesFuckable){
if (breastRows > 1){
outputMainText("move your hands to your nipples", false);
};
if (lib < 60){
outputMainText(". Hesitantly, you rub your fingers across the ", false);
};
if (lib >= 60){
outputMainText(". Eagerly, you begin to roughly stroke the ", false);
};
if (vaginalLooseness < 2){
outputMainText("small, delicate openings at the tip of each nipple. ", false);
};
if ((((vaginalLooseness >= 2)) && ((vaginalLooseness < 4)))){
outputMainText("puckered holes at the tip of each nipple. ", false);
};
if ((((vaginalLooseness >= 4)) && ((nipplesPerBreast > 1)))){
outputMainText("many ", false);
};
if (vaginalLooseness >= 4){
outputMainText("swollen, cunt-like lips that top each breast. ", false);
};
if (sen < 45){
outputMainText("You sigh contentedly as ", false);
};
if ((((sen >= 45)) && ((sen < 70)))){
outputMainText("You moan lewdly as ", false);
};
if (sen >= 70){
outputMainText("You squeal with pleasure as ", false);
};
if (vaginalWetness < 2){
outputMainText("you feel your nipples loosen up. ", false);
};
if ((((vaginalWetness >= 2)) && ((vaginalWetness < 4)))){
outputMainText((("you begin to slowly spread the slippery secretions leaking from your engorged nipples all over your " + breastDescript()) + ". "), false);
};
if (vaginalWetness >= 4){
outputMainText("little spurts of ", false);
if (lactationMultiplier > 0){
outputMainText(" milky ", false);
};
outputMainText("girlcum squirt out of your engorged nipples. ", false);
};
if ((((lactationMultiplier > 0)) && ((lactationMultiplier < 2)))){
outputMainText("Your freakish mammaries drip a sticky combination of cunt-juice and milk, spattering your legs and crotch.", false);
};
if ((((lactationMultiplier >= 2)) && ((lactationMultiplier < 3)))){
outputMainText("Your freakish mammaries leak thin streams of sticky girlcum mixed with milk all over your legs and crotch.", false);
};
if (lactationMultiplier >= 3){
outputMainText("Your freakish mammaries constantly drool a steady stream of milky cunt-juice, drenching your legs and crotch in milky goo.", false);
};
};
}
public function desertButton(_arg1:MouseEvent):void{
mountainBox.visible = false;
mountainChoice.visible = false;
desertChoice.visible = false;
desertBox.visible = false;
forestChoice.visible = false;
forestBox.visible = false;
lakeChoice.visible = false;
lakeBox.visible = false;
dataBox.visible = false;
dataText.visible = false;
exploreDesert();
}
public function cuntChange(_arg1:Number, _arg2:Boolean):void{
var _local3:Number = (_arg1 - vaginalLooseness);
var _local4:Number = 0;
if (_local3 < 0){
return;
};
if (vaginalLooseness == 5){
return;
};
if (_local3 > 3){
_local4 = 200;
};
if (_local3 == 3){
_local4 = 100;
};
if (_local3 < 3){
_local4 = ((20 * _local3) + (20 - (vaginalLooseness * 5)));
};
if (vaginalLooseness == 0){
_local4 = 100;
};
if (rando(100) <= _local4){
trace((("CUNT STRETCHED TO " + (vaginalLooseness + 1)) + "."));
if (_arg2){
if (vaginalLooseness == 4){
outputMainText((("<b>Your " + vaginaDescript()) + " is stretched even further, capable of taking even the largest of demons and beasts.</b> "), false);
};
if (vaginalLooseness == 3){
outputMainText((("<b>Your " + vaginaDescript()) + " painfully stretches, gaping wide-open.</b> "), false);
};
if (vaginalLooseness == 2){
outputMainText((("<b>Your " + vaginaDescript()) + " is now very loose.</b> "), false);
};
if (vaginalLooseness == 1){
outputMainText((("<b>Your " + vaginaDescript()) + " is now loose.</b> "), false);
};
if (vaginalLooseness == 0){
outputMainText("<b>You are no longer a virgin.</b> ", false);
};
};
vaginalLooseness++;
if (_local4 == 200){
cuntChange((vaginalLooseness + 2), _arg2);
};
};
}
public function statDisplay():void{
statValuePane.htmlText = ((((((((((((((((((((("\r\r" + int(str)) + "\r") + int(tou)) + "\r") + int(spe)) + "\r") + int(inte)) + "\r") + int(lib)) + "\r") + int(sen)) + "\r") + int(cor)) + "\r\r\r") + int(HP)) + "\r") + int(lust)) + "\r\r\r") + int(exp)) + "\r") + int(level));
}
public function playerGrappleAttempt():void{
var _local1:Boolean;
var _local2:Boolean;
outputMainText("", true);
_local1 = false;
_local2 = false;
if (rando(2) == 0){
_local1 = true;
};
outputMainText((("You lunge forward, attempting to grapple to with " + eShort) + ". "), false);
if ((((((eTemperment == 0)) || ((((eTemperment == 1)) && ((elust < 50)))))) || ((((eTemperment == 2)) && (!(_local1)))))){
if (espe > (spe + 20)){
outputMainText((("Your efforts prove futile, as " + eShort) + " is far too fast for you. "), false);
};
if ((espe + 20) < spe){
outputMainText((("You easily catch " + eShort) + " and try to hold on! "), false);
_local2 = true;
};
if (((((espe + 20) >= spe)) && (((espe + 5) <= spe)))){
if (rando(4) != 0){
outputMainText((("Using your superior speed, you manage to snag hold of " + eShort) + ". "), false);
_local2 = true;
} else {
outputMainText((("Despite your superior speed, " + eShort) + " manages to evade you! "), false);
};
};
if (((((espe - 5) > spe)) && (((espe + 5) < spe)))){
if (rando(2) == 0){
outputMainText((("You try your best, and manage to catch hold of " + eShort) + ". "), false);
_local2 = true;
} else {
outputMainText((("You try, but fail, to catch hold of " + eShort) + ". "), false);
};
};
if (((((espe - 20) <= spe)) && (((espe - 5) >= spe)))){
if (rando(4) == 0){
outputMainText((("You barely manage to grab hold of " + eShort) + ", despite it's superior speed. "), false);
_local2 = true;
} else {
outputMainText((((("Getting a hold on " + eShort) + " proves harder than you thought, as ") + ePronoun2) + " is quicker than you. "), false);
};
};
if (((((str + rando(60)) > (espe + 20))) && (_local2))){
outputMainText((((("Clamping down hard, you hold on to " + eShort) + " as ") + ePronoun2) + " struggles in vain."), false);
grappling = true;
playerStartedGrapple = true;
} else {
if (_local2){
outputMainText((((("Your grip is broken by " + eShort) + " as ") + ePronoun2) + " squirms out of your grip!"), false);
};
};
} else {
outputMainText((("You close for a grapple and find " + eShort) + " eagerly welcomes your advance. The two of you quickly latch on to each other. "), false);
grappling = true;
playerStartedGrapple = true;
};
outputMainText("\r", false);
enemyAI();
}
public function hideButtons():void{
appearanceText.visible = false;
appearanceBox.visible = false;
dataBox.visible = false;
dataText.visible = false;
Choice1.visible = false;
Choice2.visible = false;
Choice3.visible = false;
Choice4.visible = false;
Choice1Outline.visible = false;
Choice2Outline.visible = false;
Choice3Outline.visible = false;
Choice4Outline.visible = false;
levelUp.visible = false;
levelText.visible = false;
levelBox.visible = false;
}
public function doDamage(_arg1:Number):void{
if ((eHP - _arg1) <= 0){
if (eLastStrike != 0){
doNext(eLastStrike);
} else {
doNext(winEvent);
};
};
eHP = (eHP - _arg1);
}
public function cumQuantity():Number{
if (cockTotal == 0){
return (0);
};
var _local1:Number = 3;
if (lib > 50){
_local1 = (_local1 * 1.3);
};
if (lust > 90){
_local1 = (_local1 * 1.25);
};
if (cor > 30){
_local1 = (_local1 * 1.1);
};
if (cor > 60){
_local1 = (_local1 * 1.15);
};
if (ballSize > 1){
_local1 = (_local1 * ((ballSize / 5) + 1));
};
if (balls > 2){
_local1 = (_local1 * ((balls / 5) + 1));
};
if (horseAffinity > 1.5){
_local1 = (_local1 * 1.25);
};
if (dogAffinity > 1.5){
_local1 = (_local1 * 1.3);
};
if (horseAffinity > 2){
_local1 = (_local1 * 1.2);
};
if (dogAffinity > 2){
_local1 = (_local1 * 1.3);
};
if (tou >= 40){
_local1 = (_local1 * 1.1);
};
if (tou >= 80){
_local1 = (_local1 * 1.15);
};
trace(("cumQuantity called, returned " + (int((_local1 * 10)) / 10)));
return ((int((_local1 * 10)) / 10));
}
public function vaginaDescript():String{
var _local1 = "";
var _local2:Number = 0;
if (vaginalLooseness == 0){
_local2 = 61;
};
if ((((vaginalLooseness == 4)) || ((vaginalLooseness == 5)))){
_local2 = 10;
};
if ((int((Math.random() * 100)) + _local2) > 60){
if (vaginalLooseness == 0){
_local1 = (_local1 + "virgin ");
};
if (vaginalLooseness == 2){
_local1 = (_local1 + "loose ");
};
if (vaginalLooseness == 3){
_local1 = (_local1 + "very loose ");
};
if (vaginalLooseness == 4){
_local1 = (_local1 + "gaping ");
};
if (vaginalLooseness == 5){
_local1 = (_local1 + "gaping-wide ");
};
};
if (int(((Math.random() * 100) > 70))){
if (vaginalWetness == 0){
_local1 = (_local1 + "dry ");
};
if (vaginalWetness == 2){
_local1 = (_local1 + "wet ");
};
if (vaginalWetness == 3){
_local1 = (_local1 + "slick ");
};
if (vaginalWetness == 4){
_local1 = (_local1 + "drooling ");
};
if (vaginalWetness == 5){
_local1 = (_local1 + "slavering ");
};
};
_local2 = int((Math.random() * 8));
if (_local2 == 0){
_local1 = (_local1 + "vagina");
};
if ((((((_local2 == 1)) || ((_local2 == 2)))) || ((_local2 == 6)))){
_local1 = (_local1 + "pussy");
};
if ((((((_local2 == 3)) || ((_local2 == 4)))) || ((_local2 == 5)))){
_local1 = (_local1 + "cunt");
};
if (_local2 == 7){
_local1 = (_local1 + "fuck-hole");
};
return (_local1);
}
public function allVaginaDescript():String{
if (vaginas == 1){
return (vaginaDescript());
};
if (vaginas > 1){
return ((vaginaDescript() + "s"));
};
return ("ERROR");
}
public function breastDescript():String{
var _local1:int = (Math.random() * 3);
var _local2 = "";
if (breastRating() <= 1){
return ("innocuous breasts");
};
if (rando(2) == 0){
if (breastRating() <= 3){
_local1 = rando(3);
if (_local1 == 0){
_local2 = (_local2 + "small ");
};
if (_local1 == 1){
_local2 = (_local2 + "little ");
};
if (_local1 == 2){
_local2 = (_local2 + "perky ");
};
};
if ((((breastRating() > 3)) && ((breastRating() <= 4)))){
_local2 = (_local2 + "ample ");
};
if ((((breastRating() > 4)) && ((breastRating() <= 6)))){
_local1 = rando(4);
if (_local1 == 0){
_local2 = (_local2 + "big ");
};
if (_local1 == 1){
_local2 = (_local2 + "large ");
};
if (_local1 == 2){
_local2 = (_local2 + "pillowy ");
};
if (_local1 == 3){
_local2 = (_local2 + "jiggly ");
};
};
if (breastRating() > 6){
_local1 = rando(4);
if (_local1 == 0){
_local2 = (_local2 + "massive ");
};
if (_local1 == 1){
_local2 = (_local2 + "enormous ");
};
if (_local1 == 2){
_local2 = (_local2 + "mountainous ");
};
if (_local1 == 3){
_local2 = (_local2 + "jiggling ");
};
};
};
_local1 = rando(10);
if (_local1 == 0){
_local2 = (_local2 + "breasts");
};
if (_local1 == 1){
if (lactationMultiplier > 2){
_local2 = (_local2 + "milk-udders");
} else {
_local2 = (_local2 + "breasts");
};
};
if (_local1 == 2){
if (breastRating() > 4){
_local2 = (_local2 + "tits");
} else {
_local2 = (_local2 + "breasts");
};
if (lactationMultiplier > 1.5){
_local2 = (_local2 + "milky tits");
};
};
if (_local1 == 3){
if (breastRating() > 6){
_local2 = (_local2 + "rack");
} else {
_local2 = (_local2 + "breasts");
};
};
if (_local1 == 4){
_local2 = (_local2 + "tits");
};
if (_local1 == 5){
_local2 = (_local2 + "tits");
};
if (_local1 == 6){
_local2 = (_local2 + "tits");
};
if (_local1 == 7){
if ((((lactationMultiplier >= 1)) && ((lactationMultiplier < 2.5)))){
_local2 = (_local2 + "milk jugs");
};
if (lactationMultiplier >= 2.5){
_local2 = (_local2 + "udders");
};
if (lactationMultiplier < 1){
_local2 = (_local2 + "jugs");
};
};
if (_local1 == 8){
if (breastRating() > 6){
_local2 = (_local2 + "love-pillows");
} else {
_local2 = (_local2 + "boobs");
};
};
if (_local1 == 9){
if (breastRating() > 6){
_local2 = (_local2 + "mounds");
} else {
_local2 = (_local2 + "breasts");
};
};
return (_local2);
}
}
}//package UTG_Combat_WIP_fla
Section 19
//downArrow (downArrow)
package {
import flash.display.*;
public dynamic class downArrow extends MovieClip {
}
}//package
Section 20
//focusRectSkin (focusRectSkin)
package {
import flash.display.*;
public dynamic class focusRectSkin extends MovieClip {
}
}//package
Section 21
//newGameButton (newGameButton)
package {
import flash.display.*;
public dynamic class newGameButton extends MovieClip {
}
}//package
Section 22
//ScrollArrowDown_disabledSkin (ScrollArrowDown_disabledSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowDown_disabledSkin extends MovieClip {
}
}//package
Section 23
//ScrollArrowDown_downSkin (ScrollArrowDown_downSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowDown_downSkin extends MovieClip {
}
}//package
Section 24
//ScrollArrowDown_overSkin (ScrollArrowDown_overSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowDown_overSkin extends MovieClip {
}
}//package
Section 25
//ScrollArrowDown_upSkin (ScrollArrowDown_upSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowDown_upSkin extends MovieClip {
}
}//package
Section 26
//ScrollArrowUp_disabledSkin (ScrollArrowUp_disabledSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowUp_disabledSkin extends MovieClip {
}
}//package
Section 27
//ScrollArrowUp_downSkin (ScrollArrowUp_downSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowUp_downSkin extends MovieClip {
}
}//package
Section 28
//ScrollArrowUp_overSkin (ScrollArrowUp_overSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowUp_overSkin extends MovieClip {
}
}//package
Section 29
//ScrollArrowUp_upSkin (ScrollArrowUp_upSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowUp_upSkin extends MovieClip {
}
}//package
Section 30
//ScrollBar_thumbIcon (ScrollBar_thumbIcon)
package {
import flash.display.*;
public dynamic class ScrollBar_thumbIcon extends MovieClip {
}
}//package
Section 31
//ScrollThumb_downSkin (ScrollThumb_downSkin)
package {
import flash.display.*;
public dynamic class ScrollThumb_downSkin extends MovieClip {
}
}//package
Section 32
//ScrollThumb_overSkin (ScrollThumb_overSkin)
package {
import flash.display.*;
public dynamic class ScrollThumb_overSkin extends MovieClip {
}
}//package
Section 33
//ScrollThumb_upSkin (ScrollThumb_upSkin)
package {
import flash.display.*;
public dynamic class ScrollThumb_upSkin extends MovieClip {
}
}//package
Section 34
//ScrollTrack_skin (ScrollTrack_skin)
package {
import flash.display.*;
public dynamic class ScrollTrack_skin extends MovieClip {
}
}//package
Section 35
//upArrow (upArrow)
package {
import flash.display.*;
public dynamic class upArrow extends MovieClip {
}
}//package