bootched compression pass and also finishing up

This commit is contained in:
Shoofle 2024-01-27 12:52:01 -05:00
parent bd7fe037a7
commit fec1698236
14 changed files with 153 additions and 88 deletions

View File

@ -72,20 +72,20 @@ __gfx__
00000000000000055606060650000000000000000000000000000009900000000000000009090909000000003333333331110000000001133333333333333333 00000000000000055606060650000000000000000000000000000009900000000000000009090909000000003333333331110000000001133333333333333333
0000000000000000000000000000000054555545000999990099990033333333333333333333333300000113000000003111000000000000000000000001116c 0000000000000000000000000000000054555545000999990099990033333333333333333333333300000113000000003111000000000000000000000001116c
00000000000000000000000000000000545555450009444409999990333333333f33fff333333333000011130000000031111000000000000b00b00b6711176c 00000000000000000000000000000000545555450009444409999990333333333f33fff333333333000011130000000031111000000000000b00b00b6711176c
0088888000ccccc000bbbbb00022222054555545009444449999aa993333ffffffffffffffff11330000011100000000111000000000000000b0b0b066616667 0088888000ccccc000bbbbb00022222054555545009444449999aa9933334fff4ffff4ff4fff11330000011100000000111000000000000000b0b0b066616667
0088888000ccccc000bbbbb000222220545555450094444499999a991111ffffffffffffffff111100000111010000001100000000000101b0b0b0b016676661 0088888000ccccc000bbbbb000222220545555450094444499999a991111ffffffffffffffff111100000111010000001100000000000101b0b0b0b016676661
0088888000ccccc000bbbbb000222220545555450944444499999999111ffffccffccffcfffff11100000011110000000010000000001011b0b0b0b016676633 0088888000ccccc000bbbbb000222220545555450944444499999999111ffffccffccffcfff4f11100000011110000000010000000001011b0b0b0b016676633
0088888000ccccc000bbbbb000222220545555450944444499999999ffffffcccccccccccfffffff00000000111100000000000000000111b0b0b0b033663333 0088888000ccccc000bbbbb000222220545555450944444499999999fff4ffccccccccccc8ffffff00000000111100000000000000000111b0b0b0b033663333
0088888000ccccc000bbbbb0002222205455554594444444099999900fffcccccccccccccccffff00000000011100000000000000001111100b000b033333333 0088888000ccccc000bbbbb0002222205455554594444444099999900fffcccccccccccccccffff00000000011100000000000000001111100b000b033333333
0000000000000000000000000000000054555545999999990099990000fccccccccccccccccccf00000000003111000000000000000011130000000033333333 0000000000000000000000000000000054555545999999990099990000fccccccccccccccccccf00000000003111000000000000000011130000000033333333
000000000066660000000000000700000066660005555550000000000000000000000000055555500000000000000000009999a000000b000000000000000000 00000000006666000000000000070000006666000555555000000000000000000000aaa0055555500000000000000000009999a000000b000000000000000000
00000000000660000000000000007000066886605cccccc5670006c00009c000000000005555555500000000000000000999999a00000b000000000000000000 00000000000660000000000000007000066886605cccccc5670006c00009c000000aa0005555555500000000000000000999999a00000b000000000000000000
00000000000660000003033000555500068668605555555566606670009cc8000000000088888844000000000000000099999999a00000000000000000000000 00000000000660000003033000555500068668605555555566606670009cc8000078870088888844000000000000000099999999a00000000000000000000000
00066000006cc6000303b0000555655006666860544444450667660009ccccc00000000088448888000000000000000099999999a22222220009900000000000 00066000006cc6000303b0000555655006666860544444450667660009ccccc00088770088448888000000000000000099999999a22222220009900000000000
00d6660006cc7760030b3300055555500068866005444450066670000cc9ccc000000000888888880008800000dddd0056666666222222220009900000000110 00d6660006cc7760030b3300055555500068866005444450066670000cc9ccc000877800888888880008800000dddd0056666666222222220009900000000110
7d66666706cccc6003b00000055555500066660005444450006600000099cb0000000000448dd888008888000dddddd0566dd6665555555500999a0000011110 7d66666706cccc6003b00000055555500066660005444450006600000099cb0000778800448dd888008888000dddddd0566dd6665555555500999a0000011110
07766770006cc6000b333000005555000068600005444450006600000009900000000000888dd44808888880dddddddd566dd66666666665099999a001111111 07766770006cc6000b333000005555000068600005444450006600000009900000788700888dd44808888880dddddddd566dd66666666665099999a001111111
007770000006600000000000000000000066600000555500000000000000000000000000888dd88888888888dddddddd566dd666666666659999999a11111111 007770000006600000000000000000000066600000555500000000000000000000887700888dd88888888888dddddddd566dd666666666659999999a11111111
00044800000448000444444004444440004444000044440000000000555555555555555554444445566444455446648500228800024244907777777750000006 00044800000448000444444004444440004444000044440000000000555555555555555554444445566444455446648500228800024244907777777750000006
00448800004488000488ff400488ff400444444004444440000000005444444444444444544664455664444554466445022288802442449077b7766755066066 00448800004488000488ff400488ff400444444004444440000000005444444444444444544664455664444554466445022288802442449077b7766755066066
044f7f00044f7f0004f7f74004f7f7400244a4400244a4400000000054c4c4c4c4c4c4c454466445544446655444444522200888555555557bbb766755556666 044f7f00044f7f0004f7f74004f7f7400244a4400244a4400000000054c4c4c4c4c4c4c454466445544446655444444522200888555555557bbb766755556666
@ -158,18 +158,18 @@ c900c9000000000000000000009c009c000900999999000000009000009000005555555555555555
000000c990000099990000099c000000000909000909000000000009000000005555cccdacaccccacccccacacdcccccc111111111dddddddddddffffffff1111 000000c990000099990000099c000000000909000909000000000009000000005555cccdacaccccacccccacacdcccccc111111111dddddddddddffffffff1111
0000000cc99909000090999cc000000000099900099900000000000000000000555cccdaccaccccaccccaccacddccccc1111111111111fffffffffffffff1111 0000000cc99909000090999cc000000000099900099900000000000000000000555cccdaccaccccaccccaccacddccccc1111111111111fffffffffffffff1111
000000000ccc09999990ccc00000000000000000000000000000000000000000555cccdccccccccccccccccccddccccc1111111111111ffffffffffffffff111 000000000ccc09999990ccc00000000000000000000000000000000000000000555cccdccccccccccccccccccddccccc1111111111111ffffffffffffffff111
00000000000000000000000000000000000000005555555555555555500000002222222221111211111111112222222233333333333000000050003003333333 00000000000000000000000000000000222222225555555555555555522222222222222221111211111111112222222233333333333000000050003003333333
00000000009999999999990000000000888888855555555555555555558888882222222112111110000000011122222233333330000000500000000003333333 00000000009999999999990000000000222222255555555555555555552222222222222112111110000000011122222233333330000000500000000003333333
00000009999000000099099900000000000055555555444444555555555000002222111111110000022200000112222233333330000000000000000000033333 00000009999000000099099900000000222255555555444444555555555222222222111111110000022200000112222233333330000000000000000000033333
00000099000000000990000990000000000555555554844444844455555500002211111110000000000020000011221133333000050000000500005000003333 00000099000000000990000990000000222555555554844444844455555522222211111110000000000020000011221133333000050000000500005000003333
00000990000000009900000099000000888555555544844444844445555588881211111000000000000000000001111133333500000000000000000000050333 00000990000000009900000099000000222555555544844444844445555522221211111000000000000000000001111133333500000000000000000000050333
00009900000000009000000009000000005555544444844444844444555550001111110000000200000000000000011133330005000000000000000000003333 00009900000000009000000009000000225555544444844444844444555552221111110000000200000000000000011133330005000000000000000000003333
0000900999000009000000000900000905555548444484444484444445555000111112000f000020000200000000002133330000000000000000000000000333 0000900999000009000000000900000925555548444484444484444445555222111112000f000020000200000000002133330000000000000000000000000333
000090000900000900000000090000098555554844448499998844444555558811111200fff00002000020000000002233333000000000000000000000500333 000090000900000900000000090000092555554844448499998844444555552211111200fff00002000020000000002233333000000000000000000000500333
00009000090000900000000009000090055554484444994444994444445555002111120ffffff000000002000000000233330000000005000000000000003333 00009000090000900000000009000090255554484444994444994444445555222111120ffffff000000002000000000233330000000005000000000000003333
00009000990009900000000009000090055544484444944444894444845555002211120ffffffff0000000000020000033330000000000000000000000000333 00009000990009900000000009000090255544484444944444894444845555222211120ffffffff0000000000020000033330000000000000000000000000333
000099999000090000000000990009900555444844498444448494448445555012111203fff333ff000000000002000033333304444400444444500000500333 000099999000090000000000990009902555444844498444448494448445555212111203fff333ff000000000002000033333304444400444444500000500333
00000000000099000000000990000900555544484449844444849444844555502121112ffffffffff00000000002000033333334666444446664400000003333 00000000000099000000000990000900555544484449844444849444844555522121112ffffffffff00000000002000033333334666444446664400000003333
000000000000900000000990000099005555444844498444448494448444555521221123fff333ffff0000000000000033333334074444440744450000000333 000000000000900000000990000099005555444844498444448494448444555521221123fff333ffff0000000000000033333334074444440744450000000333
00000000000900000099990000009000555544484449844444849444844455552111112173f7177ffff000020000000033333334074444440744450000005333 00000000000900000099990000009000555544484449844444849444844455552111112173f7177ffff000020000000033333334074444440744450000005333
00000000000999999990000000009000555444484444944444894444844455552212112173fffff3ff3f00002002000033333334444466444444450000503333 00000000000999999990000000009000555444484444944444894444844455552212112173fffff3ff3f00002002000033333334444466444444450000503333
@ -324,12 +324,12 @@ __gff__
0000000000000000000080808080000000000000000000808080808000000080000000000000000000814040818040400000000000000080808080808181808000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000080808080000000000000000000808080808000000080000000000000000000814040818040400000000000000080808080808181808000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__map__ __map__
0202020202030011110010101000130000000000121200000000000000001010100000000000000011110000000000000000131300000000000000000012120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0202020202030011110010101000130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0202020202030000110000101000131313000000001200000000000000001000000000000000000011110000000000000000131300000000000000001212000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0202020202030000110000101000131313000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0202020202030000111100001000131300000000001212000000000000001000000000000000000000000000000000000000001300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0202020202030000111100001000131300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0202020202030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0202020202030012120010101000001100001200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0202020202030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0202020202030012120000100000111100121212000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0404040404000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0404040404000000000000000000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
@ -342,19 +342,19 @@ __map__
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
1d0b0b0b0b1f1f0b0b0b0b0b0b0b0b1b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1d0b0b0b0b1f1f0b0b0b0b0b0b0b0b1b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d0e3d2c2d0e0e0e0e00000e3c0e0f0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0d0e3d2c2d0e0e0e0e00000e3c0e0f0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d0f0f0e0e0e0e000000000e0e0e0e0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0d0f0f0e000e0e000000000e0e0e0e0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d00002a2b2f2a0f00000000000e000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0d00002a2b2f2a0f00000000000e000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d00003b3b3b3b00002e2b2a2b0e000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0d00003b3b3b3b00002e2b2a2b0e000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d00003a3a3a3900003e3a393b0e000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0d00003a3a3a3900003e3a393b0e000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d000000000e2a0f00000e2f2b0e000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0d000000000e2a0f00000e2f2b0e000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d00002b2f2a3b0028282b3a3900000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0d00002b2f2a3b0000002b3a3900000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d0f003a393a3a0037383b00000e0e0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0d0f003a393a3a0037383b00000e0e0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d0f000000000f002a2b0f000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0d0f000000000f002a2b0f000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d0000290f002a003a393d000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0d0000290f002a003a393d000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d0f0000000f3b000000000000000e0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0d0f0000000f3b000000000000000e0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d000000000f0000000f0f0f00001e0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0d000000000f0000000f0f0f001e1e0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d00000000000000000f003f001e1e0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0d00000000000000000f003f1e1e1e0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d0e0e000000000000000000001e000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0d0e0e0000000000000000001e1e1e0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
1a0a0a17181818190a0a0a0a0a0a0a1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1a0a0a17181818190a0a0a0a0a0a0a1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__sfx__ __sfx__
000100001f0701907014070100700e0700e0700e0700f07011070150601a06021060280601a6701767014670116700f6700c6700b670076700666005660046600365003640036400263002630026200160001600 000100001f0701907014070100700e0700e0700e0700f07011070150601a06021060280601a6701767014670116700f6700c6700b670076700666005660046600365003640036400263002630026200160001600
@ -363,3 +363,7 @@ __sfx__
000100000c62000620220000000000000220002100000000000002200021000000002300000000000000000000000000001100000000000000000000000000000000000000000000000000000000000000000000 000100000c62000620220000000000000220002100000000000002200021000000002300000000000000000000000000001100000000000000000000000000000000000000000000000000000000000000000000
000200000145001450014500144001440024500245002450034500345004450044400444005440054400744008440094200b4100e42014220182301c2302022024220282202a2202d2102e210302103121031250 000200000145001450014500144001440024500245002450034500345004450044400444005440054400744008440094200b4100e42014220182301c2302022024220282202a2202d2102e210302103121031250
00030000063500b3500e350123501535018350263500a3500f35015350193501e350213502a3500f35013350173501c35020350243502d3501f6501d6401b630196301762015620136201261010610106000e600 00030000063500b3500e350123501535018350263500a3500f35015350193501e350213502a3500f35013350173501c35020350243502d3501f6501d6401b630196301762015620136201261010610106000e600
000400000160001610026200463006630086400b6400c6400e64010640126301363013640136401364012650116500f6500e6500c6500a6500764005640036400364002630026300162000620006200061000600
0002000014650106500d65015650126500e6500e65016650126501065015640116201161008600086000000005600056000560005600056000560000000000000000000000000000000000000000000000000000
000200001b65010650076503960039600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
c60300003d0503d2503f6503e600296000f6000d6000a60022600216000000000000000000000000000000000000037000370000000000000000000000000000000002c0002c0000000000000000000000000000

