STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
229593
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2595 · P5190

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://swfchan.com:57475/71892241?noj=FRM71892241-21DC" width="1" height="1"></div>

1294313624.xadera_nimin_fetish_fantasy_v0.8.swf

This is the info page for
Flash #93902

(Click the ID number above for more basic data on this flash file.)


Text
New Game

<p align="center"><font face="Times New Roman" size="17" color="#000000" letterSpacing="0.000000" kerning="1"><b>New Game</b></font></p>

<p align="center"><font face="Times New Roman" size="24" color="#000000" letterSpacing="0.000000" kerning="1">Region</font></p>

<p align="left"><font face="Times New Roman" size="27" color="#000000" letterSpacing="0.000000" kerning="1">Appearance</font></p>

<p align="left"><font face="_typewriter" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Base Stats</font></p><p align="left"></p><p align="left"><font face="_typewriter" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Strength &nbsp;&nbsp;&nbsp;:</font></p><p align="left"><font face="_typewriter" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Mentality &nbsp;&nbsp;:</font></p><p align="left"><font face="_typewriter" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Libido &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</font></p><p align="left"><font face="_typewriter" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Sensitivity :</font></p><p align="left"></p><p align="left"><font face="_typewriter" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Combat Stats</font></p><p align="left"><font face="_typewriter" size="16" color="#000000" letterSpacing="0.000000" kerning="1">HP &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</font></p><p align="left"><font face="_typewriter" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Lust &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</font></p>

<p align="center"><font face="Times New Roman" size="12" color="#000000" letterSpacing="0.000000" kerning="1">Invert Colors</font></p>

<p align="center"><font face="Times New Roman" size="14" color="#000000" letterSpacing="0.000000" kerning="1">Current Region:</font></p>

<p align="left"><font face="_typewriter" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Level &nbsp;&nbsp;&nbsp;:</font></p><p align="left"><font face="_typewriter" size="16" color="#000000" letterSpacing="0.000000" kerning="1">SexP &nbsp;&nbsp;&nbsp;&nbsp;:</font></p><p align="left"><font face="_typewriter" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Coin &nbsp;&nbsp;&nbsp;&nbsp;:</font></p>

<p align="left"><font face="Times New Roman" size="14" color="#000000" letterSpacing="0.000000" kerning="1">Blah</font></p><p align="left"></p><p align="left"></p><p align="left"></p><p align="left"></p><p align="left"></p><p align="left"></p><p align="left"></p><p align="left"></p><p align="left"></p><p align="left"></p><p align="left"></p><p align="left"></p><p align="left"></p><p align="left"></p><p align="left"></p><p align="left"></p><p align="left"></p><p align="left"></p><p align="left"></p><p align="left"></p><p align="left"></p><p align="left"></p><p align="left"></p><p align="left"></p><p align="left"></p><p align="left"><font face="Times New Roman" size="14" color="#000000" letterSpacing="0.000000" kerning="1">Blah</font></p>

<p align="left"><font face="_typewriter" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Day :</font></p><p align="left"></p><p align="left"><font face="_typewriter" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Hour:</font></p>

<p align="left"></p>

<p align="center"><font face="Times New Roman" size="17" color="#000000" letterSpacing="0.000000" kerning="1">Text 1</font></p>

<p align="center"><font face="Times New Roman" size="17" color="#000000" letterSpacing="0.000000" kerning="1">Text 1</font></p>

<p align="center"><font face="Times New Roman" size="17" color="#000000" letterSpacing="0.000000" kerning="1">Text 1</font></p>

<p align="center"><font face="Times New Roman" size="17" color="#000000" letterSpacing="0.000000" kerning="1">Text 1</font></p>

<p align="center"><font face="Times New Roman" size="17" color="#000000" letterSpacing="0.000000" kerning="1">Text 1</font></p>

<p align="center"><font face="Times New Roman" size="17" color="#000000" letterSpacing="0.000000" kerning="1">Text 1</font></p>

<p align="center"><font face="Times New Roman" size="17" color="#000000" letterSpacing="0.000000" kerning="1">Text 1</font></p>

<p align="center"><font face="Times New Roman" size="17" color="#000000" letterSpacing="0.000000" kerning="1">Text 1</font></p>

<p align="center"><font face="Times New Roman" size="17" color="#000000" letterSpacing="0.000000" kerning="1">Text 1</font></p>

<p align="center"><font face="Times New Roman" size="17" color="#000000" letterSpacing="0.000000" kerning="1">Save Game</font></p>

<p align="center"><font face="Times New Roman" size="17" color="#000000" letterSpacing="0.000000" kerning="1">Load Game</font></p>

<p align="center"><font face="Times New Roman" size="17" color="#000000" letterSpacing="0.000000" kerning="1">Text 1</font></p>

<p align="center"><font face="Times New Roman" size="17" color="#000000" letterSpacing="0.000000" kerning="1">Text 1</font></p>

<p align="center"><font face="Times New Roman" size="17" color="#000000" letterSpacing="0.000000" kerning="1">Text 1</font></p>

<p align="left"><font face="_typewriter" size="16" color="#000000" letterSpacing="0.000000" kerning="1">:00</font></p>

<p align="left"></p>

<p align="left"></p>

ActionScript [AS3]

Section 1
//BaseButton (fl.controls.BaseButton) package fl.controls { import flash.display.*; import fl.core.*; import flash.events.*; import fl.events.*; import flash.utils.*; public class BaseButton extends UIComponent { protected var pressTimer:Timer; protected var _autoRepeat:Boolean;// = false protected var _selected:Boolean;// = false protected var background:DisplayObject; private var unlockedMouseState:String; protected var mouseState:String; private var _mouseStateLocked:Boolean;// = false private static var defaultStyles:Object = {upSkin:"Button_upSkin", downSkin:"Button_downSkin", overSkin:"Button_overSkin", disabledSkin:"Button_disabledSkin", selectedDisabledSkin:"Button_selectedDisabledSkin", selectedUpSkin:"Button_selectedUpSkin", selectedDownSkin:"Button_selectedDownSkin", selectedOverSkin:"Button_selectedOverSkin", focusRectSkin:null, focusRectPadding:null, repeatDelay:500, repeatInterval:35}; public function BaseButton(){ buttonMode = true; mouseChildren = false; useHandCursor = false; setupMouseEvents(); setMouseState("up"); pressTimer = new Timer(1, 0); pressTimer.addEventListener(TimerEvent.TIMER, buttonDown, false, 0, true); } override public function get enabled():Boolean{ return (super.enabled); } protected function startPress():void{ if (_autoRepeat){ pressTimer.delay = Number(getStyleValue("repeatDelay")); pressTimer.start(); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } protected function drawLayout():void{ background.width = width; background.height = height; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; mouseEnabled = _arg1; } public function set autoRepeat(_arg1:Boolean):void{ _autoRepeat = _arg1; } protected function mouseEventHandler(_arg1:MouseEvent):void{ if (_arg1.type == MouseEvent.MOUSE_DOWN){ setMouseState("down"); startPress(); } else { if ((((_arg1.type == MouseEvent.ROLL_OVER)) || ((_arg1.type == MouseEvent.MOUSE_UP)))){ setMouseState("over"); endPress(); } else { if (_arg1.type == MouseEvent.ROLL_OUT){ setMouseState("up"); endPress(); }; }; }; } protected function drawBackground():void{ var _local1:String = (enabled) ? mouseState : "disabled"; if (selected){ _local1 = (("selected" + _local1.substr(0, 1).toUpperCase()) + _local1.substr(1)); }; _local1 = (_local1 + "Skin"); var _local2:DisplayObject = background; background = getDisplayObjectInstance(getStyleValue(_local1)); addChildAt(background, 0); if (((!((_local2 == null))) && (!((_local2 == background))))){ removeChild(_local2); }; } public function get selected():Boolean{ return (_selected); } protected function setupMouseEvents():void{ addEventListener(MouseEvent.ROLL_OVER, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_UP, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.ROLL_OUT, mouseEventHandler, false, 0, true); } protected function endPress():void{ pressTimer.reset(); } public function set mouseStateLocked(_arg1:Boolean):void{ _mouseStateLocked = _arg1; if (_arg1 == false){ setMouseState(unlockedMouseState); } else { unlockedMouseState = mouseState; }; } public function get autoRepeat():Boolean{ return (_autoRepeat); } public function set selected(_arg1:Boolean):void{ if (_selected == _arg1){ return; }; _selected = _arg1; invalidate(InvalidationType.STATE); } protected function buttonDown(_arg1:TimerEvent):void{ if (!_autoRepeat){ endPress(); return; }; if (pressTimer.currentCount == 1){ pressTimer.delay = Number(getStyleValue("repeatInterval")); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } public function setMouseState(_arg1:String):void{ if (_mouseStateLocked){ unlockedMouseState = _arg1; return; }; if (mouseState == _arg1){ return; }; mouseState = _arg1; invalidate(InvalidationType.STATE); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 2
//Button (fl.controls.Button) package fl.controls { import flash.display.*; import fl.core.*; import fl.managers.*; public class Button extends LabelButton implements IFocusManagerComponent { protected var _emphasized:Boolean;// = false protected var emphasizedBorder:DisplayObject; private static var defaultStyles:Object = {emphasizedSkin:"Button_emphasizedSkin", emphasizedPadding:2}; public static var createAccessibilityImplementation:Function; public function set emphasized(_arg1:Boolean):void{ _emphasized = _arg1; invalidate(InvalidationType.STYLES); } override protected function initializeAccessibility():void{ if (Button.createAccessibilityImplementation != null){ Button.createAccessibilityImplementation(this); }; } protected function drawEmphasized():void{ var _local2:Number; if (emphasizedBorder != null){ removeChild(emphasizedBorder); }; emphasizedBorder = null; if (!_emphasized){ return; }; var _local1:Object = getStyleValue("emphasizedSkin"); if (_local1 != null){ emphasizedBorder = getDisplayObjectInstance(_local1); }; if (emphasizedBorder != null){ addChildAt(emphasizedBorder, 0); _local2 = Number(getStyleValue("emphasizedPadding")); emphasizedBorder.x = (emphasizedBorder.y = -(_local2)); emphasizedBorder.width = (width + (_local2 * 2)); emphasizedBorder.height = (height + (_local2 * 2)); }; } public function get emphasized():Boolean{ return (_emphasized); } override protected function draw():void{ if (((isInvalid(InvalidationType.STYLES)) || (isInvalid(InvalidationType.SIZE)))){ drawEmphasized(); }; super.draw(); if (emphasizedBorder != null){ setChildIndex(emphasizedBorder, (numChildren - 1)); }; } override public function drawFocus(_arg1:Boolean):void{ var _local2:Number; var _local3:*; super.drawFocus(_arg1); if (_arg1){ _local2 = Number(getStyleValue("emphasizedPadding")); if ((((_local2 < 0)) || (!(_emphasized)))){ _local2 = 0; }; _local3 = getStyleValue("focusRectPadding"); _local3 = ((_local3)==null) ? 2 : _local3; _local3 = (_local3 + _local2); uiFocusRect.x = -(_local3); uiFocusRect.y = -(_local3); uiFocusRect.width = (width + (_local3 * 2)); uiFocusRect.height = (height + (_local3 * 2)); }; } public static function getStyleDefinition():Object{ return (UIComponent.mergeStyles(LabelButton.getStyleDefinition(), defaultStyles)); } } }//package fl.controls
Section 3
//ButtonLabelPlacement (fl.controls.ButtonLabelPlacement) package fl.controls { public class ButtonLabelPlacement { public static const TOP:String = "top"; public static const LEFT:String = "left"; public static const BOTTOM:String = "bottom"; public static const RIGHT:String = "right"; } }//package fl.controls
Section 4
//LabelButton (fl.controls.LabelButton) package fl.controls { import flash.display.*; import fl.core.*; import flash.events.*; import fl.managers.*; import fl.events.*; import flash.text.*; import flash.ui.*; public class LabelButton extends BaseButton implements IFocusManagerComponent { protected var _toggle:Boolean;// = false public var textField:TextField; protected var mode:String;// = "center" protected var _labelPlacement:String;// = "right" protected var oldMouseState:String; protected var _label:String;// = "Label" protected var icon:DisplayObject; private static var defaultStyles:Object = {icon:null, upIcon:null, downIcon:null, overIcon:null, disabledIcon:null, selectedDisabledIcon:null, selectedUpIcon:null, selectedDownIcon:null, selectedOverIcon:null, textFormat:null, disabledTextFormat:null, textPadding:5, embedFonts:false}; public static var createAccessibilityImplementation:Function; override protected function draw():void{ if (textField.text != _label){ label = _label; }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); drawIcon(); drawTextFormat(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } override protected function drawLayout():void{ var _local7:Number; var _local8:Number; var _local1:Number = Number(getStyleValue("textPadding")); var _local2:String = ((((icon == null)) && ((mode == "center")))) ? ButtonLabelPlacement.TOP : _labelPlacement; textField.height = (textField.textHeight + 4); var _local3:Number = (textField.textWidth + 4); var _local4:Number = (textField.textHeight + 4); var _local5:Number = ((icon)==null) ? 0 : (icon.width + _local1); var _local6:Number = ((icon)==null) ? 0 : (icon.height + _local1); textField.visible = (label.length > 0); if (icon != null){ icon.x = Math.round(((width - icon.width) / 2)); icon.y = Math.round(((height - icon.height) / 2)); }; if (textField.visible == false){ textField.width = 0; textField.height = 0; } else { if ((((_local2 == ButtonLabelPlacement.BOTTOM)) || ((_local2 == ButtonLabelPlacement.TOP)))){ _local7 = Math.max(0, Math.min(_local3, (width - (2 * _local1)))); if ((height - 2) > _local4){ _local8 = _local4; } else { _local8 = (height - 2); }; _local3 = _local7; textField.width = _local3; _local4 = _local8; textField.height = _local4; textField.x = Math.round(((width - _local3) / 2)); textField.y = Math.round(((((height - textField.height) - _local6) / 2) + ((_local2)==ButtonLabelPlacement.BOTTOM) ? _local6 : 0)); if (icon != null){ icon.y = Math.round(((_local2)==ButtonLabelPlacement.BOTTOM) ? (textField.y - _local6) : ((textField.y + textField.height) + _local1)); }; } else { _local7 = Math.max(0, Math.min(_local3, ((width - _local5) - (2 * _local1)))); _local3 = _local7; textField.width = _local3; textField.x = Math.round(((((width - _local3) - _local5) / 2) + ((_local2)!=ButtonLabelPlacement.LEFT) ? _local5 : 0)); textField.y = Math.round(((height - textField.height) / 2)); if (icon != null){ icon.x = Math.round(((_local2)!=ButtonLabelPlacement.LEFT) ? (textField.x - _local5) : ((textField.x + _local3) + _local1)); }; }; }; super.drawLayout(); } protected function toggleSelected(_arg1:MouseEvent):void{ selected = !(selected); dispatchEvent(new Event(Event.CHANGE, true)); } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ setMouseState(oldMouseState); oldMouseState = null; endPress(); dispatchEvent(new MouseEvent(MouseEvent.CLICK)); }; } public function get labelPlacement():String{ return (_labelPlacement); } public function get toggle():Boolean{ return (_toggle); } protected function setEmbedFont(){ var _local1:Object = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } override public function get selected():Boolean{ return ((_toggle) ? _selected : false); } override protected function configUI():void{ super.configUI(); textField = new TextField(); textField.type = TextFieldType.DYNAMIC; textField.selectable = false; addChild(textField); } override protected function initializeAccessibility():void{ if (LabelButton.createAccessibilityImplementation != null){ LabelButton.createAccessibilityImplementation(this); }; } public function set labelPlacement(_arg1:String):void{ _labelPlacement = _arg1; invalidate(InvalidationType.SIZE); } protected function drawIcon():void{ var _local1:DisplayObject = icon; var _local2:String = (enabled) ? mouseState : "disabled"; if (selected){ _local2 = (("selected" + _local2.substr(0, 1).toUpperCase()) + _local2.substr(1)); }; _local2 = (_local2 + "Icon"); var _local3:Object = getStyleValue(_local2); if (_local3 == null){ _local3 = getStyleValue("icon"); }; if (_local3 != null){ icon = getDisplayObjectInstance(_local3); }; if (icon != null){ addChildAt(icon, 1); }; if (((!((_local1 == null))) && (!((_local1 == icon))))){ removeChild(_local1); }; } public function set label(_arg1:String):void{ _label = _arg1; if (textField.text != _label){ textField.text = _label; dispatchEvent(new ComponentEvent(ComponentEvent.LABEL_CHANGE)); }; invalidate(InvalidationType.SIZE); invalidate(InvalidationType.STYLES); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ if (oldMouseState == null){ oldMouseState = mouseState; }; setMouseState("down"); startPress(); }; } public function set toggle(_arg1:Boolean):void{ if (((!(_arg1)) && (super.selected))){ selected = false; }; _toggle = _arg1; if (_toggle){ addEventListener(MouseEvent.CLICK, toggleSelected, false, 0, true); } else { removeEventListener(MouseEvent.CLICK, toggleSelected); }; invalidate(InvalidationType.STATE); } override public function set selected(_arg1:Boolean):void{ _selected = _arg1; if (_toggle){ invalidate(InvalidationType.STATE); }; } protected function drawTextFormat():void{ var _local1:Object = UIComponent.getStyleDefinition(); var _local2:TextFormat = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); var _local3:TextFormat = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); } public function get label():String{ return (_label); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseButton.getStyleDefinition())); } } }//package fl.controls
Section 5
//ScrollBar (fl.controls.ScrollBar) package fl.controls { import fl.core.*; import flash.events.*; import fl.events.*; public class ScrollBar extends UIComponent { private var _direction:String;// = "vertical" private var _minScrollPosition:Number;// = 0 private var _pageSize:Number;// = 10 private var _maxScrollPosition:Number;// = 0 protected var downArrow:BaseButton; private var _lineScrollSize:Number;// = 1 protected var upArrow:BaseButton; private var _scrollPosition:Number;// = 0 private var thumbScrollOffset:Number; protected var track:BaseButton; protected var thumb:LabelButton; protected var inDrag:Boolean;// = false private var _pageScrollSize:Number;// = 0 protected static const THUMB_STYLES:Object = {disabledSkin:"thumbDisabledSkin", downSkin:"thumbDownSkin", overSkin:"thumbOverSkin", upSkin:"thumbUpSkin", icon:"thumbIcon", textPadding:0}; public static const WIDTH:Number = 15; protected static const DOWN_ARROW_STYLES:Object = {disabledSkin:"downArrowDisabledSkin", downSkin:"downArrowDownSkin", overSkin:"downArrowOverSkin", upSkin:"downArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const UP_ARROW_STYLES:Object = {disabledSkin:"upArrowDisabledSkin", downSkin:"upArrowDownSkin", overSkin:"upArrowOverSkin", upSkin:"upArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const TRACK_STYLES:Object = {disabledSkin:"trackDisabledSkin", downSkin:"trackDownSkin", overSkin:"trackOverSkin", upSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {downArrowDisabledSkin:"ScrollArrowDown_disabledSkin", downArrowDownSkin:"ScrollArrowDown_downSkin", downArrowOverSkin:"ScrollArrowDown_overSkin", downArrowUpSkin:"ScrollArrowDown_upSkin", thumbDisabledSkin:"ScrollThumb_upSkin", thumbDownSkin:"ScrollThumb_downSkin", thumbOverSkin:"ScrollThumb_overSkin", thumbUpSkin:"ScrollThumb_upSkin", trackDisabledSkin:"ScrollTrack_skin", trackDownSkin:"ScrollTrack_skin", trackOverSkin:"ScrollTrack_skin", trackUpSkin:"ScrollTrack_skin", upArrowDisabledSkin:"ScrollArrowUp_disabledSkin", upArrowDownSkin:"ScrollArrowUp_downSkin", upArrowOverSkin:"ScrollArrowUp_overSkin", upArrowUpSkin:"ScrollArrowUp_upSkin", thumbIcon:"ScrollBar_thumbIcon", repeatDelay:500, repeatInterval:35}; public function ScrollBar(){ setStyles(); focusEnabled = false; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; downArrow.enabled = (track.enabled = (thumb.enabled = (upArrow.enabled = ((enabled) && ((_maxScrollPosition > _minScrollPosition)))))); updateThumb(); } override public function setSize(_arg1:Number, _arg2:Number):void{ if (_direction == ScrollBarDirection.HORIZONTAL){ super.setSize(_arg2, _arg1); } else { super.setSize(_arg1, _arg2); }; } public function set lineScrollSize(_arg1:Number):void{ if (_arg1 > 0){ _lineScrollSize = _arg1; }; } public function get minScrollPosition():Number{ return (_minScrollPosition); } protected function updateThumb():void{ var _local1:Number = ((_maxScrollPosition - _minScrollPosition) + _pageSize); if ((((((track.height <= 12)) || ((_maxScrollPosition <= _minScrollPosition)))) || ((((_local1 == 0)) || (isNaN(_local1)))))){ thumb.height = 12; thumb.visible = false; } else { thumb.height = Math.max(13, ((_pageSize / _local1) * track.height)); thumb.y = (track.y + ((track.height - thumb.height) * ((_scrollPosition - _minScrollPosition) / (_maxScrollPosition - _minScrollPosition)))); thumb.visible = enabled; }; } public function set minScrollPosition(_arg1:Number):void{ setScrollProperties(_pageSize, _arg1, _maxScrollPosition); } public function get lineScrollSize():Number{ return (_lineScrollSize); } public function setScrollPosition(_arg1:Number, _arg2:Boolean=true):void{ var _local3:Number = scrollPosition; _scrollPosition = Math.max(_minScrollPosition, Math.min(_maxScrollPosition, _arg1)); if (_local3 == _scrollPosition){ return; }; if (_arg2){ dispatchEvent(new ScrollEvent(_direction, (scrollPosition - _local3), scrollPosition)); }; updateThumb(); } public function get maxScrollPosition():Number{ return (_maxScrollPosition); } public function get scrollPosition():Number{ return (_scrollPosition); } override public function get height():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.width : super.height); } public function get pageSize():Number{ return (_pageSize); } public function set maxScrollPosition(_arg1:Number):void{ setScrollProperties(_pageSize, _minScrollPosition, _arg1); } protected function thumbReleaseHandler(_arg1:MouseEvent):void{ inDrag = false; mouseChildren = true; thumb.mouseStateLocked = false; stage.removeEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag); stage.removeEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler); } public function set pageScrollSize(_arg1:Number):void{ if (_arg1 >= 0){ _pageScrollSize = _arg1; }; } public function set scrollPosition(_arg1:Number):void{ setScrollPosition(_arg1, true); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ var _local1:Number; if (isInvalid(InvalidationType.SIZE)){ _local1 = super.height; downArrow.move(0, Math.max(upArrow.height, (_local1 - downArrow.height))); track.setSize(WIDTH, Math.max(0, (_local1 - (downArrow.height + upArrow.height)))); updateThumb(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ setStyles(); }; downArrow.drawNow(); upArrow.drawNow(); track.drawNow(); thumb.drawNow(); validate(); } override public function get width():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.height : super.width); } override protected function configUI():void{ super.configUI(); track = new BaseButton(); track.move(0, 14); track.useHandCursor = false; track.autoRepeat = true; track.focusEnabled = false; addChild(track); thumb = new LabelButton(); thumb.label = ""; thumb.setSize(WIDTH, 15); thumb.move(0, 15); thumb.focusEnabled = false; addChild(thumb); downArrow = new BaseButton(); downArrow.setSize(WIDTH, 14); downArrow.autoRepeat = true; downArrow.focusEnabled = false; addChild(downArrow); upArrow = new BaseButton(); upArrow.setSize(WIDTH, 14); upArrow.move(0, 0); upArrow.autoRepeat = true; upArrow.focusEnabled = false; addChild(upArrow); upArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); downArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); track.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); thumb.addEventListener(MouseEvent.MOUSE_DOWN, thumbPressHandler, false, 0, true); enabled = false; } public function set pageSize(_arg1:Number):void{ if (_arg1 > 0){ _pageSize = _arg1; }; } public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0):void{ this.pageSize = _arg1; _minScrollPosition = _arg2; _maxScrollPosition = _arg3; if (_arg4 >= 0){ _pageScrollSize = _arg4; }; enabled = (_maxScrollPosition > _minScrollPosition); setScrollPosition(_scrollPosition, false); updateThumb(); } public function get pageScrollSize():Number{ return (((_pageScrollSize)==0) ? _pageSize : _pageScrollSize); } protected function handleThumbDrag(_arg1:MouseEvent):void{ var _local2:Number = Math.max(0, Math.min((track.height - thumb.height), ((mouseY - track.y) - thumbScrollOffset))); setScrollPosition((((_local2 / (track.height - thumb.height)) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition)); } protected function setStyles():void{ copyStylesToChild(downArrow, DOWN_ARROW_STYLES); copyStylesToChild(thumb, THUMB_STYLES); copyStylesToChild(track, TRACK_STYLES); copyStylesToChild(upArrow, UP_ARROW_STYLES); } protected function scrollPressHandler(_arg1:ComponentEvent):void{ var _local2:Number; var _local3:Number; _arg1.stopImmediatePropagation(); if (_arg1.currentTarget == upArrow){ setScrollPosition((_scrollPosition - _lineScrollSize)); } else { if (_arg1.currentTarget == downArrow){ setScrollPosition((_scrollPosition + _lineScrollSize)); } else { _local2 = (((track.mouseY / track.height) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition); _local3 = ((pageScrollSize)==0) ? pageSize : pageScrollSize; if (_scrollPosition < _local2){ setScrollPosition(Math.min(_local2, (_scrollPosition + _local3))); } else { if (_scrollPosition > _local2){ setScrollPosition(Math.max(_local2, (_scrollPosition - _local3))); }; }; }; }; } protected function thumbPressHandler(_arg1:MouseEvent):void{ inDrag = true; thumbScrollOffset = (mouseY - thumb.y); thumb.mouseStateLocked = true; mouseChildren = false; stage.addEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler, false, 0, true); } public function set direction(_arg1:String):void{ if (_direction == _arg1){ return; }; _direction = _arg1; if (isLivePreview){ return; }; setScaleY(1); var _local2 = (_direction == ScrollBarDirection.HORIZONTAL); if (((_local2) && (componentInspectorSetting))){ if (rotation == 90){ return; }; setScaleX(-1); rotation = -90; }; if (!componentInspectorSetting){ if (((_local2) && ((rotation == 0)))){ rotation = -90; setScaleX(-1); } else { if (((!(_local2)) && ((rotation == -90)))){ rotation = 0; setScaleX(1); }; }; }; invalidate(InvalidationType.SIZE); } public function get direction():String{ return (_direction); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 6
//ScrollBarDirection (fl.controls.ScrollBarDirection) package fl.controls { public class ScrollBarDirection { public static const HORIZONTAL:String = "horizontal"; public static const VERTICAL:String = "vertical"; } }//package fl.controls
Section 7
//UIScrollBar (fl.controls.UIScrollBar) package fl.controls { import fl.core.*; import flash.events.*; import fl.events.*; import flash.text.*; public class UIScrollBar extends ScrollBar { protected var inEdit:Boolean;// = false protected var inScroll:Boolean;// = false protected var _scrollTarget:TextField; private static var defaultStyles:Object = {}; protected function updateScrollTargetProperties():void{ var _local1:Boolean; var _local2:Number; if (_scrollTarget == null){ setScrollProperties(pageSize, minScrollPosition, maxScrollPosition, pageScrollSize); scrollPosition = 0; } else { _local1 = (direction == ScrollBarDirection.HORIZONTAL); _local2 = (_local1) ? _scrollTarget.width : 10; setScrollProperties(_local2, (_local1) ? 0 : 1, (_local1) ? _scrollTarget.maxScrollH : _scrollTarget.maxScrollV, pageScrollSize); scrollPosition = (_local1) ? _scrollTarget.scrollH : _scrollTarget.scrollV; }; } override public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0):void{ var _local5:Number = _arg3; var _local6:Number = ((_arg2)<0) ? 0 : _arg2; if (_scrollTarget != null){ if (direction == ScrollBarDirection.HORIZONTAL){ _local5 = ((_arg3)>_scrollTarget.maxScrollH) ? _scrollTarget.maxScrollH : _local5; } else { _local5 = ((_arg3)>_scrollTarget.maxScrollV) ? _scrollTarget.maxScrollV : _local5; }; }; super.setScrollProperties(_arg1, _local6, _local5, _arg4); } protected function handleTargetScroll(_arg1:Event):void{ if (inDrag){ return; }; if (!enabled){ return; }; inEdit = true; updateScrollTargetProperties(); scrollPosition = ((direction)==ScrollBarDirection.HORIZONTAL) ? _scrollTarget.scrollH : _scrollTarget.scrollV; inEdit = false; } override public function setScrollPosition(_arg1:Number, _arg2:Boolean=true):void{ super.setScrollPosition(_arg1, _arg2); if (!_scrollTarget){ inScroll = false; return; }; updateTargetScroll(); } public function get scrollTargetName():String{ return (_scrollTarget.name); } override protected function draw():void{ if (isInvalid(InvalidationType.DATA)){ updateScrollTargetProperties(); }; super.draw(); } override public function set direction(_arg1:String):void{ if (isLivePreview){ return; }; super.direction = _arg1; updateScrollTargetProperties(); } protected function updateTargetScroll(_arg1:ScrollEvent=null):void{ if (inEdit){ return; }; if (direction == ScrollBarDirection.HORIZONTAL){ _scrollTarget.scrollH = scrollPosition; } else { _scrollTarget.scrollV = scrollPosition; }; } override public function set minScrollPosition(_arg1:Number):void{ super.minScrollPosition = ((_arg1)<0) ? 0 : _arg1; } override public function set maxScrollPosition(_arg1:Number):void{ var _local2:Number = _arg1; if (_scrollTarget != null){ if (direction == ScrollBarDirection.HORIZONTAL){ _local2 = ((_local2)>_scrollTarget.maxScrollH) ? _scrollTarget.maxScrollH : _local2; } else { _local2 = ((_local2)>_scrollTarget.maxScrollV) ? _scrollTarget.maxScrollV : _local2; }; }; super.maxScrollPosition = _local2; } protected function handleTargetChange(_arg1:Event):void{ inEdit = true; setScrollPosition(((direction)==ScrollBarDirection.HORIZONTAL) ? _scrollTarget.scrollH : _scrollTarget.scrollV, true); updateScrollTargetProperties(); inEdit = false; } public function update():void{ inEdit = true; updateScrollTargetProperties(); inEdit = false; } public function set scrollTargetName(_arg1:String):void{ var target = _arg1; try { scrollTarget = (parent.getChildByName(target) as TextField); } catch(error:Error) { throw (new Error("ScrollTarget not found, or is not a TextField")); }; } public function set scrollTarget(_arg1:TextField):void{ if (_scrollTarget != null){ _scrollTarget.removeEventListener(Event.CHANGE, handleTargetChange, false); _scrollTarget.removeEventListener(TextEvent.TEXT_INPUT, handleTargetChange, false); _scrollTarget.removeEventListener(Event.SCROLL, handleTargetScroll, false); removeEventListener(ScrollEvent.SCROLL, updateTargetScroll, false); }; _scrollTarget = _arg1; if (_scrollTarget != null){ _scrollTarget.addEventListener(Event.CHANGE, handleTargetChange, false, 0, true); _scrollTarget.addEventListener(TextEvent.TEXT_INPUT, handleTargetChange, false, 0, true); _scrollTarget.addEventListener(Event.SCROLL, handleTargetScroll, false, 0, true); addEventListener(ScrollEvent.SCROLL, updateTargetScroll, false, 0, true); }; invalidate(InvalidationType.DATA); } public function get scrollTarget():TextField{ return (_scrollTarget); } override public function get direction():String{ return (super.direction); } public static function getStyleDefinition():Object{ return (UIComponent.mergeStyles(defaultStyles, ScrollBar.getStyleDefinition())); } } }//package fl.controls
Section 8
//ComponentShim (fl.core.ComponentShim) package fl.core { import flash.display.*; public dynamic class ComponentShim extends MovieClip { } }//package fl.core
Section 9
//InvalidationType (fl.core.InvalidationType) package fl.core { public class InvalidationType { public static const SIZE:String = "size"; public static const ALL:String = "all"; public static const DATA:String = "data"; public static const SCROLL:String = "scroll"; public static const STATE:String = "state"; public static const STYLES:String = "styles"; public static const SELECTED:String = "selected"; public static const RENDERER_STYLES:String = "rendererStyles"; } }//package fl.core
Section 10
//UIComponent (fl.core.UIComponent) package fl.core { import flash.display.*; import flash.events.*; import fl.managers.*; import fl.events.*; import flash.text.*; import flash.utils.*; import flash.system.*; public class UIComponent extends Sprite { protected var _x:Number; protected var _enabled:Boolean;// = true protected var callLaterMethods:Dictionary; private var _mouseFocusEnabled:Boolean;// = true private var tempText:TextField; private var _focusEnabled:Boolean;// = true protected var startHeight:Number; protected var _height:Number; protected var invalidateFlag:Boolean;// = false protected var _oldIMEMode:String;// = null protected var _inspector:Boolean;// = false protected var startWidth:Number; public var focusTarget:IFocusManagerComponent; protected var errorCaught:Boolean;// = false protected var invalidHash:Object; protected var sharedStyles:Object; protected var uiFocusRect:DisplayObject; protected var isLivePreview:Boolean;// = false protected var _imeMode:String;// = null protected var _width:Number; protected var instanceStyles:Object; public var version:String;// = "3.0.0.16" protected var isFocused:Boolean;// = false protected var _y:Number; public static var inCallLaterPhase:Boolean = false; private static var defaultStyles:Object = {focusRectSkin:"focusRectSkin", focusRectPadding:2, textFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), disabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultTextFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultDisabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0)}; public static var createAccessibilityImplementation:Function; private static var focusManagers:Dictionary = new Dictionary(false); public function UIComponent(){ instanceStyles = {}; sharedStyles = {}; invalidHash = {}; callLaterMethods = new Dictionary(); StyleManager.registerInstance(this); configUI(); invalidate(InvalidationType.ALL); tabEnabled = (this is IFocusManagerComponent); focusRect = false; if (tabEnabled){ addEventListener(FocusEvent.FOCUS_IN, focusInHandler); addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler); addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); addEventListener(KeyboardEvent.KEY_UP, keyUpHandler); }; initializeFocusManager(); addEventListener(Event.ENTER_FRAME, hookAccessibility, false, 0, true); } public function getStyle(_arg1:String):Object{ return (instanceStyles[_arg1]); } protected function checkLivePreview():Boolean{ var className:String; if (parent == null){ return (false); }; try { className = getQualifiedClassName(parent); } catch(e:Error) { }; return ((className == "fl.livepreview::LivePreviewParent")); } private function callLaterDispatcher(_arg1:Event):void{ var _local3:Object; if (_arg1.type == Event.ADDED_TO_STAGE){ removeEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher); stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); return; }; _arg1.target.removeEventListener(Event.RENDER, callLaterDispatcher); if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); return; }; inCallLaterPhase = true; var _local2:Dictionary = callLaterMethods; for (_local3 in _local2) { _local3(); delete _local2[_local3]; }; inCallLaterPhase = false; } protected function validate():void{ invalidHash = {}; } protected function focusOutHandler(_arg1:FocusEvent):void{ if (isOurFocus((_arg1.target as DisplayObject))){ drawFocus(false); isFocused = false; }; } public function set mouseFocusEnabled(_arg1:Boolean):void{ _mouseFocusEnabled = _arg1; } public function getFocus():InteractiveObject{ if (stage){ return (stage.focus); }; return (null); } override public function get height():Number{ return (_height); } private function addedHandler(_arg1:Event):void{ removeEventListener("addedToStage", addedHandler); initializeFocusManager(); } protected function getStyleValue(_arg1:String):Object{ return (((instanceStyles[_arg1])==null) ? sharedStyles[_arg1] : instanceStyles[_arg1]); } public function invalidate(_arg1:String="all", _arg2:Boolean=true):void{ invalidHash[_arg1] = true; if (_arg2){ this.callLater(draw); }; } protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((_arg1 == this)); } public function get enabled():Boolean{ return (_enabled); } protected function getScaleX():Number{ return (super.scaleX); } protected function getScaleY():Number{ return (super.scaleY); } public function get focusEnabled():Boolean{ return (_focusEnabled); } protected function afterComponentParameters():void{ } override public function get scaleY():Number{ return ((height / startHeight)); } protected function setIMEMode(_arg1:Boolean){ var enabled = _arg1; if (_imeMode != null){ if (enabled){ IME.enabled = true; _oldIMEMode = IME.conversionMode; try { if (((!(errorCaught)) && (!((IME.conversionMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _imeMode; }; errorCaught = false; } catch(e:Error) { errorCaught = true; throw (new Error(("IME mode not supported: " + _imeMode))); }; } else { if (((!((IME.conversionMode == IMEConversionMode.UNKNOWN))) && (!((_oldIMEMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _oldIMEMode; }; IME.enabled = false; }; }; } protected function draw():void{ if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } override public function set height(_arg1:Number):void{ if (_height == _arg1){ return; }; setSize(width, _arg1); } protected function configUI():void{ isLivePreview = checkLivePreview(); var _local1:Number = rotation; rotation = 0; var _local2:Number = super.width; var _local3:Number = super.height; var _local4 = 1; super.scaleY = _local4; super.scaleX = _local4; setSize(_local2, _local3); move(super.x, super.y); rotation = _local1; startWidth = _local2; startHeight = _local3; if (numChildren > 0){ removeChildAt(0); }; } protected function setScaleY(_arg1:Number):void{ super.scaleY = _arg1; } override public function get scaleX():Number{ return ((width / startWidth)); } protected function setScaleX(_arg1:Number):void{ super.scaleX = _arg1; } private function initializeFocusManager():void{ if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, addedHandler, false, 0, true); } else { createFocusManager(); }; } protected function keyDownHandler(_arg1:KeyboardEvent):void{ } public function set focusManager(_arg1:IFocusManager):void{ UIComponent.focusManagers[this] = _arg1; } public function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } protected function isInvalid(_arg1:String, ... _args):Boolean{ if (((invalidHash[_arg1]) || (invalidHash[InvalidationType.ALL]))){ return (true); }; while (_args.length > 0) { if (invalidHash[_args.pop()]){ return (true); }; }; return (false); } public function setStyle(_arg1:String, _arg2:Object):void{ if ((((instanceStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; instanceStyles[_arg1] = _arg2; invalidate(InvalidationType.STYLES); } override public function get visible():Boolean{ return (super.visible); } protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; if (isOurFocus((_arg1.target as DisplayObject))){ _local2 = focusManager; if (((_local2) && (_local2.showFocusIndicator))){ drawFocus(true); isFocused = true; }; }; } public function get componentInspectorSetting():Boolean{ return (_inspector); } override public function get x():Number{ return ((isNaN(_x)) ? super.x : _x); } override public function get y():Number{ return ((isNaN(_y)) ? super.y : _y); } public function set enabled(_arg1:Boolean):void{ if (_arg1 == _enabled){ return; }; _enabled = _arg1; invalidate(InvalidationType.STATE); } public function setSize(_arg1:Number, _arg2:Number):void{ _width = _arg1; _height = _arg2; invalidate(InvalidationType.SIZE); dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, false)); } protected function keyUpHandler(_arg1:KeyboardEvent):void{ } public function setSharedStyle(_arg1:String, _arg2:Object):void{ if ((((sharedStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; sharedStyles[_arg1] = _arg2; if (instanceStyles[_arg1] == null){ invalidate(InvalidationType.STYLES); }; } public function set focusEnabled(_arg1:Boolean):void{ _focusEnabled = _arg1; } override public function set width(_arg1:Number):void{ if (_width == _arg1){ return; }; setSize(_arg1, height); } public function setFocus():void{ if (stage){ stage.focus = this; }; } override public function set scaleX(_arg1:Number):void{ setSize((startWidth * _arg1), height); } public function get mouseFocusEnabled():Boolean{ return (_mouseFocusEnabled); } override public function set scaleY(_arg1:Number):void{ setSize(width, (startHeight * _arg1)); } protected function getDisplayObjectInstance(_arg1:Object):DisplayObject{ var skin = _arg1; var classDef:Object; if ((skin is Class)){ return ((new (skin) as DisplayObject)); }; if ((skin is DisplayObject)){ (skin as DisplayObject).x = 0; (skin as DisplayObject).y = 0; return ((skin as DisplayObject)); }; try { classDef = getDefinitionByName(skin.toString()); } catch(e:Error) { try { classDef = (loaderInfo.applicationDomain.getDefinition(skin.toString()) as Object); } catch(e:Error) { }; }; if (classDef == null){ return (null); }; return ((new (classDef) as DisplayObject)); } protected function copyStylesToChild(_arg1:UIComponent, _arg2:Object):void{ var _local3:String; for (_local3 in _arg2) { _arg1.setStyle(_local3, getStyleValue(_arg2[_local3])); }; } protected function initializeAccessibility():void{ if (UIComponent.createAccessibilityImplementation != null){ UIComponent.createAccessibilityImplementation(this); }; } public function get focusManager():IFocusManager{ var _local1:DisplayObject = this; while (_local1) { if (UIComponent.focusManagers[_local1] != null){ return (IFocusManager(UIComponent.focusManagers[_local1])); }; _local1 = _local1.parent; }; return (null); } override public function get width():Number{ return (_width); } protected function beforeComponentParameters():void{ } protected function callLater(_arg1:Function):void{ if (inCallLaterPhase){ return; }; callLaterMethods[_arg1] = true; if (stage != null){ stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); } else { addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); }; } public function move(_arg1:Number, _arg2:Number):void{ _x = _arg1; _y = _arg2; super.x = Math.round(_arg1); super.y = Math.round(_arg2); dispatchEvent(new ComponentEvent(ComponentEvent.MOVE)); } public function validateNow():void{ invalidate(InvalidationType.ALL, false); draw(); } override public function set visible(_arg1:Boolean):void{ if (super.visible == _arg1){ return; }; super.visible = _arg1; var _local2:String = (_arg1) ? ComponentEvent.SHOW : ComponentEvent.HIDE; dispatchEvent(new ComponentEvent(_local2, true)); } protected function createFocusManager():void{ if (focusManagers[stage] == null){ focusManagers[stage] = new FocusManager(stage); }; } protected function hookAccessibility(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, hookAccessibility); initializeAccessibility(); } public function set componentInspectorSetting(_arg1:Boolean):void{ _inspector = _arg1; if (_inspector){ beforeComponentParameters(); } else { afterComponentParameters(); }; } override public function set y(_arg1:Number):void{ move(_x, _arg1); } public function drawFocus(_arg1:Boolean):void{ var _local2:Number; isFocused = _arg1; if (((!((uiFocusRect == null))) && (contains(uiFocusRect)))){ removeChild(uiFocusRect); uiFocusRect = null; }; if (_arg1){ uiFocusRect = (getDisplayObjectInstance(getStyleValue("focusRectSkin")) as Sprite); if (uiFocusRect == null){ return; }; _local2 = Number(getStyleValue("focusRectPadding")); uiFocusRect.x = -(_local2); uiFocusRect.y = -(_local2); uiFocusRect.width = (width + (_local2 * 2)); uiFocusRect.height = (height + (_local2 * 2)); addChildAt(uiFocusRect, 0); }; } override public function set x(_arg1:Number):void{ move(_arg1, _y); } public function drawNow():void{ draw(); } public static function getStyleDefinition():Object{ return (defaultStyles); } public static function mergeStyles(... _args):Object{ var _local5:Object; var _local6:String; var _local2:Object = {}; var _local3:uint = _args.length; var _local4:uint; while (_local4 < _local3) { _local5 = _args[_local4]; for (_local6 in _local5) { if (_local2[_local6] != null){ } else { _local2[_local6] = _args[_local4][_local6]; }; }; _local4++; }; return (_local2); } } }//package fl.core
Section 11
//ComponentEvent (fl.events.ComponentEvent) package fl.events { import flash.events.*; public class ComponentEvent extends Event { public static const HIDE:String = "hide"; public static const BUTTON_DOWN:String = "buttonDown"; public static const MOVE:String = "move"; public static const RESIZE:String = "resize"; public static const ENTER:String = "enter"; public static const LABEL_CHANGE:String = "labelChange"; public static const SHOW:String = "show"; public function ComponentEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("ComponentEvent", "type", "bubbles", "cancelable")); } override public function clone():Event{ return (new ComponentEvent(type, bubbles, cancelable)); } } }//package fl.events
Section 12
//ScrollEvent (fl.events.ScrollEvent) package fl.events { import flash.events.*; public class ScrollEvent extends Event { private var _direction:String; private var _position:Number; private var _delta:Number; public static const SCROLL:String = "scroll"; public function ScrollEvent(_arg1:String, _arg2:Number, _arg3:Number){ super(ScrollEvent.SCROLL, false, false); _direction = _arg1; _delta = _arg2; _position = _arg3; } public function get position():Number{ return (_position); } public function get direction():String{ return (_direction); } public function get delta():Number{ return (_delta); } override public function toString():String{ return (formatToString("ScrollEvent", "type", "bubbles", "cancelable", "direction", "delta", "position")); } override public function clone():Event{ return (new ScrollEvent(_direction, _delta, _position)); } } }//package fl.events
Section 13
//FocusManager (fl.managers.FocusManager) package fl.managers { import fl.controls.*; import flash.display.*; import fl.core.*; import flash.events.*; import flash.text.*; import flash.utils.*; import flash.ui.*; public class FocusManager implements IFocusManager { private var focusableObjects:Dictionary; private var _showFocusIndicator:Boolean;// = true private var defButton:Button; private var focusableCandidates:Array; private var _form:DisplayObjectContainer; private var _defaultButtonEnabled:Boolean;// = true private var activated:Boolean;// = false private var _defaultButton:Button; private var calculateCandidates:Boolean;// = true private var lastFocus:InteractiveObject; private var lastAction:String; public function FocusManager(_arg1:DisplayObjectContainer){ focusableObjects = new Dictionary(true); if (_arg1 != null){ _form = _arg1; addFocusables(DisplayObject(_arg1)); _arg1.addEventListener(Event.ADDED, addedHandler); _arg1.addEventListener(Event.REMOVED, removedHandler); activate(); }; } public function get showFocusIndicator():Boolean{ return (_showFocusIndicator); } private function getIndexOfNextObject(_arg1:int, _arg2:Boolean, _arg3:Boolean, _arg4:String):int{ var _local7:DisplayObject; var _local8:IFocusManagerGroup; var _local9:int; var _local10:DisplayObject; var _local11:IFocusManagerGroup; var _local5:int = focusableCandidates.length; var _local6:int = _arg1; while (true) { if (_arg2){ _arg1--; } else { _arg1++; }; if (_arg3){ if (((_arg2) && ((_arg1 < 0)))){ break; }; if (((!(_arg2)) && ((_arg1 == _local5)))){ break; }; } else { _arg1 = ((_arg1 + _local5) % _local5); if (_local6 == _arg1){ break; }; }; if (isValidFocusCandidate(focusableCandidates[_arg1], _arg4)){ _local7 = DisplayObject(findFocusManagerComponent(focusableCandidates[_arg1])); if ((_local7 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local7); _local9 = 0; while (_local9 < focusableCandidates.length) { _local10 = focusableCandidates[_local9]; if ((_local10 is IFocusManagerGroup)){ _local11 = IFocusManagerGroup(_local10); if ((((_local11.groupName == _local8.groupName)) && (_local11.selected))){ _arg1 = _local9; break; }; }; _local9++; }; }; return (_arg1); }; }; return (_arg1); } private function mouseFocusChangeHandler(_arg1:FocusEvent):void{ if ((_arg1.relatedObject is TextField)){ return; }; _arg1.preventDefault(); } public function set form(_arg1:DisplayObjectContainer):void{ _form = _arg1; } private function addFocusables(_arg1:DisplayObject, _arg2:Boolean=false):void{ var focusable:IFocusManagerComponent; var io:InteractiveObject; var doc:DisplayObjectContainer; var i:int; var child:DisplayObject; var o = _arg1; var skipTopLevel = _arg2; if (!skipTopLevel){ if ((o is IFocusManagerComponent)){ focusable = IFocusManagerComponent(o); if (focusable.focusEnabled){ if (((focusable.tabEnabled) && (isTabVisible(o)))){ focusableObjects[o] = true; calculateCandidates = true; }; o.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); o.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; } else { if ((o is InteractiveObject)){ io = (o as InteractiveObject); if (((((io) && (io.tabEnabled))) && ((findFocusManagerComponent(io) == io)))){ focusableObjects[io] = true; calculateCandidates = true; }; io.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); io.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; }; }; if ((o is DisplayObjectContainer)){ doc = DisplayObjectContainer(o); o.addEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); if ((((((doc is Stage)) || ((doc.parent is Stage)))) || (doc.tabChildren))){ i = 0; while (i < doc.numChildren) { try { child = doc.getChildAt(i); if (child != null){ addFocusables(doc.getChildAt(i)); }; } catch(error:SecurityError) { }; i = (i + 1); }; }; }; } private function getChildIndex(_arg1:DisplayObjectContainer, _arg2:DisplayObject):int{ return (_arg1.getChildIndex(_arg2)); } public function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject{ var _local2:InteractiveObject = _arg1; while (_arg1) { if ((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))){ return (_arg1); }; _arg1 = _arg1.parent; }; return (_local2); } private function focusOutHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject = (_arg1.target as InteractiveObject); } private function isValidFocusCandidate(_arg1:DisplayObject, _arg2:String):Boolean{ var _local3:IFocusManagerGroup; if (!isEnabledAndVisible(_arg1)){ return (false); }; if ((_arg1 is IFocusManagerGroup)){ _local3 = IFocusManagerGroup(_arg1); if (_arg2 == _local3.groupName){ return (false); }; }; return (true); } private function setFocusToNextObject(_arg1:FocusEvent):void{ if (!hasFocusableObjects()){ return; }; var _local2:InteractiveObject = getNextFocusManagerComponent(_arg1.shiftKey); if (_local2){ setFocus(_local2); }; } private function sortFocusableObjectsTabIndex():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))){ focusableCandidates.push(_local2); }; }; focusableCandidates.sort(sortByTabIndex); } private function removeFocusables(_arg1:DisplayObject):void{ var _local2:Object; var _local3:DisplayObject; if ((_arg1 is DisplayObjectContainer)){ _arg1.removeEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); _arg1.removeEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); for (_local2 in focusableObjects) { _local3 = DisplayObject(_local2); if (DisplayObjectContainer(_arg1).contains(_local3)){ if (_local3 == lastFocus){ lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local2]; calculateCandidates = true; }; }; }; } private function getTopLevelFocusTarget(_arg1:InteractiveObject):InteractiveObject{ while (_arg1 != InteractiveObject(form)) { if ((((((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))) && (IFocusManagerComponent(_arg1).mouseFocusEnabled))) && (UIComponent(_arg1).enabled))){ return (_arg1); }; _arg1 = _arg1.parent; if (_arg1 == null){ break; }; }; return (null); } public function sendDefaultButtonEvent():void{ defButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); } private function addedHandler(_arg1:Event):void{ var _local2:DisplayObject = DisplayObject(_arg1.target); if (_local2.stage){ addFocusables(DisplayObject(_arg1.target)); }; } private function isEnabledAndVisible(_arg1:DisplayObject):Boolean{ var _local3:TextField; var _local4:SimpleButton; var _local2:DisplayObjectContainer = DisplayObject(form).parent; while (_arg1 != _local2) { if ((_arg1 is UIComponent)){ if (!UIComponent(_arg1).enabled){ return (false); }; } else { if ((_arg1 is TextField)){ _local3 = TextField(_arg1); if ((((_local3.type == TextFieldType.DYNAMIC)) || (!(_local3.selectable)))){ return (false); }; } else { if ((_arg1 is SimpleButton)){ _local4 = SimpleButton(_arg1); if (!_local4.enabled){ return (false); }; }; }; }; if (!_arg1.visible){ return (false); }; _arg1 = _arg1.parent; }; return (true); } private function tabChildrenChangeHandler(_arg1:Event):void{ if (_arg1.target != _arg1.currentTarget){ return; }; calculateCandidates = true; var _local2:DisplayObjectContainer = DisplayObjectContainer(_arg1.target); if (_local2.tabChildren){ addFocusables(_local2, true); } else { removeFocusables(_local2); }; } private function deactivateHandler(_arg1:Event):void{ var _local2:InteractiveObject = InteractiveObject(_arg1.target); } public function setFocus(_arg1:InteractiveObject):void{ if ((_arg1 is IFocusManagerComponent)){ IFocusManagerComponent(_arg1).setFocus(); } else { form.stage.focus = _arg1; }; } public function getFocus():InteractiveObject{ var _local1:InteractiveObject = form.stage.focus; return (findFocusManagerComponent(_local1)); } private function hasFocusableObjects():Boolean{ var _local1:Object; for (_local1 in focusableObjects) { return (true); }; return (false); } private function tabIndexChangeHandler(_arg1:Event):void{ calculateCandidates = true; } public function set defaultButton(_arg1:Button):void{ var _local2:Button = (_arg1) ? Button(_arg1) : null; if (_local2 != _defaultButton){ if (_defaultButton){ _defaultButton.emphasized = false; }; if (defButton){ defButton.emphasized = false; }; _defaultButton = _local2; defButton = _local2; if (_local2){ _local2.emphasized = true; }; }; } private function sortFocusableObjects():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))) && ((_local2.tabIndex > 0)))){ sortFocusableObjectsTabIndex(); return; }; focusableCandidates.push(_local2); }; focusableCandidates.sort(sortByDepth); } private function keyFocusChangeHandler(_arg1:FocusEvent):void{ showFocusIndicator = true; if ((((((_arg1.keyCode == Keyboard.TAB)) || ((_arg1.keyCode == 0)))) && (!(_arg1.isDefaultPrevented())))){ setFocusToNextObject(_arg1); _arg1.preventDefault(); }; } private function getIndexOfFocusedObject(_arg1:DisplayObject):int{ var _local2:int = focusableCandidates.length; var _local3:int; _local3 = 0; while (_local3 < _local2) { if (focusableCandidates[_local3] == _arg1){ return (_local3); }; _local3++; }; return (-1); } public function hideFocus():void{ } private function removedHandler(_arg1:Event):void{ var _local2:int; var _local4:InteractiveObject; var _local3:DisplayObject = DisplayObject(_arg1.target); if ((((_local3 is IFocusManagerComponent)) && ((focusableObjects[_local3] == true)))){ if (_local3 == lastFocus){ IFocusManagerComponent(lastFocus).drawFocus(false); lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local3]; calculateCandidates = true; } else { if ((((_local3 is InteractiveObject)) && ((focusableObjects[_local3] == true)))){ _local4 = (_local3 as InteractiveObject); if (_local4){ if (_local4 == lastFocus){ lastFocus = null; }; delete focusableObjects[_local4]; calculateCandidates = true; }; _local3.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); }; }; removeFocusables(_local3); } private function sortByDepth(_arg1:InteractiveObject, _arg2:InteractiveObject):Number{ var _local5:int; var _local6:String; var _local7:String; var _local3 = ""; var _local4 = ""; var _local8 = "0000"; var _local9:DisplayObject = DisplayObject(_arg1); var _local10:DisplayObject = DisplayObject(_arg2); while (((!((_local9 == DisplayObject(form)))) && (_local9.parent))) { _local5 = getChildIndex(_local9.parent, _local9); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local3 = (_local7 + _local3); _local9 = _local9.parent; }; while (((!((_local10 == DisplayObject(form)))) && (_local10.parent))) { _local5 = getChildIndex(_local10.parent, _local10); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local4 = (_local7 + _local4); _local10 = _local10.parent; }; return (((_local3 > _local4)) ? 1 : ((_local3 < _local4)) ? -1 : 0); } public function get defaultButton():Button{ return (_defaultButton); } private function activateHandler(_arg1:Event):void{ var _local2:InteractiveObject = InteractiveObject(_arg1.target); if (lastFocus){ if ((lastFocus is IFocusManagerComponent)){ IFocusManagerComponent(lastFocus).setFocus(); } else { form.stage.focus = lastFocus; }; }; lastAction = "ACTIVATE"; } public function showFocus():void{ } public function set defaultButtonEnabled(_arg1:Boolean):void{ _defaultButtonEnabled = _arg1; } public function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject{ var _local8:IFocusManagerGroup; if (!hasFocusableObjects()){ return (null); }; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; var _local2:DisplayObject = form.stage.focus; _local2 = DisplayObject(findFocusManagerComponent(InteractiveObject(_local2))); var _local3 = ""; if ((_local2 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local2); _local3 = _local8.groupName; }; var _local4:int = getIndexOfFocusedObject(_local2); var _local5:Boolean; var _local6:int = _local4; if (_local4 == -1){ if (_arg1){ _local4 = focusableCandidates.length; }; _local5 = true; }; var _local7:int = getIndexOfNextObject(_local4, _arg1, _local5, _local3); return (findFocusManagerComponent(focusableCandidates[_local7])); } private function mouseDownHandler(_arg1:MouseEvent):void{ if (_arg1.isDefaultPrevented()){ return; }; var _local2:InteractiveObject = getTopLevelFocusTarget(InteractiveObject(_arg1.target)); if (!_local2){ return; }; showFocusIndicator = false; if (((((!((_local2 == lastFocus))) || ((lastAction == "ACTIVATE")))) && (!((_local2 is TextField))))){ setFocus(_local2); }; lastAction = "MOUSEDOWN"; } private function isTabVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer = _arg1.parent; while (((((_local2) && (!((_local2 is Stage))))) && (!(((_local2.parent) && ((_local2.parent is Stage))))))) { if (!_local2.tabChildren){ return (false); }; _local2 = _local2.parent; }; return (true); } public function get nextTabIndex():int{ return (0); } private function keyDownHandler(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.TAB){ lastAction = "KEY"; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; }; if (((((((defaultButtonEnabled) && ((_arg1.keyCode == Keyboard.ENTER)))) && (defaultButton))) && (defButton.enabled))){ sendDefaultButtonEvent(); }; } private function focusInHandler(_arg1:FocusEvent):void{ var _local3:Button; var _local2:InteractiveObject = InteractiveObject(_arg1.target); if (form.contains(_local2)){ lastFocus = findFocusManagerComponent(InteractiveObject(_local2)); if ((lastFocus is Button)){ _local3 = Button(lastFocus); if (defButton){ defButton.emphasized = false; defButton = _local3; _local3.emphasized = true; }; } else { if (((defButton) && (!((defButton == _defaultButton))))){ defButton.emphasized = false; defButton = _defaultButton; _defaultButton.emphasized = true; }; }; }; } private function tabEnabledChangeHandler(_arg1:Event):void{ calculateCandidates = true; var _local2:InteractiveObject = InteractiveObject(_arg1.target); var _local3 = (focusableObjects[_local2] == true); if (_local2.tabEnabled){ if (((!(_local3)) && (isTabVisible(_local2)))){ if (!(_local2 is IFocusManagerComponent)){ _local2.focusRect = false; }; focusableObjects[_local2] = true; }; } else { if (_local3){ delete focusableObjects[_local2]; }; }; } public function set showFocusIndicator(_arg1:Boolean):void{ _showFocusIndicator = _arg1; } public function get form():DisplayObjectContainer{ return (_form); } private function sortByTabIndex(_arg1:InteractiveObject, _arg2:InteractiveObject):int{ return (((_arg1.tabIndex > _arg2.tabIndex)) ? 1 : ((_arg1.tabIndex < _arg2.tabIndex)) ? -1 : sortByDepth(_arg1, _arg2)); } public function get defaultButtonEnabled():Boolean{ return (_defaultButtonEnabled); } public function activate():void{ if (activated){ return; }; form.stage.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler, false, 0, true); form.stage.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler, false, 0, true); form.addEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.addEventListener(Event.ACTIVATE, activateHandler, false, 0, true); form.stage.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true); form.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = true; if (lastFocus){ setFocus(lastFocus); }; } public function deactivate():void{ form.stage.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler); form.stage.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler); form.removeEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.removeEventListener(Event.ACTIVATE, activateHandler); form.stage.removeEventListener(Event.DEACTIVATE, deactivateHandler); form.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = false; } } }//package fl.managers
Section 14
//IFocusManager (fl.managers.IFocusManager) package fl.managers { import fl.controls.*; import flash.display.*; public interface IFocusManager { function getFocus():InteractiveObject; function deactivate():void; function set defaultButton(_arg1:Button):void; function set showFocusIndicator(_arg1:Boolean):void; function get defaultButtonEnabled():Boolean; function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject; function get nextTabIndex():int; function get defaultButton():Button; function get showFocusIndicator():Boolean; function hideFocus():void; function activate():void; function showFocus():void; function set defaultButtonEnabled(_arg1:Boolean):void; function setFocus(_arg1:InteractiveObject):void; function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject; } }//package fl.managers
Section 15
//IFocusManagerComponent (fl.managers.IFocusManagerComponent) package fl.managers { public interface IFocusManagerComponent { function set focusEnabled(_arg1:Boolean):void; function drawFocus(_arg1:Boolean):void; function setFocus():void; function get focusEnabled():Boolean; function get tabEnabled():Boolean; function get tabIndex():int; function get mouseFocusEnabled():Boolean; } }//package fl.managers
Section 16
//IFocusManagerGroup (fl.managers.IFocusManagerGroup) package fl.managers { public interface IFocusManagerGroup { function get groupName():String; function get selected():Boolean; function set groupName(_arg1:String):void; function set selected(_arg1:Boolean):void; } }//package fl.managers
Section 17
//StyleManager (fl.managers.StyleManager) package fl.managers { import fl.core.*; import flash.text.*; import flash.utils.*; public class StyleManager { private var classToInstancesDict:Dictionary; private var globalStyles:Object; private var styleToClassesHash:Object; private var classToStylesDict:Dictionary; private var classToDefaultStylesDict:Dictionary; private static var _instance:StyleManager; public function StyleManager(){ styleToClassesHash = {}; classToInstancesDict = new Dictionary(true); classToStylesDict = new Dictionary(true); classToDefaultStylesDict = new Dictionary(true); globalStyles = UIComponent.getStyleDefinition(); } public static function clearComponentStyle(_arg1:Object, _arg2:String):void{ var _local3:Class = getClassDef(_arg1); var _local4:Object = getInstance().classToStylesDict[_local3]; if (((!((_local4 == null))) && (!((_local4[_arg2] == null))))){ delete _local4[_arg2]; invalidateComponentStyle(_local3, _arg2); }; } private static function getClassDef(_arg1:Object):Class{ var component = _arg1; if ((component is Class)){ return ((component as Class)); }; try { return ((getDefinitionByName(getQualifiedClassName(component)) as Class)); } catch(e:Error) { if ((component is UIComponent)){ try { return ((component.loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(component)) as Class)); } catch(e:Error) { }; }; }; return (null); } public static function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } public static function setComponentStyle(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Class = getClassDef(_arg1); var _local5:Object = getInstance().classToStylesDict[_local4]; if (_local5 == null){ _local5 = (getInstance().classToStylesDict[_local4] = {}); }; if (_local5 == _arg3){ return; }; _local5[_arg2] = _arg3; invalidateComponentStyle(_local4, _arg2); } private static function setSharedStyles(_arg1:UIComponent):void{ var _local5:String; var _local2:StyleManager = getInstance(); var _local3:Class = getClassDef(_arg1); var _local4:Object = _local2.classToDefaultStylesDict[_local3]; for (_local5 in _local4) { _arg1.setSharedStyle(_local5, getSharedStyle(_arg1, _local5)); }; } public static function getComponentStyle(_arg1:Object, _arg2:String):Object{ var _local3:Class = getClassDef(_arg1); var _local4:Object = getInstance().classToStylesDict[_local3]; return (((_local4)==null) ? null : _local4[_arg2]); } private static function getInstance(){ if (_instance == null){ _instance = new (StyleManager); }; return (_instance); } private static function invalidateComponentStyle(_arg1:Class, _arg2:String):void{ var _local4:Object; var _local5:UIComponent; var _local3:Dictionary = getInstance().classToInstancesDict[_arg1]; if (_local3 == null){ return; }; for (_local4 in _local3) { _local5 = (_local4 as UIComponent); if (_local5 == null){ } else { _local5.setSharedStyle(_arg2, getSharedStyle(_local5, _arg2)); }; }; } private static function invalidateStyle(_arg1:String):void{ var _local3:Object; var _local2:Dictionary = getInstance().styleToClassesHash[_arg1]; if (_local2 == null){ return; }; for (_local3 in _local2) { invalidateComponentStyle(Class(_local3), _arg1); }; } public static function registerInstance(_arg1:UIComponent):void{ var target:Class; var defaultStyles:Object; var styleToClasses:Object; var n:String; var instance = _arg1; var inst:StyleManager = getInstance(); var classDef:Class = getClassDef(instance); if (classDef == null){ return; }; if (inst.classToInstancesDict[classDef] == null){ inst.classToInstancesDict[classDef] = new Dictionary(true); target = classDef; while (defaultStyles == null) { if (target["getStyleDefinition"] != null){ defaultStyles = target["getStyleDefinition"](); break; }; try { target = (instance.loaderInfo.applicationDomain.getDefinition(getQualifiedSuperclassName(target)) as Class); } catch(err:Error) { try { target = (getDefinitionByName(getQualifiedSuperclassName(target)) as Class); } catch(e:Error) { defaultStyles = UIComponent.getStyleDefinition(); break; }; }; }; styleToClasses = inst.styleToClassesHash; for (n in defaultStyles) { if (styleToClasses[n] == null){ styleToClasses[n] = new Dictionary(true); }; styleToClasses[n][classDef] = true; }; inst.classToDefaultStylesDict[classDef] = defaultStyles; if (inst.classToStylesDict[classDef] == null){ inst.classToStylesDict[classDef] = {}; }; }; inst.classToInstancesDict[classDef][instance] = true; setSharedStyles(instance); } public static function getStyle(_arg1:String):Object{ return (getInstance().globalStyles[_arg1]); } private static function getSharedStyle(_arg1:UIComponent, _arg2:String):Object{ var _local3:Class = getClassDef(_arg1); var _local4:StyleManager = getInstance(); var _local5:Object = _local4.classToStylesDict[_local3][_arg2]; if (_local5 != null){ return (_local5); }; _local5 = _local4.globalStyles[_arg2]; if (_local5 != null){ return (_local5); }; return (_local4.classToDefaultStylesDict[_local3][_arg2]); } public static function setStyle(_arg1:String, _arg2:Object):void{ var _local3:Object = getInstance().globalStyles; if ((((_local3[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; _local3[_arg1] = _arg2; invalidateStyle(_arg1); } } }//package fl.managers
Section 18
//MainTimeline (NiminFetishFantasyv0_fla.MainTimeline) package NiminFetishFantasyv0_fla { import fl.controls.*; import flash.display.*; import flash.events.*; import flash.text.*; import flash.utils.*; import flash.ui.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.geom.*; import flash.media.*; import flash.net.*; import flash.printing.*; import flash.xml.*; public dynamic class MainTimeline extends MovieClip { public var libUp:upArrow; public var exhaustionPenalty:int; public var eMaxHP:int; public var pregnancyType:int; public var senUp:upArrow; public var ePref:int; public var horseAffinity:int; public var eHP:int; public var boobTotal:int; public var outputWindow:TextField; public var tail:int; public var sen:int; public var DayValuePane:TextField; public var i:int; public var Choice2Outline:MovieClip; public var runMod:int; public var invertColorsOutline:MovieClip; public var Choice10Outline:MovieClip; public var tallness:int; public var statValuePane:TextField; public var teatSize:int; public var clockPane:TextField; public var eCoin:int; public var inBag:Boolean; public var bgC:MovieClip; public var eGen:int; public var strUp:upArrow; public var hrs:int; public var mentaUp:upArrow; public var currentZone:int; public var libDown:downArrow; public var SexP:int; public var Choice7Outline:MovieClip; public var heatTime:int; public var milkMod:int; public var invertColors:TextField; public var DayPane:TextField; public var HP:int; public var levelPane:TextField; public var nipplePlay:int; public var eItem:int; public var levelUP:int; public var human:int; public var enticeMod:int; public var attireTop:int; public var vagSize:int; public var udderEngorgement:int; public var Choice3Outline:MovieClip; public var levelValuePane:TextField; public var showBalls:Boolean; public var tou:int; public var vulvaSize:int; public var Choice11Outline:MovieClip; public var ment:int; public var pregChanceMod:int; public var lustDown:downArrow; public var eMenta:int; public var clitSize:int; public var udderPlay:int; public var humanAffinity:int; public var cow:int; public var vagTotal:int; public var itemSlot10:int; public var udders:Boolean; public var itemSlot11:int; public var wolfAffinity:int; public var body:int; public var lust:int; public var attireBot:int; public var newGame:TextField; public var eSen:int; public var Choice8Outline:MovieClip; public var hpUp:upArrow; public var hpDown:downArrow; public var currentRegion:TextField; public var cockTotal:int; public var nippleSize:int; public var hour:int; public var lustUp:upArrow; public var wolfCocks:int; public var breastSize:int; public var heat:int; public var vagMoist:int; public var loadGame:TextField; public var milkEngorgementLevel:int; public var mentaDown:downArrow; public var scrollBar:UIScrollBar; public var lactation:int; public var butt:int; public var blueBalls:int; public var nipPump:int; public var weapon:Number; public var Choice4Outline:MovieClip; public var newGameOutline:MovieClip; public var str:int; public var doListen:Function; public var saveGameOutline:MovieClip; public var cockMoist:int; public var pregTimeMod:int; public var udderSize:int; public var currentText:String; public var heatMaxTime:int; public var Choice12Outline:MovieClip; public var wolf:int; public var skinType:int; public var balls:int; public var cockPump:int; public var strDown:downArrow; public var lib:int; public var Choice9Outline:MovieClip; public var knot:Boolean; public var Choice1:TextField; public var Choice2:TextField; public var Choice5:TextField; public var Choice6:TextField; public var Choice7:TextField; public var Choice8:TextField; public var Choice9:TextField; public var Choice3:TextField; public var Choice4:TextField; public var exhaustion:int; public var currentState:int; public var itemSlot2:int; public var milkEngorgement:int; public var enemyID:int; public var itemSlot5:int; public var itemSlot6:int; public var itemSlot7:int; public var dominant:int; public var itemSlot9:int; public var coin:int; public var eSexP:int; public var itemSlot3:int; public var ballSize:int; public var gender:int; public var hips:int; public var appearanceBox:MovieClip; public var cockSizeMod:Number; public var cumMod:Number; public var race:int; public var itemSlot1:int; public var catCocks:int; public var region:TextField; public var teatPump:int; public var udderEngorgementLevel:int; public var Choice5Outline:MovieClip; public var senDown:downArrow; public var catAffinity:int; public var loadGameOutline:MovieClip; public var pregnancy:Boolean; public var saveGame:TextField; public var horseCocks:int; public var bellyMod:int; public var buttonChoice:int; public var item2:int; public var item3:int; public var item4:int; public var item5:int; public var item6:int; public var level:int; public var item1:int; public var vulvaPump:int; public var lilaRep:int; public var pregMaxTime:int; public var Choice1Outline:MovieClip; public var eStr:int; public var day:int; public var Choice10:TextField; public var Choice11:TextField; public var Choice12:TextField; public var pregnancyTime:int; public var eLust:int; public var appearanceText:TextField; public var cowAffinity:int; public var cat:int; public var horse:int; public var eLib:int; public var statPane:TextField; public var malonRep:int; public var carryMod:int; public var clitPump:int; public var ears:int; public var Choice6Outline:MovieClip; public var humanCocks:int; public var cockSize:int; public var rapeMod:int; public function MainTimeline(){ super(); addFrameScript(0, frame1); __setProp_scrollBar_Scene1_scrollBar_1(); } public function clitDesc():String{ var chance:int; var tempStr:String; chance = percent(); tempStr = ("CLIT ERROR " + clitSize); if (chance <= 100){ if (clitSize <= 2){ tempStr = "tiny"; }; if ((((clitSize > 2)) && ((clitSize <= 3)))){ tempStr = "nibble-able"; }; if ((((clitSize > 3)) && ((clitSize <= 6)))){ tempStr = "protruding"; }; if ((((clitSize > 6)) && ((clitSize <= 12)))){ tempStr = "blatant"; }; if ((((clitSize > 12)) && ((clitSize <= 25)))){ tempStr = "suckable"; }; if ((((clitSize > 25)) && ((clitSize <= 50)))){ tempStr = "cock-like"; }; if ((((clitSize > 50)) && ((clitSize <= 100)))){ tempStr = "horsecock-like"; }; if ((((clitSize > 100)) && ((clitSize <= 140)))){ tempStr = "arm-length"; }; if ((((clitSize > 140)) && ((clitSize <= 300)))){ tempStr = "person-sized"; }; if (clitSize > 300){ tempStr = "obscene"; }; }; if (chance > 50){ if (clitSize <= 2){ tempStr = "small"; }; if ((((clitSize > 2)) && ((clitSize <= 3)))){ tempStr = "pinchable"; }; if ((((clitSize > 3)) && ((clitSize <= 6)))){ tempStr = "flickable"; }; if ((((clitSize > 6)) && ((clitSize <= 12)))){ tempStr = "panty-tenting"; }; if ((((clitSize > 12)) && ((clitSize <= 25)))){ tempStr = "stroke-able"; }; if ((((clitSize > 25)) && ((clitSize <= 50)))){ tempStr = "huge"; }; if ((((clitSize > 50)) && ((clitSize <= 100)))){ tempStr = "gigantic"; }; if ((((clitSize > 100)) && ((clitSize <= 140)))){ tempStr = "doorway-smacking"; }; if ((((clitSize > 140)) && ((clitSize <= 300)))){ tempStr = "snuggle-able"; }; if (clitSize > 300){ tempStr = "obscene"; }; }; return (tempStr); } public function changeBot(ID:int):void{ if (attireBot == -1){ stats(2, 2, 0, 0); }; if (attireBot == 0){ stats(0, 4, 0, 0); }; if (attireBot == 2){ }; if (attireBot == 4){ enticeMod = (enticeMod - 3); stats(0, 2, 0, -2); cumMod = (cumMod + 0.2); }; if (attireBot == 7){ runMod = (runMod - 3); cumMod = (cumMod - 0.2); stats(-2, 2, 0, 0); pregChanceMod = (pregChanceMod - 4); }; if (attireBot == 8){ runMod = (runMod - 3); stats(-2, 0, 3, 0); }; if (attireBot == 10){ vagMoist = (vagMoist + 1); cockMoist = (cockMoist + 1); hips = (hips - 1); stats(0, 4, 0, 0); }; if (attireBot == 11){ vagMoist = (vagMoist + 2); cockMoist = (cockMoist + 2); hips = (hips - 1); butt = (butt - 2); stats(0, 4, 4, 0); }; if (attireBot == 14){ cumMod = (cumMod - 0.2); enticeMod = (enticeMod - 4); stats(0, 4, 0, -2); pregChanceMod = (pregChanceMod - 6); }; if (attireBot == 15){ cumMod = (cumMod + 0.2); runMod = (runMod - 5); enticeMod = (enticeMod - 3); stats(2, 4, 0, -2); }; if (ID == -1){ attireBot = ID; if ((((attireTop == attireBot)) && (!((attireTop == -1))))){ changeTop(-1); }; stats(-2, -2, 0, 0); }; if (ID == 0){ stats(0, -4, 0, 0); }; if (ID == 2){ }; if (ID == 4){ enticeMod = (enticeMod + 3); stats(0, -2, 0, 2); cumMod = (cumMod - 0.2); }; if (ID == 7){ runMod = (runMod + 3); cumMod = (cumMod + 0.2); stats(2, -2, 0, 0); pregChanceMod = (pregChanceMod + 4); }; if (ID == 8){ runMod = (runMod + 3); stats(2, 0, -3, 0); }; if (ID == 10){ vagMoist = (vagMoist - 1); cockMoist = (cockMoist - 1); hips = (hips + 1); stats(0, -4, 0, 0); }; if (ID == 11){ vagMoist = (vagMoist - 2); cockMoist = (cockMoist - 2); hips = (hips + 1); butt = (butt + 2); stats(0, 4, 4, 0); }; if (ID == 14){ cumMod = (cumMod + 0.2); enticeMod = (enticeMod + 4); stats(0, -4, 0, 2); pregChanceMod = (pregChanceMod + 6); }; if (ID == 15){ cumMod = (cumMod - 0.2); runMod = (runMod + 5); enticeMod = (enticeMod + 3); stats(-2, -3, 0, 2); }; if ((((((attireTop == attireBot)) && (!((ID == 0))))) && (!((ID == -1))))){ changeTop(0); }; attireBot = ID; } public function weaponAttack():String{ var tempStr:String; tempStr = ("WEAPON ATTACK ERROR " + weapon); if (weapon == 1){ tempStr = itemName(32); }; if (weapon == 4){ tempStr = "slash"; }; if (weapon == 5){ tempStr = "lash"; }; if (weapon == 5.89){ tempStr = "swing"; }; if (weapon == 7.7){ tempStr = "lunge"; }; if (weapon == 10){ tempStr = "swing"; }; return (tempStr); } public function doLoad(slot:int):void{ var so:SharedObject; so = SharedObject.getLocal("NiminFetishFantasy"); currentRegion.visible = true; region.visible = true; hideUpDown(); statPane.visible = true; statValuePane.visible = true; DayPane.visible = true; DayValuePane.visible = true; clockPane.visible = true; levelPane.visible = true; levelValuePane.visible = true; str = so.data.slots[slot].str; ment = so.data.slots[slot].ment; currentState = so.data.slots[slot].currentState; currentZone = so.data.slots[slot].currentZone; str = so.data.slots[slot].str; ment = so.data.slots[slot].ment; lib = so.data.slots[slot].lib; sen = so.data.slots[slot].sen; HP = so.data.slots[slot].HP; lust = so.data.slots[slot].lust; coin = so.data.slots[slot].coin; day = so.data.slots[slot].day; hour = so.data.slots[slot].hour; SexP = so.data.slots[slot].SexP; levelUP = so.data.slots[slot].levelUP; level = so.data.slots[slot].level; runMod = so.data.slots[slot].runMod; rapeMod = so.data.slots[slot].rapeMod; cumMod = so.data.slots[slot].cumMod; cockSizeMod = so.data.slots[slot].cockSizeMod; milkMod = so.data.slots[slot].milkMod; carryMod = so.data.slots[slot].carryMod; bellyMod = so.data.slots[slot].bellyMod; pregChanceMod = so.data.slots[slot].pregChanceMod; pregTimeMod = so.data.slots[slot].pregTimeMod; enticeMod = so.data.slots[slot].enticeMod; gender = so.data.slots[slot].gender; race = so.data.slots[slot].race; body = so.data.slots[slot].body; dominant = so.data.slots[slot].dominant; hips = so.data.slots[slot].hips; butt = so.data.slots[slot].butt; tallness = so.data.slots[slot].tallness; skinType = so.data.slots[slot].skinType; tail = so.data.slots[slot].tail; ears = so.data.slots[slot].ears; cockTotal = so.data.slots[slot].cockTotal; humanCocks = so.data.slots[slot].humanCocks; horseCocks = so.data.slots[slot].horseCocks; wolfCocks = so.data.slots[slot].wolfCocks; catCocks = so.data.slots[slot].catCocks; cockSize = so.data.slots[slot].cockSize; cockMoist = so.data.slots[slot].cockMoist; balls = so.data.slots[slot].balls; ballSize = so.data.slots[slot].ballSize; showBalls = so.data.slots[slot].showBalls; knot = so.data.slots[slot].knot; breastSize = so.data.slots[slot].breastSize; boobTotal = so.data.slots[slot].boobTotal; nippleSize = so.data.slots[slot].nippleSize; udders = so.data.slots[slot].udders; udderSize = so.data.slots[slot].udderSize; teatSize = so.data.slots[slot].teatSize; clitSize = so.data.slots[slot].clitSize; vagTotal = so.data.slots[slot].vagTotal; vagSize = so.data.slots[slot].vagSize; vagMoist = so.data.slots[slot].vagMoist; vulvaSize = so.data.slots[slot].vulvaSize; attireTop = so.data.slots[slot].attireTop; attireBot = so.data.slots[slot].attireBot; weapon = so.data.slots[slot].weapon; pregnancy = so.data.slots[slot].pregnancy; pregnancyType = so.data.slots[slot].pregnancyType; pregnancyTime = so.data.slots[slot].pregnancyTime; pregMaxTime = so.data.slots[slot].pregMaxTime; exhaustion = so.data.slots[slot].exhaustion; exhaustionPenalty = so.data.slots[slot].exhaustionPenalty; milkEngorgement = so.data.slots[slot].milkEngorgement; milkEngorgementLevel = so.data.slots[slot].milkEngorgementLevel; udderEngorgement = so.data.slots[slot].udderEngorgement; udderEngorgementLevel = so.data.slots[slot].udderEngorgementLevel; heat = so.data.slots[slot].heat; heatTime = so.data.slots[slot].heatTime; heatMaxTime = so.data.slots[slot].heatMaxTime; lactation = so.data.slots[slot].lactation; nipplePlay = so.data.slots[slot].nipplePlay; udderPlay = so.data.slots[slot].udderPlay; blueBalls = so.data.slots[slot].blueBalls; teatPump = so.data.slots[slot].teatPump; nipPump = so.data.slots[slot].nipPump; cockPump = so.data.slots[slot].cockPump; clitPump = so.data.slots[slot].clitPump; vulvaPump = so.data.slots[slot].vulvaPump; humanAffinity = so.data.slots[slot].humanAffinity; horseAffinity = so.data.slots[slot].horseAffinity; wolfAffinity = so.data.slots[slot].wolfAffinity; catAffinity = so.data.slots[slot].catAffinity; cowAffinity = so.data.slots[slot].cowAffinity; lilaRep = so.data.slots[slot].lilaRep; malonRep = so.data.slots[slot].malonRep; itemSlot1 = so.data.slots[slot].itemSlot1; itemSlot2 = so.data.slots[slot].itemSlot2; itemSlot3 = so.data.slots[slot].itemSlot3; itemSlot5 = so.data.slots[slot].itemSlot5; itemSlot6 = so.data.slots[slot].itemSlot6; itemSlot7 = so.data.slots[slot].itemSlot7; itemSlot9 = so.data.slots[slot].itemSlot9; itemSlot10 = so.data.slots[slot].itemSlot10; itemSlot11 = so.data.slots[slot].itemSlot11; } public function viewButtonText(button1:int, button2:int, button3:int, button4:int, button5:int, button6:int, button7:int, button8:int, button9:int, button10:int, button11:int, button12:int):void{ if (button1 == 0){ Choice1.visible = false; }; if (button1 == 1){ Choice1.visible = true; }; if (button2 == 0){ Choice2.visible = false; }; if (button2 == 1){ Choice2.visible = true; }; if (button3 == 0){ Choice3.visible = false; }; if (button3 == 1){ Choice3.visible = true; }; if (button4 == 0){ Choice4.visible = false; }; if (button4 == 1){ Choice4.visible = true; }; if (button5 == 0){ Choice5.visible = false; }; if (button5 == 1){ Choice5.visible = true; }; if (button6 == 0){ Choice6.visible = false; }; if (button6 == 1){ Choice6.visible = true; }; if (button7 == 0){ Choice7.visible = false; }; if (button7 == 1){ Choice7.visible = true; }; if (button8 == 0){ Choice8.visible = false; }; if (button8 == 1){ Choice8.visible = true; }; if (button9 == 0){ Choice9.visible = false; }; if (button9 == 1){ Choice9.visible = true; }; if (button10 == 0){ Choice10.visible = false; }; if (button10 == 1){ Choice10.visible = true; }; if (button11 == 0){ Choice11.visible = false; }; if (button11 == 1){ Choice11.visible = true; }; if (button12 == 0){ Choice12.visible = false; }; if (button12 == 1){ Choice12.visible = true; }; } public function bodyType():void{ bc(); if (gender == 1){ viewButtonOutline(0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0); viewButtonText(0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0); buttonWrite(2, "Bodybuilder"); buttonWrite(5, "Average"); buttonWrite(7, "Femme Boy"); buttonWrite(10, "Child"); }; if (gender == 2){ viewButtonOutline(0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0); viewButtonText(0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0); buttonWrite(2, "Bodybuilder"); buttonWrite(5, "Average"); buttonWrite(3, "Voluptuous"); buttonWrite(10, "Child"); }; if (gender == 3){ viewButtonOutline(0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0); viewButtonText(0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0); buttonWrite(2, "Bodybuilder"); buttonWrite(5, "Masculine"); buttonWrite(6, "Feminine"); buttonWrite(10, "Child"); }; outputMainText("Choose your body type. Types deteremine height and a few beginning characteristics. Their names describe what they look like.", true); doListen = function ():void{ if (gender == 1){ if (buttonChoice == 2){ body = 29; hips = 2; butt = 3; tallness = (71 + Math.floor((percent() / 20))); str = (str + 1); stats(0, 0, 0, 0); doStartingDescription(); }; if (buttonChoice == 5){ body = 20; hips = 2; butt = 2; tallness = (68 + Math.floor((percent() / 20))); lib = (lib + 1); stats(0, 0, 0, 0); doStartingDescription(); }; if (buttonChoice == 7){ body = 15; hips = 3; butt = 3; breastSize = 1; nippleSize = 1; tallness = (60 + Math.floor((percent() / 20))); sen = (sen + 1); stats(0, 0, 0, 0); doStartingDescription(); }; if (buttonChoice == 10){ body = 7; hips = 1; butt = 1; tallness = (42 + Math.floor((percent() / 20))); sen = (sen + 2); ment = (ment - 2); str = (str - 4); lib = (lib + 2); cockSize = 2; cockMoist = 1; ballSize = 1; stats(0, 0, 0, 0); doStartingDescription(); }; }; if (gender == 2){ if (buttonChoice == 2){ body = 29; hips = 2; butt = 3; tallness = (68 + Math.floor((percent() / 20))); breastSize = 2; nippleSize = 2; str = (str + 1); stats(0, 0, 0, 0); doStartingDescription(); }; if (buttonChoice == 3){ body = 16; hips = 5; butt = 5; tallness = (60 + Math.floor((percent() / 20))); breastSize = 5; nippleSize = 5; lib = (lib + 2); stats(0, 0, 0, 0); doStartingDescription(); }; if (buttonChoice == 5){ body = 13; hips = 3; butt = 3; tallness = (60 + Math.floor((percent() / 20))); breastSize = 3; nippleSize = 3; ment = (ment + 1); stats(0, 0, 0, 0); doStartingDescription(); }; if (buttonChoice == 10){ body = 7; hips = 1; butt = 1; tallness = (41 + Math.floor((percent() / 20))); sen = (sen + 2); ment = (ment - 2); str = (str - 4); lib = (lib + 2); vagSize = 2; breastSize = 1; vulvaSize = 1; clitSize = 1; vagMoist = 1; stats(0, 0, 0, 0); doStartingDescription(); }; }; if (gender == 3){ if (buttonChoice == 2){ body = 29; hips = 2; butt = 3; tallness = (68 + Math.floor((percent() / 20))); breastSize = 3; nippleSize = 3; str = (str + 1); stats(0, 0, 0, 0); doStartingDescription(); }; if (buttonChoice == 5){ body = 19; hips = 2; butt = 2; tallness = (62 + Math.floor((percent() / 20))); breastSize = 1; lib = (lib + 1); stats(0, 0, 0, 0); doStartingDescription(); }; if (buttonChoice == 6){ body = 14; hips = 3; butt = 3; tallness = (58 + Math.floor((percent() / 20))); breastSize = 3; nippleSize = 3; ment = (ment + 1); stats(0, 0, 0, 0); doStartingDescription(); }; if (buttonChoice == 10){ body = 7; hips = 1; butt = 1; tallness = (42 + Math.floor((percent() / 20))); sen = (sen + 2); ment = (ment - 2); str = (str - 4); lib = (lib + 2); cockSize = 2; cockMoist = 1; ballSize = 1; vagSize = 2; clitSize = 1; vagMoist = 1; vulvaSize = 1; breastSize = 1; stats(0, 0, 0, 0); doStartingDescription(); }; }; }; } public function battleWin():void{ outputMainText("You walk away from the battle the victor and to the victor goes the spoils.", true); if (eCoin != 0){ outputMainText((("\r\rSomewhere on the passed out body (you probably don't want to know where) you find " + eCoin) + " coins."), false); doCoin(eCoin); }; if (eItem != 0){ outputMainText((("\r\rYou manage to obtain " + itemName(eItem)) + " from your opponent."), false); }; if (eSexP != 0){ outputMainText((("\r\rFor your efforts, you grow in experience, gaining " + eSexP) + " SexP!"), false); doSexP(eSexP); }; if (eItem != 0){ item1 = eItem; }; hrs = 2; doEnd(); } public function loadG(e:MouseEvent):void{ loadGo(); } public function usableItem(ID:int):Boolean{ var tempBool:Boolean; tempBool = false; if (ID == 104){ return (true); }; if (ID == 116){ return (true); }; if (ID == 117){ return (true); }; if (ID == 118){ return (true); }; if (ID == 119){ return (true); }; return (tempBool); } public function checkItem(ID:int):Boolean{ var tempBool:Boolean; tempBool = false; i = 1; while (i < 13) { if (itemID(i) == ID){ tempBool = true; }; i++; }; return (tempBool); } public function itemName(ID:int):String{ var tempStr:String; tempStr = ("ITEM NAME ERROR " + ID); if (ID == 0){ tempStr = ""; }; if (ID == 1){ tempStr = "Test"; }; if (ID == 101){ tempStr = "Anc Claws"; }; if (ID == 102){ tempStr = "Imb Shoes"; }; if (ID == 103){ tempStr = "Dry Sand"; }; if (ID == 104){ tempStr = "Milker"; }; if (ID == 105){ tempStr = "Cat's Meow"; }; if (ID == 110){ tempStr = "Reduction"; }; if (ID == 111){ tempStr = "Skin Balm"; }; if (ID == 112){ tempStr = "Bol Juice"; }; if (ID == 113){ tempStr = "Taint Leaf"; }; if (ID == 114){ tempStr = "Sweet Sap"; }; if (ID == 115){ tempStr = "Poultice"; }; if (ID == 116){ tempStr = "Dagger"; }; if (ID == 117){ tempStr = "Hammer"; }; if (ID == 118){ tempStr = "Saber"; }; if (ID == 119){ tempStr = "Whip"; }; if (ID == 120){ tempStr = "Neuter"; }; if (ID == 200){ tempStr = "Lila's Gift"; }; if (ID == 201){ tempStr = "Milk C Pois"; }; if (ID == 202){ tempStr = "Co-Snak Ven"; }; if (ID == 203){ tempStr = "Wolf Fur"; }; if (ID == 204){ tempStr = "Sm Pouch"; }; if (ID == 205){ tempStr = "Sm Pouch"; }; if (ID == 206){ tempStr = "Trinket"; }; if (ID == 207){ tempStr = "Cock Carv"; }; if (ID == 208){ tempStr = "Blo Berry"; }; if (ID == 209){ tempStr = "Grain"; }; if (ID == 210){ tempStr = "Pus Fruit"; }; if (ID == 211){ tempStr = "DairE Pill"; }; if (ID == 212){ tempStr = "Red Mush"; }; if (ID == 213){ tempStr = "Wet Cloth"; }; if (ID == 500){ tempStr = "Milk Bottle"; }; if (ID == 501){ tempStr = "Milk Jug"; }; if (ID == 502){ tempStr = "Milk Bottle"; }; return (tempStr); } public function bc():void{ buttonChoice = 0; } public function percent():int{ return ((Math.floor((Math.random() * ((1 + 100) - 1))) + 1)); } public function doPlains():void{ var chance:int; chance = percent(); if (chance <= 30){ outputMainText("You hear a hiss amidst some overgrown grass. Stopping cautiously, you manage to avoid stepping on a particularly dangerous snake. The cock-snake. Aptly named due to its head looking much like the glans of a human cock, this breed of snake is also known to devour that of the same... And if its opponent doesn't have one, they soon will.", true); doNext(); doListen = function ():void{ enemyID = 101; currentState = 2; enemyBaseStats(); eMaxHP = eHP; doBattle(); }; }; if ((((chance > 30)) && ((chance <= 55)))){ outputMainText("While trudging along the plains, you hear the stamping of hooves. Drunken song erupts in the air as a large equan man stumbles your way. His pants unbuttoned, his hand hidden within, you can see him groping his large erection. In his other hand he holds a large mug, still filled with alcohol. He smiles as he sees you, and then charges right at you!", true); doNext(); doListen = function ():void{ enemyID = 302; currentState = 2; enemyBaseStats(); eMaxHP = eHP; doBattle(); }; }; if ((((chance > 55)) && ((chance <= 75)))){ outputMainText("You wander about the open fields and find nothing but a handful of grain. At least the carbs will give you energy!", true); item1 = 209; hrs = 1; doEnd(); }; if (chance > 75){ outputMainText("After a few hours of being lost amongst the vast expanse of flat plains, you come across the faint signs of a road. Would you like to follow it?", true); buttonConfirm(); doListen = function ():void{ if (buttonChoice == 6){ if (currentZone == 1){ outputMainText("Following the road, signs of civilization come into view. Large tents flutter in the breeze, made from canvas held up by rocks and logs, with a few smaller brick buildings here and there. You can hear the soft clapping of hard feet everywhere, as you spot several large horse-like people walk and dash about.\r\rYou have now entered the Equan home-city of Firmshaft!", true); regionChange(2); hrs = 4; doEnd(); } else { if (currentZone == 2){ outputMainText("Following the road, the level land breaks up into rolling hills. Not far, you see tall buildings of wood and stone, with open streets of dirt and pebbles, nestled between the hills. Fur-less people move all about, busy doing odd jobs or having fun.\r\rYou have found the Human home-city of Softlik!", true); regionChange(1); hrs = 4; doEnd(); }; }; } else { outputMainText("You return from whence you came.", true); hrs = 1; doEnd(); }; }; }; } public function doEnd():void{ bc(); doNext(); doListen = function ():void{ if (buttonChoice == 6){ doProcess(); }; }; } public function appearance(e:MouseEvent):void{ appearanceGo(); } public function appearanceGo():void{ outputMainText((((((((((((((((("You began your journey as a " + raceName()) + " with a ") + bodyDesc()) + " figure. Now you stand ") + Math.floor((tallness / 12))) + " feet and ") + Math.floor((((tallness / 12) - Math.floor((tallness / 12))) * 12))) + " inches tall with ") + hipDesc()) + " hips and ") + buttDesc()) + " butt. You look much like a ") + genName()) + " ") + domName()) + ""), true); if (tail > 1){ outputMainText(((" with a " + tailDesc()) + " tail swishing behind you"), false); }; outputMainText(((". You have " + earDesc()) + "."), false); if (checkItem(101)){ outputMainText(" Your hands are also more like paws, with sharp claws.", false); }; if (checkItem(102)){ outputMainText(" Your feet are also hooves that clap against the ground whenever you walk.", false); }; if ((pregnancyTime + bellyMod) > 36){ outputMainText(((((" You're also sporting a " + bellyDesc()) + " belly that hangs past your ") + clothesBottom()) + "."), false); }; outputMainText(" You are currently wearing a ", false); if (attireTop != attireBot){ outputMainText((((("" + clothesTop()) + " and ") + clothesBottom()) + "."), false); } else { outputMainText((clothesTop() + "."), false); }; if (breastSize > 0){ if (boobTotal == 2){ outputMainText(((((((("\r\rUpon your chest heaves " + boobTotal) + " ") + boobDesc()) + " breasts. Your bust measures ") + breastSize) + " cm around, beyond your chest, with ") + nipDesc()), false); }; if (boobTotal == 6){ outputMainText(((((((((((("\r\rUpon your chest and down to your belly heaves " + boobTotal) + " ") + boobDesc()) + " breasts. Your bust measures ") + breastSize) + " cm around, beyond your chest, the next pair measuring ") + Math.floor((breastSize / 2))) + " cm and the next measuring ") + Math.floor((breastSize / 4))) + " cm; each with ") + nipDesc()), false); }; if (dominant == 5){ outputMainText(" teats", false); }; if (dominant != 5){ outputMainText(" nipples", false); }; if (lust <= 30){ outputMainText(((" softly bulging " + (Math.floor((nippleSize * 1)) / 10)) + " inches beyond that."), false); }; if ((((lust > 30)) && ((lust <= 70)))){ outputMainText(((" stiffly standing " + (Math.floor((nippleSize * 2)) / 10)) + " inches beyond that."), false); }; if (lust > 70){ outputMainText(((" achingly hard and reaching " + (Math.floor((nippleSize * 2.5)) / 10)) + " inches beyond that."), false); }; if (lactation > 0){ if (milkEngorgementLevel == 2){ outputMainText(((" A few drops of milk dangle from each nipple as you pull your " + clothesTop()) + " from your engorged breasts to inspect yourself."), false); }; if (milkEngorgementLevel == 3){ outputMainText(((((" Milk sprays from each of your nipples as you pull your " + clothesTop()) + " from your heavily engorged breasts to inspect yourself, and continue to dribble down your belly and soaking into your ") + clothesBottom()) + "."), false); }; }; }; if (udders == true){ outputMainText((((((("\r\rJust below your belly hangs a " + udderDesc()) + " udder with 4 ") + teatDesc()) + " teats, each ") + (teatSize * 0.2)) + " inches long"), false); if (lactation > 0){ if (udderEngorgementLevel == 2){ outputMainText(" and dribbling milk from your engorgement", false); }; if (udderEngorgementLevel == 3){ outputMainText(" and practically spraying milk onto the ground before you from your excessive engorgment", false); }; }; outputMainText(".", false); }; if (cockTotal > 0){ outputMainText((((((("\r\rAbove your groin rests " + cockTotal) + " ") + cockDesc()) + " wang") + plural(1)) + "."), false); if (lust <= 30){ if (humanCocks > 0){ outputMainText(((((" " + humanCocks) + " dangles flaccidly from your groin, reaching ") + (cockSize * cockSizeMod)) + " inches down, with smooth skin and a mushroom-like glans, just like a human's."), false); }; if (horseCocks > 0){ outputMainText(((((((" " + horseCocks) + " hide") + plural(3)) + " within a fuzzy sheath that protrudes from your groin, around ") + Math.floor(((cockSize * cockSizeMod) / 2))) + " inches in thickness."), false); }; if ((((wolfCocks > 0)) || ((catCocks > 0)))){ outputMainText(((((((" " + (wolfCocks + catCocks)) + " hide") + plural(3)) + " within a fuzzy sheath that protrudes from your groin, around ") + Math.floor(((cockSize * cockSizeMod) / 4))) + " inches in thickness."), false); }; if (cockMoist > 3){ outputMainText(((" Drops of pre slowly bead at the tip of your cock" + plural(1)) + ", "), false); if ((((((horseCocks > 0)) || ((wolfCocks > 0)))) || ((catCocks > 0)))){ outputMainText(((" pooling within your sheath" + plural(1)) + ","), false); }; outputMainText(((" running down your thighs as it continually blotches your " + clothesBottom()) + ", even though you're barely aroused at all."), false); }; }; if ((((lust > 30)) && ((lust <= 70)))){ if (humanCocks > 0){ outputMainText(((((" " + humanCocks) + " stands erect, reaching ") + ((cockSize * cockSizeMod) * 2)) + " inches up, with smooth skin and a mushroom-like glans, just like a human's."), false); }; if (horseCocks > 0){ outputMainText(((((((" " + horseCocks) + " droops out of a ") + Math.floor(((cockSize * cockSizeMod) / 2))) + "-inch thick smooth sheath, reaching ") + ((cockSize * cockSizeMod) * 3)) + " inches down your thigh with a ring of prepuce halfway down its length and flat head, just like a horse's."), false); }; if (wolfCocks > 0){ outputMainText(((((((" " + wolfCocks) + " pokes out of a ") + Math.floor(((cockSize * cockSizeMod) / 4))) + "-inch thick fuzzy sheath, red and hard, smooth and covered in veins with a narrowing tip that stands ") + (cockSize * cockSizeMod)) + " high, just like a wolf's."), false); }; if (catCocks > 0){ outputMainText(((((((" " + catCocks) + " pokes out of a ") + Math.floor(((cockSize * cockSizeMod) / 4))) + "-inch thick fuzzy sheath, pink and soft, with tender barbs near the narrowing tip that stands ") + (cockSize * cockSizeMod)) + " high, just like a cat's."), false); }; if (knot == true){ outputMainText(((((((" Your cock" + plural(1)) + " swell") + plural(3)) + " a little near the base, preparing for a chance for the knot") + plural(1)) + " to expand."), false); }; if ((((cockMoist == 2)) || ((cockMoist == 3)))){ outputMainText(((" Drops of pre slowly bead at the tip of your cock" + plural(1)) + ", "), false); if ((((((horseCocks > 0)) || ((wolfCocks > 0)))) || ((catCocks > 0)))){ outputMainText(((" pooling within your sheath" + plural(1)) + ","), false); }; outputMainText(((" running down your thighs as it blotches your " + clothesBottom()) + "."), false); }; if (cockMoist > 3){ outputMainText(((" Pre steadily drips from your groin, making a large wet spot on your " + clothesBottom()) + ", looking more like you had peed yourself from all the seminal fluid."), false); }; }; if (lust > 70){ if (humanCocks > 0){ outputMainText(((((" " + humanCocks) + " stands erect, reaching ") + ((cockSize * cockSizeMod) * 2)) + " inches up, throbbing strongly with smooth skin and a mushroom-like glans that is nearly purple in color, just like a human's."), false); }; if (horseCocks > 0){ outputMainText(((((((" " + horseCocks) + " twitches out of a ") + Math.floor(((cockSize * cockSizeMod) / 2))) + "-inch thick smooth sheath, trying to stand ") + ((cockSize * cockSizeMod) * 3)) + " inches from your body with a ring of prepuce halfway down its length and flaring flat head, just like a horse's."), false); }; if (wolfCocks > 0){ outputMainText(((((((" " + wolfCocks) + " throbs out of a ") + Math.floor(((cockSize * cockSizeMod) / 4))) + "-inch thick fuzzy sheath, red and hard, smooth and covered in veins that almost look purple, they're so full of blood, with a narrowing tip that stands ") + (cockSize * cockSizeMod)) + " high, just like a wolf's."), false); }; if (catCocks > 0){ outputMainText(((((((" " + catCocks) + " stiffly stands out of a ") + Math.floor(((cockSize * cockSizeMod) / 4))) + "-inch thick fuzzy sheath, pink and nearly hard, with tender barbs bristling out near the narrowing tip that stands ") + (cockSize * cockSizeMod)) + " high, just like a cat's."), false); }; if (knot == true){ outputMainText(((((((((" Your cock" + plural(1)) + " bulge") + plural(3)) + " tremendously the base, the knot") + plural(1)) + " completely expecting to come at any moment and nearly ") + Math.ceil(((cockSize * cockSizeMod) / 2))) + " thick."), false); }; if (cockMoist == 1){ outputMainText(((" Drops of pre slowly bead at the tip of your cock" + plural(1)) + ", "), false); if ((((((horseCocks > 0)) || ((wolfCocks > 0)))) || ((catCocks > 0)))){ outputMainText(((" pooling within your sheath" + plural(1)) + ","), false); }; outputMainText(((" running down your thighs as it blotches your " + clothesBottom()) + "."), false); }; if ((((cockMoist == 2)) || ((cockMoist == 3)))){ outputMainText(((" Pre steadily drips from your groin, making a large wet spot on your " + clothesBottom()) + ", looking more like you had peed yourself from all the seminal fluid."), false); }; if (cockMoist > 3){ outputMainText(((" Your " + clothesBottom()) + " feels completely swamped as pre flies from your lower half as you move about. Standing still for too long, you quickly form a small puddle of the slick stuff."), false); }; }; }; if ((((showBalls == true)) && ((balls > 0)))){ outputMainText((((((((("\r\rBeneath your cock" + plural(1)) + " swing") + plural(3)) + " a scrotum filled with ") + balls) + " ") + ballDesc()) + " testicles."), false); if ((((blueBalls > 36)) && ((blueBalls <= 84)))){ outputMainText(" They groan and squirm, full of hot cum just waiting to blow.", false); }; if (blueBalls > 84){ outputMainText(" They groan so strongly you shudder slightly. They're so full of cum that they ache a bit, desperately wanting to come.", false); }; }; if (vagTotal > 0){ outputMainText((((((((("\r\rBetween your legs nestles " + vagTotal) + " ") + vulvaDesc()) + " pair") + plural(2)) + " of feminine nether-lips, about ") + (vagSize * 2)) + " inches deep, when aroused."), false); if ((vagSize * vagTotal) > body){ outputMainText(" So deep, in fact, that your belly bulges more because of the excess vaginal flesh.", false); }; if (lust <= 30){ if (clitSize > (vulvaSize * 3)){ outputMainText(((((((((((" Although you're hardly aroused, your " + clitDesc()) + " clit") + plural(2)) + " dangle") + plural(4)) + " softly from the front of your slit") + plural(2)) + ", measuring nearly ") + (Math.floor((clitSize * 1)) / 10)) + " inches in length."), false); }; if (vagMoist > 3){ outputMainText(((((" Lubrication makes your cunt" + plural(2)) + " slick, the lips slipping past each other as you walk, while the slime continually blotches the crotch of your ") + clothesBottom()) + ", whether you're horny or not."), false); }; }; if ((((lust > 30)) && ((lust <= 70)))){ outputMainText(((((((((((((((((" Your " + clitDesc()) + " clit") + plural(2)) + " swell") + plural(4)) + " from the hood") + plural(2)) + " at the front of your slit") + plural(2)) + ", reaching ") + (Math.floor((clitSize * 2)) / 10)) + " inches in length and making you walk awkwardly as the sensitive button") + plural(2)) + " rub") + plural(4)) + " between your thighs."), false); if ((((vagMoist == 2)) || ((vagMoist == 3)))){ outputMainText(((((" Lubrication makes your cunt" + plural(2)) + " slick, the lips slipping past each other as you walk, while the slime continually blotches the crotch of your ") + clothesBottom()) + ", whether you're horny or not."), false); }; if (vagMoist > 3){ outputMainText(((((" So much feminine honey drips from your cunt" + plural(2)) + " that it looks like you have peed in your ") + clothesBottom()) + " and webs of slime form sheets between your legs."), false); }; }; if (lust > 70){ outputMainText(((((((((((((((" Your " + clitDesc()) + " clit") + plural(2)) + " swell") + plural(4)) + " tremendously from the hood") + plural(2)) + " at the front of your slit") + plural(2)) + ", reaching ") + (Math.floor((clitSize * 2.5)) / 10)) + " inches in length. You walk bow-legged half the time as squeezing the clit") + plural(2)) + " and swollen lips between your thighs is often too much, making you hunger to hump something."), false); if (vagMoist == 1){ outputMainText(((((" Lubrication makes your cunt" + plural(2)) + " slick, the lips slipping past each other as you walk, while the slime continually blothes the crotch of your ") + clothesBottom()) + ", whether you're horny or not."), false); }; if ((((vagMoist == 2)) || ((vagMoist == 3)))){ outputMainText(((((" So much feminine honey drips from your cunt" + plural(2)) + " that it looks like you have peed in your ") + clothesBottom()) + " and webs of slime form sheets between your legs."), false); }; if (vagMoist > 3){ outputMainText(((" A slow waterafall of feminine honey drips from your crotch, your " + clothesBottom()) + " completely soaked. If you stand for too long, you worry your feet will slip in the puddle you quickly make beneath you."), false); }; }; }; doEnd(); } public function loadGo():void{ var so:SharedObject; so = SharedObject.getLocal("NiminFetishFlash"); bc(); viewButtonOutline(1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1); viewButtonText(1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1); i = 1; while (i < 9) { if (!so.data.slot[i]){ buttonWrite(i, (("" + i) + "")); } else { buttonWrite(i, ((("D:" + so.data.slots[i].day) + " H:") + so.data.slots[i].hour)); }; i++; }; buttonWrite(12, "Return"); outputMainText("Click on a load slot to load the game that was saved to that slot.\r\rOtherwise, click Return to go back to what you were doing.", true); doListen = function ():void{ var slot:int; if (buttonChoice != 12){ slot = buttonChoice; if (!so.data.slot[slot]){ outputMainText((("Nothing has been saved to slot " + slot) + " yet. Please choose another"), true); loadGo(); } else { outputMainText((("Are you sure you want to load slot " + buttonChoice) + "?\r\rYou will lose any unsaved data from the current game."), true); buttonConfirm(); doListen = function ():void{ if (buttonChoice == 6){ doLoad(slot); regionChange(currentZone); doReturn(); } else { loadGo(); }; }; }; }; if (buttonChoice == 12){ doReturn(); }; }; } function frame1(){ i = 0; buttonChoice = 0; currentText = ""; currentState = 0; inBag = false; currentZone = 0; str = 0; tou = 0; ment = 0; lib = 0; sen = 0; HP = 0; lust = 0; coin = 0; day = 0; hour = 0; hrs = 0; item1 = 0; item2 = 0; item3 = 0; item4 = 0; item5 = 0; item6 = 0; human = 0; horse = 0; wolf = 0; cat = 0; cow = 0; SexP = 0; levelUP = 0; level = 0; runMod = 0; rapeMod = 0; cumMod = 1; cockSizeMod = 1; milkMod = 0; carryMod = 0; bellyMod = 0; pregChanceMod = 0; pregTimeMod = 0; enticeMod = 0; enemyID = 0; eHP = 0; eMaxHP = 0; eStr = 0; eMenta = 0; eSen = 0; eLib = 0; eLust = 0; eGen = 0; ePref = 0; eCoin = 0; eSexP = 0; eItem = 0; gender = 0; race = 0; body = 0; dominant = 0; hips = 0; butt = 0; tallness = 0; skinType = 0; tail = 0; ears = 0; cockTotal = 0; humanCocks = 0; horseCocks = 0; wolfCocks = 0; catCocks = 0; cockSize = 0; cockMoist = 0; balls = 0; ballSize = 0; showBalls = true; knot = false; breastSize = 0; boobTotal = 0; nippleSize = 1; udders = false; udderSize = 0; teatSize = 0; clitSize = 0; vagTotal = 0; vagSize = 0; vagMoist = 0; vulvaSize = 0; attireTop = 1; attireBot = 2; weapon = 10; pregnancy = false; pregnancyType = 0; pregnancyTime = 0; pregMaxTime = 0; exhaustion = 0; exhaustionPenalty = 0; milkEngorgement = 0; milkEngorgementLevel = 0; udderEngorgement = 0; udderEngorgementLevel = 0; heat = 0; heatTime = 0; heatMaxTime = 0; lactation = 0; nipplePlay = 0; udderPlay = 0; blueBalls = 0; teatPump = 0; nipPump = 0; cockPump = 0; clitPump = 0; vulvaPump = 0; humanAffinity = 0; horseAffinity = 0; wolfAffinity = 0; catAffinity = 0; cowAffinity = 0; lilaRep = 0; malonRep = 0; itemSlot1 = 0; itemSlot2 = 0; itemSlot3 = 0; itemSlot5 = 0; itemSlot6 = 0; itemSlot7 = 0; itemSlot9 = 0; itemSlot10 = 0; itemSlot11 = 0; hideUpDown(); outputWindow.htmlText = "Nimin: Fetish Fantasy\r\r\rClick 'New Game' to begin a new game.\r\rCreated by\r --Xadera\r http://www.furaffinity.net/user/xadera/\r\rOriginal concept by:\r --Fenoxo\r http://www.furaffinity.net/user/fenoxo/\r\rAlso thanks to the following for submitting ideas:\r --tkn156, Shockblock99, Shello-Lakoda"; invertColors.addEventListener(MouseEvent.CLICK, invertC); newGame.addEventListener(MouseEvent.CLICK, newGameStart); Choice1.addEventListener(MouseEvent.CLICK, buttonEvent1); Choice2.addEventListener(MouseEvent.CLICK, buttonEvent2); Choice3.addEventListener(MouseEvent.CLICK, buttonEvent3); Choice4.addEventListener(MouseEvent.CLICK, buttonEvent4); Choice5.addEventListener(MouseEvent.CLICK, buttonEvent5); Choice6.addEventListener(MouseEvent.CLICK, buttonEvent6); Choice7.addEventListener(MouseEvent.CLICK, buttonEvent7); Choice8.addEventListener(MouseEvent.CLICK, buttonEvent8); Choice9.addEventListener(MouseEvent.CLICK, buttonEvent9); Choice10.addEventListener(MouseEvent.CLICK, buttonEvent10); Choice11.addEventListener(MouseEvent.CLICK, buttonEvent11); Choice12.addEventListener(MouseEvent.CLICK, buttonEvent12); appearanceText.addEventListener(MouseEvent.CLICK, appearance); saveGame.addEventListener(MouseEvent.CLICK, saveG); loadGame.addEventListener(MouseEvent.CLICK, loadG); statPane.visible = false; statValuePane.visible = false; levelPane.visible = false; levelValuePane.visible = false; currentRegion.visible = false; region.visible = false; saveGame.visible = false; saveGameOutline.visible = false; DayPane.visible = false; DayValuePane.visible = false; clockPane.visible = false; appearanceText.visible = false; appearanceBox.visible = false; bgC.visible = false; viewButtonText(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); viewButtonOutline(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); invertColors.visible = false; invertColorsOutline.visible = false; loadGame.visible = false; loadGameOutline.visible = false; } public function doGetRaped():void{ if (enemyID == 1){ if (gender == 1){ outputMainText("The test enemy pokes its cock in your butt and cums.", true); }; if (gender == 2){ outputMainText("The test enemy pokes its cock in your vagina and cums.", true); }; if (gender == 3){ outputMainText("The test enemy pokes its cock in your vagina and cums while stroking you off.", true); }; }; if (enemyID == 101){ outputMainText((((((((((("As your growing erection" + plural(1)) + " spill") + plural(3)) + " from your ") + clothesBottom()) + ", the cock-snake's mouth grows wide. It slithers forward, engulfing ") + oneYour(1)) + " cock") + plural(1)) + ", its mouth stretching wider and wider to fully engulf it, its body so elastic it could take on any length.\r\rIn an instant, your body begins to writhe and shudder as the cock-snake's gullet strongly massages along your length, quickly building you to orgasm. You clench at the ground beneath you as the cum is sucked right from your body, your hips jerking while you pump it out. The cock-snake guzzles it down, drinking it until you're completely finished, some of the spunk splashing back out across your thighs...\r\rHunger sated, the cock-snake slithers away"), true); if (cumAmount() > 2300){ outputMainText(", its belly obviously distended from your massive load", false); }; outputMainText(".", false); }; if (enemyID == 201){ outputMainText((((((((((((((((("The lone wolf rolls you onto all fours with its nose. Obliging, you duck forward, raising your " + buttDesc()) + " rump into the air. He sniffs your cunt") + plural(2)) + ", lapping at the wetness that soaks through your ") + clothesBottom()) + ". He jumps up, clawing your ") + clothesBottom()) + " to shreds until your ") + vulvaDesc()) + " hot crotch is put on display. Scratching your back, he mounts you from behind.\r\rHis rock-hard rod pokes and prods around your sex until it finds ") + oneYour(2)) + " gaping hole") + plural(2)) + " and plunges it in. You gasp as the steaming meaty flesh pounds into you, the wolf roughly humping away, the inner fur of his thighs rubbing back and forth along your ") + buttDesc()) + " naked bum. He hugs you with his paws, his muzzle panting beside your ear while drool drips down from his lolling tongue and down your cheek. It only takes a minute before he howls loudly, cum spurting into your pussy at an astonishing rate. You shout as it floods your insides, a thick knot growing at your entrance and spreading you open further..."), true); changeBot(-1); doNext(); outputMainText("You gasp as you're about to pass out, feeling the wolf tug at your violated cunt in an attempt to get away. Still tied by his knot, his cock squirting away within, ", true); if (vagSize < 8){ outputMainText("you wince with each pull, the knot stretching you wider,", false); vagChange(1, 0); } else { if (vagSize < 2){ outputMainText("you yelp with each pull, the knot far too large for your little pussy and stretches you much wider and wider while causing you some pain,", false); vagChange(2, 0); doHP(-5); } else { outputMainText("but your gaping cunt is more than enough to handle it,", false); }; }; outputMainText(" until it finally pulls free and he runs back off into the forest.", false); }; if (enemyID == 301){ outputMainText((((("Finally having someone as horny as she is, she pounces onto you. She presses your face against her exposed nipples, forcing you to lick the soreness that had been caused by her own rubbing. She grinds up and down your belly, tearing your " + clothesTop()) + " to tattered shreds with her claws while biting and suckling from your own ") + nipDesc()) + " nipples"), true); changeTop(-1); if (lactation > 0){ outputMainText(", delighting in the taste of your milk", false); }; outputMainText(((". However, it doesn't take long until she reaches beneath her loin cloth and pulls her bikini bottom to the side before she goes diving into your " + clothesBottom()) + ","), false); if ((((gender == 1)) || ((gender == 3)))){ outputMainText(((((((" digging out " + oneYour(1)) + " ") + cockDesc()) + " cock") + plural(1)) + "."), false); if (cockSize > 10){ outputMainText(((" She attempts to stand and squat down upon it, but, to her dismay, she can't seem to push it into her hungry pussy, even though she tried until tears welled up in her eyes from the painful stretching. Instead, she settles for hugging and humping the " + cockDesc()) + " thing, grinding her own stiff little erection into it, her feminine juices spilling down its length and over your body."), false); } else { if (cockSize > 5){ outputMainText(" She mewls and mrowls in pain as she stands up and squats down upon it. It spreads her so wide that it hurts her so much, yet she doesn't care, so desperate to fuck. Tears roll down her cheeks, but her mouth yawns wide with erotic joy, being filled so much.", false); } else { outputMainText(" She rises up, only to squat back down on your erection, your cock slipping into her supple folds. So absolutely overjoyed to finally have a cock in her, she scratches at your chest with her claws and bites down upon your neck.", false); }; }; }; if (gender == 2){ outputMainText(((((((" lapping at your " + vulvaDesc()) + " crotch and rouchly licking your ") + clitDesc()) + " clit") + plural(2)) + "."), false); if (clitSize > 25){ outputMainText(((((" With a wicked grin, she eyes your " + clitDesc()) + " clit") + plural(2)) + " hungrily."), false); if (clitSize > 100){ outputMainText(((((((" She attempts to stand and squat down upon " + oneYour(2)) + " erect button") + plural(2)) + ", but, to her dismay, she can't seem to push it into her hungry pussy, even though she tried until tears welled up in her eyes from the painful stretching. Instead, she settles for hugging and humping the ") + clitDesc()) + " thing, grinding her own stiff little erection into it, her feminine juices spilling down its length and over your body."), false); } else { if (clitSize > 50){ outputMainText(((((" She mewls and mrowls in pain as she stands up and squats down upon " + oneYour(2)) + " erect button") + plural(2)) + ". It spreads her so wide that it hurts her so much, yet she doesn't care, so desperate to fuck. Tears roll down her cheeks, but her mouth yawns wide with erotic joy, being filled so much."), false); } else { outputMainText(((((" She rises up, only to squat back down upon " + oneYour(2)) + " erect button") + plural(2)) + ", your cock slipping into her supple folds. So absolutely overjoyed to finally have a cock in her, she scratches at your chest with her claws and bites down upon your neck."), false); }; }; } else { outputMainText(" She glides back up your chest and presses her sloppy cunt to yours, grinding the two together.", false); }; }; outputMainText(" Her hips speed up faster and faster, widely working her pussy so much that the slick liquids spilling from her gurgle and churn into a bubbly mess. You too find her efforts to be extremely effective, your body quaking along with her.", false); if (cumAmount() > 550){ outputMainText(" She purrs loudly as she feels your cum explode within her, utterly pleased as it feels her so much that it squirts back out of her pussy with a loud lewd noise.", false); }; outputMainText("\r\r", false); if (knot == true){ outputMainText("With a high-pitched squeek, she pulls off of your night without thinking. She rubs her poor cunny from the pain, only to roll her eyes up into her head with the pleasant masturbation. ", false); }; outputMainText("Dazed and high with her climax, having finally overcome her heat a little, she stumbles away, her loin cloth pushed so far to the side that her lips shine between her legs for all to see.", false); if ((((percent() < 40)) && ((ballSize > 1)))){ outputMainText(" And she seems oddly content, as though her heat had passed with that romp for some reason...", false); }; }; if (enemyID == 302){ outputMainText("Seeing you laying defenseless and utterly aroused before him, the drunken equan falls to the ground. With a grunt and a grope, he pulls his huge cock from his pants, his erection barely 2/3 its full potential. Considering how drunk he is, it probably won't get much larger.", true); if ((((gender == 1)) || ((((gender == 3)) && ((percent() <= 50)))))){ outputMainText(((" Nevertheless, not caring whether you're male or female, he turns you over to find the hole everybody has. Giving your " + buttDesc()) + " ass a slap with his mug, he leans forward and plunges his erection deep inside."), false); } else { if ((((gender == 2)) || ((gender == 3)))){ outputMainText(((((" Nevertheless, he slips his arms behind your knees, pushing them up and foward as his cock plows into " + oneYour(2)) + " cunt") + plural(2)) + "."), true); if (vagSize < 13){ outputMainText(" You wince as it pushes in too far, pounding your cervix further and further into your belly, permanently stretching you a bit.", false); vagChange(1, 0); } else { if (vagSize < 7){ outputMainText(" With a cry, the large horse-cock proves too big for your relatively small pussy, stretching it dramatically and causing you some pain.", false); vagChange(3, 0); doHP(-(Math.floor((eStr / 2)))); } else { if (vagSize < 3){ outputMainText(((" You cry out in pain as the cock slams against your entrance, completely unable to fit. So, instead, the the horny equan turns you over, plunging his erection deep into your " + buttDesc()) + " ass until you can see it bulge through your belly."), false); doHP(-5); }; }; }; }; }; outputMainText(" Again and again, he has his way with your hole, until he lets out a loud whinny. Eyes going wide, you feel a flood of his hot stuff flush into your body, making you lose all thoughts of everything else...", false); if (cumAmount() > 0){ outputMainText(" Your cock explodes across the ground just before you collapse, forming a nice puddle to splash in.", false); }; outputMainText("\r\rAs drunk as he is, the large equan doesn't take long to pull out, cum dribbling in long strands from his huge cock and splattering across his pants, as he sways back towards Firmshaft.", false); doImpregnate(enemyBaby()); }; outputMainText("\r\rYou pass out in a puddle of mixed sensual fluids...", false); currentState = 1; doLust(-50); hrs = (2 + Math.floor((percent() / 20))); exhaustion = (exhaustion - Math.floor((percent() / 20))); doEnd(); } public function enemyBaby():int{ var tempNum:int; tempNum = 0; if (enemyID == 201){ tempNum = 100; }; if (enemyID == 302){ tempNum = 2; }; return (tempNum); } public function doStatus(time:int):void{ outputMainText("Afterwards...", true); if (pregnancy == true){ stats(0, 0, -(Math.floor((pregnancyTime / 25))), -(Math.floor((pregnancyTime / 25)))); if ((pregnancyTime + time) > pregMaxTime){ pregnancyTime = 0; pregnancy = false; doBirth(); } else { if (((((pregnancyTime + time) >= 80)) && ((pregnancyTime < 80)))){ lactChange(1); boobChange(1); if (lactation == 1){ outputMainText(" Your body must be getting ready for the baby that's growing inside of you. Even your breasts feel fuller...", false); } else { outputMainText("\r\rYour breasts are producing even more milk than normal. They're even a little fuller... Your body must be getting ready for the baby that's growing inside of you.", false); }; } else { if (((((pregnancyTime + time) >= 140)) && ((pregnancyTime < 140)))){ lactChange(1); boobChange(2); outputMainText("\r\rYour breasts feel sore from the all the milky swelling. They've grown three cup sizes since you've gotten pregnant and dribble more and more!", false); } else { if (((((pregnancyTime + time) >= 210)) && ((pregnancyTime < 210)))){ lactChange(2); boobChange(1); outputMainText("\r\rYour breasts have slowed in their pregnant swelling. They should definitely be prepared for whatever you might give birth to... you hope.", false); }; }; }; pregnancyTime = (pregnancyTime + time); stats(0, 0, Math.floor((pregnancyTime / 25)), Math.floor((pregnancyTime / 25))); }; }; if ((((((heat > 0)) && ((vagTotal > 0)))) && ((pregnancy == false)))){ if ((((heatTime > 0)) && (((heatTime - time) > 0)))){ heatTime = (heatTime - time); } else { if ((((heatTime < 0)) && (((heatTime + time) < 0)))){ heatTime = (heatTime + time); } else { if ((((heatTime >= 0)) && (((heatTime - time) < 0)))){ outputMainText("\r\rYour crotch feels hot and tingly, your face becoming flush. Thoughts of sex, being pounded and filled with seed until your womb has been sufficiently impregnated, permeate your mind and makes you greatly aroused. You're feeling especially fertile and extremely lustful as you go into heat...", false); pregChanceMod = (pregChanceMod + 15); stats(0, -5, 10, 0); doLust(15); vagMoist = (vagMoist + 1); heatTime = -24; } else { if ((((heatTime < 0)) && (((heatTime + time) >= 0)))){ outputMainText("\r\rYou breath a sigh of relief as the heat finally passes, your body calming and no longer needing to reproduce as much.", false); pregChanceMod = (pregChanceMod - 15); stats(0, 5, -10, 0); vagMoist = (vagMoist - 1); heatTime = heatMaxTime; }; }; }; }; }; if ((((((heat > 0)) && ((heatTime < 0)))) && ((pregnancy == true)))){ outputMainText("\r\rYou breath a sigh of relief as the heat passes, your body calming and no longer needing to reproduce as much. However, it seems to have ended a bit early...", false); pregChanceMod = (pregChanceMod - 15); stats(0, 5, -10, 0); vagMoist = (vagMoist - 1); heatTime = heatMaxTime; }; if ((((((heat < 1)) && ((vagTotal > 0)))) && ((heatTime > 0)))){ heatMaxTime = 0; heatTime = 0; }; if ((((((heat < 1)) && ((vagTotal > 0)))) && ((heatTime < 0)))){ pregChanceMod = (pregChanceMod - 15); stats(0, 5, -10, 0); vagMoist = (vagMoist - 1); heatMaxTime = 0; heatTime = 0; }; if (lactation > 0){ if (((((milkEngorgement + (lactation * time)) > 96)) && ((milkEngorgement <= 96)))){ outputMainText((("\r\rYour " + clothesTop()) + " feels moist around your nipples. Your breasts feel slightly swollen as blotches spread, milk leaking out. A bit engorged, it's a sign they should probably be attended to."), false); milkEngorgementLevel++; boobChange(1); } else { if (((((milkEngorgement + (lactation * time)) > 144)) && ((milkEngorgement <= 144)))){ outputMainText((("\r\rYour " + clothesTop()) + " is soaked in front. Milk dribbles from your nipples almost constantly, too much to retain. The abundant supply seems to be overwhelming the lack of demand..."), false); milkEngorgementLevel++; } else { if (((((milkEngorgement + (lactation * time)) > 216)) && ((milkEngorgement <= 216)))){ outputMainText((((("\r\rPulling " + pullUD(1)) + " your ") + clothesTop()) + ", jets of milk shoot from your breasts. Your nipples dribble uncontrollably, your breasts so sore and especially sensitive. All the milk flowing from your body arouses you, and will continue to do so until either you give your breasts some attention or your milk dries up."), false); milkEngorgementLevel++; }; }; }; milkEngorgement = (milkEngorgement + (lactation * time)); }; if ((((lactation > 0)) && ((udders == true)))){ if (((((udderEngorgement + (lactation * time)) > 96)) && ((udderEngorgement <= 96)))){ outputMainText((("\r\rYour " + clothesBottom()) + " feels moist beneath your teats. Your udder feels slightly swollen as milk leaks out. A bit engorged, it's a sign it should probably be attended to."), false); udderEngorgementLevel++; udderChange(1); } else { if (((((udderEngorgement + (lactation * time)) > 144)) && ((udderEngorgement <= 144)))){ outputMainText((("\r\rYour " + clothesBottom()) + " is soaked in front. Milk dribbles from your teats almost constantly, too much to retain. The abundant supply seems to be overwhelming the lack of demand..."), false); udderEngorgementLevel++; udderChange(1); } else { if (((((udderEngorgement + (lactation * time)) > 216)) && ((udderEngorgement <= 216)))){ outputMainText("\r\rJets of milk shoot from the teats of your udder with each step. When standing still, it dribbles constantly, your udder so big and sore and especially sensitive from being so stretched.", false); udderEngorgementLevel++; udderChange(1); }; }; }; udderEngorgement = (udderEngorgement + (lactation * time)); }; if (lactation > 0){ nipplePlay = (nipplePlay - time); }; if ((((lactation > 0)) && ((nipplePlay < -10)))){ lactation--; if (lactation == 0){ if (milkEngorgementLevel > 0){ boobChange(-1); }; if (udderEngorgementLevel == 1){ udderChange(-1); }; if (udderEngorgementLevel == 2){ udderChange(-2); }; if (udderEngorgementLevel == 3){ udderChange(-3); }; milkEngorgementLevel = 0; udderEngorgementLevel = 0; outputMainText("\r\rWithout demand, your breasts soon settle down, having expelled the last of their reserves. Your mammary glands have gone into hibernation, for now, shortly leaving your breasts nice and dry once again.", false); if (udders == true){ outputMainText(" The same goes for your udder.", false); }; }; nipplePlay = 0; udderPlay = 0; }; udderPlay = (udderPlay - time); if ((((((lactation > 0)) && ((udderPlay < -10)))) && ((udders == true)))){ lactation--; if (lactation == 0){ if (milkEngorgementLevel > 0){ boobChange(-1); }; if (udderEngorgementLevel == 1){ udderChange(-1); }; if (udderEngorgementLevel == 2){ udderChange(-2); }; if (udderEngorgementLevel == 3){ udderChange(-3); }; milkEngorgementLevel = 0; udderEngorgementLevel = 0; outputMainText("\r\rWithout demand, your udder and breasts soon settle down, having expelled the last of their reserves. Your mammary glands have gone into hibernation, for now, shortly leaving your udder, and your breasts, nice and dry once again.", false); }; nipplePlay = 0; udderPlay = 0; }; exhaustion = (exhaustion + time); if ((((exhaustion > 20)) && ((exhaustion <= 32)))){ outputMainText("\r\rYour body is getting tired, affecting your abilities to do things. Sleep is sounding like a nice idea...", false); if (exhaustionPenalty == 0){ exhaustionPenalty = 1; stats(-3, -3, 0, 0); }; } else { if ((((exhaustion > 32)) && ((exhaustion <= 44)))){ outputMainText("\r\rExhaustion is creeping over you, making any task seem tedious. Your wits are a lot less witty and your muscles are fatigued.", false); if ((((exhaustionPenalty == 1)) || ((exhaustionPenalty == 0)))){ exhaustionPenalty = 2; stats(-8, -8, 0, 0); }; } else { if (exhaustion > 44){ } else { if (exhaustionPenalty == 1){ exhaustionPenalty = 0; stats(3, 3, 0, 0); }; if (exhaustionPenalty == 2){ exhaustionPenalty = 0; stats(8, 8, 0, 0); }; }; }; }; if (((((((((blueBalls + time) > 84)) && ((blueBalls <= 84)))) && ((showBalls == true)))) && ((balls > 0)))){ outputMainText((((("\r\rYour " + ballDesc()) + " balls feel swollen and heavy within your ") + clothesBottom()) + ". The need to spill your seed makes you a little aroused."), false); doLust(Math.ceil((ballSize / 2))); }; blueBalls = (blueBalls + time); hrs = 0; if (currentText == "Afterwards..."){ outputMainText("", true); doProcess(); } else { doEnd(); }; } public function doForest():void{ var chance:int; chance = percent(); if (chance <= 25){ outputMainText("Walking through the forest, you begin to hear footsteps mix with your own... As you pause to listen in, a creature jumps out before you! A lone wolf, it growls, ready to attack. And judging by the red rod that bobs beneath its belly, it's probably male, and probably frustrated after some failed encounter with a female...", true); doNext(); doListen = function ():void{ enemyID = 201; currentState = 2; enemyBaseStats(); eMaxHP = eHP; doBattle(); }; }; if ((((chance > 25)) && ((chance <= 50)))){ outputMainText("You hear a hiss from behind a tree. Stopping cautiously, you manage to avoid stepping on a particularly dangerous snake. The cock-snake. Aptly named due to its head looking much like the glans of a human cock, this breed of snake is also known to devour that of the same... And if its opponent doesn't have one, they soon will.", true); doNext(); doListen = function ():void{ currentState = 2; enemyID = 101; enemyBaseStats(); eMaxHP = eHP; doBattle(); }; }; if ((((chance > 50)) && ((chance <= 75)))){ outputMainText("You hear ominous swishing through the trees around you...", true); if (percent() < (10 + runMod)){ outputMainText("\r\rYet you run manage off before anything can catch you.", false); hrs = 1; doEnd(); } else { if (breastSize < 3){ outputMainText("\r\rPeach-colored tentacles lash out at you from the tree-branches above, catching you by surprise. They flail around your chest, feeling about and scratching it roughly.\r\rHowever, the tentacles seem to be uninterested and disappear as quick as they came, leaving you with a rather hurtful chest and wasted time.", false); doHP(-(Math.floor(((percent() / 10) + 2)))); hrs = 1; doEnd(); } else { if (((((lactation + milkMod) > 3)) || ((((boobTotal > 2)) && (((lactation + milkMod) > 2)))))){ outputMainText((("\r\rA mass of peach-colored tentacles falls from the tree-branches above. Some of the tentacles waver out towards you, mostly aiming at your " + boobDesc()) + " chest. They seem rather non-threatening, however, as the mass rolls back and forth on the forest floor, almost as though it were a stumbling drunk.\r\rDo you allow the tentacles to come closer?"), true); buttonConfirm(); doListen = function ():void{ if (buttonChoice == 6){ outputMainText((("Cautiously standing still, you wait as the tentacles come right up to your breasts. They caress your " + nipDesc()) + " nipples, seemingly able to smell the milk within your breasts, and they wiggle even more like a drunk... It seems as though the creature smelled your large amount of milk production as you approached and became intoxicated by it.\r\r\rDo you let the creature indulge itself?"), true); buttonConfirm(); doListen = function ():void{ if (buttonChoice == 6){ outputMainText((((((((("You pull your " + clothesTop()) + " ") + pullUD(1)) + ", letting your ") + boobDesc()) + " chest bob out, practically inviting it to partake of your motherly liquid. Not to forsake such an opportunity, the tentacled mass rolls up to you, the tentacles squirming about your ") + nipDesc()) + " nipples until they stand hard and erect. Yet, the tentacles pull away, caressing and hugging your body as the main mass comes right up to you.\r\rThe mass of tentacles part, revealing a feminine face, slender and beautiful, with eyes closed. The tentacles dance atop her head, seemingly replacing her hair. Looking down, you can see more of her lithe body, thin with milky skin. Two breasts, barely handfuls, wobble upon her chest as tentacles, particularly thinner than the rest, dance about where her nipples would be. Overall, she seems quite short, maybe 4 feet tall at most, while the mass of tentacles could easily reah 6 feet in height."), true); doNext(); doListen = function ():void{ outputMainText((((((("The fair face moves up to one of your " + boobDesc()) + " breasts, the little mouth yawning wide to fit your ") + nipDesc()) + " nipple. She latches on the best she can, suckling intently from your chest. You let out a gasp as her expert suckling makes your body grow warm, a delightful tingling sensation making you quiver. Milk gushes from your tits as she gulps it down. Tentacles much thicker than the rest droop from her hair, their tips opening into soft maws that suckle from and kiss the ") + skinDesc()) + " of your breasts, leaving none unattended. It doesn't take long before you body is wracked by an intense boobgasm..."), true); doNext(); doListen = function ():void{ outputMainText((("Gasping for air as you come down from your climax, the feminine face and all the tentacles collapse, leaving hardly any milk still dribbling from your " + nipDesc()) + " nipples. Checking the creature, she seems to have passed out in a drunking slumber. Her face seems content, with a small smile, her tentacles writhing lazily about her. Two tentacles in particular look surprisingly active, through. Her small breasts jiggle about as their tentacle-nipples stiffen and soften. They shiver as you run your hands along them, several feet long before you reach their tips. Short, narrow needles protrude from the tips of these tentacle-nipples and they dribble some pearlescant fluid excessivly. You take an empty vial from your bag and gather some of the fluid before heading on your way..."), true); doSexP(20); nipplePlay = (nipplePlay + 6); doLust(-(Math.floor(((percent() / 10) + ((breastSize * sen) / 5))))); milkAmount(1); item1 = 201; hrs = 2; }; }; }; if (buttonChoice == 7){ outputMainText("You take the opportunity to run from the tentacles before the creature can come to its senses, easily avoiding it.", true); doSexP(7); hrs = 1; doEnd(); }; }; }; if (buttonChoice == 7){ outputMainText("You take the opportunity to run from the tentacles before the creature can come to its senses, easily avoiding it.", true); doSexP(4); hrs = 1; doEnd(); }; }; } else { outputMainText((((((((((("\r\rPeach-colored tentacles lash out at you from the tree-branches above, catching you by surprise. They flail around your " + boobDesc()) + " chest, feeling about and scratching it roughly. They pull back for a moment, but before you can recoup from your confused stupor, even more come flying out from the trees, this time whipping around your wrists and ankles.\r\rStruggle as you may, you can seem to wrench yourself free. You can only watch in fear as more tentacles pull your ") + clothesTop()) + " away and roam about your ") + boobDesc()) + " breasts. They poke and tease at your ") + nipDesc()) + " nipples, causing them to stand hard and erect. Then, short narrow needles draw out of two particularly thinner tentacles. They drip with some sort of pearlescant fluid and they plunge gently into each of your ") + boobTotal) + " fleshy masses..."), false); doNext(); doListen = function ():void{ boobChange(1); outputMainText((((("A sudden feeling of warmth overcomes you. Your breasts feel especially hot, heaving with your breath. Staring intently, you even notice them grow slightly in size.\r\rA moment later, your head jerks back as an intense feeling of fullness and swelling engulfs your sensitive tits. You recoil just in time to see streams of white liquid spew from your throbbing, " + nipDesc()) + " nipples. Milk continues to gush for a while, as more tentacles come close. These are much thicker than the ones with needles and their tips open into wet, soft maws. Each one latches onto your lactating breasts and begin to suckle...\r\rYou feel slightly light-headed from the fuzzy warmth that engulfs you, the pleasurable slurping of the hungry tentacles sucking you dry. Eventually, the tantalizing efforts make your body quiver, wracked by a strong orgasm... from your ") + boobDesc()) + " breasts."), true); doNext(); doListen = function ():void{ outputMainText((((("A minute later, the tentacles retract from whence they came, leaving you to collapse to your knees. You breasts still feel larger than before, especially when you put your " + clothesTop()) + " back into place. And wet blotches seep across the fabric, your ") + nipDesc()) + " still dribbling with milk..."), true); lactChange(1); milkAmount(1); nipplePlay = (nipplePlay + 4); doSexP(10); doLust(-(Math.floor(((percent() / 20) + ((breastSize * sen) / 5))))); doHP(-(Math.floor((percent() / 10)))); hrs = 2; doEnd(); }; }; }; }; }; }; if (chance > 75){ outputMainText("After a few hours of being lost and randomly wandering through the maze of trees, you come across a path. Would you like to follow it?", true); buttonConfirm(); doListen = function ():void{ if (buttonChoice == 6){ if (currentZone == 1){ outputMainText("Following the path, the trees grow slightly sparser as you come upon a large clearing. Most of the clearing has been walled off by tree-trunks lashed together with rope. You hear some vicious growls, but also plenty of coherent speech, echoing from behind the wall. A whole bustling city. The path you followed brings you right to the front gates, where furry wolf-like gaurds kindly greet you and allow you to pass.\r\rYou have now entered the Lupan home-city of Tieden!", true); regionChange(3); hrs = 4; doEnd(); } else { if (currentZone == 3){ outputMainText("Following the path, the trees grow much sparser opening up to rolling hills. Not far, you see tall buildings of wood and stone, with open streets of dirt and pebbles, nestled between the hills. Fur-less people move all about, busy doing odd jobs or having fun.\r\rYou have found the Human home-city of Softlik!", true); regionChange(1); hrs = 4; doEnd(); }; }; } else { outputMainText("You return from whence you came.", true); hrs = 1; doEnd(); }; }; }; } public function dayTime(Time:Number):void{ var addTime:int; addTime = 0; if ((hour + Time) >= 24){ addTime = (Time - (24 - hour)); hour = 0; day = (day + 1); } else { addTime = Time; }; hour = (hour + addTime); DayValuePane.text = ((int(day) + "\r\r") + int(hour)); doStatus(Time); } public function milkAmount(source:int):int{ var tempNum:int; tempNum = 0; if (source == 1){ if (milkEngorgementLevel == 0){ if (boobTotal == 2){ tempNum = (((breastSize * (lactation + milkMod)) * 0.5) * 2); }; if (boobTotal == 6){ tempNum = (((breastSize * (lactation + milkMod)) * 0.5) * 4); }; }; if (milkEngorgementLevel == 1){ if (boobTotal == 2){ tempNum = (((breastSize * (lactation + milkMod)) * 1.5) * 2); }; if (boobTotal == 6){ tempNum = (((breastSize * (lactation + milkMod)) * 1.5) * 4); }; }; if (milkEngorgementLevel == 2){ if (boobTotal == 2){ tempNum = (((breastSize * (lactation + milkMod)) * 2) * 2); }; if (boobTotal == 6){ tempNum = (((breastSize * (lactation + milkMod)) * 2) * 4); }; }; if (milkEngorgementLevel == 3){ if (boobTotal == 2){ tempNum = (((breastSize * (lactation + milkMod)) * 3) * 2); }; if (boobTotal == 6){ tempNum = (((breastSize * (lactation + milkMod)) * 3) * 4); }; }; if (milkEngorgementLevel > 0){ milkEngorgementLevel = 0; boobChange(-1); }; milkEngorgement = 0; }; if (source == 2){ if (udderEngorgementLevel == 0){ tempNum = ((udderSize * (lactation + milkMod)) * 2); }; if (udderEngorgementLevel == 1){ tempNum = ((udderSize * (lactation + milkMod)) * 6); }; if (udderEngorgementLevel == 2){ tempNum = ((udderSize * (lactation + milkMod)) * 8); }; if (udderEngorgementLevel == 3){ tempNum = ((udderSize * (lactation + milkMod)) * 12); }; if (udderEngorgementLevel == 1){ udderEngorgementLevel = 0; udderChange(-1); }; if (udderEngorgementLevel == 2){ (udderEngorgementLevel == 0); udderChange(-2); }; if (udderEngorgementLevel > 2){ udderEngorgementLevel = 0; udderChange(-3); }; udderEngorgement = 0; }; return (tempNum); } public function clothesBottom():String{ var tempStr:String; tempStr = ("CLOTHES BOTTOM ERROR " + attireBot); if (attireBot == -1){ tempStr = "tattered shreds"; }; if (attireBot == 0){ tempStr = "naked loins"; }; if (attireBot == 2){ tempStr = "pants"; }; if (attireBot == 4){ tempStr = "bikini bottom"; }; if (attireBot == 5){ tempStr = "elegant dress"; }; if (attireBot == 6){ tempStr = "latex suit"; }; if (attireBot == 7){ tempStr = "skirt"; }; if (attireBot == 8){ tempStr = "shorts"; }; if (attireBot == 10){ tempStr = "diaper"; }; if (attireBot == 11){ tempStr = "poofy diaper"; }; if (attireBot == 12){ tempStr = "sundress"; }; if (attireBot == 13){ tempStr = "skimpy dress"; }; if (attireBot == 14){ tempStr = "short skirt"; }; if (attireBot == 15){ tempStr = "short shorts"; }; return (tempStr); } public function stats(stre:int, menta:int, libi:int, sens:int){ str = (str + stre); ment = (ment + menta); lib = (lib + libi); sen = (sen + sens); if (str > 100){ str = 100; }; if (str < 1){ str = 1; }; if (tou > 100){ tou = 100; }; if (tou < 1){ tou = 1; }; if (ment > 100){ ment = 100; }; if (ment < 1){ ment = 1; }; if (lib > 100){ lib = 100; }; if (lib < 0){ lib = 0; }; if (sen > 100){ sen = 100; }; if (sen < -99){ sen = -99; }; if (lust > 100){ lust = 100; }; if (lust < 0){ lust = 0; }; if (stre > 0){ strUp.visible = true; strDown.visible = false; }; if (stre < 0){ strDown.visible = true; strUp.visible = false; }; if (menta > 0){ mentaUp.visible = true; mentaDown.visible = false; }; if (menta < 0){ mentaDown.visible = true; mentaUp.visible = false; }; if (libi > 0){ libUp.visible = true; libDown.visible = false; }; if (libi < 0){ libDown.visible = true; libUp.visible = false; }; if (sens > 0){ senUp.visible = true; senDown.visible = false; }; if (sens < 0){ senDown.visible = true; senUp.visible = false; }; statDisplay(); } public function doCockMasturbate():void{ var whichCock:String; var getCum:int; var chance:int; whichCock = ""; getCum = cumAmount(); while (whichCock == "") { chance = percent(); if ((((chance <= 25)) && ((humanCocks > 0)))){ whichCock = "hard human rod"; }; if ((((((chance > 25)) && ((chance <= 50)))) && ((horseCocks > 0)))){ whichCock = "long equine flesh"; }; if ((((((chance > 50)) && ((chance <= 75)))) && ((wolfCocks > 0)))){ whichCock = "pointy wolf meat"; }; if ((((((chance > 75)) && ((chance <= 100)))) && ((catCocks > 0)))){ whichCock = "pink thorny cat prick"; }; }; if (lust < 20){ outputMainText((("You're hardly aroused enough to get your cock" + plural(1)) + " standing, let alone masturbate. You'll just have to settle for something else."), false); doEnd(); }; if (ment >= (lib - 10)){ outputMainText((((((((((("You sneak off to the private place where you sleep in " + regionName()) + " with a bunch of towels in hand. Carefully, so as to not let anybody hear, you pull ") + pullUD(2)) + " your ") + clothesBottom()) + ", your ") + cockDesc()) + " erection") + plural(1)) + " bobbing out.\r\rYou wrap your "), true); }; if ((((ment < (lib - 10))) && ((ment >= (lib - 25))))){ outputMainText((((((((((((("You quickly head off to the private place where you sleep with your intention clear as those around " + regionName()) + " can easily see your ") + cockDesc()) + " bulge growing in your ") + clothesBottom()) + ". Before you even reach your destination, you're already pulling the ") + clothesBottom()) + " ") + pullUD(2)) + ", your cock") + plural(1)) + " flopping out.\r\rYou're not too sure if anybody saw it before you disappeared into solitude, but that doesn't matter as you wrap your "), true); }; if ((((ment < (lib - 25))) && ((ment >= (lib - 50))))){ outputMainText((((((((((("Your chest heaving with your heavy breathing, you don't think you can reach the private place where you sleep without blowing your load, the thought of coming hanging so heavily on your mind.\r\rInstead, you duck into one of the more hidden corners of " + regionName()) + " as you pull ") + pullUD(2)) + " your ") + clothesBottom()) + " and let your ") + cockDesc()) + " cock") + plural(1)) + " spring out. You hear somebody pass nearby, but you don't care as you wrap your "), true); }; if (ment < (lib - 50)){ outputMainText((((((((((("Without a second thought, right in the middle of " + regionName()) + " your pull ") + pullUD(2)) + " your ") + clothesBottom()) + " and whip out your ") + cockDesc()) + " wang") + plural(1)) + ".\r\rPeople gasp and stare as you wrap your "), true); }; if ((cockSize * cockSizeMod) <= 4){ outputMainText((("hand around your " + whichCock) + " and slowly pump it, building strong and stronger."), false); }; if (((((cockSize * cockSizeMod) > 4)) && (((cockSize * cockSizeMod) <= 18)))){ outputMainText((("hands around your " + whichCock) + " , "), false); if ((cockSize * cockSizeMod) > 10){ if (breastSize > 2){ outputMainText((("hugging it between your " + boobTotal) + " breasts, "), false); } else { outputMainText("hugging it to your chest, ", false); }; }; outputMainText("pounding your fists up and down its length.", false); }; if ((cockSize * cockSizeMod) > 18){ outputMainText((("arms around " + whichCock) + ", hugging it close and trying to jerk yourself the best you can."), false); }; if (cockMoist == 1){ outputMainText(" Drops of pre help aid your efforts, though it's still a little rough.", false); }; if (cockMoist == 2){ outputMainText(((" A dribble of pre leaks out, sufficiently coating your " + cockDesc()) + " cock and making your efforts so much easier."), false); }; if (cockMoist == 3){ outputMainText(((((" Pre squeezes out of your cock and more than coat your " + cockDesc()) + " cock, with plenty extra drooling down across your ") + skinDesc()) + "."), false); }; if (cockMoist > 3){ outputMainText(((" A flood of pre gushes out from the tip, sufficiently coating yourself, your " + cockDesc()) + " cock and then some in slick lubrication."), false); }; if (showBalls == true){ outputMainText(((((" One of your hands reaches down to knead your " + ballDesc()) + " scrotum, letting your ") + balls) + " cum-factories know it's time."), false); }; if (lust <= 30){ outputMainText("\r\rSlowly,", false); }; if ((((lust > 30)) && ((lust <= 70)))){ outputMainText("\r\rQuickly,", false); }; if (lust > 70){ outputMainText("\r\rAlmost instantly,", false); }; outputMainText(((" your " + whichCock) + " throbs, a pressure building at the base of your spine"), false); if (knot == true){ outputMainText(", the base of your cock swelling into a thick knot that you begin to tug", false); }; outputMainText(".", false); if (cockTotal > 1){ outputMainText(" Your other cocks do the same, your hands dashing back and forth between them, attempting to not leave them completely ignored.", false); }; outputMainText((((("Your " + hipDesc()) + " hips soon jerk as thick strands of hot spunk launch from your cock-tip") + plural(1)) + ","), false); if (getCum <= 24){ outputMainText(" with a bit more drooling down to the floor.", false); }; if ((((getCum > 24)) && ((getCum <= 72)))){ outputMainText(" spitting small wads again and again until it's done.", false); }; if ((((getCum > 72)) && ((getCum <= 1000)))){ outputMainText(" spewing large gobs again and again until you've made a heck of a mess.", false); }; if ((((getCum > 1000)) && ((getCum <= 2200)))){ outputMainText(" coming more and more, like it can't stop, until you've made so much cum that you could feed person with it for a day...", false); }; if ((((getCum > 2200)) && ((getCum <= 4500)))){ outputMainText(" the stuff gushing like a fire-hose. Somewhere between half and a full gallon, you're not sure what to do with it all!", false); }; if ((((getCum > 4500)) && ((getCum <= 20000)))){ outputMainText(" gallons upon gallons of it spewing and spraying out, nearly nonstop. If you had a tub with you, you could have taken a bath in it all!", false); }; if (getCum > 20000){ outputMainText(" so much, so strong, it keeps on spewing out! Gallons and gallons, your body is wracked by the long ejaculation. After a while, your mind can't take any more and you pass out, only to wake up in a pool of cum and no way to take care of it all... You sneak away.", false); doLust(-100); doSexP(20); hrs = 5; exhaustion = (exhaustion - 2); doEnd(); }; if (ment >= (lib - 10)){ outputMainText("\r\rYou quietly heave as you attmempt to clean up your mess with the towels you have brought along, hiding them until you can safely clean them without being caught. Except for the smell that permeates the area, you don't think anybody would catch on to your lewd actions, and you continue on with your day.", false); }; if ((((ment < (lib - 10))) && ((ment >= (lib - 25))))){ outputMainText("\r\rComing down from your high, you clean up your mess the best you can, though its likely some cum was left behind. At least, it smells like some was. And as you leave the place, one of your neighbors eyes you with a surprised look. You were probably a bit loud... Or maybe you have a wad of cum in your hair?", false); }; if ((((ment < (lib - 25))) && ((ment >= (lib - 50))))){ outputMainText((((("\r\rYou realize your hiding place is a mess as you come to your senses. Before you're caught, you quickly pull " + pullUD(2)) + " your ") + clothesBottom()) + ", even though your cock is still drooling and leaving quite the blotch. As you attempt to casually walk away, some nearby strangers blink at you curiously, not quite sure what they just heard. You then dash off before anybody tries to check out what you left behind."), false); }; if (ment < (lib - 50)){ outputMainText((((("\r\rGasping, you blink and look around you. You've gathered quite the crowd, especially some women, and they all gaze out you in amazement. A few tug at their own groins, ducking away from the rest, while others don't look so happy at what you have done, especially the ones with children beside them. You pull " + pullUD(2)) + " your ") + clothesBottom()) + ", cum dripping down the front and smearing about within, and you slink away, trying to avoid any more stares. Although, your heart pounds within your chest at the thought of what you had just done..."), false); }; outputMainText((("\r\r\rYou produced " + getCum) + " ml of hot spunk!"), false); doSexP(10); doLust(-((sen * 2))); hrs = 1; doEnd(); } public function doSave(slot:int):void{ var so:SharedObject; so = SharedObject.getLocal("NiminFetishFantasy"); if (!so.data.slots){ so.data.slots = []; }; so.data.slots[slot] = {}; so.data.slots[slot].currentState = currentState; so.data.slots[slot].currentZone = currentZone; so.data.slots[slot].str = str; so.data.slots[slot].ment = ment; so.data.slots[slot].lib = lib; so.data.slots[slot].sen = sen; so.data.slots[slot].HP = HP; so.data.slots[slot].lust = lust; so.data.slots[slot].coin = coin; so.data.slots[slot].day = day; so.data.slots[slot].hour = hour; so.data.slots[slot].SexP = SexP; so.data.slots[slot].levelUP = levelUP; so.data.slots[slot].level = level; so.data.slots[slot].runMod = runMod; so.data.slots[slot].rapeMod = rapeMod; so.data.slots[slot].cumMod = cumMod; so.data.slots[slot].cockSizeMod = cockSizeMod; so.data.slots[slot].milkMod = milkMod; so.data.slots[slot].carryMod = carryMod; so.data.slots[slot].bellyMod = bellyMod; so.data.slots[slot].pregChanceMod = pregChanceMod; so.data.slots[slot].pregTimeMod = pregTimeMod; so.data.slots[slot].enticeMod = enticeMod; so.data.slots[slot].gender = gender; so.data.slots[slot].race = race; so.data.slots[slot].body = body; so.data.slots[slot].dominant = dominant; so.data.slots[slot].hips = hips; so.data.slots[slot].butt = butt; so.data.slots[slot].tallness = tallness; so.data.slots[slot].skinType = skinType; so.data.slots[slot].tail = tail; so.data.slots[slot].ears = ears; so.data.slots[slot].cockTotal = cockTotal; so.data.slots[slot].humanCocks = humanCocks; so.data.slots[slot].horseCocks = horseCocks; so.data.slots[slot].wolfCocks = wolfCocks; so.data.slots[slot].catCocks = catCocks; so.data.slots[slot].cockSize = cockSize; so.data.slots[slot].cockMoist = cockMoist; so.data.slots[slot].balls = balls; so.data.slots[slot].ballSize = ballSize; so.data.slots[slot].showBalls = showBalls; so.data.slots[slot].knot = knot; so.data.slots[slot].breastSize = breastSize; so.data.slots[slot].boobTotal = boobTotal; so.data.slots[slot].nippleSize = nippleSize; so.data.slots[slot].udders = udders; so.data.slots[slot].udderSize = udderSize; so.data.slots[slot].teatSize = teatSize; so.data.slots[slot].clitSize = clitSize; so.data.slots[slot].vagTotal = vagTotal; so.data.slots[slot].vagSize = vagSize; so.data.slots[slot].vagMoist = vagMoist; so.data.slots[slot].vulvaSize = vulvaSize; so.data.slots[slot].attireTop = attireTop; so.data.slots[slot].attireBot = attireBot; so.data.slots[slot].weapon = weapon; so.data.slots[slot].pregnancy = pregnancy; so.data.slots[slot].pregnancyType = pregnancyType; so.data.slots[slot].pregnancyTime = pregnancyTime; so.data.slots[slot].pregMaxTime = pregMaxTime; so.data.slots[slot].exhaustion = exhaustion; so.data.slots[slot].exhaustionPenalty = exhaustionPenalty; so.data.slots[slot].milkEngorgement = milkEngorgement; so.data.slots[slot].milkEngorgementLevel = milkEngorgementLevel; so.data.slots[slot].udderEngorgement = udderEngorgement; so.data.slots[slot].udderEngorgementLevel = udderEngorgementLevel; so.data.slots[slot].heat = heat; so.data.slots[slot].heatTime = heatTime; so.data.slots[slot].heatMaxTime = heatMaxTime; so.data.slots[slot].lactation = lactation; so.data.slots[slot].nipplePlay = nipplePlay; so.data.slots[slot].udderPlay = udderPlay; so.data.slots[slot].blueBalls = blueBalls; so.data.slots[slot].teatPump = teatPump; so.data.slots[slot].nipPump = nipPump; so.data.slots[slot].cockPump = cockPump; so.data.slots[slot].clitPump = clitPump; so.data.slots[slot].vulvaPump = vulvaPump; so.data.slots[slot].humanAffinity = humanAffinity; so.data.slots[slot].horseAffinity = horseAffinity; so.data.slots[slot].wolfAffinity = wolfAffinity; so.data.slots[slot].catAffinity = catAffinity; so.data.slots[slot].cowAffinity = cowAffinity; so.data.slots[slot].lilaRep = lilaRep; so.data.slots[slot].malonRep = malonRep; so.data.slots[slot].itemSlot1 = itemSlot1; so.data.slots[slot].itemSlot2 = itemSlot2; so.data.slots[slot].itemSlot3 = itemSlot3; so.data.slots[slot].itemSlot5 = itemSlot5; so.data.slots[slot].itemSlot6 = itemSlot6; so.data.slots[slot].itemSlot7 = itemSlot7; so.data.slots[slot].itemSlot9 = itemSlot9; so.data.slots[slot].itemSlot10 = itemSlot10; so.data.slots[slot].itemSlot11 = itemSlot11; } public function doLake():void{ var chance:int; chance = percent(); if (chance <= 50){ outputMainText("At the edge of the lake, knocking into the bank with the subtle waves, you spot a piece of cloth. Pulling it out, you let out an 'ew' as long strands of clear slime drip from it. Nevertheless, you think it's a fantastic idea to hope onto it.\r\r(You should really get your kleptomania checked)", true); item1 = 213; hrs = 2; doEnd(); }; if ((((chance > 50)) && ((chance <= 100)))){ outputMainText("You wander around the lake, but you don't find much. However, in the distance you hear some soft singing that elates your body and mind.", true); stats(1, 2, -1, 0); hrs = 1; doEnd(); }; } public function doSizCalit():void{ var chance:int; chance = percent(); if (chance <= 15){ if (lilaRep == 3){ outputMainText("You come across Lilah as you walk through the city. She grins and runs up to you, pouncing you with a great big hug around your waist. She thanks you again, although she shifts awkwardly as she lets go, 6 blotches covering her dress from chest to belly, with another, smaller one below...\r\rShe runs off, embarassed at her situation and tries to take care of it herself.", true); hrs = 1; doEnd(); } else { if (lilaRep == 2){ outputMainText("You come across Lilah as you walk through the city. She walks up with a smile to say hello and thanks you again, though she shifts awkwardly as she stands, a small blotch forming on her dress at her groin as she recalls how you helped her...\r\rShe runs off, embarassed at her situation and tries to take care of it herself.", true); hrs = 1; doEnd(); } else { if ((((((((((((((((cockMoist > 3)) || ((vagMoist > 3)))) || ((((cockMoist > 2)) && ((lust > 25)))))) || ((((vagMoist > 2)) && ((lust > 25)))))) || ((((cockMoist > 1)) && ((lust > 50)))))) || ((((vagMoist > 1)) && ((lust > 50)))))) || ((((cockMoist > 0)) && ((lust > 75)))))) || ((((vagMoist > 0)) && ((lust > 75)))))){ bc(); outputMainText((("A little felin girl slowly approaches you, an awkward kink in her step. The cat-like ears atop her head flick about anxiously as she coils her tail over and over in her nervous hands. She seems to be looking side to side for others, but her eyes keep glancing across you. Eventually, she comes right up to you and with a squeak in her voice and a slight lisp, she asks,\r\r'Umm... E-Excuse me. B-But can yew help me?'\r\rShe stares at the wet blotch in your " + clothesBottom()) + " and then moves her tail aside to reveal her own dress. From her groin all the way down to the ground runs a clear path of moistness, rather obvious now that she's revealed it. She speaks again, meekly and cutely,\r\r'Th-The other kids make fun of me because I'm so wet... They say I wee'd myself, but-but...' The fur in her cheeks blush red. 'It is my first heat and I-I was too embarassed to tell Mommy... C-Can yew help me?'\r\rShe looks once more to your own wetness issue, hoping you knew better how to handle it."), true); if (lilaRep == 1){ outputMainText("\r\rYou've seen this girl before, yet she doesn't seem to recall your face nor what you might have done before. You probably didn't leave a strong enough impression or the memory got lost in her stress from last time.", false); }; outputMainText("\r\r\rWhat do you do?", false); viewButtonOutline(0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0); viewButtonText(0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0); if (checkItem(103)){ buttonWrite(2, "Dry Sand"); Choice2.visible = true; }; buttonWrite(5, "Masturbate"); buttonWrite(6, "Lick"); buttonWrite(7, "Sex"); buttonWrite(10, "Get Help"); doListen = function ():void{ if (buttonChoice == 2){ outputMainText("You reach into your bag and pull out a dose of Magical Sand of Dryness. You give it to the poor girl and explain how to use it. She nods and before you can turn around she immediately lifts her dress.\r\rHer little fuzzy nether-lips are pink and swollen, with webs of her feminine arousal splayed throughout her small thighs. Her lowest pair of her six nipples are also visible, glowing slightly red as she has probably been rubbing them too much lately. Blushing heavily, she takes the sand in her small hand and brings it down to her crotch. With a mewl she touches herself, her knees knocking together as she shudders. Small gasps escape her lips as she rubs it in, her hand slipping over her sensitive button again and again, more than is needed by the sand. The slickness of her young pussy slowly dries up, but that doesn't prevent her from collapsing to her knees as she shudders.\r\rAfter a few awkward moments, her eyes snap open, her cheeks even redder than before, as she jumps to her feet. Wobbling a little, she brushes her dress down, her tail hanging languidly while the tip swishes from side to side, contently. She presses her dress to her crotch with a hand and smiles.\r\r'It's not wet anymore!' She cheers happily.", true); doNext(); doListen = function ():void{ outputMainText("Whether it was because of the sand or the relaxation in her lust, she seems to be dripping no longer. She lunges forward and wraps her arms around your waist, hugging into your own dampness.\r\r'Thank yew so much!'\r\rShe lets go and fumbles with one of her pockets.\r\r'Pwease, have this. It's not much... But I was going to drink it later to show I was a big girl. And now I don't have to!'\r\rWith a smile, she hands you a vial of Cat's Meow.", true); stats(0, 1, 0, 0); lilaRep = 2; doSexP(25); item1 = 105; hrs = 1; doEnd(); }; }; if (buttonChoice == 5){ bc(); outputMainText("You offer to help her learn how to take care of it herself, though you mention it might be a bit... intimate. Nervous and unsure, she meekly nods. Taking your hand, you lead her to your private hut high in the trees where you have been sleeping.\r\rSitting beside her on your bed, you tell her that she'll have to reach up to where it feels the hottest. Nodding, and without thinking, she pulls up her dress in front of you before you can turn away. Her little fuzzy nether-lips are pink and swollen, with webs of her feminine arousal splayed throughout her small lap. Blushing heavily, she turns to you and mewls,\r\r'I-I'm scared... C-Can you show me?", true); viewButtonOutline(0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0); viewButtonText(0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0); if (gender != 0){ buttonWrite(5, "On yourself"); Choice5.visible = true; }; buttonWrite(7, "On her"); buttonWrite(10, "Don't"); doListen = function ():void{ if (buttonChoice == 6){ if (gender == 0){ }; outputMainText((((("Pulling " + pullUD(2)) + " your ") + clothesBottom()) + ", you give her a good view of your "), true); if (cockTotal > 0){ outputMainText((((cockDesc() + " appendage") + plural(1)) + ". She shrieks at the sight of such an odd thing, closing her eyes and running out the door, her wet dress sticking to her belly while her nethers are clear for all to see.\r\rFortunately, little girls showing off their nethers is somewhat common in Siz'Calit and nobody seems to pay any mind."), false); doLust(3); lilaRep = 1; hrs = 2; doEnd(); } else { if (vulvaSize > 2){ outputMainText((vulvaDesc() + " female sex. It's so mature and large, so much stranger than her own, that the girl shuts her eyes and covers them with her hands.\r\r'I'm sorry miss lady, I-I don't think I'm weady for this'\r\rStill covering her eyes, she jumps off the bed and heads out the door of the hut, her moist skirt stuck to her belly and her nethers clear for everyone to see."), false); doLust(3); lilaRep = 1; hrs = 2; doEnd(); } else { outputMainText((((((vulvaDesc() + " female sex. Not much different than herself, she stares intently at the moist webs that mirrors her own lap. Taking your fingers, you rub up through your cleft") + plural(2)) + " focusing on the ") + clitDesc()) + " button therein.\r\rDoing the same, the little girl lets out a gasp as she touches herself, her thighs twitching upon the bed. You smile at her, placing a hand on her head between her ears and continue to fondle yourself.\r\rAgain, she does the same, although soon her eyes close and her small hand moves faster and faster. She leans into your body, allowing you to wrap her arm around her while your other busies itself at your groin. Rapidly, you begin to gasp, more aroused than you thought you were, and she echoes in turn.\r\rWithin moments, you both cry out in unison, collapsing onto the bed in an orgasmic fit, your combined honey dripping down the side."), true); doNext(); doListen = function ():void{ outputMainText("The little felin girl snuggles into your body, hugging you close as she doses off, a leg hanging over your own as her bare sex presses against your thigh. Not wanting to move, you do the same, falling asleep beside her.", true); doNext(); doListen = function ():void{ outputMainText((("Some hours later, she rustles awake within your arms, rousing you as well. She nuzzles into your " + boobDesc()) + " chest, purring softly. A few sweet moments pass and she mews, slipping a hand between her legs.\r\r'Thank yew so much! It woked!' She grins happily. Then she blushes, 'And thank yew for teaching me... I'll neva forget it!'\r\rKissing you on the cheek, she pushes something into your belly before hopping off the bed and running out of the hut, her tail swishing high behind her ...And her butt in plain view as she forgot to string the perky tail through its hole, leaving it to pull the dress up from underneath."), true); doLust(-(Math.floor((sen / 2)))); exhaustion = 0; hrs = 6; stats(0, 4, 0, 2); lilaRep = 3; item1 = 200; affinity(-1, -1, -1, Math.floor(((percent() / 20) + 4)), -1); doSexP(45); doEnd(); }; }; }; }; }; if (buttonChoice == 7){ outputMainText((("Nodding, you carefully caress up the girl's thigh. She clenches her eyes shut at first as your hand approaches her sensitive area. Her tiny nether-lips are so soft and delicate on your fingertips, like flower petals. Flower petals completely drenched in dew.\r\rShe lets out a short gasp as you focus upon her little button. Her childish hips squirm on the bed, her thighs quaking uncontrollably. All the while, her eyes still shut.\r\rWithin just a few moments of gently fondling the girl, her body seizes and she lets out stuttered mewls. Your hand is swamped in a flood of her feminine honey, drenching her dress and the side of the bed. She falls towards you, gasping for breath as she grasps at your " + clothesTop()) + "."), true); doNext(); doListen = function ():void{ outputMainText("A few minutes later, she sits upright, a bit woozy. As her wits return to her, she looks down at your hand and how it glistens with her moisture. Aghast, she hops off the bed.\r\r'I'm so sowwy! Please, forgive me! Thanks for trying to help, please, take this!'\r\rShe pulls a vial from your dress and hands it to you before darting out of the hut, her dress still hiked up around her waist and stuck there from all the moisture, leaving her nethers free for all to see.\r\r\rYou have obtained a Cat's Meow!", true); lilaRep = 2; doSexP(30); item1 = 105; hrs = 3; doEnd(); }; }; if (buttonChoice == 10){ outputMainText("Deciding it best to not giving any more involved than you already are, you pat on her head between her ears. You tell her this is something her mommy should teach her and that it's nothing to be ashamed of. You pat your own moistness as proof and dab a bit of it on her little button nose.\r\rCheered up a little, she smiles and gives you a hug.\r\r'Thank yew. I'll try!'\r\rShe pushes her dress back down and runs out the door, leaving you feeling slightly warm and fuzzy inside.", true); stats(0, 3, 0, 0); lilaRep = 1; hrs = 2; doEnd(); }; }; }; if (buttonChoice == 6){ bc(); outputMainText("You offer to help lick the mess from her, if she's alright with going to the private hut where you're staying. As licking is quite common among Felin's, she nods her head in agreement and takes your hand in hers. The two of you head up to your hut in the trees.\r\rYou help her up onto the bed, her legs dangling off to the side. You kneel down before her, gently petting your knees as you wait for her to be comfortable enough. She closes her eyes and nods, pulling up her wet dress. Her cheeks flush with an instense blush as you inspect her tiny lap, completely filled with slick webs, her tender nether-lips pink and puffing out from her fur. You pull her legs open so your head can fit in between, a soft mewl escaping her lips. You lean forward, licking the stuff up from her thighs...\r\r\rJust clean up the stuff or lick her virgin sex more intimately?", true); viewButtonOutline(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0); viewButtonText(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0); buttonWrite(5, "Clean"); buttonWrite(7, "Intimate"); doListen = function ():void{ if (buttonChoice == 5){ outputMainText("Carefully, you slurp the stuff up from her fur. Slowly going up her thighs, her hips twitch, her tail flailing wildly behind her. Her eyes clench as you come closer to her naughty bits, her hands clenching the bedsheets with anxiety.\r\rNot wanting to go too far, you gently lap at her swollen nether-lips, the soft, delicate folds like flower petals. Flower petals completely drenched in dew. Quickly and cautiously, you take care of what you can before she lets out a soft moan.\r\rEyes still clenched shut, you nudge her and tell her you're finished. Her eyes blink open and she looks down at herself. She looks a bit happier, noticing she's relatively dry, but a shiver shoots through her small body and she clenches her thighs.\r\rIn an instant, she flips her dress down and hops from the bed, running out of the hut, calling back, 'Th-Thank you!'\r\rAs she darts through the doorway, you hear a splash. A large gob of feminine honey marks the floor, just before the exit, trailing along her path. You wipe the massive amount of slick fluids from your own face, feeling a bit tingly yourself, and go on your way.", true); lilaRep = 1; doLust(Math.floor((lib / 2))); affinity(-1, -1, -1, Math.floor(((percent() / 20) + 4)), -1); hrs = 3; doEnd(); }; if (buttonChoice == 7){ outputMainText((("Carefully, you slurp the stuff up from her fur. Slowly going up her thighs, her hips twitch, her tail flailing wildly behind her. Her eyes clench as you come closer to her naughty bits, her hands clenching the bedsheets with anxiety.\r\rAs you reach her swollen nether-lips, your tongue licks across the soft, delicate folds. Like petite flower petals, your mouth nibbles gently on the dew-drenched bits, making her hips jerk upon the bed. You slurp up more stuff as it gushes from her virgin sex, swamping your face from nose to chin in the slick sweetness. Your tongue roams up through the supple slit, until it lands at the little button in the front. Your maw engulfs that corner of her childish vulva, drvouring her sensitive portions with intense sucking. In mere seconds, her whole body quivers, her spine seizing and falling backwards onto the bed. Her legs wrap around your head and weakly push you into her cunt as a flood of her feminine honey splashes out around you, covering nearly all your face and spilling down your " + boobDesc()) + " chest.\r\rMoments, later, she lets go, purring softly as she falls asleep. You wipe your face off, cleaning up some of the mess, before curling up beside her, surprisingly tired. As you drift off, she rolls towards you and snuggles against your body, her leg crossing over yours and her sex pushing into your thigh..."), true); doNext(); doListen = function ():void{ outputMainText((("Some hours later, she rustles awake within your arms, rousing you as well. She nuzzles into your " + boobDesc()) + " chest, purring softly. A few sweet moments pass and she mews, slipping a hand between her legs.\r\r'Thank yew so much! It woked!' She grins happily. Then she blushes, 'And thank yew for cleaning me so well, I really liked it... I'll neva forget it!'\r\rKissing you on the cheek, she pushes something into your belly before hopping off the bed and running out of the hut, her tail swishing high behind her ...And her butt in plain view as she forgot to string the perky tail through its hole, leaving it to pull the dress up from underneath."), true); stats(0, 0, 2, 2); doLust(Math.floor((lib / 2))); item1 = 200; lilaRep = 3; affinity(-2, -2, -2, Math.floor(((percent() / 20) + 8)), -2); doSexP(45); exhaustion = 0; hrs = 3; doEnd(); }; }; }; }; if (buttonChoice == 7){ outputMainText("Her eyes go wide as you mention sex.\r\r'Eww! That's what my Mommy and my Daddies do! I don't wanna do that!!\r\rShe then runs off in the other direction, trailing slime behind her as it still dribbles from her dress.\r\rIt's probably best you move along.", true); stats(0, -2, 0, 0); lilaRep = 1; hrs = 1; doEnd(); }; if (buttonChoice == 10){ outputMainText("You smile gently, telling her that you'll help her tell her mommy. She nods with a blush, taking your hand and leading you back to her hut, leaving a slick trail behind her the whole way. Her tail twitches sporadically as she whimpers along the way, her thighs rubbing tightly together other. As you approach, her mother spots you through the doorway and comes out to greet you.\r\r'Hello, may I ask what is going on?'\r\rShe eyes you with her daughter, especially noticing the moist river in her daughter's dress. Taking some time, you explain the situation. With a nod a tinge of redness in her own cheeks, she speaks,\r\r'Thank you for bringing her back to me. I'm so sorry to have involved you like this! I should have noticed when she was so quick to get out of the hut this morning... If you don't mind waiting outside, I'll be sure to repay you for your kindness; once I take care of my daughter.", true); doNext(); doListen = function ():void{ outputMainText("Nodding, you wait outside the doorway as the felin woman takes her daughter's other hand and the two disappear into the hut.\r\rYou hear them talking within, though it's too faint to make out. But, several minutes later, it's hard to miss the high-pitched mewling, followed by loud moans that echo back out. A few minutes more, and some shuffling can be heard as the mother returns to the doorway.\r\r'Thank you once more. Please, take these coins as a small repayment for being so gentle with her. Oh, and take this,' she reaches into a pocket and pulls out a vial. 'Apparently she got this from a friend of the family, saying it was for me. It seems she thought it would help her seem like a grown up in front of her friends... Thankfully, we caught her before she could use it and you can have it in turn.'\r\rShe hands you the vial of Cat's Meow as well 20 coins. She then blushes heavily as a strand of a clear slick fluid splashes down into her cleavage, having missed wiping it from the fur on her chin. She nods in thanks again before ducking inside, trying to hide the wet fur...", true); doCoin(20); item1 = 105; lilaRep = 2; doSexP(15); hrs = 3; doEnd(); }; }; }; } else { outputMainText("As you wander about the tree-borne city of Siz'Calit, you see a felin child scurry by. Her cheeks are red while her ears flick upon her head, her tail swishing sporadically behind. Her hands seem to be trying to cover the lower front of her small sundress. She glances up at you, her eyes staring at your groin for a moment. She blushes more and increases her pace, hurrying past you. Turning to watch her, you see the backside of her dress has a blotched river of moisture running down from her bum. However, judging by the dollips of clear slick fluid that glisten a path behind her, it doesn't seem like she had peed herself...\r\rShrugging, you continue on.", true); hrs = 1; doEnd(); }; }; }; }; if ((((chance > 20)) && ((chance <= 100)))){ outputMainText("You wander about the tree-borne city, but find nothing interesting.", true); hrs = 1; doEnd(); }; } public function udderDesc():String{ var chance:int; var tempStr:String; chance = percent(); tempStr = ("UDDER ERROR " + (udderSize / 2)); if (chance <= 100){ if ((udderSize / 2) <= 1){ tempStr = "nearly flat"; }; if (((((udderSize / 2) > 1)) && (((udderSize / 2) <= 4)))){ tempStr = "noticeable"; }; if (((((udderSize / 2) > 4)) && (((udderSize / 2) <= 10)))){ tempStr = "large"; }; if (((((udderSize / 2) > 10)) && (((udderSize / 2) <= 20)))){ tempStr = "huge"; }; if (((((udderSize / 2) > 20)) && (((udderSize / 2) <= 38)))){ tempStr = "humongous"; }; if (((((udderSize / 2) > 38)) && (((udderSize / 2) <= 73)))){ tempStr = "massive"; }; if (((((udderSize / 2) > 73)) && (((udderSize / 2) <= 105)))){ tempStr = "gargantuan"; }; if (((((udderSize / 2) > 105)) && (((udderSize / 2) <= 140)))){ tempStr = "tremendous"; }; if (((((udderSize / 2) > 140)) && (((udderSize / 2) <= 280)))){ tempStr = "colossal"; }; if ((udderSize / 2) > 280){ tempStr = "ridiculously huge"; }; }; if (chance > 50){ if ((udderSize / 2) <= 1){ tempStr = "tiny"; }; if (((((udderSize / 2) > 1)) && (((udderSize / 2) <= 4)))){ tempStr = "palmable"; }; if (((((udderSize / 2) > 4)) && (((udderSize / 2) <= 10)))){ tempStr = "ample"; }; if (((((udderSize / 2) > 10)) && (((udderSize / 2) <= 20)))){ tempStr = "head-sized"; }; if (((((udderSize / 2) > 20)) && (((udderSize / 2) <= 38)))){ tempStr = "hefty"; }; if (((((udderSize / 2) > 38)) && (((udderSize / 2) <= 73)))){ tempStr = "beachball-sized"; }; if (((((udderSize / 2) > 73)) && (((udderSize / 2) <= 105)))){ tempStr = "normally back-breaking"; }; if (((((udderSize / 2) > 105)) && (((udderSize / 2) <= 140)))){ tempStr = "view-obscuring"; }; if (((((udderSize / 2) > 140)) && (((udderSize / 2) <= 280)))){ tempStr = "bed-sized"; }; if ((udderSize / 2) > 280){ tempStr = "road-filling"; }; }; return (tempStr); } public function doLust(changes:int):void{ if (changes < 0){ lustDown.visible = true; }; if (changes > 0){ lustUp.visible = true; }; if ((lust + changes) > 100){ lust = 100; changes = 0; doLustForcedMasturbate(); }; if ((lust + changes) < 0){ lust = 0; changes = 0; }; if (((((lust + changes) >= 75)) && ((lust < 75)))){ if (cockTotal > 0){ outputMainText((((((((("\r\rYour " + cockDesc()) + " cock") + plural(1)) + " twitch") + plural(3)) + " in your ") + clothesBottom()) + ", throbbing and wanting desparately to come."), false); if (cockMoist == 1){ outputMainText(((" A small amount of pre leaks out, making a moist blotch on your " + clothesBottom()) + "."), false); }; if (cockMoist == 2){ outputMainText(((" Steady drops of pre leak out, blotching your " + clothesBottom()) + " with small patches of slime."), false); }; if (cockMoist == 3){ outputMainText(((((" You feel your cock" + plural(1)) + " slimed from tip to belly with its own pre, a steady dribble down your thigh and your ") + clothesBottom()) + " looking more like you peed yourself."), false); }; if (cockMoist > 3){ outputMainText(((((" You feel your cock" + plural(1)) + " swimming in their own pre, as long strands of slime seep through your ") + clothesBottom()) + " and stretch down to the ground. With each step, you fling the stuff around you like a whip, smacking across whatever is nearby"), false); }; }; if (vagTotal > 0){ outputMainText((((((((("\r\rYour " + vulvaDesc()) + " lips feel swollen and hot in your ") + clothesBottom()) + ", making your legs feel weak. Your ") + clitDesc()) + " clit feels like it's going to explode if it doesn't get some attention soon, stiffly rubbing against your ") + clothesBottom()) + " with each move."), false); if (vagMoist == 1){ outputMainText(" Your pussy lips slip over each other with each step, slightly lubricated with your arousal.", false); }; if (vagMoist == 2){ outputMainText(((" You can feel webs of slime smear across the inside of your " + clothesBottom()) + ", your honey dribbling lightly within."), false); }; if (vagMoist == 3){ outputMainText(((" You swear you can hear yourself squish with each step as your " + clothesBottom()) + " is completely soaked through with your honey. Your thighs feel like they've been completely oiled down by the warm, sensuous fluid."), false); }; if (vagMoist > 3){ outputMainText(((" There must be a waterfall in your " + clothesBottom()) + " as a steady flow of clear honey drools from between your legs. You have to be extra careful of slipping in your own slime..."), false); }; }; outputMainText((((("\r\rYour " + nipDesc()) + " nipples threaten to pierce through your ") + clothesTop()) + ". They feel as hard as diamonds with all your arousal, making you shiver whenever something brushes them."), false); }; if (((((lust + changes) >= 50)) && ((lust < 50)))){ if (cockTotal > 0){ outputMainText((((((("\r\rYour " + cockDesc()) + " cock") + plural(1)) + " feel") + plural(3)) + " stiff and engorged with blood. Oh how nice it would be to take care of that problem... "), false); if (cockMoist == 2){ outputMainText(((" A small amount of pre leaks out, making a moist blotch on your " + clothesBottom()) + "."), false); }; if (cockMoist == 3){ outputMainText(((" Steady drops of pre leak out, blotching your " + clothesBottom()) + " with small patches of slime."), false); }; if (cockMoist > 3){ outputMainText(((((" You feel your cock" + plural(1)) + " slimed from tip to belly with its own pre, a steady dribble down your thigh and your ") + clothesBottom()) + " looking more like you peed yourself."), false); }; }; if (vagTotal > 0){ outputMainText((((((("\r\rYour " + vulvaDesc()) + " vulva feels puffy with engorgement, making you walk a little awkwardly so as to not squeeze them so much. Your ") + clitDesc()) + " clit stirs in your ") + clothesBottom()) + ", throbbing gently in anticipation."), false); if (vagMoist == 2){ outputMainText(" Your pussy lips slip over each other with each step, slightly lubricated with your arousal.", false); }; if (vagMoist == 3){ outputMainText(((" You can feel webs of slime smear across the inside of your " + clothesBottom()) + ", your honey dribbling lightly within."), false); }; if (vagMoist > 3){ outputMainText(((" You swear you can hear yourself squish with each step as your " + clothesBottom()) + " is completely soaked through with your honey. Your thighs feel like they've been completely oiled down by the warm, sensuous fluid."), false); }; }; outputMainText((((("\r\rYour " + nipDesc()) + " nipples stand at attention in your ") + clothesTop()) + ". They tingle slightly with your arousal."), false); }; if (((((lust + changes) >= 25)) && ((lust < 25)))){ if (cockTotal > 0){ outputMainText((((((((("\r\rYour " + cockDesc()) + " cock") + plural(1)) + " wiggle") + plural(3)) + " in your ") + clothesBottom()) + ", stirring awake and growing erect. Bulging against the fabric, you silently wonder if anybody else will notice..."), false); if (cockMoist == 3){ outputMainText(((" A small amount of pre leaks out, making a moist blotch on your " + clothesBottom()) + "."), false); }; if (cockMoist > 3){ outputMainText(((" Steady drops of pre leak out, blotching your " + clothesBottom()) + " with small patches of slime."), false); }; }; if (vagTotal > 0){ outputMainText((((((("\r\rYour " + vulvaDesc()) + " slit tingles and sparks. You feel a little giggly and warm with the sensation, delighted in the pleasantness of it all. Your ") + clitDesc()) + " clit tugs at its hood as it pulses awake in your ") + clothesBottom()) + "."), false); if (vagMoist == 3){ outputMainText(" Your pussy lips slip over each other with each step, slightly lubricated with your arousal.", false); }; if (vagMoist > 3){ outputMainText(((" You can feel webs of slime smear across the inside of your " + clothesBottom()) + ", your honey dribbling lightly within."), false); }; }; }; lust = (lust + changes); statDisplay(); } public function doLustForcedMasturbate():void{ if (currentState == 2){ outputMainText("\r\rAmidst the heat of battle, your legs buckle from your intense arousal, preventing you from fighting any further.", false); (currentState == 1); doNext(); doListen = function ():void{ if ((((((ePref == 0)) || ((((ePref == 1)) && ((gender == 2)))))) || ((((ePref == 2)) && ((gender == 1)))))){ outputMainText((("Unfortunately, the " + enemyName()) + " has no interest in taking advantage of your state and lands a heavy blow, knocking you out."), true); doHP(-100000); }; doGetRaped(); }; }; } public function raceName():String{ var tempStr:String; tempStr = ("RACE ERROR " + race); if (race == 1){ tempStr = "Human"; }; if (race == 2){ tempStr = "Equan"; }; if (race == 3){ tempStr = "Lupan"; }; if (race == 4){ tempStr = "Felin"; }; return (tempStr); } public function doSleep():void{ bc(); outputMainText("You head into town to sleep for the night...", true); exhaustion = 0; doHP(20); if (lust <= 30){ outputMainText("\r\rDespite everything, your body is calm and sleeps rather soundly.", false); if ((((((cockMoist > 3)) && ((cockTotal > 0)))) || ((((vagMoist > 3)) && ((vagTotal > 0)))))){ outputMainText(" Although your bed is slightly moist from your constant production of lubricant from your loins.", false); }; }; if ((((lust > 30)) && ((lust <= 70)))){ outputMainText("\r\rYour sleep is somewhat disrupted by tossing and turning throughout the night, your arousal making certain attributes swell with blood and desiring attention...", false); exhaustion = (exhaustion + 3); if ((((((((cockMoist == 2)) || ((cockMoist == 3)))) && ((cockTotal > 0)))) || ((((((vagMoist == 2)) || ((vagMoist == 3)))) && ((vagTotal > 0)))))){ outputMainText(" Plus your bed is slightly moist from your constant production of lubricant from your loins.", false); }; if ((((((cockMoist > 3)) && ((cockTotal > 0)))) || ((((vagMoist > 3)) && ((vagTotal > 0)))))){ outputMainText(" It also seems as though you had wet the bed throughout the night, however the slick slime that pulls away in long strands as you touch it indicates a different fluid...", false); }; }; if (lust > 70){ outputMainText("\r\rYou spend most of the night tossing and turning, your mind having difficulty sleeping with the lust that envelops it. Although you do manage to eventually get some, it's not nearly as good.", false); exhaustion = (exhaustion + 8); if ((((((cockMoist == 1)) && ((cockTotal > 0)))) || ((((vagMoist == 1)) && ((vagTotal > 0)))))){ outputMainText(" Plus your bed is slightly moist from your constant production of lubricant from your loins.", false); }; if ((((((((cockMoist == 2)) || ((cockMoist == 3)))) && ((cockTotal > 0)))) || ((((((vagMoist == 2)) || ((vagMoist == 3)))) && ((vagTotal > 0)))))){ outputMainText(" It also seems as though you had wet the bed throughout the night, however the slick slime that pulls away in long strands as you touch it indicates a different fluid...", false); }; if ((((((cockMoist > 3)) && ((cockTotal > 0)))) || ((((vagMoist > 3)) && ((vagTotal > 0)))))){ outputMainText(" You also wake up in a pool of your own sexual lubricant, the slick stuff sloshing off the sheets as you attempt to get out. You remain cautious as your feet touch the floor, as you have to avoid slipping in the large puddle around the bed.", false); }; }; if ((((heatTime < 0)) && (vagTotal))){ outputMainText("\r\rDreams of being fucked by over a dozen cocks, each filling you to the brim with hot spunk, filled your sleep. When you eventually woke up in a hot sweat, your hand reflexively inspects your belly and you find yourself slightly disappointed to find it empty.", false); }; if (milkEngorgementLevel == 2){ outputMainText("\r\rYour sheets smell somewhat sweet, slightly wet and white, as you wake up. Milk still dribbles from your breasts, having formed a small puddle throughout the night.", false); }; if (milkEngorgementLevel > 2){ outputMainText("\r\rYour sheets smell somewhat sweet and feel very wet as you wake up. Milk spills in streams from your breasts, as you sit up, a pool of the stuff all around you.", false); }; if (udderEngorgementLevel == 2){ outputMainText("\r\rYour sheets smell somewhat sweet, slightly wet and white, as you wake up. Milk still dribbles from your udder, having formed a small puddle throughout the night.", false); }; if (udderEngorgementLevel > 2){ outputMainText("\r\rYour sheets smell somewhat sweet and feel very wet as you wake up. Milk spills in streams from your udder, as you sit up, a pool of the stuff all around you.", false); }; if (pregnancy == true){ if ((((pregnancyTime > 18)) && ((pregnancyTime <= 36)))){ outputMainText("\r\rAfter waking, you feel oddly sick and strangely bloated. You should probably watch what you eat more closely.", false); } else { if ((((pregnancyTime > 36)) && ((pregnancyTime <= 72)))){ outputMainText("\r\rYou seem to be getting a bit chubbier in your midsection, might be because you've been hungrier and eating more lately. Plus you've been feeling a bit more randy than usual...", false); } else { if ((((pregnancyTime > 72)) && ((pregnancyTime <= 108)))){ outputMainText("\r\rYour belly is obviously bulging now, more than it would if it were just fat. You should probably accept the fact that you're pregnant...", false); } else { if ((((pregnancyTime > 108)) && ((pregnancyTime <= 144)))){ outputMainText("\r\rYou can easily hug your belly as it protrudes from your torso, looking like you were trying to smuggle a melon in your womb. But it feels so good to rub and caress it, making you easily get horny.", false); } else { if ((((pregnancyTime > 144)) && ((pregnancyTime <= 180)))){ outputMainText("\r\rYour belly is so large, your belly button has turned into an outie. You play with it as you head to sleep, the baby inside kicking back in turn.", false); } else { if ((((pregnancyTime > 180)) && ((pregnancyTime <= 216)))){ outputMainText("\r\rFor most races, you would be giving birth any time now. You actually have to be cautious about people bumping into you as you walk through the town, it protrudes so far.", false); } else { if ((((pregnancyTime > 216)) && ((pregnancyTime <= 252)))){ outputMainText((("\r\rThe " + skinDesc()) + " around your giant belly is so taut that you can audibly drum it with your fingers. Which the baby inside does with its feet (or whatever it has) does frequently from inside. At least to make you stop feeling like you've gotta come so hard..."), false); } else { if ((((pregnancyTime > 252)) && ((pregnancyTime <= 288)))){ outputMainText("\r\rYou're beginning to draw the eyes of the crowd as you move through town, you belly is so enormous. People are wondering if you've actually got a baby in there and not a small child.", false); } else { if ((((pregnancyTime > 288)) && ((pregnancyTime <= 324)))){ outputMainText("\r\rThis is getting ridiculous... People are starting to come up to you as you move through the street on your way to bed and actually ask if you've got a small person in your belly! Although, you aren't quite sure, but as your hands try to wrap around it, unable to fully embrace it, you begin to wonder yourself.", false); } else { if ((((pregnancyTime > 360)) && ((pregnancyTime <= 396)))){ outputMainText("\r\rNow you're actually starting to get a little worried... Your knees are knocking against the underside of your belly when you try to walk. People are clearing the way when you move down the streets to make room for your belly and you have to skillfully wedge yourself through narrow doorways!", false); } else { if ((((pregnancyTime > 396)) && ((pregnancyTime <= 432)))){ outputMainText((("\r\rAs you lay down to go to sleep, you have to curl forward to fit your belly in your bed, leaving your backside hanging off the mattress. The sheets aren't even wide enough to cover you completely, making you feel a draft on some of your exposed belly. The chill makes you shiver, not from the cold, but from your nerves sparking from the super-taut, extra-sensitive " + skinDesc()) + "."), false); } else { if (pregnancyTime > 432){ outputMainText("\r\rYou don't even bother to head to your bed. Borrowing a bunch of blankets, you've made do with sleeping outside. Your belly is too big to go indoors, even having to handle shop business from the streets. Your hand reaches out as far as it can and hardly wraps around any of your girth. The warmth it emanates and sensations it echoes through your body help you sleep quite soundly and pleasantly, though, so you'll be fine until you give birth.", false); }; }; }; }; }; }; }; }; }; }; }; }; if (((body + (str / 2)) + carryMod) < Math.floor((pregnancyTime / 10))){ outputMainText(" However, none of that really matters as you can no longer carry the weight of your hefty belly. You're stuck in this town, dragging your belly across the ground, with padding beneath to protect it. There's going to be no more exploring until you either get stronger and give birth to this massive nuisance...", false); } else { if ((((body + (str / 2)) + carryMod) * 2) < Math.floor((pregnancyTime / 10))){ outputMainText(((" You " + skinDesc()) + " is pulled so tight around your belly that you're afraid it might tear, though it never does. But it's so sensitive... Caressing it as you try to sleep is so nice~ Although, it does have the slight drawback of looking rather silly while you walk with a hunch and attempt to cradle it wherever you go; it's gotten so heavy."), false); } else { if ((((body + (str / 2)) + carryMod) * 3) < Math.floor((pregnancyTime / 10))){ outputMainText(" The mound feels so heavy... When walking around town, you even had to keep a hand on your back for support.", false); } else { if ((((body + (str / 2)) + carryMod) * 4) < Math.floor((pregnancyTime / 10))){ outputMainText(" The weight of your belly makes you feel more exhausted than you really are by the end of the day, making you glad for the night's rest.", false); } else { if ((((body + (str / 2)) + carryMod) * 5) < Math.floor((pregnancyTime / 10))){ outputMainText(" You can noticeably feel the weight of your belly.", false); }; }; }; }; }; }; hrs = 8; doEnd(); } public function doBattle():void{ bc(); viewButtonOutline(1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0); viewButtonText(1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0); buttonWrite(1, "Bag"); buttonWrite(2, "Run"); buttonWrite(5, "Attack"); buttonWrite(9, "Rape"); buttonWrite(10, "Entice"); doListen = function ():void{ var dmg:int; var eLustChange:int; if (buttonChoice == 1){ doBag(); }; if (buttonChoice == 2){ if (percent() <= (20 + runMod)){ outputMainText("You successfully run away!", true); currentState = 1; hrs = 1; doEnd(); } else { outputMainText("You fail to run away...", true); enemyAttack(); if (currentState == 2){ doBattle(); }; }; }; if (buttonChoice == 5){ dmg = Math.floor((((percent() / weapon) + (str / 2)) - ((100 - eSen) / 20))); outputMainText((((((((("You " + weaponAttack()) + " at the ") + enemyName()) + " with your ") + weaponName()) + " and deal ") + dmg) + " damage!"), true); doeHP(-(dmg)); if (currentState == 2){ enemyAttack(); }; if (currentState == 2){ doBattle(); }; }; if (buttonChoice == 9){ if ((((gender == 0)) || ((eGen == 0)))){ outputMainText("What are you going to rape it with? Good intentions?\r\rChoose another option.", true); if (currentState == 2){ doBattle(); }; } else { outputMainText((("You attempt to toss the " + enemyName()) + " to the ground and fuck it wildly!"), true); if (lust < 15){ outputMainText("\r\rHowever, you aren't nearly aroused enough to even think about penetration, leaving your efforts futile.", false); if (currentState == 2){ enemyAttack(); }; } else { if ((((percent() / 5) + str) + rapeMod) <= (((percent() / 5) + eStr) - (eLust / 2))){ outputMainText((("\r\rHowever, the " + enemyName()) + " overpowers you and tosses you off!"), false); if (currentState == 2){ enemyAttack(); }; } else { if (((((((!((ePref == gender))) && (!((ePref == 4))))) && (!((gender == 3))))) || ((ePref == 0)))){ outputMainText((((("\r\rHowever, the " + enemyName()) + " is sorely turned off by your rough pounding on its sensitive area, merely hurting its genitals and its pride.\r\rBut you do deal ") + Math.floor(((percent() / 10) + (lust / 10)))) + " damage and satisfy yourself a bit."), false); doeHP(-(Math.floor(((percent() / 10) + (lust / 10))))); doLust(-(Math.floor(((percent() / 20) + (sen / 10))))); } else { doRape(); eLustChange = Math.floor(((percent() / 10) + (eSen / 5))); if ((eLust - eLustChange) <= 0){ eLust = 0; }; if ((eMenta - eLustChange) < 0){ outputMainText((("\r\rThe " + enemyName()) + " collapses to the ground, quivering body wracked by orgasms. Having broken its mental state into a puddle of sex, it no longer wishes to battle.\r\rYou win!"), false); currentState = 1; doNext(); doListen = function ():void{ battleWin(); }; } else { outputMainText((("\r\rThe " + enemyName()) + " picks itself up after you had your way with it, a little distraught but not yet defeated."), false); eLust = (eLust - eLustChange); }; eMenta = (eMenta - eLustChange); }; }; }; if (currentState == 2){ doBattle(); }; }; }; if (buttonChoice == 10){ doEntice(); if (currentState == 2){ enemyAttack(); }; if (currentState == 2){ doBattle(); }; }; }; } public function doJungle():void{ var chance:int; chance = percent(); if (chance <= 25){ outputMainText("You hear ominous swishing through the trees around you...", true); if (percent() < (10 + runMod)){ outputMainText("\r\rYet you run manage off before anything can catch you.", false); hrs = 1; doEnd(); } else { if (breastSize < 3){ outputMainText("\r\rPeach-colored tentacles lash out at you from the tree-branches above, catching you by surprise. They flail around your chest, feeling about and scratching it roughly.\r\rHowever, the tentacles seem to be uninterested and disappear as quick as they came, leaving you with a rather hurtful chest and wasted time.", false); doHP(-(Math.floor(((percent() / 10) + 2)))); hrs = 1; doEnd(); } else { if (((((lactation + milkMod) > 3)) || ((((boobTotal > 2)) && (((lactation + milkMod) > 2)))))){ outputMainText((("\r\rA mass of peach-colored tentacles falls from the tree-branches above. Some of the tentacles waver out towards you, mostly aiming at your " + boobDesc()) + " chest. They seem rather non-threatening, however, as the mass rolls back and forth on the forest floor, almost as though it were a stumbling drunk.\r\rDo you allow the tentacles to come closer?"), true); buttonConfirm(); doListen = function ():void{ if (buttonChoice == 6){ outputMainText((("Cautiously standing still, you wait as the tentacles come right up to your breasts. They caress your " + nipDesc()) + " nipples, seemingly able to smell the milk within your breasts, and they wiggle even more like a drunk... It seems as though the creature smelled your large amount of milk production as you approached and became intoxicated by it.\r\r\rDo you let the creature indulge itself?"), true); buttonConfirm(); doListen = function ():void{ if (buttonChoice == 6){ outputMainText((((((((("You pull your " + clothesTop()) + " ") + pullUD(1)) + ", letting your ") + boobDesc()) + " chest bob out, practically inviting it to partake of your motherly liquid. Not to forsake such an opportunity, the tentacled mass rolls up to you, the tentacles squirming about your ") + nipDesc()) + " nipples until they stand hard and erect. Yet, the tentacles pull away, caressing and hugging your body as the main mass comes right up to you.\r\rThe mass of tentacles part, revealing a feminine face, slender and beautiful, with eyes closed. The tentacles dance atop her head, seemingly replacing her hair. Looking down, you can see more of her lithe body, thin with milky skin. Two breasts, barely handfuls, wobble upon her chest as tentacles, particularly thinner than the rest, dance about where her nipples would be. Overall, she seems quite short, maybe 4 feet tall at most, while the mass of tentacles could easily reah 6 feet in height."), true); doNext(); doListen = function ():void{ outputMainText((((((("The fair face moves up to one of your " + boobDesc()) + " breasts, the little mouth yawning wide to fit your ") + nipDesc()) + " nipple. She latches on the best she can, suckling intently from your chest. You let out a gasp as her expert suckling makes your body grow warm, a delightful tingling sensation making you quiver. Milk gushes from your tits as she gulps it down. Tentacles much thicker than the rest droop from her hair, their tips opening into soft maws that suckle from and kiss the ") + skinDesc()) + " of your breasts, leaving none unattended. It doesn't take long before you body is wracked by an intense boobgasm..."), true); doNext(); doListen = function ():void{ outputMainText((("Gasping for air as you come down from your climax, the feminine face and all the tentacles collapse, leaving hardly any milk still dribbling from your " + nipDesc()) + " nipples. Checking the creature, she seems to have passed out in a drunking slumber. Her face seems content, with a small smile, her tentacles writhing lazily about her. Two tentacles in particular look surprisingly active, through. Her small breasts jiggle about as their tentacle-nipples stiffen and soften. They shiver as you run your hands along them, several feet long before you reach their tips. Short, narrow needles protrude from the tips of these tentacle-nipples and they dribble some pearlescant fluid excessivly. You take an empty vial from your bag and gather some of the fluid before heading on your way..."), true); doSexP(20); nipplePlay = (nipplePlay + 6); doLust(-(Math.floor(((percent() / 10) + ((breastSize * sen) / 5))))); milkAmount(1); item1 = 201; hrs = 2; }; }; }; if (buttonChoice == 7){ outputMainText("You take the opportunity to run from the tentacles before the creature can come to its senses, easily avoiding it.", true); doSexP(7); hrs = 1; doEnd(); }; }; }; if (buttonChoice == 7){ outputMainText("You take the opportunity to run from the tentacles before the creature can come to its senses, easily avoiding it.", true); doSexP(4); hrs = 1; doEnd(); }; }; } else { outputMainText((((((((((("\r\rPeach-colored tentacles lash out at you from the tree-branches above, catching you by surprise. They flail around your " + boobDesc()) + " chest, feeling about and scratching it roughly. They pull back for a moment, but before you can recoup from your confused stupor, even more come flying out from the trees, this time whipping around your wrists and ankles.\r\rStruggle as you may, you can seem to wrench yourself free. You can only watch in fear as more tentacles pull your ") + clothesTop()) + " away and roam about your ") + boobDesc()) + " breasts. They poke and tease at your ") + nipDesc()) + " nipples, causing them to stand hard and erect. Then, short narrow needles draw out of two particularly thinner tentacles. They drip with some sort of pearlescant fluid and they plunge gently into each of your ") + boobTotal) + " fleshy masses..."), false); doNext(); doListen = function ():void{ boobChange(1); outputMainText((((("A sudden feeling of warmth overcomes you. Your breasts feel especially hot, heaving with your breath. Staring intently, you even notice them grow slightly in size.\r\rA moment later, your head jerks back as an intense feeling of fullness and swelling engulfs your sensitive tits. You recoil just in time to see streams of white liquid spew from your throbbing, " + nipDesc()) + " nipples. Milk continues to gush for a while, as more tentacles come close. These are much thicker than the ones with needles and their tips open into wet, soft maws. Each one latches onto your lactating breasts and begin to suckle...\r\rYou feel slightly light-headed from the fuzzy warmth that engulfs you, the pleasurable slurping of the hungry tentacles sucking you dry. Eventually, the tantalizing efforts make your body quiver, wracked by a strong orgasm... from your ") + boobDesc()) + " breasts."), true); doNext(); doListen = function ():void{ outputMainText((((("A minute later, the tentacles retract from whence they came, leaving you to collapse to your knees. You breasts still feel larger than before, especially when you put your " + clothesTop()) + " back into place. And wet blotches seep across the fabric, your ") + nipDesc()) + " still dribbling with milk..."), true); lactChange(1); milkAmount(1); nipplePlay = (nipplePlay + 4); doSexP(10); doLust(-(Math.floor(((percent() / 20) + ((breastSize * sen) / 5))))); doHP(-(Math.floor((percent() / 10)))); hrs = 2; doEnd(); }; }; }; }; }; }; if ((((chance > 25)) && ((chance <= 50)))){ outputMainText("Walking through the jungle, you begin to hear footsteps mix with your own... As you pause to listen in, a creature jumps out before you! A lone wolf, it growls, ready to attack. And judging by the red rod that bobs beneath its belly, it's probably male, and probably frustrated after some failed encounter with a female...", true); doNext(); doListen = function ():void{ enemyID = 201; currentState = 2; enemyBaseStats(); eMaxHP = eHP; doBattle(); }; }; if ((((chance > 50)) && ((chance <= 75)))){ outputMainText("Within the jungle, you come across a rather tender looking tree. Fruits of a rather... vulgar shape hang from its branches. You pluck one and take it back with you.", true); item1 = 210; hrs = 2; doEnd(); }; if (chance > 75){ outputMainText("After a few hours of being lost and randomly wandering through the massive amount of vegetation, you come across a path. Would you like to follow it?", true); buttonConfirm(); doListen = function ():void{ if (buttonChoice == 6){ if (currentZone == 3){ outputMainText("Following the path, you begin to see various wooden structures built amongst the canopy. Rope-bridges and circular huts everywhere, with lith cat-like people walking about or jumping from branch to branch. The path leads you right to one of the few spiraling ramps that encircles the trees, bringing you up to the tree-born city.\r\rYou have now entered the Felin home-city of Siz'Calit!", true); regionChange(4); hrs = 4; doEnd(); } else { if (currentZone == 4){ outputMainText("Following the path, the vegetation grows slightly sparser as you come upon a large clearing. Most of the clearing has been walled off by tree-trunks lashed together with rope. You hear some vicious growls, but also plenty of coherent speech, echoing from behind the wall. A whole bustling city. The path you followed brings you right to the front gates, where furry wolf-like gaurds kindly greet you and allow you to pass.\r\rYou have now entered the Lupan home-city of Tieden!", true); regionChange(3); hrs = 4; doEnd(); }; }; } else { outputMainText("You return from whence you came.", true); hrs = 1; doEnd(); }; }; }; } public function doMasturbate():void{ bc(); currentState = 3; viewButtonOutline(1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1); viewButtonText(0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1); buttonWrite(1, "Penis"); buttonWrite(2, "Both"); buttonWrite(3, "Vagina"); buttonWrite(4, "Bag"); buttonWrite(7, "Breasts"); buttonWrite(10, "Udder"); buttonWrite(12, "Return"); if (cockTotal > 0){ Choice1.visible = true; }; if (vagTotal > 0){ Choice3.visible = true; }; if (udders == true){ Choice10.visible = true; }; doListen = function ():void{ if (buttonChoice == 1){ doCockMasturbate(); }; if (buttonChoice == 3){ doVagMasturbate(); }; if (buttonChoice == 2){ doBothMasturbate(); }; if (buttonChoice == 4){ doBag(); }; if (buttonChoice == 7){ doBoobMasturbate(); }; if (buttonChoice == 10){ doUdderMasturbate(); }; if (buttonChoice == 12){ doGeneral(); }; }; } public function doStartingDescription():void{ regionChange(currentZone); currentRegion.visible = true; region.visible = true; outputMainText("In the world of Nimin, civilizations are scattered and isolated by the harsh wilderness. Not that the wilderness was deadly, however. Most towns knew of their neighbors and were never surprised by new faces. Rather... people who ventured into the wilderness rarely returned the same as when they left... There's little history to Nimin beyond that, a mystery that some feel needs to be solved some day.", true); if (race == 1){ outputMainText("\r\rFrom the Human city of Softlik, you were raised amongst a curious civilization. Humans are often the first to visit the others, though most generally don't explore too far, rarely reaching the further civilizations. Yet, the city of Softlik has always been welcoming of newcomers, their houses of wood and stone allowing for plenty of stability in the rather safe rolling hills.", false); }; if (race == 2){ outputMainText("\r\rFrom the Equan city of Firmshaft, you were raised amongst a nomadic civilization. Equans are a strong race and roam about the plains, well used to travel. As such, it's not too unusual for some to travel away. Though that tends to mean not being a part of the harems... Nevertheless, the core city of Firmshaft stays relatively still, mostly made up of large canvase tents that tend to move and shift its borders around.", false); }; if (race == 3){ outputMainText("\r\rFrom the Lupan city of Tieden, you were raised amongst a toughened civilization. Lupans have managed to survive with jungle and forest surrounding them, defending themselves from the more savage creatures. Tieden is a tribal city made from wooden buildings and surrounded by tall walls to protect themselves. And being so experienced against the 'odd' forces, some are encouraged to keep up ties with the other civilizations and maybe discover more.", false); }; if (race == 4){ outputMainText("\r\rFrom the Felin city of Siz'Calit, you were raised amongst a sexual civilization. Felins are often open about their sexuality, especially with their females often going into heat. Although, sometimes the heat of the women, along with the heat of the jungle they live in, can be too sweltering and some feel the need for fresh air. Whatever their true reason is for leaving, the city of Softlik, a series of huts and bridges high in the canopy, is one of the safest and most welcoming places to be.", false); }; outputMainText((((((("\r\rStanding " + Math.floor((tallness / 12))) + " feet and ") + Math.floor((((tallness / 12) - Math.floor((tallness / 12))) * 12))) + " inches tall with a ") + bodyDesc()) + " figure, you head off with your own reasons."), false); doHP(30); doSexP(0); doNext(); doListen = function ():void{ if (buttonChoice == 6){ currentState = 1; doGeneral(); }; }; } public function useItem(slotNumber:int):void{ var ID:int; var slotNumber = slotNumber; ID = itemID(slotNumber); if (ID == 0){ outputMainText("This slot is empty.", true); doBag(); } else { outputMainText(itemDescription(ID), true); if (((usableItem(ID)) || (conItem(ID)))){ outputMainText("\r\rAre you sure you want to use this item?", false); if (conItem(ID)){ outputMainText("\r\rWarning: Using this item will consume it.", false); }; buttonConfirm(); doListen = function ():void{ if (buttonChoice == 6){ if (conItem(ID)){ itemSlotWrite(slotNumber, 0); }; doItemUse(ID); } else { doBag(); }; }; } else { doBag(); }; }; } public function ballDesc():String{ var chance:int; var tempStr:String; chance = percent(); tempStr = ("BALLS ERROR " + ballSize); if (chance <= 100){ if (ballSize <= 1){ tempStr = "tiny"; }; if ((((ballSize > 1)) && ((ballSize <= 3)))){ tempStr = "small"; }; if ((((ballSize > 3)) && ((ballSize <= 5)))){ tempStr = "big"; }; if ((((ballSize > 5)) && ((ballSize <= 8)))){ tempStr = "large"; }; if ((((ballSize > 8)) && ((ballSize <= 13)))){ tempStr = "hand-filling"; }; if ((((ballSize > 13)) && ((ballSize <= 17)))){ tempStr = "huge"; }; if ((((ballSize > 17)) && ((ballSize <= 26)))){ tempStr = "barely palmable"; }; if ((((ballSize > 26)) && ((ballSize <= 40)))){ tempStr = "enormous"; }; if ((((ballSize > 40)) && ((ballSize <= 80)))){ tempStr = "tremendous"; }; if ((((ballSize > 80)) && ((ballSize <= 120)))){ tempStr = "huggable"; }; if ((((ballSize > 120)) && ((ballSize <= 240)))){ tempStr = "gargantuan"; }; if (ballSize > 240){ tempStr = "colossal"; }; }; if (chance > 50){ if (ballSize <= 1){ tempStr = "marble-sized"; }; if ((((ballSize > 1)) && ((ballSize <= 3)))){ tempStr = "golfball-sized"; }; if ((((ballSize > 3)) && ((ballSize <= 5)))){ tempStr = "tennisball-sized"; }; if ((((ballSize > 5)) && ((ballSize <= 8)))){ tempStr = "kiwi-sized"; }; if ((((ballSize > 8)) && ((ballSize <= 13)))){ tempStr = "baseball-sized"; }; if ((((ballSize > 13)) && ((ballSize <= 17)))){ tempStr = "softball-sized"; }; if ((((ballSize > 17)) && ((ballSize <= 26)))){ tempStr = "canteloupe-sized"; }; if ((((ballSize > 26)) && ((ballSize <= 40)))){ tempStr = "basketball-sized"; }; if ((((ballSize > 40)) && ((ballSize <= 80)))){ tempStr = "watermelon-sized"; }; if ((((ballSize > 80)) && ((ballSize <= 120)))){ tempStr = "beachball-sized"; }; if ((((ballSize > 120)) && ((ballSize <= 240)))){ tempStr = "boulder-sized"; }; if (ballSize > 240){ tempStr = "landscape-crushing"; }; }; return (tempStr); } public function affinity(humanChange:int, horseChange:int, wolfChange:int, catChange:int, cowChange:int):void{ human = (human + humanChange); horse = (horse + horseChange); wolf = (wolf + wolfChange); cat = (cat + catChange); cow = (cow + cowChange); } public function udderChange(sizeChange:int):void{ udderSize = (udderSize + sizeChange); teatSize = (teatSize + sizeChange); } public function doDiscard(ID:int, more:int):void{ var ID = ID; var more = more; bc(); viewButtonText(1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1); viewButtonOutline(1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1); i = 1; while (i < 13) { buttonWrite(i, itemName(itemID(i))); if (i == 12){ buttonWrite(12, "Return"); }; i++; }; doListen = function ():void{ if (((((((!((buttonChoice == 0))) && (!((buttonChoice == 4))))) && (!((buttonChoice == 8))))) && (!((buttonChoice == 12))))){ outputMainText((((((((itemDescription(itemID(buttonChoice)) + "\r\r") + itemDescription(ID)) + "\r\rDo you want to replace ") + itemName(itemID(buttonChoice))) + " with ") + itemName(ID)) + "?"), true); buttonConfirm(); doListen = function ():void{ if (buttonChoice == 6){ loseItem(buttonChoice); itemSlotWrite(buttonChoice, 0); gainItem(ID, more); }; if (buttonChoice == 7){ doDiscard(ID, more); }; }; }; if (buttonChoice == 12){ if (more == 1){ item1 = 0; }; if (more == 2){ item2 = 0; }; if (more == 3){ item3 = 0; }; if (more == 4){ item4 = 0; }; if (more == 5){ item5 = 0; }; if (more == 6){ item6 = 0; }; doProcess(); }; }; } public function doDairyFarm():void{ var chance:int; chance = percent(); if (chance <= 15){ outputMainText("As you head towards the dairy farm, one of the farmers waves you over in greeting.\r\r'Why hello there! You're lucky to have passed by here at this time. We're giving away free samples of our dairy enhancement pills for cows, to help drum up some business. We use these to keep our dairy cows in top shape and producing plenty of milk. Give them to your own cows to help make them fine producers as well!\r Just... try not to eat them yourself, or you'll end up like Malon over there.'\r\rHe nods over to one of the farm-hands that is nearby. She's a beautiful woman with long, flowing red hair in a yellow shirt and long purple skirt with a brown apron around her waist and yellow shawl around her shoulders. However, the shawl seems fairly wet and she's careful to drape its ends over breasts larger than watermelons, trying to hide the large blotches on her shirt with it and keeping it at the ready to use at any moment. Her ears are also quite long, hanging perpendicular from her head, nearly 5 inches, and droop a little. Behind her you see a long, narrow tail, tipped with a tuft of long hairs, swish about her cales with each step. She lugs two overflowing pails of milk with a blush in her cheeks, trying to avoid eye contact with anyone as she disappears into a barn.", true); if (malonRep > 2){ outputMainText(" Although, she spots you out of the corner of her eye before she enters and turns to give you a bright smile. It looks like she'd wave at you, but her hands are a bit busy at the moment.", false); }; outputMainText("\r\r'Let's just say it's best to keep it to the pills to the cows.'\r\rHe hands you a complimentary DairE Pill and nods you along.", false); item1 = 211; hrs = 2; doEnd(); } else { if ((((chance > 15)) && ((chance <= 65)))){ bc(); outputMainText("As you head towards the dairy farm, one of the farmers spots you and walks over to greet you.\r\r'Hello! If you want some of our milk, you should head over to Softlik. But if you're here for some of our DairE Pills, the supplement that helps our cows produce so much delicious milk, then look no further, you can buy one from me!'\r\r'Would you like to buy one? Only 30 coins!", true); buttonConfirm(); doListen = function ():void{ if (buttonChoice == 6){ if (coin < 30){ outputMainText("'Sorry friend, you don't seem to have enough coins. Come back later when you do and we can try to deal again!'\r\rHe gives you a nod before heading back to his work, leaving you to head back to Softlik.", true); hrs = 1; doEnd(); } else { outputMainText("'Alright, here you go friend!' He rumages through one of his pockets in his overalls and pulls out a large pill, handing it to you. 'Come back later if you need any more!'\r\rHe gives you a nod before heading back to his work, leaving you to head back to Softlik.", true); doCoin(-30); item1 = 211; hrs = 2; doEnd(); }; } else { outputMainText("'Well, come back again later if you change your mind. And have a nice day!'\r\rHe gives you a nod before heading back to his work, leaving you to head back to Softlik.", true); hrs = 1; doEnd(); }; }; } else { if ((((chance > 65)) && ((chance <= 80)))){ if (malonRep > 0){ } else { if ((((((lactation > 3)) && ((((milkEngorgementLevel > 1)) || ((udderEngorgementLevel > 1)))))) && ((malonRep == 0)))){ outputMainText((("Heading towards the farm, you spot a strange farm-hand. A young woman, with an exceptionally well-endowed figure... Beautiful, with long, flowing red hair, she wears a yellow shirt and long purple skirt with a brown apron around her waist and yellow shawl around her shoulders. However, the shawl seems fairly wet and she's careful to drape its ends over breasts larger than watermelons, trying to hide the large blotches on her shirt with it and keeping it at the ready to use at any moment. Her ears are also quite long, hanging perpendicular from her head, nearly 5 inches, and droop a little. Behind her you see a long, narrow tail, tipped with a tuft of long hairs, swish about her cales with each step.\r\rAs you watch her, she seems to avoid most of the other workers. It doesn't take long before she spots you eyeing her. At first redness tinges her cheeks, but then her eyes spot the large blotches on your " + clothesTop()) + " with a curious look. Checking to make sure nobody else is around, she heads towards you..."), true); doNext(); doListen = function ():void{ outputMainText("With a gentle voice, she speaks,\r\r'Oh my, w-would you like some help with that?' She nods down to your milkiness. 'I, umm... Kinda know the feeling and can help you out if you would like.'\r\r\rDo you accept her offer?", true); buttonConfirm(); doListen = function ():void{ if (buttonChoice == 6){ outputMainText("You will have to wait until the next update to see what happens!", true); hrs = 1; doEnd(); } else { outputMainText("You shake your head, not accepting her assistance. She gives you a soft smile, not offended by the choice. Her extrovert moment quickly passes, however, as her shirt begins to blotch more, white liquid spilling out and dribbling onto her apron and ground. She blushes intensely as she pulls her shawl down to cover her huge chest, turning away and running off, her tail pushing her skirt between her legs and outlining her ample bum.\r\rShe disappears into a building. With a shrug, you head back to Softlik.", true); hrs = 1; doEnd(); }; }; }; } else { if (percent() <= 20){ bc(); viewButtonOutline(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0); viewButtonText(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0); buttonWrite(5, "Inspect"); buttonWrite(7, "Leave"); outputMainText("Having avoided any farmers, you approach one of the barns. Your ears perk up as you hear something inside. A machine sounds like its pumping, yet you can see no signs of cows nearby or the farmers that take care of them.\r\r\rWhat do you do?", true); doListen = function ():void{ if (buttonChoice == 5){ if (malonRep < 1){ outputMainText("You quietly open the door and look inside, your eyes going wide at what you see. There are no cows, yet the automatic milker is churning away. In the stalls where the cows should be, stands a young woman, bent forward and hanging onto the guardrail to hold herself up. She wears a long purple skirt with a brown apron and her long red hair dangles down from her shoulders, with long, round ears sticking out. She heaves with each pump of the milker, letting out soft gasping moos.\r\rHer white shirt pushed down around her belly and her yellow shawl draped over the rail beside her, her enormous naked breasts hang down towards the floor. They're larger than watermelons, with nipples several inches long encompassed by the milking cups. Gushes of milk flow through the milker's hoses with each pump, her giant breasts being drained...\r\r\rWhat now?", true); } else { outputMainText("You quietly open the door and look inside, a smirk crossing your face. There are no cows, yet the automatic milker is churning away. In the stalls where the cows should be, stands Malon, the young farm-hand, bent forward and hanging onto the guardrail to hold herself up. Her white shirt is scrunched down around her belly, her enormous naked breasts hanging down towards the floor. Her nipples are several inches long and encompassed by the milking cups, gushes of milk flow through the milker's hoses with each pump, her giant breasts being drained. In between gasps, she lets out soft moos...\r\r\rWhat now?", true); }; bc(); viewButtonOutline(0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0); viewButtonText(0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0); buttonWrite(2, "Interupt"); buttonWrite(5, "Assist"); buttonWrite(7, "Fuck"); buttonWrite(10, "Leave"); doListen = function ():void{ if (buttonChoice == 2){ outputMainText("You will have to wait until the next update to see what happens!", true); hrs = 1; doEnd(); }; if (buttonChoice == 5){ outputMainText("You will have to wait until the next update to see what happens!", true); hrs = 1; doEnd(); }; if (buttonChoice == 7){ outputMainText("You will have to wait until the next update to see what happens!", true); hrs = 1; doEnd(); }; if (buttonChoice == 10){ outputMainText("You will have to wait until the next update to see what happens!", true); hrs = 1; doEnd(); }; }; }; if (buttonChoice == 7){ outputMainText("A little too dangerous, and probably illegal with the whole trespassing thing, you turn around and walk away.", true); hrs = 1; doEnd(); }; }; } else { outputMainText("You spot a farm-hand out of the corner of your eye. A young woman, with an exceptionally well-endowed figure... Beautiful, with long, flowing red hair, she wears a yellow shirt and long purple skirt with a brown apron around her waist and yellow shawl around her shoulders. However, the shawl seems fairly wet and she's careful to drape its ends over breasts larger than watermelons, trying to hide the large blotches on her shirt with it and keeping it at the ready to use at any moment. Her ears are also quite long, hanging perpendicular from her head, nearly 5 inches, and droop a little. Behind her you see a long, narrow tail, tipped with a tuft of long hairs, swish about her cales with each step.\r\rAs you watch her, she seems to avoid most of the other workers. It doesn't take long before she spots you eyeing her. She immediately averts her eyes, redness tinging her cheeks. Her shy moment quickly passes, however, as her shirt begins to blotch more, white liquid spilling out and dribbling onto her apron and ground. Her blush intensifies as she pulls her shawl down to cover her huge chest, turning away and running off, her tail pushing her skirt between her legs and outlining her ample bum.\r\rShe disappears into a building. With a shrug, you head back to Softlik.", true); hrs = 1; doEnd(); }; }; }; } else { if ((((((malonRep > 1)) && ((chance > 80)))) && ((chance <= 90)))){ } else { outputMainText("You manage to approach the farm without being seen or stopped by a farmer. You find a bottle of milk that has yet to be shipped out with the rest. Pocketing it before being caught, you head back to Softlik.", true); item1 = 500; hrs = 2; doEnd(); }; }; }; }; } public function enemyBaseStats():void{ if (enemyID == 101){ setEnemyStats(30, 16, 4, 8, 0, 0, 0, 1, 0, 15, 202); }; if (enemyID == 201){ setEnemyStats(45, 22, 16, 13, 11, 30, 1, 2, 0, 20, 203); }; if (enemyID == 301){ setEnemyStats(50, 12, 10, 24, 30, 40, 2, 4, Math.floor((percent() / 10)), 25, 204); }; if (enemyID == 302){ setEnemyStats(60, 28, 9, 18, 14, 30, 1, 4, Math.floor((percent() / 10)), 25, 205); }; } public function skinDesc():String{ var tempStr:String; tempStr = ("SKIN ERROR " + skinType); if (skinType == 1){ tempStr = "skin"; }; if (skinType == 2){ tempStr = "fur"; }; if (skinType == 3){ tempStr = "scales"; }; return (tempStr); } public function doReturn():void{ if (inBag == true){ doBag(); } else { if (currentState == 1){ doGeneral(); } else { if (currentState == 2){ doBattle(); } else { if (currentState == 3){ doMasturbate(); }; }; }; }; } public function doCoin(changes:int):void{ if ((coin + changes) < 0){ coin = 0; changes = 0; }; coin = (coin + changes); doSexP(0); } public function boobDesc():String{ var chance:int; var tempStr:String; chance = percent(); tempStr = ("BOOB ERROR " + breastSize); if (chance <= 100){ if (breastSize <= 1){ tempStr = "nearly flat"; }; if ((((breastSize > 1)) && ((breastSize <= 4)))){ tempStr = "noticeable"; }; if ((((breastSize > 4)) && ((breastSize <= 10)))){ tempStr = "large"; }; if ((((breastSize > 10)) && ((breastSize <= 20)))){ tempStr = "huge"; }; if ((((breastSize > 20)) && ((breastSize <= 38)))){ tempStr = "humongous"; }; if ((((breastSize > 38)) && ((breastSize <= 73)))){ tempStr = "massive"; }; if ((((breastSize > 73)) && ((breastSize <= 105)))){ tempStr = "gargantuan"; }; if ((((breastSize > 105)) && ((breastSize <= 140)))){ tempStr = "tremendous"; }; if ((((breastSize > 140)) && ((breastSize <= 280)))){ tempStr = "colossal"; }; if (breastSize > 280){ tempStr = "ridiculously huge"; }; }; if (chance > 50){ if (breastSize <= 1){ tempStr = "tiny"; }; if ((((breastSize > 1)) && ((breastSize <= 4)))){ tempStr = "palmable"; }; if ((((breastSize > 4)) && ((breastSize <= 10)))){ tempStr = "ample"; }; if ((((breastSize > 10)) && ((breastSize <= 20)))){ tempStr = "head-sized"; }; if ((((breastSize > 20)) && ((breastSize <= 38)))){ tempStr = "hefty"; }; if ((((breastSize > 38)) && ((breastSize <= 73)))){ tempStr = "beachball-sized"; }; if ((((breastSize > 73)) && ((breastSize <= 105)))){ tempStr = "normally back-breaking"; }; if ((((breastSize > 105)) && ((breastSize <= 140)))){ tempStr = "view-obscuring"; }; if ((((breastSize > 140)) && ((breastSize <= 280)))){ tempStr = "bed-sized"; }; if (breastSize > 280){ tempStr = "road-filling"; }; }; return (tempStr); } public function newGameStart(e:MouseEvent):void{ newGameGo(); } public function doGeneral():void{ bc(); checkZero(); currentState = 1; region.htmlText = regionName(); viewButtonText(1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0); viewButtonOutline(1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0); outputMainText((("You are currently in " + regionName()) + ". What would you like to do?"), true); Choice1.htmlText = "Bag"; Choice2.htmlText = "Shop"; Choice3.htmlText = "Sleep"; Choice4.htmlText = "Masturbate"; Choice6.htmlText = "Tailor"; Choice10.htmlText = "Explore"; if (doWeight()){ Choice10.visible = false; }; if (levelUP > 0){ Choice8.visible = true; Choice8Outline.visible = true; buttonWrite(8, "Level Up!"); }; if (lust == 100){ viewButtonText(0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0); outputMainText("\r\rYour body quivers and your legs give out from under you as your arousal soaks through your clothes. Your mind seems focused only on one thing: SEX!\r\rYou must masturbate if you wish to continue.", false); } else { if (exhaustion > 44){ outputMainText("\r\rThere's only one thing on your mind right now...", false); viewButtonText(0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0); }; }; appearanceText.visible = true; appearanceBox.visible = true; doListen = function ():void{ if (buttonChoice == 1){ doBag(); }; if (buttonChoice == 2){ doShop(); }; if (buttonChoice == 3){ doSleep(); }; if (buttonChoice == 4){ doMasturbate(); }; if (buttonChoice == 6){ doTailor(); }; if (buttonChoice == 10){ doExplore(); }; if (buttonChoice == 8){ doLevelUP(); }; loadGame.visible = false; loadGameOutline.visible = false; saveGame.visible = false; saveGameOutline.visible = false; appearanceText.visible = false; appearanceBox.visible = false; }; } public function hideUpDown():void{ strUp.visible = false; strDown.visible = false; mentaUp.visible = false; mentaDown.visible = false; libUp.visible = false; libDown.visible = false; senDown.visible = false; senUp.visible = false; lustUp.visible = false; lustDown.visible = false; hpUp.visible = false; hpDown.visible = false; } public function doTieden():void{ var chance:int; chance = percent(); if (chance <= 100){ outputMainText("There's nothing to do here...", true); hrs = 1; doEnd(); }; } public function vagChange(sizeChange:int, totalChange:int):void{ if (((((((((vagSize + sizeChange) <= 0)) || (((vagTotal + totalChange) < 1)))) && ((vagSize > 0)))) && ((vagTotal > 0)))){ outputMainText((((((((("\r\rSudden intense cramping makes you double over. A slight moistness in your " + clothesBottom()) + " causes your hand to inspect the situation. It reaches your once ") + vulvaDesc()) + " vulva just in time to feel it shrink to nothing, sealing over with ") + skinDesc()) + ". It seems you have lost your vagina") + plural(2)) + ", "), false); if (cockTotal > 0){ outputMainText((("leaving only your cock" + plural(1)) + " remaining. You are now considered only male."), false); gender = 1; }; if (cockTotal < 1){ outputMainText("leaving you with no genetalia, completely androgynous where it matters. Things might be difficult...", false); gender = 0; }; vagBellyChange(sizeChange, totalChange); stats(0, 0, (2 * vagTotal), 0); vagSize = 0; vagTotal = 0; vulvaSize = 0; clitSize = 0; } else { if (((((vagTotal + totalChange) > 0)) && ((vagTotal < 1)))){ outputMainText((("\r\rYour tummy feels weird as your thighs rub against each other. Your " + clothesBottom()) + " feels wet in the crotch, an oddly new sensation. Reaching in, your hand slips across sensitive and supple flesh. It splits beneath your touch, letting your finger slip in between the moist folds. You let out a moan as your palm slips across bump at the front of the crevice, your finger sinking into a hole. The tip brushes against an even more sensitive ring that sinks further into your body - a fresh womb."), false); vagSize = 1; vulvaSize = 1; clitSize = 1; stats(0, 0, (2 * totalChange), 0); vagBellyChange(sizeChange, totalChange); vagTotal = (vagTotal + totalChange); vagSize = (vagSize + sizeChange); } else { if ((((totalChange > 0)) && ((vagTotal > 0)))){ outputMainText((("\r\rYour " + clothesBottom()) + " feels wet in the crotch, an oddly new sensation. Reaching in, your hand slips across another slit of sensitive and supple flesh. It splits beneath your touch, letting your finger slip in between the moist folds. You let out a moan as your palm slips across another bump at the front of the crevice, your finger sinking into a hole. A brand new vagina to go with the rest."), false); if (totalChange > 1){ outputMainText(((((" Yet, that's simply the first. More moistness slimes your hand as " + totalChange) + " more gashes fill your ") + vulvaDesc()) + " groin, all as sensitive and large as the first."), false); }; vagBellyChange(sizeChange, totalChange); stats(0, 0, (2 * totalChange), 0); vagTotal = (vagTotal + totalChange); vagSize = (vagSize + sizeChange); } else { if ((((totalChange < 0)) && (((vagTotal + totalChange) > 0)))){ outputMainText((((("\r\rYou notice an odd sensation of numbness within your groin. Slipping a hand into your " + clothesBottom()) + ", you notice your missing ") + totalChange) + " of your vaginas."), false); vagBellyChange(sizeChange, totalChange); stats(0, 0, (2 * totalChange), 0); vagTotal = (vagTotal + totalChange); vagSize = (vagSize + sizeChange); } else { if (vagTotal > 0){ vagBellyChange(sizeChange, totalChange); vagSize = (vagSize + sizeChange); }; }; }; }; }; } public function doRace():void{ trace("race"); bc(); viewButtonText(0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0); viewButtonOutline(0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0); Choice2.htmlText = "Human"; Choice5.htmlText = "Equan"; Choice7.htmlText = "Lupan"; Choice10.htmlText = "Felin"; outputMainText("Choose which race you want to be:", true); outputMainText("\r\rHuman - A race supposedly descendant of apes, their curious minds are a bit more thoughtful and their skin is slightly more sesitive.", false); outputMainText("\r\rEquan - A race supposedly descendant of horses, their large genitals make them slightly more sexual and their muscles are more powerful.", false); outputMainText("\r\rLupan - A race supposedly descendant of wolves, their lean bodies are stronger and their minds more quick-witted.", false); outputMainText("\r\rFelin - A race supposedly descendant of cats, their lust-driven society makes them a bit more sexual and sensitive.", false); trace("before listen"); doListen = function ():void{ trace("after listen"); if (buttonChoice == 2){ race = 1; currentZone = 1; humanAffinity = 60; dominant = 1; ears = 1; skinType = 1; str = 15; ment = 17; lib = 15; sen = 17; dayTime(0); doGender(); }; if (buttonChoice == 5){ race = 2; currentZone = 2; horseAffinity = 60; cockSizeMod = (cockSizeMod + 1); dominant = 2; tail = 2; ears = 2; skinType = 2; str = 17; ment = 15; lib = 17; sen = 15; dayTime(0); doGender(); }; if (buttonChoice == 7){ race = 3; currentZone = 3; wolfAffinity = 60; knot = true; dominant = 3; tail = 3; ears = 3; skinType = 2; str = 17; ment = 17; lib = 15; sen = 15; dayTime(0); doGender(); }; if (buttonChoice == 10){ race = 4; currentZone = 4; catAffinity = 60; dominant = 4; heat++; heatMaxTime = 96; heatTime = 96; tail = 4; ears = 4; skinType = 2; str = 15; ment = 15; lib = 17; sen = 17; dayTime(0); doGender(); }; }; } public function doeLust(changes:int):void{ if (eGen == 1){ if (((((eLust + changes) > 20)) && (((eLust + changes) <= 40)))){ outputMainText((("\r\rThe " + enemyName()) + " shifts a little, an erection clearly beginning to grow."), false); }; if (((((eLust + changes) > 40)) && (((eLust + changes) <= 65)))){ outputMainText((("\r\rThe " + enemyName()) + " squirms, pre dripping from the tip of its stiffness."), false); }; if ((eLust + changes) > 65){ outputMainText((("\r\rThe " + enemyName()) + " smears the pre across its rod, stroking it gently while fighting, majorly distracted."), false); }; }; if (eGen == 2){ if (((((eLust + changes) > 20)) && (((eLust + changes) <= 40)))){ outputMainText((("\r\rThe " + enemyName()) + " shifts a little, caressing its pussy here and there when it can."), false); }; if (((((eLust + changes) > 40)) && (((eLust + changes) <= 65)))){ outputMainText((("\r\rThe " + enemyName()) + " squirms, honey dribbling from its naughty hole."), false); }; if ((eLust + changes) > 65){ outputMainText((("\r\rThe " + enemyName()) + " smears the honey all over as it rubs itself constantly while fighting, majorly distracted."), false); }; }; if (eGen == 3){ if (((((eLust + changes) > 20)) && (((eLust + changes) <= 40)))){ outputMainText((("\r\rThe " + enemyName()) + " shifts a little, caressing its pussy here and there when it can while its erection clearly grows."), false); }; if (((((eLust + changes) > 40)) && (((eLust + changes) <= 65)))){ outputMainText((("\r\rThe " + enemyName()) + " squirms, honey dribbling and pre dripping from its aroused genitals."), false); }; if ((eLust + changes) > 65){ outputMainText((("\r\rThe " + enemyName()) + " smears the lubricant all over as it rubs and strokes itself constantly while fighting, majorly distracted."), false); }; }; } public function clothesValue(ID:int):int{ var tempNum:int; tempNum = 0; if (ID == 1){ tempNum = 5; }; if (ID == 2){ tempNum = 5; }; if (ID == 3){ tempNum = 25; }; if (ID == 4){ tempNum = 25; }; if (ID == 5){ tempNum = 45; }; if (ID == 6){ tempNum = 60; }; if (ID == 7){ tempNum = 25; }; if (ID == 8){ tempNum = 25; }; if (ID == 9){ tempNum = 25; }; if (ID == 10){ tempNum = 30; }; if (ID == 11){ tempNum = 40; }; if (ID == 12){ tempNum = 40; }; if (ID == 13){ tempNum = 50; }; if (ID == 14){ tempNum = 35; }; if (ID == 15){ tempNum = 35; }; return (tempNum); } public function genName():String{ var tempStr:String; tempStr = ("GENDER ERROR " + gender); if (gender == 0){ tempStr = "n androgynous"; }; if (gender == 1){ tempStr = " male"; }; if (gender == 2){ tempStr = " female"; }; if (gender == 3){ tempStr = " herm"; }; return (tempStr); } public function viewButtonOutline(button1:int, button2:int, button3:int, button4:int, button5:int, button6:int, button7:int, button8:int, button9:int, button10:int, button11:int, button12:int):void{ if (button1 == 0){ Choice1Outline.visible = false; }; if (button1 == 1){ Choice1Outline.visible = true; }; if (button2 == 0){ Choice2Outline.visible = false; }; if (button2 == 1){ Choice2Outline.visible = true; }; if (button3 == 0){ Choice3Outline.visible = false; }; if (button3 == 1){ Choice3Outline.visible = true; }; if (button4 == 0){ Choice4Outline.visible = false; }; if (button4 == 1){ Choice4Outline.visible = true; }; if (button5 == 0){ Choice5Outline.visible = false; }; if (button5 == 1){ Choice5Outline.visible = true; }; if (button6 == 0){ Choice6Outline.visible = false; }; if (button6 == 1){ Choice6Outline.visible = true; }; if (button7 == 0){ Choice7Outline.visible = false; }; if (button7 == 1){ Choice7Outline.visible = true; }; if (button8 == 0){ Choice8Outline.visible = false; }; if (button8 == 1){ Choice8Outline.visible = true; }; if (button9 == 0){ Choice9Outline.visible = false; }; if (button9 == 1){ Choice9Outline.visible = true; }; if (button10 == 0){ Choice10Outline.visible = false; }; if (button10 == 1){ Choice10Outline.visible = true; }; if (button11 == 0){ Choice11Outline.visible = false; }; if (button11 == 1){ Choice11Outline.visible = true; }; if (button12 == 0){ Choice12Outline.visible = false; }; if (button12 == 1){ Choice12Outline.visible = true; }; } public function doBothMasturbate():void{ if (ment >= (lib - 10)){ outputMainText("", true); }; if ((((ment < (lib - 10))) && ((ment >= (lib - 25))))){ outputMainText("", true); }; if ((((ment < (lib - 25))) && ((ment >= (lib - 50))))){ outputMainText("", true); }; if (ment < (lib - 50)){ outputMainText("", true); }; if (lust > 40){ doSexP(10); }; doLust(-((sen * 3))); } public function doLevelUP():void{ outputMainText((("You have this many perks pending: " + levelUP) + "\r\rClick on an option to view a description and spend a perk."), true); bc(); viewButtonOutline(1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1); viewButtonText(1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1); buttonWrite(1, "Carrier"); buttonWrite(5, "Baby Fact"); buttonWrite(12, "Return"); doListen = function ():void{ if (buttonChoice == 1){ outputMainText("Carrier helps you do one thing: carry stuff!\r\rMainly that means carrying certain oversized attributes, preventing you a bit from becoming overburdened by them when they get too big. With it, people are much more aware when you have arrived, thanks to your giant... things.\r\rFor example, each time you take this perk allows you to carry 20-40 more inches of cock than before (the amount varies).\r\r\rAre you sure you want to spend a Perk on Carrier?", true); buttonConfirm(); doListen = function ():void{ if (buttonChoice == 6){ carryMod = (carryMod + (10 + Math.floor((percent() / 10)))); levelUP--; doEnd(); } else { doLevelUP(); }; }; }; if (buttonChoice == 5){ outputMainText("Baby Factory makes you much more susceptible to making babies. The chance to be impregnated increases by 5% each time you take this perk. Also, your babies are higher quality, taking an extra day and a half to gestate!\r\rWarning: This perk will still function if you don't have a vagina, increasing these variables when you eventually do. Additionally, there is no cap to how many times this perk can be taken, so the %-chance can go beyond 100, possibly making it difficult to reduce.\r\r\rAre you sure you want to spend a Perk on Baby Factory?", true); buttonConfirm(); doListen = function ():void{ if (buttonChoice == 6){ pregChanceMod = (pregChanceMod + 5); pregTimeMod = (pregTimeMod + 36); levelUP--; doEnd(); } else { doLevelUP(); }; }; }; if (buttonChoice == 12){ doReturn(); }; }; } function __setProp_scrollBar_Scene1_scrollBar_1(){ scrollBar["componentInspectorSetting"] = true; //unresolved jump var _slot1 = e; scrollBar.direction = "vertical"; scrollBar.scrollTargetName = "outputWindow"; scrollBar.visible = true; scrollBar["componentInspectorSetting"] = false; //unresolved jump var _slot1 = e; } public function doShop():void{ var buy:int; bc(); buy = 0; viewButtonOutline(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); viewButtonText(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); i = 1; while (i < 13) { buttonWrite(i, itemName(goodsID(i))); i++; }; buttonWrite(4, "Buy"); buttonWrite(8, "Sell"); buttonWrite(12, "Return"); outputMainText("Click on an item to view a description of the item. If you would like to purchase it, click the Buy button.\r\rIf you would like to sell an item from your bag, click Sell.", true); doListen = function ():void{ if (((((((!((buttonChoice == 4))) && (!((buttonChoice == 8))))) && (!((buttonChoice == 12))))) && (!((goodsID(buttonChoice) == 0))))){ outputMainText((((itemDescription(goodsID(buttonChoice)) + "\r\rCost: ") + (3 * itemValue(goodsID(buttonChoice)))) + " coins."), true); buy = buttonChoice; }; if ((((buttonChoice == 4)) && (!((buy == 0))))){ outputMainText((("\r\rAre you should you would like to buy" + itemName(goodsID(buttonChoice))) + "?"), false); buttonConfirm(); doListen = function ():void{ if (buttonChoice == 6){ if (coin < (3 * itemValue(goodsID(buy)))){ outputMainText((((((("Sorry, but you only have " + coin) + " coins. You require at least ") + ((3 * itemValue(goodsID(buy))) - coin)) + " more coins to purchase") + itemName(goodsID(buy))) + "."), true); doNext(); doListen = function ():void{ doShop(); }; } else { if (((checkItem(goodsID(buy))) && (!(conItem(goodsID(buy)))))){ outputMainText((("Sorry, but you cannot buy " + itemName(goodsID(buy))) + " if you already have one. Please choose something else."), true); doNext(); doListen = function ():void{ doShop(); }; } else { item1 = goodsID(buy); doCoin((-3 * itemValue(goodsID(buy)))); doProcess(); }; }; } else { doShop(); }; }; }; if (buttonChoice == 8){ doSell(); }; if (buttonChoice == 12){ doReturn(); }; }; } public function doNext():void{ bc(); viewButtonOutline(0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0); viewButtonText(0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0); buttonWrite(6, "Next"); } public function clothesChange(ID:int):void{ if (ID == 1){ changeTop(1); }; if (ID == 2){ changeBot(2); }; if (ID == 3){ changeTop(3); }; if (ID == 4){ changeBot(4); }; if (ID == 5){ changeTop(5); changeBot(5); }; if (ID == 6){ changeTop(6); changeBot(6); }; if (ID == 7){ changeBot(7); }; if (ID == 8){ changeBot(8); }; if (ID == 9){ changeTop(9); }; if (ID == 10){ changeBot(10); }; if (ID == 11){ changeBot(11); }; if (ID == 12){ changeTop(12); changeBot(12); }; if (ID == 13){ changeTop(13); changeBot(13); }; if (ID == 14){ changeBot(14); }; if (ID == 15){ changeBot(15); }; } public function doEntice():void{ var chance:int; chance = percent(); if ((((((((eGen == 1)) && ((gender == 1)))) && (!((ePref == 2))))) && (!((ePref == 0))))){ if (chance <= 50){ outputMainText((((((((((("You turn around and bend over before the " + enemyName()) + " stroking the ") + cockDesc()) + " bulge in your ") + clothesBottom()) + " and patting your ") + buttDesc()) + " rump while you wave your ") + hipDesc()) + " hips"), true); if (tail != 0){ outputMainText(((", your " + tailDesc()) + " tail dancing above"), false); }; outputMainText(" tantalizingly.", false); }; if (chance > 50){ outputMainText((((("You flex your muscles, trying to show off your masculinity, while you thrust your " + hipDesc()) + " hips in an attempt to show off your ") + cockDesc()) + " bulge."), true); }; if ((((ePref == 1)) || ((ePref == 4)))){ doeLust(Math.floor((((percent() / 10) + (eLib / 5)) + enticeMod))); } else { if (ePref == 3){ doeLust(Math.floor((((percent() / 10) + (eLib / 10)) + enticeMod))); }; }; } else { if ((((((((eGen == 1)) && ((gender == 2)))) && (!((ePref == 1))))) && (!((ePref == 0))))){ if (chance <= 50){ outputMainText(((((("You turn around and bend over before the " + enemyName()) + ", stroking your ") + vulvaDesc()) + " vulva through your ") + clothesBottom()), true); if ((((lust > 20)) && ((vagMoist > 1)))){ outputMainText(" until your feminine arousal seeps through", false); }; outputMainText(((". Your " + hipDesc()) + " hips wiggle erotically"), false); if (tail != 0){ outputMainText(((", your " + tailDesc()) + " tail dancing above"), false); }; outputMainText(".", false); }; if (chance > 50){ outputMainText((((("You lick your finger before sliding it into your mouth, sucking and pulling it out slowly with a small drop of saliva dangling upon your supple lips while you rub the a " + nipDesc()) + " nipple through your ") + clothesTop()) + " with your other hand."), true); }; if ((((ePref == 2)) || ((ePref == 4)))){ doeLust(Math.floor((((percent() / 10) + (eLib / 5)) + enticeMod))); } else { if (ePref == 3){ doeLust(Math.floor((((percent() / 10) + (eLib / 10)) + enticeMod))); }; }; } else { if ((((((((eGen == 2)) && ((gender == 1)))) && (!((ePref == 2))))) && (!((ePref == 0))))){ if (chance <= 50){ outputMainText((((("You pull " + pullUD(2)) + " your ") + clothesBottom()) + " a little, revealing the base of your cock-flesh"), true); if (lust > 20){ outputMainText((((", the " + cockDesc()) + " erection pulsing strongly beneath your ") + clothesBottom()), false); }; outputMainText(", rubbing it to show off what you can offer", false); if ((((lust > 20)) && ((cockMoist > 1)))){ outputMainText(", a blotch of pre beginning to seep across the fabric", false); }; outputMainText(".", false); }; if (chance > 50){ outputMainText("You flex your muscles as you groan with sexual desire, trying to turn you opponent on with the possibilities of what might come.", true); }; if ((((ePref == 1)) || ((ePref == 4)))){ doeLust(Math.floor((((percent() / 10) + (eLib / 5)) + enticeMod))); } else { if (ePref == 3){ doeLust(Math.floor((((percent() / 10) + (eLib / 10)) + enticeMod))); }; }; } else { if ((((((((eGen == 2)) && ((gender == 2)))) && (!((ePref == 1))))) && (!((ePref == 0))))){ if (chance <= 50){ outputMainText((("You spread you knees, crouching down as both hands grinding into your " + vulvaDesc()) + " pussy"), true); if ((((lust > 20)) && ((vagMoist > 1)))){ outputMainText(((", your honey spreading from the crotch of your " + clothesBottom()) + ","), false); }; if (tail != 0){ outputMainText(((", your " + tailDesc()) + " tail swishing across the ground,"), false); }; outputMainText(((" luring the " + enemyName()) + " to come grind instead."), false); }; if (chance > 50){ outputMainText((("Your arms hug beneath your " + boobDesc()) + " chest, squeezing the mounds and making them look even bigger"), true); if ((((((lust > 20)) && ((nippleSize > 1)))) || ((nippleSize > 6)))){ outputMainText((((", your " + nipDesc()) + " nipples clearly visible through your ") + clothesTop()), false); }; outputMainText(".", false); }; if ((((ePref == 2)) || ((ePref == 4)))){ doeLust(Math.floor((((percent() / 10) + (eLib / 5)) + enticeMod))); } else { if (ePref == 3){ doeLust(Math.floor((((percent() / 10) + (eLib / 10)) + enticeMod))); }; }; } else { if ((((((((eGen == 3)) && ((gender == 1)))) && (!((ePref == 2))))) && (!((ePref == 0))))){ if (chance <= 25){ outputMainText(((((((((("You turn around and bend over before the " + enemyName()) + " stroking the ") + cockDesc()) + " bulge in your ") + clothesBottom()) + " and patting your ") + buttDesc()) + " rump while you wave your ") + hipDesc()), true); if (tail != 0){ outputMainText(((", your " + tailDesc()) + " tail dancing above"), false); }; outputMainText(" tantalizingly.", false); }; if ((((chance > 25)) && ((chance <= 50)))){ outputMainText((((("You flex your muscles, trying to show off your masculinity, while you thrust your " + hipDesc()) + " hips in an attempt to show off your ") + cockDesc()) + " bulge."), true); }; if ((((chance > 50)) && ((chance <= 75)))){ outputMainText((((("You pull " + pullUD(2)) + " your ") + clothesBottom()) + " a little, revealing the base of your cock-flesh"), true); if (lust > 20){ outputMainText((((", the " + cockDesc()) + " erection pulsing strongly beneath your ") + clothesBottom()), false); }; outputMainText(", rubbing it to show off what you can offer", false); if ((((lust > 20)) && ((cockMoist > 1)))){ outputMainText(", a blotch of pre begining to seep across the fabric", false); }; outputMainText(".", false); }; if (chance > 75){ outputMainText("You flex your muscles as you groan with sexual desire, trying to turn you opponent on with the possibilities of what might come.", true); }; if ((((ePref == 1)) || ((ePref == 4)))){ doeLust(Math.floor((((percent() / 10) + (eLib / 5)) + enticeMod))); } else { if (ePref == 3){ doeLust(Math.floor((((percent() / 10) + (eLib / 10)) + enticeMod))); }; }; } else { if ((((((((eGen == 3)) && ((gender == 2)))) && (!((ePref == 1))))) && (!((ePref == 0))))){ if (chance <= 25){ outputMainText((("You spread your knees, crouching down as both hands grinding into your " + vulvaDesc()) + " pussy"), true); if ((((lust > 20)) && ((vagMoist > 1)))){ outputMainText(((", your honey spreading from the crotch of your " + clothesBottom()) + ","), false); }; if (tail != 0){ outputMainText(((", your " + tailDesc()) + " tail swishing across the ground,"), false); }; outputMainText(((" luring the " + enemyName()) + " to come grind instead."), false); }; if ((((chance > 25)) && ((chance <= 50)))){ outputMainText((("Your arms hug beneath your " + boobDesc()) + " chest, squeezing the mounds and making them look even bigger"), true); if ((((((lust > 20)) && ((nippleSize > 1)))) || ((nippleSize > 6)))){ outputMainText(((((", your " + nipDesc()) + " nipples clearly visible through your ") + clothesTop()) + "."), false); }; outputMainText(".", false); }; if ((((chance > 50)) && ((chance <= 75)))){ outputMainText(((((("You turn around and bend over before the " + enemyName()) + ", stroking your ") + vulvaDesc()) + " vulva through your ") + clothesBottom()), true); if ((((lust > 20)) && ((vagMoist > 1)))){ outputMainText(" until your feminine arousal seeps through", false); }; outputMainText(((". Your " + hipDesc()) + " hips waggle erotically"), false); if (tail != 0){ outputMainText(((", your " + tailDesc()) + " tail dancing above"), false); }; outputMainText(".", false); }; if (chance > 75){ outputMainText((((("You lick your finger before sliding it into your mouth, sucking and pulling it out slowly with a small drop of saliva dangling upon your supple lips while you rub the a " + nipDesc()) + " nipple through your ") + clothesTop()) + " with your other hand."), true); }; if ((((ePref == 2)) || ((ePref == 4)))){ doeLust(Math.floor(((percent() / 10) + (eLib / 5)))); } else { if (ePref == 3){ doeLust(Math.floor(((percent() / 10) + (eLib / 10)))); }; }; } else { if (gender == 3){ if (chance <= 25){ outputMainText((((((((((((("You turn around and bend over before the " + enemyName()) + ", patting your ") + buttDesc()) + " ass and ") + vulvaDesc()) + " pussy. You waggle your ") + hipDesc()) + " hips, the ") + cockDesc()) + " bulge in your ") + clothesBottom()) + " swaying"), true); if (tail != 0){ outputMainText(((", your " + tailDesc()) + " tail dancing above"), false); }; outputMainText(" deliciously.", false); }; if ((((chance > 25)) && ((chance <= 50)))){ outputMainText((((("Your arms hug beneath your " + boobDesc()) + " chest, squeezing the mounds and making them look even bigger while you flex, thrusting at the air with your ") + cockDesc()) + " package bobbing."), true); }; if ((((chance > 50)) && ((chance <= 75)))){ outputMainText((((("You pull " + pullUD(2)) + " your ") + clothesBottom()) + " a little, revealing the base of your male anatomy while you spread your knees, crouching down as both hands grind across the bulge and into your female portions"), true); if ((((lust > 20)) && ((((vagMoist > 1)) || ((cockMoist > 1)))))){ outputMainText(", the fabric quickly growing damp", false); }; outputMainText(".", false); if (tail != 0){ outputMainText((("Your " + tailDesc()) + " tail swishes across the ground in anticipation."), false); }; }; if (chance > 75){ outputMainText((((("You lick your finger before sliding it into your mouth, sucking and pulling it out slowly with a small drop of saliva dangling upon your supple lips while you rub the " + cockDesc()) + " phallic outling in your ") + clothesBottom()) + " with your other hand."), true); }; if ((((ePref == 3)) || ((ePref == 4)))){ doeLust(Math.floor(((percent() / 10) + (eLib / 5)))); } else { if ((((ePref == 1)) || ((ePref == 2)))){ doeLust(Math.floor(((percent() / 10) + (eLib / 10)))); }; }; } else { if ((((gender == 0)) && (!((ePref == 0))))){ outputMainText((("Your " + hipDesc()) + " hips dance provocatively while you lick and suckle your fingers, trying to show off what you can do with what you've still got."), true); doeLust(Math.floor(((percent() / 10) + (eLib / 10)))); } else { outputMainText((("Your attempt at an erotic display only seems to turn the " + enemyName()) + " off further."), true); eLust = (eLust - 5); enemyAttack(); }; }; }; }; }; }; }; }; } public function itemValue(ID:int):int{ var tempNum:int; tempNum = 0; if (ID == 1){ tempNum = 13; }; if (ID == 101){ tempNum = 50; }; if (ID == 102){ tempNum = 50; }; if (ID == 103){ tempNum = 20; }; if (ID == 104){ tempNum = 100; }; if (ID == 105){ tempNum = 30; }; if (ID == 110){ tempNum = 20; }; if (ID == 111){ tempNum = 15; }; if (ID == 112){ tempNum = 15; }; if (ID == 113){ tempNum = 15; }; if (ID == 114){ tempNum = 15; }; if (ID == 115){ tempNum = 10; }; if (ID == 116){ tempNum = 20; }; if (ID == 117){ tempNum = 30; }; if (ID == 118){ tempNum = 55; }; if (ID == 119){ tempNum = 40; }; if (ID == 120){ tempNum = 30; }; if (ID == 200){ tempNum = 1; }; if (ID == 201){ tempNum = 15; }; if (ID == 202){ tempNum = 15; }; if (ID == 203){ tempNum = 5; }; if (ID == 204){ tempNum = 1; }; if (ID == 205){ tempNum = 1; }; if (ID == 206){ tempNum = 35; }; if (ID == 207){ tempNum = 20; }; if (ID == 208){ tempNum = 15; }; if (ID == 209){ tempNum = 3; }; if (ID == 210){ tempNum = 17; }; if (ID == 211){ tempNum = 10; }; if (ID == 212){ tempNum = 14; }; if (ID == 213){ tempNum = 5; }; if (ID == 500){ tempNum = 5; }; if (ID == 501){ tempNum = 20; }; if (ID == 502){ tempNum = 100; }; return (tempNum); } public function newGameGo():void{ trace("NEWGMAE"); hideUpDown(); statPane.visible = true; statValuePane.visible = true; DayPane.visible = true; DayValuePane.visible = true; clockPane.visible = true; levelPane.visible = true; levelValuePane.visible = true; currentState = 0; currentZone = 0; inBag = false; str = 0; tou = 0; ment = 0; lib = 0; sen = 0; HP = 0; lust = 0; coin = 0; day = 0; hour = 0; SexP = 0; levelUP = 0; level = 0; runMod = 0; rapeMod = 0; cumMod = 1; cockSizeMod = 1; milkMod = 0; carryMod = 0; bellyMod = 0; pregChanceMod = 0; pregTimeMod = 0; enticeMod = 0; gender = 0; race = 0; body = 0; dominant = 0; hips = 0; butt = 0; tallness = 0; skinType = 0; tail = 0; ears = 0; cockTotal = 0; humanCocks = 0; horseCocks = 0; wolfCocks = 0; catCocks = 0; cockSize = 0; cockMoist = 0; balls = 0; ballSize = 0; showBalls = true; knot = false; breastSize = 0; boobTotal = 0; nippleSize = 1; udders = false; udderSize = 0; teatSize = 0; clitSize = 0; vagTotal = 0; vagSize = 0; vagMoist = 0; vulvaSize = 0; attireTop = 1; attireBot = 2; weapon = 10; pregnancy = false; pregnancyType = 0; pregnancyTime = 0; pregMaxTime = 0; exhaustion = 0; exhaustionPenalty = 0; milkEngorgement = 0; milkEngorgementLevel = 0; udderEngorgement = 0; udderEngorgementLevel = 0; heat = 0; heatTime = 0; heatMaxTime = 0; lactation = 0; nipplePlay = 0; udderPlay = 0; blueBalls = 0; teatPump = 0; nipPump = 0; cockPump = 0; clitPump = 0; vulvaPump = 0; humanAffinity = 0; horseAffinity = 0; wolfAffinity = 0; catAffinity = 0; cowAffinity = 0; lilaRep = 0; malonRep = 0; itemSlot1 = 0; itemSlot2 = 0; itemSlot3 = 0; itemSlot5 = 0; itemSlot6 = 0; itemSlot7 = 0; itemSlot9 = 0; itemSlot10 = 0; itemSlot11 = 0; trace("end new game"); doRace(); } public function enemyName():String{ var tempStr:String; tempStr = "ENEMY NAME ERROR"; if (enemyID == 101){ tempStr = "cock-snake"; }; if (enemyID == 201){ tempStr = "lone male wolf"; }; if (enemyID == 301){ tempStr = "felin in heat"; }; if (enemyID == 302){ tempStr = "drunken equan"; }; return (tempStr); } public function eDmg(eweapon:Number):int{ var dmg:int; dmg = Math.floor((((percent() / eweapon) + (eStr / 2)) - ((100 - sen) / 20))); return (dmg); } public function nipDesc():String{ var chance:int; var tempStr:String; chance = percent(); tempStr = ("NIPPLE ERROR " + nippleSize); if (chance <= 100){ if (nippleSize <= 2){ tempStr = "small"; }; if ((((nippleSize > 2)) && ((nippleSize <= 5)))){ tempStr = "noticeable"; }; if ((((nippleSize > 5)) && ((nippleSize <= 9)))){ tempStr = "blatant"; }; if ((((nippleSize > 9)) && ((nippleSize <= 30)))){ tempStr = "teat-like"; }; if ((((nippleSize > 30)) && ((nippleSize <= 50)))){ tempStr = "cock-like"; }; if ((((nippleSize > 50)) && ((nippleSize <= 100)))){ tempStr = "horsecock-like"; }; if ((((nippleSize > 100)) && ((nippleSize <= 140)))){ tempStr = "arm-length"; }; if ((((nippleSize > 140)) && ((nippleSize <= 300)))){ tempStr = "street-clearing"; }; if (nippleSize > 300){ tempStr = "obscene"; }; }; if (chance > 50){ if (nippleSize <= 2){ tempStr = ""; }; if ((((nippleSize > 2)) && ((nippleSize <= 5)))){ tempStr = "perky"; }; if ((((nippleSize > 5)) && ((nippleSize <= 9)))){ tempStr = "hypnotizing"; }; if ((((nippleSize > 9)) && ((nippleSize <= 30)))){ tempStr = "long"; }; if ((((nippleSize > 30)) && ((nippleSize <= 50)))){ tempStr = "huge"; }; if ((((nippleSize > 50)) && ((nippleSize <= 100)))){ tempStr = "enormous"; }; if ((((nippleSize > 100)) && ((nippleSize <= 140)))){ tempStr = "extreme"; }; if ((((nippleSize > 140)) && ((nippleSize <= 300)))){ tempStr = "ridiculous"; }; if (nippleSize > 300){ tempStr = "obscene"; }; }; return (tempStr); } public function saveG(e:MouseEvent):void{ saveGo(); } public function doItemUse(ID:int):void{ var tempNum:int; var chance:int; var ID = ID; if (ID == 103){ bc(); viewButtonText(0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0); viewButtonOutline(0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0); buttonWrite(5, "Penis"); buttonWrite(7, "Pussy"); buttonWrite(10, "Breasts"); outputMainText("Which genitalia would you like to make a bit dryer?", true); doListen = function ():void{ if (buttonChoice == 5){ outputMainText((("You dab the sand onto your cock-head" + plural(1)) + ". It feels odd at first, but as you rub yourself to arousal a bit, you notice a decrease in pre."), true); cockMoist--; doEnd(); }; if (buttonChoice == 7){ outputMainText((("You dab the sand onto your cunt" + plural(2)) + ". It feels odd at first, but as you rub yourself to arousal a bit, you notice a decrease in lubrications."), true); vagMoist--; doEnd(); }; if (buttonChoice == 10){ outputMainText("You dab the sand onto your nipples. It feels odd at first, but as you rub them until they are stiff, you notice a decrease in lactation.", true); lactChange(-1); doEnd(); }; }; }; if (ID == 104){ if (currentState != 3){ outputMainText("You can only use a milker while masturbating", true); doEnd(); } else { tempNum = 0; bc(); viewButtonText(0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0); viewButtonOutline(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0); buttonWrite(5, "Breasts"); buttonWrite(7, "Udder"); if (udders == true){ Choice7.visible = true; }; outputMainText("What would you like to pump?", true); doListen = function ():void{ var getMilk:int; if (buttonChoice == 5){ tempNum = 1; }; if (buttonChoice == 7){ tempNum = 2; }; outputMainText("You uncoil the tubes of your milker, stretching them out and starting up the pump. Attaching the appropriate cups, you slip them onto your ", true); if (tempNum == 1){ outputMainText((((nipDesc() + " nipples, until the rims press up and seal onto your ") + boobDesc()) + " breasts with the gentle suction."), false); }; if (tempNum == 2){ outputMainText((((teatDesc() + " teats, until the rims press up and seal onto your ") + udderDesc()) + " udder with the gentle suction."), false); }; getMilk = milkAmount(tempNum); outputMainText(" You shudder a little as the stuttered pumping vibrates through your body. Warmth begins to envelop your ", false); if (tempNum == 1){ outputMainText("chest", false); }; if (tempNum == 2){ outputMainText("belly", false); }; outputMainText(" feeling all tingly.", false); if (lactation > 0){ outputMainText(" Droplets of milk begin to trickle around your ", false); if (tempNum == 1){ outputMainText("nipples", false); }; if (tempNum == 2){ outputMainText("teats", false); }; outputMainText(" and slurps through the tubes. Within moments, your ", false); if (tempNum == 1){ outputMainText("nipples", false); }; if (tempNum == 2){ outputMainText("teats", false); }; outputMainText(" throb along with the pulse, ", false); if (getMilk <= 16){ outputMainText("small dribbles", false); }; if ((((getMilk > 16)) && ((getMilk <= 32)))){ outputMainText("spurts", false); }; if ((((getMilk > 32)) && ((getMilk <= 64)))){ outputMainText("sprays", false); }; if ((((getMilk > 64)) && ((getMilk <= 0x0100)))){ outputMainText("jets", false); }; if ((((getMilk > 0x0100)) && ((getMilk <= 640)))){ outputMainText("steady streams", false); }; if (getMilk > 640){ outputMainText("small floods", false); }; outputMainText(" of milk swishing through the tubes and collecting at the machine.", false); }; outputMainText(" The pleasurable sensation lingers constantly, bringing you to a small orgasm", false); if (lactation > 0){ outputMainText(" while your flow of milk slows to a stop", false); }; outputMainText(". You flip the machine off, the cups making a loud kissing sound as the vacuum is released. As they fall to the floor, you rub your aroused ", false); if (tempNum == 1){ outputMainText((nipDesc() + " nipples"), false); }; if (tempNum == 2){ outputMainText((teatDesc() + " teats"), false); }; outputMainText(", shivering from their shortly increased sensitivity, slightly engorged and inflated.", false); if ((((boobTotal > 2)) || ((tempNum == 2)))){ outputMainText(" Then you move onto the next pair...", false); }; outputMainText(" Eventually you clean yourself up and put the machine away.", false); if (tempNum == 1){ nipPump = (nipPump + 10); if (nipPump > 40){ nipPump = 0; nippleSize++; outputMainText(" However, this time your nipples don't seem to relax back to their original state, permanently swollen larger...", false); }; }; if (tempNum == 2){ teatPump = (teatPump + 10); if (teatPump > 40){ teatPump = 0; teatSize++; outputMainText(" However, this time your teats don't seem to relax back to their original state, permanently swollen larger...", false); }; }; doNext(); doListen = function ():void{ outputMainText((("You have produced " + getMilk) + " ounces of milk!"), true); doLust(-(Math.floor((sen / 2)))); if (lactation > 0){ if (tempNum == 1){ if (((nipplePlay + 10) / (lactation * 30)) > 1){ lactation++; outputMainText("\r\rYour breasts ache from all the milking, growing larger to meet the demand...", false); boobChange(1); }; nipplePlay = (nipplePlay + 10); }; if (tempNum == 2){ if (((udderPlay + 10) / (lactation * 30)) > 1){ lactation++; outputMainText("\r\rYour udder aches from all the milking, growing larger to meet the demand...", false); udderChange(1); }; udderPlay = (udderPlay + 10); }; }; if ((((getMilk >= 64)) && ((getMilk < 192)))){ item1 = 500; }; if ((((getMilk >= 192)) && ((getMilk < 300)))){ item1 = 501; }; if ((((getMilk >= 300)) && ((getMilk < 600)))){ item1 = 501; item2 = 501; }; if ((((getMilk >= 600)) && ((getMilk < 900)))){ item1 = 502; }; if (getMilk >= 900){ item1 = 502; outputMainText("\r\rHowever, you produced so much milk that the container in the milker couldn't hold it all and everything beyond a barrel-full splashed out around the edges, making a mess everywhere!", false); }; hrs = 1; doEnd(); }; }; }; }; if (ID == 105){ outputMainText((((("Bringing the vial filled with white liquid to your lips, you soon taste the sweet, milky stuff within. Downing it, your " + boobDesc()) + " breasts feel warm. Small blotches of milk form through your ") + clothesTop()) + ", around your nipples. The tingling heat then permeates your body, making you feel slightly more aroused as well."), true); stats(0, 0, 1, 0); doLust(5); lactChange(1); doEnd(); }; if (ID == 110){ bc(); viewButtonText(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0); viewButtonOutline(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0); buttonWrite(1, "Penis"); buttonWrite(2, "Balls"); buttonWrite(3, "Pussy"); buttonWrite(4, "Vulva"); buttonWrite(5, "Clit"); buttonWrite(6, "Breasts"); buttonWrite(7, "Nipples"); buttonWrite(8, "Udder"); buttonWrite(9, "Teats"); buttonWrite(10, "Butt"); buttonWrite(11, "Hips"); outputMainText("Select which body part you would like to halve in size. If you don't have that part, this elixer will do nothing but will still be consumed.", true); doListen = function ():void{ outputMainText("You splash the elixer out onto your ", true); if (buttonChoice == 1){ outputMainText(((cockDesc() + " cock") + plural(1)), false); cockChange(Math.floor((-(cockSize) / 2)), 0); outputMainText(((" and watch with a shiver as the flesh receeds, becoming " + cockDesc()) + "."), false); }; if (buttonChoice == 2){ outputMainText((ballDesc() + " balls"), false); ballSize = (ballSize - (ballSize / 2)); outputMainText(((" and watch with a shiver as the orbs shrink, becoming " + cockDesc()) + "."), false); }; if (buttonChoice == 3){ outputMainText(("vagina" + plural(2)), false); vagChange(Math.floor((-(vagSize) / 2)), 0); outputMainText(" and quiver as the fleshy walls within your body shrink.", false); }; if (buttonChoice == 4){ outputMainText((vulvaDesc() + " vulva"), false); vulvaSize = (vulvaSize - (vulvaSize / 2)); }; outputMainText(((" and watch with a quiver as nether-lips shrink, becoming " + cockDesc()) + "."), false); if (buttonChoice == 5){ outputMainText(((clitDesc() + " clit") + plural(2)), false); clitSize = (clitSize - (clitSize / 2)); outputMainText(((((" and watch with a quiver as the button" + plural(2)) + " shrink, becoming ") + clitDesc()) + "."), false); }; if (buttonChoice == 6){ outputMainText((boobDesc() + " breasts"), false); breastSize = (breastSize - (breastSize / 2)); outputMainText(((" and shudder as they shrink, becoming " + boobDesc()) + "."), false); }; if (buttonChoice == 7){ outputMainText((nipDesc() + " nipples"), false); nippleSize = (nippleSize - (nippleSize / 2)); outputMainText(((" and shudder as they receed into your breasts, becoming " + nipDesc()) + "."), false); }; if (buttonChoice == 8){ outputMainText((udderDesc() + " udder"), false); udderSize = (udderSize - (udderSize / 2)); outputMainText(((" and watch as it shrivels, becoming " + udderDesc()) + "."), false); }; if (buttonChoice == 9){ outputMainText((teatDesc() + " teats"), false); teatSize = (teatSize - (teatSize / 2)); outputMainText((("and watch as they receed, becoming" + teatDesc()) + "."), false); }; if (buttonChoice == 10){ outputMainText((buttDesc() + " butt"), false); butt = (butt - (butt / 2)); outputMainText(((" and squirm as it shrinks, becoming " + buttDesc()) + "."), false); }; if (buttonChoice == 11){ outputMainText((hipDesc() + " hips"), false); hips = (hips - (hips / 2)); outputMainText(((" and squirm as they narrow, becoming " + hipDesc()) + "."), false); }; doEnd(); }; }; if (ID == 111){ outputMainText("Smearing the balm around your body, you feel slightly more sensitive and your curiousity is slightly piquied.", true); stats(0, 1, 0, 1); affinity(Math.floor(((percent() / 15) + 2)), -2, -2, -2, -2); doEnd(); }; if (ID == 112){ outputMainText("Downing the 'juice', you realize it's a lot thicker and stickier than you expected, and quite heady. You heart beats a bit stronger and you shudder a bit.", true); stats(1, 0, 1, 0); affinity(-2, Math.floor(((percent() / 15) + 2)), -2, -2, -2); doEnd(); }; if (ID == 113){ outputMainText("Biting into the leaf, it feels oddly sour. However, afterward your mind feels a bit clearer and your body more prepared for whatever may come.", true); stats(1, 1, 0, 0); affinity(-2, -2, Math.floor(((percent() / 15) + 2)), -2, -2); doEnd(); }; if (ID == 114){ outputMainText("Drinking the slick, slimey, slightly sweet sap, you realize it probably isn't sap... The thought makes you tingle with arousal, your whole body slightly more sensitive.", true); stats(0, 0, 1, 1); affinity(-2, -2, -2, Math.floor(((percent() / 15) + 2)), -2); doEnd(); }; if (ID == 115){ outputMainText("You rub the soothing poultice all over your wounds, quickly making them heal. Rubbing yourself down with the wet rag, you rub a little too much in some areas and become slightly more aroused.", true); doHP(20); doLust(5); doEnd(); }; if (ID == 116){ outputMainText("You have equipped the dagger.", true); weapon = 7.7; doEnd(); }; if (ID == 117){ outputMainText("You have equipped the warhammer.", true); weapon = 5.89; }; if (ID == 118){ outputMainText("You have equipped the saber.", true); weapon = 4; doEnd(); }; if (ID == 119){ outputMainText("You have equipped the whip.", true); weapon = 5; doEnd(); }; if (ID == 213){ bc(); viewButtonText(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0); viewButtonOutline(0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0); buttonWrite(5, "Cock"); buttonWrite(7, "Cunt"); buttonWrite(10, "Balls"); if (showBalls == true){ Choice10.visible = true; }; outputMainText("What would you remove?", true); doListen = function ():void{ if (buttonChoice == 5){ outputMainText((((((("You rub the neuterizer into " + oneYour(1)) + " ") + cockDesc()) + " cock") + plural(1)) + "..."), true); cockChange(0, -1); doEnd(); }; if (buttonChoice == 7){ outputMainText((((((("You rub the neuterizer into " + oneYour(1)) + " ") + vulvaDesc()) + " cunt") + plural(1)) + "..."), true); vagChange(0, -1); doEnd(); }; if (buttonChoice == 10){ outputMainText("Unfortunately, the neuterizer cannot simply make your testicles disappear while you still have any cocks. It would be... too dangerous. But, rubbing it onto your scrotum, your balls disappear up into your body, hidden from view.", true); showBalls = false; doEnd(); }; }; }; if (ID == 201){ bc(); viewButtonText(0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0); viewButtonOutline(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0); buttonWrite(5, "Breasts"); if (udders == true){ buttonWrite(7, "Udder"); Choice7.visible = true; }; outputMainText("What would you like to rub the Milk Creeper Poison into?", true); doListen = function ():void{ if (buttonChoice == 5){ outputMainText((("You pour out the vial of poison and rub the pearlescant fluid all over your " + boobDesc()) + " breasts. You shiver a little as they tingle warmly, the nipples wobbling as they and the mounds beneath them swell slightly larger."), true); boobChange(1); doLust((percent() / 10)); doEnd(); }; if (buttonChoice == 7){ outputMainText((("You pour out the vial of poison and rub the pearlescant fluid all over your " + udderDesc()) + " udder. Your hips twitch a little as the fleshy bag tingles warmly, the teats wobbling as they and the mound beneath them swell slightly larger."), true); udderChange(1); doLust((percent() / 10)); doEnd(); }; }; }; if (ID == 202){ if (cockTotal > 0){ outputMainText((((((((("You pull your " + clothesBottom()) + " ") + pullUD(2)) + " and rub the venom into you cock") + plural(1)) + ". Within seconds, you begin to shudder erotically as warmth fills your cock") + plural(1)) + ", making them grow erect. Growing and growing, even further than before, gaining 4 more inches in length!"), true); cockChange(2, 0); doLust((8 * cockTotal)); doEnd(); }; if (cockTotal < 1){ outputMainText((((("You pull your " + clothesBottom()) + " ") + pullUD(2)) + " and rub the venom into your groin, just above your crotch. Within seconds, you begin to shudder..."), true); cockChange(0, 1); doLust((8 * cockTotal)); doEnd(); }; }; if (ID == 203){ outputMainText((("You rub the tuft of coarse wolf fur into your " + skinDesc()) + ". The roughness desensitizes you a bit."), true); stats(0, 0, 0, -3); doEnd(); }; if (ID == 204){ chance = percent(); if (chance <= 30){ outputMainText("You find some coins inside!", true); doCoin(Math.floor((percent() / 5))); } else { if ((((chance > 40)) && ((chance <= 55)))){ item1 = 105; } else { if ((((chance > 55)) && ((chance <= 75)))){ item1 = 103; } else { if ((((chance > 75)) && ((chance <= 90)))){ item1 = 114; } else { outputMainText("Daww, turns out the pouch was empty...", true); }; }; }; }; doEnd(); }; if (ID == 205){ chance = percent(); if (chance <= 50){ outputMainText("You find some coins inside!", true); doCoin(Math.floor(((percent() / 5) + 5))); } else { if ((((chance > 50)) && ((chance <= 65)))){ item1 = 112; } else { if ((((chance > 65)) && ((chance <= 85)))){ item1 = 115; } else { if (chance > 85){ outputMainText("Daww, turns out the pouch was empty...", true); }; }; }; }; doEnd(); }; if (ID == 207){ chance = percent(); outputMainText("You crack open the wooden cock. ", true); if (chance <= 15){ outputMainText(((" Sparkling lights erupt from the crack, swirling around in the air until they come together to form the outline of a disembodied glowing cock, looking much like the carving. Before you react, it flips around and dives down, before driving back up between your legs and disappearing into the crotch of your " + clothesBottom()) + "."), false); vagChange(0, 1); doLust((percent() / 5)); } else { if (chance <= 30){ outputMainText(((" Sparkling lights erupt from the crack, swirling around in the air until they come together to form the outline of a disembodied glowing cock, looking much like the carving. Before you react, it flips around and charges at your groin, ramming right above your crotch and disappearing into the front of of your " + clothesBottom()) + "."), false); cockChange(0, 1); doLust((percent() / 5)); } else { outputMainText(" There's nothing inside... Either this thing was just some kinky woman's play-toy, or it was a dud.", false); }; }; doEnd(); }; if (ID == 208){ chance = percent(); outputMainText("You pop the berry into your mouth. As it pops and gushes with juice within your mouth, your face cringes at how un-sweet it is. Tasting more salty with a thick texture, you swallow it as fast as possible.", true); if ((((((balls > 0)) && ((ballSize > 0)))) && ((showBalls == true)))){ outputMainText(" Moments later, you feel a warmth in your groin. You squirm as you feel your testicles swell within their scrotum, growing hot with seed... Seems as though this berry has increased the size of your balls, somehow.", false); if (chance <= 33){ ballSize = (ballSize + 3); } else { if (chance <= 66){ ballSize = (ballSize + 2); } else { ballSize++; }; }; doLust((percent() / 10)); } else { if ((((((balls > 0)) && ((ballSize > 0)))) && ((showBalls == false)))){ outputMainText(" Moments later, you feel a warmth in your groin. You squirm as you feel your cum churning within your body, something swelling within... Seems as though this berry has increased the size of your non-visible balls, somehow.", false); if (chance <= 33){ ballSize = (ballSize + 3); } else { if (chance <= 66){ ballSize = (ballSize + 2); } else { ballSize++; }; }; doLust((percent() / 10)); } else { outputMainText(" Moments later, you feel a bit of warmth in your groin, but it quickly passes. Now all you're left with is the aftertaste...", false); }; }; doEnd(); }; if (ID == 209){ outputMainText("You pop the handful into your mouth and munch on them. Doesn't tast too bad. Although, the thought of mixing them in a bowl with some milk for breakfast does cross your mind, but passes shortly as you feel like you can get through the day better anyways.", true); exhaustion = (exhaustion - 4); if (percent() <= 15){ outputMainText((((("\r\rUnfortunately, it seems the carbs have gone straight to your " + buttDesc()) + " ass, making your ") + clothesBottom()) + " feel slightly tight around it as it grows larger."), false); butt++; }; doEnd(); }; if (ID == 210){ chance = percent(); outputMainText("You bite into the fold-like cleft of the pussy fruit, sweet juices spilling out around your face and drooling from your chin in long, slimy strands. You devour it shortly and feel great!", true); doHP(15); if ((((chance <= 25)) && ((vagTotal > 0)))){ outputMainText((((((("\r\rHowever, it feels as though the juices have run straight to your crotch as a warmth spreads around your cunt" + plural(2)) + ". You squeeze your ") + vulvaDesc()) + " groin through your ") + clothesBottom()) + ", feeling it swell larger...\r\rYou walk a bit awkwardly afterward, getting used to your now extra-swollen lips..."), false); vulvaSize++; doLust((percent() / 10)); } else { if ((((chance <= 50)) && ((vagTotal > 0)))){ outputMainText((((("\r\rHowever, it feels as though the juices have run straight to your crotch as a warmth spreads around your cunt" + plural(2)) + ". You double over as your stomach cramps a little. It feels like your insides are being compressed, your cunt") + plural(2)) + " feeling larger within...\r\rThe cramping shortly passes, but the increased size is real..."), false); vagChange(1, 0); doLust((percent() / 10)); } else { if ((((chance <= 60)) && ((vagTotal > 0)))){ outputMainText((((((((("\r\rHowever, it feels as though the juices have run straight to your crotch as a warmth spreads around your cunt" + plural(2)) + ". You double over as your stomach cramps a little. It feels like your insides are being compressed, your cunt") + plural(2)) + " feeling larger within. You squeeze your ") + vulvaDesc()) + " groin through your ") + clothesBottom()) + ", feeling it swell larger...\r\rThe cramping shortly passes, but you walk awkwardly afterward, getting used to your now extra-swollen lips..."), false); vulvaSize++; vagChange(1, 0); doLust((percent() / 5)); }; }; }; doEnd(); doLust((percent() / 10)); }; if (ID == 211){ outputMainText((("Considering you don't have any cows to give it to, you pop the pill into your mouth and gulp it down. Within seconds your " + boobDesc()) + " chest begins to feel warm..."), true); lactChange(1); doLust((percent() / 10)); affinity(-1, -1, -1, -1, Math.floor(((percent() / 20) + 2))); doEnd(); }; if (ID == 212){ outputMainText((((((((("You munch on the red mushroom. It doesn't taste terribly good or bad, but a blush quickly heats up your face as your chest turns intensely warm. You " + clothesTop()) + " feels unexpectedly tight.\r\rAs you look down, you let out a gasp as your ") + boobDesc()) + " chest swells beneath your ") + clothesTop()) + ", your ") + nipDesc()) + " nipples pushing against the fabric.\r\rThe warmth quickly passes, leaving your chest-bumps a bit more wobbly"), true); boobChange(1); doEnd(); }; if (ID == 213){ bc(); viewButtonText(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0); viewButtonOutline(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0); buttonWrite(5, ("Cock" + plural(1))); buttonWrite(7, ("Cunt" + plural(2))); outputMainText("What would you like to rub the wet, slimy cloth on?", true); doListen = function ():void{ if (buttonChoice == 5){ outputMainText((((((((((("You rub the slimy cloth around the head" + plural(1)) + " of your ") + cockDesc()) + " cock") + plural(1)) + ", polishing until there's a nice sheen. You feel a bit aroused from doing so, however the cloth seems to have finally dried off.\r\rHowever, instead you cock") + plural(1)) + " begin") + plural(3)) + " dripping without the slime of the cloth instead..."), true); cockMoist++; if (cockMoist > 5){ outputMainText("\r\rHowever, that's not really any different than normal, leaving you fairly unaffected.", false); }; doLust((percent() / 10)); doEnd(); }; if (buttonChoice == 7){ outputMainText((((((((("You rub the slimy cloth through the lips of your " + vulvaDesc()) + " cunt") + plural(2)) + " until your thighs are completely wet. You feel a bit aroused from doing so, however the cloth seems to have finally dried off.\r\rHowever, instead you cunt") + plural(2)) + " begin") + plural(4)) + " dripping without the slime of the cloth instead..."), true); vagMoist++; if (vagMoist > 5){ outputMainText("\r\rHowever, that's not really any different than normal, leaving you fairly unaffected.", false); }; doLust((percent() / 10)); doEnd(); }; }; }; if (ID == 500){ outputMainText("You down the bottle of milk and feel refreshed!", true); doHP(10); exhaustion = (exhaustion - 2); doEnd(); }; if (ID == 501){ outputMainText("You guzzle down the jug of milk and feel very refreshed! And you feel like you have a rather full bladder...", true); doHP(40); exhaustion = (exhaustion - 6); doEnd(); }; if (ID == 502){ outputMainText("You pour the milk out of the barrel into 4 jugs...", true); item1 = 501; item2 = 501; item3 = 501; item4 = 501; doEnd(); }; } public function vagBellyChange(sizeChange:int, totalChange:int):void{ if ((((((vagSize + sizeChange) * (vagTotal + totalChange)) > body)) && ((((vagSize + sizeChange) * (vagTotal + totalChange)) > (vagSize * vagTotal))))){ outputMainText("\r\rYour belly bulges slightly more as the vaginal flesh within takes up more room than your belly can handle...", false); if ((vagSize * vagTotal) > body){ bellyMod = (bellyMod + (sizeChange * totalChange)); }; if ((vagSize * vagTotal) <= body){ bellyMod = (bellyMod + (((vagSize + sizeChange) * (vagTotal + totalChange)) - body)); }; }; if (((((vagSize * vagTotal) > body)) && ((((vagSize + sizeChange) * (vagTotal + totalChange)) < (vagSize * vagTotal))))){ outputMainText("\r\rYour belly flattens slightly as the amount of vaginal flesh within shrinks a bit.", false); if (((vagSize + sizeChange) * (vagTotal + totalChange)) > body){ bellyMod = (bellyMod + (sizeChange * totalChange)); }; if (((vagSize + sizeChange) * (vagTotal + totalChange)) <= body){ if ((body + ((vagSize + sizeChange) * (vagTotal + totalChange))) >= 0){ bellyMod = (bellyMod + (body + ((vagSize + sizeChange) * (vagTotal + totalChange)))); } else { if ((body + ((vagSize + sizeChange) * (vagTotal + totalChange))) < 0){ bellyMod = (bellyMod + (((vagSize + sizeChange) * (vagTotal + totalChange)) + Math.abs((body + ((vagSize + sizeChange) * (vagTotal + totalChange)))))); }; }; }; }; } public function doPassOut():void{ var tempNum:int; if (currentState == 2){ currentState = 1; }; tempNum = (((percent() / 10) * level) * 10); outputMainText((("\r\rYou pass out from all the pain. When you wake back up, you manage to stumble back to town. However, it seems as though your pockets are a bit lighter for some reason or another.\r\rYou have lost " + tempNum) + " coins."), false); doCoin(-(tempNum)); exhaustion = (exhaustion - Math.floor((percent() / 20))); hrs = (2 + Math.floor((percent() / 20))); doEnd(); } public function doSell():void{ var sell:int; bc(); sell = 0; viewButtonOutline(1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1); viewButtonText(1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1); outputMainText("Click on an item you would like to sell.", true); i = 1; while (i < 13) { buttonWrite(i, itemName(itemID(i))); i++; }; buttonWrite(12, "Return"); doListen = function ():void{ if (((((((!((buttonChoice == 4))) && (!((buttonChoice == 8))))) && (!((buttonChoice == 12))))) && (!((itemID(buttonChoice) == 0))))){ outputMainText((((itemName(itemID(buttonChoice)) + " sells for ") + itemValue(itemID(buttonChoice))) + ".\r\rAre you sure you want to sell it?"), true); sell = buttonChoice; buttonConfirm(); doListen = function ():void{ if (buttonChoice == 6){ doCoin(itemValue(itemID(sell))); loseItem(sell); doSell(); } else { doSell(); }; }; }; if (buttonChoice == 12){ doShop(); }; }; } public function clothesDescription(ID:int):String{ var tempStr:String; tempStr = "CLOTHES NAME ERROR"; if (ID == 1){ tempStr = "A generic shirt with no special attributes.\r\rTakes top clothes slot"; }; if (ID == 2){ tempStr = "A generic pair of pants with no special attributes.\r\rTakes bottom clothes slot"; }; if (ID == 3){ tempStr = "A rather revealing bikini top/s, covering all your breasts. Also improves enticement and sensitivity, but reduces your mentality and milk production.\r\rTakes top clothes slot"; }; if (ID == 4){ tempStr = "A rather revealing bikini bottom, covering your groin. Also improves enticement and sensitivity, but reduces your mentality and cum production.\r\rTakes bottom clothes slot."; }; if (ID == 5){ tempStr = "A courtly dress that's more about giving a good impression than a slutty one. Improves mentality, but reduces strength.\r\rTakes both top and bottom clothes slots."; }; if (ID == 6){ tempStr = "A suit made of a thin, very tight material that covers most of your body. Greatly improves enticement and sensitivity, but also reduces mentality, run chance, cum and milk production.\r\rTakes both top and bottom clothes slots."; }; if (ID == 7){ tempStr = "A modest skirt, very helpful in terms of function. Improves run chance, strength, and cum production, but reduces mentality and increases pregnancy chance.\r\rTakes bottom clothes slot."; }; if (ID == 8){ tempStr = "A pair of shorts, very helpful in terms of function. Improves run chance and strength, but reduces libido.\r\rTakes bottom clothes slot."; }; if (ID == 9){ tempStr = "A buttoned shirt that improves milk production and mentality, but reduces sensitivity and strength.\r\rTakes top clothes slot."; }; if (ID == 10){ tempStr = "A diaper that helps soak up some of your moistness and makes your hips look bigger, but reduces mentality.\r\rWarning: Removing the diaper after wearing it could potentially make you even wetter than before you put it on, your body depending too much on it.\r\rTakes bottom clothes slot."; }; if (ID == 11){ tempStr = "A poofy diaper that helps soak up a lot of your moistness and makes both your hips and butt look bigger, but reduces mentality and libido.\r\rWarning: Removing the poofy diaper after wearing it could potentially make you even wetter than before you put it on, your body depending too much on it.\r\rTakes bottom clothes slot."; }; if (ID == 12){ tempStr = "A casual dress that gives your body a lot of exposure. Improves sensitivity, cum production, and libido, but reduces run chance, strength, and increases pregnancy chance.\r\rTakes both top and bottom clothes slots."; }; if (ID == 13){ tempStr = "A skimpy dress that really hugs your curves. Improves sensitivity, enticement, and libido, but reduces strength, mentality, and increases pregnancy chance.\r\rTakes both top and bottom clothes slots."; }; if (ID == 14){ tempStr = "A short skirt that's more attractive than modest. Improves cum production, sensitivity, and enticement, but reduces mentality and increases pregnancy chance.\r\rTakes bottom clothes slots."; }; if (ID == 15){ tempStr = "A pair of short shorts that's more skimpy than funtional. Improves sensitivity, enticement, and run chance, but reduces cum production, mentality, and strength.\r\rTakes bottom clothes slot."; }; return (tempStr); } public function cockDesc():String{ var chance:int; var tempCock:int; var tempStr:String; chance = percent(); tempCock = (cockSize * cockSizeMod); tempStr = ("COCK ERROR " + tempCock); if (chance <= 100){ if (tempCock <= 2){ tempStr = "puny"; }; if ((((tempCock > 2)) && ((tempCock <= 3)))){ tempStr = "average-sized"; }; if ((((tempCock > 3)) && ((tempCock <= 6)))){ tempStr = "big"; }; if ((((tempCock > 6)) && ((tempCock <= 8)))){ tempStr = "large"; }; if ((((tempCock > 8)) && ((tempCock <= 14)))){ tempStr = "huge"; }; if ((((tempCock > 14)) && ((tempCock <= 18)))){ tempStr = "enormous"; }; if ((((tempCock > 18)) && ((tempCock <= 25)))){ tempStr = "gigantic"; }; if ((((tempCock > 26)) && ((tempCock <= 38)))){ tempStr = "humongous"; }; if ((((tempCock > 38)) && ((tempCock <= 76)))){ tempStr = "tremendous"; }; if ((((tempCock > 76)) && ((tempCock <= 152)))){ tempStr = "colossal"; }; if ((((tempCock > 152)) && ((tempCock <= 300)))){ tempStr = "ridiculous"; }; if (tempCock > 300){ tempStr = "impossibly-ginormous"; }; }; if (chance > 50){ if (tempCock <= 2){ tempStr = "infantile"; }; if ((((tempCock > 2)) && ((tempCock <= 3)))){ tempStr = "hand-length"; }; if ((((tempCock > 3)) && ((tempCock <= 6)))){ tempStr = "larger than normal"; }; if ((((tempCock > 6)) && ((tempCock <= 8)))){ tempStr = "foot-long"; }; if ((((tempCock > 8)) && ((tempCock <= 14)))){ tempStr = "thigh-slapping"; }; if ((((tempCock > 14)) && ((tempCock <= 18)))){ tempStr = "knee-knocking"; }; if ((((tempCock > 18)) && ((tempCock <= 25)))){ tempStr = "leg-sized"; }; if ((((tempCock > 26)) && ((tempCock <= 38)))){ tempStr = "person-sized"; }; if ((((tempCock > 38)) && ((tempCock <= 76)))){ tempStr = "car-sized"; }; if ((((tempCock > 76)) && ((tempCock <= 152)))){ tempStr = "bus-sized"; }; if ((((tempCock > 152)) && ((tempCock <= 300)))){ tempStr = "building-sized"; }; if (tempCock > 300){ tempStr = "landscape-filling"; }; }; return (tempStr); } public function buttonEvent3(e:MouseEvent):void{ buttonChoice = 3; hideUpDown(); doListen(); } public function buttonEvent4(e:MouseEvent):void{ buttonChoice = 4; hideUpDown(); doListen(); } public function buttonEvent5(e:MouseEvent):void{ buttonChoice = 5; hideUpDown(); doListen(); } public function cockChange(sizeChange:int, totalChange:int):void{ var chance:int; if (((((((((cockSize + sizeChange) <= 0)) || (((cockTotal + totalChange) < 1)))) && ((cockSize > 0)))) && ((cockTotal > 0)))){ outputMainText((("\r\rYou shiver a little as your cock" + plural(1)) + " and balls shrink into your body, disappearing"), false); if (vagTotal > 0){ outputMainText(((", leaving you with only your vagina" + plural(2)) + " and making you solely female."), false); gender = 2; }; if (vagTotal < 1){ outputMainText(", leaving you with no genitals whatsoever. This is going to make things tough...", false); gender = 0; }; balls = 0; stats(0, 0, (2 * cockTotal), 0); ballSize = 0; cockSize = 0; cockTotal = 0; humanCocks = 0; horseCocks = 0; wolfCocks = 0; catCocks = 0; } else { if (((((cockTotal + totalChange) > 0)) && ((cockTotal < 1)))){ outputMainText((((("\r\rA strange sensation of arousal engulfs your groin. Your " + clothesBottom()) + " grows tight as you feel something swell within. You don't have much time to open your ") + clothesBottom()) + " as flesh bulges over the fitted garment. Throbbing and dripping with pre, a fresh, new "), false); if (dominant == 1){ outputMainText("human ", false); humanCocks++; }; if (dominant == 2){ outputMainText("equine ", false); horseCocks++; }; if (dominant == 3){ outputMainText("canine ", false); wolfCocks++; }; if (dominant == 4){ outputMainText("feline ", false); catCocks++; }; outputMainText("penis stands erect and balls to match settle within your crotch beneath", false); if (vagTotal > 0){ outputMainText(((", slipping into your " + vulvaDesc()) + " lips. You now are considered a cross between genders, a herm."), false); gender = 3; } else { outputMainText(". You have now graduated from androgynous to male, congratulations!", false); gender = 1; }; ballSize = 1; balls = 2; showBalls = true; cockSize = 1; stats(0, 0, (2 * totalChange), 0); cockTotal = totalChange; cockSize = (cockSize + sizeChange); } else { if ((((totalChange > 0)) && ((cockTotal > 0)))){ outputMainText((((("\r\rA strange sensation of arousal engulfs your groin. Your " + clothesBottom()) + " grows tight as you feel something swell within. You don't have much time to open your ") + clothesBottom()) + " as flesh bulges over the fitted garment. Throbbing and dripping with pre, fresh and new,"), false); if (totalChange > 1){ outputMainText((" " + totalChange), false); }; if (dominant == 1){ outputMainText(" human ", false); humanCocks = (humanCocks + totalChange); }; if (dominant == 2){ outputMainText(" equine ", false); horseCocks = (horseCocks + totalChange); }; if (dominant == 3){ outputMainText(" canine ", false); wolfCocks = (wolfCocks + totalChange); }; if (dominant == 4){ outputMainText(" feline ", false); catCocks = (catCocks + totalChange); }; outputMainText("penis", false); if (totalChange > 1){ outputMainText("es", false); }; outputMainText(((" standing erect with the other" + plural(1)) + "."), false); stats(0, 0, (2 * totalChange), 0); cockTotal = (cockTotal + totalChange); cockSize = (cockSize + sizeChange); } else { if ((((((totalChange < 0)) && ((cockTotal > 0)))) && ((cockSize > 0)))){ outputMainText((((("\r\rYou notice an odd sensation of numbness within your groin. Your " + clothesBottom()) + " feels looser, something going missing withing. By the time you open your ") + clothesBottom) + " you notice that you have lost something."), false); while (totalChange < 0) { outputMainText("\r\rYou have lost ", false); chance = percent(); if ((((chance <= 25)) && ((humanCocks > 1)))){ outputMainText("one human cock.", false); humanCocks--; totalChange++; }; if ((((((chance > 25)) && ((chance <= 50)))) && ((horseCocks > 1)))){ outputMainText("one horse cock.", false); horseCocks--; totalChange++; }; if ((((((chance > 50)) && ((chance <= 75)))) && ((wolfCocks > 1)))){ outputMainText("one dog cock.", false); wolfCocks--; totalChange++; }; if ((((chance > 75)) && ((catCocks > 1)))){ outputMainText("one cat cock.", false); catCocks--; totalChange++; }; }; stats(0, 0, (2 * totalChange), 0); } else { if (cockTotal > 0){ cockSize = (cockSize + sizeChange); }; }; }; }; }; } public function buttonEvent6(e:MouseEvent):void{ buttonChoice = 6; hideUpDown(); doListen(); } public function buttonEvent7(e:MouseEvent):void{ buttonChoice = 7; hideUpDown(); doListen(); } public function buttonEvent8(e:MouseEvent):void{ buttonChoice = 8; hideUpDown(); doListen(); } public function buttonEvent2(e:MouseEvent):void{ buttonChoice = 2; hideUpDown(); trace("2"); doListen(); } public function itemSlotWrite(slotNumber:int, slotItem:int):void{ if (slotNumber == 1){ itemSlot1 = slotItem; }; if (slotNumber == 2){ itemSlot2 = slotItem; }; if (slotNumber == 3){ itemSlot3 = slotItem; }; if (slotNumber == 5){ itemSlot5 = slotItem; }; if (slotNumber == 6){ itemSlot6 = slotItem; }; if (slotNumber == 7){ itemSlot7 = slotItem; }; if (slotNumber == 9){ itemSlot9 = slotItem; }; if (slotNumber == 10){ itemSlot10 = slotItem; }; if (slotNumber == 11){ itemSlot11 = slotItem; }; passiveItem(slotItem); } public function buttonEvent10(e:MouseEvent):void{ buttonChoice = 10; hideUpDown(); doListen(); } public function doBoobMasturbate():void{ var getMilk:int; if (ment >= (lib - 10)){ outputMainText((((((((((("You sneak off to the private place where you sleep in " + regionName()) + ". Carefully, so as to not let anybody hear, you pull ") + pullUD(1)) + " your ") + clothesTop()) + " and gently knead your ") + boobDesc()) + " breasts.\r\rHunching over at the side of the bed, you massage your ") + nipDesc()) + " nipples, tugging and squeezing them each with"), true); }; if ((((ment < (lib - 10))) && ((ment >= (lib - 25))))){ outputMainText((((((((((((("You quickly head off to the private place where you sleep with your intention clear as those around " + regionName()) + " can easily see you rub your ") + boobDesc()) + " chest through your ") + clothesTop()) + ". Before you even reach your destination, your hands are already reaching ") + pullUD(1)) + " under your ") + clothesTop()) + " to play with your ") + nipDesc()) + " nipples, giving someone a good view of your under-boob.\r\rBy the time you're hidden inside, both hands are fondling yout chest, kneading and massaging your nipples with"), true); }; if ((((ment < (lib - 25))) && ((ment >= (lib - 50))))){ outputMainText((((((((((("Your " + boobDesc()) + " breasts heave with your heavy breathing as you think about playing with them. You don't think you can reach the private place where you sleep without your hands diving underneath your ") + clothesTop()) + " and massaging them roughly.\r\rInstead, you duck into one of the more hidden corners of ") + regionName()) + " and without even taking off your ") + clothesTop()) + ", you grope your chest through the fabric before your reaching underneath, kneading and massaging your ") + nipDesc()) + " nipples with "), true); }; if (ment < (lib - 50)){ outputMainText((((((((((("Without a second thought, right in the middle of " + regionName()) + " your pull ") + pullUD(1)) + " your ") + clothesTop()) + ", rubbing a hand across your ") + boobDesc()) + " breasts and making them jiggle obscenely.\r\rPeople gasp and stare as you knead and massage your ") + nipDesc()) + " nipples with your "), true); }; if (nippleSize <= 25){ outputMainText(" your fingers", false); } else { if ((((nippleSize > 25)) && ((nippleSize <= 60)))){ outputMainText(" your hands", false); } else { if ((((nippleSize > 60)) && ((nippleSize <= 180)))){ outputMainText(" both hands", false); } else { if (nippleSize > 180){ outputMainText(" the nearby wall", false); }; }; }; }; outputMainText(" until they begin to feel warm and tingly.", false); if (boobTotal == 6){ outputMainText(" Your hands have their work cut out for them as they attempt to give all 6 of your breasts attention, running up and down, from chest to belly, caressing them restlessly as you heave to control yourself just a little longer.", false); }; if (sen <= 30){ outputMainText(" Unfortunately, you can't really come as your breasts simply aren't sensitive enough. But, it does feel nice as you continue to play with your nipples.", false); doLust(-(Math.floor((sen / 2)))); } else { if (lust <= 30){ outputMainText("\r\rSlowly,", false); }; if ((((lust > 30)) && ((lust <= 70)))){ outputMainText("\r\rQuickly,", false); }; if (lust > 70){ outputMainText("\r\rAlmost instantly,", false); }; outputMainText(" your whole body begins to quiver,", false); if ((((cockMoist == 1)) || ((vagMoist == 1)))){ outputMainText(((" your " + clothesBottom()) + " growing a tad moist,"), false); }; if ((((cockMoist == 2)) || ((vagMoist == 2)))){ outputMainText(((" your " + clothesBottom()) + " growing wet,"), false); }; if ((((cockMoist == 3)) || ((vagMoist == 3)))){ outputMainText(((" your " + clothesBottom()) + " becoming soaked through to the bed,"), false); }; if ((((cockMoist > 3)) || ((vagMoist > 3)))){ outputMainText(((((" your " + clothesBottom()) + " becoming drenched, your ") + buttDesc()) + " bum absolutely swamped,"), false); }; outputMainText(" being wracked by a boobgasm.\r\r", false); }; getMilk = milkAmount(1); if (lactation > 0){ outputMainText("Milk ", false); if (getMilk <= 16){ outputMainText("spits", false); }; if ((((getMilk > 16)) && ((getMilk <= 32)))){ outputMainText("squirts", false); }; if ((((getMilk > 32)) && ((getMilk <= 64)))){ outputMainText("spews", false); }; if ((((getMilk > 64)) && ((getMilk <= 0x0100)))){ outputMainText("gushes", false); }; if ((((getMilk > 0x0100)) && ((getMilk <= 640)))){ outputMainText("erupts", false); }; if (getMilk > 640){ outputMainText("explodes", false); }; outputMainText(" from your nipples and dribbles down your front as you begin to lactate. You continue to pump it out in ", false); if (getMilk <= 16){ outputMainText("small dribbles", false); }; if ((((getMilk > 16)) && ((getMilk <= 32)))){ outputMainText("spurts", false); }; if ((((getMilk > 32)) && ((getMilk <= 64)))){ outputMainText("sprays", false); }; if ((((getMilk > 64)) && ((getMilk <= 0x0100)))){ outputMainText("jets", false); }; if ((((getMilk > 0x0100)) && ((getMilk <= 640)))){ outputMainText("steady streams", false); }; if (getMilk > 640){ outputMainText("small floods", false); }; outputMainText(((", relieving your " + boobDesc()) + " breasts of their supply"), false); if (dominant == 5){ outputMainText(" as you let out a contented 'mooo~'", false); }; outputMainText(".", false); } else { if (ment >= (lib - 10)){ outputMainText("\r\rYou quietly heave as you attempt to clean up any mess you have made, hoping the bedsheets will dry quickly. Except for some stains, you don't think anybody would catch on to your lewd actions, and you continue on with your day.", false); }; if ((((ment < (lib - 10))) && ((ment >= (lib - 25))))){ outputMainText("\r\rComing down from your high, you clean up your mess the best you can, though its likely some of your fluids has seeped in somewhere. At least, you're cautious of cleaning any mess up with your sheets. And as you leave the place, one of your neighbors eyes you with a surprised look. You probably left a blotch or few on your clothes somewhere...", false); }; if ((((ment < (lib - 25))) && ((ment >= (lib - 50))))){ outputMainText((("\r\rYou realize your hiding place probably echoed your moans as you come to your senses. You also have the slight problem of milk blotching your " + clothesTop()) + "... As you attempt to casually walk away, some nearby strangers blink at you curiously, not quite sure what they just heard. Rubbing you chest through the fabric once more, you dash away hoping it will dry."), false); }; if (ment < (lib - 50)){ outputMainText((((("\r\rGasping, you blink and look around you. You've gathered quite the crowd, especially some men, and they all gaze out you in amazement, having given them quite the show. A few tug at their own groins, ducking away from the rest, while others don't look so happy at what you have done, especially the ones with children beside them. You pull " + pullUD(1)) + " your ") + clothesTop()) + ", milk splashing everywhere and slink away, trying to avoid any more stares. Although, your heart pounds within your chest at the thought of what you had just done..."), false); }; doLust(-(Math.floor((sen * 1.5)))); }; if (getMilk > 0){ outputMainText((("\r\r\rYou produced " + Math.floor(getMilk)) + " ounces of milk!"), false); }; if (lust > 20){ doSexP(5); }; if (lactation > 0){ if (((nipplePlay + 8) / (lactation * 30)) > 1){ lactation++; outputMainText("\r\rYour breasts ache from all the milking, growing larger to meet the demand...", false); boobChange(1); }; nipplePlay = (nipplePlay + 8); }; hrs = 1; doEnd(); } public function buttonEvent9(e:MouseEvent):void{ buttonChoice = 9; hideUpDown(); doListen(); } public function buttonEvent11(e:MouseEvent):void{ buttonChoice = 11; hideUpDown(); doListen(); } public function hipDesc():String{ var chance:int; var tempStr:String; chance = percent(); tempStr = ("HIP ERROR " + hips); if (chance <= 100){ if (hips <= 1){ tempStr = "narrow"; }; if ((((hips > 1)) && ((hips <= 3)))){ tempStr = "unnoticeable"; }; if ((((hips > 3)) && ((hips <= 6)))){ tempStr = "wide"; }; if ((((hips > 6)) && ((hips <= 10)))){ tempStr = "endowed"; }; if (hips > 10){ tempStr = "protruding"; }; }; if (chance > 50){ if (hips <= 1){ tempStr = "prepubescant"; }; if ((((hips > 1)) && ((hips <= 3)))){ tempStr = "average"; }; if ((((hips > 3)) && ((hips <= 6)))){ tempStr = "child-bearing"; }; if ((((hips > 6)) && ((hips <= 10)))){ tempStr = "especially fertile"; }; if (hips > 10){ tempStr = "excessively wide"; }; }; return (tempStr); } public function boobChange(sizeChange:int):void{ breastSize = (breastSize + sizeChange); nippleSize = (nippleSize + sizeChange); } public function doHP(changes:int):void{ if (changes < 0){ hpDown.visible = true; }; if (changes > 0){ hpUp.visible = true; }; if ((HP + changes) <= 0){ HP = 1; changes = 0; doPassOut(); }; if ((HP + changes) > (30 + (15 * level))){ HP = (30 + (15 * level)); } else { HP = (HP + changes); }; statDisplay(); } public function buttonEvent1(e:MouseEvent):void{ buttonChoice = 1; hideUpDown(); doListen(); } public function doTailor():void{ var buy:int; bc(); buy = 0; viewButtonOutline(1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1); viewButtonText(1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1); i = 1; while (i < 12) { if (((!((i == 4))) && (!((i == 8))))){ buttonWrite(i, clothesName(clothesID(i))); }; i++; }; buttonWrite(4, "Buy"); buttonWrite(12, "Return"); outputMainText("Click on an item to view a description of the item. If you would like to purchase it, click the Buy button.\r\rNote: Buying clothes automatically replaces what you're already wearing. You cannot sell outfits.", true); doListen = function ():void{ if (((((((!((buttonChoice == 4))) && (!((buttonChoice == 8))))) && (!((buttonChoice == 12))))) && (!((clothesID(buttonChoice) == 0))))){ outputMainText((((clothesDescription(clothesID(buttonChoice)) + "\r\rCost: ") + clothesValue(clothesID(buttonChoice))) + " coins."), true); buy = buttonChoice; }; if ((((buttonChoice == 4)) && (!((buy == 0))))){ outputMainText((("\r\rAre you should you would like to buy " + clothesName(clothesID(buy))) + "?"), false); if (attireTop == attireBot){ outputMainText((("\r\rBe wary, replacing your " + clothesTop()) + " with something that only takes a single clothes slot will leave you half naked (also resulting in funky wording)."), false); }; buttonConfirm(); doListen = function ():void{ if (buttonChoice == 6){ if (coin < clothesValue(clothesID(buy))){ outputMainText((((((("Sorry, but you only have " + coin) + " coins. You require at least ") + (clothesValue(clothesID(buy)) - coin)) + " more coins to purchase") + clothesName(clothesID(buy))) + "."), true); doNext(); doListen = function ():void{ doTailor(); }; } else { clothesChange(clothesID(buy)); doCoin(-(clothesValue(clothesID(buy)))); doTailor(); }; } else { doTailor(); }; }; }; if (buttonChoice == 12){ doReturn(); }; }; } public function passiveItem(ID:int):void{ if (ID == 101){ rapeMod = (rapeMod + 10); }; if (ID == 102){ runMod = (runMod + 20); }; if (ID == 200){ vagMoist++; cockMoist++; stats(0, 0, 10, 0); }; } public function doFirmshaft():void{ var chance:int; chance = percent(); if (chance <= 100){ outputMainText("There's nothing to do here...", true); hrs = 1; doEnd(); }; } public function outputMainText(texts:String, reset:Boolean):void{ if (reset == false){ currentText = (currentText + texts); } else { currentText = texts; }; outputWindow.htmlText = currentText; scrollBar.update(); } public function buttonEvent12(e:MouseEvent):void{ buttonChoice = 12; hideUpDown(); doListen(); } public function domName():String{ var tempStr:String; tempStr = ("DOMINANT ERROR " + dominant); if (dominant == 1){ tempStr = "human"; }; if (dominant == 2){ tempStr = "horse"; }; if (dominant == 3){ tempStr = "wolf"; }; if (dominant == 4){ tempStr = "cat"; }; if (dominant == 5){ tempStr = "cow"; }; return (tempStr); } public function itemDescription(ID:int):String{ var tempStr:String; tempStr = ("ITEM DESCRIPTION ERROR " + ID); if (ID == 101){ tempStr = "Claws of the Lupine Ancestors\r\rHarkening back to supposed Lupan ancestry, as long as this item remains in your bag, your hands will change into clawed paws that will help hold down your foes, just like the wolves of the forest.\r\rAlthough, in your case, it just gives you a bonus to Rape attempts..."; }; if (ID == 102){ tempStr = "Imbued Horseshoes\r\rCrafted by the Equans of Firmshaft, these horseshoes help improve your running capabilities as long as they're in your bag. And they'll turn your feet into hooves."; }; if (ID == 103){ tempStr = "Magical Sands of the Dry Dunes\r\rApplying this special sand to your genitalia will permanently make it a bit less moist than usual. Often used by the women of Siz'Calit when their heat makes them a little too moist. Or when they're producing a bit too much milk (though that's rarely the case in Siz'Calit)."; }; if (ID == 104){ tempStr = "Milking Machine\r\rA compact device that produces enough suction to pump any breasts/udder you wish to collect the lactation of. Doing so will allow you to store the milk to be used or sold later, if you can produce enough. Comes with 2 hoses and multiple cups to work on almost any nipple/teat.\r\rWarning: Excessive use may result in permanent nipple/teat growth.\r\rCan only be used during Masturbation."; }; if (ID == 105){ tempStr = "'Cat's Meow' Potion\r\rFavored by the Felins of Siz'Calit, this potion helps increase the production of breastmilk. Just try not to show off in Siz'Calit, or you may draw a crowd."; }; if (ID == 110){ tempStr = "A Reduction of Reducer Agents\r\rThis is a powerful, yet often necessary in Nimin, elixer that, when rubbed on a part of your body, will permanently shrink that part to half its original size. Be careful!\r\rWarning: This item is not useful against your enemies."; }; if (ID == 111){ tempStr = "Skin Balm\r\rUsed and created by the Humans of Softlik, this balm helps increase their skin's supplesness and other human attributes, as well as decrease that of other races."; }; if (ID == 112){ tempStr = "Bolstering Juice\r\rThis white 'juice' is often used and created by the Equans of Firmshaft. It helps strengthen their equan attributes and decrease that of other races."; }; if (ID == 113){ tempStr = "Tainted Leaf\r\rThis paw-shaped leaf is farmed and used by the Lupans of Tieden to fend off the attributes of other races, usually the more violent ones, and increase their lupan strengths."; }; if (ID == 114){ tempStr = "Sweet Sap\r\rUsed and created by the Felins of Siz'Calit, this vial of clear liquid helps increase their felin sensitivities as well as ward off outside influences."; }; if (ID == 115){ tempStr = "Poultice\r\rA generic swathe of cloth soaked in soothing balms, this poultice will heal 20 HP. It'll also make you a little aroused from rubbing it all over yourself..."; }; if (ID == 116){ tempStr = "Dagger\r\rA relatively cheap weapon, the dagger is a nice way to defend oneself in Nimin.\r\rBase damage: 1-13"; }; if (ID == 117){ tempStr = "Warhammer\r\rA rather blunt weapon, it's a bit wieldy but gets the job done.\r\rBase damage: 1-17"; }; if (ID == 118){ tempStr = "Saber\r\rA well-designed blade, the saber can deal significant damage to foes.\r\rBase damage: 1-25"; }; if (ID == 119){ tempStr = "Whip\r\rA somewhat kinky weapon, the whip can leave some rather nasty welts.\r\rBase damage: 1-20"; }; if (ID == 120){ tempStr = "Neuterizer\r\rDeveloped by the Lupans of Tieden, this isn't actually intended to be used on most of their inhabitants. Instead, it was created as a post-defensive measure against the... oddities of Nimin."; }; if (ID == 200){ tempStr = "Lila's Gift\r\rA small charm given to you by the small felin child in Siz'Calit, it seems to be pretty decoration made from flowers and leaves and some other cute little things. However, as you hold it, you notice it makes you wetter down under... This might have been the reason the girl was so wet to begin with, or maybe her extreme wetness for such a young age rubbed off onto her charm? Either way, as long as you carry it, you'll be wetter than usual. And you seem much more sensitive than usual...\r\rWarning: You cannot regain this item should you lose it."; }; if (ID == 201){ tempStr = "Milk Creeper Poison\r\rObtained from a passed out Milk Creeper, this poison is a bit diluted from her ingestion from so much of your milk. It is unlikely that it will affect your lactation rate directly like the pure poison does, but rubbing it into your mammary glands will cause them to swell slightly larger."; }; if (ID == 202){ tempStr = "Cock-Snake Venom\r\rObtained from the fangs of a passed out cock-snake, this venom is a potent male enhancement. And if you aren't male when you use it, you will be, if at least partially..."; }; if (ID == 203){ tempStr = (("Tuft of Wolf Fur\r\rObtained from an encounter with a feral wolf, a tuft of their fur has been known to decrease sensitivity, and thus increase your toughness against attacks, when rubbed onto your " + skinDesc()) + "."); }; if (ID == 204){ tempStr = "Small Pouch\r\rThis is a small pouch you have obtained somewhere. Use it to see what it contains!"; }; if (ID == 205){ tempStr = "Small Pouch\r\rThis is a small pouch you have obtained somewhere. Use it to see what it contains!"; }; if (ID == 206){ tempStr = "Shiny Trinket\r\rOther than being a pretty decoration, this thing isn't much use to you. However, it probably sells fairly well."; }; if (ID == 207){ tempStr = "Wooden Cock Carving\r\rThis thing looks like a dildo made of wood, with decorated carvings all around. It sounds hollow, so maybe you could break it open and see if anything is inside?"; }; if (ID == 208){ tempStr = "Bloated Berry\r\rA berry from across the ocean, it looks oddly bloated, nearly two berries in one. It seems edible though."; }; if (ID == 209){ tempStr = "Handful of Grain\r\rA handful of fresh grain, it smells slightly sweet in your hands. Eating it will provide you some energy from the carbs!"; }; if (ID == 210){ tempStr = "Pussy Fruit\r\rIt is unknown whether the name derives from cat-like felin people that enjoy this fruit or from the fruits rather... lewd shape. Either way, it is a very sweet and juicy fruit that felin females love."; }; if (ID == 211){ tempStr = "DairE Pill\r\rProduced by the farmers of the Dairy Farm outside of Softlik, this pill supposedly helps increase the lactation rate of dairy cows. It is not suggested to be ingested by anything other than cows, though that's just a suggestion."; }; if (ID == 212){ tempStr = "Red Mushroom\r\rAn odd looking mushroom with a red cap with a few white dots found on the walls of the Old Cave, you're not really sure what it does."; }; if (ID == 213){ tempStr = "Wet, Slimy Cloth\r\rThis piece of white cloth seems to be perpetually wet and slimy, no matter how long you keep it in your bag. You have no idea what it can do, however."; }; if (ID == 500){ tempStr = "Bottle of Milk\r\rA bottle of delicious milk that, when drunk, will heal 10 HP and help you stay awake a little longer."; }; if (ID == 501){ tempStr = "Jug of Milk\r\rA large jug of delicious milk that, when drunk, will heal 40 HP and help you stay awake a while longer. When you're done peeing, of course."; }; if (ID == 502){ tempStr = "Barrel of Milk\r\rA barrel full of delicious milk, this is mostly meant to be used for easy handling by merchants. However, if you use it, you will gain 4 Jugs of Milk instantly."; }; return (tempStr); } public function doWeight():Boolean{ var tempBool:Boolean; tempBool = false; if (cockSize > ((body + str) + carryMod)){ outputMainText((((((("\r\rThe weight of your " + cockDesc()) + " cock") + plural(1)) + " is too much for your body to really carry. You're stuck in this town until either you get stronger or the bulge in your ") + clothesBottom()) + " gets smaller..."), false); tempBool = true; }; if ((((breastSize > ((body + (2 * str)) + carryMod))) || ((((boobTotal == 6)) && ((breastSize > (1.75 * ((body + (2 * str)) + carryMod)))))))){ outputMainText((("\r\rThe weight of your " + boobDesc()) + " tits is too much for your body to really carry. You're stuck in this town until either you get stronger or they get smaller..."), false); tempBool = true; }; if (udderSize > (((body + (2 * str)) + carryMod) / 2)){ outputMainText("\r\rThe weight of your milk-engorged udder is too much for your body to really carry. You're stuck in this town until either you get stronger or it gets smaller...", false); tempBool = true; }; if (Math.floor((pregnancyTime / 10)) > ((body + (str / 2)) + carryMod)){ outputMainText("\r\rThe weight of your pregnant belly is too much for your body to really carry. You're stuck in this town until either you get stronger or it gets smaller...", false); tempBool = true; }; return (tempBool); } public function cumAmount():int{ var tempNum:int; tempNum = 0; if (blueBalls <= 12){ tempNum = (((ballSize * balls) * cumMod) * 0.5); }; if ((((blueBalls > 12)) && ((blueBalls <= 36)))){ tempNum = (((ballSize * balls) * cumMod) * 1); }; if ((((blueBalls > 36)) && ((blueBalls <= 84)))){ tempNum = (((ballSize * balls) * cumMod) * 2); }; if (blueBalls > 84){ tempNum = (((ballSize * balls) * cumMod) * 2.5); }; blueBalls = 0; return (tempNum); } public function doUdderMasturbate():void{ var getMilk:int; if (ment >= (lib - 10)){ outputMainText((((((((((("You sneak off to the private place where you sleep in " + regionName()) + " with a bunch of towels in hand. Carefully, so as to not let anybody hear, you pull ") + pullUD(1)) + " your ") + clothesTop()) + " and gently knead your ") + udderDesc()) + " udder.\r\rHunching over at the side of the bed, you massage your ") + teatDesc()) + " teats, tugging and squeezing them each with"), true); }; if ((((ment < (lib - 10))) && ((ment >= (lib - 25))))){ outputMainText((((((((((((("You quickly head off to the private place where you sleep with your intention clear as those around " + regionName()) + " can easily see you rub your ") + udderDesc()) + " bulge through your ") + clothesTop()) + ". Before you even reach your destination, your hands are already reaching ") + pullUD(1)) + " under your ") + clothesTop()) + " to play with your ") + teatDesc()) + " teats, giving someone a good view of your fleshy bag.\r\rBy the time you're hidden inside, both hands are fondling yout udder, kneading and massaging your teats with"), true); }; if ((((ment < (lib - 25))) && ((ment >= (lib - 50))))){ outputMainText((((((((((("Your " + udderDesc()) + " udder heaves with your heavy breathing as you think about playing with it. You don't think you can reach the private place where you sleep without your hands diving underneath your ") + clothesTop()) + " and massaging it roughly.\r\rInstead, you duck into one of the more hidden corners of ") + regionName()) + " and without even taking off your ") + clothesTop()) + ", you grope your udder through the fabric before your reaching underneath, kneading and massaging your ") + teatDesc()) + " teats with "), true); }; if (ment < (lib - 50)){ outputMainText((((((((((("Without a second thought, right in the middle of " + regionName()) + " your pull ") + pullUD(1)) + " your ") + clothesTop()) + ", rubbing a hand across your ") + udderDesc()) + " udder and making it jiggle obscenely.\r\rPeople gasp and stare as you knead and massage your ") + teatDesc()) + " teats with your "), true); }; if (teatSize <= 25){ outputMainText(" your fingers", false); } else { if ((((teatSize > 25)) && ((teatSize <= 60)))){ outputMainText(" your hands", false); } else { if ((((teatSize > 60)) && ((teatSize <= 180)))){ outputMainText(" both hands", false); } else { if (teatSize > 180){ outputMainText(" the nearby wall", false); }; }; }; }; outputMainText(" until they begin to feel warm and tingly.", false); if (sen <= 30){ outputMainText(" Unfortunately, you can't really come as your udder simply isn't sensitive enough. But, it does feel nice as you continue to play with your nipples.", false); doLust(-(Math.floor((sen / 2)))); } else { if (lust <= 30){ outputMainText("\r\rSlowly,", false); }; if ((((lust > 30)) && ((lust <= 70)))){ outputMainText("\r\rQuickly,", false); }; if (lust > 70){ outputMainText("\r\rAlmost instantly,", false); }; outputMainText(" your whole body begins to quiver,", false); if ((((cockMoist == 1)) || ((vagMoist == 1)))){ outputMainText(((" your " + clothesBottom()) + " growing a tad moist,"), false); }; if ((((cockMoist == 2)) || ((vagMoist == 2)))){ outputMainText(((" your " + clothesBottom()) + " growing wet,"), false); }; if ((((cockMoist == 3)) || ((vagMoist == 3)))){ outputMainText(((" your " + clothesBottom()) + " becoming soaked through to the bed,"), false); }; if ((((cockMoist > 3)) || ((vagMoist > 3)))){ outputMainText(((((" your " + clothesBottom()) + " becoming drenched, your ") + buttDesc()) + " bum absolutely swamped,"), false); }; outputMainText(" being wracked by an udder orgasm.\r\r", false); doLust(-(Math.floor((sen / 2)))); }; getMilk = milkAmount(2); if (lactation > 0){ outputMainText("Milk ", false); if (getMilk <= 16){ outputMainText("spits", false); }; if ((((getMilk > 16)) && ((getMilk <= 32)))){ outputMainText("squirts", false); }; if ((((getMilk > 32)) && ((getMilk <= 64)))){ outputMainText("spews", false); }; if ((((getMilk > 64)) && ((getMilk <= 0x0100)))){ outputMainText("gushes", false); }; if ((((getMilk > 0x0100)) && ((getMilk <= 640)))){ outputMainText("erupts", false); }; if (getMilk > 640){ outputMainText("explodes", false); }; outputMainText(" from your teats and dribbles down your front as you begin to lactate. You continue to pump it out in ", false); if (getMilk <= 16){ outputMainText("small dribbles", false); }; if ((((getMilk > 16)) && ((getMilk <= 32)))){ outputMainText("spurts", false); }; if ((((getMilk > 32)) && ((getMilk <= 64)))){ outputMainText("sprays", false); }; if ((((getMilk > 64)) && ((getMilk <= 0x0100)))){ outputMainText("jets", false); }; if ((((getMilk > 0x0100)) && ((getMilk <= 640)))){ outputMainText("steady streams", false); }; if (getMilk > 640){ outputMainText("small floods", false); }; outputMainText(((", relieving your " + udderDesc()) + " udder of its supply"), false); if (dominant == 5){ outputMainText(" as you let out a contented 'mooo~'", false); }; outputMainText(".", false); }; if (ment >= (lib - 10)){ outputMainText("\r\rYou quietly heave as you attempt to clean up any mess you have made, hoping the bedsheets will dry quickly. Except for some stains, you don't think anybody would catch on to your lewd actions, and you continue on with your day.", false); }; if ((((ment < (lib - 10))) && ((ment >= (lib - 25))))){ outputMainText("\r\rComing down from your high, you clean up your mess the best you can, though its likely some of your fluids has seeped in somewhere. At least, you're cautious of cleaning any mess up with your sheets. And as you leave the place, one of your neighbors eyes you with a surprised look. You probably left a blotch or few on your clothes somewhere...", false); }; if ((((ment < (lib - 25))) && ((ment >= (lib - 50))))){ outputMainText((("\r\rYou realize your hiding place probably echoed your moans as you come to your senses. You also have the slight problem of milk blotching your " + clothesTop()) + "... As you attempt to casually walk away, some nearby strangers blink at you curiously, not quite sure what they just heard. Rubbing you chest through the fabric once more, you dash away hoping it will dry."), false); }; if (ment < (lib - 50)){ outputMainText((((("\r\rGasping, you blink and look around you. You've gathered quite the crowd, especially some men, and they all gaze out you in amazement, having given them quite the show. A few tug at their own groins, ducking away from the rest, while others don't look so happy at what you have done, especially the ones with children beside them. You pull " + pullUD(1)) + " your ") + clothesTop()) + ", milk splashing everywhere and slink away, trying to avoid any more stares. Although, your heart pounds within your chest at the thought of what you had just done..."), false); }; if (getMilk > 0){ outputMainText((("\r\r\rYou produced " + Math.floor(getMilk)) + " ounces of milk!"), false); }; if (lust > 20){ doSexP(5); }; if (lactation > 0){ if (((udderPlay + 8) / (lactation * 30)) > 1){ lactation++; outputMainText("\r\rYour udder aches from all the milking, growing larger to meet the demand...", false); udderChange(1); }; udderPlay = (udderPlay + 8); }; hrs = 1; doEnd(); } public function affinityChange():void{ var chance:int; var second:int; var maxNonSkin:*; var maxNonFur:*; var maxTail:*; var maxNonTail:*; outputMainText("Something feels odd...", true); chance = percent(); second = 0; if (((((((((humanAffinity + human) > horseAffinity)) && (((humanAffinity + human) > wolfAffinity)))) && (((humanAffinity + human) > catAffinity)))) && (((humanAffinity + human) > cowAffinity)))){ dominant = 1; } else { if (((((((((horseAffinity + horse) > humanAffinity)) && (((horseAffinity + horse) > wolfAffinity)))) && (((horseAffinity + horse) > catAffinity)))) && (((horseAffinity + horse) > cowAffinity)))){ dominant = 2; } else { if (((((((((wolfAffinity + wolf) > humanAffinity)) && (((wolfAffinity + wolf) > horseAffinity)))) && (((wolfAffinity + wolf) > catAffinity)))) && (((wolfAffinity + wolf) > cowAffinity)))){ dominant = 3; } else { if (((((((((catAffinity + cat) > humanAffinity)) && (((catAffinity + cat) > horseAffinity)))) && (((catAffinity + cat) > wolfAffinity)))) && (((catAffinity + cat) > cowAffinity)))){ dominant = 4; } else { if (((((((((cowAffinity + cow) > humanAffinity)) && (((cowAffinity + cow) > horseAffinity)))) && (((cowAffinity + cow) > wolfAffinity)))) && (((cowAffinity + cow) > catAffinity)))){ dominant = 5; }; }; }; }; }; if (dominant == 1){ second = Math.max(horseAffinity, wolfAffinity, catAffinity, cowAffinity); }; if (dominant == 2){ second = Math.max(humanAffinity, wolfAffinity, catAffinity, cowAffinity); }; if (dominant == 3){ second = Math.max(humanAffinity, horseAffinity, catAffinity, cowAffinity); }; if (dominant == 4){ second = Math.max(humanAffinity, horseAffinity, wolfAffinity, cowAffinity); }; if (dominant == 5){ second = Math.max(humanAffinity, horseAffinity, wolfAffinity, catAffinity); }; maxNonSkin = Math.max(horseAffinity, wolfAffinity, catAffinity, cowAffinity); maxNonFur = Math.max(humanAffinity); maxTail = Math.max(horseAffinity, wolfAffinity, catAffinity, cowAffinity); maxNonTail = Math.max(humanAffinity); if ((((((dominant == 1)) && (((humanAffinity + human) > (maxNonSkin + 35))))) && (!((skinType == 1))))){ outputMainText((((("\r\rYour " + skinDesc()) + " feels oddly cool. Looking at it, your ") + skinDesc()) + " are shrinking into your skin, leaving you 'bald' all over. You feel a little naked as you get used to your bare skin."), false); skinType = 1; }; if ((((((dominant == 2)) && (((horseAffinity + horse) > (maxNonFur + 35))))) && (!((skinType == 2))))){ outputMainText((("\r\rYour " + skinDesc()) + " begins to itch all over as soft hairs begin to sprout in patches. Before you know it, your whole body is soon covered in a coat of fur."), false); skinType = 2; }; if ((((((dominant == 3)) && (((wolfAffinity + wolf) > (maxNonFur + 35))))) && (!((skinType == 2))))){ outputMainText((("\r\rYour " + skinDesc()) + " begins to itch all over as soft hairs begin to sprout in patches. Before you know it, your whole body is soon covered in a coat of fur."), false); skinType = 2; }; if ((((((dominant == 4)) && (((catAffinity + cat) > (maxNonFur + 35))))) && (!((skinType == 2))))){ outputMainText((("\r\rYour " + skinDesc()) + " begins to itch all over as soft hairs begin to sprout in patches. Before you know it, your whole body is soon covered in a coat of fur."), false); skinType = 2; }; if ((((((dominant == 5)) && (((cowAffinity + cow) > (maxNonFur + 35))))) && (!((skinType == 2))))){ outputMainText((("\r\rYour " + skinDesc()) + " begins to itch all over as soft hairs begin to sprout in patches. Before you know it, your whole body is soon covered in a coat of fur."), false); skinType = 2; }; if (tail < 1){ if ((((dominant == 2)) && (((horseAffinity + horse) > (maxNonTail + 15))))){ tail = 2; }; if ((((dominant == 3)) && (((wolfAffinity + wolf) > (maxNonTail + 15))))){ tail = 3; }; if ((((dominant == 4)) && (((catAffinity + cat) > (maxNonTail + 15))))){ tail = 4; }; if ((((dominant == 5)) && (((cowAffinity + cow) > (maxNonTail + 15))))){ tail = 5; }; if (tail > 1){ outputMainText((((((("\r\rYou feel a tickle upon your backside as your " + clothesBottom()) + " feels tight. With a groan, the pressure builds up beyond you until tearing echoes around you and the pain is gone. Looking behind you, you see a new ") + tailDesc()) + " tail bobbing above your ") + buttDesc()) + " bum. Next time you go to town, you'll be visiting a tailor to fix your clothes to account for your new appendage..."), false); }; }; if ((((((dominant == 1)) && (((humanAffinity + human) > (second + 10))))) && ((tail > 1)))){ tail = 0; outputMainText("\r\rYour tail begins to tingle. As you turn around, you watch as it shrinks into your back, disappearing altogether. You no longer have any tail.", false); }; if ((((((((dominant == 2)) && (((horseAffinity + horse) > (second + 10))))) && ((tail > 1)))) && (!((tail == 2))))){ tail = 2; outputMainText("\r\rYour tail begins to tingle. As you turn around, you watch as it bursts into hundreds of long hairs. Any control you had over it before is gone, save for the muscles at the base that allow you to swish it with your mood and swat against your thighs. Just like a horse's", false); }; if ((((((((dominant == 3)) && (((wolfAffinity + wolf) > (second + 10))))) && ((tail > 1)))) && (!((tail == 3))))){ tail = 3; outputMainText("\r\rYour tail begins to tingle. As you turn around, you watch as it widens with long hairs around a skeletal base. It wags with your mood and reflexes, though you don't really have control over it otherwise, and it's oh so fluffy. Just like a wolf's", false); }; if ((((((((dominant == 4)) && (((catAffinity + cat) > (second + 10))))) && ((tail > 1)))) && (!((tail == 4))))){ tail = 4; outputMainText("\r\rYour tail begins to tingle. As you turn around, you watch as narrows with short hairs around a skeletal base. It wags with your mood and reflexes and likes to curl around your touch with limited control, and it's oh so soft. Just like a cat's", false); }; if ((((((((dominant == 5)) && (((cowAffinity + cow) > (second + 10))))) && ((tail > 1)))) && (!((tail == 5))))){ tail = 5; outputMainText((("\r\rYour tail begins to tingle. As you turn around, you watch as narrows with short hairs around a skeletal base and a tuft of long hair bursts at the tip. It sways lazily across your " + buttDesc()) + " backside and you can swat yourself with the tip like a soft whip. Just like a cow's"), false); }; if ((((((dominant == 1)) && (((humanAffinity + human) > (second + 15))))) && (!((ears == 1))))){ ears = 1; outputMainText("\r\rYour ears twitch as they become rounded and hug the sides of you head, looking more like a human's.", false); }; if ((((((dominant == 2)) && (((horseAffinity + horse) > (second + 15))))) && (!((ears == 2))))){ ears = 2; outputMainText("\r\rYour ears twitch as they become rounded and pointed at the tip, flicking atop your head, looking more like a horse's.", false); }; if ((((((dominant == 3)) && (((wolfAffinity + wolf) > (second + 15))))) && (!((ears == 3))))){ ears = 3; outputMainText("\r\rYour ears twitch as they triangular, standing perk atop your head, looking more like a wolf's.", false); }; if ((((((dominant == 4)) && (((catAffinity + cat) > (second + 15))))) && (!((ears == 4))))){ ears = 4; outputMainText("\r\rYour ears twitch as they triangular, standing perk atop your head, looking more like a cat's.", false); }; if ((((((dominant == 5)) && (((cowAffinity + cow) > (second + 15))))) && (!((ears == 5))))){ ears = 5; outputMainText("\r\rYour ears twitch as they become rounded and large, standing out from the sides of you head several inches, looking more like a cow's.", false); }; if ((((((((dominant == 1)) && (((humanAffinity + human) > (second + 25))))) && ((cockTotal > 1)))) && ((humanCocks < cockTotal)))){ outputMainText((((((((((((("\r\rYour " + hipDesc()) + " hips twitch as ") + oneYour(1)) + " cock") + plural(1)) + " begins to feel strange. You open your ") + clothesBottom()) + " to see what is happening, only to watch the sheath surrounding ") + oneYour(1)) + " cock") + plural(1)) + " dissapears, leaving your cock exposed . It's smooth and fleshy, easily teased into erection. Its skin is slightly less sensitive, but the thick mushroom-like head twitches in your grip. It looks very much like a human's."), false); humanCocks++; i = 0; while (i < 1) { if ((((chance <= 33)) && ((horseCocks > 1)))){ horseCocks--; i++; }; if ((((((chance > 33)) && ((chance <= 66)))) && ((wolfCocks > 1)))){ wolfCocks--; i++; }; if ((((((chance > 66)) && ((chance <= 99)))) && ((catCocks > 1)))){ catCocks--; i++; }; }; }; if ((((((((dominant == 2)) && (((horseAffinity + horse) > (second + 25))))) && ((cockTotal > 1)))) && ((horseCocks < cockTotal)))){ outputMainText((((((((((((((("\r\rYour " + hipDesc()) + " hips twitch as ") + oneYour(1)) + " cock") + plural(1)) + " begins to feel strange. You open your ") + clothesBottom()) + " to see what is happening, only to watch as a thick sheath envelopes ") + oneYour(1)) + " cock") + plural(1)) + ". Relaxing your muscles, the cock slowly droops out over your ") + clothesBottom()) + ". It's long and smooth, with the prepuce only reaching halfway down its length making an obvious ring. The head is flat and as you knead it in your hand, it flares wide. It looks very much like a horse's."), false); horseCocks++; i = 0; while (i < 1) { if ((((chance <= 33)) && ((humanCocks > 1)))){ humanCocks--; i++; }; if ((((((chance > 33)) && ((chance <= 66)))) && ((wolfCocks > 1)))){ wolfCocks--; i++; }; if ((((((chance > 66)) && ((chance <= 99)))) && ((catCocks > 1)))){ catCocks--; i++; }; }; }; if ((((((((dominant == 3)) && (((wolfAffinity + wolf) > (second + 25))))) && ((cockTotal > 1)))) && ((wolfCocks < cockTotal)))){ outputMainText((((((((((((("\r\rYour " + hipDesc()) + " hips twitch as ") + oneYour(1)) + " cock") + plural(1)) + " begins to feel strange. You open your ") + clothesBottom()) + " to see what is happening, only to watch as a thin sheath envelopes ") + oneYour(1)) + " cock") + plural(1)) + ". Flexing your muscles, the cock slowly pushes out, red and hard, no matter how aroused you are. It's veiny and smooth, already a bit moist from being within the sheath. The head narrows off to a pointy tip where you can feel the urethra resides. It looks very much like a wolf's."), false); wolfCocks++; i = 0; while (i < 1) { if ((((chance <= 33)) && ((humanCocks > 1)))){ humanCocks--; i++; }; if ((((((chance > 33)) && ((chance <= 66)))) && ((horseCocks > 1)))){ horseCocks--; i++; }; if ((((((chance > 66)) && ((chance <= 99)))) && ((catCocks > 1)))){ catCocks--; i++; }; }; }; if ((((((((dominant == 4)) && (((catAffinity + cat) > (second + 25))))) && ((cockTotal > 1)))) && ((catCocks < cockTotal)))){ outputMainText((((((((((((("\r\rYour " + hipDesc()) + " hips twitch as ") + oneYour(1)) + " cock") + plural(1)) + " begins to feel strange. You open your ") + clothesBottom()) + " to see what is happening, only to watch as a thin sheath envelopes ") + oneYour(1)) + " cock") + plural(1)) + ". Flexing your muscles, the cock slowly pushes out, pink and soft. It's smooth and already a bit moist from being within the sheath, covered in tiny barbs that feel rough as your hand strokes against them. The head narrows off to a pointy tip where you can feel the urethra resides. It looks very much like a cat's."), false); catCocks++; i = 0; while (i < 1) { if ((((chance <= 33)) && ((humanCocks > 1)))){ humanCocks--; i++; }; if ((((((chance > 33)) && ((chance <= 66)))) && ((horseCocks > 1)))){ horseCocks--; i++; }; if ((((((chance > 66)) && ((chance <= 99)))) && ((wolfCocks > 1)))){ wolfCocks--; i++; }; }; }; if (((((horseAffinity + horse) > 50)) && ((horseAffinity <= 50)))){ if (cockTotal > 0){ outputMainText((((((((("\r\rYour " + clothesBottom()) + " grows tight, filling with extra cockflesh. Opening the ") + clothesBottom()) + ", your cock") + plural(1)) + " spill") + plural(3)) + " out, dangling while swelling larger and larger. The growth slows to a halt, much, much longer than before. 'Hung like a horse' seems like the appropriate phrase. And you're also going to have to sneak back into town while you hide them, rushing to a tailor to refit you."), false); }; cockSizeMod = (cockSizeMod + 1); }; if (((((horseAffinity + horse) < 40)) && ((horseAffinity >= 40)))){ if (cockTotal > 0){ outputMainText((((((("\r\rYour " + clothesBottom()) + " feel baggier. Opening the ") + clothesBottom()) + ", your cock") + plural(1)) + " shrinking towards your groin, losing a great deal of length. It seems like you have lost your equine engorgement."), false); }; cockSizeMod = (cockSizeMod - 1); }; if (((((wolfAffinity + wolf) > 50)) && ((wolfAffinity <= 50)))){ if (cockTotal > 0){ outputMainText((((((((((((((("\r\rA sudden wave of lust washes over you, your cock" + plural(1)) + " growing stiff in your ") + clothesBottom()) + ". You quickly open open your ") + clothesBottom()) + " to see what's going on. Within, the base") + plural(1)) + " of your shaft") + plural(1)) + " swell") + plural(3)) + ". In an instant, you're suprised by spurts of cum that shower you, a small volley from a quick unexpected orgasm. Wiping your eyes so you can see, the swelling persists as you continue to come for a while. It would be very difficult to remove your cock") + plural(1)) + " from a hot hole with large 'knots' like that, until they finished draining your seed."), false); }; knot = true; cumMod = (cumMod + 0.5); }; if (((((wolfAffinity + wolf) < 40)) && ((wolfAffinity >= 40)))){ if (cockTotal > 0){ outputMainText((((((((((((((((("\r\rAn odd draining fills your " + clothesBottom()) + ". Looking within, you see your cock") + plural(1)) + " grow slightly stiff, your knot") + plural(1)) + " swelling. Pre lazily seeps from your urethra") + plural(1)) + " as the knot") + plural(1)) + " deflate") + plural(1)) + " immediately while your cock") + plural(1)) + " remain stiff. It seems as though you have lost your knot") + plural(1)) + "."), false); }; knot = false; cumMod = (cumMod - 0.5); }; if (((((catAffinity + cat) > 50)) && ((catAffinity <= 50)))){ outputMainText((("\r\rYour chest and belly tickle. Four new nipples form amongst your " + skinDesc()) + ", two beneath each of your normal ones, creating two rows of three breasts."), false); if (breastSize > 2){ outputMainText(((" The nipples protrude as mounds form beneath them. Breast-flesh wobbles, each row a fraction in size of the one above it. When you head back to town, you'll be covering your extra indecency with your arms the best you can while you head for the tailor to update your " + clothesTop()) + " accordingly."), false); }; if (vagTotal > 0){ outputMainText((((("\r\rYour " + clothesBottom()) + " grows slightly moist, your cunt") + plural(2)) + " burning with arousal. The feeling quickly fades, but something tells you your maternal instincts might occasionally take over."), false); }; if (heat < 1){ heatMaxTime = 96; heatTime = 96; heat++; }; if (heat >= 1){ heatMaxTime = (heatMaxTime - 12); heat++; }; boobTotal = 6; }; if (((((catAffinity + cat) < 40)) && ((catAffinity >= 40)))){ outputMainText("\r\rYour chest and belly tickle. Checking, you watch as your ", false); if (breastSize > 2){ outputMainText(" and your front grow much lighter", false); }; outputMainText(((". Checking, you catch your four extra nipples dissapear flat into your " + skinDesc()) + ", leaving you with only what's on your chest."), false); if (vagTotal > 0){ outputMainText(((((" You also feel your vagina" + plural(2)) + " cool") + plural(4)) + " a little, no longer as ocassionally hot as before."), false); }; if (heat >= 2){ heatMaxTime = (heatMaxTime + 12); }; heat--; boobTotal = 6; }; if (((((cowAffinity + cow) > 20)) && ((cowAffinity <= 20)))){ outputMainText((("\r\rYour nipples stiffen beneath your " + clothesTop()) + ". They protrude nearly half an inch further than before!"), false); nippleSize = (nippleSize + 2); milkMod = (milkMod + 2); }; if (((((cowAffinity + cow) > 35)) && ((cowAffinity <= 35)))){ outputMainText((("\r\rYour nipples stiffen beneath your " + clothesTop()) + ". They protrude an inch further than before! And your hips seem slightly broader..."), false); lactChange(1); nippleSize = (nippleSize + 5); hips++; milkMod = (milkMod + 2); }; if (((((cowAffinity + cow) > 50)) && ((cowAffinity <= 50)))){ outputMainText((("\r\rYour nipples squirm within your " + clothesTop()) + ". They've grown over an inch and a half in length! And your hips feel like they're more 'square' than before..."), false); lactChange(1); nippleSize = (nippleSize + 8); hips = (hips + 2); milkMod = (milkMod + 2); }; if (((((cowAffinity + cow) > 65)) && ((cowAffinity <= 65)))){ outputMainText((((((("\r\rJust above your groin, your belly begins to feel bloated. You wince as it pushes against your " + clothesBottom()) + ", especially noticing the increased sensitivity of four spots in particular. Before you can act, your ") + clothesBottom()) + " tears at the waist, as a mound crashes through. Hanging naked and free, with four teats twice as long as your nipples, an udder about twice as large as your chest, dripping with milk. You'll definitely be getting a special bra or at perhaps adjust your ") + clothesBottom()) + " when you get back to town, at least to account for your surprisingly wider hips... "), false); lactChange(2); hips = (hips + 3); udders = true; udderSize = (2 * breastSize); teatSize = (2 * nippleSize); }; if (((((cowAffinity + cow) < 10)) && ((cowAffinity >= 10)))){ outputMainText("\r\rYour nipples are less noticeable, shrinking by nearly half an inch.", false); nippleSize = (nippleSize - 2); milkMod = (milkMod - 2); }; if (((((cowAffinity + cow) < 25)) && ((cowAffinity >= 25)))){ outputMainText("\r\rYour nipples seem less noticeable as they shrink by an inch and your hips are less wide.", false); lactChange(-1); nippleSize = (nippleSize - 5); hips--; milkMod = (milkMod - 2); }; if (((((cowAffinity + cow) < 40)) && ((cowAffinity >= 40)))){ outputMainText((("\r\rYour " + clothesTop()) + " feels slightly loser, as your nipples shrink by over an inch and a half. You hips also narrow a little, protruding less than before."), false); lactChange(-1); hips = (hips - 2); nippleSize = (nippleSize - 8); milkMod = (milkMod - 2); }; if (((((cowAffinity + cow) < 55)) && ((cowAffinity >= 55)))){ outputMainText("\r\rThe fleshy bag of milk at your abdomen shrinks to nothing, dissapearing along with its teats. You're no longer lugging around an udder. Plus all your waistbands seem quite loose after you hips shrink by a few inches.", false); lactChange(-2); hips = (hips - 3); udders = false; }; if ((humanAffinity + human) < 0){ humanAffinity = 0; } else { if ((humanAffinity + human) > 100){ humanAffinity = 100; } else { humanAffinity = (humanAffinity + human); }; }; if ((horseAffinity + human) < 0){ horseAffinity = 0; } else { if ((horseAffinity + horse) > 100){ horseAffinity = 100; } else { horseAffinity = (horseAffinity + horse); }; }; if ((wolfAffinity + wolf) < 0){ wolfAffinity = 0; } else { if ((wolfAffinity + wolf) > 100){ wolfAffinity = 100; } else { wolfAffinity = (wolfAffinity + wolf); }; }; if ((catAffinity + cat) < 0){ catAffinity = 0; } else { if ((catAffinity + cat) > 100){ catAffinity = 100; } else { catAffinity = (catAffinity + cat); }; }; if ((cowAffinity + cow) < 0){ cowAffinity = 0; } else { if ((cowAffinity + cow) > 100){ cowAffinity = 100; } else { cowAffinity = (cowAffinity + cow); }; }; human = 0; horse = 0; wolf = 0; cat = 0; cow = 0; if (currentText == "Something feels odd..."){ outputMainText("", true); doProcess(); } else { doEnd(); }; } public function tailDesc():String{ var chance:int; var tempStr:String; chance = percent(); tempStr = ("TAIL ERROR " + tail); if (chance <= 100){ if (tail == 2){ tempStr = "equine"; }; if (tail == 3){ tempStr = "wolfish"; }; if (tail == 4){ tempStr = "cat-like"; }; if (tail == 5){ tempStr = "bovine"; }; }; if (chance <= 50){ if (tail == 2){ tempStr = "bristly"; }; if (tail == 3){ tempStr = "fluffy"; }; if (tail == 4){ tempStr = "lithe"; }; if (tail == 5){ tempStr = "skinny, bristly-tipped"; }; }; return (tempStr); } public function clothesName(ID:int):String{ var tempStr:String; tempStr = "CLOTHES NAME ERROR"; if (ID == 1){ tempStr = "shirt"; }; if (ID == 2){ tempStr = "pants"; }; if (ID == 3){ tempStr = "bikini top"; }; if (ID == 4){ tempStr = "bikini bottom"; }; if (ID == 5){ tempStr = "elegant dress"; }; if (ID == 6){ tempStr = "latex suit"; }; if (ID == 7){ tempStr = "skirt"; }; if (ID == 8){ tempStr = "shorts"; }; if (ID == 9){ tempStr = "blouse"; }; if (ID == 10){ tempStr = "diaper"; }; if (ID == 11){ tempStr = "poofy diaper"; }; if (ID == 12){ tempStr = "sundress"; }; if (ID == 13){ tempStr = "skimpy dress"; }; if (ID == 14){ tempStr = "short skirt"; }; if (ID == 15){ tempStr = "short shorts"; }; return (tempStr); } public function doBirth():void{ if (vagTotal < 1){ vagChange(0, 1); }; outputMainText((("\r\rSuddenly, you feel water splash across your thighs, flooding from your cunt" + plural(2)) + ". You've gone into labor!\r\rYou sit on the ground, huffing and heaving as pain envelops your body. Between each heave, you push with all your might!"), false); if (pregnancyType == 100){ outputMainText(((" Rather quickly, a small body pushes out from between your legs. Your hear a small, high-pitched whine come from it. Pausing from your labor, you pull the child up to your chest, cradling it. Covered in fur, eyes shut to the world, it's a small puppy. A wolf puppy, to be more accurate. Although, you have little time to consider the symantics as another contraction makes you seize in pain. Soon, another while cries out. Followed by another contraction... Until you have given birth a litter of " + Math.floor(((percent() / 20) + 3))) + " wolf pups! Congratulations, mommy!\r\rYou keep the pups at your personal menagerie/day-care, where your children are well taken care of."), false); if (vagSize < 3){ vulvaSize++; vagChange(1, 0); }; }; if (pregnancyType == 2){ outputMainText(((((((((((((" Slowly, a large body pushes out from between your legs. You hear a snort as the long muzzle breaches +" + oneYour(2)) + " ") + vulvaDesc()) + " pair") + plural(2)) + " of lips. Shortly after, you heave for fresh air as the rest of the body slides out. As the newborn cries out, your reach down and bring it up to your ") + boobDesc()) + " chest. With a horse-like muzzle and rather large body, it's easy to tell you've given birth to an equan child. With a sigh, you ") + pullUD(1)) + " your ") + clothesTop()) + ", letting it suckle from its mother.\r\rEventually, you bring the equan child to your own personal menagerie/day-care, where your children are well taken care of."), false); }; } public function weaponName():String{ var tempStr:String; tempStr = ("WEAPON ERROR " + weapon); if (weapon == 1){ tempStr = itemName(32); }; if (weapon == 4){ tempStr = "saber"; }; if (weapon == 5){ tempStr = "whip"; }; if (weapon == 5.89){ tempStr = "warhammer"; }; if (weapon == 7.7){ tempStr = "dagger"; }; if (weapon == 10){ tempStr = "fists"; }; return (tempStr); } public function goodsID(goodsSlot:int):int{ var goodNum:int; goodNum = 0; if (currentZone == 1){ if (goodsSlot == 2){ goodNum = 111; }; if (goodsSlot == 3){ goodNum = 116; }; if (goodsSlot == 5){ goodNum = 500; }; if (goodsSlot == 6){ goodNum = 501; }; if (goodsSlot == 9){ goodNum = 110; }; if (goodsSlot == 10){ goodNum = 115; }; }; if (currentZone == 2){ if (goodsSlot == 1){ goodNum = 102; }; if (goodsSlot == 2){ goodNum = 112; }; if (goodsSlot == 3){ goodNum = 117; }; if (goodsSlot == 9){ goodNum = 110; }; if (goodsSlot == 10){ goodNum = 115; }; }; if (currentZone == 3){ if (goodsSlot == 1){ goodNum = 101; }; if (goodsSlot == 2){ goodNum = 113; }; if (goodsSlot == 3){ goodNum = 118; }; if (goodsSlot == 5){ goodNum = 120; }; if (goodsSlot == 9){ goodNum = 110; }; if (goodsSlot == 10){ goodNum = 115; }; }; if (currentZone == 4){ if (goodsSlot == 2){ goodNum = 114; }; if (goodsSlot == 3){ goodNum = 119; }; if (goodsSlot == 5){ goodNum = 103; }; if (goodsSlot == 6){ goodNum = 105; }; if (goodsSlot == 9){ goodNum = 110; }; if (goodsSlot == 10){ goodNum = 115; }; }; return (goodNum); } public function teatDesc():String{ var chance:int; var tempStr:String; chance = percent(); tempStr = ("TEAT ERROR " + teatSize); if (chance <= 100){ if (teatSize <= 2){ tempStr = "normal"; }; if ((((teatSize > 2)) && ((teatSize <= 5)))){ tempStr = "noticeable"; }; if ((((teatSize > 5)) && ((teatSize <= 9)))){ tempStr = "blatant"; }; if ((((teatSize > 9)) && ((teatSize <= 30)))){ tempStr = "normal-for-a-cow"; }; if ((((teatSize > 30)) && ((teatSize <= 50)))){ tempStr = "cock-like"; }; if ((((teatSize > 50)) && ((teatSize <= 100)))){ tempStr = "horsecock-like"; }; if ((((teatSize > 100)) && ((teatSize <= 140)))){ tempStr = "arm-length"; }; if ((((teatSize > 140)) && ((teatSize <= 300)))){ tempStr = "street-clearing"; }; if (teatSize > 300){ tempStr = "obscene"; }; }; if (chance > 50){ if (teatSize <= 2){ tempStr = ""; }; if ((((teatSize > 2)) && ((teatSize <= 5)))){ tempStr = "perky"; }; if ((((teatSize > 5)) && ((teatSize <= 9)))){ tempStr = "hypnotizing"; }; if ((((teatSize > 9)) && ((teatSize <= 30)))){ tempStr = "long"; }; if ((((teatSize > 30)) && ((teatSize <= 50)))){ tempStr = "huge"; }; if ((((teatSize > 50)) && ((teatSize <= 100)))){ tempStr = "enormous"; }; if ((((teatSize > 100)) && ((teatSize <= 140)))){ tempStr = "extreme"; }; if ((((teatSize > 140)) && ((teatSize <= 300)))){ tempStr = "ridiculous"; }; if (teatSize > 300){ tempStr = "obscene"; }; }; return (tempStr); } public function doSoftlik():void{ var chance:int; chance = percent(); if (chance <= 100){ outputMainText("There's nothing to do here...", true); hrs = 1; doEnd(); }; } public function doGender():void{ trace("gender"); bc(); viewButtonText(0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0); viewButtonOutline(0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0); Choice5.htmlText = "Male"; Choice6.htmlText = "Female"; Choice7.htmlText = "Herm"; outputMainText("Choose which gender you want to be:\r\rMale - You has painus!\r\rFemale - You has vagoo!\r\rHerm - You has painus and vagoo!", true); doListen = function ():void{ if (buttonChoice == 5){ gender = 1; }; if (buttonChoice == 6){ gender = 2; }; if (buttonChoice == 7){ gender = 3; }; if (gender == 1){ cockSize = 3; ballSize = 3; balls = 2; cockTotal = 1; cockMoist = 1; str++; if (dominant == 1){ humanCocks = 1; }; if (dominant == 2){ horseCocks = 1; }; if (dominant == 3){ wolfCocks = 1; }; if (dominant == 4){ catCocks = 1; }; }; if (gender == 2){ vagSize = 3; vulvaSize = 3; vagTotal = 1; vagMoist = 1; clitSize = 2; ment++; }; if (gender == 3){ cockSize = 2; ballSize = 2; balls = 2; cockTotal = 1; cockMoist = 1; vagTotal = 1; vagMoist = 1; vagSize = 2; vulvaSize = 2; boobTotal = 2; if (dominant == 1){ humanCocks = 1; }; if (dominant == 2){ horseCocks = 1; }; if (dominant == 3){ wolfCocks = 1; }; if (dominant == 4){ catCocks = 1; }; lib++; }; boobTotal = 2; if (dominant == 4){ boobTotal = 6; }; bodyType(); }; } public function gainItem(ID:int, more:int):void{ var openSlot:int; outputMainText((("You have obtained a " + itemName(ID)) + "!"), true); openSlot = 0; i = 11; while (i > 0) { if ((((((itemID(i) == 0)) && (!((i == 4))))) && (!((i == 8))))){ openSlot = i; }; i--; }; if (openSlot > 0){ itemSlotWrite(openSlot, ID); if (more == 1){ item1 = 0; }; if (more == 2){ item2 = 0; }; if (more == 3){ item3 = 0; }; if (more == 4){ item4 = 0; }; if (more == 5){ item5 = 0; }; if (more == 6){ item6 = 0; }; doEnd(); } else { outputMainText("\r\rHowever, you do not have enough room in your bag. Click on an item in your bag to replace it with the new one or click a non-item button to ignore the new item.", false); doDiscard(ID, more); }; } public function buttonConfirm():void{ bc(); viewButtonText(0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0); viewButtonOutline(0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0); buttonWrite(6, "Yes"); buttonWrite(7, "No"); } public function invertC(e:MouseEvent):void{ invertGo(); } public function saveGo():void{ var so:SharedObject; so = SharedObject.getLocal("NiminFetishFlash"); bc(); viewButtonOutline(1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1); viewButtonText(1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1); i = 1; while (i < 9) { if (!so.data.slot[i]){ buttonWrite(i, (("" + i) + "")); } else { buttonWrite(i, ((("D:" + so.data.slots[i].day) + " H:") + so.data.slots[i].hour)); }; i++; }; buttonWrite(12, "Return"); outputMainText("Click on a save slot to save your current game to that slot.\r\rOtherwise, click Return to go back to what you were doing.", true); doListen = function ():void{ var slot:int; if (buttonChoice != 12){ slot = buttonChoice; outputMainText((((((("Day: " + so.data.slots[slot].day) + ", Hour: ") + so.data.slots[slot].hour) + ":00\r\rAre you sure you want to save your game to slot ") + buttonChoice) + "?\r\rAny data already saved there will be automatically overwritten."), true); buttonConfirm(); doListen = function ():void{ if (buttonChoice == 6){ doSave(slot); doReturn(); } else { saveGo(); }; }; }; if (buttonChoice == 12){ doReturn(); }; }; } public function earDesc():String{ var chance:int; var tempStr:String; chance = percent(); tempStr = ("EAR ERROR " + ears); if (chance <= 100){ if (ears == 1){ tempStr = "small rounded ears that hug the side of your head, like a human's"; }; if (ears == 2){ tempStr = "large tear-drop shaped ears that flick every now and then atop your head, like a horse's"; }; if (ears == 3){ tempStr = "small triangular ears that stand perk atop your head, like a wolf's"; }; if (ears == 4){ tempStr = "small triangular ears that stand perk atop your head, like a cat's"; }; if (ears == 5){ tempStr = "large oval ears that stand out perpendicular from the sides your head several inches, like a cow's"; }; }; return (tempStr); } public function doOldCave():void{ var chance:int; chance = percent(); if (chance <= 50){ outputMainText("Growing on the wall of the cave, you find a small, odd looking mushroom. It has a red cap speckled with a few large white dots. You pluck it.", true); item1 = 212; hrs = 2; doEnd(); }; if ((((chance > 50)) && ((chance <= 100)))){ outputMainText("Too dark to go inside, you merely wander around the entrance of the cave. However, an odd scent fills your nostrils and makes you feel a bit randy...", true); stats(0, -1, 3, 0); doLust(5); hrs = 1; doEnd(); }; } public function bodyDesc():String{ var tempStr:String; tempStr = ((("BODY ERROR " + gender) + " ") + body); if (body == 7){ tempStr = "childish"; }; if (body == 13){ tempStr = "womanly"; }; if (body == 14){ tempStr = "feminine"; }; if (body == 15){ tempStr = "femme-boyish"; }; if (body == 16){ tempStr = "voluptuous"; }; if (body == 19){ tempStr = "masculine"; }; if (body == 20){ tempStr = "manly"; }; if (body > 25){ tempStr = "musclebound"; }; return (tempStr); } public function clothesID(choice:int):int{ var tempNum:int; tempNum = 0; if (currentZone == 1){ if (choice == 1){ tempNum = 1; }; if (choice == 2){ tempNum = 2; }; if (choice == 3){ tempNum = 5; }; if (choice == 5){ tempNum = 6; }; if (choice == 6){ tempNum = 7; }; if (choice == 7){ tempNum = 8; }; if (choice == 9){ tempNum = 9; }; if (choice == 10){ tempNum = 11; }; if (choice == 11){ tempNum = 12; }; }; if (currentZone == 2){ if (choice == 1){ tempNum = 1; }; if (choice == 2){ tempNum = 2; }; if (choice == 3){ tempNum = 3; }; if (choice == 5){ tempNum = 4; }; if (choice == 6){ tempNum = 6; }; if (choice == 7){ tempNum = 7; }; if (choice == 9){ tempNum = 8; }; if (choice == 10){ tempNum = 14; }; if (choice == 11){ tempNum = 15; }; }; if (currentZone == 3){ if (choice == 1){ tempNum = 1; }; if (choice == 2){ tempNum = 2; }; if (choice == 3){ tempNum = 5; }; if (choice == 5){ tempNum = 7; }; if (choice == 6){ tempNum = 8; }; if (choice == 7){ tempNum = 9; }; if (choice == 9){ tempNum = 12; }; if (choice == 10){ tempNum = 13; }; if (choice == 11){ tempNum = 15; }; }; if (currentZone == 4){ if (choice == 1){ tempNum = 1; }; if (choice == 2){ tempNum = 2; }; if (choice == 3){ tempNum = 3; }; if (choice == 5){ tempNum = 4; }; if (choice == 6){ tempNum = 11; }; if (choice == 7){ tempNum = 12; }; if (choice == 9){ tempNum = 13; }; if (choice == 10){ tempNum = 14; }; if (choice == 11){ tempNum = 15; }; }; return (tempNum); } public function invertGo():void{ if (bgC.visible == false){ bgC.visible = true; statPane.textColor = 0xFFFFFF; statValuePane.textColor = 0xFFFFFF; levelPane.textColor = 0xFFFFFF; levelValuePane.textColor = 0xFFFFFF; DayPane.textColor = 0xFFFFFF; DayValuePane.textColor = 0xFFFFFF; clockPane.textColor = 0xFFFFFF; outputWindow.textColor = 0xFFFFFF; currentRegion.textColor = 0xFFFFFF; region.textColor = 0xFFFFFF; } else { bgC.visible = false; statPane.textColor = 0; statValuePane.textColor = 0; levelPane.textColor = 0; levelValuePane.textColor = 0; DayPane.textColor = 0; DayValuePane.textColor = 0; clockPane.textColor = 0; outputWindow.textColor = 0; currentRegion.textColor = 0; region.textColor = 0; }; } public function buttDesc():String{ var chance:int; var tempStr:String; chance = percent(); tempStr = ("BUTT ERROR " + butt); if (chance <= 100){ if (butt <= 1){ tempStr = "flat"; }; if ((((butt > 1)) && ((butt <= 3)))){ tempStr = "tight"; }; if ((((butt > 3)) && ((butt <= 7)))){ tempStr = "ample"; }; if ((((butt > 7)) && ((butt <= 14)))){ tempStr = "large"; }; if (butt > 14){ tempStr = "gigantic"; }; }; if (chance > 50){ if (butt <= 1){ tempStr = "boney"; }; if ((((butt > 1)) && ((butt <= 3)))){ tempStr = "firm"; }; if ((((butt > 3)) && ((butt <= 7)))){ tempStr = "grope-able"; }; if ((((butt > 7)) && ((butt <= 14)))){ tempStr = "jiggly"; }; if (butt > 14){ tempStr = "swaying"; }; }; return (tempStr); } public function doProcess():void{ if (item1 != 0){ gainItem(item1, 1); } else { if (item2 != 0){ gainItem(item2, 2); } else { if (item3 != 0){ gainItem(item3, 3); } else { if (item4 != 0){ gainItem(item4, 4); } else { if (item5 != 0){ gainItem(item5, 5); } else { if (item6 != 0){ gainItem(item6, 6); } else { if (((((((((!((human == 0))) || (!((horse == 0))))) || (!((wolf == 0))))) || (!((cat == 0))))) || (!((cow == 0))))){ affinityChange(); } else { if (hrs != 0){ dayTime(hrs); } else { doReturn(); }; }; }; }; }; }; }; }; } public function itemID(slotNumber:int):int{ var tempNum:Number; tempNum = 0; if (slotNumber == 1){ tempNum = itemSlot1; }; if (slotNumber == 2){ tempNum = itemSlot2; }; if (slotNumber == 3){ tempNum = itemSlot3; }; if (slotNumber == 5){ tempNum = itemSlot5; }; if (slotNumber == 6){ tempNum = itemSlot6; }; if (slotNumber == 7){ tempNum = itemSlot7; }; if (slotNumber == 9){ tempNum = itemSlot9; }; if (slotNumber == 10){ tempNum = itemSlot10; }; if (slotNumber == 11){ tempNum = itemSlot11; }; return (tempNum); } public function doBag():void{ inBag = true; bc(); viewButtonText(1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1); viewButtonOutline(1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1); i = 1; while (i < 13) { buttonWrite(i, itemName(itemID(i))); if (i == 12){ buttonWrite(12, "Return"); }; i++; }; doListen = function ():void{ if (buttonChoice == 12){ inBag = false; doReturn(); } else { if (((((!((buttonChoice == 0))) && (!((buttonChoice == 4))))) && (!((buttonChoice == 8))))){ useItem(buttonChoice); }; }; }; } public function bellyDesc():String{ var chance:int; var tempStr:String; chance = percent(); tempStr = ("BELLY ERROR " + (pregnancyTime + bellyMod)); if (chance <= 100){ if (((((pregnancyTime + bellyMod) > 18)) && (((pregnancyTime + bellyMod) <= 36)))){ tempStr = "hardly noticeable"; }; if (((((pregnancyTime + bellyMod) > 36)) && (((pregnancyTime + bellyMod) <= 72)))){ tempStr = "rather bloated"; }; if (((((pregnancyTime + bellyMod) > 72)) && (((pregnancyTime + bellyMod) <= 108)))){ tempStr = "obviously bulging"; }; if (((((pregnancyTime + bellyMod) > 108)) && (((pregnancyTime + bellyMod) <= 144)))){ tempStr = "cradleable"; }; if (((((pregnancyTime + bellyMod) > 144)) && (((pregnancyTime + bellyMod) <= 180)))){ tempStr = "greatly protruding"; }; if (((((pregnancyTime + bellyMod) > 180)) && (((pregnancyTime + bellyMod) <= 216)))){ tempStr = "beachball-sized"; }; if (((((pregnancyTime + bellyMod) > 216)) && (((pregnancyTime + bellyMod) <= 252)))){ tempStr = "excessively large"; }; if (((((pregnancyTime + bellyMod) > 252)) && (((pregnancyTime + bellyMod) <= 288)))){ tempStr = "eye-catching"; }; if (((((pregnancyTime + bellyMod) > 288)) && (((pregnancyTime + bellyMod) <= 324)))){ tempStr = "doorway-crowding"; }; if (((((pregnancyTime + bellyMod) > 360)) && (((pregnancyTime + bellyMod) <= 396)))){ tempStr = "street-clearing"; }; if (((((pregnancyTime + bellyMod) > 396)) && (((pregnancyTime + bellyMod) <= 432)))){ tempStr = "larger-than-an-average-person"; }; if ((pregnancyTime + bellyMod) > 432){ tempStr = "impossibly huge"; }; }; if (chance > 50){ }; return (tempStr); } public function doExplore():void{ bc(); if (currentZone == 1){ viewButtonOutline(1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0); viewButtonText(1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0); buttonWrite(6, "Softlik"); buttonWrite(1, "Forest"); buttonWrite(7, "Dairy Farm"); buttonWrite(10, "Plains"); doListen = function ():void{ if (buttonChoice == 6){ doSoftlik(); }; if (buttonChoice == 1){ doForest(); }; if (buttonChoice == 7){ doDairyFarm(); }; if (buttonChoice == 10){ doPlains(); }; }; }; if (currentZone == 2){ viewButtonOutline(0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0); viewButtonText(0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0); buttonWrite(6, "Firmshaft"); buttonWrite(3, "Plains"); buttonWrite(9, "Savanna"); buttonWrite(11, "Old Cave"); doListen = function ():void{ if (buttonChoice == 6){ doFirmshaft(); }; if (buttonChoice == 3){ doPlains(); }; if (buttonChoice == 9){ doSavanna(); }; if (buttonChoice == 11){ doOldCave(); }; }; }; if (currentZone == 3){ viewButtonOutline(0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0); viewButtonText(0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0); buttonWrite(6, "Tieden"); buttonWrite(5, "Lake"); buttonWrite(7, "Forest"); buttonWrite(10, "Jungle"); doListen = function ():void{ if (buttonChoice == 6){ doTieden(); }; if (buttonChoice == 5){ doLake(); }; if (buttonChoice == 7){ doForest(); }; if (buttonChoice == 10){ doJungle(); }; }; }; if (currentZone == 4){ viewButtonOutline(0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0); viewButtonText(0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0); buttonWrite(6, "Siz'Calit"); buttonWrite(2, "Jungle"); buttonWrite(9, "Beach"); buttonWrite(11, "Savanna"); doListen = function ():void{ if (buttonChoice == 6){ doSizCalit(); }; if (buttonChoice == 2){ doJungle(); }; if (buttonChoice == 9){ doBeach(); }; if (buttonChoice == 11){ doSavanna(); }; }; }; } public function doSavanna():void{ var chance:int; chance = percent(); if (chance <= 25){ outputMainText("While heading through the warm savanna, you think you feel it get suddenly warmer... A mrowl echoes around you as you see a slender felin female sway her hips towards you. Her fur looks like a mess, her bikini tops disheveled, 2 of her 6 nipples exposed and looking quite stiff and sore, and her loin cloth is completely drenched in something slick and sticky. Her hand reaches behind the cloth as she spots you and shivers.\r\r'Please... So hot... Must fuck...'\r\rUtterly driven and distraut by her lonely, fruitless heat, the desperately horny felin lunges at you, not sure whether she's about to fuck you or tear you to shreds!", true); doNext(); doListen = function ():void{ enemyID = 301; currentState = 2; enemyBaseStats(); eMaxHP = eHP; doBattle(); }; }; if ((((chance > 25)) && ((chance <= 50)))){ outputMainText("While trudging along the savanna, you hear the stamping of hooves. Drunken song erupts in the air as a large equan man stumbles your way. His pants unbuttoned, his hand hidden within, you can see him groping his large erection. In his other hand he holds a large mug, still filled with alcohol. He smiles as he sees you, and then charges right at you!", true); doNext(); doListen = function ():void{ enemyID = 302; currentState = 2; enemyBaseStats(); eMaxHP = eHP; doBattle(); }; }; if ((((chance > 50)) && ((chance <= 75)))){ outputMainText("You roam about the savanna, not really finding anything interesting. However, the warm weather kinda makes you wanna take off your clothes...", true); doLust(Math.floor(((lib * 2) - ment))); hrs = 1; doEnd(); }; if (chance > 75){ outputMainText("After a few hours of being lost under the sweltering sun, you come across the faint signs of a path. Would you like to follow it?", true); buttonConfirm(); doListen = function ():void{ if (buttonChoice == 6){ if (currentZone == 2){ outputMainText("Following the path, the vegetation becomes denser and denser until trees surround you. You begin to see various wooden structures built amongst the canopy. Rope-bridges and circular huts everywhere, with lithe cat-like people walking about or jumping from branch to branch. The path leads you right to one of the few spiraling ramps that encircles the trees, bringing you up to the tree-born city.\r\rYou have now entered the Felin home-city of Siz'Calit!", true); regionChange(4); hrs = 4; doEnd(); } else { if (currentZone == 4){ outputMainText("Following the path, signs of civilization come into view. Large tents flutter in the breeze, made from canvas held up by rocks and logs, with a few smaller brick buildings here and there. You can hear the soft clapping of hard feet everywhere, as you spot several large horse-like people walk and dash about.\r\rYou have now entered the Equan home-city of Firmshaft!", true); regionChange(2); hrs = 4; doEnd(); }; }; } else { outputMainText("You return from whence you came.", true); hrs = 1; doEnd(); }; }; }; } public function doImpregnate(erace:int):void{ var chance:int; chance = percent(); if ((((pregnancy == false)) && (((chance + pregChanceMod) >= 70)))){ if (erace == 100){ pregMaxTime = (126 + pregTimeMod); }; if (erace == 2){ pregMaxTime = (216 + pregTimeMod); }; if (erace == 1){ pregMaxTime = (45 + pregTimeMod); }; pregnancyType = erace; pregnancy = true; }; } public function doBeach():void{ var chance:int; chance = percent(); if (chance <= 20){ outputMainText("Walking along the beach, you spot something shiny in the sand.", true); item1 = 206; hrs = 2; doEnd(); }; if ((((chance > 20)) && ((chance <= 40)))){ outputMainText("Combing the beach, you find something odd buried in the sand.", true); item1 = 207; hrs = 2; doEnd(); }; if ((((chance > 40)) && ((chance <= 60)))){ outputMainText("Admiring the ocean, you spot something float in on the tide.", true); item1 = 208; hrs = 2; doEnd(); }; if ((((chance > 60)) && ((chance <= 80)))){ outputMainText("Strolling along the beach, you suddenly begin to hop up and down, your foot aching painfully as you step on an urchin!", true); doHP(-(Math.floor((percent() / 10)))); hrs = 2; doEnd(); }; if (chance > 80){ outputMainText("You walk along the beach, the ocean breeze blowing through your hair, the smell of salt on the wind. You take a deep breath and feel a bit rejuvenated.", true); doLust(-5); stats(0, 0, -1, 0); exhaustion = (exhaustion - 2); hrs = 1; doEnd(); }; } public function pullUD(source:int):String{ var tempStr:String; tempStr = ((("PULL UP/DOWN ERROR " + attireTop) + " ") + attireBot); if (source == 1){ if (attireBot == -1){ tempStr = "open"; }; if (attireTop == 0){ tempStr = ""; }; if (attireTop == 1){ tempStr = "up"; }; if (attireTop == 3){ tempStr = "down"; }; if (attireTop == 5){ tempStr = "down"; }; if (attireTop == 6){ tempStr = "open"; }; if (attireTop == 9){ tempStr = "open"; }; if (attireTop == 12){ tempStr = "down"; }; if (attireTop == 13){ tempStr = "down"; }; }; if (source == 2){ if (attireBot == -1){ tempStr = "open"; }; if (attireTop == 0){ tempStr = ""; }; if (attireBot == 2){ tempStr = "down"; }; if (attireBot == 4){ tempStr = "down"; }; if (attireBot == 5){ tempStr = "up"; }; if (attireBot == 6){ tempStr = "open"; }; if (attireBot == 7){ tempStr = "up"; }; if (attireBot == 8){ tempStr = "down"; }; if (attireBot == 10){ tempStr = "down"; }; if (attireBot == 11){ tempStr = "down"; }; if (attireBot == 12){ tempStr = "up"; }; if (attireBot == 13){ tempStr = "up"; }; if (attireBot == 14){ tempStr = "up"; }; if (attireBot == 15){ tempStr = "down"; }; }; return (tempStr); } public function changeTop(ID:int):void{ if (attireTop == -1){ stats(2, 2, 0, 0); }; if (attireTop == 0){ stats(0, 4, 0, 0); }; if (attireTop == 1){ }; if (attireTop == 3){ enticeMod = (enticeMod - 3); stats(0, 2, 0, -2); milkMod = (milkMod + 0.5); }; if (attireTop == 5){ stats(-2, 4, 0, 0); }; if (attireTop == 6){ enticeMod = (enticeMod - 7); stats(0, 2, 0, -8); cumMod = (cumMod + 0.2); milkMod = (milkMod + 0.3); }; if (attireTop == 9){ stats(2, -2, 0, 1); milkMod = (milkMod - 0.5); }; if (attireTop == 12){ stats(2, 0, -2, -2); cumMod = (cumMod - 0.2); runMod = (runMod + 5); pregChanceMod = (pregChanceMod - 5); }; if (attireTop == 13){ stats(2, 3, -2, -3); enticeMod = (enticeMod - 5); pregChanceMod = (pregChanceMod - 5); }; if (ID == -1){ attireTop = ID; if ((((attireTop == attireBot)) && (!((attireBot == -1))))){ changeBot(-1); }; stats(-2, -2, 0, 0); }; if (ID == 0){ stats(0, -4, 0, 0); }; if (ID == 1){ }; if (ID == 3){ enticeMod = (enticeMod + 3); stats(0, -2, 0, 2); milkMod = (milkMod - 0.5); }; if (ID == 6){ enticeMod = (enticeMod + 7); stats(0, -2, 0, 8); cumMod = (cumMod - 0.2); milkMod = (milkMod - 0.3); }; if (ID == 9){ stats(-2, 2, 0, -1); milkMod = (milkMod + 0.5); }; if (ID == 12){ stats(-2, 0, 2, 2); cumMod = (cumMod + 0.2); runMod = (runMod - 5); pregChanceMod = (pregChanceMod + 5); }; if (ID == 13){ stats(-2, -3, 2, 3); enticeMod = (enticeMod + 5); pregChanceMod = (pregChanceMod + 5); }; if ((((((attireTop == attireBot)) && (!((ID == 0))))) && (!((ID == -1))))){ changeBot(0); }; attireTop = ID; } public function doRape():void{ var chance:int; if (enemyID == 1){ if (gender == 1){ outputMainText("You stick your cock in the test enemy's butt and cum.", true); }; if (gender == 2){ outputMainText("You sit on the test enemy's cock until you cum.", true); }; if (gender == 3){ outputMainText("You stuff your cock in the test enemy's butt, then sit on its cock and cum.", true); }; }; if (enemyID == 201){ outputMainText((((((((((("You easily roll the wolf onto his back. Pulling " + pullUD(2)) + " your ") + clothesBottom()) + ", you squat your ") + vulvaDesc()) + " cunt over his sheath, wedging in between your folds while you grind against it. Once his bright red prick twitches as it stretches from its sheath, reaching long and hard while dribbling with pre, you slip it into ") + oneYour(2)) + " hungry hole") + plural(2)) + ". You bounce on top of his belly,"), true); if (vagMoist > 2){ outputMainText(" your honey splashing about everywhere,", false); }; outputMainText(" his hard doggy dick scraping against your inner walls. The lone wolf howls and drools, his tongue lolling out the side of his muzzle, as hot spurts of fresh cum gush within you. You shudder at the raw sensation, squeezing his coarse fur between your thighs. Then, you shiver as you feel the base of his cock swell, knotting within you. You collapse beside him, your pussy throbbing with orgasm, as you gasp and moan with his howls...", false); outputMainText("\r\r\rEventually, his knot deflates. You rub your ", false); if (vagSize < 2){ outputMainText("sore little pussy, a bit stretched from the size of the thing,", false); vagChange(1, 0); } else { outputMainText("satiated cunt,", false); }; outputMainText(" the cock sliding out with cum dripping down between your legs.", false); doImpregnate(enemyBaby()); }; if (enemyID == 301){ chance = percent(); if ((((gender == 1)) || ((((percent() <= 50)) && ((gender == 3)))))){ if (chance <= 100){ outputMainText((((((((((("The felin woman is easily bent forward by your efforts. Her loincloth droops out of the way, giving you a perfect view of the swollen, supple lips that pucker around the crotch of her bikini bottom. Pulling " + pullUD(2)) + " your ") + clothesBottom()) + ", sliding ") + oneYour(1)) + " ") + cockDesc()) + " prick") + plural(1)) + " out and through the cheeks of her ample rump, making her quiver with anticipationg. Not wanting to leave her waiting for too long, the head of your cock pushes into the bikini bottom, pushing through to kiss the waiting hole within."), true); if (cockSize > 10){ outputMainText((("\r\rHowever, she cries out in pain and disappointment, your " + cockDesc()) + " cock far to big to fit inside without tearing her apart. So, instead, you slip it between her legs, rubbing it across her stiff clit and through her loincloth and over her belly as you "), false); }; if ((((cockSize <= 10)) && ((cockSize > 6)))){ outputMainText((("\r\rShe cries out in pain and pleasure as your " + cockDesc()) + " cock stretches her thisting cunt wide, pushing her bikini in until it tears from your path. She pushes her rump back towards you, trying her best to devour the hot rod all the way to its hilt as you "), false); }; if (cockSize <= 6){ outputMainText((("\r\rShe cries out in ecstacy as her hungry cunt devours your " + cockDesc()) + " cock, along with her own bikini until it tears from your path. She takes it all the way in to your hilt as you "), false); }; outputMainText("lean forward and hug her from behind, your hands groping about her many breasts. You pump hard, again and again, until the unavoidable pressure begins to build. Soon, you blow your load ", false); if (cockSize > 10){ outputMainText("across her chest while she tries to lap up the spray with her tongue. You pull back, leaving her a mess.", false); }; if (cockSize <= 10){ outputMainText("into her womb, making her let out a long and joyful mewl. Before she can become to content, you pull out of her with a slurp, your cum still dribbling from her used sex.", false); }; cumAmount(); }; } else { if ((((gender == 2)) || ((gender == 3)))){ outputMainText("Your knock the felin woman backwards onto her ample ass, her legs spreading wide. She cries out as you duck beneath her loincloth and lick her stiff clit through her bikini. Juices flood within your mouth as she instantly reacts, her swollen cunt-lips gnawing at the crotch of the messy bottom. You pull it aside, diving in and getting a good mouthful of her supple flavor. You devour her folds until she twitches uncontrollably, so desparate to come. But, before she does, you consider your own needs and draw your head out before repaclacing it with your own crotch.", true); affinity(-1, -1, -1, 3, -1); outputMainText((((((("\r\rYou grind against her stiff clit as it pokes through her loin cloth, your own " + clitDesc()) + " button") + plural(2)) + " throbbing through your ") + clothesBottom()) + "."), false); if ((((cockTotal > 0)) && ((cumAmount() > 0)))){ outputMainText(((((((" You pull your " + cockDesc()) + " cock") + plural(1)) + ", letting the engorged length") + plural(1)) + " bounce against her belly and hump through her many breasts."), false); }; outputMainText(((" You grind, cunt to cunt" + plural(2)) + ", until you both let out a yowl as you climax together.\r\rYou're quick to gather your wits and clean yourself up, standing before her pussy even stops gushing with honey."), false); }; }; }; if (enemyID == 302){ if ((((gender == 2)) || ((((percent() <= 50)) && ((gender == 3)))))){ outputMainText((((((("The drunken equan falls to his ass, his huge cock bouncing out of his loose pants. It throbs in the air, a large gob of pre spilling out. With a smirk, you step over him, pulling " + pullUD(2)) + " your ") + clothesBottom()) + " and showing him your own hungry flesh. You spread your legs over his twitchy rod, kissing the flat head of the horsy member with your ") + vulvaDesc()) + " lips."), true); if (vagSize < 8){ outputMainText((((((((((("\r\rHis man-meat is far too large for your cunt" + plural(2)) + " however, so you do the next best thing and sit down in his lap. Grinding your hips forward, your ") + clitDesc()) + " clit") + plural(2)) + " hump") + plural(4)) + " into his length. The long prick squeezes between your ") + boobDesc()) + " tits as you press against him, making him tense even more."), false); } else { outputMainText((((((((("\r\rYou plunge down onto his giant man-meat with " + oneYour(2)) + " ") + vulvaDesc()) + " cunt") + plural(2)) + ". It fills you up so much you grin with a drool. You hug him close, your ") + boobDesc()) + " tits pressing against his firm chest, making the thing inside you even harder."), false); }; outputMainText(((" Your hips jerk up and down again and again as you rub along his length. Tingling sparks between the too of you as you feel his softball-sized testicles tighten up beneath your " + buttDesc()) + " butt. Within seconds, the two of you echo in ecstacy, his whinnying quickly over taking your moans,"), false); if (vagSize < 8){ outputMainText(" his cock erupting like a volcano between the two of you", false); if ((((cockTotal > 0)) && ((cumAmount() > 0)))){ outputMainText(", with yours joining in the volley,", false); }; outputMainText(" and the hot spunk spills back down all over your bodies.\r\rYou don't give him much time to refract as you pull away, leaving a bit of after-cum to gush out over his belly.", false); } else { outputMainText(" his cock erupting within you like a powerful volcano, the molten spunk making your belly swell slightly before spilling back out onto the ground", false); if ((((cockTotal > 0)) && ((cumAmount() > 0)))){ outputMainText(", while yours sprays across his chest and face", false); }; outputMainText(((".\r\rYou don't give him much time to refract as you pull him out, a bit of after-cum gushing across your clit" + plural(2)) + "."), false); doImpregnate(enemyBaby()); }; } else { if ((((gender == 1)) || ((gender == 3)))){ outputMainText((((((((((("The drunken equan falls to his ass, his huge cock bouncing out of his loose pants. It throbs in the air, a large gob of pre spilling out. With a smirk, you step over him, pulling " + pullUD(2)) + " your ") + clothesBottom()) + " and brandishing ") + oneYour(1)) + " own ") + cockDesc()) + " cock") + plural(1)) + ". You roll him over onto all fours, his pants quickly slipping from his tight rump as you give it a slap."), true); outputMainText((("\r\rHe whinnies loudly as you plunge your " + cockDesc()) + " erection into his backside. Again and again, you pump away at his hole, until he lets out a loud whinny. His eyes going wide, his giant rod explodes across the ground until its massive length is swimming in a puddle of his own stuff,"), false); if (cumAmount() > 0){ outputMainText(" while yours erupts into his ass, churning his insides,", false); }; outputMainText(" until you've both had a heady orgasm. You pull out quickly, fluids still dripping from you cock, while he heaves upon the ground.", false); }; }; }; } public function regionName():String{ var tempStr:String; tempStr = ("REGION ERROR " + currentZone); if (currentZone == 1){ tempStr = "Softlik"; }; if (currentZone == 2){ tempStr = "Firmshaft"; }; if (currentZone == 3){ tempStr = "Tieden"; }; if (currentZone == 4){ tempStr = "Siz'Calit"; }; return (tempStr); } public function vulvaDesc():String{ var chance:int; var tempStr:String; chance = percent(); tempStr = ("VULVA ERROR " + vulvaSize); if (chance <= 100){ if (vulvaSize == 1){ tempStr = "tiny"; }; if ((((vulvaSize > 1)) && ((vulvaSize <= 3)))){ tempStr = "plush"; }; if ((((vulvaSize > 3)) && ((vulvaSize <= 6)))){ tempStr = "plump"; }; if ((((vulvaSize > 6)) && ((vulvaSize <= 10)))){ tempStr = "huge"; }; if ((((vulvaSize > 10)) && ((vulvaSize <= 15)))){ tempStr = "enormous"; }; if ((((vulvaSize > 15)) && ((vulvaSize <= 23)))){ tempStr = "gigantic"; }; if ((((vulvaSize > 23)) && ((vulvaSize <= 35)))){ tempStr = "humongous"; }; if ((((vulvaSize > 35)) && ((vulvaSize <= 50)))){ tempStr = "tremendous"; }; if ((((vulvaSize > 50)) && ((vulvaSize <= 70)))){ tempStr = "colossal"; }; if (vulvaSize > 70){ tempStr = "ridiculous"; }; }; if (chance > 50){ if (vulvaSize == 1){ tempStr = "childlike"; }; if ((((vulvaSize > 1)) && ((vulvaSize <= 3)))){ tempStr = "dainty"; }; if ((((vulvaSize > 3)) && ((vulvaSize <= 6)))){ tempStr = "kissable"; }; if ((((vulvaSize > 6)) && ((vulvaSize <= 10)))){ tempStr = "groin-filling"; }; if ((((vulvaSize > 10)) && ((vulvaSize <= 15)))){ tempStr = "thigh-spreading"; }; if ((((vulvaSize > 15)) && ((vulvaSize <= 23)))){ tempStr = "leg-spreading"; }; if ((((vulvaSize > 23)) && ((vulvaSize <= 35)))){ tempStr = "ground-scraping"; }; if ((((vulvaSize > 35)) && ((vulvaSize <= 50)))){ tempStr = "person-sized"; }; if ((((vulvaSize > 50)) && ((vulvaSize <= 70)))){ tempStr = "room-sized"; }; if (vulvaSize > 70){ tempStr = "building-sized"; }; }; return (tempStr); } public function doVagMasturbate():void{ if (lust < 20){ outputMainText("You're not really in the mood to play with yourself. You'll just have to settle for something else.", false); doEnd(); }; if (ment >= (lib - 10)){ outputMainText((((((((((((((("You sneak off to the private place where you sleep in " + regionName()) + " with a bunch of towels in hand. Carefully, so as to not let anybody hear, you pull ") + pullUD(2)) + " your ") + clothesBottom()) + ", and gently squeeze your ") + vulvaDesc()) + " nether-lips.\r\rYou lay down on your back and slide your fingers through the front of the cleft") + plural(2)) + " at your crotch, you tease your ") + clitDesc()) + " button") + plural(2)) + ". Stiff and erect, you rub "), true); }; if ((((ment < (lib - 10))) && ((ment >= (lib - 25))))){ outputMainText((((((((((((((((((("You quickly head off to the private place where you sleep with your intention clear as those around " + regionName()) + " can easily see you rub your ") + vulvaDesc()) + " groin through your ") + clothesBottom()) + ". Before you even reach your destination, you're already pulling the ") + clothesBottom()) + " ") + pullUD(2)) + ", accidentally flashing someone your ") + buttDesc()) + " bum.\r\rNevertheless, you squeeze your nether-lips, rubbing your hands down through your ") + vulvaDesc()) + " crotch, grinding your ") + clitDesc()) + " button") + plural(2)) + " and kneading "), true); }; if ((((ment < (lib - 25))) && ((ment >= (lib - 50))))){ outputMainText((((((((((((("Your chest heaving with your heavy breathing, you don't think you can reach the private place where you sleep without crouching and spreading your legs erotically, the thought of coming hanging so heavily on your mind.\r\rInstead, you duck into one of the more hidden corners of " + regionName()) + " as you pull ") + pullUD(2)) + " your ") + clothesBottom()) + ", squeezing your ") + vulvaDesc()) + " nether-lips with anticipation and tug at your ") + clitDesc()) + " clit") + plural(2)) + " grinding "), true); }; if (ment < (lib - 50)){ outputMainText((((((((((((("Without a second thought, right in the middle of " + regionName()) + " your pull ") + pullUD(2)) + " your ") + clothesBottom()) + ", rubbing a hand across your ") + vulvaDesc()) + " cunt and pinching your ") + clitDesc()) + " clit") + plural(2)) + ".\r\rPeople gasp as you continue to gind "), true); }; if (vagTotal > 1){ outputMainText("them ", false); }; if (vagTotal == 1){ outputMainText("it ", false); }; outputMainText("vigorously, making ", false); if (vagTotal > 1){ outputMainText("them ", false); }; if (vagTotal == 1){ outputMainText("it ", false); }; outputMainText((("stiff. Faster and faster you go, until your " + vulvaDesc()) + " vulva swells with blood."), false); if (vagMoist == 1){ outputMainText(" A bit of sweet feminine honey slips out from between your legs, your hand taking as much as possible to meagerly lubricate your sex.", false); }; if (vagMoist == 2){ outputMainText(((" Some sweet feminine honey dribbles from between your legs, slipping back across your " + buttDesc()) + " tush and smearing across your thighs, plenty to take care of business."), false); }; if (vagMoist == 3){ outputMainText(((((" Lubricant spills from your slit" + plural(2)) + ", running down your legs and smearing across your ") + buttDesc()) + " backside, dribbling off your body, more than enough to frig yourself silly."), false); }; if (vagMoist == 4){ outputMainText(((" Fem-cum floods your crotch, loudly slurping as your hands, all the way up to your elbows, become slick with the stuff. You " + buttDesc()) + " is practically sopping with it and more fling across your legs and down below you as you go."), false); }; if (lust <= 30){ outputMainText("\r\rSlowly,", false); }; if ((((lust > 30)) && ((lust <= 70)))){ outputMainText("\r\rQuickly,", false); }; if (lust > 70){ outputMainText("\r\rAlmost instantly,", false); }; outputMainText(((((" your cunt" + plural(2)) + " begin") + plural(4)) + " to quake and shiver, your whole body tingling. Without a second though, you ram "), false); if (vagSize <= 3){ outputMainText("a finger", false); }; if ((((vagSize > 3)) && ((vagSize <= 7)))){ outputMainText("your fingers", false); }; if ((((vagSize > 7)) && ((vagSize <= 12)))){ outputMainText("your hand", false); }; if ((((vagSize > 12)) && ((vagSize <= 18)))){ outputMainText("both hands", false); }; if ((((vagSize > 18)) && ((vagSize <= 26)))){ outputMainText("your forearm", false); }; if (vagSize > 26){ outputMainText("as much of one arm as possible", false); }; outputMainText(((((" into " + oneYour(2)) + " hungry hole") + plural(2)) + ", pounding away at yourself. Your body twitches and jerks as you come again and again."), false); if (ment >= (lib - 10)){ outputMainText("\r\rYou quietly heave as you attmempt to clean up your mess with the towels you have brought along, hiding them until you can safely clean them without being caught. Except for the smell that permeates the area and bit of slurping, you don't think anybody would catch on to your lewd actions, and you continue on with your day.", false); }; if ((((ment < (lib - 10))) && ((ment >= (lib - 25))))){ outputMainText("\r\rComing down from your high, you clean up your mess the best you can, though its likely some of your slick lubricant has seeped in somewhere. At least, you're cautious of your step. And as you leave the place, one of your neighbors eyes you with a surprised look. You were probably a bit loud... Well... you were definitely loud, actually.", false); }; if ((((ment < (lib - 25))) && ((ment >= (lib - 50))))){ outputMainText((((((("\r\rYou realize your hiding probably echoed your moans as you come to your senses. Before you're caught, you quickly pull " + pullUD(2)) + " your ") + clothesBottom()) + ", even though fem-cum is still slathered about and making your ") + clothesBottom()) + " blotch. As you attempt to casually walk away, some nearby strangers blink at you curiously, not quite sure what they just heard. With an awkward flutter in your step, you dash off, your body still slightly in mid-orgasm."), false); }; if (ment < (lib - 50)){ outputMainText((((("\r\rGasping, you blink and look around you. You've gathered quite the crowd, especially some men, and they all gaze out you in amazement. A few tug at their own groins, ducking away from the rest, while others don't look so happy at what you have done, especially the ones with children beside them. You pull " + pullUD(2)) + " your ") + clothesBottom()) + ", slick slime dripping your legs and smearing about within, and you slink away, trying to avoid any more stares. Although, your heart pounds within your chest at the thought of what you had just done..."), false); }; if (lust > 20){ doSexP(10); }; doLust(-((sen * 2))); hrs = 1; doEnd(); } public function conItem(ID:int):Boolean{ var tempBool:Boolean; tempBool = false; if (ID == 103){ return (true); }; if (ID == 105){ return (true); }; if (ID == 110){ return (true); }; if (ID == 111){ return (true); }; if (ID == 112){ return (true); }; if (ID == 113){ return (true); }; if (ID == 114){ return (true); }; if (ID == 115){ return (true); }; if (ID == 120){ return (true); }; if (ID == 201){ return (true); }; if (ID == 202){ return (true); }; if (ID == 203){ return (true); }; if (ID == 204){ return (true); }; if (ID == 205){ return (true); }; if (ID == 207){ return (true); }; if (ID == 208){ return (true); }; if (ID == 209){ return (true); }; if (ID == 210){ return (true); }; if (ID == 211){ return (true); }; if (ID == 212){ return (true); }; if (ID == 213){ return (true); }; if (ID == 500){ return (true); }; if (ID == 501){ return (true); }; if (ID == 502){ return (true); }; return (tempBool); } public function oneYour(topic:int):String{ var tempStr:String; tempStr = ((("ONE YOUR ERROR " + cockTotal) + " ") + vagTotal); if (topic == 1){ if (cockTotal > 1){ tempStr = "one of your"; }; if (cockTotal == 1){ tempStr = "your"; }; }; if (topic == 2){ if (vagTotal > 1){ tempStr = "one of your"; }; if (vagTotal == 1){ tempStr = "your"; }; }; return (tempStr); } public function plural(topic:int):String{ var tempStr:String; tempStr = ""; if ((((topic == 1)) && ((cockTotal > 1)))){ tempStr = "s"; }; if ((((topic == 2)) && ((vagTotal > 1)))){ tempStr = "s"; }; if ((((topic == 3)) && ((cockTotal < 2)))){ tempStr = "s"; }; if ((((topic == 4)) && ((vagTotal < 2)))){ tempStr = "s"; }; return (tempStr); } public function doeHP(changes:int):void{ var changes = changes; if ((eHP + changes) <= 0){ outputMainText((("\r\rYou have made the " + enemyName()) + " pass out from all the pain.\r\r You win the battle!"), false); currentState = 1; doNext(); doListen = function ():void{ battleWin(); }; }; eHP = (eHP + changes); if (eHP > 0){ outputMainText((("\r\rYour enemy now seems to be under " + (Math.ceil(((eHP / eMaxHP) * 10)) * 10)) + "% HP."), false); }; } public function regionChange(changes:int):void{ currentZone = changes; if (changes == 1){ region.text = "Softlik"; }; if (changes == 2){ region.text = "Firmshaft"; }; if (changes == 3){ region.text = "Tieden"; }; if (changes == 4){ region.text = "Siz'Calit"; }; } public function buttonWrite(buttonNumber:int, buttonText:String):void{ if (buttonNumber == 1){ Choice1.htmlText = buttonText; }; if (buttonNumber == 2){ Choice2.htmlText = buttonText; }; if (buttonNumber == 3){ Choice3.htmlText = buttonText; }; if (buttonNumber == 4){ Choice4.htmlText = buttonText; }; if (buttonNumber == 5){ Choice5.htmlText = buttonText; }; if (buttonNumber == 6){ Choice6.htmlText = buttonText; }; if (buttonNumber == 7){ Choice7.htmlText = buttonText; }; if (buttonNumber == 8){ Choice8.htmlText = buttonText; }; if (buttonNumber == 9){ Choice9.htmlText = buttonText; }; if (buttonNumber == 10){ Choice10.htmlText = buttonText; }; if (buttonNumber == 11){ Choice11.htmlText = buttonText; }; if (buttonNumber == 12){ Choice12.htmlText = buttonText; }; } public function loseItem(slot:int):void{ if (itemID(slot) == 101){ rapeMod = (rapeMod - 10); }; if (itemID(slot) == 102){ runMod = (runMod - 20); }; if (itemID(slot) == 200){ vagMoist--; cockMoist--; stats(0, 0, -10, 0); }; itemSlotWrite(slot, 0); } public function checkZero():void{ if (cockSize < 0){ cockSize = 0; }; if (cockTotal < 0){ cockTotal = 0; }; if (balls < 0){ balls = 0; }; if (ballSize < 0){ ballSize = 0; }; if (cockMoist < 0){ cockMoist = 0; }; if (cockMoist > 5){ cockMoist = 5; }; if (breastSize < 0){ breastSize = 0; }; if (boobTotal < 0){ boobTotal = 0; }; if (nippleSize < 1){ nippleSize = 1; }; if (udderSize < 1){ udderSize = 1; }; if (teatSize < 2){ teatSize = 2; }; if (clitSize < 0){ clitSize = 0; }; if (vagSize < 0){ vagSize = 0; }; if (vagTotal < 0){ vagTotal = 0; }; if (vagMoist < 0){ vagMoist = 0; }; if (vagMoist > 5){ vagMoist = 5; }; if (vulvaSize < 0){ vulvaSize = 0; }; if (exhaustion < 0){ exhaustion = 0; }; if (exhaustionPenalty < 0){ exhaustionPenalty = 0; }; if (hips < 1){ hips = 1; }; if (butt < 1){ butt = 1; }; if (body < 5){ body = 5; }; if (tallness < 24){ tallness = 24; }; if (cockSizeMod < 0.1){ cockSizeMod = 0.1; }; if (bellyMod < 0){ bellyMod = 0; }; if (pregChanceMod < -100){ pregChanceMod = -100; }; } public function statDisplay():void{ statValuePane.htmlText = ((((((((((("\r\r" + int(str)) + "\r") + int(ment)) + "\r") + int(lib)) + "\r") + int(sen)) + "\r\r\r") + int(HP)) + "\r") + int(lust)); } public function clothesTop():String{ var tempStr:String; tempStr = ("CLOTHES TOP ERROR " + attireTop); if (attireTop == -1){ tempStr = "tattered shreds"; }; if (attireTop == 0){ tempStr = "naked chest"; }; if (attireTop == 1){ tempStr = "shirt"; }; if (attireTop == 3){ if (boobTotal == 2){ tempStr = "bikini top"; }; if (boobTotal == 6){ tempStr = "bikini tops"; }; }; if (attireTop == 5){ tempStr = "elegant dress"; }; if (attireTop == 6){ tempStr = "latex suit"; }; if (attireTop == 9){ tempStr = "blouse"; }; if (attireTop == 12){ tempStr = "sundress"; }; if (attireTop == 13){ tempStr = "skimpy dress"; }; return (tempStr); } public function doSexP(changes:int):void{ if ((SexP + changes) >= (100 + (100 * level))){ changes = (changes - ((100 + (100 * level)) - SexP)); SexP = 0; SexP = (SexP + changes); level++; levelUP++; } else { SexP = (SexP + changes); }; levelValuePane.text = ((((level + "\r") + SexP) + "\r") + coin); } public function setEnemyStats(enemyHP:int, enemyStr:int, enemyMenta:int, enemySen:int, enemyLib:int, enemyLust:int, enemyGen:int, enemyPref:int, enemyCoin:int, enemySexP:int, enemyItem:int):void{ eHP = enemyHP; eStr = enemyStr; eMenta = enemyMenta; eSen = enemySen; eLib = enemyLib; eLust = enemyLust; eGen = enemyGen; ePref = enemyPref; eCoin = enemyCoin; eSexP = enemySexP; eItem = enemyItem; } public function lactChange(amount:int):void{ if (((((lactation + amount) >= 1)) && ((lactation < 1)))){ outputMainText((("\r\rBlotches spread across your " + clothesTop()) + " around your nipples. Curiously, you dab your finger in the moistness and take a taste. Milk... Seems as though you'll have something else to take care of from now on."), false); }; if (((((lactation + amount) < 1)) && ((lactation >= 1)))){ outputMainText("\r\rYour nipples feel exceptionally dry... It seems your breasts are no longer producing milk.", false); }; lactation = (lactation + amount); if (lactation < 0){ lactation = 0; }; } public function enemyAttack():void{ var attack:int; attack = percent(); if (enemyID == 101){ if (attack <= 50){ outputMainText("\r\rThe cock-snake whips around, slapping you harshly with its tail and causing a painful welt.", false); doHP(-(eDmg(9))); } else { if (attack > 50){ outputMainText((("\r\rThe cock-snake opens its maw, long thing fangs dripping with venom, and it springs forward at your crotch. Mouth bites down onto the crotch of your " + clothesBottom()) + ", fangs sinking right into"), false); if (cockTotal > 0){ outputMainText(((((((((" " + oneYour(1)) + " cock") + plural(1)) + ". It doesn't hurt much, but the venom that spills into you makes you feel strangely aroused and your cock") + plural(1)) + " swell within your ") + clothesBottom()) + ", becoming permanently larger..."), false); doLust(Math.floor(((cockSize / 5) + (percent() / 10)))); cockChange(1, 0); }; if (cockTotal < 1){ outputMainText(((" your mons, directly above your cunt" + plural(2)) + ". It doesn't hurt much, but the venom that spills into you makes you feel quite odd before it lets go..."), false); cockChange(0, 1); doLust(Math.floor(((cockSize / 5) + (percent() / 10)))); }; }; }; }; if (enemyID == 201){ if ((((attack > 35)) && ((attack <= 50)))){ outputMainText("\r\rThe lone wolf leaps at you, taking a large bite with its sharp teeth.", false); doHP(-(eDmg(6))); } else { if ((((((attack > 50)) && ((attack <= 70)))) && ((lust > 15)))){ outputMainText("\r\rHis cock beating against his belly with each step, his lust overcomes him for a moment. He runs up to you, jumping onto your leg and humps wildly, smearing his canine pre up and down your leg. A small spurt of cum shoots out, the large drop oozing down to your feet. Not exactly a full climax, but enough for now, the wolf backs off.", false); doLust(Math.floor((((percent() / 5) + (lib / 4)) - (ment * 2)))); doeLust(Math.floor(((percent() / 10) + (eSen / 2)))); } else { if ((((((attack > 70)) && (!((gender == 0))))) && (!((gender == 1))))){ outputMainText("\r\rThe lone wolf lifts his leg after running up beside you, a bit of urine splashing out onto your feet. However, he was simply peeing, as the heady smell wafts up to your nose, the pheromones making your body shudder with arousal.", false); doLust(Math.floor((((percent() / 5) + lib) - (ment / 2)))); } else { outputMainText("\r\rThe lone wolf rushes at you, scratching you with its claws.", false); doHP(-(eDmg(8))); }; }; }; }; if (enemyID == 301){ if ((((((attack > 30)) && ((attack <= 60)))) && ((eLust > 20)))){ outputMainText((("\r\rThe horny felin woman comes in close, embracing you as she grinds her slick cunt up and down your leg. She licks your " + boobDesc()) + " chest while her feminine fluids spill down your thigh. She mewls a little as she has a small climax, alleviating some of her own frustrations while increasing yours in the process."), false); doLust(Math.floor((((percent() / 5) + (lib / 3)) - ment))); doeLust(Math.floor(((percent() / 10) + (eSen / 2)))); } else { if ((((((attack > 60)) && ((attack <= 85)))) && ((eLust > 10)))){ outputMainText("\r\rUtterly thirsting for sex, she turns away from you an gets on all fours. She bends down further while raising her butt high into the air, showing off her lithe body while also showing off the swollen lips that bulge out of either side of her bikini bottom beneath the loin cloth, her tail waving enticingly above. Her sex-driven display makes you a little hot as well.", false); doLust(Math.floor((((percent() / 5) + lib) - ment))); } else { if (attack > 85){ outputMainText("\r\rPlayfully, she lunges forward and bites you... hard. The pain is quite noticeable, but her giggling afterwards might also arouses you slightly, if you didn't know better...", false); doHP(-(eDmg(7))); doLust((lib - ment)); } else { outputMainText("\r\rIn her frustration, she claws at you.", false); doHP(-(eDmg(10))); }; }; }; }; if (enemyID == 302){ if ((((((attack > 30)) && ((attack <= 60)))) && ((eLust > 30)))){ outputMainText("\r\rThe drunken equan adjusts the giant bulge in his pants, grunting as a large god of pre smears across his knee and blotches his pants. While not the most erotic display, whatever he's drinking makes the stuff smell extremely enticing...", false); doLust(Math.floor((((percent() / 10) + lib) - (ment / 2)))); } else { if ((((attack > 60)) && ((attack <= 80)))){ outputMainText("\r\rHe lifts his large mug up to his lips, taking a big swig. He burps after downing it, his wounds seemingly less severe than before.", false); doeHP(Math.floor(((percent() / 10) + 5))); } else { if (attack > 80){ outputMainText("\r\rStumbling uncontrollably, he plows into you.", false); doHP(-(eDmg(7))); } else { outputMainText("\r\rWith a hearty laugh, he bonks you on the head with his mug.", false); doHP(-(eDmg(9))); }; }; }; }; } } }//package NiminFetishFantasyv0_fla
Section 19
//downArrow (downArrow) package { import flash.display.*; public dynamic class downArrow extends MovieClip { public function downArrow(){ super(); } } }//package
Section 20
//focusRectSkin (focusRectSkin) package { import flash.display.*; public dynamic class focusRectSkin extends MovieClip { public function focusRectSkin(){ super(); } } }//package
Section 21
//newGameButton (newGameButton) package { import flash.display.*; public dynamic class newGameButton extends MovieClip { public function newGameButton(){ super(); } } }//package
Section 22
//ScrollArrowDown_disabledSkin (ScrollArrowDown_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_disabledSkin extends MovieClip { public function ScrollArrowDown_disabledSkin(){ super(); } } }//package
Section 23
//ScrollArrowDown_downSkin (ScrollArrowDown_downSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_downSkin extends MovieClip { public function ScrollArrowDown_downSkin(){ super(); } } }//package
Section 24
//ScrollArrowDown_overSkin (ScrollArrowDown_overSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_overSkin extends MovieClip { public function ScrollArrowDown_overSkin(){ super(); } } }//package
Section 25
//ScrollArrowDown_upSkin (ScrollArrowDown_upSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_upSkin extends MovieClip { public function ScrollArrowDown_upSkin(){ super(); } } }//package
Section 26
//ScrollArrowUp_disabledSkin (ScrollArrowUp_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_disabledSkin extends MovieClip { public function ScrollArrowUp_disabledSkin(){ super(); } } }//package
Section 27
//ScrollArrowUp_downSkin (ScrollArrowUp_downSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_downSkin extends MovieClip { public function ScrollArrowUp_downSkin(){ super(); } } }//package
Section 28
//ScrollArrowUp_overSkin (ScrollArrowUp_overSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_overSkin extends MovieClip { public function ScrollArrowUp_overSkin(){ super(); } } }//package
Section 29
//ScrollArrowUp_upSkin (ScrollArrowUp_upSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_upSkin extends MovieClip { public function ScrollArrowUp_upSkin(){ super(); } } }//package
Section 30
//ScrollBar_thumbIcon (ScrollBar_thumbIcon) package { import flash.display.*; public dynamic class ScrollBar_thumbIcon extends MovieClip { public function ScrollBar_thumbIcon(){ super(); } } }//package
Section 31
//ScrollThumb_downSkin (ScrollThumb_downSkin) package { import flash.display.*; public dynamic class ScrollThumb_downSkin extends MovieClip { public function ScrollThumb_downSkin(){ super(); } } }//package
Section 32
//ScrollThumb_overSkin (ScrollThumb_overSkin) package { import flash.display.*; public dynamic class ScrollThumb_overSkin extends MovieClip { public function ScrollThumb_overSkin(){ super(); } } }//package
Section 33
//ScrollThumb_upSkin (ScrollThumb_upSkin) package { import flash.display.*; public dynamic class ScrollThumb_upSkin extends MovieClip { public function ScrollThumb_upSkin(){ super(); } } }//package
Section 34
//ScrollTrack_skin (ScrollTrack_skin) package { import flash.display.*; public dynamic class ScrollTrack_skin extends MovieClip { public function ScrollTrack_skin(){ super(); } } }//package
Section 35
//upArrow (upArrow) package { import flash.display.*; public dynamic class upArrow extends MovieClip { public function upArrow(){ super(); } } }//package

Library Items

Symbol 1 GraphicUsed by:4
Symbol 2 FontUsed by:3 51 52 55 56 58 61 62 63 64 65 66 67 68 69 70 71 72 73 74
Symbol 3 TextUses:2Used by:4
Symbol 4 MovieClip {newGameButton}Uses:1 3
Symbol 5 BitmapUsed by:6
Symbol 6 GraphicUses:5Used by:7
Symbol 7 MovieClip {upArrow}Uses:6Used by:Timeline
Symbol 8 GraphicUsed by:9
Symbol 9 MovieClipUses:8Used by:41
Symbol 10 MovieClip {fl.core.ComponentShim}Used by:41
Symbol 11 GraphicUsed by:12
Symbol 12 MovieClip {focusRectSkin}Uses:11Used by:41
Symbol 13 GraphicUsed by:14
Symbol 14 MovieClip {ScrollTrack_skin}Uses:13Used by:41
Symbol 15 GraphicUsed by:18
Symbol 16 GraphicUsed by:17 20 24 34
Symbol 17 MovieClipUses:16Used by:18 28 30
Symbol 18 MovieClip {ScrollArrowUp_downSkin}Uses:15 17Used by:41
Symbol 19 GraphicUsed by:20
Symbol 20 MovieClip {ScrollArrowDown_downSkin}Uses:19 16Used by:41
Symbol 21 GraphicUsed by:22
Symbol 22 MovieClip {ScrollThumb_downSkin}Uses:21Used by:41
Symbol 23 GraphicUsed by:24
Symbol 24 MovieClip {ScrollArrowDown_overSkin}Uses:23 16Used by:41
Symbol 25 GraphicUsed by:26
Symbol 26 MovieClip {ScrollThumb_overSkin}Uses:25Used by:41
Symbol 27 GraphicUsed by:28
Symbol 28 MovieClip {ScrollArrowUp_overSkin}Uses:27 17Used by:41
Symbol 29 GraphicUsed by:30
Symbol 30 MovieClip {ScrollArrowUp_upSkin}Uses:29 17Used by:41
Symbol 31 GraphicUsed by:32
Symbol 32 MovieClip {ScrollThumb_upSkin}Uses:31Used by:41
Symbol 33 GraphicUsed by:34
Symbol 34 MovieClip {ScrollArrowDown_upSkin}Uses:33 16Used by:41
Symbol 35 GraphicUsed by:36
Symbol 36 MovieClip {ScrollArrowDown_disabledSkin}Uses:35Used by:41
Symbol 37 GraphicUsed by:38
Symbol 38 MovieClip {ScrollArrowUp_disabledSkin}Uses:37Used by:41
Symbol 39 GraphicUsed by:40
Symbol 40 MovieClip {ScrollBar_thumbIcon}Uses:39Used by:41
Symbol 41 MovieClip {fl.controls.UIScrollBar}Uses:9 10 12 14 18 20 22 24 26 28 30 32 34 36 38 40Used by:Timeline
Symbol 42 BitmapUsed by:43
Symbol 43 GraphicUses:42Used by:44
Symbol 44 MovieClip {downArrow}Uses:43Used by:Timeline
Symbol 45 GraphicUsed by:46
Symbol 46 MovieClipUses:45Used by:Timeline
Symbol 47 GraphicUsed by:48
Symbol 48 MovieClipUses:47Used by:Timeline
Symbol 49 FontUsed by:50
Symbol 50 EditableTextUses:49Used by:Timeline
Symbol 51 EditableTextUses:2Used by:Timeline
Symbol 52 EditableTextUses:2Used by:Timeline
Symbol 53 FontUsed by:54 57 59 60 75 76 77
Symbol 54 EditableTextUses:53Used by:Timeline
Symbol 55 EditableTextUses:2Used by:Timeline
Symbol 56 EditableTextUses:2Used by:Timeline
Symbol 57 EditableTextUses:53Used by:Timeline
Symbol 58 EditableTextUses:2Used by:Timeline
Symbol 59 EditableTextUses:53Used by:Timeline
Symbol 60 EditableTextUses:53Used by:Timeline
Symbol 61 EditableTextUses:2Used by:Timeline
Symbol 62 EditableTextUses:2Used by:Timeline
Symbol 63 EditableTextUses:2Used by:Timeline
Symbol 64 EditableTextUses:2Used by:Timeline
Symbol 65 EditableTextUses:2Used by:Timeline
Symbol 66 EditableTextUses:2Used by:Timeline
Symbol 67 EditableTextUses:2Used by:Timeline
Symbol 68 EditableTextUses:2Used by:Timeline
Symbol 69 EditableTextUses:2Used by:Timeline
Symbol 70 EditableTextUses:2Used by:Timeline
Symbol 71 EditableTextUses:2Used by:Timeline
Symbol 72 EditableTextUses:2Used by:Timeline
Symbol 73 EditableTextUses:2Used by:Timeline
Symbol 74 EditableTextUses:2Used by:Timeline
Symbol 75 EditableTextUses:53Used by:Timeline
Symbol 76 EditableTextUses:53Used by:Timeline
Symbol 77 EditableTextUses:53Used by:Timeline

Instance Names

"bgC"Frame 1Symbol 46 MovieClip
"newGameOutline"Frame 1Symbol 48 MovieClip
"newGame"Frame 1Symbol 50 EditableText
"appearanceBox"Frame 1Symbol 48 MovieClip
"Choice1Outline"Frame 1Symbol 48 MovieClip
"Choice2Outline"Frame 1Symbol 48 MovieClip
"Choice3Outline"Frame 1Symbol 48 MovieClip
"Choice4Outline"Frame 1Symbol 48 MovieClip
"Choice5Outline"Frame 1Symbol 48 MovieClip
"Choice6Outline"Frame 1Symbol 48 MovieClip
"Choice7Outline"Frame 1Symbol 48 MovieClip
"Choice8Outline"Frame 1Symbol 48 MovieClip
"Choice9Outline"Frame 1Symbol 48 MovieClip
"Choice10Outline"Frame 1Symbol 48 MovieClip
"Choice11Outline"Frame 1Symbol 48 MovieClip
"Choice12Outline"Frame 1Symbol 48 MovieClip
"mentaDown"Frame 1Symbol 44 MovieClip {downArrow}
"loadGameOutline"Frame 1Symbol 48 MovieClip
"saveGameOutline"Frame 1Symbol 48 MovieClip
"invertColorsOutline"Frame 1Symbol 48 MovieClip
"region"Frame 1Symbol 51 EditableText
"appearanceText"Frame 1Symbol 52 EditableText
"statPane"Frame 1Symbol 54 EditableText
"invertColors"Frame 1Symbol 55 EditableText
"currentRegion"Frame 1Symbol 56 EditableText
"levelPane"Frame 1Symbol 57 EditableText
"outputWindow"Frame 1Symbol 58 EditableText
"DayPane"Frame 1Symbol 59 EditableText
"DayValuePane"Frame 1Symbol 60 EditableText
"Choice1"Frame 1Symbol 61 EditableText
"Choice5"Frame 1Symbol 62 EditableText
"Choice4"Frame 1Symbol 63 EditableText
"Choice3"Frame 1Symbol 64 EditableText
"Choice2"Frame 1Symbol 65 EditableText
"Choice12"Frame 1Symbol 66 EditableText
"Choice11"Frame 1Symbol 67 EditableText
"Choice10"Frame 1Symbol 68 EditableText
"Choice9"Frame 1Symbol 69 EditableText
"saveGame"Frame 1Symbol 70 EditableText
"loadGame"Frame 1Symbol 71 EditableText
"Choice8"Frame 1Symbol 72 EditableText
"Choice7"Frame 1Symbol 73 EditableText
"Choice6"Frame 1Symbol 74 EditableText
"clockPane"Frame 1Symbol 75 EditableText
"scrollBar"Frame 1Symbol 41 MovieClip {fl.controls.UIScrollBar}
"strDown"Frame 1Symbol 44 MovieClip {downArrow}
"strUp"Frame 1Symbol 7 MovieClip {upArrow}
"mentaUp"Frame 1Symbol 7 MovieClip {upArrow}
"libDown"Frame 1Symbol 44 MovieClip {downArrow}
"libUp"Frame 1Symbol 7 MovieClip {upArrow}
"senDown"Frame 1Symbol 44 MovieClip {downArrow}
"senUp"Frame 1Symbol 7 MovieClip {upArrow}
"hpDown"Frame 1Symbol 44 MovieClip {downArrow}
"hpUp"Frame 1Symbol 7 MovieClip {upArrow}
"lustDown"Frame 1Symbol 44 MovieClip {downArrow}
"lustUp"Frame 1Symbol 7 MovieClip {upArrow}
"statValuePane"Frame 1Symbol 76 EditableText
"levelValuePane"Frame 1Symbol 77 EditableText

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.
EnableDebugger2 (64)Timeline Frame 131 bytes "u.$1$vq$Hd0OSeK3n.ov5KYybvHub0."




http://swfchan.com/19/93902/info.shtml
Created: 26/3 -2019 10:53:51 Last modified: 26/3 -2019 10:53:51 Server time: 21/12 -2024 18:34:04