Changes

no edit summary
Line 6: Line 6:     
== Movie data ==
 
== Movie data ==
<samp>Data/Movies.xnb</samp> contains the data for all movies, including their names, descriptions, genre tags, scenes, and dialogue and narration spoken within the film. For reference, below is the raw data of "The Brave Little Sapling":
+
<samp>Data\Movies.xnb</samp> contains the data for all movies, including their names, descriptions, genre tags, scenes, and dialogue and narration spoken within the film. For reference, below is the raw data of "The Brave Little Sapling":
    
{{collapse|Data|content=<syntaxhighlight lang="json">
 
{{collapse|Data|content=<syntaxhighlight lang="json">
Line 180: Line 180:     
== Movie reactions ==
 
== Movie reactions ==
 +
<samp>Data\MoviesReactions.xnb</samp> contains every NPC's taste in movies and their dialogue in response to them. For reference, below is the raw data for [[Penny]]'s tastes:
 +
 +
{{collapse|Data|content=<syntaxhighlight lang="json">
 +
[
 +
  {
 +
    "NPCName": "Penny",
 +
    "Reactions": [
 +
      {
 +
        "Tag": "*",
 +
        "Response": "love",
 +
        "Whitelist": [
 +
          "Pam"
 +
        ],
 +
        "SpecialResponses": {
 +
          "BeforeMovie": {
 +
            "ResponsePoint": null,
 +
            "Script": "",
 +
            "Text": "Watching a movie with mom sure brings me back!"
 +
          },
 +
          "DuringMovie": {
 +
            "ResponsePoint": null,
 +
            "Script": "/message \"(Pam and Penny are watching intently!)\"",
 +
            "Text": ""
 +
          },
 +
          "AfterMovie": {
 +
            "ResponsePoint": null,
 +
            "Script": "",
 +
            "Text": "It's great to be able to do things as a family again!"
 +
          }
 +
        },
 +
        "ID": "reaction_0"
 +
      },
 +
      {
 +
        "Tag": "spring_movie_0",
 +
        "Response": "love",
 +
        "Whitelist": [],
 +
        "SpecialResponses": {
 +
          "BeforeMovie": {
 +
            "ResponsePoint": null,
 +
            "Script": "",
 +
            "Text": "I'm looking forward to this! Jas and Vincent have been talking about it non-stop."
 +
          },
 +
          "DuringMovie": {
 +
            "ResponsePoint": "sprout_leave",
 +
            "Script": "/shake Penny 3000/pause 500/message \"Penny seems to be holding back some tears...\"",
 +
            "Text": "Wow, it must be really hard leaving his family like that...$s"
 +
          },
 +
          "AfterMovie": {
 +
            "ResponsePoint": null,
 +
            "Script": "",
 +
            "Text": "Thanks for taking me to this, I can't wait to tell the kids how good it was!"
 +
          }
 +
        },
 +
        "ID": "reaction_1"
 +
      },
 +
      {
 +
        "Tag": "spring_movie_0",
 +
        "Response": "love",
 +
        "Whitelist": [],
 +
        "SpecialResponses": null,
 +
        "ID": "reaction_2"
 +
      },
 +
      {
 +
        "Tag": "family",
 +
        "Response": "like",
 +
        "Whitelist": [],
 +
        "SpecialResponses": {
 +
          "BeforeMovie": {
 +
            "ResponsePoint": null,
 +
            "Script": "",
 +
            "Text": "Oh, '{0}'! This looks wholesome and fun!"
 +
          },
 +
          "DuringMovie": {
 +
            "ResponsePoint": null,
 +
            "Script": "/message \"(Penny is smiling)\"",
 +
            "Text": ""
 +
          },
 +
          "AfterMovie": {
 +
            "ResponsePoint": null,
 +
            "Script": "",
 +
            "Text": "I should totally bring the kids to see this sometime!"
 +
          }
 +
        },
 +
        "ID": "reaction_3"
 +
      },
 +
      {
 +
        "Tag": "comedy",
 +
        "Response": "like",
 +
        "Whitelist": [],
 +
        "SpecialResponses": {
 +
          "BeforeMovie": {
 +
            "ResponsePoint": null,
 +
            "Script": "",
 +
            "Text": "I'm excited, I'm in the mood for a good laugh!"
 +
          },
 +
          "DuringMovie": {
 +
            "ResponsePoint": null,
 +
            "Script": "",
 +
            "Text": "Did they just...?! Hahahaha!"
 +
          },
 +
          "AfterMovie": {
 +
            "ResponsePoint": null,
 +
            "Script": "",
 +
            "Text": "Whew, I've got a cramp from all that laughing...!"
 +
          }
 +
        },
 +
        "ID": "reaction_4"
 +
      },
 +
      {
 +
        "Tag": "horror",
 +
        "Response": "dislike",
 +
        "Whitelist": [],
 +
        "SpecialResponses": {
 +
          "BeforeMovie": {
 +
            "ResponsePoint": null,
 +
            "Script": "",
 +
            "Text": "I'm a little nervous... I don't usually watch scary movies.$s"
 +
          },
 +
          "DuringMovie": {
 +
            "ResponsePoint": null,
 +
            "Script": "/shake Penny 3000/pause 500/emote Penny 28",
 +
            "Text": "I can't look...$s"
 +
          },
 +
          "AfterMovie": {
 +
            "ResponsePoint": null,
 +
            "Script": "",
 +
            "Text": "I hope I don't have nightmares tonight!$s"
 +
          }
 +
        },
 +
        "ID": "reaction_5"
 +
      },
 +
      {
 +
        "Tag": "love",
 +
        "Response": "like",
 +
        "Whitelist": [],
 +
        "SpecialResponses": {
 +
          "BeforeMovie": {
 +
            "ResponsePoint": null,
 +
            "Script": "",
 +
            "Text": "Oooh, I've been dying to see this!"
 +
          },
 +
          "DuringMovie": null,
 +
          "AfterMovie": {
 +
            "ResponsePoint": null,
 +
            "Script": "",
 +
            "Text": "Amazing! I hope they make another one!"
 +
          }
 +
        },
 +
        "ID": "reaction_6"
 +
      },
 +
      {
 +
        "Tag": "like",
 +
        "Response": "like",
 +
        "Whitelist": [],
 +
        "SpecialResponses": {
 +
          "BeforeMovie": {
 +
            "ResponsePoint": null,
 +
            "Script": "",
 +
            "Text": "Hey, I've heard some good things about this one!"
 +
          },
 +
          "DuringMovie": null,
 +
          "AfterMovie": {
 +
            "ResponsePoint": null,
 +
            "Script": "",
 +
            "Text": "That was great! Thanks for seeing this with me!"
 +
          }
 +
        },
 +
        "ID": "reaction_7"
 +
      },
 +
      {
 +
        "Tag": "dislike",
 +
        "Response": "like",
 +
        "Whitelist": [],
 +
        "SpecialResponses": {
 +
          "BeforeMovie": {
 +
            "ResponsePoint": null,
 +
            "Script": "",
 +
            "Text": "I can't say I would've picked this one myself, but I'll try to keep an open mind..."
 +
          },
 +
          "DuringMovie": {
 +
            "ResponsePoint": null,
 +
            "Script": "",
 +
            "Text": "..."
 +
          },
 +
          "AfterMovie": {
 +
            "ResponsePoint": null,
 +
            "Script": "",
 +
            "Text": "Sorry if I ruined the movie for you, it just wasn't really my favorite..."
 +
          }
 +
        },
 +
        "ID": "reaction_8"
 +
      },
 +
      {
 +
        "Tag": "seen_love",
 +
        "Response": "like",
 +
        "Whitelist": [],
 +
        "SpecialResponses": {
 +
          "BeforeMovie": {
 +
            "ResponsePoint": null,
 +
            "Script": "",
 +
            "Text": "Ooh, '{0}'! I saw this one with {2}!"
 +
          },
 +
          "DuringMovie": null,
 +
          "AfterMovie": null
 +
        },
 +
        "ID": "reaction_9"
 +
      },
 +
      {
 +
        "Tag": "seen_like",
 +
        "Response": "like",
 +
        "Whitelist": [],
 +
        "SpecialResponses": {
 +
          "BeforeMovie": {
 +
            "ResponsePoint": null,
 +
            "Script": "",
 +
            "Text": "I saw this with {2}, it was pretty good!"
 +
          },
 +
          "DuringMovie": null,
 +
          "AfterMovie": null
 +
        },
 +
        "ID": "reaction_10"
 +
      },
 +
      {
 +
        "Tag": "seen_dislike",
 +
        "Response": "like",
 +
        "Whitelist": [],
 +
        "SpecialResponses": {
 +
          "BeforeMovie": {
 +
            "ResponsePoint": null,
 +
            "Script": "",
 +
            "Text": "Hmm, I think {2} took me to see this..."
 +
          },
 +
          "DuringMovie": null,
 +
          "AfterMovie": null
 +
        },
 +
        "ID": "reaction_11"
 +
      }
 +
    ]
 +
  },
 +
  ...
 +
]
 +
</syntaxhighlight>}}
 +
 +
===Format===
 +
Each block of data within the file begins with an <samp>NPCName</samp> key, which is the name of the NPC to whom the rest of the data in the block will apply. This is followed by a list with the key <samp>Reactions</samp>. Each block within this list is the data for an NPC's response to a specific type of movie. If multiple responses are applicable, the game picks the first one listed. The data within each block is formatted as follows:
 +
 +
{| class="wikitable"
 +
|-
 +
! key format
 +
! description
 +
|-
 +
| <samp>Tag</samp>
 +
| Which category of movie this response is for. In decreasing order of specificity, this can be: <samp>*</samp>, in which case the response will always be applicable, unless their are other restrictions applied by <samp>Whitelist</samp>; a genre of movie, as listed in the <samp>Tags</samp> field of a film's data; or, a specific movie's identifier, as listed at the header of its block. (i.e. <samp>spring_movie_0</samp> for "The Brave Little Sapling")
 +
|-
 +
| <samp>Response</samp>
 +
| One of <samp>love</samp>, <samp>like</samp>, or <samp>dislike</samp>. Used to calculate Friendship points gained with the NPC. A loved movie earns 200 Friendship points with the NPC, a liked movie earns 100 Friendship points, and a disliked movie neither earns nor costs friendship points with the NPC.
 +
|-
 +
| <samp>Whitelist</samp>
 +
| A list of NPC names. If not empty, the response will only trigger if one of the listed NPCs is also present within the theater. Currently only used for Penny, who has a special reaction to watching a movie if her mother [[Pam]] is present.
 +
|-
 +
| <samp>SpecialResponses</samp>
 +
| Contains the dialogue spoken by an NPC during the film in a series of blocks. (See below.)
 +
|-
 +
| <samp>ID</samp>
 +
| A unique identifier in the form of <samp>reaction_{{t|index}}</samp>, where {{t|index}} is, counting from 0, what number block this is within the <samp>Reactions</samp> list.
 +
|-
 +
|}
 +
 +
==== Special responses ====
 +
Each <samp>SpecialResponses</samp> block contains 3 blocks, beginning with <samp>BeforeMovie</samp>, <samp>DuringMovie</samp>, and <samp>AfterMovie</samp>, in that order. By default, the dialogue within these blocks triggers before the film begins, at a random point during it, and after it's finished, respectively. The data within each block is as follows:
 +
 +
{| class="wikitable"
 +
|-
 +
! key format
 +
! description
 +
|-
 +
| <samp>ResponsePoint</samp>
 +
| If not null, this dialogue will trigger at the given response point instead of its regular timing. See [[Modding:Movie_theater_data#Scenes]] for an explanation of response points.
 +
|-
 +
| <samp>Script</samp>
 +
| A script which runs prior to <samp>Text</samp> being displayed. Written in the same format as [[Modding:Event_data#Event_scripts]].
 +
|-
 +
| <samp>Text</samp>
 +
| The dialogue spoken by the NPC.
 +
|}
    
== Concession data ==
 
== Concession data ==
    
== Concession reactions ==
 
== Concession reactions ==
118

edits