devolution

Author Topic: General Discussion  (Read 3821725 times)

0 Members and 22 Guests are viewing this topic.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #5865 on: September 23, 2015, 03:59:40 AM »
Do we even need occupation field in chars jsons now, when occupations are almost traits?

Yes, super bonuses from basetraits will not be applied if they are added as mere traits.

I recut them. Push with equipment screen, when finish it.

It's either that someone needs to make a matrix so I can make it work with the map.
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #5866 on: September 23, 2015, 04:03:33 AM »
I recut them. Push with equipment screen, when finish it.

Dark pushed something like that btw! Lets test that first.

Edit: Seems to be working just fine, the insane focus thing is gone.
« Last Edit: September 23, 2015, 04:09:12 AM by Xela »
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #5867 on: September 23, 2015, 04:31:02 AM »
No, something is wrong with the system.
The only way to meet a Mage is to give her Mage trait directly and check for $ gm.enter_location(goodtraits=["Mage"]). If you give her Mage class trait as occupation, not as a trait, you won't meet her. If you try to check for  $ gm.enter_location(occupations=["Caster"]), you will never meet her too.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #5868 on: September 23, 2015, 04:34:24 AM »
But wait, what if we change it like $ gm.enter_location(goodtraits=["Healer"], occupations=["Caster"])? It still should return all casters, including our unique mage.

It bugged me so I rewrote this... now "Caster"s will (should) not be thrown out just because they are not Healers. I think the final variant should have three or four layers for really good sorting but I am not even sure that a final version should have a strict limit of just the three girls per location... It's a matter for a post next release discussion anyway.

===
Notes:

1) badtraits are still really powerful and work only on preferred list. I am thinking that maybe it is a good idea to make bad-traits absolute and leave the location empty instead of just applying them to preference list?

2) I don't know if any of you remember it but we always check for "Curious" trait to place ALL characters with it on priority list, that can throw the system off a bit as well and was Dark's idea (I think). (aka: any girl with a Curious trait gets the same priority as any goodtrait/occupation).


No, something is wrong with the system.
The only way to meet a Mage is to give her Mage trait directly and check for $ gm.enter_location(goodtraits=["Mage"]). If you give her Mage class trait as occupation, not as a trait, you won't meet her. If you try to check for  $ gm.enter_location(occupations=["Caster"]), you will never meet her too.

New or old code???
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #5869 on: September 23, 2015, 05:00:24 AM »
Do we even need occupation field in chars jsons now, when occupations are almost traits?

BTW: I've made a note of that before but in modern code occupation was replaced with basetraits* (since there could be two).
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #5870 on: September 23, 2015, 11:05:53 AM »
You mean like "basetraits": "Mage"? Just tested that string instead of occupation string on Karin without testing json, she is a prostitute in the game. Looks like the game does not implement base traits.
« Last Edit: September 23, 2015, 11:07:25 AM by DarkTl »

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #5871 on: September 23, 2015, 11:20:55 AM »
Well, it goes out of control. With the new code I can no longer see her even with  $ gm.enter_location(goodtraits=["Mage"]) and "Mage" trat.

So basically,
- so far there is no reason to believe that basetraits field works, they are still prostitutes instead of mages if you try to make them mages. I'm talking about unique chars.

But even if I force Mage trait by adding it as a normal trait, not as a base one:
- girlmeets system is afk. Instead of one mage who should have absolute priority in a game without any other mages I get random chars (meaning not rchar, but different set of chars and rchars every time I run the game), and they are not even Curious. Before you last update  $ gm.enter_location(goodtraits=["Mage"]) + "Mage" trat worked every time, but not anymore.

Just try it and see for yourself. I used my small Arcana_Heart pack for testing, there is only one character.
« Last Edit: September 23, 2015, 11:29:24 AM by DarkTl »

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #5872 on: September 23, 2015, 12:16:40 PM »
Just try it and see for yourself. I used my small Arcana_Heart pack for testing, there is only one character.

Yeah, you're right... it doesn't work (like at all). I don't remember seeing anything at all to cause a f*ckup like this in the code, unless I find it, I'll have to rewrite the whole constructor.

===
Even thought a game does (or at least should) fix technical errors in JSON datafiles, it doesn't mean that you have to make them. At least our own packs should be (puurfectly) well made. At current code, without any modifications, your girl should (*could) look something like this:

Code: [Select]
[
    {
        "id": "Lilica_Felchenerow",
        "fullname": "Lilica Felchenerow",
        "name": "Lilica",
        "desc": "A half-demon, half-human. She loves playing pranks on people and has very little patience for things that don't interest her.",
        "gender": "female",
        "origin": "Arcana Heart",
        "base_race": "Demon",
        "personality": "Bokukko",
        "breasts": "Average Boobs",
        "race": "Half-demon",
        "arena_willing": false,
        "location": "city",
        "status": "free",
        "level": 5,
        "height": "short",
        "gold": 200,
       
        "stats": {
            "charisma": 15,
            "constitution": 60,
            "luck": 20,
            "character": 60,
            "intelligence": 20,
            "attack": 35,
            "magic": 20,
            "defence": 40,
            "agility": 60,
            "mp": 10
        },
        "skills": {
            "dancing": 10,
            "exploration": 15
        },
       
        "btraits": [],
        "ab_traits": [],
       
        "basetraits": [
            "Mage"
        ],
        "elements": [
            "Fire"
        ],
        "traits": [
            "Virgin",
            "Lolita",
            "Energetic",
            "Not Human",
            "Indifferent",
            "Alien"
        ],
       
        "battle_skills": [
            "FistAttack"
        ],
        "magic_skills": [
            "Fire",
            "Fira"
        ]
    }
]

