New Character Creator

Here's my revamped Character Creator. Feel free to use it :) From what I gathered, Quest's max If-Script maxes out at about 40 stacks. Anymore than that and it'll crash, least on my computer. I think using a Switch script helped the most because it keeps all the codes separated.

ClearScreen
msg ("")
ShowMenu ("", game.nameofmenuhere, false) {
  switch (result) {
    case ("Question 1") {
      list remove (game.nameofmenuhere, "Question 1")
      list add (game.nameofmenuhere, "Question 2")
      NameofFunctionHere
    }
    case ("Question 2") {
      msg ("")
        ShowMenu ("", menulist, false) {
          if (result = "Choice 1") {
            list remove (game.nameofmenuhere, "Question 2")
            list add (game.nameofmenuhere, "Question 3")
            ClearScreen
            NameofFunctionHere
          }
          else if (result = "Choice 2") {
            list remove (game.nameofmenuhere, "Question 2")
            list add (game.nameofmenuhere, "Question 3")
            ClearScreen
            NameofFunctionHere
          }
       }
	   }
    case ("Question 3") {
      msg ("")
      menulist = Split("Choice 1;Choice 2;Random", ";")
      ShowMenu ("", menulist, false) {
        if (result = "Choice 1") {
          ClearScreen
          list remove (game.nameofmenuhere, "Question 3")
          list add (game.nameofmenuhere, "Question 4")
          NameofFunctionHere
        }
        else if (result= "Choice 2") {
          ClearScreen
          list remove (game.nameofmenuhere, "Question 3")
          list add (game.nameofmenuhere, "Question 4")
          NameofFunctionHere
        }
        else if (result= "Random") {
		}
 }
 }
    case ("Question 4") {
      msg ("")
      get input {
        player.alias = result
        msg ("<br/>Pleased to meet you, <font color=\"dedede\">{player.alias}</font color>! ")
        wait {
          ClearScreen
          list remove (game.nameofmenuhere, "Question 4")
          list add (game.nameofmenuhere, "Question 5")
          NameofFunctionHere
        }
      }
    }
    case ("Question 5") {
      msg ("")
                ClearScreen
                MoveObject (player, NameofRoomHere)
              }
            }
			}

Better than I do I guess. But I took code from HK. Now, I just let the player use their imagination...


xD Not a bad method though.


I'm still working on my own character creation... laughs.

it depends on how extensive your character creation (and thus your game) is... the more extensive it is... the more you want to do Encapsulation, Object + Script Attribute + Delegate usage, possibly recursion, possibly advanced Data Structure designs (trees, linked lists, queues, stacks, maps, dictionaries, etc), Inheritance: Object Types / Types / Inherit Attributes, and etc various advanced design methods, to make it easier for yourself and sanity, as well as to reduce code redundency. But, this is also more advanced stuff, as well as very difficult structures/designs for the human brain to handle, unless you've been training in doing it for years as professional programmer and/or extensive planning/flow-charts/models/etc.


the most important thing, is just getting something that works, and then later you can come back and refactor/streamline (make it better/more-efficient/scale'able design) if/as you're doing more extensive stuff in your game, that needs it to be improved.


I probably post more here as I get into it.


your game, defines/determines your character creation, and your character creation defines/determines your game, lol.

okay, I want stats... okay what are the various things that those stats effect? and how do they effect those things? and how to you code it to effect those things in that way? strength: damage modifier for weapon attacks, determines carry weight, equipment requirement levels (example: full plate mail requires at least 100 strength to wear), jump height, lift/push/etc physical actions. endurance: blah blah blah, dexterity: blah blah blah, lol lo lol. Magic... Equipment.... Items.... Combat... Skills/Perks/Abilities... Quests/Missions/Goals... Race/Species differences in starting stats/abilities-skills-perks/etc.... etc etc etc lol lol lol

At least that's my own road block in game-making/game-developing, lol. I can't really work on my game until I get the character creation down, but that's the most extensive part of the game, as it pretty much is your game design, it is your game, it is the basics/fundamental aspects/building-blocks of your game... sighs.


Yup. I agree it's definitely an involved process. Probably why I waited two years before delving into it again. The first time through Pixie helped me out a lot, but I know just enough now that I might be able to squeeze by. It'll look like crap probably but I hate pestering him/her with problems especially since he/she's got a lot going on right now @[email protected]

Anonynn.


I'll be happy to help as I can too, feel free to bug me as much as you want (and I'll try to help, but some things might be beyond my ability as well, lol. Long long long ways from Pixie's level/ability), though I too am very busy with school symester right now, sighs

as this is something I'm currently involved-with and very interested-in (and stuck-with), laughs. character creation... lol.

I think we both are making somewhat similar RPG type of games ... so we're both dealing with the same issues with character creation, so we can help each other out.


Thanks! I appreciate it. Maybe I'll post mine in the library section after I'm done so others can use it. ^_^

Anonynn.


Here is my new Character Creator if anyone wants to use it. I'll be posting it in the libraries section too.


Just glancing over that, the distribution of orientation if you pick "Random" seems an odd distribution. I'm wondering how you picked the probabilities. Quick arithmetic gives:

Homosexual: 41.82%
Asexual: 16%
Straight: 13.44%
Bicurious: 11.29%
Bisexual: 9.48%
Bisexual homosexual lean: 7.97%

(Also, seems to be quite a bit of code duplication there)


A thought there ... should that be 6 options with the same probability? In that case, you'd want:

if (RandomChance(16)) {
  first option here
}
else if (RandomChance(20)) {
  second option here
}
else if (RandomChance(25)) {
  third option here
}
else if (RandomChance(33)) {
  fourth option here
}
else if (RandomChance(50)) {
  fifth option here
}
else {
  last option
}

(calling RandomChance(16) five times in a row makes each option ⅙ less likely than the one before; so to make them equally likely you need to adjust the numbers each time)

But if you're doing that, I think you could just put

if (result = "Random") {
  result = "Choice "+GetRandomInt(1,6)
}

...before the if/else block for all the other options.


Ooooh! I didn't know that was a thing!! Thanks Mr.Angel ^____^ ! I won't be able to fix it now since I don't have the time, but I'm saving this post so when I need to use that in the next go around or on any other scripts I can.

if (result = "Random") {
  result = "Choice "+GetRandomInt(1,6)
}

Also, thanks for the probability as well. Math is not my strong suit. @[email protected] That is probably very obvious lol.

Anonynn.


//I'm wondering how you picked the probabilities//

I just took the number of choices and divided it by 100. For example, if I had 6 choices.

100 divided by 6 = 16.3
So each choice gets 16%.

If I had 8 choices...

100 divided by 8 = 12
So each choice gets 12%.

Does that make sense? xD

Anonynn.


Yep. The difference is because it's conditional probability; I'm trying to think of how to explain it (because I know this is something a lot of people have trouble with, even doing a maths degree).

I just took the number of choices and divided it by 100.

That's right for the first one. But you should be thinking about the number of choices left. Once you've eliminated choice 1, there's only 5 left. So you use 100÷5, or RandomChance(20) for the first else if. And then for choice 3, there's only 4 options left, so it's RandomChance(25). Carrying on right up to the end. If you've already decided someone isn't straight, asexual, bicurious, or bisexual, then there's 2 options left. You want those 2 options to be equally likely; so the last else if is a simple 50% chance.

Does that make sense?

Or an example of how the numbers in the RandomChance statements are combined to make actual probabilities:

if (RandomChance(A)) {
  // the probability of this script happening is A
}
else if (RandomChance(B)) {
  // If A happened, then we can't get here. So
  // the probability of this script happening is B × (100-A)/100
}
else if (RandomChance(C)) {
  // If A or B happened, then we can't get here. So
  // the probability of this script happening is C × (100-B)/100 × (100-A)/100
}
else {
  // this happens if none of the earlier ones did, so
  // the probability of this script happening is (100-C) × (100-B)/100 × (100-A)/100
}

Ah, yeah I think that makes sense.

If I have 8 choices....then the first one is 100 divided by 8.
Then 100 divided by 7
Then 100 divided by 6 etc..

Right? So they have equal probability.

Anonynn.


Yep :)

For the cases in your example, I think it's likely easier to use GetRandomInt, though. You already have code to deal with result being "Choice 1" or "Choice 4" or whatever; so if the "Random" option is just picking one of the existing options, you can set result to "Choice "+GetRandomInt(1,6) (or however many options there are) and then let your existing code handle it.

It could also be beneficial to move code that executes in all cases outside the 'if' blocks. Making your code smaller and lighter might help with the Quest stability issues you've mentioned. (Not sure about that; but it's certainly easier to read.
For example, your orientation block (inside the last 'else' clause) could be cut down to:

        msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Love</u></font color></font size><br/>Lastly, what sort of love are you looking for in the world?<br/><br/>1) I could care less about relationships. {if game.stats=True:<font color=\"dedede\">+ Asexual Sexuality.</font color>} <br/><br/>2) I'm only looking for female partnerships. {if game.stats=True:<font color=\"dedede\">+ Heterosexual Sexuality.</font color>}<br/><br/>3) I'm mostly looking for female companionship but if the right guy comes along I might be open to it. {if game.stats=True:<font color=\"dedede\">+ Bi-Curious Sexuality.</font color>} <br/><br/>4) Male or female relationships; it's all the same to me. Either or. {if game.stats=True:<font color=\"dedede\">+ Bisexual Sexuality.</font color>}<br/><br/>5) I'm mostly looking for male/same-sex relationships but if the right girl comes along I might be interested. {if game.stats=True:<font color=\"dedede\">+ Bisexual Homosexual Lean Sexuality.</font color>} <br/><br/>6) I'm only interested in same-sex relationships. That's all. {if game.stats=True:<font color=\"dedede\">+ Homosexual Sexuality.</font color>} ")
        menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Choice 6;Random", ";")
        ShowMenu ("", menulist, false) {
          if (result = "Random") {
            result = "Choice "+GetRandomInt(1,6)
          }
          // No 'else' here, because you want the "Random" behaviour above to be followed by one of the others
          if (result = "Choice 1") {
            SetTo ("orientation", "asexual")
          }
          else if (result = "Choice 2") {
            SetTo ("orientation", "straight")
          }
          else if (result = "Choice 3") {
            SetTo ("orientation", "bi-curious")
          }
          else if (result = "Choice 4") {
            SetTo ("orientation", "bisexual")
          }
          else if (result = "Choice 5") {
            SetTo ("orientation", "bisexual homosexual lean")
          }
          else if (result = "Choice 6") {
            SetTo ("orientation", "homosexual")
          }
          msg ("<br/><font color=\"dedede\">And so it begins...</font color>")
          wait {
            UpdateAllAttributes
            ClearScreen
            MoveObject (player, Part 1)
          }
        }

(Cutting 115 lines down to 33. I think I could shrink that more, but might make it harder to understand)

(Sorry if I've mistyped anything there; I'm on my phone now so not in a position to test it)


(filler for getting my edited post, updated/posted)
(again, filler for getting my edited post, updated/posted)
(again, filler for getting my edited post, updated/posted)
(again, filler for getting my edited post, updated/posted)


there's also Dictionary Attributes too:

<object name="example_object">

  <example_stringlist_attribute type="stringlist">
    <value>Choice 1</value>
    <value>Choice 2</value>
    <value>Choice 3</value>
    <value>Choice 4</value>
    <value>Choice 5</value>
    <value>Choice 6</value>
    <value>Random</value>
  </example_stringlist_attribute>

  <example_stringdictionary_attribute type="stringdictionary">
    <item>
      <key>Choice 1</key>
      <value>asexual</value>
    </item>
    <item>
      <key>Choice 2</key>
      <value>straight</value>
    </item>
    <item>
      <key>Choice 3</key>
      <value>bi-curious</value>
    </item>
    <item>
      <key>Choice 4</key>
      <value>bisexual</value>
    </item>
    <item>
      <key>Choice 5</key>
      <value>bisexual homosexual lean</value>
    </item>
    <item>
      <key>Choice 6</key>
      <value>homosexual</value>
    </item>
  </example_string_attribute>

  <example_scriptdictionary_attribute type="scriptdictionary">
    <item key="Choice 1">
      SetTo ("orientation", "asexual")
    </item>
    <item key="Choice 2">
      SetTo ("orientation", "straight")
    </item>
    <item key="Choice 3">
      SetTo ("orientation", "bi-curious")
    </item>
    <item key="Choice 4">
      SetTo ("orientation", "bisexual")
    </item>
    <item key="Choice 5">
      SetTo ("orientation", "bisexual homosexual lean")
    </item>
    <item key="Choice 6">
      SetTo ("orientation", "homosexual")
    </item>
  </example_scriptdictionary_attribute>
</object>

// --------------------------------------------------

// using a Script Dictionary Attribute:

msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Love</u></font color></font size><br/>Lastly, what sort of love are you looking for in the world?<br/><br/>1) I could care less about relationships. {if game.stats=True:<font color=\"dedede\">+ Asexual Sexuality.</font color>} <br/><br/>2) I'm only looking for female partnerships. {if game.stats=True:<font color=\"dedede\">+ Heterosexual Sexuality.</font color>}<br/><br/>3) I'm mostly looking for female companionship but if the right guy comes along I might be open to it. {if game.stats=True:<font color=\"dedede\">+ Bi-Curious Sexuality.</font color>} <br/><br/>4) Male or female relationships; it's all the same to me. Either or. {if game.stats=True:<font color=\"dedede\">+ Bisexual Sexuality.</font color>}<br/><br/>5) I'm mostly looking for male/same-sex relationships but if the right girl comes along I might be interested. {if game.stats=True:<font color=\"dedede\">+ Bisexual Homosexual Lean Sexuality.</font color>} <br/><br/>6) I'm only interested in same-sex relationships. That's all. {if game.stats=True:<font color=\"dedede\">+ Homosexual Sexuality.</font color>} ")
        ShowMenu ("", example_object.example_stringlist_attribute, false) {
          if (result = "Random") {
            result = "Choice "+GetRandomInt(1,6)
          }
          // No 'else' here, because you want the "Random" behaviour above to be followed by one of the others

          script_variable = ScriptDictionaryItem (example_object.example_scriptdictionary_attribute, result)

          invoke (script_variable)

          msg ("<br/><font color=\"dedede\">And so it begins...</font color>")
          wait {
            UpdateAllAttributes
            ClearScreen
            MoveObject (player, Part 1)
          }
        }

// ------------------------------------------

// using a String Dictionary Attribute:

msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Love</u></font color></font size><br/>Lastly, what sort of love are you looking for in the world?<br/><br/>1) I could care less about relationships. {if game.stats=True:<font color=\"dedede\">+ Asexual Sexuality.</font color>} <br/><br/>2) I'm only looking for female partnerships. {if game.stats=True:<font color=\"dedede\">+ Heterosexual Sexuality.</font color>}<br/><br/>3) I'm mostly looking for female companionship but if the right guy comes along I might be open to it. {if game.stats=True:<font color=\"dedede\">+ Bi-Curious Sexuality.</font color>} <br/><br/>4) Male or female relationships; it's all the same to me. Either or. {if game.stats=True:<font color=\"dedede\">+ Bisexual Sexuality.</font color>}<br/><br/>5) I'm mostly looking for male/same-sex relationships but if the right girl comes along I might be interested. {if game.stats=True:<font color=\"dedede\">+ Bisexual Homosexual Lean Sexuality.</font color>} <br/><br/>6) I'm only interested in same-sex relationships. That's all. {if game.stats=True:<font color=\"dedede\">+ Homosexual Sexuality.</font color>} ")
        ShowMenu ("", example_object.example_stringlist_attribute, false) {
          if (result = "Random") {
            result = "Choice "+GetRandomInt(1,6)
          }
          // No 'else' here, because you want the "Random" behaviour above to be followed by one of the others

          string_variable = ScriptDictionaryItem (example_object.example_stringdictionary_attribute, result)

          SetTo ("orientation", string_variable)

          msg ("<br/><font color=\"dedede\">And so it begins...</font color>")
          wait {
            UpdateAllAttributes
            ClearScreen
            MoveObject (player, Part 1)
          }
        }

(filler for getting my edited post, updated/posted)


also, you can make this fully into an Object (aka: you can put your scriptings as Script Attributes in an Object) ... (making it fully into an Object, is known as using 'Encapsulation' design):

(using Delegates + Script Attributes + Objects + Dictionaries + Lists)

<delegate name="example_delegate" parameters="prompt_script_parameter, list_parameter, dictionary_parameter, string_parameter" />

<game name="example_game">

  <attr name="start" type="script">

    // using a String Dictionary:

    rundelegate (example_object, "example_script_attribute", example_object.example_prompt_script_attribute, example_object.example_stringlist_attribute, example_object.example_stringdictionary_attribute, example_object.example_string_attribute)

    // using a Script Dictionary:

    rundelegate (example_object, "example_script_attribute", example_object.example_prompt_script_attribute, example_object.example_stringlist_attribute, example_object.example_scriptdictionary_attribute, example_object.example_string_attribute)

  </attr>

</game>

<object name="example_object">

  <attr name="example_string_attribute" type="string">orientation</attr>

  <attr name="example_prompt_script_attribute" type="script">
    msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Love</u></font color></font size><br/>Lastly, what sort of love are you looking for in the world?<br/><br/>1) I could care less about relationships. {if game.stats=True:<font color=\"dedede\">+ Asexual Sexuality.</font color>} <br/><br/>2) I'm only looking for female partnerships. {if game.stats=True:<font color=\"dedede\">+ Heterosexual Sexuality.</font color>}<br/><br/>3) I'm mostly looking for female companionship but if the right guy comes along I might be open to it. {if game.stats=True:<font color=\"dedede\">+ Bi-Curious Sexuality.</font color>} <br/><br/>4) Male or female relationships; it's all the same to me. Either or. {if game.stats=True:<font color=\"dedede\">+ Bisexual Sexuality.</font color>}<br/><br/>5) I'm mostly looking for male/same-sex relationships but if the right girl comes along I might be interested. {if game.stats=True:<font color=\"dedede\">+ Bisexual Homosexual Lean Sexuality.</font color>} <br/><br/>6) I'm only interested in same-sex relationships. That's all. {if game.stats=True:<font color=\"dedede\">+ Homosexual Sexuality.</font color>} ")
  </attr>

  <attr name="example_script_attribute" type="example_delegate">

    invoke (prompt_script_parameter)

    ShowMenu ("", list_parameter, false) {

      if (result = "Random") {
        result = "Choice "+GetRandomInt(1,6)
      }

      string_or_script_variable = DictionaryItem (dictionary_parameter, result)

      if (TypeOf (string_or_script_variable) = "string") {
        SetTo (string_parameter, string_or_script_variable)
      } else if (TypeOf (string_or_script_variable) = "script") {
        invoke (string_or_script_variable)
      }

      msg ("<br/><font color=\"dedede\">And so it begins...</font color>")

      wait {
        UpdateAllAttributes
        ClearScreen
        MoveObject (player, Part 1)
      }

    }

  </attr>

  <example_stringlist_attribute type="stringlist">

    <value>Choice 1</value>
    <value>Choice 2</value>
    <value>Choice 3</value>
    <value>Choice 4</value>
    <value>Choice 5</value>
    <value>Choice 6</value>

    <value>Random</value>

  </example_stringlist_attribute>

  <example_stringdictionary_attribute type="stringdictionary">

    <item>
      <key>Choice 1</key>
      <value>asexual</value>
    </item>

    <item>
      <key>Choice 2</key>
      <value>straight</value>
    </item>

    <item>
      <key>Choice 3</key>
      <value>bi-curious</value>
    </item>

    <item>
      <key>Choice 4</key>
      <value>bisexual</value>
    </item>

    <item>
      <key>Choice 5</key>
      <value>bisexual homosexual lean</value>
    </item>

    <item>
      <key>Choice 6</key>
      <value>homosexual</value>
    </item>

  </example_string_attribute>

  <example_scriptdictionary_attribute type="scriptdictionary">

    <item key="Choice 1">
      SetTo ("orientation", "asexual")
    </item>

    <item key="Choice 2">
      SetTo ("orientation", "straight")
    </item>

    <item key="Choice 3">
      SetTo ("orientation", "bi-curious")
    </item>

    <item key="Choice 4">
      SetTo ("orientation", "bisexual")
    </item>

    <item key="Choice 5">
      SetTo ("orientation", "bisexual homosexual lean")
    </item>

    <item key="Choice 6">
      SetTo ("orientation", "homosexual")
    </item>

  </example_scriptdictionary_attribute>

</object>

Pardon my ignorance, but where do I paste this in?


This is all considered a function. So Just create a new Function and name it whatever you want. You'll also have to change the writing/descriptions and questions in it as well to fit your game. ^_^ I replaced mine with a blank template :)


No need, Thank you!


So I applied this code to all the random sections of the creator, but it isn't making it past the first choice now.

result = "Choice "+GetRandomInt(1,6)

Here's the new code below.

