code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Pokémon_Name_Translator
{
    public class Type
    {
        public int Id { get; set; }

        public string InputName { get; set; }
        public string EnglishName { get; set; }
        public string Name { get; set; }

        public string NameWithFallback
        {
            get
            {
                if (!string.IsNullOrEmpty(Name))
                    return Name;
                else
                    return InputName;
            }
        }

        public string Image
        {
            get { return Constants.TYPE_IMAGES()[Id]; }
        }
    }
}

path: Pokémon Name Translator/Type.cs


code:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Pokémon_Name_Translator
{
    public class TypeDictionary
    {
        public Dictionary<int, Type> Types { get; set; }

        public TypeDictionary(Language.Languages inputLanguage, Language.Languages outputLanguage)
        {
            Types = new Dictionary<int, Type>();
            var lines = File.ReadAllLines(Constants.FILE_TYPE_NAMES);

            Type currentType = null;
            bool hasInputName = false;
            bool hasOutputName = false;
            bool hasEngName = false;
            for (int lineNr = 1; lineNr < lines.Length; lineNr++)
            {
                string[] split = lines[lineNr].Split(',');
                int typeId = Convert.ToInt32(split[0]);

                if (currentType == null || currentType.Id != typeId)
                {
                    hasInputName = hasOutputName = hasEngName = false;
                    currentType = new Type() { Id = typeId };
                    Types.Add(typeId, currentType);
                }

                if (!hasInputName || !hasOutputName || !hasEngName)
                {
                    int rowLangId = Convert.ToInt32(split[1]);
                    if (rowLangId == (int)inputLanguage)
                    {
                        hasInputName = true;
                        currentType.InputName = split[2];
                    }
                    if (rowLangId == (int)outputLanguage)
                    {
                        hasOutputName = true;
                        currentType.Name = split[2];
                    }
                    if (rowLangId == (int)Language.Languages.en)
                    {
                        hasEngName = true;
                        currentType.EnglishName = split[2];
                    }
                }
            }
        }
    }
}

repo_name: Matti/Koopa

license: mit


code:
Download a final build:
https://gitgud.io/Matti-Koopa/Pokemon-Name-Translator/blob/master/Pok%C3%A9mon%20Name%20Translator/Build.zip
Extract all; run the .exe; files will be saved in the current folder

Build instructions if you want to build it yourself:
Just build the thing with Visual Studio really...

How to build your replacement list:
1) Start the Pokémon Name Translator.exe
2) Press 1
3) Choose your input language (probably English; so press 9)
4) Choose your output language (for example German; press 6)
5) Enter 1 for Firefox FoxReplace or 2 for Userscript (like Tampermonkey or other plugins like that)
6) Your output text file will be in the current folder

Install to browser:
Firefox with FoxReplace Plugin installed:
1) Press Alt, go to Tools - FoxReplace and activate "Auto-replace on page load" then go to FoxRepace options
2) Click import (if your file doesn't show up, choose "All files")
3) Choose overwrite in the prompt
4) You should be done
Tampermonkey:
1) Go to Tampermonkey settings "Overview"
2) Click the button with the green + to add a new script
3) Copy all text from your output file and paste here
4) Click save and be done

path: README


code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<actionScriptProperties analytics="false" mainApplicationPath="classes/CoC.as" projectUUID="26fdbf31-7e61-462c-b4df-d511fc572a88" version="11">
  <compiler additionalCompilerArguments="-locale en_US" advancedTelemetry="false" autoRSLOrdering="true" copyDependentFiles="true" fteInMXComponents="false" generateAccessible="false" htmlExpressInstall="true" htmlGenerate="false" htmlHistoryManagement="true" htmlPlayerVersionCheck="true" includeNetmonSwc="false" outputFolderPath="bin-debug" removeUnusedRSL="true" sourceFolderPath="classes" strict="true" targetPlayerVersion="0.0.0" useApolloConfig="false" useDebugRSLSwfs="true" useFlashSDK="true" verifyDigests="true" warn="true">
    <compilerSourcePath/>
    <libraryPath defaultLinkType="0">
      <libraryPathEntry kind="4" path="">
        <excludedEntries>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_charts.swc" useDefaultLinkType="false"/>
          <libraryPathEntry kind="1" linkType="1" path="${PROJECT_FRAMEWORKS}/locale/{locale}"/>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/advancedgrids.swc" useDefaultLinkType="false"/>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/qtp.swc" useDefaultLinkType="false"/>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_air.swc" useDefaultLinkType="false"/>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/charts.swc" useDefaultLinkType="false"/>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/framework.swc" useDefaultLinkType="false"/>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/mx/mx.swc" useDefaultLinkType="false"/>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/netmon.swc" useDefaultLinkType="false"/>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/spark.swc" useDefaultLinkType="false"/>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/sparkskins.swc" useDefaultLinkType="false"/>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/rpc.swc" useDefaultLinkType="false"/>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/videoPlayer.swc" useDefaultLinkType="false"/>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/qtp_air.swc" useDefaultLinkType="false"/>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/datavisualization.swc" useDefaultLinkType="false"/>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/spark_dmv.swc" useDefaultLinkType="false"/>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation.swc" useDefaultLinkType="false"/>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/flash-integration.swc" useDefaultLinkType="false"/>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_dmv.swc" useDefaultLinkType="false"/>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_flashflexkit.swc" useDefaultLinkType="false"/>
          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_agent.swc" useDefaultLinkType="false"/>
        </excludedEntries>
      </libraryPathEntry>
      <libraryPathEntry kind="1" linkType="1" path="lib/bin"/>
    </libraryPath>
    <sourceAttachmentPath/>
  </compiler>
  <applications>
    <application path="classes/CoC.as"/>
  </applications>
  <modules/>
  <workers/>
  <buildCSSFiles/>
  <flashCatalyst validateFlashCatalystCompatibility="false"/>
</actionScriptProperties>

path: .actionScriptProperties

license: unknown


code:
*.swf
*.sol
RECOVER_*
Corruption-of-Champions.as3proj
/bin-debug
/debugStuff
/CoCEd 1.0.3
/bin
/obj

*.pyc
/dist
/generated
.idea/shelf
.idea/workspace.xml
.idea/copyright/profiles_settings.xml
/node_modules
/out
/tmp
CoC-AIR-app.xml
CoC-AIR.airi

# build directory
target/

# vagrant generated files
.vagrant

# Ant generated file for single test targets
test/SingleRunner.mxml
devTools/cert/certificate.crt
devTools/cert/privatekey.key
devTools/cert/FakeCert.p12
OtherCoCAnon1.2.6
*.orig
refused_earrings.coc
took_earrings.coc
fcvgsf
.idea/compiler.xml
.idea/codeStyles/codeStyleConfig.xml
CoC-Mobile.apk

path: .gitignore


code:
[submodule "build-dep"]
	path = build-dep
	url = https://github.com/brrritssocold/CoC-build-dependencies.git

path: .gitmodules


code:
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="FlexIdeProjectLevelCompilerOptionsHolder">
    <compiler-options />
  </component>
</project>


code:
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="ProjectRootManager" version="2" project-jdk-name="flex_sdk_4.6" project-jdk-type="Flex SDK Type (new)">
    <output url="file://$PROJECT_DIR$/out" />
  </component>
</project>


code:
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="ProjectModuleManager">
    <modules>
      <module fileurl="file://$PROJECT_DIR$/Corruption-of-Champions.iml" filepath="$PROJECT_DIR$/Corruption-of-Champions.iml" />
    </modules>
  </component>
</project>


code:
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="VcsDirectoryMappings">
    <mapping directory="" vcs="Git" />
  </component>
</project>


code:
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
	<name>CoC</name>
	<comment></comment>
	<projects>
	</projects>
	<buildSpec>
		<buildCommand>
			<name>com.adobe.flexbuilder.project.flexbuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
	</buildSpec>
	<natures>
		<nature>com.adobe.flexbuilder.project.actionscriptnature</nature>
	</natures>
</projectDescription>

path: .project


code:
sudo: required

addons:
  # service for code quality analysis
  sonarcloud:
    organization: "kitteh6660-github"

# travis-ci does not support actionscript.
# However the build uses ant, which is usually used to build java projects.
# The ant task (mxmlc) provided by the flex SDK (ant/lib/flexTasks.jar) is used to build the project.
language: java

before_install:
  - sudo apt-get update
  # install VNC and xfce4 so we have a desktop, as the flash player requires one
  - sudo apt-get install vnc4server xfce4 ant ant-optional -y
  # So flexunit can find the player and the ant build file does not have to be modified
  - sudo cp build-dep/bin/flashplayer /usr/local/bin/gflashplayer

install:
  # Java 7 is used by default, but sonar requires java 8
  - jdk_switcher  use oraclejdk8
  # start a VNC session, this will be the desktop for tests
  - Xvnc :1 &

script:
    # this is where the build happens. A separate build is started for every entry in the matrix element
  - travis_wait ant test-$BUILD
  - devTools/ci/update-sonar-version.sh

after_success:
  - sonar-scanner

