模组:農作物數據

出自Stardew Valley Wiki
跳至導覽 跳至搜尋

目錄

這個頁面解釋了遊戲如何存儲和解析農作物數據。這是模組開發人員的高級指南。

原始數據

農作物數據儲存在Content\Data\Crops.xnb中,可以解壓縮以編輯。作為參考,以下為1.5.1的原始數據:

數據 
{
  "472": "1 1 1 1/spring/0/24/-1/0/false/false/false",
  "473": "1 1 1 3 4/spring/1/188/3/0/false/true/false",
  "474": "1 2 4 4 1/spring/2/190/-1/0/false/false/false",
  "475": "1 1 1 2 1/spring/3/192/-1/0/true 1 1 0 .2/false/false",
  "476": "1 1 1 1/spring/4/248/-1/0/false/false/false",
  "273": "1 2 2 3/spring/34/271/-1/1/true 1 1 10 .1/false/false",
  "831": "1 2 3 4/summer/42/830/-1/0/false/false/false",
  "477": "1 2 2 1/spring/5/250/-1/1/false/false/false",
  "478": "2 2 2 3 4/spring/6/252/-1/0/false/false/false",
  "745": "1 1 2 2 2/spring/36/400/4/0/true 1 1 0 .02/false/false",
  "479": "1 2 3 3 3/summer/7/254/-1/0/false/false/false",
  "480": "2 2 2 2 3/summer/8/256/4/0/true 1 1 0 .05/false/false",
  "481": "1 3 3 4 2/summer/9/258/4/0/true 3 3 0 .02/false/false",
  "482": "1 1 1 1 1/summer/10/260/3/0/true 1 1 0 .03/false/false",
  "483": "1 1 1 1/summer fall/11/262/-1/1/false/false/false",
  "484": "2 1 2 1/summer/12/264/-1/0/false/false/false",
  "485": "2 1 2 2 2/summer/13/266/-1/0/false/false/false",
  "486": "2 3 2 3 3/summer/14/268/-1/0/false/false/false",
  "833": "1 3 3 4 3/summer/43/832/7/0/false/false/false",
  "433": "1 2 2 3 2/spring summer/40/433/2/0/true 4 4 0 .02/false/false",
  "802": "2 2 2 3 3/spring summer fall winter/41/90/3/0/false/false/false",
  "487": "2 3 3 3 3/summer fall/15/270/4/0/false/false/false",
  "302": "1 1 2 3 4/summer/37/304/1/0/false/true/false",
  "301": "1 1 2 3 3/fall/38/398/3/0/false/true/false",
  "299": "1 2 2 2/fall/39/300/-1/1/false/false/false",
  "488": "1 1 1 1 1/fall/16/272/5/0/true 1 1 0 .002/false/false",
  "489": "2 2 1 2 1/fall/17/274/-1/0/false/false/false",
  "490": "1 2 3 4 3/fall/18/276/-1/0/false/false/false",
  "491": "1 1 1 1/fall/19/278/-1/0/false/false/false",
  "492": "1 3 3 3/fall/20/280/-1/0/false/false/false",
  "493": "1 2 1 1 2/fall/21/282/5/0/true 2 2 0 .1/false/false",
  "494": "1 1 2 2/fall/22/284/-1/0/false/false/false",
  "499": "2 7 7 7 5/spring summer fall/24/454/7/0/false/false/false",
  "427": "1 1 2 2/spring/26/591/-1/0/false/false/true 255 186 255 223 191 255 255 246 0 255 80 0 255 158 193",
  "429": "1 2 2 2/spring/27/597/-1/0/false/false/true 35 127 255 109 131 255 112 207 255 191 228 255 94 121 255 40 150 255",
  "453": "1 2 2 2/summer/28/376/-1/0/false/false/true 255 0 0 254 254 254 255 170 0",
  "455": "1 2 3 2/summer/29/593/-1/0/false/false/true 0 208 255 99 255 210 255 212 0 255 144 122 255 0 238 206 91 255",
  "431": "1 2 3 2/summer fall/30/421/-1/0/false/false/false",
  "425": "1 4 4 3/fall/31/595/-1/0/false/false/true 187 0 255 119 137 255 71 227 255 255 127 144 205 178 255 140 119 255",
  "347": "2 4 6 6 6/fall/32/417/-1/0/false/false/false",
  "495": "3 4/spring/23/16/-1/0/false/false/false",
  "496": "3 4/summer/23/396/-1/0/false/false/false",
  "497": "3 4/fall/23/404/-1/0/false/false/false",
  "498": "3 4/winter/23/412/-1/0/false/false/false",
  "885": "1 2 2 2/spring summer fall winter/44/771/-1/1/true 4 7 0 .01/false/false",
  "890": "1 1 1 1/spring summer fall winter/47/889/-1/0/false/false/false",
}

