devolution

Author Topic: General Discussion  (Read 3821878 times)

0 Members and 17 Guests are viewing this topic.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #1125 on: October 03, 2013, 01:14:47 PM »
I think it's a good idea then. Maybe +5 to abs max per level or something.

Oki. I prolly know a good way to code that in as well :) Even items and traits that were applied before the level up will take take take their effect slowly as levels increase the cap.

I'm looking forward a skill tree, also some items, spells, occupations, jobs, etc. could require some min lvl in order to be available. Level could be quite useful for the balance too, like if you were lucky and got high-temperature plasma destroyer from the first mob, you still need 100+ level to use it  :)

Hmm, decent idea, we already have spell levels, why not tie those to levels... Oki, than we'll leave EXP in and I'll try to find a way to balance it.

Another question, do you think that characters that were defeated in the arena should still get bonuses (like possible stat increases/exp gain).

We should also figure out some absolute max values for different classes at the start of a game, prolly enforced by the code...
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #1126 on: October 03, 2013, 01:37:13 PM »
Another question, do you think that characters that were defeated in the arena should still get bonuses (like possible stat increases/exp gain).
In most games if a character was defeated, s/he won't get anything. At best, s/he will be revived with 1 hp after the battle - I guess this is an option in case of arena.

Actually, I find it difficult remember any game with exp system where you get exp being unconscious or dead. Let's not simplify things too  :)

We should also figure out some absolute max values for different classes at the start of a game, prolly enforced by the code...
How about +1 or 2 to abs max per level for non-core stats? Like attack for a whore or sex for a warrior.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #1127 on: October 03, 2013, 02:01:35 PM »
In most games if a character was defeated, s/he won't get anything. At best, s/he will be revived with 1 hp after the battle - I guess this is an option in case of arena.

Actually, I find it difficult remember any game with exp system where you get exp being unconscious or dead. Let's not simplify things too  :)

Oki, defeated characters will not gain anything. 1 hp for defeated in Arena I've already coded in. If you recall, we've half-coded in a sequence that will automatically kill a character at 0 hp. It's still working (needs a bit of improvement).

How about +1 or 2 to abs max per level for non-core stats? Like attack for a whore or sex for a warrior.

Might be simpler to give some points to player to distribute freely...

----------------------------------------------
Prototype code for leveling up is done, I need to adjust it in mod method and player Player class as well now. Test it afterwards.

Code: [Select]
            elif key == 'exp':
                if self.__dict__['effects']["Slow Learner"]['active']:
                    self.__dict__['exp'] = self.__dict__['exp'] + int((value - self.__dict__['exp'])*0.95)
                elif self.__dict__['effects']["Fast Learner"]['active']:
                    self.__dict__['exp'] = self.__dict__['exp'] + int((value - self.__dict__['exp'])*1.05)
                else:   
                    self.__dict__['exp'] = value
                while self.__dict__['exp'] >= self.__dict__['goal']:
                    self.__dict__['goal_increase'] += 1000
                    self.__dict__['goal'] += self.__dict__['goal_increase']
                    self.__dict__['level'] += 1
                    for stat in Girl.Stats:
                        if self.__dict__["max"][stat] > self.__dict__["lvl_max"][stat]:
                            if self.__dict__['stats'][stat] + self.__dict__['imod'][stat] == self.__dict__["lvl_max"][stat]:
                                amount = self.__dict__["max"][stat] - self.__dict__["lvl_max"][stat]
                                self.__dict__["lvl_max"][stat] += 5
                                self.__dict__['stats'][stat] += min(5, amount)
                            else:
                                self.__dict__["lvl_max"][stat] += 5
                        else:
                            self.__dict__["lvl_max"][stat] += 5
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #1128 on: October 03, 2013, 02:10:45 PM »
Might be simpler to give some points to player to distribute freely...
It could work for slave training or MC himself, but why are you supposed to control free girls during level up?
I guess we could use random distribution for them depending on occupation.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #1129 on: October 03, 2013, 02:16:07 PM »
It could work for slave training or MC himself, but why are you supposed to control free girls during level up?
I guess we could use random distribution for them depending on occupation.

Didn't think of it... yeah, you're right, random distribution would work.

Code above seems to be working really well, maybe I'll change int to math.ceil later. Back to Arena I guess.
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #1130 on: October 03, 2013, 02:55:00 PM »

 I dont think we should do that, this is what schools are for.

Well, with two max limits, schools are not all that useful (since they can only increase absolute maximum and normal stats). We'll improve schools before Beta, I hate that code, it's been long time since I wrote that.
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #1131 on: October 03, 2013, 07:14:16 PM »
Still struggling with level up system... old code had one flow, it rendered all items that lowered absolute max obsolete in that regard. The trouble is that by fixing that, I've rendered all items that increase maximum, useless :)

So I've kinda came to a compromise, now levels increase both level max and absolute max but by different amount (abs = 2, level = 5).

Game will also choose the lowest of two as a maximum for stats so as game progresses, traits, items and training will become more and more relevant. Seems to be ok now...

New code:

Code: [Select]
            elif key == 'exp':
                if self.__dict__['effects']["Slow Learner"]['active']:
                    self.__dict__['exp'] = self.__dict__['exp'] + int((value - self.__dict__['exp'])*0.95)
                elif self.__dict__['effects']["Fast Learner"]['active']:
                    self.__dict__['exp'] = self.__dict__['exp'] + int((value - self.__dict__['exp'])*1.05)
                else:   
                    self.__dict__['exp'] = value
                while self.__dict__['exp'] >= self.__dict__['goal']:
                    self.__dict__['goal_increase'] += 1000
                    self.__dict__['goal'] += self.__dict__['goal_increase']
                    self.__dict__['level'] += 1
                    for stat in Girl.Stats:
                        if self.__dict__['stats'][stat] + self.__dict__['imod'][stat] >= min(self.__dict__["lvl_max"][stat], self.__dict__["max"][stat]):
                            adjust_stats = True
                        else:
                            adjust_stats = False
                        self.__dict__["lvl_max"][stat] += 5
                        self.__dict__["max"][stat] += 2
                        if adjust_stats:                               
                            l = range(1, 6)
                            l.reverse()
                            for i in l:
                                if self.__dict__["stats"][stat] + i <= min(self.__dict__["lvl_max"][stat], self.__dict__["max"][stat]):
                                    self.__dict__["stats"][stat] += i
                                    break
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #1132 on: October 04, 2013, 05:00:48 AM »
About death at arena, I believe those who died should get penalty to fame (or reputation, don't remember which one you can rise at arena  :) ).

So I've kinda came to a compromise, now levels increase both level max and absolute max but by different amount (abs = 2, level = 5).
Sorry, I kinda don't get it. What is level max? Usual (non abs) max for stat?
« Last Edit: October 04, 2013, 05:03:37 AM by DarkTl »

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #1133 on: October 04, 2013, 01:21:20 PM »
About death at arena, I believe those who died should get penalty to fame (or reputation, don't remember which one you can rise at arena  :) ).

There is new stat called arena_rep.

Sorry, I kinda don't get it. What is level max? Usual (non abs) max for stat?

There are two maxes right now. One is called max (Old maximum, this one is being increased by traits and items), other is called lvl.max (level maximum). Each time you gain a level power up, max gets +2 and lvl_max + 5. The one that is the lowest at any point of the game counts as maximum value for every stat.

So, at the beginning of the game, it doesn't matter if your girls have the best items and best traits, lvl_max will prevent stats from going to high, however, as girl's and hero's level advances, items and especially advanced items become more and more relevant! I think this is a very good compromise... I put quite a bit of time to figure this out and make it work, alternative was coding in a whole new tracking system...
« Last Edit: October 04, 2013, 01:24:07 PM by Xela »
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #1134 on: October 04, 2013, 05:36:15 PM »
I see. Yeah, I like the idea.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #1135 on: October 04, 2013, 08:24:05 PM »
I see. Yeah, I like the idea.

Great, experience than...

I see a couple of options:

1) Hard way: Try to balance leveling up system, I found some formulas but those are not very helpful since they are written around monster level, not vs level of other character. If done this way, it may take a good deal of time to get this just right.
I did think about this and I can prolly make it work, but it is not gonna be easy...

2) Switch to a linear system, kinda lame, but will be a lot easier to balance, experience required for every level will simply be 1000 points, much simpler.

3) Leave D&D level up system but adjust experience gains according to level. Just as easy to balance as above but is less lame. One drawback is that girls of different levels will get more experience for doing the same tasks (like cleaning for example). Fighting exp gains will be mitigated by awards being based on difference of levels, similar thing can be done for other jobs vs clients with a bit of effort.

4) Last option I could come up with, is a mix, we use simple exp gaining techniques (almost linear) and make sure that the difference for required experience for next levels is minor...
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #1136 on: October 05, 2013, 04:49:13 AM »
they are written around monster level, not vs level of other character
It doesn't matter if you fight against monster or character, level is level.

On the other hand, in d&d all exp you could get not from killing (like quests) is predetermined and does not depend on level. Since we'll have a lot of ways to get exp (like jobs), I guess we cannot use d&d system only.
For example, in case of cleaning low level girl will need less exp to level up, but she (usualy) has less service/fatigue/whatever, so she will get less exp per shift too.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #1137 on: October 05, 2013, 06:44:10 AM »
It doesn't matter if you fight against monster or character, level is level.

Not entirely true, they have a table of CR (kinda like monster rating), each monster has it's own CR and exp bonus depends on it.
Also there is a conversion table between CR and character level.


On the other hand, in d&d all exp you could get not from killing (like quests) is predetermined and does not depend on level. Since we'll have a lot of ways to get exp (like jobs), I guess we cannot use d&d system only.
For example, in case of cleaning low level girl will need less exp to level up, but she (usualy) has less service/fatigue/whatever, so she will get less exp per shift too.

We need to agree on a system and roll with it. I've proposed four options, maybe someone can think of more possibilities? But we need to pick one.

On the other hand, Rudi has improved his image tagging software quite a bit and it seems basically to be ready for tagging, some adjustments have to be made for PyTFall, I've asked him to take a look at it but we could use it even as it is now.

Anyway, this opens  a whole new field for discussion: Tags
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #1138 on: October 05, 2013, 08:18:37 AM »
Not entirely true, they have a table of CR (kinda like monster rating), each monster has it's own CR and exp bonus depends on it.
Here:
Quote
An NPC with a PC class has a Challenge Rating equal to the NPC’s level. Thus, an 8th-level sorcerer is an 8th-level encounter. As a rule of thumb, doubling the number of foes adds 2 to the CR. Therefore, two 8th-level fighters are an EL 10 encounter. A party of four NPC 8th-level characters is an EL 12 encounter.

We need to agree on a system and roll with it.
I'm not sure how they could work for a cleaning or any other job where you don't even have a customer with some lvl.
I'd prefer 1 or 3 though.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #1139 on: October 05, 2013, 08:26:37 AM »
Here:I'm not sure how they could work for a cleaning or any other job where you don't even have a customer with some lvl.
I'd prefer 1 or 3 though.

I've read that and found better sites with mathematical background for most of that crap, that's why I said first version was possible in previous post, a while back I didn't even want to touch that.

Third option seems to be perfect middle-ground to me, best coding-time/playability ratio.
Like what we're doing?