ClearScreen
msg ("<br/>{once:Would you like to see <i>Stats</i> during the creation of your character? Selecting <i>No</i> will mean you won't know the outcome of your choices until after the game starts.}")
ShowMenu ("", game.ccreation, false) {
  switch (result) {
    case ("Stats Yes") {
      game.stats = True
      list remove (game.ccreation, "Stats Yes")
      list remove (game.ccreation, "Stats No")
      list add (game.ccreation, "Parent History")
      player.difficulty = False
      CharacterCreation1
    }
    case ("Stats No") {
      game.stats = False
      list remove (game.ccreation, "Stats Yes")
      list remove (game.ccreation, "Stats No")
      list add (game.ccreation, "Parent History")
      player.difficulty = False
      CharacterCreation1
    }
    case ("Parent History") {
      msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Echoes Of The Past…</u></font color></font size><br/>We’re all surrounded by echoes; faint whispers in the dark; remnants---fragments of friends and family, feelings, smells---all speaking to us beneath dense clusters of distant ghosts residing in the night sky; familiar faces of those we know and those who’ve passed away, or moved on from here etched in a molten prison. The fire intensifies these echoes and helps us explore our fragile mortality while at the same time quieting our thoughts and focusing them so that we can listen and inherit the wisdom that gives us our strength in dancing ash and flame.<br/><br/>But sometimes memories and echoes aren't enough, no matter how vivid they may be, they can never replace a loved one, nor a friendly smile from a kind neighbor. And yet, night after night, the flames of yesterday indulge us creating twisted, gnarled labyrinths of thought that force us trudge on again and again. Unfortunately, the familiar paths they guide us down have long since overgrown and the once lush landscapes of reflection have become lost. <br/><br/>The world continues on growing leaving us desperate---clinging to our memories and youth; static moments in time that are stuck in an endless loop. The cycle must be broken if we are to survive. We must forge new memories, new experiences in order to adapt while at the same time drawing strength from the echoes of the long distant past…")
      wait {
        ClearScreen
        msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Parent History</u></font color></font size><br/>How do you remember your parent's/guardian's personalities when you were a child? How did they influence you? (Your choice will determine your starting dominant Mood.)<font size=\"1\"><font color=\"dedede\"> <u>Sexy</u></font color>: NSFW/legal age.<font color=\"dedede\"> <u>Sympathy</u></font color>: SFW/all ages.<font color=\"dedede\"> <u>Sarcasm</u></font color>: NSFW/legal age.<font color=\"dedede\"> <u>Serious</u></font color>:SFW/all ages.</font size><br/><br/>1) I remember them always looking as attractive as possible in social situations and they very playful and intimate with each other. {if game.stats=True:<font color=\"dedede\">+5 Mood; Sexy</font color>}<br/><br/>2) I remember them being extremely sympathetic and understanding in social situations, especially in friendships. They always aimed to put themselves in other people's shoes. {if game.stats=True:<font color=\"dedede\">+5 Mood; Sympathy</font color>}<br/><br/>3) I remember them being very quick to anger and pretty high tempered in general, even when dealing with friendships. They were fierce lovers as well. {if game.stats=True:<font color=\"dedede\">+5 Mood; Sarcastic</font color>}<br/><br/>4) I remember they were very serious-minded individuals and were often concerned with the state of the world. {if game.stats=True:<font color=\"dedede\">+5 Mood; Serious</font color>}<br/><br/>5) I remember they were sort of a mix; they always tried to look their best in social situations but they were very understanding and good listeners as well. {if game.stats=True:<font color=\"dedede\">+3 Mood; Sexy/+3 Mood; Sympathy</font color>}<br/><br/>6) I remember they were sort of a mix; they always tried to look their best in social situations but were very high tempered as well. They had very few friendships. {if game.stats=True:<font color=\"dedede\">+3 Mood; Sexy/+3 Mood; Sarcastic</font color>}<br/><br/>7) I remember they were sort of a mix; they were both very serious-minded individuals and always used their resources to help the state of world. They had a great deal of empathy and sympathy for the suffering {if game.stats=True:<font color=\"dedede\">+3 Mood; Sympathy/+3 Mood; Serious</font color>}<br/><br/>8) I remember they were sort of a mix; they always tried really hard to be understanding in most social situations but would often lose their tempers if things didn't go their way. {if game.stats=True:<font color=\"dedede\">+3 Mood; Sympathy/+3 Mood; Sarcastic</font color>}")
        menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Choice 6;Choice 7;Choice 8;Random", ";")
        ShowMenu ("", menulist, false) {
          if (result = "Choice 1") {
            player.sexy = 5
            list remove (game.ccreation, "Parent History")
            list add (game.ccreation, "Family Reputation")
            ClearScreen
            CharacterCreation1
          }
          else if (result = "Choice 2") {
            player.sympathy = 5
            list remove (game.ccreation, "Parent History")
            list add (game.ccreation, "Family Reputation")
            ClearScreen
            CharacterCreation1
          }
          else if (result = "Choice 3") {
            player.sarcasm = 5
            list remove (game.ccreation, "Parent History")
            list add (game.ccreation, "Family Reputation")
            ClearScreen
            CharacterCreation1
          }
          else if (result = "Choice 4") {
            player.serious = 5
            list remove (game.ccreation, "Parent History")
            list add (game.ccreation, "Family Reputation")
            ClearScreen
            CharacterCreation1
          }
          else if (result = "Choice 5") {
            player.sexy = 5
            player.sympathy = 5
            list remove (game.ccreation, "Parent History")
            list add (game.ccreation, "Family Reputation")
            ClearScreen
            CharacterCreation1
          }
          else if (result = "Choice 6") {
            player.sexy = 5
            player.sarcasm = 5
            list remove (game.ccreation, "Parent History")
            list add (game.ccreation, "Family Reputation")
            ClearScreen
            CharacterCreation1
          }
          else if (result = "Choice 7") {
            player.sympathy = 5
            player.serious = 5
            list remove (game.ccreation, "Parent History")
            list add (game.ccreation, "Family Reputation")
            ClearScreen
            CharacterCreation1
          }
          else if (result = "Choice 8") {
            player.sympathy = 5
            player.sarcastic = 5
            list remove (game.ccreation, "Parent History")
            list add (game.ccreation, "Family Reputation")
            ClearScreen
            CharacterCreation1
          }
          else if (result = "Random") {
            result = "Choice "+GetRandomInt(1,8)
          }
        }
      }
      UpdateAllAttributes
    }
    case ("Family Reputation") {
      msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Family Reputation</u></font color></font size><br/>But what was your family's reputation?<br/><br/>1) That of responsibility, nobility and status. <font color=\"dedede\">{if game.stats=True: +3 INT, +30 GLD.}</font color><br/><br/>2) That of privacy and secrecy. <font color=\"dedede\">{if game.stats=True:+6 INT, +5 CRPT.}</font color><br/><br/>3) That they were diligent, hard workers. <font color=\"dedede\">{if game.stats=True:+3 STR, +3 MX HLTH.}</font color><br/><br/>4) Being poor in pocket but having the kindest hearts. <font color=\"dedede\">{if game.stats=True:+3 MX CRRY, +3 RST.}</font color><br/><br/>5) Descending from a long line of brave warriors. <font color=\"dedede\">{if game.stats=True:+3 DEF.}</font color><br/><br/>6) Shrouded in dark magic and mystery. <font color=\"dedede\">{if game.stats=True:+12 RST, +10 CRPT.}</font color><br/><br/>7) That were very rich and greedy SOBs. <font color=\"dedede\">{if game.stats=True:+6 MX CRRY, +30 GLD, +20 CRPT.}</font color><br/><br/>8) Wait---what family? I was an orphan. <font color=\"dedede\">{if game.stats=True:+3 STR, +3 AGL.}</font color><br/><br/>9) So damn broken. <font color=\"dedede\">{if game.stats=True:+6 MX HLTH, +6 RST, +10 CRPT.}</font color><br/><br/>10) Descendant from a long line of great thieves. <font color=\"dedede\">{if game.stats=True:+6 AGL, +30 GLD, +20 CRPT.}</font color>")
      menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Choice 6;Choice 7;Choice 8;Choice 9;Choice 10;Random", ";")
      ShowMenu ("", menulist, false) {
        if (result = "Choice 1") {
          player.base_intelligence = player.base_intelligence + 3
          player.gold = player.gold + 30
          ClearScreen
          list remove (game.ccreation, "Family Reputation")
          list add (game.ccreation, "Alias")
          CharacterCreation1
        }
        else if (result= "Choice 2") {
          player.base_intelligence = player.base_intelligence + 6
          player.corruption = player.corruption + 5
          ClearScreen
          list remove (game.ccreation, "Family Reputation")
          list add (game.ccreation, "Alias")
          CharacterCreation1
        }
        else if (result= "Choice 3") {
          player.base_strength = player.base_strength + 3
          player.base_health = player.base_health + 3
          ClearScreen
          list remove (game.ccreation, "Family Reputation")
          list add (game.ccreation, "Alias")
          CharacterCreation1
        }
        else if (result= "Choice 4") {
          player.maxvolume = player.maxvolume + 3
          player.resist = player.resist + 3
          ClearScreen
          list remove (game.ccreation, "Family Reputation")
          list add (game.ccreation, "Alias")
          CharacterCreation1
        }
        else if (result= "Choice 5") {
          player.base_defense = player.base_defense + 3
          ClearScreen
          list remove (game.ccreation, "Family Reputation")
          list add (game.ccreation, "Alias")
          CharacterCreation1
        }
        else if (result= "Choice 6") {
          player.resist = player.resist + 12
          player.corruption = player.corruption + 10
          ClearScreen
          list remove (game.ccreation, "Family Reputation")
          list add (game.ccreation, "Alias")
          CharacterCreation1
        }
        else if (result= "Choice 7") {
          player.maxvolume = player.maxvolume + 6
          player.gold = player.gold + 30
          player.corruption = player.corruption + 20
          ClearScreen
          list remove (game.ccreation, "Family Reputation")
          list add (game.ccreation, "Alias")
          CharacterCreation1
        }
        else if (result= "Choice 8") {
          player.base_strength = player.base_strength + 3
          player.base_agility = player.base_agility + 3
          ClearScreen
          list remove (game.ccreation, "Family Reputation")
          list add (game.ccreation, "Alias")
          CharacterCreation1
        }
        else if (result= "Choice 9") {
          player.base_health = player.base_health + 6
          player.resist = player.resist + 6
          player.corruption = player.corruption + 10
          ClearScreen
          list remove (game.ccreation, "Family Reputation")
          list add (game.ccreation, "Alias")
          CharacterCreation1
        }
        else if (result= "Choice 10") {
          player.base_agility = player.base_agility + 6
          player.gold = player.gold + 30
          player.corruption = player.corruption + 20
          ClearScreen
          list remove (game.ccreation, "Family Reputation")
          list add (game.ccreation, "Alias")
          CharacterCreation1
        }
        else if (result= "Random") {
          result = "Choice "+GetRandomInt(1,10)
        }
      }
      UpdateAllAttributes
    }
    case ("Alias") {
      msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Alias</u></font color></font size><br/>And what name or title were you given?")
      get input {
        player.alias = result
        msg ("<br/>Pleased to meet you, <font color=\"dedede\">{player.alias}</font color>! ")
        wait {
          ClearScreen
          list remove (game.ccreation, "Alias")
          list add (game.ccreation, "Gender")
          CharacterCreation1
        }
      }
    }
    case ("Gender") {
      msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Gender</u></font color></font size><br/>And you are a...<br/>1) <font color=\"f493fe\">Girl:</font color> {if game.stats=True:<font color=\"dedede\">+1 MX HLTH, +1 AGL</font color>}<br/><br/>2) <font color=\"75d6fa\">Boy:</font color> {if game.stats=True:<font color=\"dedede\">+1 MX CRRY, +1 STR.</font color>}")
      menulist = Split("Girl;Boy;Random", ";")
      ShowMenu ("", menulist, false) {
        if (result = "Girl") {
          SetTo ("gender", "female")
          player.virgin = True
          player.gavebirth = False
          ClearScreen
          list remove (game.ccreation, "Gender")
          list add (game.ccreation, "Gemstone")
          CharacterCreation1
        }
        else if (result = "Boy") {
          SetTo ("gender", "male")
          player.virgin = True
          player.gavebirth = False
          if (RandomChance(25)) {
            SetTo ("penissize", "10-inch")
          }
          else if (RandomChance(25)) {
            SetTo ("penissize", "8-inch")
          }
          else {
            SetTo ("penissize", "6-inch")
          }
          ClearScreen
          list remove (game.ccreation, "Gender")
          list add (game.ccreation, "Gemstone")
          CharacterCreation1
        }
        else if (result = "Random") {
          result = "Choice "+GetRandomInt(1,2)
        }
      }
      UpdateAllAttributes
    }
    case ("Gemstone") {
      msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Gemstone</u></font color></font size><br/>And the most appealing gemstone?<br/><br/>1) Emerald. <font color=\"dedede\">{if game.stats=True:Light Green Eyecolor.}</font color><br/><br/>2) Tanzanian. <font color=\"dedede\">{if game.stats=True:Green Eyecolor.}</font color><br/><br/>3) Tiger's Eye. <font color=\"dedede\">{if game.stats=True:Light Brown Eyecolor.}</font color><br/><br/>4) Agate. <font color=\"dedede\">{if game.stats=True:Brown Eyecolor.}</font color><br/><br/>5) Citrine. <font color=\"dedede\">{if game.stats=True:Amber/Gold Eyecolor.}</font color><br/><br/>6) Lapis Lazuli. <font color=\"dedede\">{if game.stats=True:Blue Eyecolor.}</font color><br/><br/>7) Aquamarine. <font color=\"dedede\">{if game.stats=True:Pale Blue Eyecolor.}</font color><br/><br/>8) Hematite. <font color=\"dedede\">{if game.stats=True:Gray Eyecolor.}</font color>")
      menulist = Split("Emerald;Tanzanian;Tiger's Eye;Agate;Citrine;Lapis Lazuli;Aquamarine;Hematite;Random", ";")
      ShowMenu ("", menulist, false) {
        if (result = "Emerald") {
          SetTo ("eyecolor", "light green")
          ClearScreen
          list remove (game.ccreation, "Gemstone")
          list add (game.ccreation, "Scenery")
          CharacterCreation1
        }
        else if (result = "Tanzanian") {
          SetTo ("eyecolor", "green")
          ClearScreen
          list remove (game.ccreation, "Gemstone")
          list add (game.ccreation, "Scenery")
          CharacterCreation1
        }
        else if (result = "Tiger's Eye") {
          SetTo ("eyecolor", "light brown")
          ClearScreen
          list remove (game.ccreation, "Gemstone")
          list add (game.ccreation, "Scenery")
          CharacterCreation1
        }
        else if (result = "Agate") {
          SetTo ("eyecolor", "brown")
          ClearScreen
          list remove (game.ccreation, "Gemstone")
          list add (game.ccreation, "Scenery")
          CharacterCreation1
        }
        else if (result = "Citrine") {
          SetTo ("eyecolor", "gold")
          ClearScreen
          list remove (game.ccreation, "Gemstone")
          list add (game.ccreation, "Scenery")
          CharacterCreation1
        }
        else if (result = "Lapis Lazuli") {
          SetTo ("eyecolor", "blue")
          ClearScreen
          list remove (game.ccreation, "Gemstone")
          list add (game.ccreation, "Scenery")
          CharacterCreation1
        }
        else if (result = "Aquamarine") {
          SetTo ("eyecolor", "pale blue")
          ClearScreen
          list remove (game.ccreation, "Gemstone")
          list add (game.ccreation, "Scenery")
          CharacterCreation1
        }
        else if (result = "Hematite") {
          SetTo ("eyecolor", "gray")
          ClearScreen
          list remove (game.ccreation, "Gemstone")
          list add (game.ccreation, "Scenery")
          CharacterCreation1
        }
        else if (result= "Random") {
          result = "Choice "+GetRandomInt(1,8)
        }
      }
      UpdateAllAttributes
    }
    case ("Scenery") {
      msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Scenery</u></font color></font size><br/>And the scenery that described you best as a child?<br/><br/>1) A Beautiful Sandy Beach. {if game.stats=True:<font color=\"dedede\">Brunette Hair.</font color>}<br/><br/>2) A Stunning Evening With A Rich Sunset. {if game.stats=True:<font color=\"dedede\">Red Hair.</font color>}<br/><br/>3) A Black Sky Illuminated By A Blood Moon. {if game.stats=True:<font color=\"dedede\">Dark Red Hair.</font color>}<br/><br/>4) The Abyssal Night Sky. {if game.stats=True:<font color=\"dedede\">Black Hair.</font color>}<br/><br/>5) An Endless Field Of Large Sunflowers. {if game.stats=True:<font color=\"dedede\">Dirty Blonde Hair.</font color>}<br/><br/>6) A Dark Pond Brightened By Lotus Flowers. {if game.stats=True:<font color=\"dedede\">Platinum Blonde Hair.</font color>}<br/><br/>7) A Heavy Snow Laden Meadow. {if game.stats=True:<font color=\"dedede\">White Hair.</font color>}<br/><br/>8) A Dark Misty Forest At Twilight. {if game.stats=True:<font color=\"dedede\">Silver Hair.</font color>} ")
      menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice5;Choice 6;Choice 7;Choice 8;Random", ";")
      ShowMenu ("", menulist, false) {
        if (result = "Choice 1") {
          SetTo ("haircolor", "brunette")
          wait {
            ClearScreen
            msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Length</u></font color></font size><br/>And how long is it?<br/><br/>1) You like wearing it bald at the moment.<br/><br/>2) You like having it extremely short, practically buzzed.<br/><br/>3) You like wearing it short. <br/><br/>4) You like having it about shoulder-length as of late.<br/><br/>5) You like having it long and flowing. ")
            menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Random", ";")
            ShowMenu ("", menulist, false) {
              if (result = "Choice 1") {
                SetTo ("hairlength", "bald")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 2") {
                SetTo ("hairlength", "buzzed")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 3") {
                SetTo ("hairlength", "short")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 4") {
                SetTo ("hairlength", "shoulder length")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 5") {
                SetTo ("hairlength", "long")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Random") {
                result = "Choice "+GetRandomInt(1,5)
              }
            }
          }
        }
        else if (result = "Choice 2") {
          SetTo ("haircolor", "red")
          wait {
            ClearScreen
            msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Length</u></font color></font size><br/>And how long is it?<br/><br/>1) You like wearing it bald at the moment.<br/><br/>2) You like having it extremely short, practically buzzed.<br/><br/>3) You like wearing it short. <br/><br/>4) You like having it about shoulder-length as of late.<br/><br/>5) You like having it long and flowing. ")
            menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Random", ";")
            ShowMenu ("", menulist, false) {
              if (result = "Choice 1") {
                SetTo ("hairlength", "bald")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 2") {
                SetTo ("hairlength", "buzzed")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 3") {
                SetTo ("hairlength", "short")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 4") {
                SetTo ("hairlength", "shoulder length")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 5") {
                SetTo ("hairlength", "long")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Random") {
                result = "Choice "+GetRandomInt(1,5)
              }
            }
          }
          UpdateAllAttributes
        }
        else if (result = "Choice 3") {
          SetTo ("haircolor", "dark red")
          wait {
            ClearScreen
            msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Length</u></font color></font size><br/>And how long is it?<br/><br/>1) You like wearing it bald at the moment.<br/><br/>2) You like having it extremely short, practically buzzed.<br/><br/>3) You like wearing it short. <br/><br/>4) You like having it about shoulder-length as of late.<br/><br/>5) You like having it long and flowing. ")
            menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Random", ";")
            ShowMenu ("", menulist, false) {
              if (result = "Choice 1") {
                SetTo ("hairlength", "bald")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 2") {
                SetTo ("hairlength", "buzzed")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 3") {
                SetTo ("hairlength", "short")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 4") {
                SetTo ("hairlength", "shoulder length")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 5") {
                SetTo ("hairlength", "long")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Random") {
                result = "Choice "+GetRandomInt(1,5)
              }
            }
          }
        }
        else if (result = "Choice 4") {
          SetTo ("haircolor", "black")
          wait {
            ClearScreen
            msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Length</u></font color></font size><br/>And how long is it?<br/><br/>1) You like wearing it bald at the moment.<br/><br/>2) You like having it extremely short, practically buzzed.<br/><br/>3) You like wearing it short. <br/><br/>4) You like having it about shoulder-length as of late.<br/><br/>5) You like having it long and flowing. ")
            menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Random", ";")
            ShowMenu ("", menulist, false) {
              if (result = "Choice 1") {
                SetTo ("hairlength", "bald")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 2") {
                SetTo ("hairlength", "buzzed")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 3") {
                SetTo ("hairlength", "short")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 4") {
                SetTo ("hairlength", "shoulder length")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 5") {
                SetTo ("hairlength", "long")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Random") {
                result = "Choice "+GetRandomInt(1,5)
              }
            }
          }
        }
        else if (result = "Choice 5") {
          SetTo ("haircolor", "dirty blonde")
          wait {
            ClearScreen
            msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Length</u></font color></font size><br/>And how long is it?<br/><br/>1) You like wearing it bald at the moment.<br/><br/>2) You like having it extremely short, practically buzzed.<br/><br/>3) You like wearing it short. <br/><br/>4) You like having it about shoulder-length as of late.<br/><br/>5) You like having it long and flowing. ")
            menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Random", ";")
            ShowMenu ("", menulist, false) {
              if (result = "Choice 1") {
                SetTo ("hairlength", "bald")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 2") {
                SetTo ("hairlength", "buzzed")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 3") {
                SetTo ("hairlength", "short")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 4") {
                SetTo ("hairlength", "shoulder length")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 5") {
                SetTo ("hairlength", "long")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Random") {
                result = "Choice "+GetRandomInt(1,5)
              }
            }
          }
        }
        else if (result = "Choice 6") {
          SetTo ("haircolor", "platinum blonde")
          wait {
            ClearScreen
            msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Length</u></font color></font size><br/>And how long is it?<br/><br/>1) You like wearing it bald at the moment.<br/><br/>2) You like having it extremely short, practically buzzed.<br/><br/>3) You like wearing it short. <br/><br/>4) You like having it about shoulder-length as of late.<br/><br/>5) You like having it long and flowing. ")
            menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Random", ";")
            ShowMenu ("", menulist, false) {
              if (result = "Choice 1") {
                SetTo ("hairlength", "bald")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 2") {
                SetTo ("hairlength", "buzzed")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 3") {
                SetTo ("hairlength", "short")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 4") {
                SetTo ("hairlength", "shoulder length")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 5") {
                SetTo ("hairlength", "long")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Random") {
                result = "Choice "+GetRandomInt(1,5)
              }
            }
          }
        }
        else if (result = "Choice 7") {
          SetTo ("haircolor", "white")
          wait {
            ClearScreen
            msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Length</u></font color></font size><br/>And how long is it?<br/><br/>1) You like wearing it bald at the moment.<br/><br/>2) You like having it extremely short, practically buzzed.<br/><br/>3) You like wearing it short. <br/><br/>4) You like having it about shoulder-length as of late.<br/><br/>5) You like having it long and flowing. ")
            menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Random", ";")
            ShowMenu ("", menulist, false) {
              if (result = "Choice 1") {
                SetTo ("hairlength", "bald")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 2") {
                SetTo ("hairlength", "buzzed")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 3") {
                SetTo ("hairlength", "short")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 4") {
                SetTo ("hairlength", "shoulder length")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 5") {
                SetTo ("hairlength", "long")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Random") {
                result = "Choice "+GetRandomInt(1,5)
              }
            }
          }
        }
        else if (result = "Choice 8") {
          SetTo ("haircolor", "silver")
          wait {
            ClearScreen
            msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Length</u></font color></font size><br/>And how long is it?<br/><br/>1) You like wearing it bald at the moment.<br/><br/>2) You like having it extremely short, practically buzzed.<br/><br/>3) You like wearing it short. <br/><br/>4) You like having it about shoulder-length as of late.<br/><br/>5) You like having it long and flowing. ")
            menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Random", ";")
            ShowMenu ("", menulist, false) {
              if (result = "Choice 1") {
                SetTo ("hairlength", "bald")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 2") {
                SetTo ("hairlength", "buzzed")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 3") {
                SetTo ("hairlength", "short")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 4") {
                SetTo ("hairlength", "shoulder length")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Choice 5") {
                SetTo ("hairlength", "long")
                ClearScreen
                list remove (game.ccreation, "Scenery")
                list add (game.ccreation, "Belief")
                CharacterCreation1
              }
              else if (result = "Random") {
                result = "Choice "+GetRandomInt(1,5)
              }
            }
          }
        }
        else if (result = "Random") {
          result = "Choice "+GetRandomInt(1,8)
        }
      }
      UpdateAllAttributes
    }
    case ("Belief") {
      msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Belief</u></font color></font size><br/>You’ve always believed…<br/><br/>1) Perseverance is the key to all life’s endeavors. <font color=\"dedede\">{if game.stats=True:Human Race, +1 MX HLTH, +1 MX CRRY.}</font color><br/><br/>2) That you cannot rely on anyone but yourself. <font color=\"dedede\">{if game.stats=True:Elven Race, +1 MX HLTH +1 AGL.}</font color><br/><br/>3) The key to life is having a great time and enjoying company. <font color=\"dedede\">{if game.stats=True: Dwarven Race, +1 MX HLTH, +1 STR.}</font color><br/><br/>4) That everything happens for a reason. <font color=\"dedede\">{if game.stats=True:Dragon-Descended Race, +2 RST.}</font color><br/><br/>5) That anybody can make a difference in they put their heart into it. <font color=\"dedede\">{if game.stats=True:Halfling Race, +2 AGL.}</font color><br/><br/>6) That to succeed in any endeavor, you must believe in yourself. <font color=\"dedede\">{if game.stats=True:Orc-Descended Race, +2 STR.}</font color><br/><br/>7) That one should not be deceived by outward appearances. <font color=\"dedede\">{if game.stats=True:Gnome Race, +2 INT.}</font color>")
      menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Choice 6;Choice 7;Random", ";")
      ShowMenu ("", menulist, false) {
        if (result = "Choice 1") {
          SetTo ("race", "human")
          SetTo ("feet", "human")
          SetTo ("hands", "human")
          SetTo ("ears", "human")
          SetTo ("mouth", "human")
          fur.show = False
          wings.show = False
          skin.show = True
          scales.show = False
          tails.show = False
          horns.show = False
          feathers.show = False
          if (player.gender="female") {
            player.height = Split ("5.0;5.2;5.4;5.6;5.8;6.0", ";")[GetRandomInt(0,5)]
          }
          else {
            player.height = Split ("5.2;5.4;5.6;5.8;6.0;6.2", ";")[GetRandomInt(0,5)]
          }
          ClearScreen
          list remove (game.ccreation, "Belief")
          list add (game.ccreation, "Ethnicity")
          CharacterCreation1
        }
        else if (result = "Choice 2" ) {
          SetTo ("race", "elven")
          SetTo ("feet", "elven")
          SetTo ("hands", "elven")
          SetTo ("ears", "elven")
          SetTo ("mouth", "elven")
          fur.show = False
          wings.show = False
          skin.show = True
          scales.show = False
          tails.show = False
          horns.show = False
          feathers.show = False
          if (player.gender="female") {
            player.height = Split ("5.0;5.2;5.4;5.6;5.8;6.0", ";")[GetRandomInt(0,5)]
          }
          else {
            player.height = Split ("5.2;5.4;5.6;5.8;6.0;6.2", ";")[GetRandomInt(0,5)]
          }
          ClearScreen
          list remove (game.ccreation, "Belief")
          list add (game.ccreation, "Ethnicity")
          CharacterCreation1
        }
        else if (result = "Choice 3" ) {
          SetTo ("race", "dwarf")
          SetTo ("feet", "dwarf")
          SetTo ("hands", "dwarf")
          SetTo ("ears", "dwarf")
          SetTo ("mouth", "dwarf")
          fur.show = False
          wings.show = False
          skin.show = True
          scales.show = False
          tails.show = False
          horns.show = False
          feathers.show = False
          if (player.gender="female") {
            player.height = Split ("4.0;4.2;4.4;4.6;4.8;5.0", ";")[GetRandomInt(0,5)]
          }
          else {
            player.height = Split ("4.2;4.4;4.6;4.8;5.0;5.2", ";")[GetRandomInt(0,5)]
          }
          ClearScreen
          list remove (game.ccreation, "Belief")
          list add (game.ccreation, "Ethnicity")
          CharacterCreation1
        }
        else if (result = "Choice 4" ) {
          SetTo ("race", "dragon-descended")
          SetTo ("feet", "dragon-descended")
          SetTo ("hands", "dragon-descended")
          SetTo ("ears", "dragon-descended")
          SetTo ("mouth", "dragon-descended")
          SetTo ("tails", "dragon-descended")
          fur.show = False
          wings.show = False
          skin.show = True
          scales.show = True
          tails.show = True
          horns.show = False
          feathers.show = False
          if (player.gender="female") {
            player.height = Split ("5.0;5.2;5.4;5.6;5.8;6.0", ";")[GetRandomInt(0,5)]
          }
          else {
            player.height = Split ("5.2;5.4;5.6;5.8;6.0;6.2", ";")[GetRandomInt(0,5)]
          }
          ClearScreen
          list remove (game.ccreation, "Belief")
          list add (game.ccreation, "Ethnicity")
          CharacterCreation1
        }
        else if (result = "Choice 5" ) {
          SetTo ("race", "halfling")
          SetTo ("feet", "halfling")
          SetTo ("hands", "halfling")
          SetTo ("ears", "halfling")
          SetTo ("mouth", "halfling")
          fur.show = False
          wings.show = False
          skin.show = True
          scales.show = False
          tails.show = False
          horns.show = False
          feathers.show = False
          if (player.gender="female") {
            player.height = Split ("3.4;3.6;3.8;4.0;4.2;4.4", ";")[GetRandomInt(0,5)]
          }
          else {
            player.height = Split ("3.6;3.8;4.0;4.2;4.4;4.6", ";")[GetRandomInt(0,5)]
          }
          ClearScreen
          list remove (game.ccreation, "Belief")
          list add (game.ccreation, "Ethnicity")
          CharacterCreation1
        }
        else if (result = "Choice 6" ) {
          SetTo ("race", "orc-descended")
          SetTo ("feet", "orc-descended")
          SetTo ("hands", "orc-descended")
          SetTo ("ears", "orc-descended")
          SetTo ("mouth", "orc-descended")
          fur.show = False
          wings.show = False
          skin.show = True
          scales.show = False
          tails.show = False
          horns.show = False
          feathers.show = False
          if (player.gender="female") {
            player.height = Split ("5.4;5.6;5.8;6.0;6.2;6.4", ";")[GetRandomInt(0,5)]
          }
          else {
            player.height = Split ("5.6;5.8;6.0;6.2;6.4;6.6", ";")[GetRandomInt(0,5)]
          }
          ClearScreen
          list remove (game.ccreation, "Belief")
          list add (game.ccreation, "Ethnicity")
          CharacterCreation1
        }
        else if (result = "Choice 7" ) {
          SetTo ("race", "gnome")
          SetTo ("feet", "gnome")
          SetTo ("hands", "gnome")
          SetTo ("ears", "gnome")
          SetTo ("mouth", "gnome")
          fur.show = False
          wings.show = False
          skin.show = True
          scales.show = False
          tails.show = False
          horns.show = False
          feathers.show = False
          if (player.gender="female") {
            player.height = Split ("3.4;3.6;3.8;4.0;4.2;4.4", ";")[GetRandomInt(0,5)]
          }
          else {
            player.height = Split ("3.6;3.8;4.0;4.2;4.4;4.6", ";")[GetRandomInt(0,5)]
          }
          ClearScreen
          list remove (game.ccreation, "Belief")
          list add (game.ccreation, "Ethnicity")
          CharacterCreation1
        }
        else if (result = "Random" ) {
          result = "Choice "+GetRandomInt(1,7)
        }
      }
    }
    case ("Ethnicity") {
      msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Ethnicity</u></font color></font size><br/>What about your ethnicity?")
      if (player.race="human") {
        msg ("<br/>1) Wintervalan. {if game.stats=True:<font color=\"dedede\">Pale Skin.</font color>}<br/><br/>2) Bourghian. {if game.stats=True:<font color=\"dedede\">Black Skin.</font color>}<br/><br/>3) Miran. {if game.stats=True:<font color=\"dedede\">Brown Skin.</font color>}<br/><br/>4) Itavican. {if game.stats=True:<font color=\"dedede\">Freckled Skin.</font color>}<br/><br/>5) Thaosian. {if game.stats=True:<font color=\"dedede\">Olive Skin.</font color>}<br/><br/>6) Agian. {if game.stats=True:<font color=\"dedede\">Tanned Skin.</font color>}")
        menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Choice 6;Random", ";")
        ShowMenu ("", menulist, false) {
          if (result = "Choice 1") {
            SetTo ("skin", "pale")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Choice 2") {
            SetTo ("skin", "black")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Choice 3") {
            SetTo ("skin", "brown")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Choice 4") {
            SetTo ("skin", "freckled")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Choice 5") {
            SetTo ("skin", "olive")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Choice 6") {
            SetTo ("skin", "tanned")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Random") {
            result = "Choice "+GetRandomInt(1,6)
          }
        }
        UpdateAllAttributes
      }
      else if (player.race="elven") {
        msg ("<br/>1) Wintervalan. {if game.stats=True:<font color=\"dedede\">Pale Skin.</font color>}<br/><br/>3) Southern Miran. {if game.stats=True:<font color=\"dedede\">Olive Skin.</font color>}<br/><br/>4) Itavican. {if game.stats=True:<font color=\"dedede\">Porcelain Skin.</font color>}<br/><br/>6) Northern Agian. {if game.stats=True:<font color=\"dedede\">Tanned Skin.</font color>}")
        menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Random", ";")
        ShowMenu ("", menulist, false) {
          if (result = "Choice 1") {
            SetTo ("skin", "pale")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Choice 2") {
            SetTo ("skin", "olive")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Choice 3") {
            SetTo ("skin", "white")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Choice 4") {
            SetTo ("skin", "tanned")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Random") {
            result = "Choice "+GetRandomInt(1,4)
          }
        }
      }
      else if (player.race="dwarven") {
        msg ("<br/>1) Wintervalan. {if game.stats=True:<font color=\"dedede\">Pale Skin.</font color>}<br/><br/>2) Bourghian. {if game.stats=True:<font color=\"dedede\">Black Skin.</font color>}<br/><br/>3) Miran. {if game.stats=True:<font color=\"dedede\">Brown Skin.</font color>}<br/><br/>4) Itavican. {if game.stats=True:<font color=\"dedede\">Freckled Skin.</font color>}<br/><br/>5) Thaosian. {if game.stats=True:<font color=\"dedede\">Olive Skin.</font color>}<br/><br/>6) Agian. {if game.stats=True:<font color=\"dedede\">Tanned Skin.</font color>}")
        menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Choice 6;Random", ";")
        ShowMenu ("", menulist, false) {
          if (result = "Choice 1") {
            SetTo ("skin", "pale")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Choice 2") {
            SetTo ("skin", "black")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Choice 3") {
            SetTo ("skin", "brown")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Choice 4") {
            SetTo ("skin", "freckled")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Choice 5") {
            SetTo ("skin", "olive")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Choice 6") {
            SetTo ("skin", "tanned")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Random") {
            result = "Choice "+GetRandomInt(1,6)
          }
        }
      }
      else if (player.race="dragon-descended") {
        msg ("<br/>1) Wintervalan. {if game.stats=True:<font color=\"dedede\">Pale Skin.</font color>}<br/><br/>2) Bourghian. {if game.stats=True:<font color=\"dedede\">Black Skin.</font color>}<br/><br/>3) Miran. {if game.stats=True:<font color=\"dedede\">Brown Skin.</font color>}<br/><br/>4) Itavican. {if game.stats=True:<font color=\"dedede\">Freckled Skin.</font color>}<br/><br/>5) Thaosian. {if game.stats=True:<font color=\"dedede\">Olive Skin.</font color>}<br/><br/>6) Agian. {if game.stats=True:<font color=\"dedede\">Tanned Skin.</font color>}")
        menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Choice 6;Random", ";")
        ShowMenu ("", menulist, false) {
          if (result = "Choice 1") {
            SetTo ("skin", "pale")
            wait {
              ClearScreen
              msg ("<br/>And your scale color?<br/><br/>1) Red<br/><br/>2) Orange.<br/><br/>3) Black.<br/><br/>4) Dynamic-Adaptive.<br/><br/>5) Blue.<br/><br/>6) Green.")
              menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Choice 6;Random", ";")
              ShowMenu ("", menulist, false) {
                if (result = "Choice 1") {
                  SetTo ("scales", "red")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 2") {
                  SetTo ("scales", "orange")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 3") {
                  SetTo ("scales", "black")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 4") {
                  SetTo ("scales", "dynamic-adaptive")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 5") {
                  SetTo ("scales", "blue")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 6") {
                  SetTo ("scales", "green")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Random") {
                  result = "Choice "+GetRandomInt(1,6)
                }
              }
            }
          }
          else if (result = "Choice 2") {
            SetTo ("skin", "black")
            wait {
              ClearScreen
              msg ("<br/>And your scale color?<br/><br/>1) Red<br/><br/>2) Orange.<br/><br/>3) Black.<br/><br/>4) Dynamic-Adaptive.<br/><br/>5) Blue.<br/><br/>6) Green.")
              menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Choice 6;Random", ";")
              ShowMenu ("", menulist, false) {
                if (result = "Choice 1") {
                  SetTo ("scales", "red")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 2") {
                  SetTo ("scales", "orange")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 3") {
                  SetTo ("scales", "black")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 4") {
                  SetTo ("scales", "dynamic-adaptive")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 5") {
                  SetTo ("scales", "blue")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 6") {
                  SetTo ("scales", "green")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Random") {
                  result = "Choice "+GetRandomInt(1,6)
                }
              }
            }
          }
          else if (result = "Choice 3") {
            SetTo ("skin", "brown")
            wait {
              ClearScreen
              msg ("<br/>And your scale color?<br/><br/>1) Red<br/><br/>2) Orange.<br/><br/>3) Black.<br/><br/>4) Dynamic-Adaptive.<br/><br/>5) Blue.<br/><br/>6) Green.")
              menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Choice 6;Random", ";")
              ShowMenu ("", menulist, false) {
                if (result = "Choice 1") {
                  SetTo ("scales", "red")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 2") {
                  SetTo ("scales", "orange")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 3") {
                  SetTo ("scales", "black")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 4") {
                  SetTo ("scales", "dynamic-adaptive")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 5") {
                  SetTo ("scales", "blue")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 6") {
                  SetTo ("scales", "green")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Random") {
                  result = "Choice "+GetRandomInt(1,6)
                }
              }
            }
          }
          else if (result = "Choice 4") {
            SetTo ("skin", "freckled")
            wait {
              ClearScreen
              msg ("<br/>And your scale color?<br/><br/>1) Red<br/><br/>2) Orange.<br/><br/>3) Black.<br/><br/>4) Dynamic-Adaptive.<br/><br/>5) Blue.<br/><br/>6) Green.")
              menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Choice 6;Random", ";")
              ShowMenu ("", menulist, false) {
                if (result = "Choice 1") {
                  SetTo ("scales", "red")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 2") {
                  SetTo ("scales", "orange")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 3") {
                  SetTo ("scales", "black")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 4") {
                  SetTo ("scales", "dynamic-adaptive")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 5") {
                  SetTo ("scales", "blue")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 6") {
                  SetTo ("scales", "green")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Random") {
                  result = "Choice "+GetRandomInt(1,6)
                }
              }
            }
          }
          else if (result = "Choice 5") {
            SetTo ("skin", "olive")
            wait {
              ClearScreen
              msg ("<br/>And your scale color?<br/><br/>1) Red<br/><br/>2) Orange.<br/><br/>3) Black.<br/><br/>4) Dynamic-Adaptive.<br/><br/>5) Blue.<br/><br/>6) Green.")
              menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Choice 6;Random", ";")
              ShowMenu ("", menulist, false) {
                if (result = "Choice 1") {
                  SetTo ("scales", "red")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 2") {
                  SetTo ("scales", "orange")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 3") {
                  SetTo ("scales", "black")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 4") {
                  SetTo ("scales", "dynamic-adaptive")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 5") {
                  SetTo ("scales", "blue")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 6") {
                  SetTo ("scales", "green")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Random") {
                  result = "Choice "+GetRandomInt(1,6)
                }
              }
            }
          }
          else if (result = "Choice 6") {
            SetTo ("skin", "tanned")
            wait {
              ClearScreen
              msg ("<br/>And your scale color?<br/><br/>1) Red<br/><br/>2) Orange.<br/><br/>3) Black.<br/><br/>4) Dynamic-Adaptive.<br/><br/>5) Blue.<br/><br/>6) Green.")
              menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Choice 6;Random", ";")
              ShowMenu ("", menulist, false) {
                if (result = "Choice 1") {
                  SetTo ("scales", "red")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 2") {
                  SetTo ("scales", "orange")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 3") {
                  SetTo ("scales", "black")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 4") {
                  SetTo ("scales", "dynamic-adaptive")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 5") {
                  SetTo ("scales", "blue")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Choice 6") {
                  SetTo ("scales", "green")
                  ClearScreen
                  list remove (game.ccreation, "Ethnicity")
                  list add (game.ccreation, "Values")
                  CharacterCreation1
                }
                else if (result = "Random") {
                  result = "Choice "+GetRandomInt(1,6)
                }
              }
            }
          }
          else if (result = "Random") {
            result = "Choice "+GetRandomInt(1,6)
          }
        }
      }
      else if (player.race="halfling") {
        msg ("<br/>1) Wintervalan. {if game.stats=True:<font color=\"dedede\">Pale Skin.</font color>}<br/><br/>2) Bourghian. {if game.stats=True:<font color=\"dedede\">Black Skin.</font color>}<br/><br/>3) Miran. {if game.stats=True:<font color=\"dedede\">Brown Skin.</font color>}<br/><br/>4) Itavican. {if game.stats=True:<font color=\"dedede\">Freckled Skin.</font color>}<br/><br/>5) Thaosian. {if game.stats=True:<font color=\"dedede\">Olive Skin.</font color>}<br/><br/>6) Agian. {if game.stats=True:<font color=\"dedede\">Tanned Skin.</font color>}")
        menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Choice 6;Random", ";")
        ShowMenu ("", menulist, false) {
          if (result = "Choice 1") {
            SetTo ("skin", "pale")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Choice 2") {
            SetTo ("skin", "black")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Choice 3") {
            SetTo ("skin", "brown")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Choice 4") {
            SetTo ("skin", "freckled")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Choice 5") {
            SetTo ("skin", "olive")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Choice 6") {
            SetTo ("skin", "tanned")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Random") {
            result = "Choice "+GetRandomInt(1,6)
          }
        }
      }
      else if (player.race="orc-descended") {
        msg ("<br/>1) Northern Agian. {if game.stats=True:<font color=\"dedede\">Green Skin.</font color>}<br/><br/>2) Boroughian. {if game.stats=True:<font color=\"dedede\">Red Skin.</font color>}<br/><br/>3) Southern Itavican. {if game.stats=True:<font color=\"dedede\">Light Gray Skin.</font color>}")
        menulist = Split("Choice 1;Choice 2;Choice 3;Random", ";")
        ShowMenu ("", menulist, false) {
          if (result = "Choice 1") {
            SetTo ("skincolor", "green")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Choice 2") {
            SetTo ("skincolor", "red")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Choice 3") {
            SetTo ("skincolor", "grayish")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Random") {
            result = "Choice "+GetRandomInt(1,3)
          }
        }
      }
      else if (player.race="gnome") {
        msg ("<br/>1) Wintervalan. {if game.stats=True:<font color=\"dedede\">Pale Skin.</font color>}<br/><br/>2) Bourghian. {if game.stats=True:<font color=\"dedede\">Black Skin.</font color>}<br/><br/>3) Miran. {if game.stats=True:<font color=\"dedede\">Brown Skin.</font color>}<br/><br/>4) Itavican. {if game.stats=True:<font color=\"dedede\">Freckled Skin.</font color>}<br/><br/>5) Thaosian. {if game.stats=True:<font color=\"dedede\">Olive Skin.</font color>}<br/><br/>6) Agian. {if game.stats=True:<font color=\"dedede\">Tanned Skin.</font color>}")
        menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Choice 6;Random", ";")
        ShowMenu ("", menulist, false) {
          if (result = "Choice 1") {
            SetTo ("skin", "pale")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Choice 2") {
            SetTo ("skin", "black")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Choice 3") {
            SetTo ("skin", "brown")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Choice 4") {
            SetTo ("skin", "freckled")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Choice 5") {
            SetTo ("skin", "olive")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Choice 6") {
            SetTo ("skin", "tanned")
            ClearScreen
            list remove (game.ccreation, "Ethnicity")
            list add (game.ccreation, "Values")
            CharacterCreation1
          }
          else if (result = "Random") {
            result = "Choice "+GetRandomInt(1,6)
          }
        }
      }
      UpdateAllAttributes
    }
    case ("Values") {
      msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Some Memories Aren’t Enough.</u></font color></font size><br/>Although, we must be careful that the memories we draw our strength from are substantial enough to help us carry the weight of our future, that they keep us above the abyss of disorientation. The foundation of our entire being relies on us being full of genuine experience and unbridled passion. The measure of our past and future can sometimes be measured by our introspection as well, but as the old proverb states; stare into the abyss for long enough---and the abyss will stare right back. <br/><br/>That’s why it’s important not to live in the past too long. It’s easy to get trapped there and to focus on the trivial aspects of our lives and avoid that with carries our greatest pain and triumphs. This is why the journey forward is needed now more than ever before. Unfortunately, these memories aren’t enough. Gender? Wealth? Heritage? Not all of these qualities define who we become. They carry weight, but we must delve deeper to that which carries significance and purpose.")
      wait {
        ClearScreen
        msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Values</u></font color></font size><br/>As you grew into a child, what did you value most?<br/><br/>1) Being Yourself/Authentic. <font color=\"dedede\">{if game.stats=True:+1 RST}</font color><br/><br/>2) Maintaining Balance. <font color=\"dedede\">{if game.stats=True:+1 MX HLTH}</font color><br/><br/>3) Exploring Your Curiosity. <font color=\"dedede\">{if game.stats=True:+1 MX CRRY}</font color><br/><br/>4) Being A Leader. <font color=\"dedede\">{if game.stats=True:+1 STR}</font color><br/><br/>5) Blending In. <font color=\"dedede\">{if game.stats=True:+1 AGL}</font color><br/><br/>6) Being {if player.gender=female:Beautiful}{if player.gender=male:Handsome}. <font color=\"dedede\">{if game.stats=True:+1 MX HLTH, +1 CHARM SKILL, +5 CRPT}</font color><br/><br/>7) Having Religious Faith. <font color=\"dedede\">{if game.stats=True:+1 INT, +1 RST, +5 CRPT}</font color><br/><br/>8) Belief in Scientific Discovery. <font color=\"dedede\">{if game.stats=True:+1 INT}</font color><br/><br/>9) Having Honor and Discipline. <font color=\"dedede\">{if game.stats=True:+1 DEF}</font color><br/><br/>10) Friends and Family Wellbeing. <font color=\"dedede\">{if game.stats=True:-10 CRPT}</font color>")
        menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Choice 6;Choice 7;Choice 8;Choice 9;Choice 10;Random", ";")
        ShowMenu ("", menulist, false) {
          if (result = "Choice 1") {
            player.resist = player.resist + 1
            ClearScreen
            list remove (game.ccreation, "Values")
            list add (game.ccreation, "Moral Choice 1")
            CharacterCreation1
          }
          else if (result = "Choice 2") {
            player.base_health = player.base_health + 1
            ClearScreen
            list remove (game.ccreation, "Values")
            list add (game.ccreation, "Moral Choice 1")
            CharacterCreation1
          }
          else if (result = "Choice 3") {
            player.maxvolume = player.maxvolume + 1
            ClearScreen
            list remove (game.ccreation, "Values")
            list add (game.ccreation, "Moral Choice 1")
            CharacterCreation1
          }
          else if (result = "Choice 4") {
            player.base_strength = player.base_strength + 1
            ClearScreen
            list remove (game.ccreation, "Values")
            list add (game.ccreation, "Moral Choice 1")
            CharacterCreation1
          }
          else if (result = "Choice 5") {
            player.base_agility = player.base_agility + 1
            ClearScreen
            list remove (game.ccreation, "Values")
            list add (game.ccreation, "Moral Choice 1")
            CharacterCreation1
          }
          else if (result = "Choice 6") {
            player.base_health = player.base_health + 1
            player.charmskill = player.charmskill + 1
            player.corruption = player.corruption + 5
            ClearScreen
            list remove (game.ccreation, "Values")
            list add (game.ccreation, "Moral Choice 1")
            CharacterCreation1
          }
          else if (result = "Choice 7") {
            player.base_intelligence = player.base_intelligence + 1
            player.resist = player.resist + 1
            player.corruption = player.corruption + 5
            ClearScreen
            list remove (game.ccreation, "Values")
            list add (game.ccreation, "Moral Choice 1")
            CharacterCreation1
          }
          else if (result = "Choice 8") {
            player.base_intelligence = player.base_intelligence + 1
            ClearScreen
            list remove (game.ccreation, "Values")
            list add (game.ccreation, "Moral Choice 1")
            CharacterCreation1
          }
          else if (result = "Choice 9") {
            player.base_defense = player.base_defense + 1
            ClearScreen
            list remove (game.ccreation, "Values")
            list add (game.ccreation, "Moral Choice 1")
            CharacterCreation1
          }
          else if (result = "Choice 10") {
            player.corruption = player.corruption - 10
            ClearScreen
            list remove (game.ccreation, "Values")
            list add (game.ccreation, "Moral Choice 1")
            CharacterCreation1
          }
          else if (result = "Random") {
            result = "Choice "+GetRandomInt(1,10)
          }
        }
      }
      UpdateAllAttributes
    }
    case ("Moral Choice 1") {
      if (RandomChance(50)) {
        msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Moral Choice</u></font color></font size><br/>When you were about 10 years old, you once saw Mr.Peyten, a beggar with two young daughters about your age, steal a bag of various fruits from a poor travelling merchant who looked to be struggling himself. How did you respond?<br/><br/>1) Stealing is stealing. I feel terrible about the situation Mr.Peyten and his daughters are in, but breaking the law and resorting to theft doesn’t help their situation. {if game.stats=True:<font color=\"dedede\">-5 CRPT.</font color>}<br/><br/>2) Stealing is wrong, sure. But if Mr.Peyten has a really good reason. Letting his family starve, that’s the real crime. If he has to steal a little to keep his family alive so be it. {if game.stats=True:<font color=\"dedede\">+1 INT.</font color>}<br/><br/>3) Who cares if he was stealing? It’s none of my business. Let him do whatever he wants, it’s got nothing to do with me. {if game.stats=True:<font color=\"dedede\">+1 MXCRRY.</font color>}<br/><br/>4) I confronted him and told him not to do it again. Stealing is wrong and he should know better. It doesn’t matter what the reason for doing it is. {if game.stats=True:<font color=\"dedede\">+1 STR.</font color>}<br/><br/>5) I confronted him and told him to give me half of what he stole or I would report him to the village guards and the lord of our village. If he’s going to steal, I want to reap the benefits as well. {if game.stats=True:<font color=\"dedede\">+1 AGL, +1 RST, +10 CRPT.</font color>}")
        menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Random", ";")
        ShowMenu ("", menulist, false) {
          if (result = "Choice 1") {
            player.corruption = player.corruption - 5
            ClearScreen
            list remove (game.ccreation, "Moral Choice 1")
            list add (game.ccreation, "Moral Choice 2")
            CharacterCreation1
          }
          else if (result = "Choice 2") {
            player.base_intelligence = player.base_intelligence + 1
            ClearScreen
            list remove (game.ccreation, "Moral Choice 1")
            list add (game.ccreation, "Moral Choice 2")
            CharacterCreation1
          }
          else if (result = "Choice 3") {
            player.maxvolume = player.maxvolume + 1
            ClearScreen
            list remove (game.ccreation, "Moral Choice 1")
            list add (game.ccreation, "Moral Choice 2")
            CharacterCreation1
          }
          else if (result = "Choice 4") {
            player.base_strength = player.base_strength + 1
            ClearScreen
            list remove (game.ccreation, "Moral Choice 1")
            list add (game.ccreation, "Moral Choice 2")
            CharacterCreation1
          }
          else if (result = "Choice 5") {
            player.base_agility = player.base_agility + 1
            player.resist = player.resist + 1
            player.corruption = player.corruption + 10
            ClearScreen
            list remove (game.ccreation, "Moral Choice 1")
            list add (game.ccreation, "Moral Choice 2")
            CharacterCreation1
          }
          else if (result = "Random") {
            result = "Choice "+GetRandomInt(1,5)
          }
        }
      }
      else {
        msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Moral Choice</u></font color></font size><br/>When you were about 10 years old, you once saw Ms.Moon, a beggar with two young sons about your age, steal a bag of various fruits from a poor travelling merchant who looked to be struggling himself. How did you respond?<br/><br/>1) Stealing is stealing. I feel terrible about the situation Ms.Moon and her sons are in, but breaking the law and resorting to theft doesn’t help their situation. {if game.stats=True:<font color=\"dedede\">-5 CRPT.</font color>}<br/><br/>2) Stealing is wrong, sure. But if Ms.Moon has a really good reason. Letting her family starve, that’s the real crime. If she has to steal a little to keep her family alive so be it. {if game.stats=True:<font color=\"dedede\">+1 INT.</font color>}<br/><br/>3) Who cares if she was stealing? It’s none of my business. Let her do whatever she wants, it’s got nothing to do with me. {if game.stats=True:<font color=\"dedede\">+1 MXCRRY.</font color>}<br/><br/>4) I confronted her and told her not to do it again. Stealing is wrong and she should know better. It doesn’t matter what the reason for doing it is. {if game.stats=True:<font color=\"dedede\">+1 STR.</font color>}<br/><br/>5) I confronted her and told her to give me half of what she stole or I would report her to the village guards and the lord of our village. If she’s going to steal, I want to reap the benefits as well. {if game.stats=True:<font color=\"dedede\">+1 AGL, +1 RST, +10 CRPT.</font color>}")
        menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Random", ";")
        ShowMenu ("", menulist, false) {
          if (result = "Choice 1") {
            player.corruption = player.corruption - 5
            ClearScreen
            list remove (game.ccreation, "Moral Choice 1")
            list add (game.ccreation, "Moral Choice 2")
            CharacterCreation1
          }
          else if (result = "Choice 2") {
            player.base_intelligence = player.base_intelligence + 1
            ClearScreen
            list remove (game.ccreation, "Moral Choice 1")
            list add (game.ccreation, "Moral Choice 2")
            CharacterCreation1
          }
          else if (result = "Choice 3") {
            player.maxvolume = player.maxvolume + 1
            ClearScreen
            list remove (game.ccreation, "Moral Choice 1")
            list add (game.ccreation, "Moral Choice 2")
            CharacterCreation1
          }
          else if (result = "Choice 4") {
            player.base_strength = player.base_strength + 1
            ClearScreen
            list remove (game.ccreation, "Moral Choice 1")
            list add (game.ccreation, "Moral Choice 2")
            CharacterCreation1
          }
          else if (result = "Choice 5") {
            player.base_agility = player.base_agility + 1
            player.resist = player.resist + 1
            player.corruption = player.corruption + 10
            ClearScreen
            list remove (game.ccreation, "Moral Choice 1")
            list add (game.ccreation, "Moral Choice 2")
            CharacterCreation1
          }
          else if (result = "Random") {
            result = "Choice "+GetRandomInt(1,5)
          }
        }
      }
      UpdateAllAttributes
    }
    case ("Moral Choice 2") {
      if (RandomChance(50)) {
        msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Moral Choice</u></font color></font size><br/>A week before John and Janine (a loving couple who were often very kind to you) were about to get married, you ran into Janine intimately kissing a mysterious traveler. She begged you not to tell her fiance because it would break his heart and hers as well. She promised never to do something like this again. How did you react?<br/><br/>1) It’s a delicate situation. Both of them treat you very well. In the end though cheating is cheating. Despite Janine begging you with tears in her eyes, you quickly find and tell John, as he deserved to know the truth. A day or two later the wedding is called off.  {if game.stats=True:<font color=\"dedede\">-5 CRPT.</font color>}<br/><br/>2) It’s a delicate situation but Janine is a really good person and just because she had a momentary weakness doesn’t mean you should ruin her marriage and their happiness. She promised she wouldn’t do it again and you trust her word. {if game.stats=True:<font color=\"dedede\">+1 MX HLTH.</font color>}<br/><br/>3) The situation is delicate but that’s why you should exploit it as much as possible. Despite all her begging and pleading, you decide to blackmail her to get things you want from them. She reluctantly obliges and the two get married. Your relationship with them is never quite the same but you do get a lot of cool stuff from time to time. {if game.stats=True:<font color=\"dedede\">+1 INT, +1 MX CRRY, +10 GLD,  +15 CRPT.</font color>}<br/><br/>4) After seeing her and the situation, she finishes begging and pleading with all her heart for you not to tell John, you simply shake your head and mention that you don’t want to get involved with this love affair and the lies, so you turn a blind shoulder. Eventually, they get married and your relationship with them becomes a little rocky. {if game.stats=True:<font color=\"dedede\">+1 RST.</font color>}<br/><br/>5) After hearing her pleas, you warn her that if it ever happens again, you’ll go straight to John with the information and the details. She thanks you over and over and assures you that it won’t. Afterward, she runs off and in a week’s time, the two are happily married. To this day, John still doesn’t know. {if game.stats=True:<font color=\"dedede\">+1 MX CRRY.</font color>}")
        menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Random", ";")
        ShowMenu ("", menulist, false) {
          if (result = "Choice 1") {
            player.corruption = player.corruption - 5
            ClearScreen
            list remove (game.ccreation, "Moral Choice 2")
            list add (game.ccreation, "Advice")
            CharacterCreation1
          }
          else if (result = "Choice 2") {
            player.base_health = player.base_health + 1
            ClearScreen
            list remove (game.ccreation, "Moral Choice 2")
            list add (game.ccreation, "Advice")
            CharacterCreation1
          }
          else if (result = "Choice 3") {
            player.base_intelligence = player.base_intelligence + 1
            player.maxvolume = player.maxvolume + 1
            player.gold = player.gold + 10
            player.corruption = player.corruption + 15
            ClearScreen
            list remove (game.ccreation, "Moral Choice 2")
            list add (game.ccreation, "Advice")
            CharacterCreation1
          }
          else if (result = "Choice 4") {
            player.resist = player.resist + 1
            ClearScreen
            list remove (game.ccreation, "Moral Choice 2")
            list add (game.ccreation, "Advice")
            CharacterCreation1
          }
          else if (result = "Choice 5") {
            player.maxvolume = player.maxvolume + 1
            ClearScreen
            list remove (game.ccreation, "Moral Choice 2")
            list add (game.ccreation, "Advice")
            CharacterCreation1
          }
          else if (result = "Random") {
            result = "Choice "+GetRandomInt(1,5)
          }
        }
      }
      else {
        msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Moral Choice</u></font color></font size><br/> A week before John and Janine (a loving couple who were often very kind to you) were about to get married, you ran into John intimately kissing a mysterious traveler. He begged you not to tell his fiance because it would break her heart and his as well. He promised never to do something like this again. How did you react?<br/><br/>1) It’s a delicate situation. Both of them treat you very well. In the end though cheating is cheating. Despite John begging you with tears in his eyes, you quickly find and tell Janine, as she deserved to know the truth. A day or two later the wedding is called off.  {if game.stats=True:<font color=\"dedede\">-5 CRPT.</font color>}<br/><br/>2) It’s a delicate situation but John is a really good person and just because he had a momentary weakness doesn’t mean you should ruin his marriage and their happiness. He promised he wouldn’t do it again and you trust his word. {if game.stats=True:<font color=\"dedede\">+1 MX HLTH.</font color>}<br/><br/>3) The situation is delicate but that’s why you should exploit it as much as possible. Despite all his begging and pleading, you decide to blackmail him to get things you want from them. He reluctantly obliges and the two get married. Your relationship with them is never quite the same but you do get a lot of cool stuff from time to time. {if game.stats=True:<font color=\"dedede\">+1 INT, +1 MX CRRY, +10 GLD,  +15 CRPT.</font color>}<br/><br/>4) After seeing him and the situation, he finishes begging and pleading with all his heart for you not to tell Janine, you simply shake your head and mention that you don’t want to get involved with this love affair and the lies, so you turn a blind shoulder. Eventually, they get married and your relationship with them becomes a little rocky. {if game.stats=True:<font color=\"dedede\">+1 RST.</font color>}<br/><br/>5) After hearing his pleas, you warn him that if it ever happens again, you’ll go straight to Janine with the information and the details. He thanks you over and over and assures you that it won’t. Afterward, he runs off and in a week’s time, the two are happily married. To this day, Janine still doesn’t know. {if game.stats=True:<font color=\"dedede\">+1 MX CRRY.</font color>}")
        menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Random", ";")
        ShowMenu ("", menulist, false) {
          if (result = "Choice 1") {
            player.corruption = player.corruption - 5
            ClearScreen
            list remove (game.ccreation, "Moral Choice 2")
            list add (game.ccreation, "Advice")
            CharacterCreation1
          }
          else if (result = "Choice 2") {
            player.base_health = player.base_health + 1
            ClearScreen
            list remove (game.ccreation, "Moral Choice 2")
            list add (game.ccreation, "Advice")
            CharacterCreation1
          }
          else if (result = "Choice 3") {
            player.base_intelligence = player.base_intelligence + 1
            player.maxvolume = player.maxvolume + 1
            player.gold = player.gold + 10
            player.corruption = player.corruption + 15
            ClearScreen
            list remove (game.ccreation, "Moral Choice 2")
            list add (game.ccreation, "Advice")
            CharacterCreation1
          }
          else if (result = "Choice 4") {
            player.resist = player.resist + 1
            ClearScreen
            list remove (game.ccreation, "Moral Choice 2")
            list add (game.ccreation, "Advice")
            CharacterCreation1
          }
          else if (result = "Choice 5") {
            player.maxvolume = player.maxvolume + 1
            ClearScreen
            list remove (game.ccreation, "Moral Choice 2")
            list add (game.ccreation, "Advice")
            CharacterCreation1
          }
          else if (result = "Random") {
            result = "Choice "+GetRandomInt(1,5)
          }
        }
      }
      UpdateAllAttributes
    }
    case ("Advice") {
      msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Growing Stronger…</u></font color></font size><br/>This is a step in the right direction because these kinds of memories are powerful and can be a beacon shining light when other lights have all but extinguished. These memories also carry an immeasurable weight that will help guide you toward your dreams and your future. They resonate deep inside your heart and remain there tucked away; protected from the harsh reality of the world.<br/><br/>As we grow, we become more ambitious, confident and courageous. We experiment with our identity, all while driving closer each and every day toward the distant horizon where the unknown of tomorrow waits to guide our trembling hands. We must remember who were back then if we are to grow beyond the stagnant wall that blocks our vision of the road ahead...")
      wait {
        ClearScreen
        msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Advice</u></font color></font size><br/>What was the best advice you’ve ever heard?<br/><br/>1) A rolling stone gathers no moss. {if game.stats=True:<font color=\"dedede\">+1 INT.</font color>}<br/><br/>2) A closed mouth does not get fed. {if game.stats=True:<font color=\"dedede\">+1 RST.</font color>} <br/><br/>3) A picture is worth a thousand words. {if game.stats=True:<font color=\"dedede\">+1 MX HLTH.</font color>} <br/><br/>4) Absence makes the heart grow fonder. {if game.stats=True:<font color=\"dedede\">+1 MX CRRY.</font color>} <br/><br/>5) Actions speak louder than words. {if game.stats=True:<font color=\"dedede\">+1 STR.</font color>}<br/><br/>6) Fortune favors the bold. {if game.stats=True:<font color=\"dedede\">+10 GOLD.</font color>}<br/><br/>7) The early bird gets the worm. {if game.stats=True:<font color=\"dedede\">+1 AGL.</font color>}<br/><br/>8) When the going gets tough, the tough get going. {if game.stats=True:<font color=\"dedede\">+1 DEF.</font color>}<br/><br/>9) I never received any good advice. I just did my best. {if game.stats=True:<font color=\"dedede\">-5 CORR.</font color>}")
        menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Choice 6;Choice 7;Choice 8;Choice 9;Random", ";")
        ShowMenu ("", menulist, false) {
          if (result = "Choice 1") {
            player.base_intelligence = player.base_intelligence + 1
            ClearScreen
            list remove (game.ccreation, "Advice")
            list add (game.ccreation, "Pride")
            CharacterCreation1
          }
          else if (result = "Choice 2") {
            player.resist = player.resist + 1
            ClearScreen
            list remove (game.ccreation, "Advice")
            list add (game.ccreation, "Pride")
            CharacterCreation1
          }
          else if (result = "Choice 3") {
            player.base_health = player.base_health + 1
            ClearScreen
            list remove (game.ccreation, "Advice")
            list add (game.ccreation, "Pride")
            CharacterCreation1
          }
          else if (result = "Choice 4") {
            player.maxvolume = player.maxvolume + 1
            ClearScreen
            list remove (game.ccreation, "Advice")
            list add (game.ccreation, "Pride")
            CharacterCreation1
          }
          else if (result = "Choice 5") {
            msg ("<br/><font color=\"dedede\">You gain +1 Strength.</font color>")
            player.base_strength = player.base_strength + 1
            ClearScreen
            list remove (game.ccreation, "Advice")
            list add (game.ccreation, "Pride")
            CharacterCreation1
          }
          else if (result = "Choice 6") {
            msg ("<br/><font color=\"dedede\">You gain +1 Gold.</font color>")
            player.gold = player.gold + 10
            ClearScreen
            list remove (game.ccreation, "Advice")
            list add (game.ccreation, "Pride")
            CharacterCreation1
          }
          else if (result = "Choice 7") {
            player.base_agility = player.base_agility + 1
            ClearScreen
            list remove (game.ccreation, "Advice")
            list add (game.ccreation, "Pride")
            CharacterCreation1
          }
          else if (result = "Choice 8") {
            player.base_defense = player.base_defense + 1
            ClearScreen
            list remove (game.ccreation, "Advice")
            list add (game.ccreation, "Pride")
            CharacterCreation1
          }
          else if (result = "Choice 9") {
            player.corruption = player.corruption - 5
            ClearScreen
            list remove (game.ccreation, "Advice")
            list add (game.ccreation, "Pride")
            CharacterCreation1
          }
          else if (result = "Random") {
            result = "Choice "+GetRandomInt(1,9)
          }
        }
      }
      UpdateAllAttributes
    }
    case ("Pride") {
      msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Pride</u></font color></font size><br/>You prided yourself most on your...<br/><br/>1) Appearance. {if game.stats=True:<font color=\"dedede\">+1 MX HLTH, +1 Charm Skill.</font color>}<br/><br/>2) Brains. {if game.stats=True:<font color=\"dedede\">+1 INT, +1 Alchemy Skill.</font color>}<br/><br/>3) Brawn. {if game.stats=True:<font color=\"dedede\">+1 STR, +1 Forge Skill.</font color>}<br/><br/>4) Inner Strength. {if game.stats=True:<font color=\"dedede\">+1 RST, +1 Meditation Skill.</font color>}<br/><br/>5) Willpower. {if game.stats=True:<font color=\"dedede\">+2 MXCRRY.</font color>}<br/><br/>6) Fortitude. {if game.stats=True:<font color=\"dedede\">+1 MX HLTH, +1 Juggling Skill.</font color>}<br/><br/>7) Flexibility. {if game.stats=True:<font color=\"dedede\">+1 AGL, +1 Tailoring Skill.</font color>}<br/><br/>8) Fortune. {if game.stats=True:<font color=\"dedede\">+10 GLD, +1 Thief Skill.</font color>}<br/><br/>9) Toughness. {if game.stats=True:<font color=\"dedede\">+1 DEF.</font color>}<br/><br/>10) Anger. {if game.stats=True:<font color=\"dedede\">+15 CORR, +1 STR, +1 AGL, +1 INT, +1 MX CRRY, +1 MX HLTH.</font color>}<br/><br/>11) Purity. {if game.stats=True:<font color=\"dedede\">-10 CORR.</font color>}")
      menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Choice 6;Choice 7;Choice 8;Choice 9;Choice 10;Choice 11;Random", ";")
      ShowMenu ("", menulist, false) {
        if (result = "Choice 1") {
          player.base_health = player.base_health + 1
          player.charmskill = player.charmskill + 1
          ClearScreen
          list remove (game.ccreation, "Pride")
          list add (game.ccreation, "Weakness")
          CharacterCreation1
        }
        else if (result = "Choice 2") {
          player.base_intelligence = player.base_intelligence + 1
          player.alchskill = player.alchskill + 1
          ClearScreen
          list remove (game.ccreation, "Pride")
          list add (game.ccreation, "Weakness")
          CharacterCreation1
        }
        else if (result = "Choice 3") {
          player.base_strength = player.base_strength + 1
          player.forgeskill = player.forgeskill + 1
          ClearScreen
          list remove (game.ccreation, "Pride")
          list add (game.ccreation, "Weakness")
          CharacterCreation1
        }
        else if (result = "Choice 4") {
          player.resist = player.resist + 1
          player.meditskill = player.meditskill + 1
          ClearScreen
          list remove (game.ccreation, "Pride")
          list add (game.ccreation, "Weakness")
          CharacterCreation1
        }
        else if (result = "Choice 5") {
          player.maxvolume = player.maxvolume + 2
          ClearScreen
          list remove (game.ccreation, "Pride")
          list add (game.ccreation, "Weakness")
          CharacterCreation1
        }
        else if (result = "Choice 6") {
          player.base_health = player.base_health + 1
          player.juggleskill = player.juggleskill + 1
          ClearScreen
          list remove (game.ccreation, "Pride")
          list add (game.ccreation, "Weakness")
          CharacterCreation1
        }
        else if (result = "Choice 7") {
          player.base_agility = player.base_agility + 1
          player.tailorskill = player.tailorskill + 1
          ClearScreen
          list remove (game.ccreation, "Pride")
          list add (game.ccreation, "Weakness")
          CharacterCreation1
        }
        else if (result = "Choice 8") {
          player.gold = player.gold + 10
          player.thiefskill = player.thiefskill + 1
          ClearScreen
          list remove (game.ccreation, "Pride")
          list add (game.ccreation, "Weakness")
          CharacterCreation1
        }
        else if (result = "Choice 9") {
          player.base_defense = player.base_defense + 1
          ClearScreen
          list remove (game.ccreation, "Pride")
          list add (game.ccreation, "Weakness")
          CharacterCreation1
        }
        else if (result = "Choice 10") {
          player.corruption = player.corruption + 15
          player.base_strength = player.base_strength + 1
          player.base_agility = player.base_agility + 1
          player.base_intelligence = player.base_intelligence + 1
          player.maxvolume = player.maxvolume + 1
          player.base_health = player.base_health + 1
          ClearScreen
          list remove (game.ccreation, "Pride")
          list add (game.ccreation, "Weakness")
          CharacterCreation1
        }
        else if (result = "Choice 11") {
          player.corruption = player.corruption - 10
          ClearScreen
          list remove (game.ccreation, "Pride")
          list add (game.ccreation, "Weakness")
          CharacterCreation1
        }
        else if (result = "Random") {
          result = "Choice "+GetRandomInt(1,11)
        }
      }
      UpdateAllAttributes
    }
    case ("Weakness") {
      msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Pride</u></font color></font size><br/>But what was your biggest weakness?<br/><br/>1) Lust. {if game.stats=True:<font color=\"dedede\">+1 MXHLTH.</font color>}<br/><br/>2) Greed. {if game.stats=True:<font color=\"dedede\">+10 GLD.</font color>}<br/><br/>3) Wrath. {if game.stats=True:<font color=\"dedede\">+1 STR.</font color>}<br/><br/>4) Gluttony. {if game.stats=True:<font color=\"dedede\">+1 MXCRRY.</font color>}<br/><br/>5) Sloth. {if game.stats=True:<font color=\"dedede\">+1 INT.</font color>}<br/><br/>6) Envy. {if game.stats=True:<font color=\"dedede\">+1 AGL.</font color>}<br/><br/>7) Pride. {if game.stats=True:<font color=\"dedede\">+1 RST.</font color>}<br/><br/>8) None of these. {if game.stats=True:<font color=\"dedede\">+15 CORR, +1 STR, +1 AGL, +1 INT.</font color>}")
      menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Choice 6;Choice 7;Choice 8;Random", ";")
      ShowMenu ("", menulist, false) {
        if (result = "Choice 1") {
          player.base_health = player.base_health + 1
          switch (GetHighestAtt()) {
            case ("sexy") {
              player.lust = player.lust + 1
              if (RandomChance(25)) {
                player.virgin = False
              }
            }
            case ("sarcasm") {
              player.lust = player.lust + 1
              if (RandomChance(25)) {
                player.virgin = False
              }
            }
          }
          ClearScreen
          list remove (game.ccreation, "Weakness")
          list add (game.ccreation, "Favorite")
          CharacterCreation1
        }
        else if (result = "Choice 2") {
          player.gold = player.gold + 10
          ClearScreen
          list remove (game.ccreation, "Weakness")
          list add (game.ccreation, "Favorite")
          CharacterCreation1
        }
        else if (result = "Choice 3") {
          player.base_strength = player.base_strength + 1
          ClearScreen
          list remove (game.ccreation, "Weakness")
          list add (game.ccreation, "Favorite")
          CharacterCreation1
        }
        else if (result = "Choice 4") {
          player.maxvolume = player.maxvolume + 1
          ClearScreen
          list remove (game.ccreation, "Weakness")
          list add (game.ccreation, "Favorite")
          CharacterCreation1
        }
        else if (result = "Choice 5") {
          player.base_intelligence = player.base_intelligence + 1
          ClearScreen
          list remove (game.ccreation, "Weakness")
          list add (game.ccreation, "Favorite")
          CharacterCreation1
        }
        else if (result = "Choice 6") {
          player.base_agility = player.base_agility + 1
          ClearScreen
          list remove (game.ccreation, "Weakness")
          list add (game.ccreation, "Favorite")
          CharacterCreation1
        }
        else if (result = "Choice 7") {
          player.resist = player.resist + 1
          ClearScreen
          list remove (game.ccreation, "Weakness")
          list add (game.ccreation, "Favorite")
          CharacterCreation1
        }
        else if (result = "Choice 8") {
          player.corruption = player.corruption + 15
          player.base_strength = player.base_strength + 1
          player.base_agility = player.base_agility + 1
          player.base_intelligence = player.base_intelligence + 1
          ClearScreen
          list remove (game.ccreation, "Weakness")
          list add (game.ccreation, "Favorite")
          CharacterCreation1
        }
        else if (result = "Random") {
          result = "Choice "+GetRandomInt(1,8)
        }
      }
      UpdateAllAttributes
    }
    case ("Favorite") {
      msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Arriving In The Present.</u></font color></font size><br/>But perhaps it’s the tallest walls that are the most important because they help define who we are deep down inside, they are struggles and goals that teach us the absolute hardest lesson and require the sum of all our wisdom to overcome. All for the sake of finding a missing piece of ourselves. If fire represents a gateway and the distant echoes fragments of time long spent, then the walls of the future are our struggles; barriers that must be painfully shattered so that we may reach the greatest truth. <br/><br/>There is more to it than that however, the future is also about survival, fortitude and perseverance. And they are needed more than ever. The Planet is dying and our continent, Auvora, is all that remains. At least that’s what some believe. The Void, the manifestation of corruption, lust and darkness has corroded the sea, perverted the land and it’s inhabitants, and now it has brought death to our doorstep. We all stand deep in the hurricane’s eye; one breath in wait as our warriors, knights, wizards and ancient protectors give their lives to hold this terrible evil at bay. ")
      wait {
        ClearScreen
        msg ("<br/>But now the tide has begun to recede and the hour of hopeful wishing has turned dim and despairing. The death stroke to finish us all might have finally been dealt---The Savior, the Muse’s special chosen, the only one who can truly fight back the Void has disappeared from the front. Taking with her our freedom and our futures. At first, this mere whisper only affected the paranoid and the doomsayers but when the whispers of a terrible omen circulated into the mix, even long established businessmen, religious leaders and traders began to flee their homes; each wanting to get as far from the Void and the fighting as possible. As a result, once thriving villages of commerce and trade became abandoned remnants of family dynasties, and ancient traditions. <br/><br/>That’s what happened here. Everyone from this village, save for the elderly who refuse to leave their homes no matter how bad things got, are gone. So I sit here trying to remember how things were when I was a kid. If I can do that and find myself, perhaps these ancient whispers and impassible walls can no longer trap my will and I can journey to the southwest with the others and seek protection in these last days. But who have I become after all this time?")
        wait {
          ClearScreen
          msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Favorite Saying</u></font color></font size><br/>My favorite saying now is that…<br/><br/>1) Nothing can stop you if you want something bad enough. {if game.stats=True:<font color=\"dedede\">+1 STR, -1 AGL.</font color>}<br/><br/>2) That flexibility and compromise make the world go ‘round. {if game.stats=True:<font color=\"dedede\">+1 AGL, -1 STR.</font color>}<br/><br/>3) That no matter how hard life hits, you must keep pushing forward. {if game.stats=True:<font color=\"dedede\">+1 MX HLTH, -1 RST.</font color>}<br/><br/>4) The pen is mightier than the sword. {if game.stats=True:<font color=\"dedede\">+1 INT, -1 MXCRRY.</font color>}<br/><br/>5) That the easy lessons sometimes hit you the hardest. {if game.stats=True:<font color=\"dedede\">+1 RST, -1 MXHLTH.</font color>}<br/><br/>6) Your body's a temple that must be respected and cared for. {if game.stats=True:<font color=\"dedede\">+1 DEF, -1 MX HLTH, -1 MXCRRY.</font color>}<br/><br/>7) Everyone has burdens and demons to overcome. {if game.stats=True:<font color=\"dedede\">+1 MX CRRY, -1 INT.</font color>}")
          menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Choice 6;Choice 7;Random", ";")
          ShowMenu ("", menulist, false) {
            if (result = "Choice 1") {
              player.base_strength = player.base_strength + 1
              player.base_agility = player.base_agility - 1
              ClearScreen
              list remove (game.ccreation, "Favorite")
              list add (game.ccreation, "Best Skill")
              CharacterCreation1
            }
            else if (result = "Choice 2") {
              player.base_strength = player.base_strength - 1
              player.base_agility = player.base_agility + 1
              ClearScreen
              list remove (game.ccreation, "Favorite")
              list add (game.ccreation, "Best Skill")
              CharacterCreation1
            }
            else if (result = "Choice 3") {
              player.base_health = player.base_health + 1
              player.resist = player.resist - 1
              ClearScreen
              list remove (game.ccreation, "Favorite")
              list add (game.ccreation, "Best Skill")
              CharacterCreation1
            }
            else if (result = "Choice 4") {
              player.base_intelligence = player.base_intelligence + 1
              player.maxvolume = player.maxvolume - 1
              ClearScreen
              list remove (game.ccreation, "Favorite")
              list add (game.ccreation, "Best Skill")
              CharacterCreation1
            }
            else if (result = "Choice 5") {
              player.base_health = player.base_health - 1
              player.resist = player.resist + 1
              ClearScreen
              list remove (game.ccreation, "Favorite")
              list add (game.ccreation, "Best Skill")
              CharacterCreation1
            }
            else if (result = "Choice 6") {
              player.base_defense = player.base_defense + 1
              player.maxvolume = player.maxvolume - 1
              player.base_health = player.base_health - 1
              ClearScreen
              list remove (game.ccreation, "Favorite")
              list add (game.ccreation, "Best Skill")
              CharacterCreation1
            }
            else if (result = "Choice 7") {
              player.maxvolume = player.maxvolume + 1
              player.base_intelligence = player.base_intelligence - 1
              ClearScreen
              list remove (game.ccreation, "Favorite")
              list add (game.ccreation, "Best Skill")
              CharacterCreation1
            }
            else if (result = "Random") {
              result = "Choice "+GetRandomInt(1,7)
            }
          }
        }
      }
      UpdateAllAttributes
    }
    case ("Best Skill") {
      msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Best Skill</u></font color></font size><br/>Someone who knows me well could describe my best skill as being…<br/><br/>1) Multi-tasking. You’re a champion. {if game.stats=True:<font color=\"dedede\">+2 Juggle Skill, +1 MXCRRY.</font color>}<br/><br/>2) Working very hard; day in and day out. {if game.stats=True:<font color=\"dedede\">+2 Forge Skill, +1 DEF.</font color>}<br/><br/>3) Seeing the finest details in everything. {if game.stats=True:<font color=\"dedede\">+2 Tailor Skill, +1 STR.</font color>}<br/><br/>4) Planning ahead and prioritizing.  {if game.stats=True:<font color=\"dedede\">+2 Thief Skill, +1 AGL.</font color>}<br/><br/>5) Cooking up original concoctions with ease. {if game.stats=True:<font color=\"dedede\">+2 Alchemy Skill, +1 INT.</font color>}<br/><br/>6) How incredibly charming you are. {if game.stats=True:<font color=\"dedede\">+2 Charm Skill, +1 MXHLTH.</font color>}<br/><br/>7) Remaining calm in intense situations. {if game.stats=True:<font color=\"dedede\">+2 Meditation Skill, +1 RST.</font color>}")
      menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Choice 6;Choice 7;Random", ";")
      ShowMenu ("", menulist, false) {
        if (result = "Choice 1") {
          player.juggleskill = player.juggleskill + 2
          player.maxvolume = player.maxvolume + 1
          ClearScreen
          list remove (game.ccreation, "Best Skill")
          list add (game.ccreation, "Personal Skill")
          CharacterCreation1
        }
        else if (result = "Choice 2") {
          player.forgeskill = player.forgeskill + 2
          player.base_defense = player.base_defense + 1
          ClearScreen
          list remove (game.ccreation, "Best Skill")
          list add (game.ccreation, "Personal Skill")
          CharacterCreation1
        }
        else if (result = "Choice 3") {
          player.tailorskill = player.tailorskill + 2
          player.base_strength = player.base_strength + 1
          ClearScreen
          list remove (game.ccreation, "Best Skill")
          list add (game.ccreation, "Personal Skill")
          CharacterCreation1
        }
        else if (result = "Choice 4") {
          player.thiefskill = player.thiefskill + 2
          player.base_agility = player.base_agility + 1
          ClearScreen
          list remove (game.ccreation, "Best Skill")
          list add (game.ccreation, "Personal Skill")
          CharacterCreation1
        }
        else if (result = "Choice 5") {
          player.alchskill = player.alchskill + 2
          player.base_intelligence = player.base_intelligence + 1
          ClearScreen
          list remove (game.ccreation, "Best Skill")
          list add (game.ccreation, "Personal Skill")
          CharacterCreation1
        }
        else if (result = "Choice 6") {
          player.charmskill = player.charmskill + 2
          player.base_health = player.base_health + 1
          ClearScreen
          list remove (game.ccreation, "Best Skill")
          list add (game.ccreation, "Personal Skill")
          CharacterCreation1
        }
        else if (result = "Choice 7") {
          player.meditskill = player.meditskill + 2
          player.resist = player.resist + 1
          ClearScreen
          list remove (game.ccreation, "Best Skill")
          list add (game.ccreation, "Personal Skill")
          CharacterCreation1
        }
        else if (result = "Random") {
          result = "Choice "+GetRandomInt(1,7)
        }
      }
      UpdateAllAttributes
    }
    case ("Personal Skill") {
      if (player.gender="male") {
        msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Personal Skill</u></font color></font size><br/>But personally, you think you greatest skill is...<br/><br/>1) You’re ruggedly handsome, and you’re also a fast talker and well-educated. {if game.stats=True:<font color=\"dedede\">+1 Charm Skill, + Suave Speciality.</font color><br/>**<i>Start with the ability to haggle 10% off all items from shops/merchants. You also gain extra relationship points with people even if you aren't their type.</i>**}<br/><br/>2) You have a keen eye for fashion; collecting clothing, pairing---you’re an expert and know how to wear what you have. {if game.stats=True:<font color=\"dedede\">+1 Tailor Skill, + Fashionable Speciality.</font color><br/>**<i>Start your adventure with several different outfits/clothing. You also recieve double stats benefits from any clothing you wear, including Mood Points.</i>**}<br/><br/>3) You're incredibly tough. You can take a hit like the best of them. {if game.stats=True:<font color=\"dedede\">+1 Forge Skill, +3 DEF, + Badass Tank Speciality.</font color><br/>**<i>Start with +3 Defense.</i>**}<br/><br/>4) You have incredible fighting instincts. {if game.stats=True:<font color=\"dedede\">+1 Juggle Skill, +5 STR, + Warrior At Heart Speciality.</font color><br/>**<i>Start with +5 Strength.</i>**}<br/><br/>5) You're an incredible dancer. You’re actually quite the entertainer and have had a lot of professional training. {if game.stats=True:<font color=\"dedede\">+1 Thief Skill, +5 AGL, + Dancer Speciality.</font color><br/>**<i>Start with +5 Agility.</i>**}<br/><br/>6) You have a knack for finding value in everyday junk. You like to collect things of value and you love money as well. {if game.stats=True:<font color=\"dedede\">+1 Alchemy Skill, + Big Saver Speciality.</font color><br/>**<i>Start with +30 gold, a small health potion, a random transformation potion, a random hairdye, a couple of body modification potions and an extra carrying bag. You also have a chance of finding double gold when you locate some, or sometimes double items as well (not clothing items).</i>**}<br/><br/>7) You're incredibly calm and focused on most tasks but like the old saying says, work hard, play hard. Because of this you're extremely laid back as well. {if game.stats=True:<font color=\"dedede\">+1 Meditation Skill, +10 MX HLTH, + Monkish Speciality.</font color><br/>**<i>Start with +10 Maximum Health.</i>**}<br/><br/>8) You’re kind of a jack-of-all-trades. You don’t have any particular skill that stands out. {if game.stats=True:<font color=\"dedede\">+1 MX CRRY, +1 RST, +1 MX HLTH, +1 STR, +1 AGL.</font color><br/>**<i>This is akin to an <b>Iron Man</b> mode. No starting special traits (you can still earn specialities in-game however).**}")
        menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Choice 6;Choice 7;Choice 8;Random", ";")
        ShowMenu ("", menulist, false) {
          if (result = "Choice 1") {
            player.charmskill = player.charmskill + 1
            player.suave = True
            SetTo ("hipsize", "average")
            SetTo ("breastsize", "flat")
            SetTo ("buttsize", "average")
            SetTo ("weight", "moderately thin")
            ClearScreen
            list remove (game.ccreation, "Personal Skill")
            list add (game.ccreation, "Work")
            CharacterCreation1
          }
          else if (result = "Choice 2") {
            player.tailorskill = player.tailorskill + 1
            player.fashionable = True
            ClearScreen
            list remove (game.ccreation, "Personal Skill")
            list add (game.ccreation, "Eating and Exercise")
            CharacterCreation1
          }
          else if (result = "Choice 3") {
            player.forgeskill = player.forgeskill + 1
            player.badasstank = True
            player.base_defense = player.base_defense + 3
            ClearScreen
            list remove (game.ccreation, "Personal Skill")
            list add (game.ccreation, "Eating and Exercise")
            CharacterCreation1
          }
          else if (result = "Choice 4") {
            player.juggleskill = player.juggleskill + 1
            player.warrioratheart = True
            player.base_strength = player.base_strength + 5
            ClearScreen
            list remove (game.ccreation, "Personal Skill")
            list add (game.ccreation, "Eating and Exercise")
            CharacterCreation1
          }
          else if (result = "Choice 5") {
            player.thiefskill = player.thiefskill + 1
            player.dancer = True
            player.base_agility = player.base_agility + 5
            ClearScreen
            list remove (game.ccreation, "Personal Skill")
            list add (game.ccreation, "Eating and Exercise")
            CharacterCreation1
          }
          else if (result = "Choice 6") {
            player.alchskill = player.alchskill + 1
            player.bigsaver = True
            player.gold = player.gold + 30
            ClearScreen
            list remove (game.ccreation, "Personal Skill")
            list add (game.ccreation, "Eating and Exercise")
            CharacterCreation1
          }
          else if (result = "Choice 7") {
            player.meditskill = player.meditskill + 1
            player.monkish = True
            player.base_health = player.base_health + 10
            ClearScreen
            list remove (game.ccreation, "Personal Skill")
            list add (game.ccreation, "Eating and Exercise")
            CharacterCreation1
          }
          else if (result = "Choice 8") {
            player.maxvolume = player.maxvolume + 1
            player.resist = player.resist + 1
            player.base_health = player.base_health + 1
            player.base_strength = player.base_strength + 1
            player.base_agility = player.base_agility + 1
            ClearScreen
            list remove (game.ccreation, "Personal Skill")
            list add (game.ccreation, "Eating and Exercise")
            CharacterCreation1
          }
          else if (result = "Random") {
            result = "Choice "+GetRandomInt(1,8)
          }
        }
      }
      else {
        msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Personal Skill</u></font color></font size><br/>But personally, you think you greatest skill is...<br/><br/>1) You have undeniable beauty. You’re an exquisite model and people often want you as proverbial arm candy to look rich or important at social functions. {if game.stats=True:<font color=\"dedede\">+1 Charm Skill, + Escort Speciality.</font color><br/>**<i>You begin with a full-bodied feminine figure (large bust, hips, very thin etc). You also gain extra relationship points with NPCs even if you aren't their type. Twice as many if they are superficial.</i>**}<br/><br/>2) You have a keen eye for fashion; collecting clothing, pairing---you’re an expert and know how to wear what you have. {if game.stats=True:<font color=\"dedede\">+1 Tailor Skill, + Fashionable Speciality.</font color><br/>**<i>Start your adventure with several different outfits/clothing. You also recieve double stats benefits from any clothing you wear, including Mood Points.</i>**}<br/><br/>3) You're incredibly tough. You can take a hit like the best of them. {if game.stats=True:<font color=\"dedede\">+1 Forge Skill, +3 DEF, + Badass Tank Speciality.</font color><br/>**<i>Start with +3 Defense.</i>**}<br/><br/>4) You have incredible fighting instincts. {if game.stats=True:<font color=\"dedede\">+1 Juggle Skill, +5 STR, + Warrior At Heart Speciality.</font color><br/>**<i>Start with +5 Strength.</i>**}<br/><br/>5) You're an incredible dancer. You’re actually quite the entertainer and have had a lot of professional training. {if game.stats=True:<font color=\"dedede\">+1 Thief Skill, +5 AGL, + Dancer Speciality.</font color><br/>**<i>Start with +5 Agility.</i>**}<br/><br/>6) You have a knack for finding value in everyday junk. You like to collect things of value and you love money as well. {if game.stats=True:<font color=\"dedede\">+1 Alchemy Skill, + Big Saver Speciality.</font color><br/>**<i>Start with +30 gold, a small health potion, a random transformation potion, a random hairdye, a couple of body modification potions and an extra carrying bag. You also have a chance of finding double gold when you locate some, or sometimes double items as well (not clothing items).</i>**}<br/><br/>7) You’re a natural born mother and extremely maternal. Dealing with kids is second nature. {if game.stats=True:<font color=\"dedede\">+1 Meditation Skill, +5 MX HLTH, + Maternal Speciality. </font color><br/>**<i>You start with a history of having given birth to 1-3 children and have half the gestation time of a normal person during pregnancy. Your odds to give birth to twins and triplets doubles as well. Since you're already a mother you're extra resillent too.</i>**} <br/><br/>8) You’re kind of a jack-of-all-trades. You don’t have any particular skill that stands out. {if game.stats=True:<font color=\"dedede\">+1 MX CRRY, +1 RST, +1 MX HLTH, +1 STR, +1 AGL.</font color><br/>**<i>This is akin to an <b>Iron Woman</b> mode. No starting special traits (you can still earn specialities in-game however).**}")
        menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Choice 6;Choice 7;Choice 8;Random", ";")
        ShowMenu ("", menulist, false) {
          if (result = "Choice 1") {
            player.charmskill = player.charmskill + 1
            player.escort = True
            SetTo ("hipsize", "very wide")
            SetTo ("breastsize", "C-cup")
            SetTo ("buttsize", "heart-shaped")
            SetTo ("weight", "very thin")
            switch (GetHighestAtt()) {
              case ("sexy") {
                player.lust = player.lust + 3
              }
              case ("sarcasm") {
                player.lust = player.lust + 3
              }
            }
            ClearScreen
            list remove (game.ccreation, "Personal Skill")
            list add (game.ccreation, "Work")
            CharacterCreation1
          }
          else if (result = "Choice 2") {
            player.tailorskill = player.tailorskill + 1
            player.fashionable = True
            ClearScreen
            list remove (game.ccreation, "Personal Skill")
            list add (game.ccreation, "Eating and Exercise")
            CharacterCreation1
          }
          else if (result = "Choice 3") {
            player.forgeskill = player.forgeskill + 1
            player.badasstank = True
            player.base_defense = player.base_defense + 3
            ClearScreen
            list remove (game.ccreation, "Personal Skill")
            list add (game.ccreation, "Eating and Exercise")
            CharacterCreation1
          }
          else if (result = "Choice 4") {
            player.juggleskill = player.juggleskill + 1
            player.warrioratheart = True
            player.base_strength = player.base_strength + 5
            ClearScreen
            list remove (game.ccreation, "Personal Skill")
            list add (game.ccreation, "Eating and Exercise")
            CharacterCreation1
          }
          else if (result = "Choice 5") {
            player.thiefskill = player.thiefskill + 1
            player.dancer = True
            player.base_agility = player.base_agility + 5
            ClearScreen
            list remove (game.ccreation, "Personal Skill")
            list add (game.ccreation, "Eating and Exercise")
            CharacterCreation1
          }
          else if (result = "Choice 6") {
            player.alchskill = player.alchskill + 1
            player.bigsaver = True
            player.gold = player.gold + 30
            ClearScreen
            list remove (game.ccreation, "Personal Skill")
            list add (game.ccreation, "Eating and Exercise")
            CharacterCreation1
          }
          else if (result = "Choice 7") {
            player.meditskill = player.meditskill + 1
            player.maternal = True
            player.base_health = player.base_health + 5
            player.pcount = 0
            if (RandomChance(25)) {
              msg ("<br/>You've given birth to 3 children!")
              player.children = player.children + 3
              player.gavebirth = True
              player.virgin = False
            }
            else if (RandomChance (25)) {
              msg ("<br/>You've given birth to 2 children!")
              player.children = player.children + 2
              player.gavebirth = True
              player.virgin = False
            }
            else {
              msg ("<br/>You've given birth to 1 child. ")
              player.children = player.children + 1
              player.gavebirth = True
              player.virgin = False
            }
            ClearScreen
            list remove (game.ccreation, "Personal Skill")
            list add (game.ccreation, "Eating and Exercise")
            CharacterCreation1
          }
          else if (result = "Choice 8") {
            player.maxvolume = player.maxvolume + 1
            player.resist = player.resist + 1
            player.base_health = player.base_health + 1
            player.base_strength = player.base_strength + 1
            player.base_agility = player.base_agility + 1
            ClearScreen
            list remove (game.ccreation, "Personal Skill")
            list add (game.ccreation, "Eating and Exercise")
            CharacterCreation1
          }
          else if (result = "Random") {
            result = "Choice "+GetRandomInt(1,8)
          }
        }
      }
      UpdateAllAttributes
    }
    case ("Eating and Exercise") {
      msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Eating and Exercise</u></font color></font size><br/>Someone could physically describe your eating and exercise habits as…<br/><br/>1) Someone who watches what they eat and gets plenty of exercise. {if game.stats=True:<font color=\"dedede\">+ Very Thin.</font color>}<br/><br/>2) Someone who eats decently and still gets out now and then for exercise. {if game.stats=True:<font color=\"dedede\">+ Moderately Thin.</font color>}<br/><br/>3) Someone who eats whatever they want but doesn’t exercise as much as they should. {if game.stats=True:<font color=\"dedede\">+ Slightly Meaty.</font color>}<br/><br/>4) Someone who doesn’t watch what they eat or exercise very often. {if game.stats=True:<font color=\"dedede\">+ Meaty.</font color>}<br/><br/>5) Someone who doesn’t watch what they eat at all and lives a sedentary life. {if game.stats=True:<font color=\"dedede\">+ Slightly Overweight.</font color>}<br/><br/>6) Someone who engorges themselves constantly and who lives a sedentary life. {if game.stats=True:<font color=\"dedede\">+ Very Overweight.</font color>}<br/><br/>7) Someone who eats very unhealthy all of the time and never ever exercises. {if game.stats=True:<font color=\"dedede\">+ Obese.</font color>}")
      menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Choice 6;Choice 7;Random", ";")
      ShowMenu ("", menulist, false) {
        if (result = "Choice 1") {
          SetTo ("weight", "very thin")
          wait {
            ClearScreen
            if (player.gender="female") {
              msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Bodyshape</u></font color></font size><br/>And what's the general shape of your body?<br/><br/>1) Apple, (large chest and hips, large waist)  {if game.stats=True:<font color=\"dedede\">DD-Cup Breasts, Child Bearing Hips, Bootylicious Butt.</font color>}<br/><br/>2) Strawberry, (large chest and small hips, large waist)  {if game.stats=True:<font color=\"dedede\">D-Cup Breasts, Average Hips, Average Butt.</font color>}<br/><br/>3) Double Cherry, (curvy chest and hips, small waist). {if game.stats=True:<font color=\"dedede\">C-Cup Breasts, Very Wide Hips, Heart-Shaped Butt.</font color>}<br/><br/>4) Pear, (small chest, large hips, small waist) {if game.stats=True:<font color=\"dedede\">B-Cup Breasts, Very Wide Hips, Bubble-Like Butt.</font color>}<br/><br/>5) Rhubarb, (small chest and hips, small waist) {if game.stats=True:<font color=\"dedede\">A-Cup Breasts, Narrow Hips, Small Butt.</font color>}")
              menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Random", ";")
              ShowMenu ("", menulist, false) {
                if (result = "Choice 1") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "child bearing")
                  SetTo ("breastsize", "DD-cup")
                  SetTo ("buttsize", "bootylicious")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 2") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "average")
                  SetTo ("breastsize", "D-cup")
                  SetTo ("buttsize", "average")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 3") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "very wide")
                  SetTo ("breastsize", "C-cup")
                  SetTo ("buttsize", "heart-shaped")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 4") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "very wide")
                  SetTo ("breastsize", "B-cup")
                  SetTo ("buttsize", "bubble-like")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 5") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "narrow")
                  SetTo ("breastsize", "A-cup")
                  SetTo ("buttsize", "small")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Random") {
                  result = "Choice "+GetRandomInt(1,5)
                }
              }
            }
            else {
              msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Bodyshape</u></font color></font size><br/>And what's the general shape of your body?<br/><br/>1) Aubergine, (large butt and average hips, large waist)  {if game.stats=True:<font color=\"dedede\">Flat Chest, Average Hips, Bubble-Like Butt.</font color>}<br/><br/>2) Leek, (average butt and narrow hips, slim waist)  {if game.stats=True:<font color=\"dedede\">Flat Chest, Narrow Hips, Average Butt</font color>}<br/><br/>3) Beetroot, (very large butt and large hips, very large waist). {if game.stats=True:<font color=\"dedede\">Flat Chest, Very Wide Hips, Bootylicious Butt.</font color>}<br/><br/>4) Parsnip, (average butt and average hips, slim waist) {if game.stats=True:<font color=\"dedede\">Flat Chest, Average Hips, Average Butt.</font color>}")
              menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Random", ";")
              ShowMenu ("", menulist, false) {
                if (result = "Choice 1") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "average")
                  SetTo ("breastsize", "flat")
                  SetTo ("buttsize", "bubble-like")
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 2") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "narrow")
                  SetTo ("breastsize", "flat")
                  SetTo ("buttsize", "average")
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 3") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "very wide")
                  SetTo ("breastsize", "flat")
                  SetTo ("buttsize", "bootylicious")
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 4") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "average")
                  SetTo ("breastsize", "flat")
                  SetTo ("buttsize", "average")
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Random") {
                  result = "Choice "+GetRandomInt(1,4)
                }
              }
            }
          }
        }
        else if (result = "Choice 2") {
          SetTo ("weight", "moderately thin")
          wait {
            ClearScreen
            if (player.gender="female") {
              msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Bodyshape</u></font color></font size><br/>And what's the general shape of your body?<br/><br/>1) Apple, (large chest and hips, large waist)  {if game.stats=True:<font color=\"dedede\">DD-Cup Breasts, Child Bearing Hips, Bootylicious Butt.</font color>}<br/><br/>2) Strawberry, (large chest and small hips, large waist)  {if game.stats=True:<font color=\"dedede\">D-Cup Breasts, Average Hips, Average Butt.</font color>}<br/><br/>3) Double Cherry, (curvy chest and hips, small waist). {if game.stats=True:<font color=\"dedede\">C-Cup Breasts, Very Wide Hips, Heart-Shaped Butt.</font color>}<br/><br/>4) Pear, (small chest, large hips, small waist) {if game.stats=True:<font color=\"dedede\">B-Cup Breasts, Very Wide Hips, Bubble-Like Butt.</font color>}<br/><br/>5) Rhubarb, (small chest and hips, small waist) {if game.stats=True:<font color=\"dedede\">A-Cup Breasts, Narrow Hips, Small Butt.</font color>}")
              menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Random", ";")
              ShowMenu ("", menulist, false) {
                if (result = "Choice 1") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "child bearing")
                  SetTo ("breastsize", "DD-cup")
                  SetTo ("buttsize", "bootylicious")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 2") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "average")
                  SetTo ("breastsize", "D-cup")
                  SetTo ("buttsize", "average")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 3") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "very wide")
                  SetTo ("breastsize", "C-cup")
                  SetTo ("buttsize", "heart-shaped")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 4") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "very wide")
                  SetTo ("breastsize", "B-cup")
                  SetTo ("buttsize", "bubble-like")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 5") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "narrow")
                  SetTo ("breastsize", "A-cup")
                  SetTo ("buttsize", "small")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Random") {
                  result = "Choice "+GetRandomInt(1,5)
                }
              }
            }
            else {
              msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Bodyshape</u></font color></font size><br/>And what's the general shape of your body?<br/><br/>1) Aubergine, (large butt and average hips, large waist)  {if game.stats=True:<font color=\"dedede\">Flat Chest, Average Hips, Bubble-Like Butt.</font color>}<br/><br/>2) Leek, (average butt and narrow hips, slim waist)  {if game.stats=True:<font color=\"dedede\">Flat Chest, Narrow Hips, Average Butt</font color>}<br/><br/>3) Beetroot, (very large butt and large hips, very large waist). {if game.stats=True:<font color=\"dedede\">Flat Chest, Very Wide Hips, Bootylicious Butt.</font color>}<br/><br/>4) Parsnip, (average butt and average hips, slim waist) {if game.stats=True:<font color=\"dedede\">Flat Chest, Average Hips, Average Butt.</font color>}")
              menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Random", ";")
              ShowMenu ("", menulist, false) {
                if (result = "Choice 1") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "average")
                  SetTo ("breastsize", "flat")
                  SetTo ("buttsize", "bubble-like")
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 2") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "narrow")
                  SetTo ("breastsize", "flat")
                  SetTo ("buttsize", "average")
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 3") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "very wide")
                  SetTo ("breastsize", "flat")
                  SetTo ("buttsize", "bootylicious")
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 4") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "average")
                  SetTo ("breastsize", "flat")
                  SetTo ("buttsize", "average")
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Random") {
                  result = "Choice "+GetRandomInt(1,4)
                }
              }
            }
          }
        }
        else if (result = "Choice 3") {
          SetTo ("weight", "slightly meaty")
          wait {
            ClearScreen
            if (player.gender="female") {
              msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Bodyshape</u></font color></font size><br/>And what's the general shape of your body?<br/><br/>1) Apple, (large chest and hips, large waist)  {if game.stats=True:<font color=\"dedede\">DD-Cup Breasts, Child Bearing Hips, Bootylicious Butt.</font color>}<br/><br/>2) Strawberry, (large chest and small hips, large waist)  {if game.stats=True:<font color=\"dedede\">D-Cup Breasts, Average Hips, Average Butt.</font color>}<br/><br/>3) Double Cherry, (curvy chest and hips, small waist). {if game.stats=True:<font color=\"dedede\">C-Cup Breasts, Very Wide Hips, Heart-Shaped Butt.</font color>}<br/><br/>4) Pear, (small chest, large hips, small waist) {if game.stats=True:<font color=\"dedede\">B-Cup Breasts, Very Wide Hips, Bubble-Like Butt.</font color>}<br/><br/>5) Rhubarb, (small chest and hips, small waist) {if game.stats=True:<font color=\"dedede\">A-Cup Breasts, Narrow Hips, Small Butt.</font color>}")
              menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Random", ";")
              ShowMenu ("", menulist, false) {
                if (result = "Choice 1") {
                  SetTo ("hipsize", "child bearing")
                  SetTo ("breastsize", "DD-cup")
                  SetTo ("buttsize", "bootylicious")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 2") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "average")
                  SetTo ("breastsize", "D-cup")
                  SetTo ("buttsize", "average")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 3") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "very wide")
                  SetTo ("breastsize", "C-cup")
                  SetTo ("buttsize", "heart-shaped")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 4") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "very wide")
                  SetTo ("breastsize", "B-cup")
                  SetTo ("buttsize", "bubble-like")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 5") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "narrow")
                  SetTo ("breastsize", "A-cup")
                  SetTo ("buttsize", "small")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Random") {
                  result = "Choice "+GetRandomInt(1,5)
                }
              }
            }
            else {
              msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Bodyshape</u></font color></font size><br/>And what's the general shape of your body?<br/><br/>1) Aubergine, (large butt and average hips, large waist)  {if game.stats=True:<font color=\"dedede\">Flat Chest, Average Hips, Bubble-Like Butt.</font color>}<br/><br/>2) Leek, (average butt and narrow hips, slim waist)  {if game.stats=True:<font color=\"dedede\">Flat Chest, Narrow Hips, Average Butt</font color>}<br/><br/>3) Beetroot, (very large butt and large hips, very large waist). {if game.stats=True:<font color=\"dedede\">Flat Chest, Very Wide Hips, Bootylicious Butt.</font color>}<br/><br/>4) Parsnip, (average butt and average hips, slim waist) {if game.stats=True:<font color=\"dedede\">Flat Chest, Average Hips, Average Butt.</font color>}")
              menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Random", ";")
              ShowMenu ("", menulist, false) {
                if (result = "Choice 1") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "average")
                  SetTo ("breastsize", "flat")
                  SetTo ("buttsize", "bubble-like")
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 2") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "narrow")
                  SetTo ("breastsize", "flat")
                  SetTo ("buttsize", "average")
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 3") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "very wide")
                  SetTo ("breastsize", "flat")
                  SetTo ("buttsize", "bootylicious")
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 4") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "average")
                  SetTo ("breastsize", "flat")
                  SetTo ("buttsize", "average")
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Random") {
                  result = "Choice "+GetRandomInt(1,4)
                }
              }
            }
          }
        }
        else if (result = "Choice 4") {
          SetTo ("weight", "meaty")
          wait {
            ClearScreen
            if (player.gender="female") {
              msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Bodyshape</u></font color></font size><br/>And what's the general shape of your body?<br/><br/>1) Apple, (large chest and hips, large waist)  {if game.stats=True:<font color=\"dedede\">DD-Cup Breasts, Child Bearing Hips, Bootylicious Butt.</font color>}<br/><br/>2) Strawberry, (large chest and small hips, large waist)  {if game.stats=True:<font color=\"dedede\">D-Cup Breasts, Average Hips, Average Butt.</font color>}<br/><br/>3) Double Cherry, (curvy chest and hips, small waist). {if game.stats=True:<font color=\"dedede\">C-Cup Breasts, Very Wide Hips, Heart-Shaped Butt.</font color>}<br/><br/>4) Pear, (small chest, large hips, small waist) {if game.stats=True:<font color=\"dedede\">B-Cup Breasts, Very Wide Hips, Bubble-Like Butt.</font color>}<br/><br/>5) Rhubarb, (small chest and hips, small waist) {if game.stats=True:<font color=\"dedede\">A-Cup Breasts, Narrow Hips, Small Butt.</font color>}")
              menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Random", ";")
              ShowMenu ("", menulist, false) {
                if (result = "Choice 1") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "child bearing")
                  SetTo ("breastsize", "DD-cup")
                  SetTo ("buttsize", "bootylicious")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 2") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "average")
                  SetTo ("breastsize", "D-cup")
                  SetTo ("buttsize", "average")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 3") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "very wide")
                  SetTo ("breastsize", "C-cup")
                  SetTo ("buttsize", "heart-shaped")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 4") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "very wide")
                  SetTo ("breastsize", "B-cup")
                  SetTo ("buttsize", "bubble-like")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 5") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "narrow")
                  SetTo ("breastsize", "A-cup")
                  SetTo ("buttsize", "small")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Random") {
                  result = "Choice "+GetRandomInt(1,5)
                }
              }
            }
            else {
              msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Bodyshape</u></font color></font size><br/>And what's the general shape of your body?<br/><br/>1) Aubergine, (large butt and average hips, large waist)  {if game.stats=True:<font color=\"dedede\">Flat Chest, Average Hips, Bubble-Like Butt.</font color>}<br/><br/>2) Leek, (average butt and narrow hips, slim waist)  {if game.stats=True:<font color=\"dedede\">Flat Chest, Narrow Hips, Average Butt</font color>}<br/><br/>3) Beetroot, (very large butt and large hips, very large waist). {if game.stats=True:<font color=\"dedede\">Flat Chest, Very Wide Hips, Bootylicious Butt.</font color>}<br/><br/>4) Parsnip, (average butt and average hips, slim waist) {if game.stats=True:<font color=\"dedede\">Flat Chest, Average Hips, Average Butt.</font color>}")
              menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Random", ";")
              ShowMenu ("", menulist, false) {
                if (result = "Choice 1") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "average")
                  SetTo ("breastsize", "flat")
                  SetTo ("buttsize", "bubble-like")
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 2") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "narrow")
                  SetTo ("breastsize", "flat")
                  SetTo ("buttsize", "average")
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 3") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "very wide")
                  SetTo ("breastsize", "flat")
                  SetTo ("buttsize", "bootylicious")
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 4") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "average")
                  SetTo ("breastsize", "flat")
                  SetTo ("buttsize", "average")
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Random") {
                  result = "Choice "+GetRandomInt(1,4)
                }
              }
            }
          }
        }
        else if (result = "Choice 5") {
          SetTo ("weight", "slightly overweight")
          wait {
            ClearScreen
            if (player.gender="female") {
              msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Bodyshape</u></font color></font size><br/>And what's the general shape of your body?<br/><br/>1) Apple, (large chest and hips, large waist)  {if game.stats=True:<font color=\"dedede\">DD-Cup Breasts, Child Bearing Hips, Bootylicious Butt.</font color>}<br/><br/>2) Strawberry, (large chest and small hips, large waist)  {if game.stats=True:<font color=\"dedede\">D-Cup Breasts, Average Hips, Average Butt.</font color>}<br/><br/>3) Double Cherry, (curvy chest and hips, small waist). {if game.stats=True:<font color=\"dedede\">C-Cup Breasts, Very Wide Hips, Heart-Shaped Butt.</font color>}<br/><br/>4) Pear, (small chest, large hips, small waist) {if game.stats=True:<font color=\"dedede\">B-Cup Breasts, Very Wide Hips, Bubble-Like Butt.</font color>}<br/><br/>5) Rhubarb, (small chest and hips, small waist) {if game.stats=True:<font color=\"dedede\">A-Cup Breasts, Narrow Hips, Small Butt.</font color>}")
              menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Random", ";")
              ShowMenu ("", menulist, false) {
                if (result = "Choice 1") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "child bearing")
                  SetTo ("breastsize", "DD-cup")
                  SetTo ("buttsize", "bootylicious")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 2") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "average")
                  SetTo ("breastsize", "D-cup")
                  SetTo ("buttsize", "average")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 3") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "very wide")
                  SetTo ("breastsize", "C-cup")
                  SetTo ("buttsize", "heart-shaped")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 4") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "very wide")
                  SetTo ("breastsize", "B-cup")
                  SetTo ("buttsize", "bubble-like")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 5") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "narrow")
                  SetTo ("breastsize", "A-cup")
                  SetTo ("buttsize", "small")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Random") {
                  result = "Choice "+GetRandomInt(1,5)
                }
              }
            }
            else {
              msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Bodyshape</u></font color></font size><br/>And what's the general shape of your body?<br/><br/>1) Aubergine, (large butt and average hips, large waist)  {if game.stats=True:<font color=\"dedede\">Flat Chest, Average Hips, Bubble-Like Butt.</font color>}<br/><br/>2) Leek, (average butt and narrow hips, slim waist)  {if game.stats=True:<font color=\"dedede\">Flat Chest, Narrow Hips, Average Butt</font color>}<br/><br/>3) Beetroot, (very large butt and large hips, very large waist). {if game.stats=True:<font color=\"dedede\">Flat Chest, Very Wide Hips, Bootylicious Butt.</font color>}<br/><br/>4) Parsnip, (average butt and average hips, slim waist) {if game.stats=True:<font color=\"dedede\">Flat Chest, Average Hips, Average Butt.</font color>}")
              menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Random", ";")
              ShowMenu ("", menulist, false) {
                if (result = "Choice 1") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "average")
                  SetTo ("breastsize", "flat")
                  SetTo ("buttsize", "bubble-like")
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 2") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "narrow")
                  SetTo ("breastsize", "flat")
                  SetTo ("buttsize", "average")
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 3") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "very wide")
                  SetTo ("breastsize", "flat")
                  SetTo ("buttsize", "bootylicious")
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 4") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "average")
                  SetTo ("breastsize", "flat")
                  SetTo ("buttsize", "average")
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Random") {
                  result = "Choice "+GetRandomInt(1,4)
                }
              }
            }
          }
        }
        else if (result = "Choice 6") {
          SetTo ("weight", "very overweight")
          wait {
            ClearScreen
            if (player.gender="female") {
              msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Bodyshape</u></font color></font size><br/>And what's the general shape of your body?<br/><br/>1) Apple, (large chest and hips, large waist)  {if game.stats=True:<font color=\"dedede\">DD-Cup Breasts, Child Bearing Hips, Bootylicious Butt.</font color>}<br/><br/>2) Strawberry, (large chest and small hips, large waist)  {if game.stats=True:<font color=\"dedede\">D-Cup Breasts, Average Hips, Average Butt.</font color>}<br/><br/>3) Double Cherry, (curvy chest and hips, small waist). {if game.stats=True:<font color=\"dedede\">C-Cup Breasts, Very Wide Hips, Heart-Shaped Butt.</font color>}<br/><br/>4) Pear, (small chest, large hips, small waist) {if game.stats=True:<font color=\"dedede\">B-Cup Breasts, Very Wide Hips, Bubble-Like Butt.</font color>}<br/><br/>5) Rhubarb, (small chest and hips, small waist) {if game.stats=True:<font color=\"dedede\">A-Cup Breasts, Narrow Hips, Small Butt.</font color>}")
              menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Random", ";")
              ShowMenu ("", menulist, false) {
                if (result = "Choice 1") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "child bearing")
                  SetTo ("breastsize", "DD-cup")
                  SetTo ("buttsize", "bootylicious")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 2") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "average")
                  SetTo ("breastsize", "D-cup")
                  SetTo ("buttsize", "average")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 3") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "very wide")
                  SetTo ("breastsize", "C-cup")
                  SetTo ("buttsize", "heart-shaped")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 4") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "very wide")
                  SetTo ("breastsize", "B-cup")
                  SetTo ("buttsize", "bubble-like")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 5") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "narrow")
                  SetTo ("breastsize", "A-cup")
                  SetTo ("buttsize", "small")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Random") {
                  result = "Choice "+GetRandomInt(1,5)
                }
              }
            }
            else {
              msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Bodyshape</u></font color></font size><br/>And what's the general shape of your body?<br/><br/>1) Aubergine, (large butt and average hips, large waist)  {if game.stats=True:<font color=\"dedede\">Flat Chest, Average Hips, Bubble-Like Butt.</font color>}<br/><br/>2) Leek, (average butt and narrow hips, slim waist)  {if game.stats=True:<font color=\"dedede\">Flat Chest, Narrow Hips, Average Butt</font color>}<br/><br/>3) Beetroot, (very large butt and large hips, very large waist). {if game.stats=True:<font color=\"dedede\">Flat Chest, Very Wide Hips, Bootylicious Butt.</font color>}<br/><br/>4) Parsnip, (average butt and average hips, slim waist) {if game.stats=True:<font color=\"dedede\">Flat Chest, Average Hips, Average Butt.</font color>}")
              menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Random", ";")
              ShowMenu ("", menulist, false) {
                if (result = "Choice 1") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "average")
                  SetTo ("breastsize", "flat")
                  SetTo ("buttsize", "bubble-like")
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 2") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "narrow")
                  SetTo ("breastsize", "flat")
                  SetTo ("buttsize", "average")
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 3") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "very wide")
                  SetTo ("breastsize", "flat")
                  SetTo ("buttsize", "bootylicious")
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 4") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "average")
                  SetTo ("breastsize", "flat")
                  SetTo ("buttsize", "average")
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Random") {
                  result = "Choice "+GetRandomInt(1,4)
                }
              }
            }
          }
        }
        else if (result = "Choice 7") {
          SetTo ("weight", "obese")
          wait {
            ClearScreen
            if (player.gender="female") {
              msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Bodyshape</u></font color></font size><br/>And what's the general shape of your body?<br/><br/>1) Apple, (large chest and hips, large waist)  {if game.stats=True:<font color=\"dedede\">DD-Cup Breasts, Child Bearing Hips, Bootylicious Butt.</font color>}<br/><br/>2) Strawberry, (large chest and small hips, large waist)  {if game.stats=True:<font color=\"dedede\">D-Cup Breasts, Average Hips, Average Butt.</font color>}<br/><br/>3) Double Cherry, (curvy chest and hips, small waist). {if game.stats=True:<font color=\"dedede\">C-Cup Breasts, Very Wide Hips, Heart-Shaped Butt.</font color>}<br/><br/>4) Pear, (small chest, large hips, small waist) {if game.stats=True:<font color=\"dedede\">B-Cup Breasts, Very Wide Hips, Bubble-Like Butt.</font color>}<br/><br/>5) Rhubarb, (small chest and hips, small waist) {if game.stats=True:<font color=\"dedede\">A-Cup Breasts, Narrow Hips, Small Butt.</font color>}")
              menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Random", ";")
              ShowMenu ("", menulist, false) {
                if (result = "Choice 1") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "child bearing")
                  SetTo ("breastsize", "DD-cup")
                  SetTo ("buttsize", "bootylicious")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 2") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "average")
                  SetTo ("breastsize", "D-cup")
                  SetTo ("buttsize", "average")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 3") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "very wide")
                  SetTo ("breastsize", "C-cup")
                  SetTo ("buttsize", "heart-shaped")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 4") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "very wide")
                  SetTo ("breastsize", "B-cup")
                  SetTo ("buttsize", "bubble-like")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 5") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "narrow")
                  SetTo ("breastsize", "A-cup")
                  SetTo ("buttsize", "small")
                  if (player.maternal=True) {
                    Increase ("hipsize")
                  }
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Random") {
                  result = "Choice "+GetRandomInt(1,5)
                }
              }
            }
            else {
              msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Bodyshape</u></font color></font size><br/>And what's the general shape of your body?<br/><br/>1) Aubergine, (large butt and average hips, large waist)  {if game.stats=True:<font color=\"dedede\">Flat Chest, Average Hips, Bubble-Like Butt.</font color>}<br/><br/>2) Leek, (average butt and narrow hips, slim waist)  {if game.stats=True:<font color=\"dedede\">Flat Chest, Narrow Hips, Average Butt</font color>}<br/><br/>3) Beetroot, (very large butt and large hips, very large waist). {if game.stats=True:<font color=\"dedede\">Flat Chest, Very Wide Hips, Bootylicious Butt.</font color>}<br/><br/>4) Parsnip, (average butt and average hips, slim waist) {if game.stats=True:<font color=\"dedede\">Flat Chest, Average Hips, Average Butt.</font color>}")
              menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Random", ";")
              ShowMenu ("", menulist, false) {
                if (result = "Choice 1") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "average")
                  SetTo ("breastsize", "flat")
                  SetTo ("buttsize", "bubble-like")
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 2") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "narrow")
                  SetTo ("breastsize", "flat")
                  SetTo ("buttsize", "average")
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 3") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "very wide")
                  SetTo ("breastsize", "flat")
                  SetTo ("buttsize", "bootylicious")
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Choice 4") {
                  msg ("<br/><font color=\"dedede\">Okay!</font color>")
                  SetTo ("hipsize", "average")
                  SetTo ("breastsize", "flat")
                  SetTo ("buttsize", "average")
                  ClearScreen
                  list remove (game.ccreation, "Eating and Exercise")
                  list add (game.ccreation, "Work")
                  CharacterCreation1
                }
                else if (result = "Random") {
                  result = "Choice "+GetRandomInt(1,4)
                }
              }
            }
          }
        }
        else if (result = "Random") {
          result = "Choice "+GetRandomInt(1,7)
        }
      }
      UpdateAllAttributes
    }
    case ("Work") {
      msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Work</u></font color></font size><br/>To pay for you living expenses however you were last working as...<br/><br/>1) A farm-hand like many others. You spent most of your days working hard in the hot sun. {if game.stats=True:<font color=\"dedede\">+2 MX HLTH.</font color>}<br/><br/>2) You were an instructor’s aid and studied many subjects along with a majority of the students. {if game.stats=True:<font color=\"dedede\">+2 INT.</font color>}<br/><br/>3) You were the muscle of the local tavern and spent most of your nights handling the rowdy. {if game.stats=True:<font color=\"dedede\">+1 DEF.</font color>}<br/><br/>4) You were a guardsman of the town. You generally didn’t see a lot of action but you participated in all the training. {if game.stats=True:<font color=\"dedede\">+2 STR.</font color>}<br/><br/>5) You were an assistant explorer and often traveled far distances for map-making and trail marking. +1 AGL, {if game.stats=True:<font color=\"dedede\">+1 MX CRRY.</font color>}<br/><br/>6) You were the assistant of the local blacksmith and often worked long tedious hours by the forge. You rarely ever made anything completely alone.  {if game.stats=True:<font color=\"dedede\">+1 STR, +1 RST.</font color>}<br/><br/>7) You were one of the local hunters for the village and often spent your time out in the wilderness trying to find game to bring home to sell. {if game.stats=True:<font color=\"dedede\">+1 INT, +1 STR.</font color>}<br/><br/>8) It wasn’t really a job, but you definitely made a living from stealing what you could from people. It saved you from actually having to get a job as well.  {if game.stats=True:<font color=\"dedede\">+3 AGL, +5 CORR.</font color>}")
      menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Choice 6;Choice 7;Choice 8;Random", ";")
      ShowMenu ("", menulist, false) {
        if (result = "Choice 1") {
          player.base_health = player.base_health + 2
          if (player.gender="female") {
            SetTo ("nails", "long")
          }
          else {
            SetTo ("nails", "short")
          }
          if (RandomChance(25)) {
            SetTo ("lips", "large")
          }
          else if (RandomChance(25)) {
            SetTo ("lips", "plump")
          }
          else if (RandomChance(25)) {
            SetTo ("lips", "thin")
          }
          else {
            SetTo ("lips", "average")
          }
          player.background = "Farmer"
          ClearScreen
          list remove (game.ccreation, "Work")
          list add (game.ccreation, "Love")
          CharacterCreation1
        }
        else if (result = "Choice 2") {
          player.base_intelligence = player.base_intelligence + 2
          if (player.gender="female") {
            SetTo ("nails", "long")
          }
          else {
            SetTo ("nails", "short")
          }
          if (RandomChance(25)) {
            SetTo ("lips", "large")
          }
          else if (RandomChance(25)) {
            SetTo ("lips", "plump")
          }
          else if (RandomChance(25)) {
            SetTo ("lips", "thin")
          }
          else {
            SetTo ("lips", "average")
          }
          player.background = "Instructor"
          ClearScreen
          list remove (game.ccreation, "Work")
          list add (game.ccreation, "Love")
          CharacterCreation1
        }
        else if (result = "Choice 3") {
          player.base_defense = player.base_defense + 1
          if (player.gender="female") {
            SetTo ("nails", "long")
          }
          else {
            SetTo ("nails", "short")
          }
          if (RandomChance(25)) {
            SetTo ("lips", "large")
          }
          else if (RandomChance(25)) {
            SetTo ("lips", "plump")
          }
          else if (RandomChance(25)) {
            SetTo ("lips", "thin")
          }
          else {
            SetTo ("lips", "average")
          }
          player.background = "Tavern Bouncer"
          ClearScreen
          list remove (game.ccreation, "Work")
          list add (game.ccreation, "Love")
          CharacterCreation1
        }
        else if (result = "Choice 4") {
          player.base_strength = player.base_strength + 2
          if (player.gender="female") {
            SetTo ("nails", "long")
          }
          else {
            SetTo ("nails", "short")
          }
          if (RandomChance(25)) {
            SetTo ("lips", "large")
          }
          else if (RandomChance(25)) {
            SetTo ("lips", "plump")
          }
          else if (RandomChance(25)) {
            SetTo ("lips", "thin")
          }
          else {
            SetTo ("lips", "average")
          }
          player.background = "Guardsman"
          ClearScreen
          list remove (game.ccreation, "Work")
          list add (game.ccreation, "Love")
          CharacterCreation1
        }
        else if (result = "Choice 5") {
          player.maxvolume = player.maxvolume + 1
          if (player.gender="female") {
            SetTo ("nails", "long")
          }
          else {
            SetTo ("nails", "short")
          }
          if (RandomChance(25)) {
            SetTo ("lips", "large")
          }
          else if (RandomChance(25)) {
            SetTo ("lips", "plump")
          }
          else if (RandomChance(25)) {
            SetTo ("lips", "thin")
          }
          else {
            SetTo ("lips", "average")
          }
          player.background = "Explorer"
          ClearScreen
          list remove (game.ccreation, "Work")
          list add (game.ccreation, "Love")
          CharacterCreation1
        }
        else if (result = "Choice 6") {
          player.base_strength = player.base_strength + 1
          player.resist = player.resist + 1
          if (player.gender="female") {
            SetTo ("nails", "long")
          }
          else {
            SetTo ("nails", "short")
          }
          if (RandomChance(25)) {
            SetTo ("lips", "large")
          }
          else if (RandomChance(25)) {
            SetTo ("lips", "plump")
          }
          else if (RandomChance(25)) {
            SetTo ("lips", "thin")
          }
          else {
            SetTo ("lips", "average")
          }
          player.background = "Blacksmith Assistant"
          ClearScreen
          list remove (game.ccreation, "Work")
          list add (game.ccreation, "Love")
          CharacterCreation1
        }
        else if (result = "Choice 7") {
          player.base_intelligence = player.base_intelligence + 1
          player.base_strength = player.base_strength + 1
          if (player.gender="female") {
            SetTo ("nails", "long")
          }
          else {
            SetTo ("nails", "short")
          }
          if (RandomChance(25)) {
            SetTo ("lips", "large")
          }
          else if (RandomChance(25)) {
            SetTo ("lips", "plump")
          }
          else if (RandomChance(25)) {
            SetTo ("lips", "thin")
          }
          else {
            SetTo ("lips", "average")
          }
          player.background = "Hunter"
          ClearScreen
          list remove (game.ccreation, "Work")
          list add (game.ccreation, "Love")
          CharacterCreation1
        }
        else if (result = "Choice 8") {
          player.base_agility = player.base_agility + 1
          player.thiefskill = player.thiefskill + 1
          player.corruption = player.corruption + 5
          if (player.gender="female") {
            SetTo ("nails", "long")
          }
          else {
            SetTo ("nails", "short")
          }
          if (RandomChance(25)) {
            SetTo ("lips", "large")
          }
          else if (RandomChance(25)) {
            SetTo ("lips", "plump")
          }
          else if (RandomChance(25)) {
            SetTo ("lips", "thin")
          }
          else {
            SetTo ("lips", "average")
          }
          player.background = "Thief"
          ClearScreen
          list remove (game.ccreation, "Work")
          list add (game.ccreation, "Love")
          CharacterCreation1
        }
        else if (result = "Random") {
          result = "Choice "+GetRandomInt(1,8)
        }
      }
      UpdateAllAttributes
    }
    case ("Love") {
      if (player.gender="female") {
        msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Love</u></font color></font size><br/>Lastly, what sort of love are you looking for in the world?<br/><br/>1) I could care less about relationships. {if game.stats=True:<font color=\"dedede\">+ Asexual Sexuality.</font color>} <br/><br/>2) I'm looking for male relationships. {if game.stats=True:<font color=\"dedede\">+ Heterosexual Sexuality.</font color>}<br/><br/>3) I'm looking for male relationships mostly but I'm also curious about other girls. {if game.stats=True:<font color=\"dedede\">+ Bi-Curious Sexuality.</font color>} <br/><br/>4) I'm looking for male and female relationships; either or. {if game.stats=True:<font color=\"dedede\">+ Bisexual Sexuality.</font color>}<br/><br/>5) I'm mostly looking for female/same-sex relationships but if the right male comes along I'd be open to it. {if game.stats=True:<font color=\"dedede\">+ Bisexual Homosexual Lean Sexuality.</font color>} <br/><br/>6) I'm looking for female/same-sex relationships. That's all. {if game.stats=True:<font color=\"dedede\">+ Homosexual Sexuality.</font color>} ")
        menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Choice 6;Random", ";")
        ShowMenu ("", menulist, false) {
          if (result = "Choice 1") {
            msg ("<br/><font color=\"dedede\">And so it begins...</font color>")
            SetTo ("orientation", "asexual")
            if (player.maternal = False) {
              if (RandomChance(15)) {
                player.pcount = 3
              }
              else if (RandomChance(25)) {
                player.pcount = 2
              }
              else {
                player.pcount = 1
              }
            }
            wait {
              UpdateAllAttributes
              ClearScreen
              MoveObject (player, Part 1)
            }
          }
          else if (result = "Choice 2") {
            msg ("<br/><font color=\"dedede\">And so it begins...</font color>")
            SetTo ("orientation", "straight")
            if (player.maternal = False) {
              if (RandomChance(15)) {
                player.pcount = 3
              }
              else if (RandomChance(25)) {
                player.pcount = 2
              }
              else {
                player.pcount = 1
              }
            }
            wait {
              UpdateAllAttributes
              ClearScreen
              MoveObject (player, Part 1)
            }
          }
          else if (result = "Choice 3") {
            msg ("<br/><font color=\"dedede\">And so it begins...</font color>")
            SetTo ("orientation", "bi-curious")
            if (player.maternal = False) {
              if (RandomChance(15)) {
                player.pcount = 3
              }
              else if (RandomChance(25)) {
                player.pcount = 2
              }
              else {
                player.pcount = 1
              }
            }
            wait {
              UpdateAllAttributes
              ClearScreen
              MoveObject (player, Part 1)
            }
          }
          else if (result = "Choice 4") {
            msg ("<br/><font color=\"dedede\">And so it begins...</font color>")
            SetTo ("orientation", "bisexual")
            if (player.maternal = False) {
              if (RandomChance(15)) {
                player.pcount = 3
              }
              else if (RandomChance(25)) {
                player.pcount = 2
              }
              else {
                player.pcount = 1
              }
            }
            wait {
              UpdateAllAttributes
              ClearScreen
              MoveObject (player, Part 1)
            }
          }
          else if (result = "Choice 5") {
            msg ("<br/><font color=\"dedede\">And so it begins...</font color>")
            SetTo ("orientation", "bisexual homosexual lean")
            if (player.maternal = False) {
              if (RandomChance(15)) {
                player.pcount = 3
              }
              else if (RandomChance(25)) {
                player.pcount = 2
              }
              else {
                player.pcount = 1
              }
            }
            wait {
              UpdateAllAttributes
              ClearScreen
              MoveObject (player, Part 1)
            }
          }
          else if (result = "Choice 6") {
            msg ("<br/><font color=\"dedede\">And so it begins...</font color>")
            SetTo ("orientation", "homosexual")
            if (player.maternal = False) {
              if (RandomChance(15)) {
                player.pcount = 3
              }
              else if (RandomChance(25)) {
                player.pcount = 2
              }
              else {
                player.pcount = 1
              }
            }
            wait {
              UpdateAllAttributes
              ClearScreen
              MoveObject (player, Part 1)
            }
          }
          else if (result = "Random") {
            result = "Choice "+GetRandomInt(1,6)
          }
        }
      }
      else {
        msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Love</u></font color></font size><br/>Lastly, what sort of love are you looking for in the world?<br/><br/>1) I could care less about relationships. {if game.stats=True:<font color=\"dedede\">+ Asexual Sexuality.</font color>} <br/><br/>2) I'm only looking for female partnerships. {if game.stats=True:<font color=\"dedede\">+ Heterosexual Sexuality.</font color>}<br/><br/>3) I'm mostly looking for female companionship but if the right guy comes along I might be open to it. {if game.stats=True:<font color=\"dedede\">+ Bi-Curious Sexuality.</font color>} <br/><br/>4) Male or female relationships; it's all the same to me. Either or. {if game.stats=True:<font color=\"dedede\">+ Bisexual Sexuality.</font color>}<br/><br/>5) I'm mostly looking for male/same-sex relationships but if the right girl comes along I might be interested. {if game.stats=True:<font color=\"dedede\">+ Bisexual Homosexual Lean Sexuality.</font color>} <br/><br/>6) I'm only interested in same-sex relationships. That's all. {if game.stats=True:<font color=\"dedede\">+ Homosexual Sexuality.</font color>} ")
        menulist = Split("Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Choice 6;Random", ";")
        ShowMenu ("", menulist, false) {
          if (result = "Choice 1") {
            msg ("<br/><font color=\"dedede\">And so it begins...</font color>")
            SetTo ("orientation", "asexual")
            wait {
              UpdateAllAttributes
              ClearScreen
              MoveObject (player, Part 1)
            }
          }
          else if (result = "Choice 2") {
            msg ("<br/><font color=\"dedede\">And so it begins...</font color>")
            SetTo ("orientation", "straight")
            wait {
              UpdateAllAttributes
              ClearScreen
              MoveObject (player, Part 1)
            }
          }
          else if (result = "Choice 3") {
            msg ("<br/><font color=\"dedede\">And so it begins...</font color>")
            SetTo ("orientation", "bi-curious")
            wait {
              UpdateAllAttributes
              ClearScreen
              MoveObject (player, Part 1)
            }
          }
          else if (result = "Choice 4") {
            msg ("<br/><font color=\"dedede\">And so it begins...</font color>")
            SetTo ("orientation", "bisexual")
            wait {
              UpdateAllAttributes
              ClearScreen
              MoveObject (player, Part 1)
            }
          }
          else if (result = "Choice 5") {
            msg ("<br/><font color=\"dedede\">And so it begins...</font color>")
            SetTo ("orientation", "bisexual homosexual lean")
            wait {
              UpdateAllAttributes
              ClearScreen
              MoveObject (player, Part 1)
            }
          }
          else if (result = "Choice 6") {
            msg ("<br/><font color=\"dedede\">And so it begins...</font color>")
            SetTo ("orientation", "homosexual")
            wait {
              UpdateAllAttributes
              ClearScreen
              MoveObject (player, Part 1)
            }
          }
          else if (result = "Random") {
            result = "Choice "+GetRandomInt(1,6)
          }
        }
      }
    }
  }
  UpdateAllAttributes
}

