Skip to content

Commit

Permalink
Mod update 0.7.6
Browse files Browse the repository at this point in the history
Bug fixes #4, should hopefully be the last until 0.8!
  • Loading branch information
Kitteh6660 committed Oct 13, 2014
1 parent 47602a5 commit 2a4ce9d
Show file tree
Hide file tree
Showing 16 changed files with 231 additions and 102 deletions.
4 changes: 2 additions & 2 deletions classes/classes/CoC.as
Original file line number Diff line number Diff line change
Expand Up @@ -352,8 +352,8 @@
//model.debug = debug; // TODO: Set on model?

//Version NUMBER
ver = "0.8.16_mod_0.7.5";
version = ver + " (<b>Bug fixes #3</b>)";
ver = "0.8.16_mod_0.7.6";
version = ver + " (<b>Bug fixes #4</b>)";

//Indicates if building for mobile?
mobile = false;
Expand Down
4 changes: 2 additions & 2 deletions classes/classes/Creature.as
Original file line number Diff line number Diff line change
Expand Up @@ -1986,8 +1986,8 @@ package classes
if (!hasCock()) return 0;
var cumCap:Number = 0;
//Alter capacity by balls.
if (balls > 0) cumCap += Math.pow(((4 / 3) * Math.PI * (ballSize / 2)), 3) * balls * cumMultiplier
else cumCap += Math.pow(((4 / 3) * Math.PI * 1.25), 3) * 2 * cumMultiplier
if (balls > 0) cumCap += Math.pow(((4 / 3) * Math.PI * (ballSize / 2)), 3) * balls// * cumMultiplier
else cumCap += Math.pow(((4 / 3) * Math.PI * 1.25), 3) * 2// * cumMultiplier
//Alter capacity by perks.
if (findPerk(PerkLib.BroBody) >= 0) cumCap *= 1.3;
if (findPerk(PerkLib.FertilityPlus) >= 0) cumCap *= 1.5;
Expand Down
2 changes: 1 addition & 1 deletion classes/classes/GlobalFlags/kFLAGS.as
Original file line number Diff line number Diff line change
Expand Up @@ -2078,7 +2078,7 @@ public static const KEPT_PURE_AMILY_OVER_VAPULA:int
public static const WATERSPORTS_ENABLED:int = 2070;
public static const LUSTSTICK_LIBIDO_INITIAL:int = 2071;
public static const LUSTSTICK_LIBIDO_MOD:int = 2072;
public static const UNKNOWN_FLAG_NUMBER_02073:int = 2073;
public static const IMAGEPACK_OFF:int = 2073;
public static const UNKNOWN_FLAG_NUMBER_02074:int = 2074;
public static const UNKNOWN_FLAG_NUMBER_02075:int = 2075;
public static const UNKNOWN_FLAG_NUMBER_02076:int = 2076;
Expand Down
11 changes: 9 additions & 2 deletions classes/classes/ImageManager.as
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
package classes
{
import classes.Image;
import classes.GlobalFlags.kFLAGS;
import classes.GlobalFlags.kGAMECLASS;

import fl.controls.UIScrollBar;
import flash.display.Loader;
import flash.display.Stage;
import flash.display.MovieClip;
import flash.errors.IOError;
import flash.net.*;
import flash.events.*;
import classes.Image;

import flash.system.Security;
import flash.text.TextField;
Expand Down Expand Up @@ -201,7 +204,11 @@
public function showImage(imageID:String, align:String = "left"):String
{
var imageString:String = "";


if (kGAMECLASS.flags[kFLAGS.IMAGEPACK_OFF] > 0) {
return "";
}

if (logErrors) trace("showing imageID - ", imageID);
var imageIndex:int = 0;
var image:Image = null;
Expand Down
36 changes: 36 additions & 0 deletions classes/classes/Player.as
Original file line number Diff line number Diff line change
Expand Up @@ -1722,6 +1722,41 @@ use namespace kGAMECLASS;
var maxSpe:int = 100;
var maxInt:int = 100;

//Alter max speed if you have oversized parts. (Realistic mode)
if (flags[kFLAGS.HUNGER_ENABLED] > 0)
{
//Balls
var tempSpeedCap:Number = 100;
if (ballSize > 3) maxSpe -= (ballSize - 3);
//Breasts
if (hasBreasts())
{
if (biggestTitSize() > 15) maxSpe -= (biggestTitSize() / 4);
}
//Cocks
if (biggestCockArea() > 24) maxSpe -= ((biggestCockArea() - 24) / 6)
//Min-cap
if (maxSpe < 50) maxSpe = 50;
}

//Uma's Needlework affects max stats. Takes effect BEFORE racial modifiers and AFTER modifiers from body size.
//Caps strength from Uma's needlework.
if (findPerk(PerkLib.ChiReflowSpeed) >= 0)
{
if (maxStr > UmasShop.NEEDLEWORK_SPEED_STRENGTH_CAP)
{
maxStr = UmasShop.NEEDLEWORK_SPEED_STRENGTH_CAP;
}
}
//Caps speed from Uma's needlework.
if (findPerk(PerkLib.ChiReflowDefense) >= 0)
{
if (maxSpe > UmasShop.NEEDLEWORK_DEFENSE_SPEED_CAP)
{
maxSpe = UmasShop.NEEDLEWORK_DEFENSE_SPEED_CAP;
}
}

//Alter max stats depending on race
if (minoScore() >= 4) {
maxStr += 20;
Expand Down Expand Up @@ -1752,6 +1787,7 @@ use namespace kGAMECLASS;
maxInt -= 10;
}
if (gooScore() >= 3) {
maxTou += 10;
maxSpe -= 10;
}
if (isNaga()) maxSpe += 10;
Expand Down
73 changes: 31 additions & 42 deletions classes/classes/Saves.as
Original file line number Diff line number Diff line change
Expand Up @@ -285,6 +285,10 @@ public function saveLoad(e:MouseEvent = null):void
//Hide the name box in case of backing up from save
//screen so it doesnt overlap everything.
mainView.nameBox.visible = false;
var autoSaveSuffix:String = ""
if (player.autoSave) autoSaveSuffix = "ON";
else autoSaveSuffix = "OFF";

outputText("", true);
outputText("<b>Where are my saves located?</b>\n", false);
outputText("<i>In Windows Vista/7 (IE/FireFox/Other): <pre>Users/{username}/Appdata/Roaming/Macromedia/Flash Player/#Shared Objects/{GIBBERISH}/</pre>\n\n", false);
Expand All @@ -301,56 +305,41 @@ public function saveLoad(e:MouseEvent = null):void
temp = 777;
mainView.setButtonText( 0, "save/load" );
}
if (temp == 777)
{
simpleChoices("", 0, "Load", loadScreen, "Load File", -21, "Delete", deleteScreen, "Back", 5025);

menu();
//addButton(0, "Save", saveScreen);
addButton(1, "Load", loadScreen);
addButton(2, "Delete", deleteScreen);
//addButton(5, "Save to File", eventParser, -20);
addButton(6, "Load File", eventParser, -21);
//addButton(8, "AutoSave: " + autoSaveSuffix, eventParser, -65);
addButton(9, "Back", eventParser, 5025);


if (temp == 777) {
addButton(9, "Back", eventParser, 5025);
return;
}
if (player.str == 0)
{
simpleChoices("", 0, "Load", loadScreen, "Load File", -21, "Delete", deleteScreen, "Back", kGAMECLASS.mainMenu);
if (player.str == 0) {
addButton(9, "Back", kGAMECLASS.mainMenu);
return;
}
if (inDungeon)
{
simpleChoices("", 0, "Load", loadScreen, "Load File", -21, "Delete", deleteScreen, "Back", 1);
if (inDungeon) {
addButton(9, "Back", eventParser, 1);
return;
}
if (gameState == 3)
choices("Save", saveScreen,
"Load", loadScreen,
"Load File", -21,
"Delete", deleteScreen,
"Back", 0,
"Save to File", -20,
"Load File", -21,
"", 0,
"", 0,
"", 0);
if (gameState == 3) {
addButton(0, "Save", saveScreen);
addButton(5, "Save to File", eventParser, -20);
addButton(8, "AutoSave: " + autoSaveSuffix, eventParser, 65);
addButton(9, "Back", kGAMECLASS.mainMenu);
}
else
{
if (player.autoSave)
choices("Save", saveScreen,
"Load", loadScreen,
"AutoSav: ON", 65,
"Delete", deleteScreen,
"", 0,
"Save to File", -20,
"Load File", -21,
"", 0,
"", 0,
"Back", 1);
else
choices("Save", saveScreen,
"Load", loadScreen,
"AutoSav: OFF", 65,
"Delete", deleteScreen,
"", 0,
"Save to File", -20,
"Load File", -21,
"", 0,
"", 0,
"Back", 1);
addButton(0, "Save", saveScreen);
addButton(5, "Save to File", eventParser, -20);
addButton(8, "AutoSave: " + autoSaveSuffix, eventParser, 65);
addButton(9, "Back", eventParser, 1);
}
if (flags[kFLAGS.HARDCORE_MODE] >= 1) {
removeButton(5); //Disable "Save to File" in Hardcore Mode.
Expand Down
13 changes: 12 additions & 1 deletion classes/classes/Scenes/Camp.as
Original file line number Diff line number Diff line change
Expand Up @@ -809,7 +809,7 @@ public function doCamp():void {
choices("Explore", explore, "Places", placesNum, "Inventory", 1000, "Stash", storage, "Followers", followers, "Lovers", lovers, "Slaves", slaves, "Camp Actions", canCampStuff, baitText, masturbate, restName, restEvent);

if (flags[kFLAGS.MOD_SAVE_VERSION] < kGAMECLASS.modSaveVersion) {
updateSaveFlags();
promptSaveUpdate();
}

//Massive Balls Bad End (Realistic Mode only)
Expand Down Expand Up @@ -2203,6 +2203,17 @@ private function fixFlags():void {
flags[kFLAGS.UNKNOWN_FLAG_NUMBER_02994] = 0;
}
}
private function promptSaveUpdate():void {
flags[kFLAGS.MOD_SAVE_VERSION] = kGAMECLASS.modSaveVersion;
outputText("It appears that you are importing your save from vanilla CoC or older version of this mod.", true);
outputText("\n\nIs your file last saved in vanilla CoC or pre-version 0.7.1 of the mod?");
outputText("\n\nI'm only asking because older versions of the mod conflicted with flags. This is now fixed but I can't guarantee if your save is okay.");
outputText("\n\nPlease select the correct button. Choosing the mod will update the flags, this is necessary for saves from mod to avoid screwing up.");
menu();
addButton(0, "Vanilla", doCamp);
addButton(1, "Pre-0.7.1 mod", updateSaveFlags);
}

//Updates save. Done to ensure your save doesn't get screwed up.
private function updateSaveFlags():void {
flags[kFLAGS.MOD_SAVE_VERSION] = kGAMECLASS.modSaveVersion;
Expand Down
21 changes: 14 additions & 7 deletions classes/classes/Scenes/Inventory.as
Original file line number Diff line number Diff line change
Expand Up @@ -212,19 +212,19 @@ public function doItems(eventNo:Number):void {
player.slimeFeed();
outputText("You sink the needle deep into your " + sackDescript() + ". It hurts like hell, but you push down the plunger and the pain vanishes as the needles contents flow into you.\n\n", true);
//Apply diminishing returns in realistic mode. The bigger your balls, the harder it is to grow your balls further.
var oldBallSize:Number = player.ballSize
if (flags[kFLAGS.HUNGER_ENABLED] > 0) {
if (player.ballSize >= 6) multiplier -= 0.25;
if (player.ballSize >= 12) multiplier -= 0.25;
if (player.ballSize >= 24) multiplier -= 0.25;
if (player.ballSize >= 36) multiplier -= 0.10;
if (player.ballSize >= 48) multiplier -= 0.05;
if (player.ballSize >= 60) multiplier -= 0.10; //Upper limit
if (player.ballSize > 36 && rand(2) == 0) {
outputText("It seems to have no effect on your " + ballsDescriptLight() + ".")
return;
outputText("It seems to have no effect on your " + ballsDescriptLight() + ". ")
}
if (player.ballSize >= 60) {
outputText("It seems to have no effect on your " + ballsDescriptLight() + ". You may have reached the upper limit of Gro+.")
return;
outputText("You may have reached the upper limit of Gro+. ")
}
}
//1 in 4 BIG growth.
Expand All @@ -239,11 +239,11 @@ public function doItems(eventNo:Number):void {
}
if (player.ballSize > 10) {
outputText("Walking gets even tougher with the swollen masses between your legs. Maybe this was a bad idea. ", false);
dynStats("spe", (-1 - rand(2)))
dynStats("spe", oldBallSize - player.ballSize)
}
if (player.ballSize > 36 && flags[kFLAGS.HUNGER_ENABLED] > 0) {
outputText("Your monster-sized balls are weighing you down. You'll have hard time carrying them.", false);
dynStats("spe", (-1 - rand(2)))
//dynStats("spe", oldBallSize - player.ballSize)
}
dynStats("lus", 10);
itemGoNext();
Expand Down Expand Up @@ -396,11 +396,18 @@ public function doItems(eventNo:Number):void {
//Reducto Ballzzzz
else if(eventNo == 1054) {
outputText("You smear the foul-smelling paste onto your " + sackDescript() + ". It feels cool at first but rapidly warms to an uncomfortable level of heat.\n\n", true);
var oldBallSize:Number = player.ballSize
var decideSpeed:Boolean = false;
if (player.ballSize > 10) decideSpeed = true;
player.ballSize -= (2 + rand(4));
if(player.ballSize < 1) player.ballSize = 1;
if (player.ballSize < 1) player.ballSize = 1;
outputText("You feel your scrotum shift, shrinking down along with your " + ballsDescriptLight() + ". ", false);
outputText("Within a few seconds the paste has been totally absorbed and the shrinking stops.", false);
dynStats("lib", -2, "lus", -10);
if (player.ballSize > 10) dynStats("spe", oldBallSize - player.ballSize);
else {
if (decideSpeed) dynStats("spe", oldBallSize - player.ballSize);
}
itemGoNext();
}
//Reducto Breasts
Expand Down
2 changes: 1 addition & 1 deletion classes/classes/Scenes/NPCs/EmberScene.as
Original file line number Diff line number Diff line change
Expand Up @@ -1040,7 +1040,7 @@ package classes.Scenes.NPCs
doNext(13);
return;
}
if (player.pregnancyIncubation < 200 && player.pregnancyType != PregnancyStore.PREGNANCY_EMBER && flags[kFLAGS.EMBER_BITCHES_ABOUT_PREGNANT_PC] == 0) {
if (player.pregnancyIncubation < 200 && player.pregnancyType != PregnancyStore.PREGNANCY_EMBER && player.pregnancyType > 0 && flags[kFLAGS.EMBER_BITCHES_ABOUT_PREGNANT_PC] == 0) {
manEmberBitchesAboutPCPregnancy();
doNext(13);
return;
Expand Down
3 changes: 3 additions & 0 deletions classes/classes/Scenes/NPCs/JojoScene.as
Original file line number Diff line number Diff line change
Expand Up @@ -1537,6 +1537,7 @@ public function refuseJojosApology():void
//Intro
public function lowCorruptionIntro():void
{
kGAMECLASS.tooltipLoc = "Jojo";
outputText("He extends a hand, which you gladly shake. “<i>My name is Jojo, pleased to meet you.</i>” You introduce yourself in kind.\n\n");

outputText("Now that you have the opportunity to take a good look at him, you notice that he is dressed in simple garbs reminiscent of a monk. A light-blue robe covers his flat chest, tied with a simple sash around his waist. His pants, similar to his robes, fit him snugly as well.\n\n");
Expand Down Expand Up @@ -1575,6 +1576,7 @@ public function set doClear(v:Boolean):void
//[Yes]
public function acceptOfferOfHelp():void
{
kGAMECLASS.tooltipLoc = "Jojo";
clearOutput();
jojoSprite();

Expand All @@ -1587,6 +1589,7 @@ public function acceptOfferOfHelp():void
//[No]
public function refuseOfferOfHelp():void
{
kGAMECLASS.tooltipLoc = "Jojo";
clearOutput();
jojoSprite();

Expand Down
5 changes: 4 additions & 1 deletion classes/classes/Scenes/NPCs/Rathazul.as
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package classes.Scenes.NPCs{
import classes.*;
import classes.GlobalFlags.kFLAGS;
import classes.GlobalFlags.kGAMECLASS;

public class Rathazul extends NPCAwareContent implements TimeAwareInterface {

Expand Down Expand Up @@ -250,7 +251,8 @@ private function rathazulWorkOffer():Boolean {
doNext(13);
return true;
}
if(totalOffers > 0) {
if (totalOffers > 0) {
kGAMECLASS.tooltipLoc = "Rathazul";
var armor:Function = null;
if(beeArmor != null || gelArmor != null || silk > 0 || player.hasKeyItem("Tentacled Bark Plates") >= 0) armor = RathazulArmorMenu;
outputText("Will you take him up on an offer or leave?", false);
Expand Down Expand Up @@ -441,6 +443,7 @@ private function collectRathazulArmor():void {
itype = armors.SSARMOR;
}
//Reset counters
player.addStatusValue(StatusAffects.MetRathazul,2,1);
flags[kFLAGS.UNKNOWN_FLAG_NUMBER_00275] = 0;
flags[kFLAGS.RATHAZUL_SILK_ARMOR_COUNTDOWN] = 0;
menuLoc = 2;
Expand Down
2 changes: 1 addition & 1 deletion classes/classes/Scenes/Places/TelAdre/UmasShop.as
Original file line number Diff line number Diff line change
Expand Up @@ -670,7 +670,7 @@
// 25 per undo?
baseCost += (25 * flags[kFLAGS.UMA_TIMES_ACUPUNCTURE_UNDO]);
}

if (baseCost > 1000) baseCost = 1000;
return baseCost;
}

Expand Down
4 changes: 4 additions & 0 deletions img/images.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<Images>
<ImageList>
<ImageSet id="coc-logo">
<ImageFile>./img/coc-logo</ImageFile>
<ImageFile>./img/coc-logo_1</ImageFile>
</ImageSet>
<ImageSet id="akbal-deepwoods-bigbuttanaled">
<ImageFile>./img/akbal-deepwoods-bigbuttanaled</ImageFile>
<ImageFile>./img/akbal-deepwoods-bigbuttanaled_1</ImageFile>
Expand Down
Loading

0 comments on commit 2a4ce9d

Please sign in to comment.