Showing posts with label mod. Show all posts
Showing posts with label mod. Show all posts

Monday, December 8, 2014

Started working on the story: Chapter 0

I started working a little on the story.
I decided there will be a main story (quest) and that it will be divided in chapters.

I'm now writing at an high level the chapter 0 which is a sort of introduction where it tells you how you started being a slave trainer and what's the city you're in feels like.
It's a small chapter where you've just moved to the city and try to buy your first slave.

This made me think that I need a way to keep track of quests. So in the following days I'll probably write down the events for chapter 0 and while doing so I'll add the new EventStep that will be required for managing the quest.

What's an EventStep? (maybe I already explained that?)
Let's start by defining an event. In the game an event is a piece of story.
For example you decide to go and work to the brothel? An event will start explaining you what happened.

An EventStep is the building block of an event.
For example there's an EventStep for displaying text to the player, one for adding money, one for changing expression etc...

And that's it... From now on if I refer to EventStep you will be able to understand what they are.



Tuesday, December 2, 2014

Removed cholesterol from events

Note that this post might be somewhat technical for whoever never seen XML before or an SlaveMaker event.

Today I made a change to the way events are written.

There were two elements that I was not very fond of and I decided to finally eradicate them from the events.

The first element was <Resolveable> element which was needed to "decorate" some elements used to make branch in an event.

For example a piece of an event could be looked like this:

<Resolveable>
    <If Expression="true">
         <SetText>Fuck off!</SetText>
    </If>
</Resolveable>

whereas now look like this:

<If Expression="true">
     <SetText>Fuck off!</SetText>
</If>

The other element I removed (kind of it still have a use in one case) is the <Composite> which is just a collection of element. For example the <If> (again) was able a single element inside itself, so for having more than one was necessary to use the composite like this:

<If Expression="true">
    <Composite>
         <SetText>First node</SetText>
         <SetText>Second node</SetText>
    </Composite>
</If>

Now this is not needed anymore and can be written without the composite.
But I decided to leave it this node in since there's still use for it. There's in fact an element that can handle "single" elements inside itself which is the <Random> element. I said "single" since in reality the element has multiple elements as children but handle them singularly.

<Random>
   <SetText Random.Weight="1">random 1</SetText>
   <NoOp Random.Weight="98"/>
   <Composite Random.Weight="1">
       <SetText>Multiple</SetText>
       <AppendText>node</AppendText>
       <AppendText>here</AppendText>
   </Composite>
</Random>

In this case 98 times out of 100 no operation would be executed.
In 1 case out of 100 the first SetText would be executed.
In the remaining 1 out of 100 the 3 elements in the composite would be executed.

I might decide to remove it later because I'm in an ethical pickle...
But anyway for today I've written to much and probably nobody will read this anyway.

If you've been so mad to read all the way trhough and have question about event and other element that might be used, just drop a comment :)

Saturday, November 29, 2014

Facial expressions

Howdy citizens,

I had procrastinated during the week but today I worked on how facial expressions should work.
I already had facial expression (basic one) ready, but today I implemented the way to change them.
In general whoever will write an event for the game should not worry about expression since they will be calculated on the trainee* stats. E.g. a unhappy trainee will have an unhappy face whether an angry one will have and angry face etc...
But still, someone who write an event would propably need to change the expression based on whathever the event is about. For example, if in the event the trainee is surprised, the writer should be able to put a surprised expression on the trainee face, without having the other stats interfere.

WARNING TECHNICAL (somewhat) TEXT FOR EVENT WRITER:
So, to make it short I made two new element for the xml events:

-LockExpression: this element will be used by the writer to decide put on the trainee face an expression, using this element will prevent the auto-expression service to run, so if you lock the expression to happy and then redure the happiness stats of the trainee to abysmal levels she will look happy anyway until you use the...
-UnlockExpression; this element can be used to unlock the expression. Continuing the example written before if you then unlock the expression, the auto-expression will be enabled again making the trainee look sad.

END OF TECHNICAL TEXT FOR EVENT WRITER

The automatic expression is at the moment very simple, only trainee happiness is considered and only three expression are defined:
-Normal
-Happy
-Unhappy

in the future I'd like to add a more complex automatic expression using more parameters and I'd like to add a finer grained way to lock expressions by making each facial component changeable.

Unhappy


Happy

Wednesday, November 19, 2014

Basic equipment manager

Hello there,

today I improved how dresses are loaded and now the game takes the data used for the dress all from xml files, making them moddable.

This was useful because I created the page used to dress up the trainee.
What the hell is the trainee? The trainee is the name used to refer to the "slave" inside the code and in the events xml.
Anyway I will need to add a section to the mod documentation to describe the procedure to add clothes but atm I'll leave it out since I'm not sure I'll find a lot of people willing to do that.

Here's the page:


Note that when I said I created the page I'm not really referring abount the graphics, that's something that can wait until before release but just that I created the basic logic behind it.

#region For technician only
MS WPF make it really easy to change the graphics later since there's no logic whatsover inside the view. If you never used it you should because is a really good framework.
#endregion

And now that I think of it this is the first time I show you a screen of the whole application.
Note that the right section of the screen is actually a part that is visible from every page of the game and not only the equipment so it doesn't count when I said I created the logic for the equip page :)