NOLA: The Game That Care Forgot


  • Pitcrew

    For the record I call dibs on these PBs for my Bright One changeling:

    alt text

    alt text

    ...though I don't imagine a Bright One surrounded by string is likely to be smiling, if I'm using the 1e frailties (which I am, because they are amazing).



  • @RDC said in NOLA: The Game That Care Forgot:

    @Thenomain Don't need dibs or anything, but if you tell us how it's breaking core CofD code, Mel might be able to fix it.

    NERD ANSWER ALERT!

    The core stat lookup code does a bit of name-completion. If someone looks up "st", the system has to determine if you meant "strength", "stamina", "stealth", or "stoat of the ages". On top of this, the system also knows to stop if it finds an exact match. "strength" is always the attribute, never "strength of the lion", a possible power or merit.

    There are several kinds of stats, mostly caused by merits, wherin you can take the stat once at one or more values (almost all of them) or even the same stat several times; "language" is the most obvious of this. You can take French, Latin, or in the rare case for most of us, English.

    The system represents those by "instances", the stats with the parenthesis. If you take the French instance of the Language merit, you have taken "Language (French)", and so on.

    In normal circumstances, it is very good at telling apart normal from instanced stats, "str" from "str (foo)".

    Changeling has added two instanced stats that are very similar:

    • hallow ()
    • hallow dance ()

    So when someone types stat hallow (or set, or what have you), "hallow dance ()" is coming up. This is making it impossible to set "hallow ()".

    For some reason, the name-completion is catching the () while sorting, and doesn't know to ignore it. This is because in an alphanumeric sort, "hallow (" comes after "hallow d". So now "hallow ()" is impossible to set! This is happening even with stat hallow (), which is a huge part of the problem. The name completion is not seeing the exact match.

    I just have to figure out where in the system the exact match is determined and go backwards from there to find out what it's doing with "()". I have a few ideas, but all of the above was deduced from descriptions given to me while I was standing at work trying to look busy.

    --

    (edit)

    FAQ:

    Q. Hey Theno! Isn't Hallow/Hallow Dance a Mage thing?!
    A. Um...apparently.


  • Pitcrew

    @Thenomain Non-coder question: Couldn't we fix this (at least temporarily) by naming Hallow Dance something like 'Dance, Hallow'?

    ALSO: If anyone is having trouble connecting to NOLA, no the game is not down. There is a mysterious problem at the place where the server physically exists that has been explained to me as "Fucking SSDNodes".



  • Its not: hallow ()
    It's: ()hallow

    I'll spare you the nerdy wall of text that is the explanation below in a tag.

    ***=BlahBlahScripting***

    click to show

    Because "HALLOW FROM THE OTHER SIIIIIIIIIIIIIIDE"



  • @Ghost I don't get it.

    @RDC said in NOLA: The Game That Care Forgot:

    @Thenomain Non-coder question: Couldn't we fix this (at least temporarily) by naming Hallow Dance something like 'Dance, Hallow'?

    This problem affects everyone using my code.

    Here's the amusing bit, I decided to see how the system was converting 'str' to 'attribute.strength' as well it should, and, well, look:

    attribute.strength 
    rote.strings_of_fate_() 
    skill.streetwise 
    merit.strained 
    merit.street_fighting 
    merit.strength_of_resolution 
    merit.strength_performance 
    merit.striking_looks_() 
    merit.strings_of_the_heart
    

    Rotes, as well as any other gameline power set, belongs at the end right before "bio". How in the world did it get to second? And this is true for every search that matches a rote.

    And this is why hallow dance—a rote—matched before hallow—a merit.

    Clearly I'm going to dive into the search algorithm, but in the meantime here's a comment about how Mage takes over games. F'in' Mage.

    (More Nerd Talk: The system sorts attributes by a hierarchy. Rote stats seem to be ignoring it. F'in' Mage.)


  • Pitcrew

    @THenomain No, I get it. But this particular conflict could be negated by just not having a stat called Hallow Dance AND a stat called Hallow, right? For games without mage installed would this be a problem (any more than it is right now, which isn't much of one)?


  • Tutorialist

    @RDC said in NOLA: The Game That Care Forgot:

    @THenomain No, I get it. But this particular conflict could be negated by just not having a stat called Hallow Dance AND a stat called Hallow, right? For games without mage installed would this be a problem (any more than it is right now, which isn't much of one)?

    WoD has a notorious issue of naming things similar or the same damned thing. Example: Strength in 1E could be an attribute or it could be a werewolf gift. Likewise Stealth could be a skill or a werewolf gift. Wisdom was a mage morality while it was a werewolf renown.

    What Theno is trying to do is get the code working so that no matter what games are installed, no matter when this name-clash issue comes up, it'll sort itself out easier. Without having to change the name of things or go in and change the code for specific games.

    So, you are correct, right now in this particular instance if a game doesn't have or want mage, it's not currently an issue for them. But, it could become an issue later on when another name clash pops up. So while we could short-cut the code and either change the name or just ignore it b/c a particular game doesn't want mage. It will become an issue in the future.

    I know this from experience with adding things to DW and Reno. I had to rename so many things to stuff like Gift of Strength or Gift of Stealth or Rote Blah or hell every single Thaumaturge ritual on DW had to be Ritual blah because there were name clashes.


  • Pitcrew

    Cool, but for an end user, this shouldn't matter - which suggests installing Changeling shouldn't be a big deal for NOLA. Workarounds are fine for now.



  • @RDC said in NOLA: The Game That Care Forgot:

    @Thenomain No, I get it. But this particular conflict could be negated by just not having a stat called Hallow Dance AND a stat called Hallow, right? For games without mage installed would this be a problem (any more than it is right now, which isn't much of one)?

    It could, but as it's endemic of a larger issue, the answer is to fix the larger issue before it causes problems on games regardless of what game lines they install. To be honest, I'm extremely surprised it didn't happen before now.

    The real issue: I was using a string sort for a numeric list while determining stat sort order.

    So in the end, who cares if it was Mage or Changeling, or how it was named? Because in the end that wasn't the problem. (Though it did lead me to the problem, so it wasn't a waste of time.) It would have happened eventually to any game with a few game lines on it.

    This is the level of attention to detail that you get with ThenoCode™. Accept no substitute...er...for Theno's code.



  • @Thenomain said in NOLA: The Game That Care Forgot:

    @Ghost I don't get it.

    Hallow() is on one side.
    ()Hallow is now on the other side.

    Adele sang "Hello from the other side".

    I'm a dork.



  • @Ghost

    That's stupid.

    Have an upvote.



  • @Thenomain I appreciate you feeding my dumb joke like a sea lion is rewarded with fish for the right number of "OrkOrk" sounds.

    Have an upvote.


  • Pitcrew

    @Thenomain Yeah, I get it - I just don't see it as a sky is falling, the whole thing is ruined sort of problem. MU* code runs into problems like this all the time. I don't really anticipate more than 1 or 2 more books coming out before Onyx Path admits they hate 2e and stop publishing for it, so I don't really see the need to future-proof to avoid the huge hassle of naming things slightly differently. But it's your code! I get how something like that could be irritating. I just tend toward a more effort/return ratio view of things.



  • I am code dumb, but I never really figured out why the code is a list of every possible merit, instead of just a space on a sheet for you to set a wildcard of data. While yes, it could lead to a sheet getting a thing it shouldn't have access to, this can be fixed after the fact. I dunno. It works via the sorcery, so best not touch it!


  • Pitcrew

    @Jennkryst Because you want the code to be able to +roll Intelligence + Academics + Resources if that ever comes up. If we didn't have to do that it would be so much easier... though honestly I've been working on ways around that in my random codings lately. :P



  • @Melpomene Wouldn't that only be an issue if you typo in the +roll or on the +sheet?


  • Pitcrew

    @Jennkryst Naah, +roll will just fail to find the stat and assume you don't have it and let you know in the output "hey, didn't find this stat". I was trying for a simple understandable answer from a player's perspective but now that I think about it, +roll isn't the best.

    OK, so the longer answer: You want to xp/spend player/Resources=1, you need to know how high Resources goes, what section of the sheet to put it on, what the XP cost is (because if it weren't a merit it might be a Discipline and those buggers are expensive!), etc.

    Now, if you trusted staff to just automatically give the right stat to the player for the right amount of XP, and the player to report if the staffer screwed it up, you could seriously just "stat/grant player=Resources:1" and then "xp/spend player=1 for Resources 1". However, people want the quick shortcuts. They want alert messages to fire off when the player doesn't have XP (if it was Dominate 5 and the player had 1 XP and also didn't even have Dominate 1, 2, 3, or 4, for example). They want the system to reject the command if the player doesn't have the prerequisites for the merit.

    For that, you need a database of the rules. Most of the rules - like Resources - are simple. Some of the rules are hard AF. (Health levels was a beeeyotch to understand when I first screwed with it.) The rule for Resources is just "1.2.3.4.5" and "Merit", meaning "it costs 1 XP per dot and can be any of the values 1, 2, 3, 4, or 5". The system takes care of the rest. The rules for, say, "Quick Draw", are a little bit tougher. (Plus it has a value that can be set to darn near anything.)

    That code is expressed like so:

    &MERIT.QUICK_DRAW_() [v(d.dd)]=1|*
    
    &PREREQUISITE.MERIT.QUICK_DRAW_() [v(d.dd)]=cand(u(.at_least, %0, attribute.Wits, 3), cor(u(.specialty_has, %0, Brawl Weaponry Firearms Athletics, %1), u(.has, %0, merit.[edit(%1, %b, _)])))
    
    &PREREQ-TEXT.MERIT.QUICK_DRAW_() [v(d.dd)]=Wits 3+, and the type is either a specialty for Brawl, Weaponry, Firearms, Athletics, or a learned Fighting Style
    

    Long answer satisfactory? :D



  • @Melpomene Staff too lazy to check XP and prereqs, got it. Which is annoying, but it is what it is.


  • Pitcrew

    @Jennkryst said in NOLA: The Game That Care Forgot:

    @Melpomene Staff too lazy to check XP and prereqs, got it. Which is annoying, but it is what it is.

    Automation is good!



  • @RDC said in NOLA: The Game That Care Forgot:

    Bloodlines are in and available. Thank you @Ganymede!

    Thank you for putting them in and giving my ideas life.


    @Jennkryst said in NOLA: The Game That Care Forgot:

    I vote against Dead Wolves being Gangrel-only, but it is what it is. MAYBE ROME (where I'll pitch it now, whee)

    I'll bite: why?


Log in to reply