View File

@ -10,17 +10,16 @@ story = {
got_gunpowder_book=false, got_gunpowder_book=false,
got_crystal_book=false, got_crystal_book=false,
} }
story.main = 1
library={} library={}
library.traits={ library.traits={
large={"large", 10,0, 3,3}, large={"large", 10,0, 3,3},
shiny={"shiny", 14,0, 3,3}, shiny={"shiny", 14,0, 3,3},
fine={"fine", 27,0, 3,2}, fine={"fine", 7,3, 2,2},
red={"red", 29,0, 3,3}, red={"red", 10,3, 3,2},
blue={"blue", 7,0, 3,3}, blue={"blue", 14,3, 2,3},
green={"green", 17,0, 3,3}, green={"green", 17,3, 3,2},
} }
library.item_blueprints = { library.item_blueprints = {
@ -48,14 +47,14 @@ library.item_blueprints = {
crystal = { crystal = {
title="crystal", title="crystal",
quality_base=40, quality_range=60, quality_base=40, quality_range=60,
trait_pool={"shiny", "large", "blue"}, trait_chance=50, trait_pool={"shiny", "large", "red"}, trait_chance=50,
description="cliff \ncrystals", description="cliff \ncrystals",
sprite=38, sprite=38,
}, },
sand = { sand = {
title="sand", title="sand",
quality_base=30, quality_range=40, quality_base=30, quality_range=40,
trait_pool={"fine"}, trait_chance=40, trait_pool={"fine", "red"}, trait_chance=40,
description="beach sand", description="beach sand",
sprite=32, sprite_recolor={[6]=15} sprite=32, sprite_recolor={[6]=15}
}, },
@ -108,6 +107,13 @@ library.item_blueprints = {
trait_pool={"shiny","large"}, trait_chance=40, trait_pool={"shiny","large"}, trait_chance=40,
description="starshine \ngem!~", description="starshine \ngem!~",
sprite=39, sprite=39,
},
fireworks={
title="fireworks",
quality_base=80, quality_range=30,
trait_pool={"large","red","green","blue","shiny"}, trait_chance=50,
description="box of \nfireworks",
sprite=40,
} }
} }
@ -124,7 +130,7 @@ library.recipes={
}, },
bomb={ bomb={
title="small bomb", title="small bomb",
ingredients={"gunpowder", "fuel"}, ingredients={"gunpowder", "gunpowder", "gunpowder"},
result="bomb" result="bomb"
}, },
gunpowder={ gunpowder={
@ -145,10 +151,15 @@ library.recipes={
starshine_gem={ starshine_gem={
title="starshine", title="starshine",
ingredients={"crystal", "polish", "reagent"}, ingredients={"crystal", "polish", "reagent"},
result="starshine_gem" result="starshine_gem",
},
fireworks={
title="fireworks",
ingredients={"gunpowder", "charcoal", "crystal"},
result="fireworks",
} }
} }
inventory = {} inventory = {}
grimoire = {library.recipes.distilled_water, library.recipes.potion} grimoire = {library.recipes.distilled_water}

View File

@ -198,5 +198,20 @@ phoebe: and thank you for playing my game!
atelier door: thank you for completing atelier phoebe! this was a labor of love and bafflement. why did i make an atelier fangame in pico-8? i couldn't tell you. but i hope you enjoyed it! you can find me online as shoofle in most places, most frequently @shoofle@beach.city. gimme a shout and tell me if you got to the end of this game! i hope you enjoyed it! atelier door: thank you for completing atelier phoebe! this was a labor of love and bafflement. why did i make an atelier fangame in pico-8? i couldn't tell you. but i hope you enjoyed it! you can find me online as shoofle in most places, most frequently @shoofle@beach.city. gimme a shout and tell me if you got to the end of this game! i hope you enjoyed it!
# sound effects to add # final touches 1/26
1. sounds for every gatherable done! 1. sounds for every gatherable
done charcoal 7
done herbs 8
done crystal 9
done sand 6
2. bandages?
3. more letters!
done! 4. background color of door sprite (make it better)
done! 5. green, fine traits doesn't have working tiles?
done! 6. make sure cursor resets when you're placing a new trait
done! 7. make it so you can unselect final traits.
1. green T piece is bugged?
2. when starting to finalize traits it sshould reset cursors
art for main screen, or "press z to start"

View File

@ -55,8 +55,10 @@ function crafting_choice_update()
requirement = current_recipe.ingredients[c.ing_slot] requirement = current_recipe.ingredients[c.ing_slot]
filtered_ingredients = filter_list( filtered_ingredients = filter_list(
inventory, inventory,
function(ing) return requirement == ing.title or contains(ing.tags, requirement) end function(ing)
) if contains(ingredients, ing) then return false end
return requirement == ing.title or contains(ing.tags, requirement)
end)
current_ingredient = filtered_ingredients[c.ing_idx] current_ingredient = filtered_ingredients[c.ing_idx]
@ -94,6 +96,7 @@ function crafting_choice_update()
final_trait_options = filter_list(traits, function(x) return x.active end) final_trait_options = filter_list(traits, function(x) return x.active end)
choosing_ingredient = false choosing_ingredient = false
placing_trait = false placing_trait = false
final_selected_traits = {}
finalizing = true finalizing = true
c.trait_slot = 0 c.trait_slot = 0
c.ing_idx = 1 c.ing_idx = 1
@ -143,6 +146,7 @@ function crafting_place_update()
add(traits, new_trait) add(traits, new_trait)
c.x, c.y = 0,0
if c.trait_slot < #current_ingredient.traits then if c.trait_slot < #current_ingredient.traits then
-- if there's more traits to set, then we should keep setting traits. -- if there's more traits to set, then we should keep setting traits.
@ -165,6 +169,7 @@ function crafting_place_update()
choosing_ingredient = false choosing_ingredient = false
placing_trait = false placing_trait = false
finalizing = true finalizing = true
final_selected_traits = {}
c.trait_slot = 0 c.trait_slot = 0
c.ing_slot = 1 c.ing_slot = 1
end end
@ -191,8 +196,10 @@ function crafting_finalize_update()
end end
local i = 2*c.y + c.x + 1 local i = 2*c.y + c.x + 1
if btnp(4) and not big_button and #final_selected_traits < 2 then if btnp(4) and not big_button then
if not contains(final_selected_traits, i) then if contains(final_selected_traits, i) then
del(final_selected_traits, i)
elseif #final_selected_traits < 2 then
add(final_selected_traits, i) add(final_selected_traits, i)
end end
end end

View File

@ -133,7 +133,7 @@ function draw_letter_on_paper(letter, x, y)
end end
screen_letters = {draw=letters_draw, update=letters_update} screen_letters = {draw=letters_draw, update=letters_update}
screen_letters = screen_conversation({{phoebe_portrait, [[oh jeez my pile of letters!]]}}, screen_letters = screen_conversation({{phoebe_portrait, "ah. pile of letters i should be reading."}},
function() function()
screen_letters = {draw=letters_draw, update=letters_update} screen_letters = {draw=letters_draw, update=letters_update}
change_screen(screen_letters) change_screen(screen_letters)

View File

@ -4,8 +4,8 @@ function title_update()
{phoebe_portrait, "hi! i'm phoebe! welcome to pilton!"}, {phoebe_portrait, "hi! i'm phoebe! welcome to pilton!"},
{phoebe_portrait, "this is a small town known for our fireworks festival."}, {phoebe_portrait, "this is a small town known for our fireworks festival."},
{phoebe_portrait, "or we would be. my grandfather, the town's best alchemist, died suddenly and"}, {phoebe_portrait, "or we would be. my grandfather, the town's best alchemist, died suddenly and"},
{phoebe_portrait, "hadn't taught me about fireworks. my mother is an adventurer instead"}, {phoebe_portrait, "hadn't taught me about fireworks. my mother took up adventuring"},
{phoebe_portrait, "of learning alchemy, so now there's no one to carry on the tradition."}, {phoebe_portrait, "instead of alchemy, so now there's no one to carry on the tradition."},
{phoebe_portrait, "the town's pretty broken up about it but i'm doing my best to carry on."}, {phoebe_portrait, "the town's pretty broken up about it but i'm doing my best to carry on."},
{phoebe_portrait, "but i only know the basics of picking herbs and purifying water."}, {phoebe_portrait, "but i only know the basics of picking herbs and purifying water."},
}, },

View File

@ -7,6 +7,7 @@ locations = {}
function crystals(story_state) function crystals(story_state)
add(inventory, make_item(library.item_blueprints.crystal)) add(inventory, make_item(library.item_blueprints.crystal))
change_screen(screen_conversation({{phoebe_portrait, "you can use these crystals for a lot."}})) change_screen(screen_conversation({{phoebe_portrait, "you can use these crystals for a lot."}}))
sfx(9)
toast("received crystal!") toast("received crystal!")
end end
locations["5,0"]=crystals locations["5,0"]=crystals
@ -42,19 +43,27 @@ function herbs(story_state)
change_screen(screen_conversation({ change_screen(screen_conversation({
{phoebe_portrait, "ooh, healing herbs! i'll take some. not more than 1/3 the patch though!"} {phoebe_portrait, "ooh, healing herbs! i'll take some. not more than 1/3 the patch though!"}
})) }))
sfx(8)
toast("received herbs!") toast("received herbs!")
end end
locations["13,12"] = herbs
locations["14,12"] = herbs locations["14,12"] = herbs
locations["14,13"] = herbs
locations["12,13"] = herbs
locations["13,13"] = herbs locations["13,13"] = herbs
locations["14,13"] = herbs
locations["12,14"] = herbs
locations["13,14"] = herbs locations["13,14"] = herbs
locations["14,14"] = herbs
function beach(story_state) function beach(story_state)
add(inventory, make_item(library.item_blueprints.sand)) add(inventory, make_item(library.item_blueprints.sand))
change_screen(screen_conversation({ change_screen(screen_conversation({
{phoebe_portrait, "how many grains of sand does it take before it becomes a pile?"} {phoebe_portrait, "how many grains of sand does it take before it becomes a pile?"}
})) }))
sfx(6)
toast("received sand!") toast("received sand!")
end end
@ -134,7 +143,7 @@ screen_walkaround = {update=walkaround_update, draw=walkaround_draw}
screen_walkaround = screen_conversation({ screen_walkaround = screen_conversation({
{phoebe_portrait, [[oh, and this is the town! all sorts of things to do here.]]}, {phoebe_portrait, [[oh, and this is the town! all sorts of things to do here.]]},
{phoebe_portrait, [[like i could go get water from the well to the east,]]}, {phoebe_portrait, [[like i could go get water from the well to the east,]]},
{phoebe_portrait, [[or go pick up some charcoal from the red house to the southwest!]]}, {phoebe_portrait, [[or pick up some charcoal from the red house to the southwest!]]},
{phoebe_portrait, [[just face a building and press ❎!]]} {phoebe_portrait, [[just face a building and press ❎!]]}
}, },
function() function()
@ -151,8 +160,8 @@ function work(f)
local vel = sqrt(f.vx*f.vx + f.vy*f.vy) local vel = sqrt(f.vx*f.vx + f.vy*f.vy)
f.x += f.vx f.x += f.vx
f.y += f.vy f.y += f.vy
f.vx = f.vx*(1-drag*velocity) f.vx = f.vx*(1-(drag*vel))
f.vy = f.vy*(1-drag*velocity) f.vy = f.vy*(1-(drag*vel))
return vel return vel
end end
@ -171,7 +180,8 @@ function fireworks_update()
}) end }) end
for f in all(fireworks) do for f in all(fireworks) do
if work(f) < 0.2 then local v = work(f)
if v < 0.2 or v > 100 then
for i=1,10 do for i=1,10 do
local theta = rnd(2) local theta = rnd(2)
add(new_stars,{ add(new_stars,{
@ -182,13 +192,15 @@ function fireworks_update()
c=f.c c=f.c
}) })
end end
sfx(8)
else else
add(new_fireworks, f) add(new_fireworks, f)
end end
end end
for s in all(stars) do for s in all(stars) do
if work(f) > 0.2 then local v = work(s)
if v > 0.2 and v < 100 then
add(new_stars, s) add(new_stars, s)
end end
end end