# If the build fails, pack up the unit test reports - if any - and dump them to the console
# The sleep is required for Travis to flush the log, otherwise the encoded dump will be cut off
after_failure:
  - devTools/ci/dump-report.sh && sleep 10

env:
  global:
    # tell the build file where to find the flex SDK
    - FLEX_HOME=build-dep/bin/flex/"
    # this is to trick the flash player into thinking it is running on a desktop
    - DISPLAY=":1"
  matrix:
    # different configurations that should be built
    - BUILD="release"
    - BUILD="debug"

# Just so Travis.CI won't complain about Vanilla+ failing, since V+ wasn't intended to use Travis.
branches:
  except:
    VanillaPlus


code:
Coding style guideline
======================

Intro
-----
This guideline was created with the goal to keep the coding style consistent throughout the codebase. At its current state its **work in progress** and currently **nothing is to be considered final**.

**Important note:** Please avoid full file tidying as this creates a huge diff that may be a PITA to review. Especially not, when you're changing other things not related to code tidying and/or aren't 100% sure about what you're doing.

That said, let's start with the guideline.

Curly braces
------------
### Packages, classes and functions
Put the open curly brace into a new line:

```as3
package foo.bar.moo
{
	class FooBar extends Foo
	{
		public function foo(moo:int):void
		{
			// ...
		}

		public function bar():void
		{
			// ...
		}
	}
}
```

In addition to that use an empty line between function definitions like in the example above.

### Control structures (if/else if/else/while/for/switch/...)
Put the opening curly brace into **the same** line:

```as3
if (foobar === "moo") {
	expression;
	expression;
} else {
	expression;
	expression;
	expression;
	expression;
}

switch (foobar) {
	case "moo":
		//do this
		break;

	case "quack":
		//do that
		break;

	default:
		// do something else
}
```
If **both** the `if (expr)` and the `else`-branch contain a single expression you may omit the curly braces. But not, if at least one of them contains multiple expressions. The expressions should go into a new line. Not into the same line:

##### Do this
```as3

if (foo === "bar")
	outputText("foobar");
else
	outputText("moo");

if (foobar === "moo") {
	outputText("blah, blah");
} else {
	outputText("blah, blah");
	outputText("yadda, yadda");
}
```

##### But dont't do this:
```as3
if (foo === "bar")
	outputText("foobar");
else outputText("moo");

if (foobar === "moo")
	outputText("blah, blah");
else {
	outputText("blah, blah");
	outputText("yadda, yadda");
}
```

**However:** If theres even the slightest possibility, that someone may add more expressions to it its recommended to add the curly braces anyway to avoid mistake like forgetting to add curly braces and to keep future diffs less noisy.

#### Good practice for the `else` in conditionals
Try keeping the `else`-part of a conditional as near as possible to the `if`

##### Avoid this:
```as3
if (foobar === "moo") {
	expression;
	expression;
	expression;
	expression;
	expression;
} else {
	expression;
}
```

##### Instead use this:
```as3
if (foobar !== "moo") {
	expression;
} else {
	expression;
	expression;
	expression;
	expression;
	expression;
}
```

As you can see there, I've changed the condition to the opposite. From `foobar === "moo"` to `foobar !== "moo"` in that case.