It may be something to do with script blocking?

Declaring result outside of ShowMenu shouldn't work, I don't think...

Playing with this seems to prove that (although it's strange that your first ShowMenu worked if this is the case):

      result = "forty-two"
      ShowMenu ("Pick. (current result: "+result+")", Split("one;two;forty-two", ";"), true) {
        if (result = "forty-two") {
          msg ("This is inside the ShowMenu block. ShowMenu-result: "+result)
        }
        else {
          msg ("This is inside the ShowMenu block. ShowMenu-result: "+result)
        }
      }
      msg ("This line is NOT included until after the ShowMenu block. pre-declared-result: "+result+".")

Well, I haven't changed the order of the scripts. I just removed all the repeated code for "Random" and condensed it into a single line of script. Even looking at it right now I can see that the "Random" choice with the new script is inside of the "wait". The only thing outside of every script is "UpdateAllAttributes" ---but that isn't affecting the "Random Choice"

See all the other options still work. The "Random Choice" doesn't now with this new script in it.

result = "Choice "+GetRandomInt(1,6)

Anonynn.


Oh, duh!

I didn't see that:

 else if (result = "Random") {
  result = "Choice "+GetRandomInt(1,6)
}

What if you put that line first?


        ShowMenu ("", menulist, false) {
          if (result = "Random") {
            result = "Choice "+GetRandomInt(1,8)
          }
          if (result = "Choice 1") {
            player.sexy = 5
            list remove (game.ccreation, "Parent History")
            list add (game.ccreation, "Family Reputation")
            ClearScreen
            CharacterCreation1
          }
          else if (result = "Choice 2") {
            player.sympathy = 5
            list remove (game.ccreation, "Parent History")
            list add (game.ccreation, "Family Reputation")
            ClearScreen
            CharacterCreation1
          }
          else if (result = "Choice 3") {
            player.sarcasm = 5
            list remove (game.ccreation, "Parent History")
            list add (game.ccreation, "Family Reputation")
            ClearScreen
            CharacterCreation1
          }
          else if (result = "Choice 4") {
            player.serious = 5
            list remove (game.ccreation, "Parent History")
            list add (game.ccreation, "Family Reputation")
            ClearScreen
            CharacterCreation1
          }
          else if (result = "Choice 5") {
            player.sexy = 5
            player.sympathy = 5
            list remove (game.ccreation, "Parent History")
            list add (game.ccreation, "Family Reputation")
            ClearScreen
            CharacterCreation1
          }
          else if (result = "Choice 6") {
            player.sexy = 5
            player.sarcasm = 5
            list remove (game.ccreation, "Parent History")
            list add (game.ccreation, "Family Reputation")
            ClearScreen
            CharacterCreation1
          }
          else if (result = "Choice 7") {
            player.sympathy = 5
            player.serious = 5
            list remove (game.ccreation, "Parent History")
            list add (game.ccreation, "Family Reputation")
            ClearScreen
            CharacterCreation1
          }
          else if (result = "Choice 8") {
            player.sympathy = 5
            player.sarcastic = 5
            list remove (game.ccreation, "Parent History")
            list add (game.ccreation, "Family Reputation")
            ClearScreen
            CharacterCreation1
          }

A short test:

If I use this script, nothing prints when selecting 'random':

ShowMenu ("Pick.", Split("Choice 1;Choice 2;Choice 3;random", ";"), true) {
  if (result = "Choice 1") {
    msg ("YOU CHOSE ONE")
  }
  else if (result = "Choice 2") {
    msg ("YOU CHOSE TWO")
  }
  else if (result = "Choice 3") {
    msg ("YOU CHOSE THREE")
  }
  else if (result = "random") {
    result = "Choice "+GetRandomInt(1,3)
  }
}

But, it works this way:

ShowMenu ("Pick.", Split("Choice 1;Choice 2;Choice 3;random", ";"), true) {
  if (result = "random") {
    result = "Choice "+GetRandomInt(1,3)
  }
  if (result = "Choice 1") {
    msg ("YOU CHOSE ONE")
  }
  else if (result = "Choice 2") {
    msg ("YOU CHOSE TWO")
  }
  else if (result = "Choice 3") {
    msg ("YOU CHOSE THREE")
  }
}

I think KV has it in the last time.

That result = "Choice "+GetRandomInt(1,6) is changing the value of result to "Choice 1" or "Choice 6" or something in between. So it needs to come before the if/else/if/else block where you compare result to those values and do the appropriate thing based on that. Also note that there is no else between the random block and the "Choice 1" block (that's the mistake a lot of people might make. Always remember to remove the "else" in cases where it should be possible for both to happen)


(Currently trying to resist the urge to refactor this… I always end up thinking about how I would have arranged code; but while this isn't my project I should probably keep those thoughts to myself)

EDIT: I've had a high stress day, and simple coding usually helps me calm down. So I've spent an hour or two re-implementing this system in the way I'd have built it (but with your wonderfully descriptive text). If you want to see what I've come up with, just ask. I arranged it a bit differently; so the script starts with a load of strings containing all the questions, and then has the code that powers it separated out at the bottom. For example, one of the cases in my 'switch' block looks like:

    case ("Family Reputation") {
      title = "Family Reputation"
      question = "But what was your family's reputation?"
      dictionary add (options, "That of responsibility, nobility and status. [[+3 INT, +30 GLD.]]", "base_intelligence+3;gold+30")
      dictionary add (options, "That of privacy and secrecy. [[+6 INT, +5 CRPT.]]", "base_intelligence+6;corruption+5")
      dictionary add (options, "That they were diligent, hard workers. [[+3 STR, +3 MX HLTH.]]", "base_strength+3;base_health+3")
      dictionary add (options, "Being poor in pocket but having the kindest hearts. [[+3 MX CRRY, +3 RST.]]", "maxvolume+3;resist+3")
      dictionary add (options, "Descending from a long line of brave warriors. [[+3 DEF.]]", "defense+3")
      dictionary add (options, "Shrouded in dark magic and mystery. [[+12 RST, +10 CRPT.]]", "resist+12;corruption+10")
      dictionary add (options, "That were very rich and greedy SOBs. [[+6 MX CRRY, +30 GLD, +20 CRPT.]]", "maxvolume+6;corruption+20;gold+30")
      dictionary add (options, "Wait---what family? I was an orphan. [[+3 STR, +3 AGL.]]", "base_strength+3;base_agility+3")
      dictionary add (options, "So damn broken. [[+6 MX HLTH, +6 RST, +10 CRPT.]]", "base_health+6;resist+6;corruption+6")
      dictionary add (options, "Descendant from a long line of great thieves. [[+6 AGL, +30 GLD, +20 CRPT.]]", "base_agility+6;gold+30;corruption+20")
      nextquestion = "Alias"
    }

perfectionists: our curse is to forever re-factor/optimize code... laughs... HK always want to make the most optimized code systems that he can within his ability, but he's still a noob at coding, systems / OOP / OOD, designing... sighs.


Hey all :) So I applied the changes to what is below. Is that what you meant? It's still not working yet though when I select the "Random Choice." Did I do something wrong?

msg ("")
wait {
  ClearScreen
  msg ("")
  menulist = Split("Random;Choice 1;Choice 2;Choice 3;Choice 4;Choice 5;Choice 6;Choice 7;Choice 8", ";")
  ShowMenu ("", menulist, false) {
    if (result = "Random") {
      result = "Choice "+GetRandomInt(1,8)
    }
    else if (result = "Choice 1") {
      player.sexy = 5
      list remove (game.ccreation, "Parent History")
      list add (game.ccreation, "Family Reputation")
      ClearScreen
      CharacterCreation1
    }
    else if (result = "Choice 2") {
      player.sympathy = 5
      list remove (game.ccreation, "Parent History")
      list add (game.ccreation, "Family Reputation")
      ClearScreen
      CharacterCreation1
    }
    else if (result = "Choice 3") {
      player.sarcasm = 5
      list remove (game.ccreation, "Parent History")
      list add (game.ccreation, "Family Reputation")
      ClearScreen
      CharacterCreation1
    }
    else if (result = "Choice 4") {
      player.serious = 5
      list remove (game.ccreation, "Parent History")
      list add (game.ccreation, "Family Reputation")
      ClearScreen
      CharacterCreation1
    }
    else if (result = "Choice 5") {
      player.sexy = 5
      player.sympathy = 5
      list remove (game.ccreation, "Parent History")
      list add (game.ccreation, "Family Reputation")
      ClearScreen
      CharacterCreation1
    }
    else if (result = "Choice 6") {
      player.sexy = 5
      player.sarcasm = 5
      list remove (game.ccreation, "Parent History")
      list add (game.ccreation, "Family Reputation")
      ClearScreen
      CharacterCreation1
    }
    else if (result = "Choice 7") {
      player.sympathy = 5
      player.serious = 5
      list remove (game.ccreation, "Parent History")
      list add (game.ccreation, "Family Reputation")
      ClearScreen
      CharacterCreation1
    }
    else if (result = "Choice 8") {
      player.sympathy = 5
      player.sarcastic = 5
      list remove (game.ccreation, "Parent History")
      list add (game.ccreation, "Family Reputation")
      ClearScreen
      CharacterCreation1
    }
  }
}
UpdateAllAttributes

Currently trying to resist the urge to refactor this… I always end up thinking about how I would have arranged code; but while this isn't my project I should probably keep those thoughts to myself. I've had a high stress day, and simple coding usually helps me calm down. So I've spent an hour or two re-implementing this system in the way I'd have built it but with your wonderfully descriptive text. If you want to see what I've come up with, just ask. I arranged it a bit differently; so the script starts with a load of strings containing all the questions, and then has the code that powers it separated out at the bottom. For example, one of the cases in my 'switch' block looks like

Although this is my code, I'm always open to suggestions about how to make it more efficient/better. So I'm open to ideas. I don't know if I'd have the time to redo the entire Character Creator because I have other aspects of the game I'm expected to work on, but if someone else wanted to do it or let me know for next time that would be amazing. I won't improve if I don't know about the better ways, ya know? Also, thank you very much for the compliment!

I appreciate you three (Mr.Angel, KV and HK for weighing in on this so far ^_^ It's greatly appreciated.

Anonynn.


 ShowMenu ("", menulist, false) {
    if (result = "Random") {
      result = "Choice "+GetRandomInt(1,8)
    }
    else if (result = "Choice 1") {
      player.sexy = 5
      list remove (game.ccreation, "Parent History")
      list add (game.ccreation, "Family Reputation")
      ClearScreen
      CharacterCreation1
    }

should be:

 ShowMenu ("", menulist, false) {
    if (result = "Random") {
      result = "Choice "+GetRandomInt(1,8)
    }
    if (result = "Choice 1") {
      player.sexy = 5
      list remove (game.ccreation, "Parent History")
      list add (game.ccreation, "Family Reputation")
      ClearScreen
      CharacterCreation1
    }

The else if got you.


Ah yup. Thanks K.V :D :D !!

So I have a question does this...

result = "Choice "+GetRandomInt(1,8)

Work for choices that aren't called Choices. For example...

msg ("<br/><font size=\"4\"><font color=\"dedede\"><u>Gender</u></font color></font size><br/>And you are a...<br/>1) <font color=\"f493fe\">Girl:</font color> {if game.stats=True:<font color=\"dedede\">+1 MX HLTH, +1 AGL</font color>}<br/><br/>2) <font color=\"75d6fa\">Boy:</font color> {if game.stats=True:<font color=\"dedede\">+1 MX CRRY, +1 STR.</font color>}")
menulist = Split("Random;Girl;Boy", ";")
ShowMenu ("", menulist, false) {
  if (result = "Random") {
    result = "Choice "+GetRandomInt(1,2)
  }
  if (result = "Girl") {
    SetTo ("gender", "female")
    ClearScreen
    list remove (game.ccreation, "Gender")
    list add (game.ccreation, "Gemstone")
    CharacterCreation1
  }
  else if (result = "Boy") {
    SetTo ("gender", "male")
    ClearScreen
    list remove (game.ccreation, "Gender")
    list add (game.ccreation, "Gemstone")
    CharacterCreation1
  }
}
UpdateAllAttributes

No, ma'am.

You'd have to make it something like:

  if (result = "Random") {
    result = PickOneString(Split("Boy;Girl", ";"))
  }



Thanks! I'll have to test that in the morning or after class actually. I need sleep @[email protected] Thank you again!


Well, if you want to see how I'd do something like this, here's my version. This was mostly just a mental exercise to see if I could do it, to help calm me down. So the code isn't the neatest or the most efficient (and I haven't tested it after the last changes - if you want to actually use it, I can try poking it further).
[Edit2: Slight edit, so "allrandom" will work with special cases like 'Alias']
[Edit: Adding "all random" and "debug" options]

Code and rationale I've got a big 'switch' statement that puts the text into some variables; followed by a big block of script that adds HTML for formatting, displays the question, processes the result, and sets up the next question. I find that in a lot of cases this can be better, as you're not looking through all the code every time you go to correct a typo or something.

Having them next to each other also makes it easier to notice if the information displayed in the message to the player ("+3 Mood; Sexy/+3 Mood; Sarcastic") and the change in the actual code ("player.sexy = 5", "player.sarcasm = 5") don't match. I noticed a couple of these while I was playing with this, I think I flagged them all with comments if you want to find them. Not sure if they're typos, or intentional UIscrew, so I didn't change them.

Reduction in code size is somewhere between 65% and 84%, depending if you count words, lines, or bytes.

I also moves HTML to the end as far as possible; because I'm used to code-view in the web editor occasionally failing to save if you have too many < or > in strings.

I've split it up into two functions, to reduce code reuse. Pseudo-XML to format them.

<function name="CharacterCreation1">
  if (GetBoolean (game, "ccdebug)) {
    msg ("DEBUG: ClearScreen skipped so you can see previous debug output")
  }
  else if (GetBoolean (game, "ccrandom")) {
    // In the case of all stats random, you probably want to be able to scroll back and see what choices the randomiser made
    // so we draw a line across the page instead of clearing the screen.
    msg ("<hr />")
  }
  else {
    ClearScreen
  }
  if (not HasAttribute(game, "ccreation")) {
    game.ccreation = "stats mode"
  }
  title = ""
  question = ""
  nextquestion = ""
  afterquestion = null
  options = NewStringDictionary()
  simplechoice = false
  addrandom = true
  title = game.ccreation
  // ////////////////////////////////////////////////////////////////////// //
  //  To change the questions or the results, you should only need to edit  //
  //                       this 'switch' statement :)                       //
  // ////////////////////////////////////////////////////////////////////// //
  switch (game.ccreation) {
    case ("stats mode") {
      title = ""
      question = "How would you like to create your character?"
      dictionary add (options, "No stats. You can answer a set of questions about your character's background and personality, and these will determine your statistics.", "game.stats=false")
      dictionary add (options, "With stats. You can answer the same questions, but you will see the effect each will have on your statistics before you choose it.", "game.stats=true")
      dictionary add (options, "Random. You will be given a character created at random from all the possibilities.", "game.stats=false;game.ccrandom=true")
      addrandom = false
      simplechoice = true
      player.difficulty = false
      nextquestion = "Parent History"
    }
    case ("Parent History") {
      question = "We’re all surrounded by echoes; faint whispers in the dark; remnants---fragments of friends and family, feelings, smells---all speaking to us beneath dense clusters of distant ghosts residing in the night sky; familiar faces of those we know and those who’ve passed away, or moved on from here etched in a molten prison. The fire intensifies these echoes and helps us explore our fragile mortality while at the same time quieting our thoughts and focusing them so that we can listen and inherit the wisdom that gives us our strength in dancing ash and flame.///But sometimes memories and echoes aren't enough, no matter how vivid they may be, they can never replace a loved one, nor a friendly smile from a kind neighbor. And yet, night after night, the flames of yesterday indulge us creating twisted, gnarled labyrinths of thought that force us trudge on again and again. Unfortunately, the familiar paths they guide us down have long since overgrown and the once lush landscapes of reflection have become lost.///The world continues on growing leaving us desperate---clinging to our memories and youth; static moments in time that are stuck in an endless loop. The cycle must be broken if we are to survive. We must forge new memories, new experiences in order to adapt while at the same time drawing strength from the echoes of the long distant past…"
      nextquestion = "Parent History 2"
    }
    case ("Parent History 2") {
      title = "Parent History"
      question = "How do you remember your parent's/guardian's personalities when you were a child? How did they influence you? (Your choice will determine your starting dominant Mood.)<font size=\"1\"><font color=\"dedede\"> <u>Sexy</u></font color>: NSFW/legal age.<font color=\"dedede\"> <u>Sympathy</u></font color>: SFW/all ages.<font color=\"dedede\"> <u>Sarcasm</u></font color>: NSFW/legal age.<font color=\"dedede\"> <u>Serious</u></font color>:SFW/all ages.</font size><br/><br/>"
      dictionary add (options, "I remember them always looking as attractive as possible in social situations and they very playful and intimate with each other. [[+5 Mood; Sexy]]", "sexy=5")
      dictionary add (options, "I remember them being extremely sympathetic and understanding in social situations, especially in friendships. They always aimed to put themselves in other people's shoes. [[+5 Mood; Sympathy]]", "sympathy=5")
      dictionary add (options, "I remember them being very quick to anger and pretty high tempered in general, even when dealing with friendships. They were fierce lovers as well. [[+5 Mood; Sarcastic]]", "sarcasm=5")
      dictionary add (options, "I remember they were very serious-minded individuals and were often concerned with the state of the world. [[+5 Mood; Serious]]", "serious=5")
      dictionary add (options, "I remember they were sort of a mix; they always tried to look their best in social situations but they were very understanding and good listeners as well. [[+3 Mood; Sexy/+3 Mood; Sympathy]]", "sexy=5;sympathy=5")
      dictionary add (options, "I remember they were sort of a mix; they always tried to look their best in social situations but were very high tempered as well. They had very few friendships. [[+3 Mood; Sexy/+3 Mood; Sarcastic]]", "sexy=5;sarcasm=5")
      dictionary add (options, "I remember they were sort of a mix; they were both very serious-minded individuals and always used their resources to help the state of world. They had a great deal of empathy and sympathy for the suffering [[+3 Mood; Sympathy/+3 Mood; Serious]]", "sympathy=5;serious=5")
      dictionary add (options, "I remember they were sort of a mix; they always tried really hard to be understanding in most social situations but would often lose their tempers if things didn't go their way. [[+3 Mood; Sympathy/+3 Mood; Sarcastic]]", "sympathy=5;sarcasm=5")
      nextquestion = "Family Reputation"
    }
    case ("Family Reputation") {
      question = "But what was your family's reputation?"
      dictionary add (options, "That of responsibility, nobility and status. [[+3 INT, +30 GLD.]]", "base_intelligence+3;gold+30")
      dictionary add (options, "That of privacy and secrecy. [[+6 INT, +5 CRPT.]]", "base_intelligence+6;corruption+5")
      dictionary add (options, "That they were diligent, hard workers. [[+3 STR, +3 MX HLTH.]]", "base_strength+3;base_health+3")
      dictionary add (options, "Being poor in pocket but having the kindest hearts. [[+3 MX CRRY, +3 RST.]]", "maxvolume+3;resist+3")
      dictionary add (options, "Descending from a long line of brave warriors. [[+3 DEF.]]", "defense+3")
      dictionary add (options, "Shrouded in dark magic and mystery. [[+12 RST, +10 CRPT.]]", "resist+12;corruption+10")
      dictionary add (options, "That were very rich and greedy SOBs. [[+6 MX CRRY, +30 GLD, +20 CRPT.]]", "maxvolume+6;corruption+20;gold+30")
      dictionary add (options, "Wait---what family? I was an orphan. [[+3 STR, +3 AGL.]]", "base_strength+3;base_agility+3")
      dictionary add (options, "So damn broken. [[+6 MX HLTH, +6 RST, +10 CRPT.]]", "base_health+6;resist+6;corruption+6")
      dictionary add (options, "Descendant from a long line of great thieves. [[+6 AGL, +30 GLD, +20 CRPT.]]", "base_agility+6;gold+30;corruption+20")
      nextquestion = "Alias"
    }
    case ("Alias") {
      question = "And what name or title were you given?"
      afterquestion => {
        get input {
          player.alias = result
          msg ("<br/>Pleased to meet you, <font color=\"dedede\">{player.alias}</font color>! ")
          wait {
            game.ccreation = "Gender"
            CharacterCreation1
          }
        }
      }
    }
    case ("Gender") {
      simplechoice = true
      title = "Gender"
      question = "And you are a..."
      dictionary add (options, "{color:f493fe:Girl} [[+1 MX HLTH, +1 AGL]]", "gender=female;nails=long")
      dictionary add (options, "{color:75d6fa:Boy} [[+1 MX CRRY, +1 STR.]]", "gender=male;nails=short;penissize={random:10-inch:8-inch:6-inch:6-inch}")
      player.virgin = true
      player.gavebirth = false
      // This was in "Work", but I think it makes more sense to be here
      SetTo ("lips", PickOneString(Split("large;plump;thin;average", ";")))
      nextquestion = "Gemstone"
    }
    case ("Gemstone") {
      simplechoice = true
      title = "Genstone"
      question = "And the most appealing gemstone?"
      dictionary add (options, "Emerald. [[Light Green Eyecolor]]", "eyecolor=light green")
      dictionary add (options, "Tanzanian. [[Green Eyecolor]]", "eyecolor=green")
      dictionary add (options, "Tiger's Eye. [[Light Brown Eyecolor]]", "eyecolor=light brown")
      dictionary add (options, "Agate. [[Brown Eyecolor]]", "eyecolor=brown")
      dictionary add (options, "Citrine. [[Amber/Gold Eyecolor]]", "eyecolor=gold")
      dictionary add (options, "Lapis Lazuli. [[Blue Eyecolor]]", "eyecolor=blue")
      dictionary add (options, "Aquamarine. [[Pale Blue Eyecolor]]", "eyecolor=pale blue")
      dictionary add (options, "Hematite. [[Gray Eyecolor]]", "eyecolor=gray")
      nextquestion = "Scenery"
    }
    case ("Scenery") {
      question = "And the scenery that described you best as a child?"
      dictionary add (options, "A Beautiful Sandy Beach. [[Brunette Hair.]]", "haircolor=brunette")
      dictionary add (options, "A Stunning Evening With A Rich Sunset. [[Red Hair.]]", "haircolor=red")
      dictionary add (options, "A Black Sky Illuminated By A Blood Moon. [[Dark Red Hair.]]", "haircolor=dark red")
      dictionary add (options, "The Abyssal Night Sky. [[Black Hair.]]", "haircolor=black")
      dictionary add (options, "An Endless Field Of Large Sunflowers. [[Dirty Blonde Hair.]]", "haircolor=dirty blonde")
      dictionary add (options, "A Dark Pond Brightened By Lotus Flowers. [[Platinum Blonde Hair.]]", "haircolor=platinum blonde")
      dictionary add (options, "A Heavy Snow Laden Meadow. [[White Hair.]]", "white")
      dictionary add (options, "A Dark Misty Forest At Twilight. [[Silver Hair.]]", "silver")
      nextquestion = "Length"
    }
    case ("Length") {
      question = "And how long is it?"
      dictionary add (options, "You like wearing it bald at the moment.", "hairlength=bald")
      dictionary add (options, "You like having it extremely short, practically buzzed.", "hairlength=buzzed")
      dictionary add (options, "You like wearing it short.", "hairlength=short")
      dictionary add (options, "You like having it about shoulder-length as of late.", "hairlength=shoulder length")
      dictionary add (options, "You like having it long and flowing.", "hairlength=long")
      nextquestion = "Belief"
    }
    case ("Belief") {
      question = "You’ve always believed…"
      fur.show = false
      wings.show = false
      skin.show = false
      scales.show = false
      tails.show = false
      horns.show = false
      feathers.show = false
      dictionary add (options, "Perseverance is the key to all life’s endeavors. [[Human Race, +1 MX HLTH, +1 MX CRRY.]]", "race=human;skin.show=true;height={random:5.2:5.4:5.6:5.8:6.0:{if player.gender=male:6.2}{if player.gender=female:5.0}}")
      dictionary add (options, "That you cannot rely on anyone but yourself. [[Elven Race, +1 MX HLTH +1 AGL.]]", "race=elven;skin.show=true;height={random:5.2:5.4:5.6:5.8:6.0:{if player.gender=male:6.2}{if player.gender=female:5.0}}")
      dictionary add (options, "The key to life is having a great time and enjoying company. [[ Dwarven Race, +1 MX HLTH, +1 STR.]]", "race=dwarf;skin.show=true;height={random:4.2:4.4:4.6:4.8:5.0:{if player.gender=male:5.2}{if player.gender=female:4.0}}")
      dictionary add (options, "That everything happens for a reason. [[Dragon-Descended Race, +2 RST.]]", "race=dragon-descended;skin.show=true;scales.show=true;tails.show=true;height={random:5.2:5.4:5.6:5.8:6.0:{if player.gender=male:6.2}{if player.gender=female:5.0}}")
      dictionary add (options, "That anybody can make a difference in they put their heart into it. [[Halfling Race, +2 AGL.]]", "race=halfling;skin.show=true;height={random:3.6:3.8:4.0:4.2:4.4:{if player.gender=male:4.6}{if player.gender=female:3.4}}")
      dictionary add (options, "That to succeed in any endeavor, you must believe in yourself. [[Orc-Descended Race, +2 STR.]]", "race=orc-descended;skin.show=true;height={random:5.6:5.8:6.0:6.2:6.4:{if player.gender=male:6.6}{if player.gender=female:5.4}}")
      dictionary add (options, "That one should not be deceived by outward appearances. [[Gnome Race, +2 INT.]]", "race=gnome;skin.show=true;height={random:3.6:3.8:4.0:4.2:4.4:{if player.gender=female:3.4}{if player.gender=male:4.6}}")
      afterquestion => {
        // This function is called after the question has been answered.
        // Here, I'm using it to make the strings above shorter, so easier to read
        foreach (part, Split("feet,hands,ears,mouth", ",")) {
          SetTo (part, this.race)
        }
      }
      nextquestion = "Ethnicity"
    }
    case ("Ethnicity") {
      question = "What about your ethnicity?"
      switch (player.race) {
        case ("human", "dwarf", "dragon-descended", "halfling", "gnome") {
          // In the original you test for "dwarven". I changed it to "dwarf" as that's
          // what it gets set to in the "Belief" section.
          //
          dictionary add (options, "Wintervalan. [[Pale Skin.]]", "skin=pale")
          dictionary add (options, "Bourghian. [[Black Skin.]]", "skin=black")
          dictionary add (options, "Miran. [[Brown Skin.]]", "skin=brown")
          dictionary add (options, "Itavican. [[Freckled Skin.]]", "skin=freckled")
          dictionary add (options, "Thaosian. [[Olive Skin.]]", "skin=olive")
          dictionary add (options, "Agian. [[Tanned Skin.]]", "skin=tanned")
        }
        case ("elven") {
          // In the original version, the numbers in the message didn't match up with
          // the numbers in the options. That's why I prefer to let the script pick
          // numbers.
          //
          dictionary add (options, "Wintervalan. [[Pale Skin.]]", "skin=pale")
          dictionary add (options, "Southern Miran. [[Olive Skin.]]", "skin=olive")
          dictionary add (options, "Itavican. [[Porcelain Skin.]]", "skin=white")
          dictionary add (options, "Northern Agian. [[Tanned Skin.]]", "skin=tanned")
        }
        case ("orc-descended") {
          // I noticed that for the orc-descended character the attribute is "skincolor"
          // but for other races it's "skin". Is this intentional?
          //
          dictionary add (options, "Northern Agian. [[Green Skin.]]", "skincolor=green")
          dictionary add (options, "Bourghian. [[Red Skin.]]", "skincolor=red")
          dictionary add (options, "Southern Itavican. [[Light Gray Skin.]]", "skincolor=grayish")
        }
        default {
          Error ("If you can get this message, I probably mistyped a race name. Your race is:"+player.race)
        }
      }
      if (player.race = "dragon-descended") {
        nextquestion = "Scales"
      }
      else {
        nextquestion = "Values"
      }
    }
    case ("Scales") {
      question = "And your scale color?"
      dictionary add (options, "Red.", "scales=red")
      dictionary add (options, "Orange.", "scales=orange")
      dictionary add (options, "Black.", "scales=black")
      dictionary add (options, "Dynamic-Adaptive.", "scales=dynamic-adaptive")
      dictionary add (options, "Blue.", "scales=blue")
      dictionary add (options, "Green", "scales=green")
      nextquestion = "Values"
    }
    case ("Values") {
      title = "Some Memories Aren’t Enough."
      question = "Although, we must be careful that the memories we draw our strength from are substantial enough to help us carry the weight of our future, that they keep us above the abyss of disorientation. The foundation of our entire being relies on us being full of genuine experience and unbridled passion. The measure of our past and future can sometimes be measured by our introspection as well, but as the old proverb states; stare into the abyss for long enough---and the abyss will stare right back.///That’s why it’s important not to live in the past too long. It’s easy to get trapped there and to focus on the trivial aspects of our lives and avoid that with carries our greatest pain and triumphs. This is why the journey forward is needed now more than ever before. Unfortunately, these memories aren’t enough. Gender? Wealth? Heritage? Not all of these qualities define who we become. They carry weight, but we must delve deeper to that which carries significance and purpose."
      nextquestion = "Values 2"
    }
    case ("Values 2") {
      title = "Values"
      question = "As you grew into a child, what did you value most?"
      dictionary add (options, "Being Yourself/Authentic. [[+1 RST]]", "resist+1")
      dictionary add (options, "Maintaining Balance. [[+1 MX HLTH]]", "base_health+1")
      dictionary add (options, "Exploring Your Curiosity. [[+1 MX CRRY]]", "maxvolume+1")
      dictionary add (options, "Being A Leader. [[+1 STR]]", "base_strength+1")
      dictionary add (options, "Blending In. [[+1 AGL]]", "base_agility+1")
      dictionary add (options, "Being {if player.gender=female:Beautiful}{if player.gender=male:Handsome}. [[+1 MX HLTH, +1 CHARM SKILL, +5 CRPT]]", "base_health+1;charmskill+1;corruption+5")
      dictionary add (options, "Having Religious Faith. [[+1 INT, +1 RST, +5 CRPT]]", "base_intelligence+1;resist+1;corruption+5")
      dictionary add (options, "Belief in Scientific Discovery. [[+1 INT]]", "base_intelligence+1")
      dictionary add (options, "Having Honor and Discipline. [[+1 DEF]]", "base_defense+1")
      dictionary add (options, "Friends and Family Wellbeing. [[-10 CRPT]]", "corruption-10")
      nextquestion = "Moral Choice 1"
    }
    case ("Moral Choice 1") {
      title = "Moral Choice"
      if (RandomChance(50)) {
        question = "When you were about 10 years old, you once saw Mr.Peyten, a beggar with two young daughters about your age, steal a bag of various fruits from a poor travelling merchant who looked to be struggling himself. How did you respond?"
        dictionary add (options, "Stealing is stealing. I feel terrible about the situation Mr.Peyten and his daughters are in, but breaking the law and resorting to theft doesn’t help their situation. [[-5 CRPT.]]", "corruption-5")
        dictionary add (options, "Stealing is wrong, sure. But if Mr.Peyten has a really good reason. Letting his family starve, that’s the real crime. If he has to steal a little to keep his family alive so be it. [[+1 INT.]]", "base_intelligence+1")
        dictionary add (options, "Who cares if he was stealing? It’s none of my business. Let him do whatever he wants, it’s got nothing to do with me. [[+1 MXCRRY.]]", "maxvolume+1")
        dictionary add (options, "I confronted him and told him not to do it again. Stealing is wrong and he should know better. It doesn’t matter what the reason for doing it is. [[+1 STR.]]", "base_strength+1")
        dictionary add (options, "I confronted him and told him to give me half of what he stole or I would report him to the village guards and the lord of our village. If he’s going to steal, I want to reap the benefits as well. [[+1 AGL, +1 RST, +10 CRPT.]]", "base_agility+1;resist+1;corruption+10")
      }
      else {
        question = "When you were about 10 years old, you once saw Ms.Moon, a beggar with two young sons about your age, steal a bag of various fruits from a poor travelling merchant who looked to be struggling himself. How did you respond?"
        dictionary add (options, "Stealing is stealing. I feel terrible about the situation Ms.Moon and her sons are in, but breaking the law and resorting to theft doesn’t help their situation. [[-5 CRPT.]]", "corruption-5")
        dictionary add (options, "Stealing is wrong, sure. But if Ms.Moon has a really good reason. Letting her family starve, that’s the real crime. If she has to steal a little to keep her family alive so be it. [[+1 INT.]]", "base_intelligence+1")
        dictionary add (options, "Who cares if she was stealing? It’s none of my business. Let her do whatever she wants, it’s got nothing to do with me. [[+1 MXCRRY.]]", "maxvolume+1")
        dictionary add (options, "I confronted her and told her not to do it again. Stealing is wrong and she should know better. It doesn’t matter what the reason for doing it is. [[+1 STR.]]", "base_strength+1")
        dictionary add (options, "I confronted her and told her to give me half of what she stole or I would report her to the village guards and the lord of our village. If she’s going to steal, I want to reap the benefits as well. [[+1 AGL, +1 RST, +10 CRPT.]]", "base_agility+1;resist+1;corruption+10")
      }
      nextquestion = "Moral Choice 2"
    }
    case ("Moral Choice 2") {
      title = "Moral Choice"
      if (RandomChance(50)) {
        question = "A week before John and Janine (a loving couple who were often very kind to you) were about to get married, you ran into Janine intimately kissing a mysterious traveler. She begged you not to tell her fiance because it would break his heart and hers as well. She promised never to do something like this again. How did you react?"
        dictionary add (options, "It’s a delicate situation. Both of them treat you very well. In the end though cheating is cheating. Despite Janine begging you with tears in her eyes, you quickly find and tell John, as he deserved to know the truth. A day or two later the wedding is called off.  [[-5 CRPT.]]", "corruption-5")
        dictionary add (options, "It’s a delicate situation but Janine is a really good person and just because she had a momentary weakness doesn’t mean you should ruin her marriage and their happiness. She promised she wouldn’t do it again and you trust her word. [[+1 MX HLTH.]]", "base_health+1")
        dictionary add (options, "The situation is delicate but that’s why you should exploit it as much as possible. Despite all her begging and pleading, you decide to blackmail her to get things you want from them. She reluctantly obliges and the two get married. Your relationship with them is never quite the same but you do get a lot of cool stuff from time to time. [[+1 INT, +1 MX CRRY, +10 GLD,  +15 CRPT.]]", "base_intelligence+1;maxvolume+1;gold+10;corruption+15")
        dictionary add (options, "After seeing her and the situation, she finishes begging and pleading with all her heart for you not to tell John, you simply shake your head and mention that you don’t want to get involved with this love affair and the lies, so you turn a blind shoulder. Eventually, they get married and your relationship with them becomes a little rocky. [[+1 RST.]]", "resist+1")
        dictionary add (options, "After hearing her pleas, you warn her that if it ever happens again, you’ll go straight to John with the information and the details. She thanks you over and over and assures you that it won’t. Afterward, she runs off and in a week’s time, the two are happily married. To this day, John still doesn’t know. [[+1 MX CRRY.]]", "maxvolume+1")
      }
      else {
        question = "A week before John and Janine (a loving couple who were often very kind to you) were about to get married, you ran into John intimately kissing a mysterious traveler. He begged you not to tell his fiance because it would break her heart and his as well. He promised never to do something like this again. How did you react?"
        dictionary add (options, "It’s a delicate situation. Both of them treat you very well. In the end though cheating is cheating. Despite John begging you with tears in his eyes, you quickly find and tell Janine, as she deserved to know the truth. A day or two later the wedding is called off.  [[-5 CRPT.]]", "corruption-5")
        dictionary add (options, "It’s a delicate situation but John is a really good person and just because he had a momentary weakness doesn’t mean you should ruin his marriage and their happiness. He promised he wouldn’t do it again and you trust his word. [[+1 MX HLTH.]]", "base_health+1")
        dictionary add (options, "The situation is delicate but that’s why you should exploit it as much as possible. Despite all his begging and pleading, you decide to blackmail him to get things you want from them. He reluctantly obliges and the two get married. Your relationship with them is never quite the same but you do get a lot of cool stuff from time to time. [[+1 INT, +1 MX CRRY, +10 GLD,  +15 CRPT.]]", "base_intelligence+1;maxvolume+1;gold+10corruption+15")
        dictionary add (options, "After seeing him and the situation, he finishes begging and pleading with all his heart for you not to tell Janine, you simply shake your head and mention that you don’t want to get involved with this love affair and the lies, so you turn a blind shoulder. Eventually, they get married and your relationship with them becomes a little rocky. [[+1 RST.]]", "resist+1")
        dictionary add (options, "After hearing his pleas, you warn him that if it ever happens again, you’ll go straight to Janine with the information and the details. He thanks you over and over and assures you that it won’t. Afterward, he runs off and in a week’s time, the two are happily married. To this day, Janine still doesn’t know. [[+1 MX CRRY.]]", "maxvolume+1")
      }
      nextquestion = "Growing Stronger"
    }
    case ("Growing Stronger") {
      question = "This is a step in the right direction because these kinds of memories are powerful and can be a beacon shining light when other lights have all but extinguished. These memories also carry an immeasurable weight that will help guide you toward your dreams and your future. They resonate deep inside your heart and remain there tucked away; protected from the harsh reality of the world.///As we grow, we become more ambitious, confident and courageous. We experiment with our identity, all while driving closer each and every day toward the distant horizon where the unknown of tomorrow waits to guide our trembling hands. We must remember who were back then if we are to grow beyond the stagnant wall that blocks our vision of the road ahead..."
      nextquestion = "Advice"
    }
    case ("Advice") {
      question = "What was the best advice you’ve ever heard?"
      dictionary add (options, "A rolling stone gathers no moss. [[+1 INT.]]", "base_intelligence+1")
      dictionary add (options, "A closed mouth does not get fed. [[+1 RST.]]", "resist+1")
      dictionary add (options, "A picture is worth a thousand words. [[+1 MX HLTH.]]", "base_health+1")
      dictionary add (options, "Absence makes the heart grow fonder. [[+1 MX CRRY.]]", "maxvolume+1")

      // Not sure why the next two print a message to the player when the rest don't
      // I left this script behaving the same as the original
      dictionary add (options, "Actions speak louder than words. [[+1 STR.]]", "base_strength+1;:<br/><font color=\"dedede\">You gain +1 Strength.</font color>")
      dictionary add (options, "Fortune favors the bold. [[+10 GOLD.]]", "gold+10;:<br/><font color=\"dedede\">You gain +1 Gold.</font color>")
      dictionary add (options, "The early bird gets the worm. [[+1 AGL.]]", "base_agility+1")
      dictionary add (options, "When the going gets tough, the tough get going. [[+1 DEF.]]", "base_defense+1")
      dictionary add (options, "I never received any good advice. I just did my best. [[-5 CORR.]]", "corruption-5")
      nextquestion = "Pride"
    }
    case ("Pride") {
      question = "You prided yourself most on your..."
      dictionary add (options, "Appearance. [[+1 MX HLTH, +1 Charm Skill.]]", "base_health+1;charmskill+1")
      dictionary add (options, "Brains. [[+1 INT, +1 Alchemy Skill.]]", "base_intelligence+1;alchskill+1")
      dictionary add (options, "Brawn. [[+1 STR, +1 Forge Skill.]]", "base_strength+1;forgeskill+1")
      dictionary add (options, "Inner Strength. [[+1 RST, +1 Meditation Skill.]]", "resist+1;meditskill+1")
      dictionary add (options, "Willpower. [[+2 MXCRRY.]]", "maxvolume+2")
      dictionary add (options, "Fortitude. [[+1 MX HLTH, +1 Juggling Skill.]]", "base_health+1;juggleskill+1")
      dictionary add (options, "Flexibility. [[+1 AGL, +1 Tailoring Skill.]]", "base_agility+1;tailorskill+1")
      dictionary add (options, "Fortune. [[+10 GLD, +1 Thief Skill.]]", "gold+10;thiefskill+1")
      dictionary add (options, "Toughness. [[+1 DEF.]]", "base_defense+1")
      dictionary add (options, "Anger. [[+15 CORR, +1 STR, +1 AGL, +1 INT, +1 MX CRRY, +1 MX HLTH.]]", "corruption+15;base_strength+1;base_agility+1;base_intelligence+1;maxvolume+1;base_health+1")
      dictionary add (options, "Purity. [[-10 CORR.]]", "corruption-10")
      nextquestion = "Weakness"
    }
    case ("Weakness") {
      // Is this the correct title?
      title = "Pride"
      question = "But what was your biggest weakness?"
      dictionary add (options, "Lust. [[+1 MXHLTH.]]") {
        player.base_health = player.base_health + 1
        switch (GetHighestAtt()) {
          case ("sexy", "sarcasm") {
            player.lust = player.lust + 1
            if (RandomChance(25)) {
              player.virgin = False
            }
          }
        }
      }
      dictionary add (options, "Greed. [[+10 GLD.]]", "gold+10")
      dictionary add (options, "Wrath. [[+1 STR.]]", "base_strength+1")
      dictionary add (options, "Gluttony. [[+1 MXCRRY.]]", "maxvolume+1")
      dictionary add (options, "Sloth. [[+1 INT.]]", "base_intelligence+1")
      dictionary add (options, "Envy. [[+1 AGL.]]", "base_agility+1")
      dictionary add (options, "Pride. [[+1 RST.]]", "resist+1")
      dictionary add (options, "None of these. [[+15 CORR, +1 STR, +1 AGL, +1 INT.]]", "corruptions+15;base_strength+1;base_agility+1;base_intelligence+1")
      nextquestion = "present 1"
    }
    case ("present 1") {
      title = "Arriving In The Present."
      question = "But perhaps it’s the tallest walls that are the most important because they help define who we are deep down inside, they are struggles and goals that teach us the absolute hardest lesson and require the sum of all our wisdom to overcome. All for the sake of finding a missing piece of ourselves. If fire represents a gateway and the distant echoes fragments of time long spent, then the walls of the future are our struggles; barriers that must be painfully shattered so that we may reach the greatest truth. ///There is more to it than that however, the future is also about survival, fortitude and perseverance. And they are needed more than ever. The Planet is dying and our continent, Auvora, is all that remains. At least that’s what some believe. The Void, the manifestation of corruption, lust and darkness has corroded the sea, perverted the land and it’s inhabitants, and now it has brought death to our doorstep. We all stand deep in the hurricane’s eye; one breath in wait as our warriors, knights, wizards and ancient protectors give their lives to hold this terrible evil at bay."
      nextquestion = "present 2"
    }
    case ("present 2") {
      title = ""
      question = "But now the tide has begun to recede and the hour of hopeful wishing has turned dim and despairing. The death stroke to finish us all might have finally been dealt---The Savior, the Muse’s special chosen, the only one who can truly fight back the Void has disappeared from the front. Taking with her our freedom and our futures. At first, this mere whisper only affected the paranoid and the doomsayers but when the whispers of a terrible omen circulated into the mix, even long established businessmen, religious leaders and traders began to flee their homes; each wanting to get as far from the Void and the fighting as possible. As a result, once thriving villages of commerce and trade became abandoned remnants of family dynasties, and ancient traditions.///That’s what happened here. Everyone from this village, save for the elderly who refuse to leave their homes no matter how bad things got, are gone. So I sit here trying to remember how things were when I was a kid. If I can do that and find myself, perhaps these ancient whispers and impassible walls can no longer trap my will and I can journey to the southwest with the others and seek protection in these last days. But who have I become after all this time?"
      nextquestion = "Favorite Saying"
    }
    case ("Favorite Saying") {
      question = "My favorite saying now is that…"
      dictionary add (options, "Nothing can stop you if you want something bad enough. [[+1 STR, -1 AGL.]]", "base_srength+1;base_agility-1")
      dictionary add (options, "That flexibility and compromise make the world go ‘round. [[+1 AGL, -1 STR.]]", "base_strength-1;base_agility+1")
      dictionary add (options, "That no matter how hard life hits, you must keep pushing forward. [[+1 MX HLTH, -1 RST.]]", "base_health+1;resist-1")
      dictionary add (options, "The pen is mightier than the sword. [[+1 INT, -1 MXCRRY.]]", "base_intelligence+1;maxvolume-1")
      dictionary add (options, "That the easy lessons sometimes hit you the hardest. [[+1 RST, -1 MXHLTH.]]", "base_health-1;resist+1")
      dictionary add (options, "Your body's a temple that must be respected and cared for. [[+1 DEF, -1 MX HLTH, -1 MXCRRY.]]", "base_defense+1;maxvolume-1;base_health-1")
      dictionary add (options, "Everyone has burdens and demons to overcome. [[+1 MX CRRY, -1 INT.]]", "maxvolume+1;base_intelligence-1")
      nextquestion = "Best Skill"
    }
    case ("Best Skill") {
      question = "Someone who knows me well could describe my best skill as being…"
      dictionary add (options, "Multi-tasking. You’re a champion. [[+2 Juggle Skill, +1 MXCRRY.]]", "juggleskill+2;maxvolume+1")
      dictionary add (options, "Working very hard; day in and day out. [[+2 Forge Skill, +1 DEF.]]", "forgeskill+2;base_defense+1")
      dictionary add (options, "Seeing the finest details in everything. [[+2 Tailor Skill, +1 STR.]]", "tailorskill+2;base_strength+1")
      dictionary add (options, "Planning ahead and prioritizing.  [[+2 Thief Skill, +1 AGL.]]", "thiefskill+2;base_agility+1")
      dictionary add (options, "Cooking up original concoctions with ease. [[+2 Alchemy Skill, +1 INT.]]", "alchskill+1;base_intelligence+1")
      dictionary add (options, "How incredibly charming you are. [[+2 Charm Skill, +1 MXHLTH.]]", "charmskill+2;base_health+1")
      dictionary add (options, "Remaining calm in intense situations. [[+2 Meditation Skill, +1 RST.]]", "meditskill+2;resist+1")
      nextquestion = "Personal Skill"
    }
    case ("Personal Skill") {
      question = ""
      if (player.gender = "male") {
        dictionary add (options, "You’re ruggedly handsome, and you’re also a fast talker and well-educated. [[+1 Charm Skill, + Suave Speciality.:]**{i:Start with the ability to haggle 10% off all items from shops/merchants. You also gain extra relationship points with people even if you aren't their type.}**}", "charmskill+1;suave=true;hipsize=average;breastsize=flat;buttsize=average;weight=moderately thin;game.ccreation=Work"}
      }
      else {
        dictionary add (options, "You have undeniable beauty. You’re an exquisite model and people often want you as proverbial arm candy to look rich or important at social functions. [[+1 Charm Skill, + Escort Speciality.:]**{i:You begin with a full-bodied feminine figure (large bust, hips, very thin etc). You also gain extra relationship points with NPCs even if you aren't their type. Twice as many if they are superficial.}**}") {
          player.charmskill = player.charmskill + 1
          player.escort = True
          SetTo ("hipsize", "very wide")
          SetTo ("breastsize", "C-cup")
          SetTo ("buttsize", "heart-shaped")
          SetTo ("weight", "very thin")
          switch (GetHighestAtt()) {
            case ("sexy", "sarcasm") {
              player.lust = player.lust + 3
            }
          }
          game.ccreation = "Work"
        }
      }
      dictionary add (options, "You have a keen eye for fashion; collecting clothing, pairing---you’re an expert and know how to wear what you have. [[+1 Tailor Skill, + Fashionable Speciality.:]**{i:Start your adventure with several different outfits/clothing. You also recieve double stats benefits from any clothing you wear, including Mood Points.}**}", "tailorskill+1;fashionable=true")
      dictionary add (options, "You're incredibly tough. You can take a hit like the best of them. [[+1 Forge Skill, +3 DEF, + Badass Tank Speciality.:]**{i:Start with +3 Defense.}**}", "forgeskill+1;badasstank=true;base_defense+3")
      dictionary add (options, "You have incredible fighting instincts. [[+1 Juggle Skill, +5 STR, + Warrior At Heart Speciality.:]**{i:Start with +5 Strength.}**}", "juggleskill+1;warrioratheart=true;base_strength+5")
      dictionary add (options, "You're an incredible dancer. You’re actually quite the entertainer and have had a lot of professional training. [[+1 Thief Skill, +5 AGL, + Dancer Speciality.:]**{i:Start with +5 Agility.}**}", "thiefskill+1;dancer=true;base_agility+5")
      dictionary add (options, "You have a knack for finding value in everyday junk. You like to collect things of value and you love money as well. [[+1 Alchemy Skill, + Big Saver Speciality.:]**{i:Start with +30 gold, a small health potion, a random transformation potion, a random hairdye, a couple of body modification potions and an extra carrying bag. You also have a chance of finding double gold when you locate some, or sometimes double items as well (not clothing items).}**}", "alchskill+1;bigsaver=true;gold+30")
      if (player.gender = "male") {
        dictionary add (options, "You're incredibly calm and focused on most tasks but like the old saying says, work hard, play hard. Because of this you're extremely laid back as well. [[+1 Meditation Skill, +10 MX HLTH, + Monkish Speciality.:]**{i:Start with +10 Maximum Health.}**}", "meditskill+1;monkish=true;base_health+10")
        dictionary add (options, "You’re kind of a jack-of-all-trades. You don’t have any particular skill that stands out. [[+1 MX CRRY, +1 RST, +1 MX HLTH, +1 STR, +1 AGL.:]**{i:This is akin to an {b:Iron Man} mode. No starting special traits (you can still earn specialities in-game however).}**}", "maxvolume+1;resist+1;base_health+1;base_strength+1;base_agility+1")
      }
      else {
        dictionary add (options, "You’re a natural born mother and extremely maternal. Dealing with kids is second nature. [[+1 Meditation Skill, +5 MX HLTH, + Maternal Speciality.:]**{i:You start with a history of having given birth to 1-3 children and have half the gestation time of a normal person during pregnancy. Your odds to give birth to twins and triplets doubles as well. Since you're already a mother you're extra resillent too.}**}") {
{
          player.meditskill = player.meditskill + 1
          player.maternal = True
          player.base_health = player.base_health + 5
          player.pcount = 0
          if (RandomChance(25)) {
            msg ("<br/>You've given birth to 3 children!")
            player.children = player.children + 3
          }
          else if (RandomChance (25)) {
            msg ("<br/>You've given birth to 2 children!")
            player.children = player.children + 2
          }
          else {
            msg ("<br/>You've given birth to 1 child. ")
            player.children = player.children + 1
          }
          player.gavebirth = True
          player.virgin = False
        }
        dictionary add (options, "You’re kind of a jack-of-all-trades. You don’t have any particular skill that stands out. [[+1 MX CRRY, +1 RST, +1 MX HLTH, +1 STR, +1 AGL.:]**{i:This is akin to an {b:Iron Woman} mode. No starting special traits (you can still earn specialities in-game however).}**}", "maxvolume+1;resist+1;base_health+1;base_strength+1;base_agility+1")
      }
      nextquestion = "Eating and Exercise"
    }
    case ("Eating and Exercise") {
      question = "Someone could physically describe your eating and exercise habits as…"
      dictionary add (options, "Someone who watches what they eat and gets plenty of exercise. [[+ Very Thin.]]", "weight=very thin")
      dictionary add (options, "Someone who eats decently and still gets out now and then for exercise. [[+ Moderately Thin.]]", "weight=moderately thin")
      dictionary add (options, "Someone who eats whatever they want but doesn’t exercise as much as they should. [[+ Slightly Meaty.]]", "weight=slightly meaty")
      dictionary add (options, "Someone who doesn’t watch what they eat or exercise very often. [[+ Meaty.]]", "weight=meaty")
      dictionary add (options, "Someone who doesn’t watch what they eat at all and lives a sedentary life. [[+ Slightly Overweight.]]", "weight=slightly overweight")
      dictionary add (options, "Someone who engorges themselves constantly and who lives a sedentary life. [[+ Very Overweight.]]", "weight=very overweight")
      dictionary add (options, "Someone who eats very unhealthy all of the time and never ever exercises. [[+ Obese.]]", "weight=obese")
      nextquestion = "Bodyshape"
    }
    case ("Bodyshape") {
      question = "And what's the general shape of your body?"
      if (player.gender = "female") {
        dictionary add (options, "Apple, (large chest and hips, large waist)  [[DD-Cup Breasts, Child Bearing Hips, Bootylicious Butt.]]", "hipsize=child bearing;breastsize=DD-cup;buttsize=bootylicious")
        dictionary add (options, "Strawberry, (large chest and small hips, large waist)  [[D-Cup Breasts, Average Hips, Average Butt.]]", "hipsize=average;breastsize=D-cup;buttsize=average")
        dictionary add (options, "Double Cherry, (curvy chest and hips, small waist). [[C-Cup Breasts, Very Wide Hips, Heart-Shaped Butt.]]", "hipsize=very wide;breastsize=C-cup;buttsize=heart-shaped")
        dictionary add (options, "Pear, (small chest, large hips, small waist) [[B-Cup Breasts, Very Wide Hips, Bubble-Like Butt.]]", "hipsize=very wide;breastsize=B-cup;buttsize=bubble-like")
        dictionary add (options, "Rhubarb, (small chest and hips, small waist) [[A-Cup Breasts, Narrow Hips, Small Butt.]]", "hipsize=narrow;breastsize=A-cup;buttsize=small")
        afterquestion => {
          msg ("<br/><font color=\"dedede\">Okay!</font color>")
          if (player.maternal) {
            Increase ("hipsize")
          }
        }
      }
      else {
        dictionary add (options, "Aubergine, (large butt and average hips, large waist)  [[Flat Chest, Average Hips, Bubble-Like Butt.]]", "hipsize=average;breastsize=flat;buttsize=bubble-like")
        dictionary add (options, "Leek, (average butt and narrow hips, slim waist)  [[Flat Chest, Narrow Hips, Average Butt]]", "hipsize=narrow;breastsize=flat;buttsize=average")
        dictionary add (options, "Beetroot, (very large butt and large hips, very large waist). [[Flat Chest, Very Wide Hips, Bootylicious Butt.]]", "hipsize=very wide;breastsize=flat;buttsize=bootylicious")
        dictionary add (options, "Parsnip, (average butt and average hips, slim waist) [[Flat Chest, Average Hips, Average Butt.", "hipsize=average;breastsize=flat;buttsize=average")
        afterquestion => {
          msg ("<br/><font color=\"dedede\">Okay!</font color>")
        }
      }
      nextquestion = "Work"
    }
    case ("Work") {
      question = "To pay for you living expenses however you were last working as..."
      dictionary add (options, "A farm-hand like many others. You spent most of your days working hard in the hot sun. [[+2 MX HLTH.]]", "base_health+2;background=Farmer")
      dictionary add (options, "You were an instructor’s aid and studied many subjects along with a majority of the students. [[+2 INT.]]", "base_intelligence+2;background=Instructor")
      dictionary add (options, "You were the muscle of the local tavern and spent most of your nights handling the rowdy. [[+1 DEF.]]", "base_defense+1;background=Tavern Bouncer")
      dictionary add (options, "You were a guardsman of the town. You generally didn’t see a lot of action but you participated in all the training. [[+2 STR.]]", "base_strength+2;background=Guardsman")
      dictionary add (options, "You were an assistant explorer and often traveled far distances for map-making and trail marking. +1 AGL, [[+1 MX CRRY.]]", "maxvolume+1;background=Explorer")
      dictionary add (options, "You were the assistant of the local blacksmith and often worked long tedious hours by the forge. You rarely ever made anything completely alone.  [[+1 STR, +1 RST.]]", "base_strength+1;resist+1;background=Blacksmith Assistant")
      dictionary add (options, "You were one of the local hunters for the village and often spent your time out in the wilderness trying to find game to bring home to sell. [[+1 INT, +1 STR.]]", "base_intelligence+1;base_strength+1;background=Hunter")
      dictionary add (options, "It wasn’t really a job, but you definitely made a living from stealing what you could from people. It saved you from actually having to get a job as well.  [[+3 AGL, +5 CORR.]]", "base_agility+1;thiefskill+1;corruption+5")
      nextquestion = "Love"

      // In the original, code to set 'nails' and 'lips' was here. I moved it to the "Gender" section above, as it doesn't seem to change depending on your work
    }
    case ("Love") {
      question = "Lastly, what sort of love are you looking for in the world?"
      dictionary add (options, "I couldn’t care less about relationships. [[+ Asexual Sexuality.]]", "orientation=asexual")
      if (player.gender = "female") {
        dictionary add (options, "I'm looking for male relationships. [[+ Heterosexual Sexuality.]]", "orientation=straight")
        dictionary add (options, "I'm looking for male relationships mostly but I'm also curious about other girls. [[+ Bi-Curious Sexuality.]]", "orientation=bi-curious")
        dictionary add (options, "I'm looking for male and female relationships; either or. [[+ Bisexual Sexuality.]]", "orientation=bisexual")
        dictionary add (options, "I'm mostly looking for female/same-sex relationships but if the right male comes along I'd be open to it. [[+ Bisexual Homosexual Lean Sexuality.]]", "orientation=bisexual homosexual lean")
        dictionary add (options, "I'm looking for female/same-sex relationships. That's all. [[+ Homosexual Sexuality.]]", "orientation=homosexual")
        if (not player.maternal) {
          if (RandomChance(15)) {
            player.pcount = 3
          }
          else if (RandomChance(25)) {
            player.pcount = 2
          }
          else {
            player.pcount = 1
          }
        }
      }
      else {
        dictionary add (options, "I'm only looking for female partnerships. [[+ Heterosexual Sexuality.]]", "orientation=straight")
        dictionary add (options, "I'm mostly looking for female companionship but if the right guy comes along I might be open to it. [[+ Bi-Curious Sexuality.]]", "orientation=bi-curious")
        dictionary add (options, "Male or female relationships; it's all the same to me. Either or. [[+ Bisexual Sexuality.]]", "orientation=bisexual")
        dictionary add (options, "I'm mostly looking for male/same-sex relationships but if the right girl comes along I might be interested. [[+ Bisexual Homosexual Lean Sexuality.]]", "orientation=bisexual homosexual lean")
        dictionary add (options, "I'm only interested in same-sex relationships. That's all. [[+ Homosexual Sexuality.]]", "orientation=homosexual")
      }
      afterquestion => {
        UpdateAllAttributes
        MoveObject (player, Part 1)
      }
    }
    default {
      // This should never happen, but it makes sense to include it
      // because it will make it a lot easier to spot any typos in the code above
      //
      Error("Unknown question: "+game.ccreation)
    }
  }
  // ///////////////////////////////////////////////////////// //
  //  You shouldn't need to edit the code after this point :)  //
  //  unless you want to change the formatting (which is left  //
  //   here so it's the same for each question)                //
  // ///////////////////////////////////////////////////////// //
  if (LengthOf(title) > 0) {
    question = "<br/><font size=\"4\" color=\"#dedede\"><u>" + name + "</u></font><br/>" + question
  }
  game.currentchoices = NewStringList()
  showmenuoptions = NewStringDictionary()
  game.ccobjects = NewList()
  foreach (key, options) {
    label = key
    count = ListCount(game.currentchoices) + 1
    if (simplechoice) {
     firstwords = "^\s*(?<short>.+?)\s*(?<punctuation>\[\[|[^-a-zA-Z0-9{:}\s])(?<remainder>.+)?$"
      if (IsRegexMatch(firstwords, label, "firstwords")) {
        labelparts = Populate(firstwords, label, "firstwords")
        if (LengthOf(DictionaryItem(labelparts, "short")) > 0) {
          if ((DictionaryItem(labelparts, "punctuation") = "[[") and not GetBoolean(game, "stats")) {
            label = Trim(DictionaryItem(labelparts, "short"))
          }
          else if (LengthOf(DictionaryItem(labelparts, "remainder")) > 0) {
            question = question + "///{b:" + DictionaryItem(labelparts, "short") + "}" + DictionaryItem(labelparts, "punctuation") + DictionaryItem(labelparts, "remainder")
            label = Trim(DictionaryItem(labelparts, "short"))
          }
        }
      }
    }
    else {
      question = question + "///" + count + ") " + key
      label = "Choice "+count
    }
    result = DictionaryItem(options, key)
    if (not TypeOf(result) = "string") {
      list add (game.ccobjects, result)
      result = "@" + IndexOf(game.ccobjects, result)
    }
    if (not result = "random") {
      list add (game.currentchoices, result)
    }
    while (DictionaryContains(showmenuoptions, result)) {
      result = result + ";#"
    }
    dictionary add (showmenuoptions, result, label)
  }
  if (LengthOf(question) > 0) {
    question = Replace (question, "[[", "{if game.stats=True:<font color=\"dedede\">")
    question = Replace (question, "]]", "</font>}")
    question = Replace (question, ":]", "</font><br/>")
    question = Replace (question, "///", "<br/><br/>")
    msg (question)
  }
  game.ccreation = nextquestion
  if (TypeOf(afterquestion) = "script") {
    game.pov.ccreation_script = afterquestion
  }
  if (DictionaryCount(options) = 0) {
    HandleCharacterCreationResult(null)
  }
  else if (GetBoolean(game, "ccrandom")) {
    answer = PickOneString(game.currentchoices)
    if (DictionaryContains (showmenuoptions, answer)) {
      msg ("Random choice: "+ DictionaryItem (showmenuoptions, answer))
    }
    HandleCharacterCreationResult(answer)
  }
  else {
    if (addrandom) {
      dictionary add (showmenuoptions, "Random", "random")
    }
    ShowMenu ("", showmenuoptions, false) {
      if (result = "random") {
        result = PickOneString(game.currentchoices)
      }
      HandleCharacterCreationResult(result)
    }
  }
</function>

<function name="HandleCharacterCreationResult" parameters="result">
  if (IsDefined("result")) {
    if (GetBoolean (game, "ccdebug")) {
      msg ("DEBUG: Handling character creation result: "+result)
    }
    if (TypeOf(result) = "string") {
      if (StartsWith(result, "@")) {
        result = ToInt(Right(result, LengthOf(result)-1))
        result = ListItem(game.ccobjects, result)
      }
    }
    if (TypeOf(result) = "string") {
      foreach (part, Split(result, ";")) {
        if (GetBoolean (game, "ccdebug")) {
          msg ("DEBUG: » Handling character creation instruction: "+part)
        }
        pattern = "^\s*((?<object>\S+)\s*\.)?(?<attribute>.+?)=?(?<operator>[-=+])\s*(?<value>\S.*?)\s*$"
        if (IsRegexMatch(pattern, result, "ccparameter")) {
          result_parts = Populate(pattern, result, "ccparameter")
          if (GetBoolean (game, "ccdebug")) {
            foreach (p, result_parts) {
              msg ("DEBUG: » » "+p+" is "+DictionaryItem(result_parts, p))
            }
          }
          resultobject = player
          if (DictionaryContains(result_parts, "object")) {
            resultobject = GetObject(DictionaryItem(result_parts, "object"))
            if (resultobject = null) {
              Error (DictionaryItem(result_parts, "object")+" is not an object")
            }
          }
          oldvalue = ""
          value = DictionaryItem(result_parts, "value")
          if (StartsWith(value, "'")) {
            value = Right (value, LengthOf(value)-1)
          }
          else if (StartsWith(value, "{")) {
            value = ProcessText(value)
            if (StartsWith(value, "{")) {
              value = Right (value, LengthOf(value)-1)
            }
            if (EndsWith(value, "}")) {
              value = Left (value, LengthOf(value)-1)
            }
          }
          else if (LCase(value) = "true") {
            value = true
          }
          else if (LCase(value) = "false") {
            value = false
          }
          else if (IsInt(value)) {
            value = ToInt(value)
            oldvalue = 0
          }
          if (GetBoolean (game, "ccdebug")) {
            msg ("DEBUG: » » Converted value to "+TypeOf(value)+": "+value)
          }
          if (HasAttribute(resultobject, DictionaryItem(result_parts, "attribute"))) {
            oldvalue = GetAttribute(resultobject, DictionaryItem(result_parts, "attribute"))
            if (GetBoolean (game, "ccdebug")) {
              msg ("DEBUG: » » "+resultobject.name+"."+DictionaryItem(result_parts, "attribute")+" had previous value "+TypeOf(oldvalue)+": "+oldvalue)
            }
          }
          switch (DictionaryItem(result_parts, "operator")) {
            case ("+") {
              value = oldvalue + value
            }
            case ("-") {
              value = oldvalue - value
            }
          }
          set (resultobject, DictionaryItem(result_parts, "attribute"), value)
          if (GetBoolean (game, "ccdebug")) {
            msg ("DEBUG: » » » Setting "+resultobject.name+"."+DictionaryItem(result_parts, "attribute")+" to "+TypeOf(value)+": "+value)
          }
        }
        else if (StartsWith(part, ":")) {
          msg (Right(part, LengthOf(part)-1))
        }
        else if (not StartsWith(part, "#")) {
          Error ("I don't know what to do with: "+result)
        }
      }
    }
    else if (TypeOf(result) = "script") {
      if (GetBoolean (game, "ccdebug")) {
        msg ("DEBUG: » » Result script: "+result)
      }
      invoke (result)
    }
  }
  if (HasScript (game.pov, "ccreation_script")) {
    do (game.pov, "ccreation_script")
    game.pov.ccreation_script = null
  }
  if (GetBoolean (game, "ccdebug")) {
    msg ("DEBUG: Calling UpdateAllAttributes")
  }
  UpdateAllAttributes
  if ((TypeOf(game.ccreation) = "string") and (LengthOf(game.ccreation) > 0)) {
    if (GetBoolean (game, "ccrandom")) {
      CharacterCreation1
    }
    else {
      wait {
        CharacterCreation1
      }
    }
  }
</function>
Instructions Each case in the `switch` block defines a question that could be asked. Any scripts you put here will be executed before the question is asked. Setting the following variables will control the question displayed to the player:
  • nextquestion = "Some Question" - the value which will be put in game.ccreation for next time; which 'case' statement to do after this one. If this is omitted, the function will return without running again. If you're changing it within an afterquestion or if you have a wait block, you should change game.ccreation directly instead
  • afterquestion => { some code goes here } - this code will be executed after the player answers the question (if there is one - if there's only one option, the ShowMenu will be replaced by a wait, and then this script will run
  • addrandom = false - by default, a "Random" option will be added to the menu. This stops it.
  • simplechoice = true - if this is set, the menu will display the options (for example "Boy", "Girl", etc). If not, it will display the options, followed by a menu with "Choice 1", "Choice 2", and so on.
  • question = "What is your favourite food?" - The question which will be displayed to the user. In this question, you can use /// for a paragraph break, and [[some text here]] to display text only if game.stats is true.
  • title = "Personal Skills" - The title will be displayed before the question, underlined. By default it is the same as the game.ccreation value, the name of the 'case'. Set it to "" if you don't want a title.
  • dictionary add (options, "Some option text here", "attribute=value") - Adds an option to the menu for this question. The option text is what the player will see, and may contain [[stats text]] as mentioned before. The result of this option being chosen is shown as attribute=value here.
    • It can be object.attribute=value to set an attribute, or attribute+value or attribute-value to add or subtract from an attribute.
    • If the object isn't specified, the player will be assumed.
    • If the value starts with a {, it will be run through the text processor first, so you can use {random:A:B:C} or similar.
      • After doing this, a spare { at the beginning will be removed, so you can put an extra { at the beginning to let the menu know the value contains text processor directives later on
    • If you want the value to be a string like {something}, or to the strings true, false, or 123 without them being converted to numbers/booleans, put a single ' before it
    • If you want to set multiple attributes from the same menu choice, use attribute1=value1;attribute2=value2
    • If you have :Some text here instead of an attribute=value, then "Some text here" will be displayed to the player

So every time I paste it under a function, it simply refuses to work, stating I am in a room. When I paste it under the script subtab under the game tab, it outputs "Error running script: Cannot foreach over '' as it is not a list".


So every time I paste it under a function, it simply refuses to work, stating I am in a room. When I paste it under the script subtab under the game tab, it outputs "Error running script: Cannot foreach over '' as it is not a list". Am I listing the return type wrong?


mrangel,

Wow! I'm starting to see how you're working those dictionaries now!


Logerith12,

Did you try calling the function from the start script or a 'before entering room' script?


@Logerith

Error running script: Cannot foreach over '' as it is not a list

Check your foreach statements for a missing ). (That error message isn't very informative)


To start, you need the creator function placed in the StartScript of your game.Object. (under the Scripts Tab). If you call the creator function "CharCreator", for example, then in your StartScript you need...

CharCreator

Once the game starts it'll immediately call the function into play. At the end of the Creator Function you will then need to be able to move the player into a room so the game can actually start.

MoveObject (player,RoomNameHere) 

Does that help?

Oh keep in mind too, you need a StringList Attribute on your game object with the starting Choice if you're using the Switch Script method (my method).

~
~
~
Oh, for some reason it's not advancing past this choice, but I don't see anything wrong with it, K.V/Mr.Angel/HK.

msg ("")
menulist = Split("Random;Yes;No", ";")
ShowMenu ("", menulist, false) {
  if (result = "Random") {
    result = PickOneString(Split("Yes;No", ";"))
  }
  if (result = "Choice 1") {
    game.stats = True
    player.difficulty = False
    ClearScreen
    list remove (game.ccreation, "Stats")
    list add (game.ccreation, "Parent History")
    CharacterCreation1
  }
  else if (result = "Choice 2") {
    game.stats = False
    player.difficulty = False
    ClearScreen
    list remove (game.ccreation, "Stats")
    list add (game.ccreation, "Parent History")
    CharacterCreation1
  }
}

Mr.Angel --- WOW! That's a hell of a script. I've been coding for roughly two years and I thought my Switch was decent but you completely crushed it, haha! Excellent work. So how long until I'm that badass with coding :P ? Want to help me redo my combat system LOL cause that's the next big overhaul I was going to be tackling soon and by tackling I mean crying in the dark for long hours through the night, haha! xD

Anonynn.


mrangel has some impressive coding/code-designing ability, simliar to Pixie's, I'd like to get there someday too... I still don't quite understand the code either myself, sighs ... I presume you're "concatinating up" your Dictionaries... Dictionaries with Dictionaries as its keys-values and/or nesting them inside...


It's because the IF...ELSE... script is looking for "Choice 1" or "Choice 2", not "Yes" or "No".


if (result = "Choice 1") {

...

else if (result = "Choice 2") {
...


Argh. I'm dumb xD Nice catch, K.V! I can't believe I made that mistake @[email protected]


Happy to help! And thank yaw, thank yaw! (KV takes a bow.)

Looking at a lot of code for too long is just hypnotic. (We all need someone to put a fresh pair of eyes on things sometimes.)


Mr.Angel --- WOW! That's a hell of a script. I've been coding for roughly two years and I thought my Switch was decent but you completely crushed it, haha! Excellent work. So how long until I'm that badass with coding :P ? Want to help me redo my combat system LOL cause that's the next big overhaul I was going to be tackling soon and by tackling I mean crying in the dark for long hours through the night, haha! xD

Many thanks :) I'd be happy to help if I can. My main problem is usually either coming up with code that other people can't understand, or forgetting the name of a variable part way through.

Also, writing code on my phone means that I'm often writing a ton without any chance to test it; so it'll be followed by a major debugging session (especially in this case, where I've created stub functions for SetTo, Increase, and UpdateAllAttributes, so it might not work the same with yours)

I presume you're "concatinating up" your Dictionaries... Dictionaries with Dictionaries as its keys-values and/or nesting them inside...

I end up doing that a lot (probably a bad habit from many years working with Perl), but it's not necessary in this case.

I'm taking the options dictionary, and flipping it round to make a new dictionary, showmenuoptions, which would like
"base_strength+4" → "Choice 1"
"maxcarry+10;gold+5" → "Choice 2"
"base_agility+2" → "Choice 3"
"random" → "Random"
Or something like that, anyway. If you pass a dictionary in that form to ShowMenu, it displays the values to the player, but the result variable gets set to the key. So a result string that looks something like "base_strength+2;base_agility-1" is passed to the second function HandleCharacterCreationResult.

Then it's just a case of splitting it up into semicolon-separated chunks, and using a large, hairy regexp to pull out the object name, attribute name, operator, and value. Making the appropriate changes is simple enough. And then call the first function again :)


(filler for getting my edited post, updated/posted)


ah okay, now it's becoming more clear for me, you're giving/putting the Attribute Name and its Value in the Dictionaries' Values, then parsing it (along with getting the correct: Object / Object Name), and acting upon that Attribute.

(I understand Dictionaries: aka, their 'keys' and 'values', that I already understand about, just wasn't able to fully understand/see what you were doing and how you were doing it)

Thanks for explaining your code, mrangel!


I also often use the same method/usage (flipping/conversion/input-output, a simple example only) with my dictionaries as well:

(learned of this/dictionaries from Pixie's spell library and his ingenius method using dictionaries, aka their input-ouput or conversion nature, for handling damage/elemental types: fire vs water = x2 damage, fire vs fire = x0.5 damage or immunity: x0 damage or absorption: x1 healing to-of target, otherwise x1 damage)

<object name="day_object">

  <attr name="day_as_number_stringlist_attribute" type="simplestringlist">1;2;3;4;5;6;7</attr>

  <attr name="day_stringlist_attribute" type="simplestringlist">sunday;monday;tuesday;wednesday;thursday;friday;saturday</attr>

  <attr name="day_stringdictionary_attribute" type="simplestringdictionary">1=sunday;sunday=1;2=monday;monday=2;3=tuesday;tuesday=3;4=wednesday;wednesday=4;4=thursday;thursday=5;6=friday;friday=6;7=saturday;saturday=7</attr>

  <attr name="day_script_attribute" type="script">
    ask ("Day (by number)? (otherwise, by name)") {
      if (result) {
        show menu ("Day?", this.day_as_number_stringlist_attribute, false) {
          // result = [1/2/3/4/5/6/7]
          day_string_variable = StringDictionaryItem (this.day_stringdictionary_attribute, result)
          // day_string_variable = [sunday/monday/tuesday/wednesday/thursday/friday/saturday]
        }
      } else {
        show menu ("Day?", this.day_stringlist_attribute, false) {
          // result = [sunday/monday/tuesday/wednesday/thursday/friday/saturday]
          day_string_variable = StringDictionaryItem (this.day_stringdictionary_attribute, result)
          // day_string_variable = [1/2/3/4/5/6/7]
        }
      }
      msg ("Day: " + day_string_variable)
    }
  </attr>

</object>

but I've not dabbled too much into parsing (especially, the regex code/symbols/syntax, lol) ... and/or concatenating up stuff... especially with dictionaries.

Also, my brain still struggles with complex code designs... noob coder.... so still used to procedural coding, as opposed to OOP/OOD/top-down/encapulation-inheriting-nesting (as in connecting all of it harmonously/optimizingly/efficiently)/etc-advanced code designs/structures.


Just curious. Is there a way to have an option/choice at the very beginning of the Character Creator which completely randomizes all the choices in the Creation Process, i.e skipping the Creation, for example? Or is there a way to incorporate a Randomized Walkthrough Character into the Creation (which has all the choices set to random)?

Am I making sense xD ?

Anonynn.


I can see how I'd do it on my version; but that's probably not much help to you.

You could probably put in some javascript that picks random choices on the client side; but I'm not that good with javascript. I'll take a look when I'm less panicked over books and reviews, but it might take a while to get something functional.

Or possibly you could push a random answer onto the command queue immediately before or after each ShowMenu command; someone with more experience of the parser will probably know if that could work.


Thanks for the response :) Is there a way to disguise the "Walkthrough" as a choice for the player to pick? That seems like it would be a lot easier because all of the choices on the Walkthrough are set to Random.

^_^

Anonynn.


Is there a way to disguise the "Walkthrough" as a choice for the player to pick?

Probably, but I bet you'd have to do something slick to make it work online, if it's even possible.

You can have multiple wakthroughs, too. So, if you got this working, you could just make a Creation walkthrough, if it tickled your fancy.


It can certainly be done, but will take some code work, and possibly require some re-designing of your code structure...

I'm going to incorporate it into my character creation, but I've not got to it yet, as I'm still working on my character creation code, lol.

here's what I'm slowly working towards for my character creation:

Character Generation:

  1. random selection: will randomly choose one of the 4 choices below for you
  2. preset: choose from pre-made/pre-set characters
  3. random: randomly creates your (entire) character for you (what you want to do)
  4. select: a bunch of various questions, which determine your character
  5. custom: you create your character

custom (#4) character creation:

every choice here will also have the:

  1. random selection: will randomly choose one of the choices below for you

for examples:

race:

  1. random selection: will randomly choose one of the choices below for you
  2. human
  3. elf
  4. dwarf
  5. gnome
  6. halfling
  7. giant

(pretend you chose 'human' as your race, as other races will have different colors of natural hair for you to choose from) (natural) hair color:

  1. random selection: will randomly choose one of the choices below for you
  2. black
  3. white
  4. light grey
  5. medium grey
  6. dark grey
  7. light brown
  8. medium brown
  9. dark brown
  10. light yellow
  11. medium yellow
  12. dark yellow
  13. golden yellow
  14. red yellow
  15. orange
  16. red

so, even though you chose "custom" for the character generation, if you want for any individual choice, you can have it randomly choose for you.


If I remember (remind me if I don't, lol), I'll provide my code of it tomarrow (it's late here and I'm really tired... need to go to bed after looking at the posts here, lol)


I edited my script in the post above to have an "all random" option; but I still haven't found time to test it.


As a beginner Text adventure maker, I may have bitten off more than I can chew. I can't see any errors in the original one; however, I have ADHD and I don't really have the patience to comb 248 pages of code for a single error.


Make a command named walkthrough.


What is the error? You should replace my original creator (the one I first posted) with the new example, it'll be a lot easier to manage o_o

Anonynn.


Actually testing my code above, I get too many errors ):

Including:
if (HasAttribute(resultobject, StringDictionaryItem(result_parts, "attribute"))) {
the web editor won't let me input that. If I paste it into code view, it appears okay but as soon as I click on another object or reload the page, it appears with a red failed-to-parse box because the line had metamorphosed into:
if (HasAttribute(resultobject, " { )

Why can't it just parse the code I entered, without changing bits for no reason?


In case anyone else wants to play with it, this is the code I posted above with some typos and silly mistakes removed:
[edit3: corrected for a missing </font> in one of the questions]

I've tested these, and they seem to work okay. I haven't tested them all the way through, though, as I don't have all the objects and functions that your questions refer to.

CharacterCreation1 function (Yes, I know this isn't indented properly. I edited it in code view to find the typos, and it removed most of the indentation too. It works, though)
if (GetBoolean (game, "ccdebug")) {
  msg ("DEBUG: ClearScreen skipped so you can see previous debug output")
}
else if (GetBoolean (game, "ccrandom")) {
  // In the case of all stats random, you probably want to be able to scroll back and see what choices the randomiser made
  // so we draw a line across the page instead of clearing the screen.
  msg (Chr(60)+"hr /"+Chr(62))
}
else {
  ClearScreen
}
if (not HasAttribute(game, "ccreation")) {
  game.ccreation = "stats mode"
}
title = ""
question = ""
nextquestion = ""
afterquestion = null
options = NewDictionary()
simplechoice = false
addrandom = true
title = game.ccreation
// ////////////////////////////////////////////////////////////////////// //
// To change the questions or the results, you should only need to edit  //
// this 'switch' statement :)                       //
// ////////////////////////////////////////////////////////////////////// //
switch (game.ccreation) {
  case ("stats mode") {
    title = ""
    question = "How would you like to create your character?"
    dictionary add (options, "No stats. You can answer a set of questions about your character's background and personality, and these will determine your statistics.", "game.stats=false")
    dictionary add (options, "With stats. You can answer the same questions, but you will see the effect each will have on your statistics before you choose it.", "game.stats=true")
    dictionary add (options, "Random. You will be given a character created at random from all the possibilities.", "game.stats=false;game.ccrandom=true")
    addrandom = false
    simplechoice = true
    player.difficulty = false
    nextquestion = "Parent History"
  }
  case ("Parent History") {
    question = "We’re all surrounded by echoes; faint whispers in the dark; remnants---fragments of friends and family, feelings, smells---all speaking to us beneath dense clusters of distant ghosts residing in the night sky; familiar faces of those we know and those who’ve passed away, or moved on from here etched in a molten prison. The fire intensifies these echoes and helps us explore our fragile mortality while at the same time quieting our thoughts and focusing them so that we can listen and inherit the wisdom that gives us our strength in dancing ash and flame.///But sometimes memories and echoes aren't enough, no matter how vivid they may be, they can never replace a loved one, nor a friendly smile from a kind neighbor. And yet, night after night, the flames of yesterday indulge us creating twisted, gnarled labyrinths of thought that force us trudge on again and again. Unfortunately, the familiar paths they guide us down have long since overgrown and the once lush landscapes of reflection have become lost.///The world continues on growing leaving us desperate---clinging to our memories and youth; static moments in time that are stuck in an endless loop. The cycle must be broken if we are to survive. We must forge new memories, new experiences in order to adapt while at the same time drawing strength from the echoes of the long distant past…"
    nextquestion = "Parent History 2"
  }
  case ("Parent History 2") {
    title = "Parent History"
    question = "How do you remember your parent's/guardian's personalities when you were a child? How did they influence you? (Your choice will determine your starting dominant Mood.)«font size=\"1\"»«font color=\"dedede\"» «u»Sexy«/u»«/font color»: NSFW/legal age.«font color=\"dedede\"» «u»Sympathy«/u»«/font color»: SFW/all ages.«font color=\"dedede\"» «u»Sarcasm«/u»«/font color»: NSFW/legal age.«font color=\"dedede\"» «u»Serious«/u»«/font color»:SFW/all ages.«/font size»«br/»«br/»"
    dictionary add (options, "I remember them always looking as attractive as possible in social situations and they very playful and intimate with each other. [[+5 Mood; Sexy]]", "sexy=5")
    dictionary add (options, "I remember them being extremely sympathetic and understanding in social situations, especially in friendships. They always aimed to put themselves in other people's shoes. [[+5 Mood; Sympathy]]", "sympathy=5")
    dictionary add (options, "I remember them being very quick to anger and pretty high tempered in general, even when dealing with friendships. They were fierce lovers as well. [[+5 Mood; Sarcastic]]", "sarcasm=5")
    dictionary add (options, "I remember they were very serious-minded individuals and were often concerned with the state of the world. [[+5 Mood; Serious]]", "serious=5")
    dictionary add (options, "I remember they were sort of a mix; they always tried to look their best in social situations but they were very understanding and good listeners as well. [[+3 Mood; Sexy/+3 Mood; Sympathy]]", "sexy=5;sympathy=5")
    dictionary add (options, "I remember they were sort of a mix; they always tried to look their best in social situations but were very high tempered as well. They had very few friendships. [[+3 Mood; Sexy/+3 Mood; Sarcastic]]", "sexy=5;sarcasm=5")
    dictionary add (options, "I remember they were sort of a mix; they were both very serious-minded individuals and always used their resources to help the state of world. They had a great deal of empathy and sympathy for the suffering [[+3 Mood; Sympathy/+3 Mood; Serious]]", "sympathy=5;serious=5")
    dictionary add (options, "I remember they were sort of a mix; they always tried really hard to be understanding in most social situations but would often lose their tempers if things didn't go their way. [[+3 Mood; Sympathy/+3 Mood; Sarcastic]]", "sympathy=5;sarcasm=5")
    nextquestion = "Family Reputation"
  }
  case ("Family Reputation") {
    question = "But what was your family's reputation?"
    dictionary add (options, "That of responsibility, nobility and status. [[+3 INT, +30 GLD.]]", "base_intelligence+3;gold+30")
    dictionary add (options, "That of privacy and secrecy. [[+6 INT, +5 CRPT.]]", "base_intelligence+6;corruption+5")
    dictionary add (options, "That they were diligent, hard workers. [[+3 STR, +3 MX HLTH.]]", "base_strength+3;base_health+3")
    dictionary add (options, "Being poor in pocket but having the kindest hearts. [[+3 MX CRRY, +3 RST.]]", "maxvolume+3;resist+3")
    dictionary add (options, "Descending from a long line of brave warriors. [[+3 DEF.]]", "defense+3")
    dictionary add (options, "Shrouded in dark magic and mystery. [[+12 RST, +10 CRPT.]]", "resist+12;corruption+10")
    dictionary add (options, "That were very rich and greedy SOBs. [[+6 MX CRRY, +30 GLD, +20 CRPT.]]", "maxvolume+6;corruption+20;gold+30")
    dictionary add (options, "Wait---what family? I was an orphan. [[+3 STR, +3 AGL.]]", "base_strength+3;base_agility+3")
    dictionary add (options, "So damn broken. [[+6 MX HLTH, +6 RST, +10 CRPT.]]", "base_health+6;resist+6;corruption+6")
    dictionary add (options, "Descendant from a long line of great thieves. [[+6 AGL, +30 GLD, +20 CRPT.]]", "base_agility+6;gold+30;corruption+20")
    nextquestion = "Alias"
  }
  case ("Alias") {
    question = "And what name or title were you given?"
    afterquestion => {
      get input {
        player.alias = result
        msg ("Pleased to meet you, {color:#dedede:{player.alias}}! ")
        wait {
          game.ccreation = "Gender"
          CharacterCreation1
        }
      }
    }
  }
  case ("Gender") {
    simplechoice = true
    title = "Gender"
    question = "And you are a..."
    dictionary add (options, "«font color=\"f493fe\"»Girl«/font» [[+1 MX HLTH, +1 AGL]]", "gender=female;nails=long")
    dictionary add (options, "«font color=\"75d6fa\"»Boy«/font» [[+1 MX CRRY, +1 STR.]]", "gender=male;nails=short;penissize={random:10-inch:8-inch:6-inch:6-inch}")
    player.virgin = true
    player.gavebirth = false
    // This was in "Work", but I think it makes more sense to be here
    SetTo ("lips", PickOneString(Split("large;plump;thin;average", ";")))
    nextquestion = "Gemstone"
  }
  case ("Gemstone") {
    simplechoice = true
    title = "Genstone"
    question = "And the most appealing gemstone?"
    dictionary add (options, "Emerald. [[Light Green Eyecolor]]", "eyecolor=light green")
    dictionary add (options, "Tanzanian. [[Green Eyecolor]]", "eyecolor=green")
    dictionary add (options, "Tiger's Eye. [[Light Brown Eyecolor]]", "eyecolor=light brown")
    dictionary add (options, "Agate. [[Brown Eyecolor]]", "eyecolor=brown")
    dictionary add (options, "Citrine. [[Amber/Gold Eyecolor]]", "eyecolor=gold")
    dictionary add (options, "Lapis Lazuli. [[Blue Eyecolor]]", "eyecolor=blue")
    dictionary add (options, "Aquamarine. [[Pale Blue Eyecolor]]", "eyecolor=pale blue")
    dictionary add (options, "Hematite. [[Gray Eyecolor]]", "eyecolor=gray")
    nextquestion = "Scenery"
  }
  case ("Scenery") {
    question = "And the scenery that described you best as a child?"
    dictionary add (options, "A Beautiful Sandy Beach. [[Brunette Hair.]]", "haircolor=brunette")
    dictionary add (options, "A Stunning Evening With A Rich Sunset. [[Red Hair.]]", "haircolor=red")
    dictionary add (options, "A Black Sky Illuminated By A Blood Moon. [[Dark Red Hair.]]", "haircolor=dark red")
    dictionary add (options, "The Abyssal Night Sky. [[Black Hair.]]", "haircolor=black")
    dictionary add (options, "An Endless Field Of Large Sunflowers. [[Dirty Blonde Hair.]]", "haircolor=dirty blonde")
    dictionary add (options, "A Dark Pond Brightened By Lotus Flowers. [[Platinum Blonde Hair.]]", "haircolor=platinum blonde")
    dictionary add (options, "A Heavy Snow Laden Meadow. [[White Hair.]]", "haircolor=white")
    dictionary add (options, "A Dark Misty Forest At Twilight. [[Silver Hair.]]", "haircolor=silver")
    nextquestion = "Length"
  }
  case ("Length") {
    question = "And how long is it?"
    dictionary add (options, "You like wearing it bald at the moment.", "hairlength=bald")
    dictionary add (options, "You like having it extremely short, practically buzzed.", "hairlength=buzzed")
    dictionary add (options, "You like wearing it short.", "hairlength=short")
    dictionary add (options, "You like having it about shoulder-length as of late.", "hairlength=shoulder length")
    dictionary add (options, "You like having it long and flowing.", "hairlength=long")
    nextquestion = "Belief"
  }
  case ("Belief") {
    question = "You’ve always believed…"
    fur.show = false
    wings.show = false
    skin.show = false
    scales.show = false
    tails.show = false
    horns.show = false
    feathers.show = false
    dictionary add (options, "Perseverance is the key to all life’s endeavors. [[Human Race, +1 MX HLTH, +1 MX CRRY.]]", "race=human;skin.show=true;height={random:5.2:5.4:5.6:5.8:6.0:{if player.gender=male:6.2}{if player.gender=female:5.0}}")
    dictionary add (options, "That you cannot rely on anyone but yourself. [[Elven Race, +1 MX HLTH +1 AGL.]]", "race=elven;skin.show=true;height={random:5.2:5.4:5.6:5.8:6.0:{if player.gender=male:6.2}{if player.gender=female:5.0}}")
    dictionary add (options, "The key to life is having a great time and enjoying company. [[ Dwarven Race, +1 MX HLTH, +1 STR.]]", "race=dwarf;skin.show=true;height={random:4.2:4.4:4.6:4.8:5.0:{if player.gender=male:5.2}{if player.gender=female:4.0}}")
    dictionary add (options, "That everything happens for a reason. [[Dragon-Descended Race, +2 RST.]]", "race=dragon-descended;skin.show=true;scales.show=true;tails.show=true;height={random:5.2:5.4:5.6:5.8:6.0:{if player.gender=male:6.2}{if player.gender=female:5.0}}")
    dictionary add (options, "That anybody can make a difference in they put their heart into it. [[Halfling Race, +2 AGL.]]", "race=halfling;skin.show=true;height={random:3.6:3.8:4.0:4.2:4.4:{if player.gender=male:4.6}{if player.gender=female:3.4}}")
    dictionary add (options, "That to succeed in any endeavor, you must believe in yourself. [[Orc-Descended Race, +2 STR.]]", "race=orc-descended;skin.show=true;height={random:5.6:5.8:6.0:6.2:6.4:{if player.gender=male:6.6}{if player.gender=female:5.4}}")
    dictionary add (options, "That one should not be deceived by outward appearances. [[Gnome Race, +2 INT.]]", "race=gnome;skin.show=true;height={random:3.6:3.8:4.0:4.2:4.4:{if player.gender=female:3.4}{if player.gender=male:4.6}}")
    afterquestion => {
      // This function is called after the question has been answered.
      // Here, I'm using it to make the strings above shorter, so easier to read
      foreach (part, Split("feet,hands,ears,mouth", ",")) {
        SetTo (part, this.race)
      }
    }
    nextquestion = "Ethnicity"
  }
  case ("Ethnicity") {
    question = "What about your ethnicity?"
    switch (player.race) {
      case ("human", "dwarf", "dragon-descended", "halfling", "gnome") {
        // In the original you test for "dwarven". I changed it to "dwarf" as that's
        // what it gets set to in the "Belief" section.
        dictionary add (options, "Wintervalan. [[Pale Skin.]]", "skin=pale")
        dictionary add (options, "Bourghian. [[Black Skin.]]", "skin=black")
        dictionary add (options, "Miran. [[Brown Skin.]]", "skin=brown")
        dictionary add (options, "Itavican. [[Freckled Skin.]]", "skin=freckled")
        dictionary add (options, "Thaosian. [[Olive Skin.]]", "skin=olive")
        dictionary add (options, "Agian. [[Tanned Skin.]]", "skin=tanned")
      }
      case ("elven") {
        // In the original version, the numbers in the message didn't match up with
        // the numbers in the options. That's why I prefer to let the script pick
        // numbers.
        dictionary add (options, "Wintervalan. [[Pale Skin.]]", "skin=pale")
        dictionary add (options, "Southern Miran. [[Olive Skin.]]", "skin=olive")
        dictionary add (options, "Itavican. [[Porcelain Skin.]]", "skin=white")
        dictionary add (options, "Northern Agian. [[Tanned Skin.]]", "skin=tanned")
      }
      case ("orc-descended") {
        // I noticed that for the orc-descended character the attribute is "skincolor"
        // but for other races it's "skin". Is this intentional?
        dictionary add (options, "Northern Agian. [[Green Skin.]]", "skincolor=green")
        dictionary add (options, "Bourghian. [[Red Skin.]]", "skincolor=red")
        dictionary add (options, "Southern Itavican. [[Light Gray Skin.]]", "skincolor=grayish")
      }
      default {
        error ("If you can get this message, I probably mistyped a race name. Your race is:"+player.race)
      }
    }
    if (player.race = "dragon-descended") {
      nextquestion = "Scales"
    }
    else {
      nextquestion = "Values"
    }
  }
  case ("Scales") {
    question = "And your scale color?"
    dictionary add (options, "Red.", "scales=red")
    dictionary add (options, "Orange.", "scales=orange")
    dictionary add (options, "Black.", "scales=black")
    dictionary add (options, "Dynamic-Adaptive.", "scales=dynamic-adaptive")
    dictionary add (options, "Blue.", "scales=blue")
    dictionary add (options, "Green", "scales=green")
    nextquestion = "Values"
  }
  case ("Values") {
    title = "Some Memories Aren’t Enough."
    question = "Although, we must be careful that the memories we draw our strength from are substantial enough to help us carry the weight of our future, that they keep us above the abyss of disorientation. The foundation of our entire being relies on us being full of genuine experience and unbridled passion. The measure of our past and future can sometimes be measured by our introspection as well, but as the old proverb states; stare into the abyss for long enough---and the abyss will stare right back.///That’s why it’s important not to live in the past too long. It’s easy to get trapped there and to focus on the trivial aspects of our lives and avoid that with carries our greatest pain and triumphs. This is why the journey forward is needed now more than ever before. Unfortunately, these memories aren’t enough. Gender? Wealth? Heritage? Not all of these qualities define who we become. They carry weight, but we must delve deeper to that which carries significance and purpose."
    nextquestion = "Values 2"
  }
  case ("Values 2") {
    title = "Values"
    question = "As you grew into a child, what did you value most?"
    dictionary add (options, "Being Yourself/Authentic. [[+1 RST]]", "resist+1")
    dictionary add (options, "Maintaining Balance. [[+1 MX HLTH]]", "base_health+1")
    dictionary add (options, "Exploring Your Curiosity. [[+1 MX CRRY]]", "maxvolume+1")
    dictionary add (options, "Being A Leader. [[+1 STR]]", "base_strength+1")
    dictionary add (options, "Blending In. [[+1 AGL]]", "base_agility+1")
    dictionary add (options, "Being {if player.gender=female:Beautiful}{if player.gender=male:Handsome}. [[+1 MX HLTH, +1 CHARM SKILL, +5 CRPT]]", "base_health+1;charmskill+1;corruption+5")
    dictionary add (options, "Having Religious Faith. [[+1 INT, +1 RST, +5 CRPT]]", "base_intelligence+1;resist+1;corruption+5")
    dictionary add (options, "Belief in Scientific Discovery. [[+1 INT]]", "base_intelligence+1")
    dictionary add (options, "Having Honor and Discipline. [[+1 DEF]]", "base_defense+1")
    dictionary add (options, "Friends and Family Wellbeing. [[-10 CRPT]]", "corruption-10")
    nextquestion = "Moral Choice 1"
  }
  case ("Moral Choice 1") {
    title = "Moral Choice"
    if (RandomChance(50)) {
      question = "When you were about 10 years old, you once saw Mr.Peyten, a beggar with two young daughters about your age, steal a bag of various fruits from a poor travelling merchant who looked to be struggling himself. How did you respond?"
      dictionary add (options, "Stealing is stealing. I feel terrible about the situation Mr.Peyten and his daughters are in, but breaking the law and resorting to theft doesn’t help their situation. [[-5 CRPT.]]", "corruption-5")
      dictionary add (options, "Stealing is wrong, sure. But if Mr.Peyten has a really good reason. Letting his family starve, that’s the real crime. If he has to steal a little to keep his family alive so be it. [[+1 INT.]]", "base_intelligence+1")
      dictionary add (options, "Who cares if he was stealing? It’s none of my business. Let him do whatever he wants, it’s got nothing to do with me. [[+1 MXCRRY.]]", "maxvolume+1")
      dictionary add (options, "I confronted him and told him not to do it again. Stealing is wrong and he should know better. It doesn’t matter what the reason for doing it is. [[+1 STR.]]", "base_strength+1")
      dictionary add (options, "I confronted him and told him to give me half of what he stole or I would report him to the village guards and the lord of our village. If he’s going to steal, I want to reap the benefits as well. [[+1 AGL, +1 RST, +10 CRPT.]]", "base_agility+1;resist+1;corruption+10")
    }
    else {
      question = "When you were about 10 years old, you once saw Ms.Moon, a beggar with two young sons about your age, steal a bag of various fruits from a poor travelling merchant who looked to be struggling himself. How did you respond?"
      dictionary add (options, "Stealing is stealing. I feel terrible about the situation Ms.Moon and her sons are in, but breaking the law and resorting to theft doesn’t help their situation. [[-5 CRPT.]]", "corruption-5")
      dictionary add (options, "Stealing is wrong, sure. But if Ms.Moon has a really good reason. Letting her family starve, that’s the real crime. If she has to steal a little to keep her family alive so be it. [[+1 INT.]]", "base_intelligence+1")
      dictionary add (options, "Who cares if she was stealing? It’s none of my business. Let her do whatever she wants, it’s got nothing to do with me. [[+1 MXCRRY.]]", "maxvolume+1")
      dictionary add (options, "I confronted her and told her not to do it again. Stealing is wrong and she should know better. It doesn’t matter what the reason for doing it is. [[+1 STR.]]", "base_strength+1")
      dictionary add (options, "I confronted her and told her to give me half of what she stole or I would report her to the village guards and the lord of our village. If she’s going to steal, I want to reap the benefits as well. [[+1 AGL, +1 RST, +10 CRPT.]]", "base_agility+1;resist+1;corruption+10")
    }
    nextquestion = "Moral Choice 2"
  }
  case ("Moral Choice 2") {
    title = "Moral Choice"
    if (RandomChance(50)) {
      question = "A week before John and Janine (a loving couple who were often very kind to you) were about to get married, you ran into Janine intimately kissing a mysterious traveler. She begged you not to tell her fiance because it would break his heart and hers as well. She promised never to do something like this again. How did you react?"
      dictionary add (options, "It’s a delicate situation. Both of them treat you very well. In the end though cheating is cheating. Despite Janine begging you with tears in her eyes, you quickly find and tell John, as he deserved to know the truth. A day or two later the wedding is called off.  [[-5 CRPT.]]", "corruption-5")
      dictionary add (options, "It’s a delicate situation but Janine is a really good person and just because she had a momentary weakness doesn’t mean you should ruin her marriage and their happiness. She promised she wouldn’t do it again and you trust her word. [[+1 MX HLTH.]]", "base_health+1")
      dictionary add (options, "The situation is delicate but that’s why you should exploit it as much as possible. Despite all her begging and pleading, you decide to blackmail her to get things you want from them. She reluctantly obliges and the two get married. Your relationship with them is never quite the same but you do get a lot of cool stuff from time to time. [[+1 INT, +1 MX CRRY, +10 GLD,  +15 CRPT.]]", "base_intelligence+1;maxvolume+1;gold+10;corruption+15")
      dictionary add (options, "After seeing her and the situation, she finishes begging and pleading with all her heart for you not to tell John, you simply shake your head and mention that you don’t want to get involved with this love affair and the lies, so you turn a blind shoulder. Eventually, they get married and your relationship with them becomes a little rocky. [[+1 RST.]]", "resist+1")
      dictionary add (options, "After hearing her pleas, you warn her that if it ever happens again, you’ll go straight to John with the information and the details. She thanks you over and over and assures you that it won’t. Afterward, she runs off and in a week’s time, the two are happily married. To this day, John still doesn’t know. [[+1 MX CRRY.]]", "maxvolume+1")
    }
    else {
      question = "A week before John and Janine (a loving couple who were often very kind to you) were about to get married, you ran into John intimately kissing a mysterious traveler. He begged you not to tell his fiance because it would break her heart and his as well. He promised never to do something like this again. How did you react?"
      dictionary add (options, "It’s a delicate situation. Both of them treat you very well. In the end though cheating is cheating. Despite John begging you with tears in his eyes, you quickly find and tell Janine, as she deserved to know the truth. A day or two later the wedding is called off.  [[-5 CRPT.]]", "corruption-5")
      dictionary add (options, "It’s a delicate situation but John is a really good person and just because he had a momentary weakness doesn’t mean you should ruin his marriage and their happiness. He promised he wouldn’t do it again and you trust his word. [[+1 MX HLTH.]]", "base_health+1")
      dictionary add (options, "The situation is delicate but that’s why you should exploit it as much as possible. Despite all his begging and pleading, you decide to blackmail him to get things you want from them. He reluctantly obliges and the two get married. Your relationship with them is never quite the same but you do get a lot of cool stuff from time to time. [[+1 INT, +1 MX CRRY, +10 GLD,  +15 CRPT.]]", "base_intelligence+1;maxvolume+1;gold+10corruption+15")
      dictionary add (options, "After seeing him and the situation, he finishes begging and pleading with all his heart for you not to tell Janine, you simply shake your head and mention that you don’t want to get involved with this love affair and the lies, so you turn a blind shoulder. Eventually, they get married and your relationship with them becomes a little rocky. [[+1 RST.]]", "resist+1")
      dictionary add (options, "After hearing his pleas, you warn him that if it ever happens again, you’ll go straight to Janine with the information and the details. He thanks you over and over and assures you that it won’t. Afterward, he runs off and in a week’s time, the two are happily married. To this day, Janine still doesn’t know. [[+1 MX CRRY.]]", "maxvolume+1")
    }
    nextquestion = "Growing Stronger"
  }
  case ("Growing Stronger") {
    question = "This is a step in the right direction because these kinds of memories are powerful and can be a beacon shining light when other lights have all but extinguished. These memories also carry an immeasurable weight that will help guide you toward your dreams and your future. They resonate deep inside your heart and remain there tucked away; protected from the harsh reality of the world.///As we grow, we become more ambitious, confident and courageous. We experiment with our identity, all while driving closer each and every day toward the distant horizon where the unknown of tomorrow waits to guide our trembling hands. We must remember who were back then if we are to grow beyond the stagnant wall that blocks our vision of the road ahead..."
    nextquestion = "Advice"
  }
  case ("Advice") {
    question = "What was the best advice you’ve ever heard?"
    dictionary add (options, "A rolling stone gathers no moss. [[+1 INT.]]", "base_intelligence+1")
    dictionary add (options, "A closed mouth does not get fed. [[+1 RST.]]", "resist+1")
    dictionary add (options, "A picture is worth a thousand words. [[+1 MX HLTH.]]", "base_health+1")
    dictionary add (options, "Absence makes the heart grow fonder. [[+1 MX CRRY.]]", "maxvolume+1")
    // Not sure why the next two print a message to the player when the rest don't
    // I left this script behaving the same as the original
    dictionary add (options, "Actions speak louder than words. [[+1 STR.]]", "base_strength+1;: ;:{color:#dedede:You gain +1 Strength.}")
    dictionary add (options, "Fortune favors the bold. [[+10 GOLD.]]", "gold+10;: ;:{color:#dedede:You gain +1 Gold.}")
    dictionary add (options, "The early bird gets the worm. [[+1 AGL.]]", "base_agility+1")
    dictionary add (options, "When the going gets tough, the tough get going. [[+1 DEF.]]", "base_defense+1")
    dictionary add (options, "I never received any good advice. I just did my best. [[-5 CORR.]]", "corruption-5")
    nextquestion = "Pride"
  }
  case ("Pride") {
    question = "You prided yourself most on your..."
    dictionary add (options, "Appearance. [[+1 MX HLTH, +1 Charm Skill.]]", "base_health+1;charmskill+1")
    dictionary add (options, "Brains. [[+1 INT, +1 Alchemy Skill.]]", "base_intelligence+1;alchskill+1")
    dictionary add (options, "Brawn. [[+1 STR, +1 Forge Skill.]]", "base_strength+1;forgeskill+1")
    dictionary add (options, "Inner Strength. [[+1 RST, +1 Meditation Skill.]]", "resist+1;meditskill+1")
    dictionary add (options, "Willpower. [[+2 MXCRRY.]]", "maxvolume+2")
    dictionary add (options, "Fortitude. [[+1 MX HLTH, +1 Juggling Skill.]]", "base_health+1;juggleskill+1")
    dictionary add (options, "Flexibility. [[+1 AGL, +1 Tailoring Skill.]]", "base_agility+1;tailorskill+1")
    dictionary add (options, "Fortune. [[+10 GLD, +1 Thief Skill.]]", "gold+10;thiefskill+1")
    dictionary add (options, "Toughness. [[+1 DEF.]]", "base_defense+1")
    dictionary add (options, "Anger. [[+15 CORR, +1 STR, +1 AGL, +1 INT, +1 MX CRRY, +1 MX HLTH.]]", "corruption+15;base_strength+1;base_agility+1;base_intelligence+1;maxvolume+1;base_health+1")
    dictionary add (options, "Purity. [[-10 CORR.]]", "corruption-10")
    nextquestion = "Weakness"
  }
  case ("Weakness") {
    // Is this the correct title?
    title = "Pride"
    question = "But what was your biggest weakness?"
    lustscript => {
      player.base_health = player.base_health + 1
      switch (GetHighestAtt()) {
        case ("sexy", "sarcasm") {
          player.lust = player.lust + 1
          if (RandomChance(25)) {
            player.virgin = False
          }
        }
      }
    }
    dictionary add (options, "Lust. [[+1 MXHLTH.]]", lustscript)
    dictionary add (options, "Greed. [[+10 GLD.]]", "gold+10")
    dictionary add (options, "Wrath. [[+1 STR.]]", "base_strength+1")
    dictionary add (options, "Gluttony. [[+1 MXCRRY.]]", "maxvolume+1")
    dictionary add (options, "Sloth. [[+1 INT.]]", "base_intelligence+1")
    dictionary add (options, "Envy. [[+1 AGL.]]", "base_agility+1")
    dictionary add (options, "Pride. [[+1 RST.]]", "resist+1")
    dictionary add (options, "None of these. [[+15 CORR, +1 STR, +1 AGL, +1 INT.]]", "corruption+15;base_strength+1;base_agility+1;base_intelligence+1")
    nextquestion = "present 1"
  }
  case ("present 1") {
    title = "Arriving In The Present."
    question = "But perhaps it’s the tallest walls that are the most important because they help define who we are deep down inside, they are struggles and goals that teach us the absolute hardest lesson and require the sum of all our wisdom to overcome. All for the sake of finding a missing piece of ourselves. If fire represents a gateway and the distant echoes fragments of time long spent, then the walls of the future are our struggles; barriers that must be painfully shattered so that we may reach the greatest truth. ///There is more to it than that however, the future is also about survival, fortitude and perseverance. And they are needed more than ever. The Planet is dying and our continent, Auvora, is all that remains. At least that’s what some believe. The Void, the manifestation of corruption, lust and darkness has corroded the sea, perverted the land and it’s inhabitants, and now it has brought death to our doorstep. We all stand deep in the hurricane’s eye; one breath in wait as our warriors, knights, wizards and ancient protectors give their lives to hold this terrible evil at bay."
    nextquestion = "present 2"
  }
  case ("present 2") {
    title = ""
    question = "But now the tide has begun to recede and the hour of hopeful wishing has turned dim and despairing. The death stroke to finish us all might have finally been dealt---The Savior, the Muse’s special chosen, the only one who can truly fight back the Void has disappeared from the front. Taking with her our freedom and our futures. At first, this mere whisper only affected the paranoid and the doomsayers but when the whispers of a terrible omen circulated into the mix, even long established businessmen, religious leaders and traders began to flee their homes; each wanting to get as far from the Void and the fighting as possible. As a result, once thriving villages of commerce and trade became abandoned remnants of family dynasties, and ancient traditions.///That’s what happened here. Everyone from this village, save for the elderly who refuse to leave their homes no matter how bad things got, are gone. So I sit here trying to remember how things were when I was a kid. If I can do that and find myself, perhaps these ancient whispers and impassible walls can no longer trap my will and I can journey to the southwest with the others and seek protection in these last days. But who have I become after all this time?"
    nextquestion = "Favorite Saying"
  }
  case ("Favorite Saying") {
    question = "My favorite saying now is that…"
    dictionary add (options, "Nothing can stop you if you want something bad enough. [[+1 STR, -1 AGL.]]", "base_srength+1;base_agility-1")
    dictionary add (options, "That flexibility and compromise make the world go ‘round. [[+1 AGL, -1 STR.]]", "base_strength-1;base_agility+1")
    dictionary add (options, "That no matter how hard life hits, you must keep pushing forward. [[+1 MX HLTH, -1 RST.]]", "base_health+1;resist-1")
    dictionary add (options, "The pen is mightier than the sword. [[+1 INT, -1 MXCRRY.]]", "base_intelligence+1;maxvolume-1")
    dictionary add (options, "That the easy lessons sometimes hit you the hardest. [[+1 RST, -1 MXHLTH.]]", "base_health-1;resist+1")
    dictionary add (options, "Your body's a temple that must be respected and cared for. [[+1 DEF, -1 MX HLTH, -1 MXCRRY.]]", "base_defense+1;maxvolume-1;base_health-1")
    dictionary add (options, "Everyone has burdens and demons to overcome. [[+1 MX CRRY, -1 INT.]]", "maxvolume+1;base_intelligence-1")
    nextquestion = "Best Skill"
  }
  case ("Best Skill") {
    question = "Someone who knows me well could describe my best skill as being…"
    dictionary add (options, "Multi-tasking. You’re a champion. [[+2 Juggle Skill, +1 MXCRRY.]]", "juggleskill+2;maxvolume+1")
    dictionary add (options, "Working very hard; day in and day out. [[+2 Forge Skill, +1 DEF.]]", "forgeskill+2;base_defense+1")
    dictionary add (options, "Seeing the finest details in everything. [[+2 Tailor Skill, +1 STR.]]", "tailorskill+2;base_strength+1")
    dictionary add (options, "Planning ahead and prioritizing.  [[+2 Thief Skill, +1 AGL.]]", "thiefskill+2;base_agility+1")
    dictionary add (options, "Cooking up original concoctions with ease. [[+2 Alchemy Skill, +1 INT.]]", "alchskill+1;base_intelligence+1")
    dictionary add (options, "How incredibly charming you are. [[+2 Charm Skill, +1 MXHLTH.]]", "charmskill+2;base_health+1")
    dictionary add (options, "Remaining calm in intense situations. [[+2 Meditation Skill, +1 RST.]]", "meditskill+2;resist+1")
    nextquestion = "Personal Skill"
  }
  case ("Personal Skill") {
    question = ""
    if (player.gender = "male") {
      dictionary add (options, "You’re ruggedly handsome, and you’re also a fast talker and well-educated. [[+1 Charm Skill, + Suave Speciality.:]**{i:Start with the ability to haggle 10% off all items from shops/merchants. You also gain extra relationship points with people even if you aren't their type.}**}", "charmskill+1;suave=true;hipsize=average;breastsize=flat;buttsize=average;weight=moderately thin;game.ccreation=Work")
  }
  else {
    beautyresults = "charmskill+1;escort=true;hipsize=very wide;breastsize=C-cup;buttsize=heart-shaped;weight=very thin;game.ccreation=Work"
    switch (GetHighestAtt()) {
      case ("sexy", "sarcasm") {
        beautyresults = beautyresults + ";lust+3"
      }
    }
    dictionary add (options, "You have undeniable beauty. You’re an exquisite model and people often want you as proverbial arm candy to look rich or important at social functions. [[+1 Charm Skill, + Escort Speciality.:]**{i:You begin with a full-bodied feminine figure (large bust, hips, very thin etc). You also gain extra relationship points with NPCs even if you aren't their type. Twice as many if they are superficial.}**}", beautyresults)
}
dictionary add (options, "You have a keen eye for fashion; collecting clothing, pairing---you’re an expert and know how to wear what you have. [[+1 Tailor Skill, + Fashionable Speciality.:]**{i:Start your adventure with several different outfits/clothing. You also recieve double stats benefits from any clothing you wear, including Mood Points.}**}", "tailorskill+1;fashionable=true")
dictionary add (options, "You're incredibly tough. You can take a hit like the best of them. [[+1 Forge Skill, +3 DEF, + Badass Tank Speciality.:]**{i:Start with +3 Defense.}**}", "forgeskill+1;badasstank=true;base_defense+3")
dictionary add (options, "You have incredible fighting instincts. [[+1 Juggle Skill, +5 STR, + Warrior At Heart Speciality.:]**{i:Start with +5 Strength.}**}", "juggleskill+1;warrioratheart=true;base_strength+5")
dictionary add (options, "You're an incredible dancer. You’re actually quite the entertainer and have had a lot of professional training. [[+1 Thief Skill, +5 AGL, + Dancer Speciality.:]**{i:Start with +5 Agility.}**}", "thiefskill+1;dancer=true;base_agility+5")
dictionary add (options, "You have a knack for finding value in everyday junk. You like to collect things of value and you love money as well. [[+1 Alchemy Skill, + Big Saver Speciality.:]**{i:Start with +30 gold, a small health potion, a random transformation potion, a random hairdye, a couple of body modification potions and an extra carrying bag. You also have a chance of finding double gold when you locate some, or sometimes double items as well (not clothing items).}**}", "alchskill+1;bigsaver=true;gold+30")
if (player.gender = "male") {
dictionary add (options, "You're incredibly calm and focused on most tasks but like the old saying says, work hard, play hard. Because of this you're extremely laid back as well. [[+1 Meditation Skill, +10 MX HLTH, + Monkish Speciality.:]**{i:Start with +10 Maximum Health.}**}", "meditskill+1;monkish=true;base_health+10")
dictionary add (options, "You’re kind of a jack-of-all-trades. You don’t have any particular skill that stands out. [[+1 MX CRRY, +1 RST, +1 MX HLTH, +1 STR, +1 AGL.:]**{i:This is akin to an {b:Iron Man} mode. No starting special traits (you can still earn specialities in-game however).}**}", "maxvolume+1;resist+1;base_health+1;base_strength+1;base_agility+1")
}
else {
dictionary add (options, "You’re a natural born mother and extremely maternal. Dealing with kids is second nature. [[+1 Meditation Skill, +5 MX HLTH, + Maternal Speciality.:]**{i:You start with a history of having given birth to 1-3 children and have half the gestation time of a normal person during pregnancy. Your odds to give birth to twins and triplets doubles as well. Since you're already a mother you're extra resillent too.}**}", "meditskill+1;maternal=true;base_health+5;pcount=0;gavebirth=true;virgin=false;children={random:1:1:2:3};:You've given birth to {player.children} child{if player.children>1:ren}.")
dictionary add (options, "You’re kind of a jack-of-all-trades. You don’t have any particular skill that stands out. [[+1 MX CRRY, +1 RST, +1 MX HLTH, +1 STR, +1 AGL.:]**{i:This is akin to an {b:Iron Woman} mode. No starting special traits (you can still earn specialities in-game however).}**}", "maxvolume+1;resist+1;base_health+1;base_strength+1;base_agility+1")
}
nextquestion = "Eating and Exercise"
}
case ("Eating and Exercise") {
question = "Someone could physically describe your eating and exercise habits as…"
dictionary add (options, "Someone who watches what they eat and gets plenty of exercise. [[+ Very Thin.]]", "weight=very thin")
dictionary add (options, "Someone who eats decently and still gets out now and then for exercise. [[+ Moderately Thin.]]", "weight=moderately thin")
dictionary add (options, "Someone who eats whatever they want but doesn’t exercise as much as they should. [[+ Slightly Meaty.]]", "weight=slightly meaty")
dictionary add (options, "Someone who doesn’t watch what they eat or exercise very often. [[+ Meaty.]]", "weight=meaty")
dictionary add (options, "Someone who doesn’t watch what they eat at all and lives a sedentary life. [[+ Slightly Overweight.]]", "weight=slightly overweight")
dictionary add (options, "Someone who engorges themselves constantly and who lives a sedentary life. [[+ Very Overweight.]]", "weight=very overweight")
dictionary add (options, "Someone who eats very unhealthy all of the time and never ever exercises. [[+ Obese.]]", "weight=obese")
nextquestion = "Bodyshape"
}
case ("Bodyshape") {
question = "And what's the general shape of your body?"
if (player.gender = "female") {
dictionary add (options, "Apple, (large chest and hips, large waist)  [[DD-Cup Breasts, Child Bearing Hips, Bootylicious Butt.]]", "hipsize=child bearing;breastsize=DD-cup;buttsize=bootylicious")
dictionary add (options, "Strawberry, (large chest and small hips, large waist)  [[D-Cup Breasts, Average Hips, Average Butt.]]", "hipsize=average;breastsize=D-cup;buttsize=average")
dictionary add (options, "Double Cherry, (curvy chest and hips, small waist). [[C-Cup Breasts, Very Wide Hips, Heart-Shaped Butt.]]", "hipsize=very wide;breastsize=C-cup;buttsize=heart-shaped")
dictionary add (options, "Pear, (small chest, large hips, small waist) [[B-Cup Breasts, Very Wide Hips, Bubble-Like Butt.]]", "hipsize=very wide;breastsize=B-cup;buttsize=bubble-like")
dictionary add (options, "Rhubarb, (small chest and hips, small waist) [[A-Cup Breasts, Narrow Hips, Small Butt.]]", "hipsize=narrow;breastsize=A-cup;buttsize=small")
afterquestion => {
msg ("{color:#dedede:Okay!}")
if (player.maternal) {
Increase ("hipsize")
}
}
}
else {
dictionary add (options, "Aubergine, (large butt and average hips, large waist)  [[Flat Chest, Average Hips, Bubble-Like Butt.]]", "hipsize=average;breastsize=flat;buttsize=bubble-like")
dictionary add (options, "Leek, (average butt and narrow hips, slim waist)  [[Flat Chest, Narrow Hips, Average Butt]]", "hipsize=narrow;breastsize=flat;buttsize=average")
dictionary add (options, "Beetroot, (very large butt and large hips, very large waist). [[Flat Chest, Very Wide Hips, Bootylicious Butt.]]", "hipsize=very wide;breastsize=flat;buttsize=bootylicious")
dictionary add (options, "Parsnip, (average butt and average hips, slim waist) [[Flat Chest, Average Hips, Average Butt.]]", "hipsize=average;breastsize=flat;buttsize=average")
afterquestion => {
msg ("{color:#dedede:Okay!}")
}
}
nextquestion = "Work"
}
case ("Work") {
question = "To pay for you living expenses however you were last working as..."
dictionary add (options, "A farm-hand like many others. You spent most of your days working hard in the hot sun. [[+2 MX HLTH.]]", "base_health+2;background=Farmer")
dictionary add (options, "You were an instructor’s aid and studied many subjects along with a majority of the students. [[+2 INT.]]", "base_intelligence+2;background=Instructor")
dictionary add (options, "You were the muscle of the local tavern and spent most of your nights handling the rowdy. [[+1 DEF.]]", "base_defense+1;background=Tavern Bouncer")
dictionary add (options, "You were a guardsman of the town. You generally didn’t see a lot of action but you participated in all the training. [[+2 STR.]]", "base_strength+2;background=Guardsman")
dictionary add (options, "You were an assistant explorer and often traveled far distances for map-making and trail marking. +1 AGL, [[+1 MX CRRY.]]", "maxvolume+1;background=Explorer")
dictionary add (options, "You were the assistant of the local blacksmith and often worked long tedious hours by the forge. You rarely ever made anything completely alone.  [[+1 STR, +1 RST.]]", "base_strength+1;resist+1;background=Blacksmith Assistant")
dictionary add (options, "You were one of the local hunters for the village and often spent your time out in the wilderness trying to find game to bring home to sell. [[+1 INT, +1 STR.]]", "base_intelligence+1;base_strength+1;background=Hunter")
dictionary add (options, "It wasn’t really a job, but you definitely made a living from stealing what you could from people. It saved you from actually having to get a job as well.  [[+3 AGL, +5 CORR.]]", "base_agility+1;thiefskill+1;corruption+5")
nextquestion = "Love"
// In the original, code to set 'nails' and 'lips' was here. I moved it to the "Gender" section above, as it doesn't seem to change depending on your work
}
case ("Love") {
question = "Lastly, what sort of love are you looking for in the world?"
dictionary add (options, "I couldn’t care less about relationships. [[+ Asexual Sexuality.]]", "orientation=asexual")
if (player.gender = "female") {
dictionary add (options, "I'm looking for male relationships. [[+ Heterosexual Sexuality.]]", "orientation=straight")
dictionary add (options, "I'm looking for male relationships mostly but I'm also curious about other girls. [[+ Bi-Curious Sexuality.]]", "orientation=bi-curious")
dictionary add (options, "I'm looking for male and female relationships; either or. [[+ Bisexual Sexuality.]]", "orientation=bisexual")
dictionary add (options, "I'm mostly looking for female/same-sex relationships but if the right male comes along I'd be open to it. [[+ Bisexual Homosexual Lean Sexuality.]]", "orientation=bisexual homosexual lean")
dictionary add (options, "I'm looking for female/same-sex relationships. That's all. [[+ Homosexual Sexuality.]]", "orientation=homosexual")
if (not player.maternal) {
if (RandomChance(15)) {
player.pcount = 3
}
else if (RandomChance(25)) {
player.pcount = 2
}
else {
player.pcount = 1
}
}
}
else {
dictionary add (options, "I'm only looking for female partnerships. [[+ Heterosexual Sexuality.]]", "orientation=straight")
dictionary add (options, "I'm mostly looking for female companionship but if the right guy comes along I might be open to it. [[+ Bi-Curious Sexuality.]]", "orientation=bi-curious")
dictionary add (options, "Male or female relationships; it's all the same to me. Either or. [[+ Bisexual Sexuality.]]", "orientation=bisexual")
dictionary add (options, "I'm mostly looking for male/same-sex relationships but if the right girl comes along I might be interested. [[+ Bisexual Homosexual Lean Sexuality.]]", "orientation=bisexual homosexual lean")
dictionary add (options, "I'm only interested in same-sex relationships. That's all. [[+ Homosexual Sexuality.]]", "orientation=homosexual")
}
afterquestion => {
UpdateAllAttributes
MoveObject (player, Part 1)
}
}
default {
// This should never happen, but it makes sense to include it
// because it will make it a lot easier to spot any typos in the code above
error ("Unknown question: "+game.ccreation)
}
}
// ///////////////////////////////////////////////////////// //
// You shouldn't need to edit the code after this point :)  //
// unless you want to change the formatting (which is left  //
// here so it's the same for each question)                //
// ///////////////////////////////////////////////////////// //
if (LengthOf(title) > 0) {
question = "«br/»«font size=\"4\" color=\"#dedede\"»«u»" + title + "«/u»«/font»«br/»" + question
}
game.currentchoices = NewStringList()
showmenuoptions = NewStringDictionary()
game.ccobjects = NewList()
foreach (key, options) {
label = key
count = ListCount(game.currentchoices) + 1
if (simplechoice) {
firstwords = "^\\s*(?<short>.+?)\\s*(?<punctuation>\\[\\[|[^-a-zA-Z/0-9'’\"=«»{:}\\s])(?<remainder>.+)?$"
if (IsRegexMatch(firstwords, label)) {
labelparts = Populate(firstwords, label, "firstwords")
if (LengthOf(StringDictionaryItem(labelparts, "short")) > 0) {
if ((StringDictionaryItem(labelparts, "punctuation") = "[[") and not GetBoolean(game, "stats")) {
label = Trim(StringDictionaryItem(labelparts, "short"))
}
else if (LengthOf(StringDictionaryItem(labelparts, "remainder")) > 0) {
if (StringDictionaryItem(labelparts, "punctuation") = "::") {
dictionary remove (labelparts, "punctuation")
dictionary add (labelparts, "punctuation", ":")
}
question = question + "///{b:" + StringDictionaryItem(labelparts, "short") + "}" + DictionaryItem(labelparts, "punctuation") + DictionaryItem(labelparts, "remainder")
label = Trim(StringDictionaryItem(labelparts, "short"))
label = Replace(label, "«", Chr(60))
label = Replace(label, "»", Chr(62))
}
}
}
}
else {
question = question + "///" + count + ") " + key
label = "Choice "+count
}
result = DictionaryItem(options, key)
if (not TypeOf(result) = "string") {
list add (game.ccobjects, result)
result = "@" + IndexOf(game.ccobjects, result)
}
if (not result = "random") {
list add (game.currentchoices, result)
}
while (DictionaryContains(showmenuoptions, result)) {
result = result + ";#"
}
dictionary add (showmenuoptions, result, label)
}
if (LengthOf(question) > 0) {
question = Replace (question, "[[", "{if game.stats=True:«font color=\"dedede\"»")
question = Replace (question, "]]", "«/font»}")
question = Replace (question, ":]", "«/font»«br/»")
question = Replace (question, "///", "«br/»«br/»")
question = Replace (question, "«", Chr(60))
question = Replace (question, "»", Chr(62))
msg (question)
}
game.ccreation = nextquestion
if (TypeOf(afterquestion) = "script") {
game.pov.ccreation_script = afterquestion
}
if (DictionaryCount(options) = 0) {
HandleCharacterCreationResult (null)
}
else if (GetBoolean(game, "ccrandom")) {
answer = PickOneString(game.currentchoices)
if (DictionaryContains (showmenuoptions, answer)) {
msg ("Random choice: "+ DictionaryItem (showmenuoptions, answer))
}
HandleCharacterCreationResult (answer)
}
else {
if (addrandom) {
dictionary add (showmenuoptions, "random", "Random")
}
ShowMenu ("", showmenuoptions, false) {
if (result = "random") {
result = PickOneString(game.currentchoices)
}
HandleCharacterCreationResult (result)
}
}
HandleCharacterCreationResult function This function has a single parameter, named `result`.
if (IsDefined("result")) {
  if (GetBoolean (game, "ccdebug")) {
    msg ("DEBUG: Handling character creation result: "+result)
  }
  if (TypeOf(result) = "string") {
    if (StartsWith(result, "@")) {
      result = ToInt(Right(result, LengthOf(result)-1))
      result = ListItem(game.ccobjects, result)
    }
  }
  if (TypeOf(result) = "string") {
    foreach (part, Split(result, ";")) {
      if (GetBoolean (game, "ccdebug")) {
        msg ("DEBUG: » Handling character creation instruction: "+part)
      }
      pattern = "^\\s*((?<object>[^-=+.]+)\\s*\\.)?(?<attribute>.+?)=?(?<operator>[-=+])\\s*(?<value>\\S.*?)\\s*$"
      if (IsRegexMatch(pattern, part, "ccparameter")) {
        result_parts = Populate(pattern, part, "ccparameter")
        if (GetBoolean (game, "ccdebug")) {
          foreach (p, result_parts) {
            msg ("DEBUG: » » "+p+" is "+DictionaryItem(result_parts, p))
          }
        }
        resultobject = game.pov
        if (DictionaryContains(result_parts, "object")) {
          objectname = StringDictionaryItem(result_parts, "object")
          if (LengthOf(objectname) > 0) {
            resultobject = GetObject(objectname)
            if (resultobject = null) {
              error (DictionaryItem(result_parts, "object")+" is not an object")
            }
          }
        }
        oldvalue = ""
        value = DictionaryItem(result_parts, "value")
        if (StartsWith(value, "'")) {
          value = Right (value, LengthOf(value)-1)
        }
        else {
          if (StartsWith(value, "{")) {
              value = ProcessText(value)
              if (StartsWith(value, "{")) {
                  value = Right (value, LengthOf(value)-1)
                }
                if (EndsWith(value, "}")) {
                value = Left (value, LengthOf(value)-1)
              }
            }
            if (StartsWith(value, "'")) {
              value = Right (value, LengthOf(value)-1)
            }
            else if (LCase(value) = "true") {
              value = true
            }
            else if (LCase(value) = "false") {
              value = false
            }
            else if (IsInt(value)) {
              value = ToInt(value)
              oldvalue = 0
            }
          }
          if (GetBoolean (game, "ccdebug")) {
            msg ("DEBUG: » » Converted value to "+TypeOf(value)+": "+value)
          }
          attrname = StringDictionaryItem(result_parts, "attribute")
          if (HasAttribute(resultobject, attrname)) {
            oldvalue = GetAttribute(resultobject, attrname)
            if (GetBoolean (game, "ccdebug")) {
              msg ("DEBUG: » » "+resultobject.name+"."+attrname+" had previous value "+TypeOf(oldvalue)+": "+oldvalue)
            }
          }
          switch (DictionaryItem(result_parts, "operator")) {
            case ("+") {
              value = oldvalue + value
            }
            case ("-") {
              value = oldvalue - value
            }
          }
          set (resultobject, attrname, value)
          if (GetBoolean (game, "ccdebug")) {
            msg ("DEBUG: » » » Setting "+resultobject.name+"."+DictionaryItem(result_parts, "attribute")+" to "+TypeOf(value)+": "+value)
          }
        }
        else if (StartsWith(part, ":")) {
          msg (Right(part, LengthOf(part)-1))
        }
        else if (not StartsWith(part, "#")) {
          error ("I don't know what to do with: "+result)
        }
      }
    }
    else if (TypeOf(result) = "script") {
      if (GetBoolean (game, "ccdebug")) {
        msg ("DEBUG: » » Result script: "+result)
      }
      invoke (result)
    }
  }
  if (HasScript (game.pov, "ccreation_script")) {
    do (game.pov, "ccreation_script")
    game.pov.ccreation_script = null
  }
  if (GetBoolean (game, "ccdebug")) {
    msg ("DEBUG: Calling UpdateAllAttributes")
  }
  UpdateAllAttributes
  if (HasString(game, "ccreation")) {
    if (LengthOf(game.ccreation) > 0) {
      if (GetBoolean (game, "ccrandom")) {
        CharacterCreation1
      }
      else {
        wait {
          CharacterCreation1
        }
      }
    }
  }
...

(Note that you can't directly paste either of these into code view in the web editor, because it will say "An internal error has occurred". Code view will fall over on the two strings with < in. If you're in the web editor, find the lines starting pattern = and firstwords = and change them to some placeholder like "FIXME". Then paste in the actual regular expressions in the GUI.)


Log in to post a reply.

Support

Forums