View File

@ -42,9 +42,10 @@ end
screen_workbench = {draw=bench_draw, update=bench_update} screen_workbench = {draw=bench_draw, update=bench_update}
screen_workbench = screen_conversation({ screen_workbench = screen_conversation({
{phoebe_portrait, [[this is my workbench.]]}, {phoebe_portrait, "this is my workbench."},
{phoebe_portrait, [[if you press left or right you can see my letters or recipes.]]}, {phoebe_portrait, "if you press left or right you can see my letters or recipes"},
{phoebe_portrait, [[then press ❎ to get back to the workbench.]]}, {phoebe_portrait, "and the drawer where i keep ingredients is up top."},
{phoebe_portrait, "you can press ❎ to back out to the workbench."},
}, },
function() function()
screen_workbench = {draw=bench_draw, update=bench_update} screen_workbench = {draw=bench_draw, update=bench_update}

View File

@ -7,6 +7,7 @@ function script_charcoal_seller(s) -- the brick house!
{phoebe_portrait, "yeah."}, {phoebe_portrait, "yeah."},
{seller_portrait, "well, you can take as much as you need.", function() {seller_portrait, "well, you can take as much as you need.", function()
add(inventory, make_item(library.item_blueprints.charcoal)) add(inventory, make_item(library.item_blueprints.charcoal))
sfx(7)
toast("received charcoal!") toast("received charcoal!")
end}, end},
})) }))
@ -15,6 +16,7 @@ function script_charcoal_seller(s) -- the brick house!
change_screen(screen_conversation({ change_screen(screen_conversation({
{seller_portrait, "hey phoebe. charcoal's out back.", function() {seller_portrait, "hey phoebe. charcoal's out back.", function()
add(inventory, make_item(library.item_blueprints.charcoal)) add(inventory, make_item(library.item_blueprints.charcoal))
sfx(7)
toast("received charcoal!") toast("received charcoal!")
end}, end},
})) }))
@ -22,19 +24,24 @@ function script_charcoal_seller(s) -- the brick house!
elseif s.main == 7 then elseif s.main == 7 then
if s.branch_hans == 1 then if s.branch_hans == 1 then
change_screen(screen_conversation({ change_screen(screen_conversation({
{seller_portrait, "if you get me the fireworks, i can set up a show. three boxes should do it."} {seller_portrait, "if you get me the fireworks, i can run the show. 3 boxes should do it."}
})) }))
s.branch_hans = 2 s.branch_hans = 2
elseif s.branch_hans == 2 then elseif s.branch_hans == 2 then
fireworks = player_has("fireworks", 3) fireworks = player_has("fireworks", 3)
if fireworks == nil then if fireworks == nil then
change_screen(screen_conversation({ change_screen(screen_conversation({
{seller_portrait, "i need three boxes of fireworks if we're gonna do a show."} {seller_portrait, "i need three boxes of fireworks if we're gonna do a show."},
{seller_portrait, "oh, and i figure you'll need charcoal still.", function()
add(inventory, make_item(library.item_blueprints.charcoal))
sfx(7)
toast("received charcoal!")
end}
})) }))
else else
change_screen(screen_conversation({ change_screen(screen_conversation({
{seller_portrait, "this looks good. fantastic quality."}, {seller_portrait, "this looks good. fantastic quality."},
{seller_portrait, "i'll set up the show and meet you at the library for viewing!"}, {seller_portrait, "i'll set up the show and meet you at the library for viewing!"}
})) }))
for x in all(fireworks) do del(inventory, x) end for x in all(fireworks) do del(inventory, x) end
@ -47,6 +54,9 @@ function script_charcoal_seller(s) -- the brick house!
change_screen(screen_conversation({ change_screen(screen_conversation({
{seller_portrait, "i'll meet you at the library for viewing when you're ready."}, {seller_portrait, "i'll meet you at the library for viewing when you're ready."},
})) }))
add(inventory, make_item(library.item_blueprints.charcoal))
sfx(7)
toast("received charcoal!")
end -- end hans branch end -- end hans branch
elseif story_state.main == 8 then elseif story_state.main == 8 then
change_screen(screen_conversation({ change_screen(screen_conversation({
@ -54,5 +64,8 @@ function script_charcoal_seller(s) -- the brick house!
})) }))
elseif story_state.main == 9 then elseif story_state.main == 9 then
change_screen(screen_conversation({{door_portrait, "[no one is here.]"}})) change_screen(screen_conversation({{door_portrait, "[no one is here.]"}}))
sfx(7)
add(inventory, make_item(library.item_blueprints.charcoal))
toast("received charcoal!")
end end
end end