### Indenting and aligning code
Indent with single tabs (per indentation level) and align with spaces:
![Screenshot of aligned and indented code](https://user-images.githubusercontent.com/13157984/35690557-74b48ada-0776-11e8-860d-1e8a6787f7e6.png "Screenshot of aligned and indented code")

### Avoid extremely long lines of code
While mode IDEs and editors may have word wrapping, GitHub hasn't and not everyone likes word-wrapping. Look at the screenshot above how extremely long lines of code could be wrapped.
Many editors allow setting up a vertical line to assist you with that task. In FlashDevelop for example the settting for this is called 'Print Margin Column'. I have set mine to 150.

### Use of spaces
Operators should always be surrounded by spaces with the exception of `++` and `--`:

```as3
a = 1;
b += a;
c = a + b;
d = b + "something" + c;
e = d * b;
f = e / a;
g = (f + e) * b;
h++;
i--;
```

Function calls and definitions should not have a space before the opening parentheses:

```as3
outputText("blah, blah, yadda, yadda!");
player.arms.setType(Arms.SPIDER);
```

Function arguments should have a space after each comma:

```as3
player.skin.tone = randomChoice("red", "green", "blue");
```

Unnecessary spaces around parentheses **should not** be used.

In other words: **Don't use:**

```as3
outputText( "blah, blah, yadda, yadda!" );
player.arms.setType( Arms.SPIDER );
```

Control structures, like if, else, switch and for should have a space before the opening parentheses.

```as3
for (var i = 0; i < 10; i++) {
	// do something
}

while (i < theArray.length) {
	// do something
}

if (condition !== "something") {
	// do something
} else {
	// do something
}
```

Curly braces (`{ }`) should be surrounded by a space as shown above.

### Commenting code
Use the `//` comment type for single-line or short comments, and the `/* .... */` syntax for large block comments.

```as3
// this is a single line comment

// this is a short comment that tells
// you something about the following code

/*
this is a long comment
and it
goes on
for several
lines...
*/
```

Comments should precede the code they describe, rather than following it.

Avoid this:

```as3
var itemCount:int = 0; // initialize itemCount

if (itemCount !== 0) // check itemCount
```

Instead use this:

```as3
// initialize itemCount
var itemCount:int = 0;

// check itemCount
if (itemCount !== 0)
```

When commenting loops and branches, it is acceptable to put the comment inside the braces.

```as3
if (text !== "") {
	// text is not empty so do the following code
	outputText(text);
}
```

Indent comments the same way as the code, that follows it:

Avoid this:

```as3
	if (text !== "") {
//		text is not empty so do the following code
		outputText(text);
	}
```

Instead use this:

```as3
	if (text !== "") {
		// text is not empty so do the following code
		outputText(text);
	}
```

### Naming conventions

| **What**                              | **Convention**                                                          | **Examples**                            |
|---------------------------------------|-------------------------------------------------------------------------|-----------------------------------------|
| class                                 | Use UpperCamelCase                                                      | `MinotaurScene`, `PlayerAppearance`     |
| interface                             | Use UpperCamelCase
**Note:** No `I` or `Interface` prefix or suffix! | `RandomNumberGenerator`, `Serializable` |
| function / method                     | Use lowerCamelCase                                                      | `setType`, `restoreLegs`                |
| variables (including class variables) | Use lowerCamelCase                                                      | `furColor`, `skinType`                  |
| constants                             | Use capital letters and words separated by underscores                  | `CAN_FLY_WINGS`, `RED_PANDA`            |

### Arrays and trailing commas
When adding elements to arrays where every array element is in it own line its common practice and recommended to add a trailing comma (`,`) to the new element, to reduce the noise of future diffs:
```as3
public static const DEFAULT_ARM_NAMES:Object = createMapFromPairs(
		[
			[Arms.HUMAN, "human"],
			[Arms.HARPY, "harpy"],
			[Arms.SPIDER, "spider"],
			[Arms.WOLF, "wolf"],
			[Arms.PREDATOR, "predator"],
			[Arms.SALAMANDER, "salamander"],
			[Arms.COCKATRICE, "cockatrice"],
			[Arms.RED_PANDA, "red-panda"],
			[Arms.OTTER, "otter"],
		]
);
```


code:
Contributing to CoC
==============

If you'd like to work on CoC, here are some things to keep in mind.

1. **Work on CoC happens slowly.** CoC is considered largely complete. The CoC leadership's primary focus is on TiTS, and CoC is a weekend project for them at this point. Do not expect quick turnaround.
2. **One major change per pull request, unless the changes are relevant to each other.** If you try to submit a new monster, support for multiple vaginas, a bunch of grammar fixes, and a redesign of the pregnancy system all in one pull request, we will probably close your pull request and tell you to submit four separate ones (and probably not that politely, either). When you mix changes together like that, it's impossible to tell which of your edits are related to which features. That means we can't see what you're doing, which means we can't see if you're doing things correctly.
3. **Be cautious when refactoring.** CoC is an old codebase with lots of crap in it that's begging to be redesigned. But there are several reasons you should be very cautious:
   * **CoC is complicated.** A lot of factors are involved in something as simple as deciding how much your lust increases each hour; if you're not careful, you'll miss something.
   * **It's really, really easy to write bugs in CoC.** ActionScript is not a strict language, CoC does not have comprehensive unit tests, and as previously stated, CoC is complicated. Those factors make CoC a minefield. Did you test your new scene with a bat-winged, scaled, pregnant, three-cocked hermaphrodite centaur with two identical cock socks, the beautiful sword, a hairless corrupted Amily, and a minotaur cum addiction? Because somebody probably has a character like that, and their bug reports will make you weep.
   * **Some core CoC developers are amateur programmers**. They have trouble understanding fancy tricks. Some of the things they consider to be "fancy tricks" may seem pretty simple to you.
   * **Most CoC developers are putting most of their attention elsewhere** (see point 1). If the codebase moves too far ahead too fast, they will have trouble working on the game.
4. **The fact that there's shitty code in CoC doesn't mean you get to write shitty code, too.** The first step in making CoC better is making sure it doesn't get any worse. Don't copy and paste when you should be using functions, don't fill your code with magic numbers, don't expand systems we're trying to get rid of, and don't write code that's spaghetti-er than it has to be. Use common sense.
5. **Communicate.** If you want to do something big, talk it over with us first. This will be a slow process (see point 1), but it will save you from wasting your time.

Good luck!

## Deprecated Code

Please don't use deprecated code for new content. If you find any deprecated code, try your best to refactor it.

* `choices` and `simpleChoices`: Those are really old code used for setting up a choice of buttons. Remember that there are now 15 buttons so use `addButton` instead.
* Lots and lots of local variables for gating scenes. Those are prominient in many of the victory scene choices. Just remove the variables and change the way the buttons are gated, check the newer code for that.
* Deprecated functions, variables and classes can be marked with `[Deprecated]` metadata tags to generate compiler warnings. [Adobe metadata documentation](http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf680e1-7ffe.html), [Deprecated metadata](http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf680e1-7ffe.html#WS2db454920e96a9e51e63e3d11c0bf69084-7a6c)

## Logging

Please don't use `trace()`, but instead use `ILogger` based loggers.

e.g.:
```actionscript
	import classes.internals.LoggerFactory;
	import mx.logging.ILogger;

	public class Foo {
		private static const LOGGER:ILogger = LoggerFactory.getLogger(Foo);

		private var bar:int = 5;

		public function Foo() {
			LOGGER.error("This is an error message.");
			LOGGER.debug("Bar has the value of {0}.", bar);
		}
	}
```


code:
<?xml version="1.0" encoding="utf-8"?>
<project version="2">
  <!-- Output SWF options -->
  <output>
    <movie outputType="Application" />
    <movie input="" />
    <movie path="OtherCoCAnon1.2.9.2-Mobile.swf" />
    <movie fps="30" />
    <movie width="800" />
    <movie height="600" />
    <movie version="28" />
    <movie minorVersion="0" />
    <movie platform="Flash Player" />
    <movie background="#000000" />
  </output>
  <!-- Other classes to be compiled into your SWF -->
  <classpaths>
    <class path="classes" />
    <class path="lib\bin" />
  </classpaths>
  <!-- Build options -->
  <build>
    <option accessible="False" />
    <option advancedTelemetry="False" />
    <option allowSourcePathOverlap="False" />
    <option benchmark="True" />
    <option es="False" />
    <option inline="False" />
    <option locale="" />
    <option loadConfig="" />
    <option optimize="True" />
    <option omitTraces="True" />
    <option showActionScriptWarnings="False" />
    <option showBindingWarnings="True" />
    <option showInvalidCSS="True" />
    <option showDeprecationWarnings="True" />
    <option showUnusedTypeSelectorWarnings="True" />
    <option strict="True" />
    <option useNetwork="False" />
    <option useResourceBundleMetadata="True" />
    <option warnings="True" />
    <option verboseStackTraces="True" />
    <option linkReport="" />
    <option loadExterns="" />
    <option staticLinkRSL="True" />
    <option additional="-show-actionscript-warnings=true
-show-binding-warnings=true
-show-unused-type-selector-warnings=true" />
    <option compilerConstants="CONFIG::STANDALONE,false
CONFIG::AIR,true" />
    <option minorVersion="" />
  </build>
  <!-- SWC Include Libraries -->
  <includeLibraries>
    <!-- example: <element path="..." /> -->
  </includeLibraries>
  <!-- SWC Libraries -->
  <libraryPaths>
    <element path="lib\bin\MainView.swc" />
    <element path="lib\bin\ScrollPane.swc" />
  </libraryPaths>
  <!-- External Libraries -->
  <externalLibraryPaths>
    <!-- example: <element path="..." /> -->
  </externalLibraryPaths>
  <!-- Runtime Shared Libraries -->
  <rslPaths>
    <!-- example: <element path="..." /> -->
  </rslPaths>
  <!-- Intrinsic Libraries -->
  <intrinsics>
    <!-- example: <element path="..." /> -->
  </intrinsics>
  <!-- Assets to embed into the output SWF -->
  <library>
    <!-- example: <asset path="..." id="..." update="..." glyphs="..." mode="..." place="..." sharepoint="..." /> -->
  </library>
  <!-- Class files to compile (other referenced classes will automatically be included) -->
  <compileTargets>
    <compile path="classes\classes\CoC.as" />
  </compileTargets>
  <!-- Paths to exclude from the Project Explorer tree -->
  <hiddenPaths>
    <hidden path="obj" />
  </hiddenPaths>
  <!-- Executed before build -->
  <preBuildCommand />
  <!-- Executed after build -->
  <postBuildCommand alwaysRun="False" />
  <!-- Other project options -->
  <options>
    <option showHiddenPaths="False" />
    <option testMovie="Custom" />
    <option testMovieCommand="$(FlexSDK)\bin\adl.exe -profile mobileDevice -screensize 800x600:800x600 $(OutputDir)\application.xml" />
  </options>
  <!-- Plugin storage -->
  <storage>
    <entry key="air-descriptor"><![CDATA[devTools\application.xml]]></entry>
  </storage>
</project>


code:
<?xml version="1.0" encoding="utf-8"?>
<project version="2">
  <!-- Output SWF options -->
  <output>
    <movie outputType="Application" />
    <movie input="" />
    <movie path="..\Downloads\New Folder\MothmanTest.swf" />
    <movie fps="24" />
    <movie width="1000" />
    <movie height="800" />
    <movie version="13" />
    <movie minorVersion="0" />
    <movie platform="Flash Player" />
    <movie background="#000000" />
    <movie preferredSDK="Apache Flex 4.16.0 FP30.0 AIR30.0 en_US;4.16.0;" />
  </output>
  <!-- Other classes to be compiled into your SWF -->
  <classpaths>
    <class path="classes" />
    <class path="lib\bin" />
  </classpaths>
  <!-- Build options -->
  <build>
    <option accessible="False" />
    <option advancedTelemetry="False" />
    <option allowSourcePathOverlap="False" />
    <option benchmark="True" />
    <option es="False" />
    <option inline="False" />
    <option locale="" />
    <option loadConfig="" />
    <option optimize="True" />
    <option omitTraces="True" />
    <option showActionScriptWarnings="True" />
    <option showBindingWarnings="True" />
    <option showInvalidCSS="True" />
    <option showDeprecationWarnings="True" />
    <option showUnusedTypeSelectorWarnings="True" />
    <option strict="True" />
    <option useNetwork="False" />
    <option useResourceBundleMetadata="True" />
    <option warnings="True" />
    <option verboseStackTraces="True" />
    <option linkReport="" />
    <option loadExterns="" />
    <option staticLinkRSL="True" />
    <option additional="-show-actionscript-warnings=true
-show-binding-warnings=true
-show-unused-type-selector-warnings=true
-warn-duplicate-variable-def=false" />
    <option compilerConstants="CONFIG::STANDALONE,true
CONFIG::AIR,false" />
    <option minorVersion="" />
  </build>
  <!-- SWC Include Libraries -->
  <includeLibraries>
    <!-- example: <element path="..." /> -->
  </includeLibraries>
  <!-- SWC Libraries -->
  <libraryPaths>
    <element path="lib\bin\MainView.swc" />
    <element path="lib\bin\ScrollPane.swc" />
  </libraryPaths>
  <!-- External Libraries -->
  <externalLibraryPaths>
    <!-- example: <element path="..." /> -->
  </externalLibraryPaths>
  <!-- Runtime Shared Libraries -->
  <rslPaths>
    <!-- example: <element path="..." /> -->
  </rslPaths>
  <!-- Intrinsic Libraries -->
  <intrinsics>
    <!-- example: <element path="..." /> -->
  </intrinsics>
  <!-- Assets to embed into the output SWF -->
  <library>
    <!-- example: <asset path="..." id="..." update="..." glyphs="..." mode="..." place="..." sharepoint="..." /> -->
  </library>
  <!-- Class files to compile (other referenced classes will automatically be included) -->
  <compileTargets>
    <compile path="classes\classes\CoC.as" />
  </compileTargets>
  <!-- Paths to exclude from the Project Explorer tree -->
  <hiddenPaths>
    <hidden path="obj" />
  </hiddenPaths>
  <!-- Executed before build -->
  <preBuildCommand />
  <!-- Executed after build -->
  <postBuildCommand alwaysRun="False" />
  <!-- Other project options -->
  <options>
    <option showHiddenPaths="False" />
    <option testMovie="Default" />
    <option testMovieCommand="" />
  </options>
  <!-- Plugin storage -->
  <storage />
</project>


code:
<?xml version="1.0" encoding="utf-8"?>
<SWCProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <FlexBinPath />
  <FlashBinPath />
  <FlexIncludeASI>false</FlexIncludeASI>
  <MakeCS3>false</MakeCS3>
  <MakeMXI>false</MakeMXI>
  <IntegrateAsDoc>true</IntegrateAsDoc>
  <LaunchAEM>false</LaunchAEM>
  <MXPIncludeASI>false</MXPIncludeASI>
  <Flex_IgnoreClasses />
  <CS3_IgnoreClasses />
  <CS3_PreviewType>None</CS3_PreviewType>
</SWCProject>


code:
<?xml version="1.0" encoding="UTF-8"?>
<module type="Flex" version="4">
  <component name="FlexBuildConfigurationManager" active="CoC-release">
    <configurations>
      <configuration name="CoC-debug" main-class="classes.CoC" output-file="CoC-debug.swf" output-folder="$MODULE_DIR$" skip-build="true">
        <dependencies target-player="18.0" framework-linkage="Merged">
          <entries>
            <entry library-name="lib" library-level="project">
              <dependency linkage="Merged" />
            </entry>
          </entries>
          <sdk name="flex_sdk_4.6" />
        </dependencies>
        <compiler-options>
          <map>
            <entry key="compiler.define" value="CONFIG::debug	true
CONFIG::release	false
CONFIG::STANDALONE	true
CONFIG::AIR	false" />
          </map>
          <option name="resourceFilesMode" value="None" />
        </compiler-options>
        <packaging-air-desktop />
        <packaging-android />
        <packaging-ios />
      </configuration>
      <configuration name="CoC-release" main-class="classes.CoC" output-file="CoC-release.swf" output-folder="$MODULE_DIR$">
        <dependencies target-player="18.0" component-set="MxOnly" framework-linkage="Merged">
          <entries>
            <entry library-name="lib" library-level="project">
              <dependency linkage="Merged" />
            </entry>
          </entries>
          <sdk name="flex_sdk_4.6" />
        </dependencies>
        <compiler-options>
          <map>
            <entry key="compiler.debug.swf" value="false" />
            <entry key="compiler.define" value="CONFIG::debug	false
CONFIG::release	true
CONFIG::AIR	false
CONFIG::STANDALONE	true" />
          </map>
          <option name="resourceFilesMode" value="None" />
          <option name="additionalOptions" value="-use-network=false" />
        </compiler-options>
        <packaging-air-desktop />
        <packaging-android />
        <packaging-ios />
      </configuration>
      <configuration name="CoC-Mobile" target-platform="Mobile" main-class="classes.CoC" output-file="CoC-AIR.swf" output-folder="$MODULE_DIR$">
        <dependencies>
          <entries>
            <entry library-name="lib" library-level="project">
              <dependency linkage="Merged" />
            </entry>
          </entries>
          <sdk name="flex_sdk_4.6" />
        </dependencies>
        <compiler-options>
          <map>
            <entry key="compiler.debug.swf" value="false" />
            <entry key="compiler.define" value="CONFIG::AIR	true
CONFIG::STANDALONE	false
CONFIG::debug	false
CONFIG::release	true" />
          </map>
          <option name="resourceFilesMode" value="None" />
          <option name="additionalOptions" value="-use-network=false" />
        </compiler-options>
        <packaging-air-desktop />
        <packaging-android enabled="true" use-generated-descriptor="false" custom-descriptor-path="$MODULE_DIR$/lib/hgg.xml" package-file-name="CoC-Mobile">
          <files-to-package>
            <FilePathAndPathInPackage file-path="$MODULE_DIR$/lib/icons" path-in-package="icons" />
          </files-to-package>
        </packaging-android>
        <packaging-ios package-file-name="CoC-Mobile" />
      </configuration>
    </configurations>
    <compiler-options />
  </component>
  <component name="NewModuleRootManager" inherit-compiler-output="true">
    <exclude-output />
    <content url="file://$MODULE_DIR$">
      <sourceFolder url="file://$MODULE_DIR$/lib/bin" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/classes" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
      <excludeFolder url="file://$MODULE_DIR$/.idea" />
      <excludeFolder url="file://$MODULE_DIR$/assets" />
      <excludeFolder url="file://$MODULE_DIR$/bin" />
      <excludeFolder url="file://$MODULE_DIR$/generated" />
      <excludeFolder url="file://$MODULE_DIR$/obj" />
    </content>
    <orderEntry type="jdk" jdkName="flex_sdk_4.6" jdkType="Flex SDK Type (new)" />
    <orderEntry type="sourceFolder" forTests="false" />
    <orderEntry type="library" exported="" name="lib" level="project" />
  </component>
</module>


code:
_Please prefix the title with the issue type: [Bug], [Enhancement], [Question], [Other]_

### I have checked the following before submitting this issue:
_Remove this hint: these checkboxes can be checked like this: [x] - Remove this line if you read and understood the checkboxes below_
- [ ] The bug is still present in the latest release
- [ ] Searched the existing issues so I do not open a duplicate issue
- [ ] Filled out the template, so developers are less likely to ask for more info

### Overview
Give us short description of the issue.

### Game version
Tell us the version of the game where the issue occurs.

### Expected behaviour
Tell us what should happen.

### Actual behaviour
Tell us what happens instead.

### How often can this be reproduced?
Tell us how often this happens.

### Steps to reproduce the issue

1. First step
2. Second step
3. and so on...

_If possible, attach a save file that reproduces the issue._
_Please be aware that any files uploaded here are publicly accessible and cannot be deleted (however, the link to them can be removed)._


code:
Corruption-of-Champions-Mod
===========================
[![Build Status](https://travis-ci.org/Kitteh6660/Corruption-of-Champions-Mod.svg?branch=master)](https://travis-ci.org/Kitteh6660/Corruption-of-Champions-Mod)
[![Sonarcloud code analysis](https://sonarcloud.io/api/badges/gate?key=org.github.Kitteh6660%3ACorruption-of-Champions-Mod)](https://sonarcloud.io/dashboard?id=org.github.Kitteh6660%3ACorruption-of-Champions-Mod)

NOTE: CONTAINS MATURE CONTENT. ADULTS ONLY

CoC Mod source from Kitteh6660. Original game by Fenoxo.
Modifications by everyone at:
https://github.com/Kitteh6660/Corruption-of-Champions-Mod/graphs/contributors

Everything in original game is copyright Fenoxo (fenoxo.com).

Check out the wiki for information and the FAQ.

**Playable releases can be found in the Releases tab.**
**Android Releases:** https://github.com/Hexxah/CoC-MOD-Android-Build

**Discord Server:** https://discord.gg/R25MZEx

# Building with ant
## Prerequisites
- Java JRE installed
- Ant installed
- Environment variable FLEX_HOME set to the flex SDK path

## Building
To build run:

`ant`

If you want to skip the tests (not recommended):

`ant release` or `ant debug`

To list the ant targets:

`ant -p`

## Testing
To run all tests:

`ant test`

To run a single test case or suite:

`ant test-single -Dtestclass=fqn.of.class`

example:

`ant test-single -Dtestclass=classes.Items.MutationsTest`

This allows for quick testing or debugging of classes without running all tests.


code:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
   xmlns:flexUnitUIRunner="http://www.adobe.com/2009/flexUnitUIRunner"
   creationComplete="runTests();"
   layout="absolute">

   <mx:Script>
      <![CDATA[
		  import mx.logging.LogEventLevel;
		  import org.flexunit.internals.TextListener;
		  import org.flexunit.internals.TraceListener;
         import org.flexunit.listeners.CIListener;
         import org.flexunit.listeners.UIListener;
         import org.flexunit.runner.FlexUnitCore;
		 import AllTestsSuit;
		 import classes.helper.StageLocator;

         public function runTests() : void {
				var core : FlexUnitCore = new FlexUnitCore();

				/**If you don't need graphical test results, comment out the line below and the MXML declaring
				the TestRunnerBase. **/
				core.addListener(new CIListener());
				new StageLocator(systemManager.stage);
				/**If you would like to see text output in verbose mode, umcomment either of the follow listeners **/
				//core.addListener( new TraceListener() ); - For AS3 Projects
				//core.addListener( TextListener.getDefaultTextListener( LogEventLevel.DEBUG ) ); - For Flex Projects

            core.run(AllTestsSuit);
         }
      ]]>
   </mx:Script>
</mx:Application>


code:
<?xml version="1.0" encoding="utf-8" ?>
<application xmlns="http://ns.adobe.com/air/application/3.1">
    <id>com.dragontamer8740.cocMod</id>
    <versionNumber>0.9.4</versionNumber>
    <filename>CoC-mod-droid</filename>
    <name>CoC-Mod</name>
     <description>
        <text xml:lang="en">Corruption of Champions Mod</text>
    </description>
    <copyright>Copyright (c) 2015 Fenoxo/Kitteh6660</copyright>
    <initialWindow>
        <content>./CoC-AIR.swf</content>
        <fullScreen>true</fullScreen>
        <aspectRatio>landscape</aspectRatio>
        <autoOrients>false</autoOrients>
        <visible>true</visible>
        <renderMode>direct</renderMode>
    </initialWindow>
    <icon>
        <image29x29>icons\Icon_29.png</image29x29>
        <image57x57>icons\Icon_57.png</image57x57>
        <image512x512>icons\Icon_512.png</image512x512>

    </icon>
<android>
  <manifestAdditions>
          <![CDATA[
              <manifest android:installLocation="auto">
            <uses-permission android:name="android.permission.INTERNET"/>
			<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

                  <supports-screens android:normalScreens="true"/>
<!--                  <uses-feature android:required="true" android:name="android.hardware.touchscreen.multitouch"/>-->
                  <application android:enabled="true">
                      <activity android:excludeFromRecents="false">
                          <intent-filter>
                        <action android:name="android.intent.action.MAIN"/>
                        <category android:name="android.intent.category.LAUNCHER"/>
                          </intent-filter>
                      </activity>
                  </application>
              </manifest>
          ]]>
      </manifestAdditions>
    </android>
	<iPhone>
		<InfoAdditions>
			<![CDATA[
				<key>UIDeviceFamily</key>
				<array>
					<string>1</string>
					<string>2</string>
				</array>
				<key>UIViewControllerBasedStatusBarAppearance</key>
					<false/>
			]]>
		</InfoAdditions>
		<requestedDisplayResolution>high</requestedDisplayResolution>
	</iPhone>
</application>


type: app

config: flex

output: target/Main.swf

value: true

value: false


code:
<project name="Corruption of Champions Build Script" default="testAndRelease">

 <!-- Create a environment variable FLEX_HOME that points to the flex SDK -->
 <property environment="env" />
 <property name="FLEX_HOME" location="${env.FLEX_HOME}" />

 <property name="main.src.dir" value="${basedir}/classes"/>
 <property name="test.src.dir" value="${basedir}/test"/>
 <property name="lib.dir" value="${basedir}/lib/bin"/>
 <property name="build.dir" value="${basedir}/target"/>
 <property name="report.dir" value="${build.dir}/report"/>
 <property name="test.file" value="${build.dir}/CoC-test.swf"/>

	<!-- Setup Flex and FlexUnit ant tasks -->
	<!-- You can set this directly so mxmlc will work correctly, or set FLEX_HOME as an environment variable and use as below -->
	<taskdef resource="flexTasks.tasks" classpath="${FLEX_HOME}/ant/lib/flexTasks.jar" />
	<taskdef resource="flexUnitTasks.tasks">
	   <classpath>
	      <fileset dir="${lib.dir}/flexunit">
	         <include name="flexUnitTasks*.jar" />
	      </fileset>
	   </classpath>
	</taskdef>

   <!-- delete and create the DEPLOY dir again -->
   <target name="init">
      <delete dir="${build.dir}" />
      <mkdir dir="${build.dir}" />
	  <mkdir dir="${report.dir}" />
   </target>

	<macrodef name="build-game-binary">
		<attribute name="debug-flag"/>
		<attribute name="release-flag"/>
		<attribute name="binary-name"/>
		<sequential>
			  <!-- build the game binary -->
		      <mxmlc file="${main.src.dir}/classes/CoC.as" output="${build.dir}/@{binary-name}" static-rsls="true">
		         <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/>
		         <source-path path-element="${FLEX_HOME}/frameworks"/>
				 <source-path path-element="${main.src.dir}/"/>
		         <compiler.debug>@{debug-flag}</compiler.debug>
		        <library-path dir="${lib.dir}" includes="*.swc" append="true"/>
				<define name="CONFIG::release" value="@{release-flag}"/>
				<define name="CONFIG::debug" value="@{debug-flag}"/>
				<define name="CONFIG::AIR" value="false"/>
				<define name="CONFIG::STANDALONE" value="true"/>
		      </mxmlc>
		</sequential>
	</macrodef>

   <target name="release" depends="init" description="Build with release flags">
      <build-game-binary debug-flag="false" release-flag="true" binary-name="CoC-release.swf"></build-game-binary>
   </target>

   <target name="debug" depends="init" description="Build with debug flags">
   		<build-game-binary debug-flag="true" release-flag="false" binary-name="CoC-debug.swf"></build-game-binary>
   </target>

	<macrodef name="build-unit-tests">
		<attribute name="debug-flag"/>
		<attribute name="release-flag"/>
		<attribute name="test-runner" default="${test.src.dir}/TestRunner.mxml"/>

		<sequential>
			<!-- build the unit test binary -->
			<mxmlc file="@{test-runner}" output="${test.file}" static-rsls="true">
				<load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/>
				<source-path path-element="${FLEX_HOME}/frameworks"/>
				<source-path path-element="${main.src.dir}/"/>
				<source-path path-element="${test.src.dir}"/>

				<compiler.debug>true</compiler.debug>
				<library-path dir="${lib.dir}" includes="*.swc" append="true"/>
				<library-path dir="${lib.dir}/flexunit" includes="*.swc" append="true"/>
				<define name="CONFIG::release" value="@{release-flag}"/>
				<define name="CONFIG::debug" value="@{debug-flag}"/>
				<define name="CONFIG::AIR" value="false"/>
				<define name="CONFIG::STANDALONE" value="true"/>
			</mxmlc>
		</sequential>
	</macrodef>

   <target name="test-build-debug" depends="init" description="Build the swf with test libraries and the debug flag">
      <build-unit-tests debug-flag="true" release-flag="false">
	  </build-unit-tests>
   </target>

   <target name="test-build-release" depends="init" description="Build the swf with test libraries and without the debug flag">
      <build-unit-tests debug-flag="false" release-flag="true">
	  </build-unit-tests>
   </target>

   <target name="all" depends="init,release,debug,test" description="Build all swf versions">
   </target>

   <target name="testAndRelease" depends="init,test,release" description="Run tests and build release">
   </target>

   <target name="test" depends="test-debug" description="Run the unit tests and create a HTML report">
   </target>

   <target name="test-single" depends="init" description="Run a single unit test or suit and create a HTML report. Specify the FQN of the class with -Dtestclass=">
		<property name="single-runner"  value="${test.src.dir}/SingleRunner.mxml"/>

		<!-- Copy the original test target for all tests... -->
		<copy file="${test.src.dir}/TestRunner.mxml" tofile="${single-runner}" overwrite="true"/>

		<!-- And rewrite the import and class to run to the target test or suite -->
		<replace file="${single-runner}" token="AllTestsSuit" value="${testclass}"/>

		<build-unit-tests debug-flag="true" release-flag="false" test-runner="${single-runner}">
		</build-unit-tests>

		<run-unit-tests></run-unit-tests>
   </target>

   	<macrodef name="run-unit-tests">
		<sequential>
			<!-- Execute FlexUnit tests and publish reports -->
			<flexunit
				workingDir="${build.dir}"
				toDir="${report.dir}"
				haltonfailure="false"
				failureproperty="flexunit.failure"
				verbose="true"
				swf="${test.file}"
				localTrusted="true">
			  <source dir="${main.src.dir}/" />
			  <library dir="${lib.dir}" />
		   </flexunit>

			<!-- Generate readable JUnit-style reports -->
			<junitreport todir="${report.dir}">
				<fileset dir="${report.dir}">
					<include name="TEST-*.xml" />
				</fileset>
				<report format="frames" todir="${report.dir}/html" />
			</junitreport>

			<!-- Fail the build while still generating a report -->
			<!-- From http://blog.yoz.sk/2012/04/quick-tip-flexunit-and-junitreport-and-haltonfailure/-->
			<fail if="flexunit.failure" message="Unit test(s) failed. See reports!"/>
		</sequential>
	</macrodef>

   	<target name="test-debug" depends="test-build-debug" description="Run the unit tests and create a HTML report">
		<run-unit-tests></run-unit-tests>
	</target>

	<target name="test-release" depends="test-build-release" description="Run the unit tests and create a HTML report">
		<run-unit-tests></run-unit-tests>
	</target>
</project>


code:
package classes
{
	import classes.*
	import classes.BaseContent;
	import classes.GlobalFlags.kACHIEVEMENTS;
	import classes.GlobalFlags.kFLAGS;
	import classes.GlobalFlags.kGAMECLASS;

	public class Achievements extends BaseContent
	{
		public var achievementsEarned:int = 0;
		public var achievementsTotal:int = 0;

		public function Achievements() {}

		private function addAchievement(title:String, achievement:*, descLocked:String, descUnlocked:String = "", isShadow:Boolean = false):void {
			//If not specified, default to the locked description.
			if (descUnlocked == "") descUnlocked = descLocked;
			if (isShadow && achievements[achievement] <= 0) return;
			//Set text if unlocked or not.
			var stringToPut:String = "";
			stringToPut += "
" + title + ": ";
			if (achievements[achievement] > 0) {
				stringToPut += "Unlocked - " + descUnlocked;
				achievementsEarned++;
			}
			else {
				stringToPut += "Locked - " + descLocked;
			}
			//Shadow flair? Add that.
			if (isShadow) {
				stringToPut += " - Shadow Achievement";
			}
			stringToPut += "
";
			outputText(stringToPut);
			achievementsTotal++;
		}

		private function titleAchievementSection(title:String):void {
			outputText("\n" + title + "\n");
		}

		public function achievementsScreen():void {
			game.mainMenu.hideMainMenu();
			achievementsEarned = 0;
			achievementsTotal = 0;
			clearOutput();
			game.displayHeader("Achievements");
			outputText("Note: Some achievements are contradictory and may require multiple playthroughs to obtain every achievement.\n");
			titleAchievementSection("Storyline"); //4 achievements
			addAchievement("Newcomer", kACHIEVEMENTS.STORY_NEWCOMER, "Enter the realm of Mareth.");
			addAchievement("Marae's Savior", kACHIEVEMENTS.STORY_MARAE_SAVIOR, "Complete Marae's quest.");
			addAchievement("Revenge at Last", kACHIEVEMENTS.STORY_ZETAZ_REVENGE, "Defeat Zetaz and obtain the map.");
			addAchievement("Demon Slayer", kACHIEVEMENTS.STORY_FINALBOSS, "Defeat Lethice.");

			titleAchievementSection("Zones");
			addAchievement("Explorer", kACHIEVEMENTS.ZONE_EXPLORER, "Discover every zone.");
			addAchievement("Sightseer", kACHIEVEMENTS.ZONE_SIGHTSEER, "Discover every place.");
			addAchievement("Where am I?", kACHIEVEMENTS.ZONE_WHERE_AM_I, "Explore for the first time.");
			addAchievement("Forest Ranger", kACHIEVEMENTS.ZONE_FOREST_RANGER, "Explore the forest 100 times.");
			addAchievement("Vacationer", kACHIEVEMENTS.ZONE_VACATIONER, "Explore the lake 100 times.");
			addAchievement("Dehydrated", kACHIEVEMENTS.ZONE_DEHYDRATED, "Explore the desert 100 times.");
			addAchievement("Mountaineer", kACHIEVEMENTS.ZONE_MOUNTAINEER, "Explore the mountains 100 times.");
			addAchievement("Rolling Hills", kACHIEVEMENTS.ZONE_ROLLING_HILLS, "Explore the plains 100 times.");
			addAchievement("Wet All Over", kACHIEVEMENTS.ZONE_WET_ALL_OVER, "Explore the swamp 100 times.");
			addAchievement("We Need to Go Deeper", kACHIEVEMENTS.ZONE_WE_NEED_TO_GO_DEEPER, "Explore the deepwoods 100 times.");
			addAchievement("Light-headed", kACHIEVEMENTS.ZONE_LIGHT_HEADED, "Explore the high mountains 100 times.");
			addAchievement("All Murky", kACHIEVEMENTS.ZONE_ALL_MURKY, "Explore the bog 100 times.");
			addAchievement("Frozen", kACHIEVEMENTS.ZONE_FROZEN, "Explore the glacial rift 100 times.");
			addAchievement("Roasted", kACHIEVEMENTS.ZONE_ROASTED, "Explore the volcanic crag 100 times.");
			addAchievement("Archaeologist", kACHIEVEMENTS.ZONE_ARCHAEOLOGIST, "Explore the town ruins 15 times.");
			addAchievement("Farmer", kACHIEVEMENTS.ZONE_FARMER, "Visit Whitney's farm 30 times.");
			addAchievement("Sea-Legs", kACHIEVEMENTS.ZONE_SEA_LEGS, "Use the lake boat 15 times.");

			titleAchievementSection("Levels");
			addAchievement("Level up!", kACHIEVEMENTS.LEVEL_LEVEL_UP, "Get to level 2.");
			addAchievement("Novice", kACHIEVEMENTS.LEVEL_NOVICE, "Get to level 5.");
			addAchievement("Apprentice", kACHIEVEMENTS.LEVEL_APPRENTICE, "Get to level 10.");
			addAchievement("Journeyman", kACHIEVEMENTS.LEVEL_JOURNEYMAN, "Get to level 15.");
			addAchievement("Expert", kACHIEVEMENTS.LEVEL_EXPERT, "Get to level 20.");
			addAchievement("Master", kACHIEVEMENTS.LEVEL_MASTER, "Get to level 30.");
			addAchievement("Grandmaster", kACHIEVEMENTS.LEVEL_GRANDMASTER, "Get to level 45.");
			addAchievement("Illustrious", kACHIEVEMENTS.LEVEL_ILLUSTRIOUS, "Get to level 60.");
			addAchievement("Overlord", kACHIEVEMENTS.LEVEL_OVERLORD, "Get to level 90.");
			addAchievement("Are you a god?", kACHIEVEMENTS.LEVEL_ARE_YOU_A_GOD, "Get to level 120.", "Get to level 120.", true);

			titleAchievementSection("Population"); //10 achievements
			addAchievement("My First Companion", kACHIEVEMENTS.POPULATION_FIRST, "Have a camp population of 2.");
			addAchievement("Hamlet", kACHIEVEMENTS.POPULATION_HAMLET, "Have a camp population of 5.");
			addAchievement("Village", kACHIEVEMENTS.POPULATION_VILLAGE, "Have a camp population of 10.");
			addAchievement("Town", kACHIEVEMENTS.POPULATION_TOWN, "Have a camp population of 25.");
			addAchievement("City", kACHIEVEMENTS.POPULATION_CITY, "Have a camp population of 100.");
			addAchievement("Metropolis", kACHIEVEMENTS.POPULATION_METROPOLIS, "Have a camp population of 250.");
			addAchievement("Megalopolis", kACHIEVEMENTS.POPULATION_MEGALOPOLIS, "Have a camp population of 500.");
			addAchievement("City-State", kACHIEVEMENTS.POPULATION_CITY_STATE, "Have a camp population of 1,000.", "", true);
			addAchievement("Kingdom", kACHIEVEMENTS.POPULATION_KINGDOM, "Have a camp population of 2,500.", "", true);
			addAchievement("Empire", kACHIEVEMENTS.POPULATION_EMPIRE, "Have a camp population of 5,000.", "", true);

			titleAchievementSection("Time");
			addAchievement("It's been a month", kACHIEVEMENTS.TIME_MONTH, "Get to day 30.");
			addAchievement("Half-year", kACHIEVEMENTS.TIME_HALF_YEAR, "Get to day 180.");
			addAchievement("Annual", kACHIEVEMENTS.TIME_ANNUAL, "Get to day 365. (1 year)");
			addAchievement("Biennial", kACHIEVEMENTS.TIME_BIENNIAL, "Get to day 730. (2 years)");
			addAchievement("Triennial", kACHIEVEMENTS.TIME_TRIENNIAL, "Get to day 1,095. (3 years)");
			addAchievement("In for the long haul", kACHIEVEMENTS.TIME_LONG_HAUL, "Get to day 1,825. (5 years)");
			addAchievement("Decade", kACHIEVEMENTS.TIME_DECADE, "Get to day 3,650. (10 years)", "Get to day 3,650. (10 years | Okay, you can stop now.)", true);
			addAchievement("Century", kACHIEVEMENTS.TIME_CENTURY, "Get to day 36,500. (100 years)", "Get to day 36,500. (100 years | It's time to stop playing. Go outside.)", true);
			addAchievement("Time Traveller", kACHIEVEMENTS.TIME_TRAVELLER, "Get to day 36,500+ by tampering with save", "", true);

			titleAchievementSection("Dungeons"); //10 achievements
			addAchievement("Delver", kACHIEVEMENTS.DUNGEON_DELVER, "Clear any dungeon.");
			addAchievement("Delver Apprentice", kACHIEVEMENTS.DUNGEON_DELVER, "Clear 3 dungeons.");
			addAchievement("Delver Master", kACHIEVEMENTS.DUNGEON_DELVER_MASTER, "Clear every dungeon in the game.");
			addAchievement("Shut Down Everything", kACHIEVEMENTS.DUNGEON_SHUT_DOWN_EVERYTHING, "Clear the Factory.");
			addAchievement("You're in Deep", kACHIEVEMENTS.DUNGEON_YOURE_IN_DEEP, "Fully clear the Deep Cave.");
			addAchievement("End of Reign", kACHIEVEMENTS.DUNGEON_END_OF_REIGN, "Fully clear the Lethice Stronghold.");
			addAchievement("Friend of the Sand Witches", kACHIEVEMENTS.DUNGEON_SAND_WITCH_FRIEND, "Fully clear the Desert Cave.");
			addAchievement("Fall of the Phoenix", kACHIEVEMENTS.DUNGEON_PHOENIX_FALL, "Clear the Tower of the Phoenix.");
			addAchievement("Accomplice", kACHIEVEMENTS.DUNGEON_ACCOMPLICE, "Watch Helia kill the Harpy Queen.", "", true);
			addAchievement("Extremely Celibate Delver", kACHIEVEMENTS.DUNGEON_EXTREMELY_CHASTE_DELVER, "Complete Phoenix Tower without ever orgasming from the beginning.", "", true);
			addAchievement("A Little Hope", kACHIEVEMENTS.DUNGEON_A_LITTLE_HOPE, "Clear the accursed Manor.");
			addAchievement("We Are the Flame", kACHIEVEMENTS.DUNGEON_WE_ARE_THE_FLAME, "Clear Tower of Deception.");
			addAchievement("A Meeting of the Minds", kACHIEVEMENTS.DUNGEON_MEETING_OF_THE_MINDS, "Climb the Pillar of Apotheosis, and best a wizard in a duel.");

			titleAchievementSection("Fashion");
			addAchievement("Wannabe Wizard", kACHIEVEMENTS.FASHION_WANNABE_WIZARD, "Equip wizard robes and magic staff.");
			addAchievement("Cosplayer", kACHIEVEMENTS.FASHION_COSPLAYER, "Wear 10 different clothings/armors.");
			addAchievement("Dominatrix", kACHIEVEMENTS.FASHION_DOMINATRIX, "Wear any form of kinky clothing and wield any form of whip.");
			addAchievement("Going Commando", kACHIEVEMENTS.FASHION_GOING_COMMANDO, "Wear no undergarments while wearing any clothes or armours.");
			addAchievement("Bling Bling", kACHIEVEMENTS.FASHION_BLING_BLING, "Wear jewelry that is valued over 1,000 gems.");

			titleAchievementSection("Wealth");
			addAchievement("Rich", kACHIEVEMENTS.WEALTH_RICH, "Have 1,000 gems.");
			addAchievement("Hoarder", kACHIEVEMENTS.WEALTH_HOARDER, "Have 10,000 gems.");
			addAchievement("Gem Vault", kACHIEVEMENTS.WEALTH_GEM_VAULT, "Have 100,000 gems.");
			addAchievement("Millionaire", kACHIEVEMENTS.WEALTH_MILLIONAIRE, "Have 1,000,000 gems.", "Have 1,000,000 gems. What are you going to spend these gems on?", true);
			//addAchievement("Item Vault", kACHIEVEMENTS.WEALTH_ITEM_VAULT, "Fill up your inventory, chest, jewelry box, dresser, and all racks.");

			titleAchievementSection("Combat");
			addAchievement("Wizard", kACHIEVEMENTS.COMBAT_WIZARD, "Learn all black and white spells from spell books.");
			addAchievement("Cum Cannon", kACHIEVEMENTS.COMBAT_CUM_CANNON, "Cum in the middle of battle.");
			addAchievement("How Do I Shot Web?", kACHIEVEMENTS.COMBAT_SHOT_WEB, "Fire your webbings at your opponent.");
			addAchievement("Pain", kACHIEVEMENTS.COMBAT_PAIN, "Deal 50 damage in one hit.");
			addAchievement("Fractured Limbs", kACHIEVEMENTS.COMBAT_FRACTURED_LIMBS, "Deal 100 damage in one hit.");
			addAchievement("Broken Bones", kACHIEVEMENTS.COMBAT_BROKEN_BONES, "Deal 250 damage in one hit.");
			addAchievement("Overkill", kACHIEVEMENTS.COMBAT_OVERKILL, "Deal 500 damage in one hit."); //Actually POSSIBLE
			addAchievement("Damage Sponge", kACHIEVEMENTS.COMBAT_DAMAGE_SPONGE, "Take a total of 10,000 damage.");
			addAchievement("Bloodletter", kACHIEVEMENTS.COMBAT_BLOOD_LETTER, "Deal a total of 50,000 damage.");
			addAchievement("Revengeance", kACHIEVEMENTS.COMBAT_REVENGEANCE, "Defeat an enemy with a katana counter.");
			addAchievement("Night Sun", kACHIEVEMENTS.NIGHT_SUN, "Defeat a higher level enemy with Supernova.", "", true);

			titleAchievementSection("Seasonal Events"); //10 achievements
			addAchievement("Egg Hunter", kACHIEVEMENTS.HOLIDAY_EGG_HUNTER, "Find 10 eggs as random drops during Easter event.", "", true);
			addAchievement("Happy Birthday, Helia!", kACHIEVEMENTS.HOLIDAY_HELIA_BIRTHDAY, "Participate into Helia's birthday event. (August)", "", true);
			addAchievement("Thankslutting", kACHIEVEMENTS.HOLIDAY_THANKSGIVING_I, "Meet the Piggy-Slut (Thanksgiving)", "", true);
			addAchievement("Gobble Gobble", kACHIEVEMENTS.HOLIDAY_THANKSGIVING_II, "Meet the Cockgobbler (Thanksgiving)", "", true);
			addAchievement("Pump-kin-kin-kin", kACHIEVEMENTS.HOLIDAY_HALLOWEEN_I, "Find the pumpkin (Halloween)", "", true);
			addAchievement("Fera's Wonderland", kACHIEVEMENTS.HOLIDAY_HALLOWEEN_II, "Free Fera/Visit her wonderland (Halloween)", "", true);
			addAchievement("Naughty or Nice", kACHIEVEMENTS.HOLIDAY_CHRISTMAS_I, "Meet the X-mas Elf (Christmas)", "", true);
			addAchievement("A Christmas Carol", kACHIEVEMENTS.HOLIDAY_CHRISTMAS_II, "Complete Carol's mini-quest (Christmas)", "", true);
			addAchievement("The Lovable Snowman", kACHIEVEMENTS.HOLIDAY_CHRISTMAS_III, "Have Nieve as lover (Christmas/Winter)", "", true);
			addAchievement("Will You Be My Valentine?", kACHIEVEMENTS.HOLIDAY_VALENTINE, "Visit the Wet Bitch during Valentine's day. (Valentine)", "", true);

			titleAchievementSection("Survival/Realistic Mode");
			addAchievement("Tastes Like Chicken", kACHIEVEMENTS.REALISTIC_TASTES_LIKE_CHICKEN, "Refill your hunger for the first time.");
			addAchievement("Champion Needs Food Badly", kACHIEVEMENTS.REALISTIC_CHAMPION_NEEDS_FOOD, "Instantly refill your hunger from 0 to 100 in one go.");
			//addAchievement("Gourmand", kACHIEVEMENTS.REALISTIC_GOURMAND, "Refill hunger from 5 different sources.");
			addAchievement("Glutton", kACHIEVEMENTS.REALISTIC_GLUTTON, "Eat while hunger is above 90.");
			addAchievement("Fasting", kACHIEVEMENTS.REALISTIC_FASTING, "Keep hunger below 25 for a week but don't let it reach 0.");

			titleAchievementSection("Challenges");
			addAchievement("The Ultimate Noob", kACHIEVEMENTS.CHALLENGE_ULTIMATE_NOOB, "Defeat Lethice at level 1.");
			addAchievement("The Mundane Champion", kACHIEVEMENTS.CHALLENGE_ULTIMATE_MUNDANE, "Defeat Lethice without having the knowledge of any spells.");
			addAchievement("The Celibate Hero", kACHIEVEMENTS.CHALLENGE_ULTIMATE_CELIBATE, "Finish the main story without ever having sex or masturbating.");
			addAchievement("Pacifist", kACHIEVEMENTS.CHALLENGE_PACIFIST, "Finish the main storyline without beating and killing anybody.", "Finish the main storyline without beating and killing anybody. Frisk would be so proud of you.");
			addAchievement("Speedrunner", kACHIEVEMENTS.CHALLENGE_SPEEDRUN, "Finish the main story within 30 days or less. Must not be on New Game+.");

			titleAchievementSection("General");
			addAchievement("Portal Defender", kACHIEVEMENTS.GENERAL_PORTAL_DEFENDER, "Defeat 25 demons and sleep 10 times.");
			addAchievement("Bad Ender", kACHIEVEMENTS.GENERAL_BAD_ENDER, "Cause or witness 3 Bad Ends to various NPCs.");
			addAchievement("Game Over!", kACHIEVEMENTS.GENERAL_GAME_OVER, "Get a Bad End.");
			addAchievement("Urine Trouble", kACHIEVEMENTS.GENERAL_URINE_TROUBLE, "Urinate at least once in the realm of Mareth.");
			addAchievement("Smashed", kACHIEVEMENTS.GENERAL_SMASHED, "Get so drunk that you end up urinating.", "", true);
			addAchievement("What's Happening to Me?", kACHIEVEMENTS.GENERAL_WHATS_HAPPENING_TO_ME, "Transform for the first time.");
			addAchievement("Transformer", kACHIEVEMENTS.GENERAL_TRANSFORMER, "Transform 10 times.");
			addAchievement("Shapeshifty", kACHIEVEMENTS.GENERAL_SHAPESHIFTY, "Transform 25 times.");
			addAchievement("Fapfapfap", kACHIEVEMENTS.GENERAL_FAPFAPFAP, "Masturbate for the first time.");
			addAchievement("Faptastic", kACHIEVEMENTS.GENERAL_FAPTASTIC, "Masturbate 10 times.");
			addAchievement("Master-bation", kACHIEVEMENTS.GENERAL_FAPSTER, "Masturbate 100 times.");

			addAchievement("Helspawn", kACHIEVEMENTS.GENERAL_HELSPAWN, "Have Helia give birth to Helspawn and raise her until adulthood.");
			addAchievement("Goo Armor", kACHIEVEMENTS.GENERAL_GOO_ARMOR, "Wear the goo armor.");
			addAchievement("Urta's True Lover", kACHIEVEMENTS.GENERAL_URTA_TRUE_LOVER, "Complete Urta's infertility quest then have her give birth to a baby fox.", "", true);
			addAchievement("Dress-tacular", kACHIEVEMENTS.GENERAL_DRESSTACULAR, "Give Rubi every outfit available.");
			addAchievement("Godslayer", kACHIEVEMENTS.GENERAL_GODSLAYER, "Defeat corrupted Marae.", "", true);
			addAchievement("Follow the Leader", kACHIEVEMENTS.GENERAL_FOLLOW_THE_LEADER, "Get every follower in the game.");
			addAchievement("Gotta Love 'Em All", kACHIEVEMENTS.GENERAL_GOTTA_LOVE_THEM_ALL, "Get every lover in the game. (Nieve optional)");
			addAchievement("Meet Your " + player.mf("Master", "Mistress"), kACHIEVEMENTS.GENERAL_MEET_YOUR_MASTER, "Get every slave in the game. (Corrupt Jojo & Amily and Bimbo Sophie optional.)");
			addAchievement("Slaver", kACHIEVEMENTS.GENERAL_MEET_YOUR_MASTER_TRUE, "Get every slave in the game, including corrupt Jojo and Amily, and Bimbo Sophie.", "", true);
			addAchievement("All Your People are Belong to Me", kACHIEVEMENTS.GENERAL_ALL_UR_PPLZ_R_BLNG_2_ME, "Obtain every follower, lover, and slave. (Excluding mutual exclusivity)");
			addAchievement("Scholar", kACHIEVEMENTS.GENERAL_SCHOLAR, "Fill out all codex entries available in the game.");
			addAchievement("Freeloader", kACHIEVEMENTS.GENERAL_FREELOADER, "Visit the Kitsune's mansion 3 times.");
			addAchievement("Schizophrenic", kACHIEVEMENTS.GENERAL_SCHIZO, "Go between pure and corrupt 4 times. (Threshold of 20 and 80 corruption)");
			addAchievement("Clean Slate", kACHIEVEMENTS.GENERAL_CLEAN_SLATE, "Go from 100 corruption to zero for the first time.");
			addAchievement("Perky", kACHIEVEMENTS.GENERAL_PERKY, "Have at least 20 perks.");
			addAchievement("Super Perky", kACHIEVEMENTS.GENERAL_SUPER_PERKY, "Have at least 35 perks.");
			addAchievement("Ultra Perky", kACHIEVEMENTS.GENERAL_ULTRA_PERKY, "Have at least 50 perks.");
			addAchievement("Jack of All Trades", kACHIEVEMENTS.GENERAL_STATS_50, "Have at least 50 of each stat. (Libido, sensitivity, corruption optional)");
			addAchievement("Incredible Stats", kACHIEVEMENTS.GENERAL_STATS_100, "Have at least 100 of each stat. (Libido, sensitivity, corruption optional)");
			addAchievement("Like Chuck Norris", kACHIEVEMENTS.GENERAL_LIKE_CHUCK_NORRIS, "Defeat the Frost Giant without any equipment.", "Defeat the Frost Giant without any equipment. Way to be a badass!");
			addAchievement("Tentacle Beast Slayer", kACHIEVEMENTS.GENERAL_TENTACLE_BEAST_SLAYER, "Slay your first Tentacle Beast.");
			addAchievement("Hammer Time", kACHIEVEMENTS.GENERAL_HAMMER_TIME, "Buy a total of 300 nails.");
			addAchievement("Nail Scavenger", kACHIEVEMENTS.GENERAL_NAIL_SCAVENGER, "Scavenge a total of 200 nails from the library wreckage");
			addAchievement("I'm No Lumberjack", kACHIEVEMENTS.GENERAL_IM_NO_LUMBERJACK, "Buy a total of 100 wood.");
			addAchievement("Deforester", kACHIEVEMENTS.GENERAL_DEFORESTER, "Cut down 100 wood pieces.");
			addAchievement("Yabba Dabba Doo", kACHIEVEMENTS.GENERAL_YABBA_DABBA_DOO, "Buy a total of 100 stones.");
			addAchievement("AntWorks", kACHIEVEMENTS.GENERAL_ANTWORKS, "Gather a total of 200 stones with Phylla help.");
			addAchievement("Home Sweet Home", kACHIEVEMENTS.GENERAL_HOME_SWEET_HOME, "Finish the cabin and complete it with furnishings.");
			addAchievement("Getaway", kACHIEVEMENTS.GENERAL_GETAWAY, "Spend the night outside your camp.");
			addAchievement("My Tent's (not) Better Than Yours", kACHIEVEMENTS.GENERAL_MY_TENT_NOT_BETTER, "Sleep in Arian's tent.");
			addAchievement("Divine Intervention", kACHIEVEMENTS.GENERAL_MINERVA_PURIFICATION, "Complete Minerva's purification process.", "", true);
			addAchievement("Fencer", kACHIEVEMENTS.GENERAL_FENCER, "Complete rapier training from Raphael.", "", true);
			addAchievement("Now You're Fucking With Portals", kACHIEVEMENTS.GENERAL_FUCK_WITH_PORTALS, "Engage in portal sex with Ceraph.", "", true);
			addAchievement("Getting Wood", kACHIEVEMENTS.GENERAL_GETTING_WOOD, "Punch a tree until wood falls out... Wait, what?", "", true);
			addAchievement("Dick Banisher", kACHIEVEMENTS.GENERAL_DICK_BANISHER, "Remove cocks from at least three dedickable NPCs. Don't you think they'll miss having their own cocks?", "", true);
			addAchievement("You Bastard", kACHIEVEMENTS.GENERAL_YOU_BASTARD, "Perform something only someone who's evil would do. Like corrupting NPCs or removing dick from at least 7 dedickable NPCs.", "", true);
			addAchievement("Up to Eleven", kACHIEVEMENTS.GENERAL_UP_TO_11, "Take your height up to 11 feet.");
			addAchievement("Off With Her Head!", kACHIEVEMENTS.GENERAL_OFF_WITH_HER_HEAD, "You've managed to behead Lethice and show her head to the demons!", "", true);
			addAchievement("NOOOOOOOOOOOO!", kACHIEVEMENTS.GENERAL_NOOOOOOO, "You've managed to kill yourself before Lethice takes you as her slave.", "", true);
			addAchievement("Make Mareth Great Again", kACHIEVEMENTS.GENERAL_MAKE_MARETH_GREAT_AGAIN, "Build a wall around your camp to defend from those pesky imps.");
			addAchievement("Terracotta Impy", kACHIEVEMENTS.GENERAL_TERRACOTTA_IMPY, "You've placed 100 imp statues around your camp wall. No, bassy. Bad bassy! Baaad Mr. Bassy!!!", "", true);
			addAchievement("Kaizo Trap", kACHIEVEMENTS.GENERAL_KAIZO_TRAP, "Fall victim to a Kaizo Trap.", "", true);
			addAchievement("The Hunter Becomes the Hunted", kACHIEVEMENTS.GENERAL_HUNTER_IS_HUNTED, "Turn the tables against the Erlking.");
			addAchievement("Allahu Akbal", kACHIEVEMENTS.GENERAL_ALLAHU_AKBAL, "Submit to Akbal until you receive the associated perks.");
			addAchievement("Dining In", kACHIEVEMENTS.GENERAL_DINING_IN, "Eat any food at The Black Cock.");
			//addAchievement("Prisoner", kACHIEVEMENTS.GENERAL_PRISONER, "Get captured and sent to the Prison.", "", true);
			addAchievement("Jojo's Bizarre Adventure", kACHIEVEMENTS.GENERAL_JOJOS_BIZARRE_ADVENTURE, "Have Jojo in your camp, through either methods.");

			addAchievement("Parasite Queen", kACHIEVEMENTS.GENERAL_PARASITE_QUEEN, "Host a massive amount of Eel Parasites.");
			addAchievement("Nephila Queen", kACHIEVEMENTS.GENERAL_NEPHILA_QUEEN, "Host a massive amount of Nephila Parasites.");
			addAchievement("Nephila Arch Queen", kACHIEVEMENTS.GENERAL_NEPHILA_ARCH_QUEEN, "Achieve Nephila Arch Queendom.");
            addAchievement("Lord Shoggoth Postulate", kACHIEVEMENTS.LORD_BRITISH_POSTULATE, "You just beat an Eldritch abomination, proving that OCA has a very poor grasp of game balancing.","",true);
            addAchievement("Alexander the Great", kACHIEVEMENTS.ALEXANDER_THE_GREAT, "Achieve an impetuous style.","Your style is impetuous!");
			menu();
			addButton(0, "" + achievementsEarned + "/" + achievementsTotal + " earned", game.doNothing).hint("This is how many achievements you have obtained in the game so far.", "Total Achievements Earned");
			addButton(14, "Back", game.mainMenu.mainMenu);
		}

	}

}