Author Topic: General Discussion  (Read 3821225 times)

0 Members and 43 Guests are viewing this topic.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #6285 on: December 02, 2015, 04:47:02 AM »
Get_tag returns available image of position as act, then we show it via self.img = self.worker.show(*act, **kwargs).

I'd like to check what kind of image we actually show here, ie what kind of tags it has besides position tags.
This way we could add additional text based on background for example. I suppose I could modify show function to return image path too if needed, but I dunno how to get tags from image path.

I honestly have no idea but I'll dig around in ProportionalScale's guts a little bit to figure out what's what... We never did it this way before because it is quite similar to describing an image, which is not reasonable in most cases. Previously we always allowed logic to write reports.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #6286 on: December 02, 2015, 05:17:46 AM »
It can be done like you describe for sure. Like, if we have vaginal, we begin to check if we have vaginal + indoors, then vaginal+no bg, then vaginal + beach, etc. Then make another list with existing locations. Then pick one from the list randomly, and based on the picked one add description before giving it to show function.
But it means tons of confusing and excessive code at least for two jobs, whores and rest. Because we don't care where they do it, yet describing the place would be nice.

As I said, we could make show function return not only ProportionalScale(imgpath, maxw, maxh), but also imgpath. The problem is to figure out tags based on image path.
« Last Edit: December 02, 2015, 05:22:05 AM by DarkTl »

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #6287 on: December 02, 2015, 05:55:44 AM »
Get_tag returns available image of position as act, then we show it via self.img = self.worker.show(*act, **kwargs).

Done.

image_tags = self.img.get_image_tags() will now return a list of proper tags :) We plainly get the image name from PropScale and convert it to proper tags.
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #6288 on: December 02, 2015, 07:06:44 AM »
It can be done like you describe for sure. Like, if we have vaginal, we begin to check if we have vaginal + indoors, then vaginal+no bg, then vaginal + beach, etc. Then make another list with existing locations. Then pick one from the list randomly, and based on the picked one add description before giving it to show function.
But it means tons of confusing and excessive code at least for two jobs, whores and rest. Because we don't care where they do it, yet describing the place would be nice.

BTW: That is not what I meant, at least not exactly. My approach would be to put as much logic into the reports as possible such as:

1) Did the client like the workers for traits. (should prolly be passed from Building through flags).
2) Were there any building upgrades that effected the action (Job) and how.
3) Any special events that took place.
4) Special logic like a worker becoming clients favorite.

and etc.

Most of that is not ready yet but all of that may get in the way of proper reports... or conflicts could be created. Basically I favor a logic driven approach even if we get incorrect pictures from time to time. If you base descriptions and/or draw acts from pics, there could be problems:

1) Inconsistency with logic.
2) You fall into a trap of plainly describing what where is on the image, which is not reasonable.

===
In my mind:

1) Clients walks into your building which can have a number of businesses/upgrades.
2) Client has a specific action/act in mind.
3) If there is a room and workers available:
- Client finds a worker he/she likes or pics one at random if none is found.
- We check for events, figure out the cost of the service and tips if applicable.
- Run the Job. Important Note: Job plainly writes a report on what has already happened, that is not true in our case yet because ACT is picked inside of a job, I don't like that but there seems to be no harm in it at the moment.
- Clients and Worker are freed for more actions.
4) If there is no room or workers available:
- Clients may wish to wait.
- Client may visit a different upgrade (Bar/Club).
- Client may plainly leave.
Managers can help here... but that code is far from done.
5) We check if client is done for the day or still wishes to do something else...

===
The system is really powerful due to SimPy, even after a while, I still struggle often with it and get confused but it's getting clearer and clearer with every week of coding :) One of the main problems is that the system is not linear any more, there can be dozens if not hundreds of process be alive simultaneously, we did not have that anywhere in the game before SimPy. A fact that I don't have as much time as before doesn't help either, coding for jobs unlike small bits like I did for PopScale or forum posts require proper time and concentration.

We'll get it done, just by taking one step at a time and coordinating properly. You can work on texts/events for jobs, just keep in mind what I am working on as well.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #6289 on: December 02, 2015, 09:45:35 AM »
Ok, but I still can do pretty much anything with rest job, unless you somehow want to emulate even simple, non interactive resting  :)

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #6290 on: December 02, 2015, 10:20:27 AM »
Sure, you can do a lot all over the place, I just want to be sure that we're on the same page. There is a weird displacement after a Ren'Py update in hero stats screen, maybe it was there for a while after I fixed the frames, gonna clear that tonight.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #6291 on: December 04, 2015, 09:42:56 AM »
I'm not sure if autobuying system is working atm, probably not. But we could include it into rest process to send characters to buy something at free time and report about it.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #6292 on: December 04, 2015, 10:17:20 AM »
I'm not sure if autobuying system is working atm, probably not. But we could include it into rest process to send characters to buy something at free time and report about it.

It does (just click next day 1x or so and check free chars inventories). The problem is that it is not updated to work with the new classes or traits, at least I don't remember doing that.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #6293 on: December 05, 2015, 04:23:50 AM »
Yeah, looks like they buy stuff from time to time. Where is the code for that? I might be able to improve it.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #6294 on: December 05, 2015, 04:31:33 AM »
Yeah, looks like they buy stuff from time to time. Where is the code for that? I might be able to improve it.

Search for auto_buy. Classes need to be entered there as well as jobs. Maybe the code itself needs a review but it's not the simplest method we have in PyTFall :(

Same for auto_equip (or whatever it's called), but that is even more complex.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #6295 on: December 05, 2015, 05:38:52 AM »
I'm more interested in the algorithm rather than the code itself...
Even if it's too complex to code, at very least I can find ways to improve logic, since I know more about items than you  :)

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #6296 on: December 06, 2015, 04:14:19 AM »
I've update FilmStrip, removed prediction from AnimateFromList and extended pause on Cataclysm a little bit. It's one of my favs and it was working sh!tty.

I'll think about how/if it is possible to setup prediction for BE properly... Before there was a very noticeable delay when Ren'Py was loading all 50 or so images to memory right before the attack. That is obviously not an acceptable solution + no prediction at all seems to be working almost flawless in comparison.
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #6297 on: December 06, 2015, 09:11:36 AM »
Finally added testing for new easing equations that have recently been added to Ren'Py. I've been planning to do that for quite a while. Some of them are mildly amusing, although not immediately useful to us. Not all testes are correct as well, some of those are not meant to be used with linear movement (I think).
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #6298 on: December 06, 2015, 01:06:40 PM »
Code: [Select]
            Do we get the most needlessly complicated skills system award? :)
            Maybe we'll simplify this greatly in the future...

 :D

Should be ready (I hope). Skills now have two global vars:

SKILLS_MAX
SKILLS_THRESHOLD

When a total, final, full skill level exceeds threshold, skill becomes harder to gain. Effect should be linear, the closer we get to MAX the harder, it will never be less than 10% of the total value gained. With this we got a decent, fairly easy to explain but needlessly complicated in code system. MAXes are currently all set to 5000, THRESHOLDs at 2000.

Under current system, skills cannot be lost, only gained (just like it was before). Nothing prevents that in code I think but it's the general party line.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #6299 on: December 06, 2015, 02:01:48 PM »
Alright, then we need to decide how fast skills will grow without using powerful items. I believe you mentioned something like 1-2 per day at best, which means 5.5 years for 2000 and 13.5 years for 5000.
Are you sure about it?