View File

@ -22,7 +22,8 @@ function script_lenore(story_state)
del(inventory, water) del(inventory, water)
add(inventory, make_item(library.item_blueprints.reagent)) add(inventory, make_item(library.item_blueprints.reagent))
add(grimoire, library.recipes.reagent) add(grimoire, library.recipes.reagent)
toast("received reagent recipe!") add(grimoire, library.recipes.potion)
toast("received recipes!")
end} end}
})) }))
story_state.main = 2 story_state.main = 2
@ -42,20 +43,21 @@ function script_lenore(story_state)
if story_state.branch_lenore == 1 then if story_state.branch_lenore == 1 then
change_screen(screen_conversation({ change_screen(screen_conversation({
{lenore_portrait, [[whoa, you can't just set off fireworks willy-nilly.]]}, {lenore_portrait, [[whoa, you can't just set off fireworks willy-nilly.]]},
{lenore_portrait, "get me 3 distilled water for cleaning bandages and 3 buckets of well water for fire."}, {lenore_portrait, "get me 3 distilled water for cleaning bandages"},
{lenore_portrait, "and 3 buckets of well water for fire."},
{phoebe_portrait, [[you got it!!]]}, {phoebe_portrait, [[you got it!!]]},
})) }))
story_state.branch_lenore = 2 story_state.branch_lenore = 2
elseif story_state.branch_lenore == 2 then elseif story_state.branch_lenore == 2 then
local clean_water = player_has("distilled water", 3) local clean_water = player_has("pure water", 3)
local well_water = player_has("well water", 3) local well_water = player_has("well water", 3)
if clean_water == nil or well_water == nil then if clean_water == nil or well_water == nil then
change_screen(screen_conversation({ change_screen(screen_conversation({
{lenore_portrait, [[i need 3 clean bandages and a distilled water.]]} {lenore_portrait, [[i need 3 distilled water and 3 buckets of well water.]]}
})) }))
else else
change_screen(screen_conversation({ change_screen(screen_conversation({
{lenore_portrait, [[thanks. this looks good. i'll meet you at the library for viewing when you're ready.]]} {lenore_portrait, [[thanks. i'll meet you at the library for viewing when you're ready.]]}
})) }))
for x in all(clean_water) do del(inventory, x) end for x in all(clean_water) do del(inventory, x) end
for x in all(well_water) do del(inventory, x) end for x in all(well_water) do del(inventory, x) end

