BWIKI 全站将于 9 月 3 日(全天)进行维护,期间无法编辑任何页面或发布新的评论。
模组:电影院数据
← 目录
此页面解释与电影院有关的文件的用途和格式。这是面向模组开发者的高级指南。
电影数据
Data\Movies.xnb 包含所有电影的数据,包括名称、描述、题材标签、电影片段、对话和旁白。下面是《勇敢的小树苗》的原始数据:
数据
{
"spring_movie_0": {
"ID": null,
"SheetIndex": 0,
"Title": "The Brave Little Sapling",
"Description": "An animated family comedy about a little sprout on a magical adventure to become a tree!",
"Tags": [
"family",
"comedy"
],
"Scenes": [
{
"Image": 0,
"Music": "sweet",
"Sound": "",
"MessageDelay": 1000,
"Script": "",
"Text": "The Brave Little Sapling",
"Shake": false,
"ResponsePoint": null,
"ID": "spring0_0"
},
{
"Image": 1,
"Music": "",
"Sound": "",
"MessageDelay": 500,
"Script": "",
"Text": "The brave little sapling is leaving his home. He hesitates for a moment and turns around, knowing he won't be back for a long time...",
"Shake": false,
"ResponsePoint": null,
"ID": "spring0_1"
},
{
"Image": 6,
"Music": "",
"Sound": "",
"MessageDelay": 500,
"Script": "/playSound dustMeep/pause 200/playSound dustMeep/pause 300/playSound dustMeep/pause 100/playSound dustMeep/pause 200/playSound dustMeep",
"Text": "The other saplings of his grove are gathered at the edge of town, excitedly waving their twigs goodbye...!",
"Shake": false,
"ResponsePoint": "sprout_leave",
"ID": "spring0_2"
},
{
"Image": 2,
"Music": "rain",
"Sound": "",
"MessageDelay": 500,
"Script": "",
"Text": "Oh no! Out of nowhere, it starts raining...! The little sapling goes into a sprint as thunderclouds loom overhead...",
"Shake": false,
"ResponsePoint": "",
"ID": "spring0_3"
},
{
"Image": 3,
"Music": "",
"Sound": "thunder",
"MessageDelay": 1000,
"Script": "",
"Text": "Fearing for his life, and demoralized by the relentless downpour, the brave little sapling begins to lose hope...",
"Shake": false,
"ResponsePoint": "",
"ID": "spring0_4"
},
{
"Image": 4,
"Music": "echos",
"Sound": "",
"MessageDelay": 500,
"Script": "",
"Text": "...But what's this...? The sapling feels a tingling on the top of his head... ",
"Shake": false,
"ResponsePoint": null,
"ID": "spring0_5"
},
{
"Image": 5,
"Music": "",
"Sound": "",
"MessageDelay": 500,
"Script": "/playSound coin/pause 1000/message \"Perhaps a little rain was what it needed to begin its journey into becoming a tree!\"",
"Text": "",
"Shake": false,
"ResponsePoint": "",
"ID": "spring0_6"
},
{
"Image": 7,
"Music": "",
"Sound": "",
"MessageDelay": 2000,
"Script": "",
"Text": "Farewell, little buddy!",
"Shake": false,
"ResponsePoint": null,
"ID": "spring0_7"
}
]
},
...
}
格式
每个电影的对应项以形如 <season>
_movie_<number>
的标识符开头,其中 <season>
为上映季节,<number>
为 0 或 1。电影院每天会在对应季节轮换 #0 电影和 #1 电影。
电影数据的主代码块包含如下信息:
键格式 | 描述 |
---|---|
ID | 总是留空,作用未知 |
SheetIndex | LooseSprites\Movies.xnb 中电影片段贴图的位置。 |
Title | 电影标题. |
Description | 电影描述,用于电影院外的海报。 |
Tags | 电影的题材列表,用于计算 NPC 对电影的反应。可以为任意字符串。原版中为family、comedy、horror、art、action、sci-fi、classic、romance 和 documentary。 |
Scenes | 电影片段的数据块的列表(见下文)。 |
Scenes
Scenes 字段为一系列代码块的列表,每个代码块都对应于电影中的一幕。代码块按照事件顺序依次列出,其结构如下:
键格式 | 描述 |
---|---|
Image | 应用 LooseSprites\Movies.xnb 中此电影的哪张贴图。 |
Music | 这一幕播放的音乐。可留空。 |
Sound | 这一幕播放的音效。可留空。 |
MessageDelay | 这一幕在显示文本前播放多长时间。 |
Script | 用于特殊的视听效果。与模组:事件数据#事件脚本格式相同。 |
Text | 这一幕的对话/旁白。 |
Shake | 布尔值。若为 true,则使银幕震动。 |
ResponsePoint | 若指定此字段,则 NPC 的反应数据可以引用此字段的值,以表示在此节点作出特定反应。 |
ID | 这一幕的 ID。格式为 <season> <number> _<index> 。<season> 和 <number> 与电影ID中的对应值相同。<index> 从 0 开始计数,表示此电影的第几幕。
|
电影反应
Data\MoviesReactions.xnb 包含了每个 NPC 的观影口味和观影反应。下面是潘妮的反应的原始数据:
数据
[
{
"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"
}
]
},
...
]
格式
每个代码块都应当以 NPCName 键开头,即对应的 NPC 名称。列表中的每个代码块为 NPC 对特定类型电影的反应。
每个代码块中的数据格式如下:
键格式 | 描述 |
---|---|
Tag | 此反应用于哪一类电影。按照精确度降序,此字段可以为:
|
Response | 取值为 love、like 或 dislike。用于计算与此 NPC 的友谊,最爱的电影增加 200 友谊值,喜欢的电影增加 100 友谊值,不喜欢的电影既不增加也不减少友谊值。 |
Whitelist | NPC 名称列表。若非空,则仅在如下条件都满足时使用此反应:Tag 条件满足、列出的 NPC 出现在电影院。目前仅适用于潘妮,因为她在潘姆同时在场时有特殊的反应。 |
SpecialResponses | NPC 在电影中可能说出的对话(见下文),以代码块形式列出。可以留空。 |
ID | 一个唯一标识符,形如 reaction_<index> ,其中 <index> 从 0 计数,指代 Reactions 列表中的代码块索引。
|
出于未知原因,在原版代码中,当 Tag 字段为 love 或 dislike 时,Response 字段总是为 like。
特殊反应
每个 SpecialResponses 代码块都包含 3 个子块,分别以 BeforeMovie、DuringMovie 和 AfterMovie 开头(观影前、观影中、观影后)。其中任何代码块都可以留空。默认情况下,这 3 个代码块分别用于在影院大厅中交谈、电影放映时交谈、电影结束后交谈。每个代码块中的数据如下所示:
键格式 | 描述 |
---|---|
ResponsePoint | 若非空,则此对话会在指定时间点而非常规时间点触发。参见#Scenes以了解何为时间点。 |
Script | 在显示 Text 之前运行的脚本。格式应当与事件脚本相同。 |
Text | 对话文本。 |
若多个反应代码块应用于同一部电影,则游戏会使用第一个非空的 Response、BeforeMovie、DuringMovie 和 AfterMovie。所说的话也没必要来自同一个反应代码块。若游戏不能找到可用的 DuringMovie 对话,则会使用来自 Strings\Characters.xnb 的默认文本。若不能找到可用的 BeforeMovie 或 AfterMovie 对话,则 NPC 会显示为可交谈状态,但尝试与他们对话却又什么也不发生。
零食数据
Data\Concessions.xnb 包含了零食摊的数据,以代码块的列表形式列出。下面时原始数据以供参考:
数据
[
{
"Id": "0",
"Name": "Cotton Candy",
"DisplayName": "[LocalizedText Strings\\MovieConcessions:CottonCandy_Name]",
"Description": "[LocalizedText Strings\\MovieConcessions:CottonCandy_Description]",
"Price": 50,
"Texture": "LooseSprites\\Concessions",
"SpriteIndex": 0,
"ItemTags": [
"Sweet",
"Candy"
]
},
{
"Id": "1",
"Name": "Jasmine Tea",
"DisplayName": "[LocalizedText Strings\\MovieConcessions:JasmineTea_Name]",
"Description": "[LocalizedText Strings\\MovieConcessions:JasmineTea_Description]",
"Price": 50,
"Texture": "LooseSprites\\Concessions",
"SpriteIndex": 1,
"ItemTags": [
"Drink",
"Hot",
"Healthy"
]
},
{
"Id": "2",
"Name": "Joja Cola",
"DisplayName": "[LocalizedText Strings\\MovieConcessions:JojaCola_Name]",
"Description": "[LocalizedText Strings\\MovieConcessions:JojaCola_Description]",
"Price": 40,
"Texture": "LooseSprites\\Concessions",
"SpriteIndex": 2,
"ItemTags": [
"Drink",
"Cold",
"Joja"
]
},
{
"Id": "3",
"Name": "Sour Slimes",
"DisplayName": "[LocalizedText Strings\\MovieConcessions:SourSlimes_Name]",
"Description": "[LocalizedText Strings\\MovieConcessions:SourSlimes_Description]",
"Price": 80,
"Texture": "LooseSprites\\Concessions",
"SpriteIndex": 3,
"ItemTags": [
"Sour",
"Candy"
]
},
{
"Id": "4",
"Name": "Personal Pizza",
"DisplayName": "[LocalizedText Strings\\MovieConcessions:PersonalPizza_Name]",
"Description": "[LocalizedText Strings\\MovieConcessions:PersonalPizza_Description]",
"Price": 150,
"Texture": "LooseSprites\\Concessions",
"SpriteIndex": 4,
"ItemTags": [
"Hot",
"Fatty"
]
},
{
"Id": "5",
"Name": "Nachos",
"DisplayName": "[LocalizedText Strings\\MovieConcessions:Nachos_Name]",
"Description": "[LocalizedText Strings\\MovieConcessions:Nachos_Description]",
"Price": 100,
"Texture": "LooseSprites\\Concessions",
"SpriteIndex": 5,
"ItemTags": [
"Hot",
"Salty",
"Fatty"
]
},
{
"Id": "6",
"Name": "Salmon Burger",
"DisplayName": "[LocalizedText Strings\\MovieConcessions:SalmonBurger_Name]",
"Description": "[LocalizedText Strings\\MovieConcessions:SalmonBurger_Description]",
"Price": 150,
"Texture": "LooseSprites\\Concessions",
"SpriteIndex": 6,
"ItemTags": [
"Sandwich",
"Burger"
]
},
{
"Id": "7",
"Name": "Ice Cream Sandwich",
"DisplayName": "[LocalizedText Strings\\MovieConcessions:IceCreamSandwich_Name]",
"Description": "[LocalizedText Strings\\MovieConcessions:IceCreamSandwich_Description]",
"Price": 150,
"Texture": "LooseSprites\\Concessions",
"SpriteIndex": 7,
"ItemTags": [
"Sandwich",
"Sweet",
"Cold"
]
},
{
"Id": "8",
"Name": "Popcorn",
"DisplayName": "[LocalizedText Strings\\MovieConcessions:Popcorn_Name]",
"Description": "[LocalizedText Strings\\MovieConcessions:Popcorn_Description]",
"Price": 120,
"Texture": "LooseSprites\\Concessions",
"SpriteIndex": 8,
"ItemTags": [
"Hot",
"Salty"
]
},
{
"Id": "9",
"Name": "Fries",
"DisplayName": "[LocalizedText Strings\\MovieConcessions:Fries_Name]",
"Description": "[LocalizedText Strings\\MovieConcessions:Fries_Description]",
"Price": 100,
"Texture": "LooseSprites\\Concessions",
"SpriteIndex": 9,
"ItemTags": [
"Hot",
"Salty",
"Fatty"
]
},
{
"Id": "10",
"Name": "Chocolate Popcorn",
"DisplayName": "[LocalizedText Strings\\MovieConcessions:ChocolatePopcorn_Name]",
"Description": "[LocalizedText Strings\\MovieConcessions:ChocolatePopcorn_Description]",
"Price": 130,
"Texture": "LooseSprites\\Concessions",
"SpriteIndex": 10,
"ItemTags": [
"Hot",
"Sweet"
]
},
{
"Id": "11",
"Name": "Black Licorice",
"DisplayName": "[LocalizedText Strings\\MovieConcessions:BlackLicorice_Name]",
"Description": "[LocalizedText Strings\\MovieConcessions:BlackLicorice_Description]",
"Price": 25,
"Texture": "LooseSprites\\Concessions",
"SpriteIndex": 11,
"ItemTags": null
},
{
"Id": "12",
"Name": "Star Cookie",
"DisplayName": "[LocalizedText Strings\\MovieConcessions:StarCookie_Name]",
"Description": "[LocalizedText Strings\\MovieConcessions:StarCookie_Description]",
"Price": 150,
"Texture": "LooseSprites\\Concessions",
"SpriteIndex": 12,
"ItemTags": [
"Sweet"
]
},
{
"Id": "13",
"Name": "Jawbreaker",
"DisplayName": "[LocalizedText Strings\\MovieConcessions:Jawbreaker_Name]",
"Description": "[LocalizedText Strings\\MovieConcessions:Jawbreaker_Description]",
"Price": 250,
"Texture": "LooseSprites\\Concessions",
"SpriteIndex": 13,
"ItemTags": [
"Sweet",
"Candy"
]
},
{
"Id": "14",
"Name": "Salted Peanuts",
"DisplayName": "[LocalizedText Strings\\MovieConcessions:SaltedPeanuts_Name]",
"Description": "[LocalizedText Strings\\MovieConcessions:SaltedPeanuts_Description]",
"Price": 120,
"Texture": "LooseSprites\\Concessions",
"SpriteIndex": 14,
"ItemTags": [
"Salty"
]
},
{
"Id": "15",
"Name": "Hummus Snack Pack",
"DisplayName": "[LocalizedText Strings\\MovieConcessions:HummusSnackPack_Name]",
"Description": "[LocalizedText Strings\\MovieConcessions:HummusSnackPack_Description]",
"Price": 90,
"Texture": "LooseSprites\\Concessions",
"SpriteIndex": 15,
"ItemTags": [
"Healthy"
]
},
{
"Id": "16",
"Name": "Kale Smoothie",
"DisplayName": "[LocalizedText Strings\\MovieConcessions:KaleSmoothie_Name]",
"Description": "[LocalizedText Strings\\MovieConcessions:KaleSmoothie_Description]",
"Price": 120,
"Texture": "LooseSprites\\Concessions",
"SpriteIndex": 16,
"ItemTags": [
"Drink",
"Healthy"
]
},
{
"Id": "17",
"Name": "Apple Slices",
"DisplayName": "[LocalizedText Strings\\MovieConcessions:AppleSlices_Name]",
"Description": "[LocalizedText Strings\\MovieConcessions:AppleSlices_Description]",
"Price": 100,
"Texture": "LooseSprites\\Concessions",
"SpriteIndex": 17,
"ItemTags": [
"Sweet",
"Healthy"
]
},
{
"Id": "18",
"Name": "Panzanella Salad",
"DisplayName": "[LocalizedText Strings\\MovieConcessions:PanzanellaSalad_Name]",
"Description": "[LocalizedText Strings\\MovieConcessions:PanzanellaSalad_Description]",
"Price": 200,
"Texture": "LooseSprites\\Concessions",
"SpriteIndex": 18,
"ItemTags": [
"Gourmet",
"Healthy"
]
},
{
"Id": "19",
"Name": "Truffle Popcorn",
"DisplayName": "[LocalizedText Strings\\MovieConcessions:TrufflePopcorn_Name]",
"Description": "[LocalizedText Strings\\MovieConcessions:TrufflePopcorn_Description]",
"Price": 180,
"Texture": "LooseSprites\\Concessions",
"SpriteIndex": 19,
"ItemTags": [
"Gourmet",
"Salty"
]
},
{
"Id": "20",
"Name": "Cappuccino Mousse Cake",
"DisplayName": "[LocalizedText Strings\\MovieConcessions:CappuccinoMousseCake_Name]",
"Description": "[LocalizedText Strings\\MovieConcessions:CappuccinoMousseCake_Description]",
"Price": 220,
"Texture": "LooseSprites\\Concessions",
"SpriteIndex": 20,
"ItemTags": [
"Sweet",
"Gourmet"
]
},
{
"Id": "21",
"Name": "JojaCorn",
"DisplayName": "[LocalizedText Strings\\MovieConcessions:JojaCorn_Name]",
"Description": "[LocalizedText Strings\\MovieConcessions:JojaCorn_Description]",
"Price": 10,
"Texture": "LooseSprites\\Concessions",
"SpriteIndex": 21,
"ItemTags": [
"Joja"
]
},
{
"Id": "22",
"Name": "Stardrop Sorbet",
"DisplayName": "[LocalizedText Strings\\MovieConcessions:StardropSorbet_Name]",
"Description": "[LocalizedText Strings\\MovieConcessions:StardropSorbet_Description]",
"Price": 1250,
"Texture": "LooseSprites\\Concessions",
"SpriteIndex": 22,
"ItemTags": [
"Sweet",
"Gourmet"
]
},
{
"Id": "23",
"Name": "Rock Candy",
"DisplayName": "[LocalizedText Strings\\MovieConcessions:RockCandy_Name]",
"Description": "[LocalizedText Strings\\MovieConcessions:RockCandy_Description]",
"Price": 90,
"Texture": "LooseSprites\\Concessions",
"SpriteIndex": 23,
"ItemTags": [
"Sweet",
"Candy"
]
}
]
格式
列表中的每个代码块都对应一个单独的零食。每个代码块的数据格式如下:
键格式 | 描述 |
---|---|
ID | 此零食的唯一字符串ID。 |
Name | 此零食的内部名称。 |
DisplayName | 此零食在游戏中显示的名称。 |
Description | 此零食的描述。 |
Price | 此零食的价格,单位为 ![]() |
ItemTags | 一个标签列表,用于描述此零食,用于决定 NPC 对该零食的反应。原版标签为:
Sweet、Candy、Drink、Hot、Healthy、Cold、Joja、Sour、Fatty、Salty、Sandwich、Burger 和 Gourmet。 |
Texture | 包含此零食贴图的贴图集素材名称。 |
SpriteIndex | Texture 中此零食贴图的贴图集索引。0 代表左上角。 |
例如,下面的内容包添加了一个自定义的 'Pufferchick Pop' 零食,其具有自定义图像:
{
"Format": "2.7.0",
"Changes": [
{
"Action": "EditData",
"Target": "Data/Concessions",
"Entries": {
"{{ModId}}_PufferchickPop": {
"Id": "{{ModId}}_PufferchickPop", // must specify ID again when creating a new entry
"Name": "{{ModId}}_PufferchickPop", // best practice to match the ID, since it's sometimes used as an alternate ID
"DisplayName": "Pufferchick Pop",
"Description": "A cute cake pop shaped like a pufferchick.",
"Price": 25,
"Texture": "{{InternalAssetKey: assets/pufferchick-pop.png}}" // an image in your content pack
"SpriteIndex": 0
}
}
}
]
}
零食偏好
Data\ConcessionTastes.xnb 包含了决定 NPC 对零食偏好的数据。下面时原始数据:
数据
[
{
"Name": "Penny",
"LovedTags": [
"Cotton Candy"
],
"LikedTags": [
"Sweet"
],
"DislikedTags": [
"Sour"
]
},
{
"Name": "Pam",
"LovedTags": [
"Nachos"
],
"LikedTags": [
"Salty",
"Fatty",
"Joja"
],
"DislikedTags": [
"Healthy",
"Gourmet"
]
},
{
"Name": "George",
"LovedTags": [
"Black Licorice"
],
"LikedTags": [
"Salty"
],
"DislikedTags": [
"Sweet",
"Healthy"
]
},
{
"Name": "Alex",
"LovedTags": [
"Salmon Burger"
],
"LikedTags": [
"Salty",
"Hot"
],
"DislikedTags": [
"Candy"
]
},
{
"Name": "Evelyn",
"LovedTags": [
"Cappuccino Mousse Cake",
"Star Cookie"
],
"LikedTags": [
"Sweet"
],
"DislikedTags": [
"Salty",
"Hot"
]
},
{
"Name": "Pierre",
"LovedTags": [
"Personal Pizza"
],
"LikedTags": [
"Hot"
],
"DislikedTags": [
"Joja"
]
},
{
"Name": "Abigail",
"LovedTags": [
"Rock Candy"
],
"LikedTags": [
"Candy",
"Sweet"
],
"DislikedTags": [
"Healthy"
]
},
{
"Name": "Caroline",
"LovedTags": [
"Truffle Popcorn",
"Jasmine Tea"
],
"LikedTags": [
"Healthy"
],
"DislikedTags": [
"Fatty",
"Candy"
]
},
{
"Name": "Harvey",
"LovedTags": [
"Apple Slices",
"Jasmine Tea"
],
"LikedTags": [
"Healthy",
"Gourmet"
],
"DislikedTags": [
"Sweet",
"Fatty",
"Salty"
]
},
{
"Name": "Gus",
"LovedTags": [
"Gourmet"
],
"LikedTags": [
"Sandwich"
],
"DislikedTags": [
"Healthy",
"Candy"
]
},
{
"Name": "Lewis",
"LovedTags": [
"Jasmine Tea"
],
"LikedTags": [
"Sweet",
"Popcorn"
],
"DislikedTags": [
"Candy"
]
},
{
"Name": "Jodi",
"LovedTags": [
"Chocolate Popcorn"
],
"LikedTags": [
"Fatty",
"Hot",
"Salty"
],
"DislikedTags": [
"Candy",
"Truffle Popcorn",
"Healthy"
]
},
{
"Name": "Sam",
"LovedTags": [
"Personal Pizza"
],
"LikedTags": [
"Joja Cola",
"Candy"
],
"DislikedTags": [
"Healthy",
"Gourmet"
]
},
{
"Name": "Vincent",
"LovedTags": [
"Jawbreaker"
],
"LikedTags": [
"Sweet",
"Candy"
],
"DislikedTags": [
"Healthy",
"Gourmet"
]
},
{
"Name": "Kent",
"LovedTags": [
"Popcorn"
],
"LikedTags": [
"Salty"
],
"DislikedTags": [
"Candy"
]
},
{
"Name": "Clint",
"LovedTags": [
"Fries"
],
"LikedTags": [
"Fatty"
],
"DislikedTags": [
"Healthy"
]
},
{
"Name": "Emily",
"LovedTags": [
"Kale Smoothie"
],
"LikedTags": [
"Healthy",
"Gourmet"
],
"DislikedTags": [
"Fatty",
"Salty"
]
},
{
"Name": "Haley",
"LovedTags": [
"Cappuccino Mousse Cake"
],
"LikedTags": [
"Sweet"
],
"DislikedTags": [
"Fatty",
"Salty"
]
},
{
"Name": "Maru",
"LovedTags": [
"Star Cookie"
],
"LikedTags": [
"Fatty",
"Sweet"
],
"DislikedTags": [
"Cold"
]
},
{
"Name": "Sebastian",
"LovedTags": [
"Jasmine Tea"
],
"LikedTags": [
"Apple Slices",
"Salty",
"Hot"
],
"DislikedTags": [
"Gourmet",
"Kale Smoothie"
]
},
{
"Name": "Robin",
"LovedTags": [
"Salted Peanuts"
],
"LikedTags": [
"Salty",
"Fatty"
],
"DislikedTags": [
"Candy"
]
},
{
"Name": "Demetrius",
"LovedTags": [
"Popcorn"
],
"LikedTags": [
"Sweet"
],
"DislikedTags": [
"Healthy"
]
},
{
"Name": "Linus",
"LovedTags": [
"Salmon Burger"
],
"LikedTags": [
"Healthy",
"Gourmet"
],
"DislikedTags": [
"Joja"
]
},
{
"Name": "Dwarf",
"LovedTags": [
"Rock Candy"
],
"LikedTags": [
"Candy"
],
"DislikedTags": [
"Hot",
"Healthy",
"Gourmet",
"Salty",
"Fatty"
]
},
{
"Name": "Krobus",
"LovedTags": [
"Black Licorice"
],
"LikedTags": [],
"DislikedTags": [
"Sweet",
"Stardrop Sorbet"
]
},
{
"Name": "Wizard",
"LovedTags": [
"Black Licorice",
"Star Cookie"
],
"LikedTags": [
"Jasmine Tea",
"Candy"
],
"DislikedTags": [
"Hot",
"Healthy",
"Gourmet",
"Salty",
"Fatty"
]
},
{
"Name": "Marnie",
"LovedTags": [
"Ice Cream Sandwich"
],
"LikedTags": [
"Sweet",
"Popcorn"
],
"DislikedTags": [
"Salty"
]
},
{
"Name": "Shane",
"LovedTags": [
"Personal Pizza",
"Nachos",
"Joja",
"Hummus Snack Pack"
],
"LikedTags": [
"Fatty"
],
"DislikedTags": [
"Gourmet",
"Apple Slices",
"Kale Smoothie"
]
},
{
"Name": "Jas",
"LovedTags": [
"Sour Slimes"
],
"LikedTags": [
"Sweet",
"Candy"
],
"DislikedTags": [
"Healthy",
"Gourmet",
"Salty"
]
},
{
"Name": "Leah",
"LovedTags": [
"Panzanella Salad"
],
"LikedTags": [
"Healthy",
"Gourmet"
],
"DislikedTags": [
"Fatty",
"Salty"
]
},
{
"Name": "Sandy",
"LovedTags": [
"Cotton Candy"
],
"LikedTags": [
"Gourmet",
"Sweet"
],
"DislikedTags": [
"Candy"
]
},
{
"Name": "Elliott",
"LovedTags": [
"Truffle Popcorn",
"Cappuccino Mousse Cake"
],
"LikedTags": [
"Gourmet",
"Healthy"
],
"DislikedTags": [
"Candy",
"Fatty",
"Salty"
]
},
{
"Name": "Willy",
"LovedTags": [
"Salmon Burger"
],
"LikedTags": [
"Hot",
"Fatty",
"Salty"
],
"DislikedTags": [
"Candy",
"Healthy",
"Gourmet"
]
},
{
"Name": "*",
"LovedTags": [
"Stardrop Sorbet"
],
"LikedTags": [],
"DislikedTags": [
"Black Licorice",
"Joja"
]
}
]
格式
列表中的每个代码块都具有如下数据:
键名 | 描述 |
---|---|
Name | 此代码块应用的对象。可以为 NPC 的名字或 *,后者代表这种喜好会适用于所有 NPC。 |
LovedTags LikedTags DislikedTags |
最爱/喜欢/讨厌零食标签的列表。可以为 ItemTag 或特定零食的内部名称。为决定某个 NPC 对某种零食的偏好,游戏会统计每组匹配的标签数量,LovedTags 和 LikedTags 会贡献正分值,DislikedTags 会贡献负分值。购买最爱的零食会增加 50 点友谊值,喜欢的零食会增加 25 点友谊值,不喜欢的零食既不增加也不减少友谊值。 |
零食标签详解
黑甘草糖是唯一一种没有附加标签的零食。星之果实冰糕是普遍最爱的零食,而黑甘草糖、Joja 可乐以及 Joja 玉米是普遍不喜欢的零食。
标签 | 使用此标签的零食 |
---|---|
Burger | 鲑鱼汉堡 |
Candy | 棉花糖 大糖球 糖冰棍 酸味史莱姆 |
Cold | 冰淇淋三明治 Joja 可乐 |
Drink | 茉莉花茶 Joja 可乐 羽衣甘蓝汁 |
Fatty | 薯条 芝士玉米片 个人披萨 |
Gourmet | 卡布奇诺慕斯蛋糕 意式面包沙拉 星之果实冰糕 松露爆米花 |
Healthy | 苹果脆片 鹰嘴豆泥小吃包 茉莉花茶 羽衣甘蓝汁 意式面包沙拉 |
Hot | 巧克力爆米花 薯条 茉莉花茶 芝士玉米片 个人披萨 爆米花 |
Joja | Joja 可乐 Joja 玉米 |
Salty | 薯条 芝士玉米片 爆米花 盐渍花生 松露爆米花 |
Sandwich | 冰淇淋三明治 鲑鱼汉堡 |
Sour | 酸味史莱姆 |
Sweet | 苹果脆片 卡布奇诺慕斯蛋糕 巧克力爆米花 棉花糖 冰淇淋三明治 大糖球 糖冰棍 星形饼干 星之果实冰糕 |