格式

索引 字段 示例
鍵值 種子索引 (參見ObjectInformation.xnb) 473 (青豆種子) 455 (夏季亮片種子)
0 每個生長階段的天數 1 1 1 3 4 1 2 3 2
1 生長季節 spring (春季) summer (夏季)
2 Sprite Sheet 中的索引 (Content\TileSheets\Crops.xnb) 1 29
3 收穫作物的索引 (參見ObjectInformation.xnb) 188 (青豆) 593 (夏季亮片)
4 收穫後重新生長 3 -1
5 收穫方式 0 0
6 額外收穫的機會 true 1 2 6 0 false
7 棚架作物 true false
8 色調顏色 false true 0 208 255 99 255 210 255 212 0 255 144 122 255 0 238 206 91 255

每個生長階段的天數

生長過程中每個可視階段的天數。最後階段將在指定的天數後可收穫。

請注意,肥料/植物學家只能將每個生長階段去除至多3天。如果生長階段很長,加速效果可能會有奇怪的表現。

收穫後重新生長

-1 表示一次性作物,其它數字表示作物可以再次收穫的天數。

收穫方式

鐮刀為1,直接收穫為0

額外收穫的機會

若此值為true,則後面的數字將解析為:

  1. minHarvest (最小收穫數量)
  2. maxHarvest (最大收穫數量)
  3. maxHarvestIncreasePerFarmingLevel (耕種等級效果)
  4. chanceForExtraCrops (獲得額外作物概率)

遊戲使用Crops.cs::harvest()中的如下代碼確定單次收穫時獲得的作物數量,其中num是獲得的作物數量。

if (this.minHarvest > 1 || this.maxHarvest > 1)
    num = random.Next(this.minHarvest, Math.Max(this.minHarvest + 1, this.maxHarvest + 1 + Game1.player.FarmingLevel / this.maxHarvestIncreasePerFarmingLevel));

if (this.chanceForExtraCrops > 0.0)
    while (random.NextDouble() < Math.Min(0.9, this.chanceForExtraCrops))
        num++;

if (random.NextDouble() < (double)Game1.dailyLuck / 1200.0 + 9.9999997473787516E-05)
    num *= 2;

chanceForExtraCrops 中的值可能會為收穫增加額外的作物,計算時與其它3個變量無關。例如,除了作為標準收穫的土豆外,每次收穫土豆種子(475)有約20%的機會產生額外的土豆。除了標準收穫的3顆藍莓外,每次收穫藍莓種子(481)都有約2%的機會產生額外的藍莓。

棚架作物

對於棚架作物(葡萄、啤酒花、青豆)為true,對於所有其他作物為false。

色調顏色

如果色調顏色為true,則後面是rgb()值字符串。在上面的示例中,夏季亮片可以是6種不同顏色之一:

  • rgb(0, 208, 255)
  • rgb(99, 255, 210)
  • rgb(255, 212, 0)
  • rgb(255, 144, 122)
  • rgb(255, 0, 238)
  • rgb(206, 91, 255)