View File

@ -38,44 +38,45 @@ function script_library(s)
{phoebe_portrait, "hmm... \nhmm..."}, {phoebe_portrait, "hmm... \nhmm..."},
{phoebe_portrait, "hmm... \nhmm... \nhmm..."}, {phoebe_portrait, "hmm... \nhmm... \nhmm..."},
{phoebe_portrait, [[okay so i need raw crystal, polishing powder, and reagent.]], function() {phoebe_portrait, [[okay so i need raw crystal, polishing powder, and reagent.]], function()
add(grimoire, library.recipes.starshine_crystal)
add(grimoire, library.recipes.polishing_powder) add(grimoire, library.recipes.polishing_powder)
add(grimoire, library.recipes.starshine_gem)
toast("received recipes!")
end}, end},
{phoebe_portrait, "i can get crystal from the cliffs and sand from the beach!"}, {phoebe_portrait, "i can get crystal from the cliffs and sand from the beach!"},
})) }))
s.got_crystal_book = true s.got_crystal_book = true
else else
change_screen(screen_conversation({ change_screen(screen_conversation({
{phoebe_portrait, "thanks for the book, \nstef!"}, {phoebe_portrait, "thanks for the book, stef!"},
{librarian_portrait, [[that's my job!]]}, {librarian_portrait, [[that's my job!]]},
})) }))
end end
elseif s.main == 7 then elseif s.main == 7 then
change_screen(screen_conversation({ change_screen(screen_conversation({
{librarian_portrait, "fireworks festival,\nhuh? well, the library\nwill be a great\nplace to watch from!"} {librarian_portrait, "fireworks festival, huh? well, this would be a great place to watch from!"}
})) }))
elseif s.main == 8 or s.main == 9 then elseif s.main == 8 or s.main == 9 then
change_screen(screen_conversation({ change_screen(screen_conversation({
{librarian_portrait, [[a fireworks festival after all, huh?]]}, {librarian_portrait, [[a fireworks festival after all, huh?]]},
{neighbor_portrait, [[i thought it was done for after the old alchemist passed away, rest his soul.]]}, {neighbor_portrait, [[i thought it was done for after the alchemist passed away, rest his soul.]]},
{seller_portrait, [[well it looks like phoebe took up the reins!]]}, {seller_portrait, [[well it looks like phoebe took up the reins!]]},
{phoebe_portrait, [[aw shucks!]]}, {phoebe_portrait, [[aw shucks!]]},
{lenore_portrait, [[thanks for making this happen, lil alchemist.]]}, {lenore_portrait, [[thanks for making this happen, lil alchemist.]]},
{neighbor_portrait, [[thanks, phoebe!]]}, {neighbor_portrait, [[thanks, phoebe!]]},
{seller_portrait, [[thanks, phoebe.]]}, {seller_portrait, [[thanks, phoebe.]]},
{phoebe_portrait, [[thank you all for helping out so much. i couldn't have done it without you.]]}, {phoebe_portrait, [[thank you all for helping so much. i couldn't have done it without you.]]},
}, nil, {update=fireworks_update, draw=fireworks_draw})) }, nil, {update=fireworks_update, draw=fireworks_draw}))
screen_walkaround = {update=fireworks_update, draw=fireworks_draw} screen_walkaround = {update=fireworks_update, draw=fireworks_draw}
screen_workbench = screen_conversation({ screen_workbench = screen_conversation({
{phoebe_portrait, "thank you for completing atelier phoebe!"}, {phoebe_portrait, "thank you for completing atelier phoebe!"},
{phoebe_portrait, "this was a labor of love and bafflement."}, {phoebe_portrait, "this was a labor of love and bafflement."},
{phoebe_portrait, "why did i make an atelier fangame in pico-8? i couldn't tell you."}, {phoebe_portrait, "why did i make an atelier fangame in pico-8? i dunno."},
{phoebe_portrait, "but i hope you enjoyed it! you can find me online as shoofle"}, {phoebe_portrait, "but i hope you enjoyed it! you can find me online as shoofle."},
{phoebe_portrait, "lately i spend my time @shoofle@beach.city."}, {phoebe_portrait, "lately i spend my time @shoofle\n@beach.city."},
{phoebe_portrait, "gimme a shout if you enjoyed atelier phoebe!"}, {phoebe_portrait, "gimme a shout if you enjoyed atelier phoebe!"},
}, },
function() function()
screen_workbench = {update=workbench_update, draw=workbench_draw} screen_workbench = {update=bench_update, draw=bench_draw}
change_screen(screen_workbench) change_screen(screen_workbench)
end, end,
screen_workbench) screen_workbench)

