Thursday, January 28, 2016

Trainee properties

Hello there,

I added a new event step.
A lot of time ago I added the SetGlobal event step, which let you to set a global variable that can be retrieved in the future.
That lead to have a PlayOnce event step which let you play a event only once during the whole game.

Well, now I added a similar event step but with a smalle scope.
The scope is the trainee and the event step is called SetTraineeProperty.
The event step works exactly as the setGlobal but it clearly require a trainee.

Here's an example:

<SetTraineeProperty Type="Bool" Key="trainee_happy">
   [Trainee.Mind.Happiness] > 70
</SetTraineeProperty>

Okay, so to retrieve the value:

<SetText>Is trainee happy?  !$expr{[Trainee.Property.Bool.trainee_happy]}</SetText>

This would led (if the trainee happiness is higher than 70) to the following result displayed on screen:
Is trainee happy? true

Anyway this led to add the PlayOncePerTrainee event step too, which has the same sintax as the PlayOnce event step:

<PlayOncePerTrainee CompletionKey="trainee_present_herself">
   <SetText>!$trainee: Hello, I'm t!$trainee, pleased to meet you.</SetText>
</PlayOncePerTrainee>



Well, that's it for today.


Friday, January 22, 2016

Inside view

Hello there,

BEWARE: Long post ahead.



I'm happy to announce I'm working on a feature I tought I would add from the beginning.
As you probably know the "external view" was the only eye candy you get by playing the game.
Now finally I started working on the "internal view"



The internal view can be used to, uhm, inspect... Yes, that's a nice term...
Anyway to inspect the trainee closer.


So, let's start with the basic


Hmm...


Your probably wondering:
you: What the fuck is that?
(Actually I hope you are not wondering that, since that would mean I have to redraw that in the future)
To that question I respond with a:
me: It's a bottom
you: It doesn't look like a bottom
me: Fuck...
you: ...
you: ...
me: ...
you: and anyway is not much of an eyecandy.
me: Hmm...
me: You're right.
me: hmm
me: what about if I add...
me: Hmm
me: this?



you: ...
you: I don't understand. What's going on?
you: Why the colour changed all of a sudden?
me: Urhm, no need to notice that.
me: I'm still using that feature in test mode.
me: Each time I start the game the slave is generated randomly and the skin colour changes.
me: I had to restart the game to take the first picture because I forgot...
you: Hmpf, that's no excuse
you: And anyway why she has a missile stuck there?
me: It's not a missile, it's a test dildo



me: See? It has the "Test" symbol on it.
you: What the?
me: Yes, the internal view come with a xray view.
you: Hmm, that's interesting.
me: Another interesting thing about the game is that it support multiple penetration.
you: Well, every game do that.
me: I mean in a single hole




you: Uh, nice

Okay stop the conversation
I hope  it sound interesting the whole internal view as a concept.
At the moment is still in very early phase, in the sense that I miss all possible drawing needed.
For starting I'll probably start by drawing three human dicks.
I'd like to add in the future different sized human dicks, monster and animal dicks.

Other interesting thing I'd like to add in the future (far away) is pregnancy (You will see the baby grow in the womb) and cum (which I know I probably can add in the vagina but for the anus I don't know I have kinda a logistic problem for displaying cum there...)


Sunday, January 17, 2016

Finally an If else that make sense

Okay,
this is a continuation to the previous post.

I wasn't happy with the IfElse element.
At start I was trying to decide whether it was better to let ifelse as it was or change it for this:

<If Expression="true">
   <SetText>I will be displayed</SetText>
   <Else>
      <SetText>I won't be played</SetText>
   </Else>
</If>

I'm still not sure this is better than the <IfElse> I described in the previous post.

So, I looked at how Slave Maker does it.
Here's a short excerpt:

<if gender='2'>
   <Question event='CockOutOfHole'>Ask for a cock</Question>
   <else>if</else>
   <Question event='CockOutOfHole'>Ask for a cock</Question>
   <Question event='CockIntoHole'>Stick cock into the hole</Question>
</if>

Well...
This, from my point of view, made even less sense than mine...

So, finally I decided to go with the normal way of doing an if else.
Here's the final version (I think) version:

<If Expression="false">
   <SetText>I wont be displayed</SetText>
</If>
<Else>
   <SetText>I will be displayed</SetText>
</Else>

I had to make a little more work since this was the first time I had to treat two sibling xml nodes as "one step"

Before all elements were evaluated singularly.

Anyway this gave me the opportunity to make an ElseIf too.

<If Expression="false">
   <SetText>I wont be displayed</SetText>
</If>
<ElseIf Expression="true">
   <SetText>I will be displayed</SetText>
</ElseIf>
<Else>
   <SetText>I wont be displayed</SetText>
</Else>

Yay!
I'm pretty happy with this, since it's a lot more natural than the previous solutions.

Friday, January 15, 2016

new event step: IfElese

Warning: Somewhat technical post
During the writing of various event I always found myself writing if but till now I never had a if else.
I simulated the ifelse using the Switch event step like this:

  <Switch Expression="[Trainee.Mind.Purity.Slut]">
    <Case Value="true">
       <SomeEventStep/>
    </Case>
    <Case Value="false">
       <SomeEventStep/>    
    </Case>
  </Switch>

It does work but it feels strange to me using a switch for doing so.
So I finally decided to add a IfElse.
The previous example became:

  <IfElse Expression="[Trainee.Mind.Purity.Slut]">
    <Composite>
       <SomeEventStep/>
    </Composite>
    <Composite>
       <SomeEventStep/>    
    </Composite>
  </Switch>


Unfortunately xml doesn't make it much better then the previous version but at least now you don't have to specify the Value="true".

IfElse must have two child, the use of a <Composite> is only if you have to specify more than one event step.

Using a IfElse kinda feels better than the switch but I'm still evaluating other solution, since this doesn't feel too natural...

Friday, January 8, 2016

Ze bank and game time

As anticipated in the previous post I needed a bank in order to make simplier to buy the home.

The bank is now a new location where you can take a mortgage.

You can get a lot of money that you will have pay in a very long period with monthly payments.
The long period as I write is 20 year.
So, since I doubt someone is going to play for a so long period it's more like an infinite time.

Anyway for this I enanched the AddPeriodicMoneyMovement event step.
Adding an optional duration field.

<AddPeriodicMoneyMovement>
                  <Id>bank_loan</Id>
                  <Reason>Bank loan</Reason>
                  <Amount>-Round(55000 / 200, 0)</Amount>
                  <Period>Month</Period>
                  <Duration>200</Duration>
</AddPeriodicMoneyMovement>

Did you catch the mistake?
The duration is 200 months while 20 years should be 240.
Well, it's not a mistake.
The game time is different from the real world one a year is made of 10 months and a months is made of exactly 4 weeks.

Weeks will remain as is for simplicity reason, but maybe I'll change the month number to 12. I have still to see whether it's an advantage to have 10 month years.

Tuesday, January 5, 2016

Ze house

Hi,

I added a event where you can actually buy a house.
This will give you the advantage of a lower monthly expense, instead of paying the rent you will just have to pay a own taxes which is lower then rent.

The house at the moment does not provide anything else.

But the idea behind it is to use it similarly to otherworld (an old and for what I know defunct hentai game) where you can build new room that will unlock new events.

The house though (as a real one) cost money, a lot of money.
So, I'll have to add the bank, which will gladly lend you money as long as you pay them interests...