NOLA: The Game That Care Forgot
-
For the record I call dibs on these PBs for my Bright One changeling:
...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. -
This post is deleted! -
Its not: hallow ()
It's: ()hallowI'll spare you the nerdy wall of text that is the explanation below in a tag.
***=BlahBlahScripting***
click to show -
@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.)
-
This post is deleted! -
@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. LikewiseStealth
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
orGift of Stealth
orRote Blah
or hell every single Thaumaturge ritual on DW had to beRitual blah
because there were name clashes. -
This post is deleted! -
@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.
-
-
@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.
-
This post is deleted! -
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!
-
@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.
-
@Melpomene Wouldn't that only be an issue if you typo in the +roll or on the +sheet?
-
@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?
-
@Melpomene Staff too lazy to check XP and prereqs, got it. Which is annoying, but it is what it is.
-
@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?