Player Experience Upgrade

version 2/111127 by Aaron Reed

  • Home page
  • Beginning
  • Previous
  • Next

  • Section - Unreplaced Messages

    Chapter - Hacks

    Section - Fixing the Score

    [As an exercise in masochism, we roll up our sleeves for the unpleasant plumbing involved in making the score command be styled correctly. Since the standard rules hard-code printing a period and line break into the obscure PrintRank routine, of all places, we have to do some ugly trickery to make this work.]

    [Note: Technically, "verifying the story file" and "requesting the pronoun meanings" need a similar enema, but in lieu of an army of clones who don't mind doing difficult work for almost zero benefit I've chosen to simply leave those messages unstyled for now.]

    [Further note: SAVE, TRANSCRIPT, UNDO are also tricky to fix, but since it's not safe to change the display style during these commands since they can have drastic changes on turn order etc., we feel better about leaving these messages unstyled as well.]

    To #if ranking table is active: (- #ifdef RANKING_TABLE; -).
    To #PrintRank: (- PrintRank(); -).
    To #if not: (- #Ifnot; -).
    To #end if: (- #endif; -).

    The Neutral Library Messages announce the score rule is listed instead of the announce the score rule in the carry out requesting the score rulebook.

    This is the Neutral Library Messages announce the score rule:
        if actor is the player:
            repeat through the table of custom library messages in reverse order:
                if there is a library-action entry and the library-action entry is the requesting the score action:
                    if the no scoring option is active and the library-message-id entry is 2:
                        parser say "[the library-message-text entry].";
                    otherwise if the no scoring option is not active and the library-message-id entry is 1:
                        #if ranking table is active;
                        say the library-message-text entry;
                        #if not;
                        parser say "[the library-message-text entry].";
                        #end if;
        follow the announce the score rule. [Fallback to normal behavior if these messages are omitted from the table, for some reason.]