601 lines
26 KiB
C#
601 lines
26 KiB
C#
|
|
using System.Collections;
|
||
|
|
using System.Collections.Generic;
|
||
|
|
using UnityEngine;
|
||
|
|
|
||
|
|
public class DialogueInteraction
|
||
|
|
{
|
||
|
|
// This is the name of whoever's talking.
|
||
|
|
public string name;
|
||
|
|
// This is the text being spoken.
|
||
|
|
public string text;
|
||
|
|
|
||
|
|
// Set this when you want completing this interaction to unlock something.
|
||
|
|
public Unlockable unlock = Unlockable.None;
|
||
|
|
|
||
|
|
// Reserved index -1 to mean "do not set".
|
||
|
|
// See VNObjectController for canonical lists.
|
||
|
|
public int backgroundIndex { get; set; } = -1;
|
||
|
|
public int audioClipIndex { get; set; } = -1;
|
||
|
|
public int musicClipIndex { get; set; } = -1;
|
||
|
|
public Body body1 { get; set; } = Body.None;
|
||
|
|
public Expression expression1 { get; set; } = Expression.None;
|
||
|
|
|
||
|
|
public int hair1 { get; set; } = 0;
|
||
|
|
public Effect effect1 { get; set; } = Effect.None;
|
||
|
|
public Body body2 { get; set; } = Body.None;
|
||
|
|
|
||
|
|
public int hair2 { get; set; } = 0;
|
||
|
|
public Expression expression2 { get; set; } = Expression.None;
|
||
|
|
public Effect effect2 { get; set; } = Effect.None;
|
||
|
|
public Body body3 { get; set; } = Body.None;
|
||
|
|
|
||
|
|
public int hair3 { get; set; } = 0;
|
||
|
|
public Expression expression3 { get; set; } = Expression.None;
|
||
|
|
public Effect effect3 { get; set; } = Effect.None;
|
||
|
|
public bool removeBody1 { get; set; } = false;
|
||
|
|
public bool removeBody2 { get; set; } = false;
|
||
|
|
public bool removeBody3 { get; set; } = false;
|
||
|
|
|
||
|
|
public DialogueInteraction(string name,
|
||
|
|
string text,
|
||
|
|
Unlockable unlock = Unlockable.None)
|
||
|
|
{
|
||
|
|
this.name = name;
|
||
|
|
this.text = text;
|
||
|
|
this.unlock = unlock;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
public enum Dialogue
|
||
|
|
{
|
||
|
|
None,
|
||
|
|
|
||
|
|
// Default greetings when spinning up the Manager.
|
||
|
|
// One per chosen Side Piece.
|
||
|
|
Manager_Elaine1,
|
||
|
|
Manager_Elaine2,
|
||
|
|
Manager_Elaine3,
|
||
|
|
Manager_Irida1,
|
||
|
|
Manager_Irida2,
|
||
|
|
Manager_Irida3,
|
||
|
|
Manager_Clem1,
|
||
|
|
Manager_Clem2,
|
||
|
|
Manager_Clem3,
|
||
|
|
Manager_Schroder1,
|
||
|
|
Manager_Schroder2,
|
||
|
|
Manager_Schroder3,
|
||
|
|
|
||
|
|
Intro,
|
||
|
|
|
||
|
|
Unlock_Irida,
|
||
|
|
Unlock_Clem,
|
||
|
|
Unlock_Schroder,
|
||
|
|
|
||
|
|
Elaine_PentUp,
|
||
|
|
Elaine_Femdom,
|
||
|
|
Elaine_Foodplay,
|
||
|
|
|
||
|
|
Irida_Anal,
|
||
|
|
Irida_Boobies,
|
||
|
|
Irida_Oral,
|
||
|
|
|
||
|
|
Clem_Confession,
|
||
|
|
Clem_BadGirl,
|
||
|
|
Clem_FFM,
|
||
|
|
Clem_Exploration,
|
||
|
|
|
||
|
|
Schroder_Packing,
|
||
|
|
Schroder_Anal,
|
||
|
|
Schroder_Lapdance,
|
||
|
|
Schroder_Dom
|
||
|
|
}
|
||
|
|
|
||
|
|
public enum Body
|
||
|
|
{
|
||
|
|
None,
|
||
|
|
|
||
|
|
Elaine_Normal,
|
||
|
|
Irida_Normal,
|
||
|
|
Clem_Normal,
|
||
|
|
Schroder_Normal
|
||
|
|
}
|
||
|
|
|
||
|
|
public enum Expression
|
||
|
|
{
|
||
|
|
None,
|
||
|
|
|
||
|
|
Elaine_Normal,
|
||
|
|
Irida_Normal,
|
||
|
|
Clem_Normal,
|
||
|
|
Schroder_Normal,
|
||
|
|
|
||
|
|
Elaine_Smug,
|
||
|
|
}
|
||
|
|
|
||
|
|
public enum Effect
|
||
|
|
{
|
||
|
|
None,
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
public class Description
|
||
|
|
{
|
||
|
|
public string name { get; set; }
|
||
|
|
public string description { get; set; }
|
||
|
|
public string warnings { get; set; }
|
||
|
|
}
|
||
|
|
|
||
|
|
public class VNData
|
||
|
|
{
|
||
|
|
// Manager sets this value before loading SceneViewer.
|
||
|
|
public static Dialogue NextScene = Dialogue.Manager_Elaine1;
|
||
|
|
|
||
|
|
// TODO: Turn this into a set of probability distributions
|
||
|
|
public static Dictionary<Employee, List<Dialogue>> managerScenes =
|
||
|
|
new Dictionary<Employee, List<Dialogue>>() {
|
||
|
|
{ Employee.Elaine, new List<Dialogue>() {
|
||
|
|
Dialogue.Manager_Elaine1,
|
||
|
|
Dialogue.Manager_Elaine2,
|
||
|
|
Dialogue.Manager_Elaine3,
|
||
|
|
} },
|
||
|
|
{ Employee.Clem, new List<Dialogue>() {
|
||
|
|
Dialogue.Manager_Clem1,
|
||
|
|
Dialogue.Manager_Clem2,
|
||
|
|
Dialogue.Manager_Clem3,
|
||
|
|
} },
|
||
|
|
{ Employee.Irida, new List<Dialogue>() {
|
||
|
|
Dialogue.Manager_Irida1,
|
||
|
|
Dialogue.Manager_Irida2,
|
||
|
|
Dialogue.Manager_Irida3,
|
||
|
|
} },
|
||
|
|
{ Employee.Schroder, new List<Dialogue>() {
|
||
|
|
Dialogue.Manager_Schroder1,
|
||
|
|
Dialogue.Manager_Schroder2,
|
||
|
|
Dialogue.Manager_Schroder3,
|
||
|
|
} },
|
||
|
|
};
|
||
|
|
|
||
|
|
public static Dialogue GetRandomManagerScene(Employee employee)
|
||
|
|
{
|
||
|
|
// TODO: Turn this into a set of probability distributions
|
||
|
|
return managerScenes[employee][Random.Range(0, managerScenes[employee].Count)];
|
||
|
|
}
|
||
|
|
|
||
|
|
// Used to tell which dialogue sequences are unlockable.
|
||
|
|
// Mapped via DIALOGUE_DESCRIPTIONS.keys() by the Scene Picker to make a list of unlocked dialogues.
|
||
|
|
public static Dictionary<Dialogue, Unlockable> UNLOCKABLES = new Dictionary<Dialogue, Unlockable>() {
|
||
|
|
{ Dialogue.Unlock_Irida, Unlockable.IridaPlayable },
|
||
|
|
{ Dialogue.Unlock_Clem, Unlockable.ClemPlayable },
|
||
|
|
{ Dialogue.Unlock_Schroder, Unlockable.SchroderPlayable },
|
||
|
|
{ Dialogue.Elaine_PentUp, Unlockable.Dialogue_Elaine_Voyeurism },
|
||
|
|
{ Dialogue.Elaine_Femdom, Unlockable.Dialogue_Elaine_Femdom },
|
||
|
|
{ Dialogue.Elaine_Foodplay, Unlockable.Dialogue_Elaine_Foodplay },
|
||
|
|
{ Dialogue.Irida_Anal, Unlockable.Dialogue_Irida_Anal },
|
||
|
|
{ Dialogue.Irida_Boobies, Unlockable.Dialogue_Irida_Boobies },
|
||
|
|
{ Dialogue.Irida_Oral, Unlockable.Dialogue_Irida_Oral },
|
||
|
|
{ Dialogue.Clem_BadGirl, Unlockable.Dialogue_Clem_BadGirl },
|
||
|
|
{ Dialogue.Clem_Confession, Unlockable.Dialogue_Clem_Confession },
|
||
|
|
{ Dialogue.Clem_FFM, Unlockable.Dialogue_Clem_FFM },
|
||
|
|
{ Dialogue.Clem_Exploration, Unlockable.Dialogue_Clem_Exploration },
|
||
|
|
{ Dialogue.Schroder_Packing, Unlockable.Dialogue_Schroder_Packing },
|
||
|
|
{ Dialogue.Schroder_Anal, Unlockable.Dialogue_Schroder_Anal },
|
||
|
|
{ Dialogue.Schroder_Lapdance, Unlockable.Dialogue_Schroder_Lapdance },
|
||
|
|
{ Dialogue.Schroder_Dom, Unlockable.Dialogue_Schroder_Dom },
|
||
|
|
};
|
||
|
|
|
||
|
|
public static Dictionary<Dialogue, Description> DIALOGUE_DESCRIPTIONS = new Dictionary<Dialogue, Description>() {
|
||
|
|
{ Dialogue.Intro, new Description() {
|
||
|
|
name = "Intro",
|
||
|
|
description = "Elaine convinces you to make a dubious life decision." } },
|
||
|
|
// Unlock sequences.
|
||
|
|
{ Dialogue.Unlock_Irida, new Description() {
|
||
|
|
name = "Irida's Intro",
|
||
|
|
description = "A bombshell beauty suddenly arrives looking for work (and sex)!" } },
|
||
|
|
{ Dialogue.Unlock_Clem, new Description() {
|
||
|
|
name = "Clementine's Intro",
|
||
|
|
description = "What's this kid doing in my office?" } },
|
||
|
|
{ Dialogue.Unlock_Schroder, new Description() {
|
||
|
|
name = "Schroder's Intro",
|
||
|
|
description = "Mysterious, ambiguous, androgynous... whoever they are, their ass is mine!" } },
|
||
|
|
|
||
|
|
// Elaine fetish scenes.
|
||
|
|
{ Dialogue.Elaine_PentUp, new Description() {
|
||
|
|
name = "(Elaine) Off the Clock",
|
||
|
|
description = "Elaine gets caught flickin' it after her shift. Care to join?",
|
||
|
|
warnings = "Voyeurism" } },
|
||
|
|
{ Dialogue.Elaine_Femdom, new Description() {
|
||
|
|
name = "(Elaine) Mommy?",
|
||
|
|
description = "You get piss drunk with Elaine and convince her to be your dom for a night.",
|
||
|
|
warnings = "BDSM" } },
|
||
|
|
{ Dialogue.Elaine_Foodplay, new Description() {
|
||
|
|
name = "(Elaine) The Smorgasboard",
|
||
|
|
description = "You and Elaine explore some food fetishism!",
|
||
|
|
warnings = "Feederism, Oral Fixation" } },
|
||
|
|
|
||
|
|
// Irida fetish scenes.
|
||
|
|
{ Dialogue.Irida_Anal, new Description() {
|
||
|
|
name = "(Irida) Back-end in the Back-room",
|
||
|
|
description = "Irida challenges you to make her cum from just anal.",
|
||
|
|
warnings = "Anal" } },
|
||
|
|
{ Dialogue.Irida_Boobies, new Description() {
|
||
|
|
name = "(Irida) Boobies!",
|
||
|
|
description = "You book Irida for a nice long titty fucking session." } },
|
||
|
|
{ Dialogue.Irida_Oral, new Description() {
|
||
|
|
name = "(Irida) Sloppy Toppy",
|
||
|
|
description = "The bar's about to open, but Irida is nowhere to be seen. Where could she possibly be?" } },
|
||
|
|
|
||
|
|
// Clementine fetish scenes.
|
||
|
|
{ Dialogue.Clem_BadGirl, new Description() {
|
||
|
|
name = "(Clementine) Bad Girl",
|
||
|
|
description = "Clem gets in trouble over an altercation. It's time to teach her a lesson.",
|
||
|
|
warnings = "Petite, BDSM" } },
|
||
|
|
{ Dialogue.Clem_Confession, new Description() {
|
||
|
|
name = "(Clementine) The Confession",
|
||
|
|
description = "Clem comes clean about why she's there. And then you come clean all over her face.",
|
||
|
|
warnings = "Petite, Mental Health" } },
|
||
|
|
{ Dialogue.Clem_FFM, new Description() {
|
||
|
|
name = "(Clementine) FFM or FM (F)",
|
||
|
|
description = "You and Elaine give Clem some \"special training\" to boost her \"performance\".",
|
||
|
|
warnings = "Petite" } },
|
||
|
|
{ Dialogue.Clem_Exploration, new Description() {
|
||
|
|
name = "(Clementine) FFM or FM (F)",
|
||
|
|
description = "Clem needs help experimenting with her erogeneous zones.",
|
||
|
|
warnings = "Petite, Extreme Close-up" } },
|
||
|
|
|
||
|
|
// Schroder fetish scenes
|
||
|
|
{ Dialogue.Schroder_Packing, new Description() {
|
||
|
|
name = "(Schroder) Packing Heat",
|
||
|
|
description = "Just a simple night of love-making with Schroder." } },
|
||
|
|
{ Dialogue.Schroder_Anal, new Description() {
|
||
|
|
name = "(Schroder) The Bet",
|
||
|
|
description = "Schroder vows to win the Whose-Asshole-Tastes-The-Best competition that they made up.",
|
||
|
|
warnings = "Anal" } },
|
||
|
|
{ Dialogue.Schroder_Lapdance, new Description() {
|
||
|
|
name = "(Schroder) Private Showing",
|
||
|
|
description = "You book Schroder for a one-on-one sesh." } },
|
||
|
|
{ Dialogue.Schroder_Dom, new Description() {
|
||
|
|
name = "(Schroder) Role Reversal",
|
||
|
|
description = "Have you ever wondered how it feels to suck dick?" } },
|
||
|
|
};
|
||
|
|
|
||
|
|
public static string GetDialogueAssetPackFor(Dialogue d)
|
||
|
|
{
|
||
|
|
return "VNAssetPacks/VNA_" + d.ToString();
|
||
|
|
}
|
||
|
|
|
||
|
|
public static Dictionary<Dialogue, List<DialogueInteraction>> DIALOGUE = new Dictionary<Dialogue, List<DialogueInteraction>>() {
|
||
|
|
// Manager default day-shift quotes.
|
||
|
|
{ Dialogue.Manager_Elaine1,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Elaine", "Phew... All in a day's work.") {
|
||
|
|
body1 = Body.Elaine_Normal,
|
||
|
|
expression1 = Expression.Elaine_Normal,
|
||
|
|
hair1 = 0,
|
||
|
|
},
|
||
|
|
new DialogueInteraction("Elaine", "Time to close down for the night."),
|
||
|
|
new DialogueInteraction("Elaine", "Anything you wanna do first?") {
|
||
|
|
expression1 = Expression.Elaine_Smug
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{ Dialogue.Manager_Elaine2,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Elaine", "Hey buster, I know we're all ripe for rubbin' here...") {
|
||
|
|
body1 = Body.Elaine_Normal,
|
||
|
|
expression1 = Expression.Elaine_Normal,
|
||
|
|
hair1 = 0,
|
||
|
|
},
|
||
|
|
new DialogueInteraction("Elaine", "But if you keep oglin', I'm gonna have to start chargin' for looks.") {
|
||
|
|
expression1 = Expression.Elaine_Smug
|
||
|
|
},
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{ Dialogue.Manager_Elaine3,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Elaine", "Let's wrap things up for the day.") {
|
||
|
|
body1 = Body.Elaine_Normal,
|
||
|
|
expression1 = Expression.Elaine_Normal,
|
||
|
|
hair1 = 0,
|
||
|
|
},
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{ Dialogue.Manager_Clem1,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Clementine", "Manager_Clem1"),
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{ Dialogue.Manager_Clem2,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Clementine", "Manager_Clem2"),
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{ Dialogue.Manager_Clem3,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Clementine", "Manager_Clem3"),
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{ Dialogue.Manager_Irida1,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Irida", "Manager_Irida1"),
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{ Dialogue.Manager_Irida2,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Irida", "Manager_Irida2"),
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{ Dialogue.Manager_Irida3,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Irida", "Manager_Irida3"),
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{ Dialogue.Manager_Schroder1,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Schroder", "Manager_Schroder1"),
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{ Dialogue.Manager_Schroder2,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Schroder", "Manager_Schroder2"),
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{ Dialogue.Manager_Schroder3,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Schroder", "Manager_Schroder3"),
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
// Character unlock scenes.
|
||
|
|
{ Dialogue.Intro,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Elaine", "(STUB) Game Intro"),
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{ Dialogue.Unlock_Irida,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Irida", "(STUB) Irida Unlocked"),
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{ Dialogue.Unlock_Clem,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Clem", "(STUB) Clem Unlocked"),
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{ Dialogue.Unlock_Schroder,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Schroder", "(STUB) Schroder Unlocked"),
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
{ Dialogue.Elaine_PentUp,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Elaine", "(STUB) Elaine_PentUp"),
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{ Dialogue.Elaine_Femdom,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Elaine", "(STUB) Elaine_Femdom"),
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{ Dialogue.Elaine_Foodplay,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Elaine", "(STUB) Elaine_Voyeurism"),
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
{ Dialogue.Irida_Anal,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Irida", "(STUB) Irida_Anal"),
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{ Dialogue.Irida_Boobies,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Irida", "(STUB) Irida_Boobies"),
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{ Dialogue.Irida_Oral,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Irida", "(STUB) Irida_Oral"),
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
{ Dialogue.Clem_Confession,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Clementine", "(STUB) Clem_Confession"),
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{ Dialogue.Clem_BadGirl,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("", "(So Clementine's been reported to my office for misconduct.)") {
|
||
|
|
backgroundIndex = 0,
|
||
|
|
},
|
||
|
|
new DialogueInteraction("", "(From what I can tell, she got angry with some rowdy customer.)"),
|
||
|
|
new DialogueInteraction("", "(One thing lead to another...)"),
|
||
|
|
new DialogueInteraction("", "...And then you punched him.") {
|
||
|
|
body1 = Body.Clem_Normal,
|
||
|
|
expression1 = Expression.Clem_Normal,
|
||
|
|
hair1 = 2,
|
||
|
|
backgroundIndex = 1,
|
||
|
|
},
|
||
|
|
new DialogueInteraction("Clementine", "Yeah, well, that's what happened."),
|
||
|
|
new DialogueInteraction("", "Clementine, this shit is racking up our insurance!"),
|
||
|
|
new DialogueInteraction("", "I'm sure that guy deserved it, but we have security for a reason."),
|
||
|
|
new DialogueInteraction("Clementine", "(Sigh.)"),
|
||
|
|
new DialogueInteraction("", "Alright, look. This one's on you."),
|
||
|
|
new DialogueInteraction("", "You're gonna pay off the claim for that customer. Last I heard was a few hundred for the settlement."),
|
||
|
|
new DialogueInteraction("Clementine", "Wha- You know I can't afford that shit!") {
|
||
|
|
// expression1 = Expression.Clem_Angry,
|
||
|
|
},
|
||
|
|
new DialogueInteraction("", "Well, neither can I! Everyone's gotta work overtime here to clean up your messes."),
|
||
|
|
new DialogueInteraction("", "Frankly, you should know better."),
|
||
|
|
new DialogueInteraction("Clementine", "Yeah, well, sorry.") {
|
||
|
|
// expression1 = Expression.Clem_Normal,
|
||
|
|
},
|
||
|
|
new DialogueInteraction("", "..."),
|
||
|
|
new DialogueInteraction("", "You don't look very sorry to me."),
|
||
|
|
new DialogueInteraction("Clementine", "Yeah? And what are you gonna do, daddy? Spank me?") {
|
||
|
|
// expression1 = Expression.Clem_Angry,
|
||
|
|
},
|
||
|
|
new DialogueInteraction("", "Maybe I will. I'm getting sick of taking your crap."),
|
||
|
|
new DialogueInteraction("", "I don't want to fire you, but if you're gonna stay then you need to learn a lesson or two.") {
|
||
|
|
// expression1 = Expression.Clem_Surprised,
|
||
|
|
},
|
||
|
|
new DialogueInteraction("Clementine", "U-um..."),
|
||
|
|
new DialogueInteraction("", "So here's the deal.") {
|
||
|
|
// expression1 = Expression.Clem_Normal,
|
||
|
|
},
|
||
|
|
new DialogueInteraction("", "You're gonna get a hard spanking and tell me how sorry you are, and I'll pay for this little \"incident\"."),
|
||
|
|
new DialogueInteraction("Clementine", "(Growl)") {
|
||
|
|
// expression1 = Expression.Clem_Angry,
|
||
|
|
},
|
||
|
|
new DialogueInteraction("Clementine", "You're a sick freak, you know that?"),
|
||
|
|
new DialogueInteraction("", "I suppose I should mail you a bill, then?"),
|
||
|
|
new DialogueInteraction("", "Besides, I heard what you and Elaine were whispering about.") {
|
||
|
|
// expression1 = Expression.Clem_Sad,
|
||
|
|
},
|
||
|
|
new DialogueInteraction("", "You've got a kink for bdsm, don't you?"),
|
||
|
|
new DialogueInteraction("Clementine", "N-No, that was-...") {
|
||
|
|
// expression1 = Expression.Clem_Surprised,
|
||
|
|
},
|
||
|
|
new DialogueInteraction("", "Am I wrong?"),
|
||
|
|
new DialogueInteraction("Clementine", "(Sigh.)") {
|
||
|
|
// expression1 = Expression.Clem_Normal,
|
||
|
|
},
|
||
|
|
new DialogueInteraction("Clementine", "Fine. Just spank me and get it over with."),
|
||
|
|
new DialogueInteraction("Clementine", "But if you tell anyone what we're doing, I'll never forgive you!") {
|
||
|
|
// expression1 = Expression.Clem_Angry,
|
||
|
|
},
|
||
|
|
new DialogueInteraction("", "Yeah, yeah. Shut up and get on the table."),
|
||
|
|
new DialogueInteraction("", "...") {
|
||
|
|
removeBody1 = true,
|
||
|
|
backgroundIndex = 0,
|
||
|
|
},
|
||
|
|
new DialogueInteraction("", "....."),
|
||
|
|
new DialogueInteraction("Clementine", ".......") {
|
||
|
|
backgroundIndex = 2,
|
||
|
|
// TODO: Derpy music
|
||
|
|
},
|
||
|
|
new DialogueInteraction("Clementine", "W-Why'd you tie me up?!"),
|
||
|
|
new DialogueInteraction("", "I figured if I'm gonna whack you one, I might as well have some fun with it."),
|
||
|
|
new DialogueInteraction("", "Besides, this is a fitting look for you."),
|
||
|
|
new DialogueInteraction("Clementine", "..."),
|
||
|
|
new DialogueInteraction("Clementine", "Hey... Don't hit me too hard, okay?"),
|
||
|
|
new DialogueInteraction("", "Are you really in a position to negotiate right now?"),
|
||
|
|
new DialogueInteraction("Clementine", "Ungh..."),
|
||
|
|
new DialogueInteraction("", "(Let's get these panties off.)"),
|
||
|
|
new DialogueInteraction("", "(Yoink.)") {
|
||
|
|
backgroundIndex = 3,
|
||
|
|
// TODO: Ruffling sound effect
|
||
|
|
},
|
||
|
|
new DialogueInteraction("Clementine", "..."),
|
||
|
|
new DialogueInteraction("", "(She seems awfully calm given the situation.)"),
|
||
|
|
new DialogueInteraction("", "(I've got a paddle from the drawer, just waiting for some action.)"),
|
||
|
|
new DialogueInteraction("", "(Maybe she's used to this kind of thing. I'm not one to pry, so I wouldn't know.)"),
|
||
|
|
new DialogueInteraction("", "(Anyways... Let's get started.)"),
|
||
|
|
new DialogueInteraction("", "WHAM!") {
|
||
|
|
backgroundIndex = 4,
|
||
|
|
// TODO: Smack sound effect
|
||
|
|
},
|
||
|
|
new DialogueInteraction("Clementine", "--!! ...--!!!... --!... --!... ---!!!... --!... --!!... --!!!") {
|
||
|
|
// TODO: Yelp sound effect
|
||
|
|
},
|
||
|
|
new DialogueInteraction("", "(With long deliberate strokes, I lay into Clementine's ass with the paddle.)") {
|
||
|
|
// TODO: Wordless smacking sound effect
|
||
|
|
},
|
||
|
|
new DialogueInteraction("Clementine", "Augh-- FUCK!"),
|
||
|
|
new DialogueInteraction("", "Damn! Pipe down; they'll hear you outside."),
|
||
|
|
new DialogueInteraction("Clementine", "Shut the fuck up and hit me!"),
|
||
|
|
new DialogueInteraction("", "(...)"),
|
||
|
|
new DialogueInteraction("Clementine", "-#! --##!! --#! -##! --##! -#! -##! ---#!") {
|
||
|
|
// TODO: Yelp sound effect
|
||
|
|
},
|
||
|
|
new DialogueInteraction("Clementine", "Harder!!"),
|
||
|
|
new DialogueInteraction("", "(Harder, huh?)"),
|
||
|
|
new DialogueInteraction("", "(I reel back all the way and--)"),
|
||
|
|
new DialogueInteraction("Clementine", "--A! --AHH! -AGH! --AUH! --HH! --AH! --AHH! -AGH!") {
|
||
|
|
// TODO: Yelp sound effect
|
||
|
|
},
|
||
|
|
new DialogueInteraction("", "(I grip the paddle and go full-force onto her ass.)") {
|
||
|
|
// TODO: Wordless smacking sound effect
|
||
|
|
},
|
||
|
|
new DialogueInteraction("Clementine", "Ooh!! Oh! I'm gonna pee-- Nngh!") {
|
||
|
|
// TODO: Yelp sound effect
|
||
|
|
},
|
||
|
|
new DialogueInteraction("", "(...?)"),
|
||
|
|
new DialogueInteraction("", "(That's fine, I'll just have her clean it up later.)"),
|
||
|
|
new DialogueInteraction("Clementine", "--A! --AHH! -AGH! --AUH! --HH! --AH! --AHH! -AGH!") {
|
||
|
|
// TODO: Yelp sound effect
|
||
|
|
},
|
||
|
|
new DialogueInteraction("Clementine", "Wait-wait-wait-wait-wait-WAIT! I--"),
|
||
|
|
new DialogueInteraction("", "Nope."),
|
||
|
|
new DialogueInteraction("Clementine", "!!! !!! !!!! !!! !! !!! !!! !!!!!!") {
|
||
|
|
// TODO: Yelp sound effect
|
||
|
|
},
|
||
|
|
new DialogueInteraction("Clementine", "OOUGH!! Unnghhh!!! Ug--") {
|
||
|
|
// TODO: Yelp sound effect
|
||
|
|
},
|
||
|
|
new DialogueInteraction("", "(Clementine lets out an otherworldly noise as she squirts all over my paddle and desk.)"),
|
||
|
|
new DialogueInteraction("Clementine", "Augh-- ugh... nnn...") {
|
||
|
|
backgroundIndex = 5,
|
||
|
|
// TODO: Yelp sound effect
|
||
|
|
},
|
||
|
|
new DialogueInteraction("Clementine", "..........") {
|
||
|
|
// TODO: Breathing sound effect
|
||
|
|
},
|
||
|
|
new DialogueInteraction("", "(Clementine seems to be in another world right now.)"),
|
||
|
|
new DialogueInteraction("", "(As fun as this is, I've got other things to do today.)"),
|
||
|
|
new DialogueInteraction("", "..."),
|
||
|
|
new DialogueInteraction("", "So? What do you have to say for yourself?"),
|
||
|
|
new DialogueInteraction("Clementine", "I--..."),
|
||
|
|
new DialogueInteraction("Clementine", "I've been a bad girl... I'm sorry..."),
|
||
|
|
new DialogueInteraction("Clementine", "I'll be good, daddy... I'll be good for you."),
|
||
|
|
new DialogueInteraction("Clementine", "Promise."),
|
||
|
|
new DialogueInteraction("", "..."),
|
||
|
|
new DialogueInteraction("", "Good. You're in the clear for now."),
|
||
|
|
new DialogueInteraction("", "By the way, I was gonna foot the bill either way. Just thought I'd tease you a little first."),
|
||
|
|
new DialogueInteraction("Clementine", "....."),
|
||
|
|
new DialogueInteraction("Clementine", "Hey..."),
|
||
|
|
new DialogueInteraction("Clementine", "..."),
|
||
|
|
new DialogueInteraction("Clementine", "Can you spank me more later?"),
|
||
|
|
new DialogueInteraction("", "Uh--"),
|
||
|
|
new DialogueInteraction("", "Sure... Sounds like a plan to me. I'll see you back here after some other shift."),
|
||
|
|
new DialogueInteraction("", "But first..."),
|
||
|
|
new DialogueInteraction("", "You pissed all over my desk, so get down from there and clean it up."),
|
||
|
|
new DialogueInteraction("Clementine", "..."),
|
||
|
|
new DialogueInteraction("Clementine", "Yes, sir..."),
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{ Dialogue.Clem_FFM,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Clementine", "(STUB) Clem_FFM"),
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{ Dialogue.Clem_Exploration,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Clementine", "(STUB) Clem_Exploration"),
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
{ Dialogue.Schroder_Packing,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Schroder", "(STUB) Schroder_Packing"),
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{ Dialogue.Schroder_Anal,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Schroder", "(STUB) Schroder_Anal"),
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{ Dialogue.Schroder_Dom,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Schroder", "(STUB) Schroder_Dom"),
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{ Dialogue.Schroder_Lapdance,
|
||
|
|
new List<DialogueInteraction>() {
|
||
|
|
new DialogueInteraction("Schroder", "(STUB) Schroder_Lapdance"),
|
||
|
|
}
|
||
|
|
},
|
||
|
|
};
|
||
|
|
}
|