/// <reference path="../ContentMarker.ts" />
/**
 * CHEAT SHEET FOR FUCKING MARKERS
 *
 * Mandatory if present - These may all appear at once or separatedly! Separated is always rarer, so you can get away with less descriptions (Most enemies will start and finish in a single turn)
 * FuckingState.CUM_START
 * FuckingState.CUMMING
 * FuckingState.CUM_END
 *
 * Mandatory if present - these always accompany the ones above, they never appear without at least one of the ones above. They might be both at once, but very few enemies do that so always check the enemy first (both at once = messy)
 * FuckingState.CUM_INSIDE
 * FuckingState.CUM_OUTSIDE
 *
 * Mandatory if present - These may all appear at once or separatedly! Multiples is always rarer, so you can get away with less descriptions. (Only a special enemy would both insert and finish and remove in the same turn)
 * FuckingState.PENETRATING
 * FuckingState.REMOVING
 *
 * Mandatory if present - Only one of these is ever active
 * FuckeePosition.STANDING
 * FuckeePosition.ALLFOURS
 *
 * Optional - Only one of these is ever active
 * FuckingStyle.GENTLE
 * FuckingStyle.ROUGH
 *
 *
 * TO MATCH ANIMATIONS:
 * - Anything fucking the crotch does so from BEHIND. Only ignore this if you know for a fact that there are special animations, and then all the other descriptions must follow.
 *
 * Examples:
 * {
 *     Fucking Unit: Orc is Fucker, Player is Fuckee, Orc Penis is Stick, Player Vagina is Hole, Markers: FuckingStyle.GENTLE - FuckeePosition.STANDING - FuckerPosition.STANDINGFRONT
 * }
 */

class FuckingStyle extends ContentMarker {
    public static GENTLE = new FuckingStyle("Gentle", false);
    public static ROUGH = new FuckingStyle("Rough", false);
}

class FuckingState extends ContentMarker {
    public static PENETRATING = new FuckingState("Penetration Start", true);
    public static REMOVING = new FuckingState("Removing Stick", true);
    public static SPEEDING_UP = new FuckingState("Speeding up",true);

    public static CUM_START = new FuckingState("Started Cumming", true);
    public static CUMMING = new FuckingState("Cumming", true);
    public static CUM_END = new FuckingState("Finished Cumming", true);

    public static CUM_INSIDE = new FuckingState("Cum Inside", true);
    public static CUM_OUTSIDE = new FuckingState("Cum Outside", true);
}

class FuckeePosition extends ContentMarker {
    public static STANDING = new FuckingStyle("Standing");
    public static ALLFOURS = new FuckingStyle("On All Fours");
}