View File

@ -11,6 +11,7 @@ function script_neighbor(s)
{phoebe_portrait, [[hello! i was asked to bring you a potion!]]}, {phoebe_portrait, [[hello! i was asked to bring you a potion!]]},
{neighbor_portrait, [[that's so kind! i injured my back trying to get a rock out]]}, {neighbor_portrait, [[that's so kind! i injured my back trying to get a rock out]]},
{neighbor_portrait, [[of my field. this potion will fix me right up.]]}, {neighbor_portrait, [[of my field. this potion will fix me right up.]]},
{neighbor_portrait, "i'm brigitte, by the way."},
{neighbor_portrait, [[... hey, you're an alchemist, right?]]}, {neighbor_portrait, [[... hey, you're an alchemist, right?]]},
{phoebe_portrait, [[of course!]]}, {phoebe_portrait, [[of course!]]},
{neighbor_portrait, [[i've heard that alchemists can make explosives. a bomb could get rid of]]}, {neighbor_portrait, [[i've heard that alchemists can make explosives. a bomb could get rid of]]},

View File

@ -53,7 +53,7 @@ time!
local crystal = player_has("starshine", 1, {"red", "shiny"}) local crystal = player_has("starshine", 1, {"red", "shiny"})
if crystal == nil then if crystal == nil then
change_screen(screen_conversation({ change_screen(screen_conversation({
{door_portrait, "[there is no answer to your knocking.]"} {door_portrait, "starshine gem. red and shiny."}
})) }))
else else
change_screen(screen_conversation({ change_screen(screen_conversation({

View File

@ -64,10 +64,7 @@ function make_item(blueprint)
--end --end
item = deepcopy(blueprint) item = deepcopy(blueprint)
--item.sprite_recolor = blueprint.sprite_recolor
--item.sprite = blueprint.sprite
--item.title = blueprint.title
--item.description = blueprint.description
item.quality = flr(blueprint.quality_base + rnd(blueprint.quality_range)) item.quality = flr(blueprint.quality_base + rnd(blueprint.quality_range))
if blueprint.tags then item.tags = deepcopy(blueprint.tags) if blueprint.tags then item.tags = deepcopy(blueprint.tags)
else item.tags = {} end else item.tags = {} end
@ -76,7 +73,8 @@ function make_item(blueprint)
add(item.traits, rnd(blueprint.trait_pool)) add(item.traits, rnd(blueprint.trait_pool))
end end
if rnd(100) < blueprint.trait_chance then if rnd(100) < blueprint.trait_chance then
add(item.traits, rnd(blueprint.trait_pool)) local t = rnd(blueprint.trait_pool)
if not contains(item.traits, t) then add(item.traits, t) end
end end
return item return item
end end