You can obviously throw elements and special traits (personality, body, boob size) into traits as well. Gender and some other fields are not really needed. In your current code, you for once have "slave" in the "city", I think that I wrote code to straiten that out, but as I've said, we should try to try to make out own JSONs as clear as possible. *Note: I may have omitted one or two fields, can't say for sure, I am testing new fields with Hinata and that is all she had.

===
Anyway... GM sorting code beware! I am coming for you!  :D
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #5873 on: September 23, 2015, 12:55:36 PM »
Yeah, I didn't updated jsons for some time, since there might be even more changes in their structure in the future. Actually, there must be changes, since we'll need a complete control over character location for quests, we have an issue for that.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #5874 on: September 23, 2015, 01:07:15 PM »
Yeah, I didn't updated jsons for some time, since there might be even more changes in their structure in the future. Actually, there must be changes, since we'll need a complete control over character location for quests, we have an issue for that.

(atm I don't remember what this is about)

Gonna dig up the issue and take it out after gifts code is working properly. Some work was done on that last night but just for the interface.

===
Anyway... GM sorting code beware! I am coming for you!  :D

I think I've killed it  ::)


Any thoughts on:

1) badtraits are still really powerful and work only on preferred list. I am thinking that maybe it is a good idea to make bad-traits absolute and leave the location empty instead of just applying them to preference list?

2) I don't know if any of you remember it but we always check for "Curious" trait to place ALL characters with it on priority list, that can throw the system off a bit as well and was Dark's idea (I think). (aka: any girl with a Curious trait gets the same priority as any goodtrait/occupation).

I should have called these questions instead of notes. 2) I've fixed by adding curious_priority field, example in the mages tower.
« Last Edit: September 23, 2015, 01:08:50 PM by Xela »
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #5875 on: September 23, 2015, 02:23:04 PM »
Yeap, I'd prefer to have an empty location for bad traits.

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #5876 on: September 23, 2015, 02:30:55 PM »
I've fixed by adding curious_priority field, example in the mages tower.
I don't see any changes in the tower json.

I think I've killed it  ::)
Did you tested it?
I personally don't see any changes, still whores and strippers around the tower.

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #5877 on: September 23, 2015, 02:38:29 PM »
I tried to add a char for testing via console with hero.add_girl, but got
Quote
   File "game/library/screens/pyt - screens - mainscreen.rpy", line 43, in script call
   $ result = ui.interact()
  File "renpy/common/00console.rpy", line 650, in script
    python in _console:
  File "renpy/common/00console.rpy", line 651, in <module>
    console.interact()
  File "renpy/common/00console.rpy", line 247, in interact
    line = ui.interact()
  File "game/library/screens/pyt - screens - mainscreen.rpy", line 72, in execute
    screen pyt_mainscreen():
  File "game/library/screens/pyt - screens - mainscreen.rpy", line 80, in execute
    frame:
  File "game/library/screens/pyt - screens - mainscreen.rpy", line 93, in execute
    vbox:
  File "game/library/screens/pyt - screens - mainscreen.rpy", line 98, in execute
    textbutton "Girls":
  File "game/library/screens/pyt - screens - mainscreen.rpy", line 98, in keywords
    textbutton "Girls":
  File "game/library/classes - gui logic.rpy", line 173, in __init__
    self.sorted = list(girl for girl in hero.girls if girl.action != "Exploring")
  File "game/library/classes - gui logic.rpy", line 173, in <genexpr>
    self.sorted = list(girl for girl in hero.girls if girl.action != "Exploring")
AttributeError: 'str' object has no attribute 'action'

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #5878 on: September 23, 2015, 02:49:07 PM »
Yeap, I'd prefer to have an empty location for bad traits.

Ok, I'll make them absolute with my next push.

===
I don't see any changes in the tower json.

Code: [Select]
$ gm.enter_location(goodtraits=["Mage"], occupations=["Caster"], curious_priority=False)
===
Did you tested it?
I personally don't see any changes, still whores and strippers around the tower.

Yes... I did. Are you sure that you have any properly setup mages in the game? It seems to be working for me perfectly.

===
I tried to add a char for testing via console with hero.add_girl, but got

Error suggest that you did something like:

Code: [Select]
hero.add_girl("Hinata")
instead of:

Code: [Select]
hero.add_girl(chars["Hinata"])
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #5879 on: September 23, 2015, 03:05:31 PM »
Do class traits work? Or should they at all?

For testing I changed char json, adding "basetraits": "Mage", and then added her to the hero. She is a prostitute.
Another try, I removed occupation and added Mage trait directly. She's a prostitute and doesn't even have a Mage trait at all. That's clearly broken.
« Last Edit: September 23, 2015, 03:08:08 PM by DarkTl »