diff --git a/config/fxdata/columnset.toml b/config/fxdata/columnset.toml index 4168256b18..dfe47c4431 100644 --- a/config/fxdata/columnset.toml +++ b/config/fxdata/columnset.toml @@ -10284,4 +10284,685 @@ Height = 5 SolidMask = 25 FloorTexture = 179 Orientation = 0 -Cubes = [148,0,0,481,160,0,0,0] \ No newline at end of file +Cubes = [148,0,0,481,160,0,0,0] + + +[column1286] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [25, 10, 483, 482, 482, 0, 0, 0] + +[column1287] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [25, 10, 482, 483, 482, 0, 0, 0] + +[column1288] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [25, 10, 482, 484, 483, 0, 0, 0] + +[column1289] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [25, 10, 483, 482, 484, 0, 0, 0] + +[column1290] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [25, 10, 483, 484, 484, 0, 0, 0] + +[column1291] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [25, 10, 483, 482, 483, 0, 0, 0] + +[column1292] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [25, 10, 482, 482, 482, 0, 0, 0] + +[column1293] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [25, 10, 484, 482, 484, 0, 0, 0] + +[column1294] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [25, 10, 482, 483, 483, 0, 0, 0] + +[column1295] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [25, 10, 483, 483, 483, 0, 0, 0] + +[column1296] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [25, 10, 484, 484, 482, 0, 0, 0] + +[column1297] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [25, 10, 484, 484, 483, 0, 0, 0] + +[column1298] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [25, 10, 484, 482, 483, 0, 0, 0] + +[column1299] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [25, 10, 482, 482, 483, 0, 0, 0] + +[column1300] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [25, 10, 484, 484, 484, 0, 0, 0] + +[column1301] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [25, 10, 484, 483, 483, 0, 0, 0] + +[column1302] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [25, 10, 483, 483, 484, 0, 0, 0] + +[column1303] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [25, 10, 484, 483, 484, 0, 0, 0] + +[column1304] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [25, 10, 482, 483, 484, 0, 0, 0] + +[column1305] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [25, 10, 484, 482, 482, 0, 0, 0] + +[column1306] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [25, 10, 482, 482, 484, 0, 0, 0] + +[column1307] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [25, 10, 482, 484, 484, 0, 0, 0] + +[column1308] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [25, 10, 483, 484, 483, 0, 0, 0] + +[column1309] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [25, 10, 484, 483, 482, 0, 0, 0] + +[column1310] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [25, 10, 482, 484, 482, 0, 0, 0] + +[column1311] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [25, 10, 483, 484, 482, 0, 0, 0] + +[column1312] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [25, 10, 483, 483, 482, 0, 0, 0] + +[column1313] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [42, 486, 487, 486, 485, 0, 0, 0] + +[column1314] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [42, 487, 486, 487, 487, 0, 0, 0] + +[column1315] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [42, 486, 487, 485, 485, 0, 0, 0] + +[column1316] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [42, 486, 486, 487, 486, 0, 0, 0] + +[column1317] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [42, 485, 485, 487, 486, 0, 0, 0] + +[column1318] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [42, 487, 487, 487, 486, 0, 0, 0] + +[column1319] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [42, 486, 486, 485, 485, 0, 0, 0] + +[column1320] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [42, 485, 487, 486, 485, 0, 0, 0] + +[column1321] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [42, 487, 486, 485, 487, 0, 0, 0] + +[column1322] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [42, 485, 486, 486, 487, 0, 0, 0] + +[column1323] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 28 +Orientation = 0 +Cubes = [42, 484, 483, 483, 484, 0, 0, 0] + +[column1324] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [42, 487, 487, 485, 487, 0, 0, 0] + +[column1325] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [42, 486, 485, 485, 486, 0, 0, 0] + +[column1326] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [42, 486, 485, 486, 486, 0, 0, 0] + +[column1327] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [42, 486, 486, 485, 487, 0, 0, 0] + +[column1328] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [42, 487, 486, 487, 485, 0, 0, 0] + +[column1329] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [42, 487, 487, 486, 485, 0, 0, 0] + +[column1330] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [42, 485, 485, 487, 487, 0, 0, 0] + +[column1331] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [42, 487, 487, 487, 485, 0, 0, 0] + +[column1332] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [42, 486, 485, 485, 485, 0, 0, 0] + +[column1333] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [42, 486, 485, 485, 487, 0, 0, 0] + +[column1334] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [42, 485, 486, 487, 486, 0, 0, 0] + +[column1335] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [38, 482, 484, 482, 482, 0, 0, 0] + +[column1336] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [38, 483, 483, 482, 483, 0, 0, 0] + +[column1337] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 28 +Orientation = 0 +Cubes = [38, 483, 482, 483, 482, 0, 0, 0] + +[column1338] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 28 +Orientation = 0 +Cubes = [38, 484, 482, 484, 484, 0, 0, 0] + +[column1339] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 29 +Orientation = 0 +Cubes = [38, 482, 484, 482, 483, 0, 0, 0] + +[column1340] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 29 +Orientation = 0 +Cubes = [38, 482, 484, 484, 482, 0, 0, 0] + +[column1341] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 28 +Orientation = 0 +Cubes = [38, 483, 484, 483, 483, 0, 0, 0] + +[column1342] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 29 +Orientation = 0 +Cubes = [38, 483, 484, 484, 483, 0, 0, 0] + +[column1343] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [38, 483, 483, 482, 482, 0, 0, 0] + +[column1344] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [38, 483, 483, 484, 484, 0, 0, 0] + +[column1345] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [38, 482, 482, 482, 484, 0, 0, 0] + +[column1346] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [38, 483, 484, 483, 484, 0, 0, 0] + +[column1347] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [38, 482, 484, 483, 483, 0, 0, 0] + +[column1348] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [38, 482, 482, 483, 483, 0, 0, 0] + +[column1349] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [38, 482, 483, 483, 482, 0, 0, 0] + +[column1350] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [38, 484, 482, 482, 483, 0, 0, 0] + +[column1351] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [38, 483, 484, 482, 483, 0, 0, 0] + +[column1352] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [38, 484, 484, 484, 482, 0, 0, 0] + +[column1353] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 28 +Orientation = 0 +Cubes = [38, 482, 482, 483, 484, 0, 0, 0] + +[column1354] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [38, 483, 483, 483, 483, 0, 0, 0] + +[column1355] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [38, 483, 484, 483, 482, 0, 0, 0] + +[column1356] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [38, 484, 483, 484, 484, 0, 0, 0] + +[column1357] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [42, 487, 486, 486, 485, 0, 0, 0] + +[column1358] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [38, 483, 484, 484, 484, 0, 0, 0] + +[column1359] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [42, 487, 486, 485, 486, 0, 0, 0] + +[column1360] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [42, 487, 487, 485, 486, 0, 0, 0] + +[column1361] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [38, 482, 482, 483, 482, 0, 0, 0] + +[column1362] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [38, 484, 484, 483, 483, 0, 0, 0] + +[column1363] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [38, 482, 483, 483, 484, 0, 0, 0] + +[column1364] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [38, 483, 482, 484, 483, 0, 0, 0] + +[column1365] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [38, 483, 484, 482, 482, 0, 0, 0] + +[column1366] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [38, 482, 484, 483, 482, 0, 0, 0] + +[column1367] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [42, 487, 485, 485, 486, 0, 0, 0] + +[column1368] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [42, 486, 485, 486, 487, 0, 0, 0] + +[column1369] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [42, 486, 487, 486, 487, 0, 0, 0] + +[column1370] +Lintel = 0 +Height = 5 +SolidMask = 31 +FloorTexture = 27 +Orientation = 0 +Cubes = [42, 486, 487, 487, 485, 0, 0, 0] diff --git a/config/fxdata/cubes.cfg b/config/fxdata/cubes.cfg index 1134ad4627..f9455e900e 100644 --- a/config/fxdata/cubes.cfg +++ b/config/fxdata/cubes.cfg @@ -2105,3 +2105,51 @@ Textures = 1032 1032 1032 1032 1032 0 [cube481] Name = DOOR_MIDAS_BR Textures = 1031 1033 1033 1031 1033 0 + +[cube482] +Name = DENSE_GOLD1 +Textures = 592 592 592 592 592 592 + +[cube483] +Name = DENSE_GOLD2 +Textures = 593 593 593 593 593 593 + +[cube484] +Name = DENSE_GOLD3 +Textures = 594 594 594 594 594 594 + +[cube485] +Name = DENSE_GOLD_NEAR_LAVA1 +Textures = 595 595 595 595 592 595 + +[cube486] +Name = DENSE_GOLD_NEAR_LAVA2 +Textures = 596 596 596 596 593 596 + +[cube487] +Name = DENSE_GOLD_NEAR_LAVA3 +Textures = 597 597 597 597 594 597 + +[cube488] +Name = INTERMEDIATE_GOLD1 +Textures = 598 598 598 598 598 598 + +[cube489] +Name = INTERMEDIATE_GOLD2 +Textures = 599 599 599 599 599 599 + +[cube490] +Name = INTERMEDIATE_GOLD3 +Textures = 600 600 600 600 600 600 + +[cube491] +Name = INTERMEDIATE_GOLD_NEAR_LAVA1 +Textures = 601 601 601 601 598 601 + +[cube492] +Name = INTERMEDIATE_GOLD_NEAR_LAVA2 +Textures = 602 602 602 602 599 602 + +[cube493] +Name = INTERMEDIATE_GOLD_NEAR_LAVA3 +Textures = 603 603 603 603 600 603 \ No newline at end of file diff --git a/config/fxdata/rules.cfg b/config/fxdata/rules.cfg index 33bb284984..40f01db648 100644 --- a/config/fxdata/rules.cfg +++ b/config/fxdata/rules.cfg @@ -2,8 +2,6 @@ ; Note that changing .cfg files will NOT affect saved games - only newly started maps. [game] -; Amount of gold stored in undigged vein slab. -GoldPerGoldBlock = 1024 ; Amount of gold stored in pots at start of level. PotOfGoldHolds = 250 ; Amount of gold stored in chests at start of level. @@ -22,8 +20,6 @@ DisplayPortalLimit = 0 BoulderReduceHealthSlap = 18 BoulderReduceHealthWall = 6 BoulderReduceHealthRoom = 6 -; Gold mining speed from gems, in percentage compared to mining gold blocks. -GemEffectiveness = 17 ; Game turns between pay days. PayDayGap = 10000 ; How fast pay day comes percentage. @@ -170,7 +166,6 @@ ImproveArea = 31 ; Damage did by Imp while digging - to its own slabs, and other slabs. DefaultImpDigDamage = 1 DefaultImpDigOwnDamage = 2 -PerImpGoldDigSize = 30 ; Experience imps gain from working. ImpWorkExperience = 0 ; Imps should drag own units who are knocked out back to their lair to heal diff --git a/config/fxdata/slabset.toml b/config/fxdata/slabset.toml index 17eb3a6d2d..daa0396624 100644 --- a/config/fxdata/slabset.toml +++ b/config/fxdata/slabset.toml @@ -8143,4 +8143,117 @@ Objects = [] [slab59.SE] Columns = [365, 365, 365, 365, 365, 365, 365, 365, 365] +Objects = [] + +[slab60] +[slab60.S] +Columns = [1287, 1290, 1294, 1288, 1291, 1293, 1286, 1291, 1292] +Objects = [] + +[slab60.W] +Columns = [1288, 1291, 1289, 1292, 1295, 1293, 1296, 1287, 1289] +Objects = [] + +[slab60.N] +Columns = [1297, 1298, 1290, 1287, 1298, 1287, 1299, 1291, 1300] +Objects = [] + +[slab60.E] +Columns = [1301, 1302, 1286, 1295, 1295, 1292, 1303, 1304, 1287] +Objects = [] + +[slab60.SW] +Columns = [1305, 1299, 1286, 205, 1288, 1298, 204, 2, 1296] +Objects = [] + +[slab60.NW] +Columns = [207, 206, 1293, 208, 1306, 1307, 1304, 1299, 1303] +Objects = [] + +[slab60.NE] +Columns = [1306, 205, 2, 1310, 1296, 205, 1297, 1300, 1289] +Objects = [] + +[slab60.SE] +Columns = [1290, 1302, 1291, 1306, 1296, 207, 1311, 205, 206] +Objects = [] + +[slab60.ALL] +Columns = [206, 1307, 2, 1311, 1288, 1289, 204, 1295, 205] +Objects = [] + +[slab60.S_LAVA] +Columns = [1311, 1301, 1301, 1306, 1296, 1295, 1313, 1314, 1315] +Objects = [] + +[slab60.W_LAVA] +Columns = [1316, 1308, 1300, 1317, 1301, 1296, 1318, 1294, 1312] +Objects = [] + +[slab60.N_LAVA] +Columns = [1319, 1320, 1324, 1297, 1306, 1307, 1300, 1298, 1301] +Objects = [] + +[slab60.E_LAVA] +Columns = [1301, 1306, 1324, 1300, 1309, 1328, 1303, 1293, 1321] +Objects = [] + +[slab60.SW_LAVA] +Columns = [1325, 1299, 1301, 1330, 1322, 1305, 818, 1330, 1324] +Objects = [] + +[slab60.NW_LAVA] +Columns = [818, 1330, 1368, 1330, 1326, 1306, 1367, 1302, 1289] +Objects = [] + +[slab60.NE_LAVA] +Columns = [1369, 1330, 818, 1296, 1328, 1330, 1311, 1301, 1330] +Objects = [] + +[slab60.SE_LAVA] +Columns = [1301, 1287, 1332, 1291, 1333, 1330, 1370, 1330, 818] +Objects = [] + +[slab60.ALL_LAVA] +Columns = [1360, 1329, 1359, 1331, 1323, 1327, 1357, 1334, 1327] +Objects = [] + +[slab60.S_WATER] +Columns = [1303, 1301, 1308, 1290, 1296, 1288, 1361, 1336, 1335] +Objects = [] + +[slab60.W_WATER] +Columns = [1345, 1293, 1310, 1346, 1309, 1291, 1347, 1296, 1303] +Objects = [] + +[slab60.N_WATER] +Columns = [1346, 1348, 1349, 1301, 1292, 1287, 1293, 1301, 1292] +Objects = [] + +[slab60.E_WATER] +Columns = [1298, 1312, 1350, 1287, 1306, 1351, 1295, 1305, 1352] +Objects = [] + +[slab60.SW_WATER] +Columns = [1364, 1299, 1303, 1362, 1337, 1303, 819, 1362, 1355] +Objects = [] + +[slab60.NW_WATER] +Columns = [819, 1362, 1366, 1362, 1339, 1296, 1338, 1299, 1287] +Objects = [] + +[slab60.NE_WATER] +Columns = [1341, 1362, 819, 1286, 1340, 1362, 1300, 1290, 1349] +Objects = [] + +[slab60.SE_WATER] +Columns = [1303, 1294, 1358, 1296, 1342, 1362, 1362, 1362, 819] +Objects = [] + +[slab60.ALL_WATER] +Columns = [1344, 1353, 1354, 1365, 1293, 1365, 1343, 1363, 1356] +Objects = [] + +[slab60.CENTER] +Columns = [1287, 1290, 1294, 1288, 1291, 1293, 1286, 1291, 1292] Objects = [] \ No newline at end of file diff --git a/config/fxdata/terrain.cfg b/config/fxdata/terrain.cfg index eed851d1b5..49e8b1a75b 100644 --- a/config/fxdata/terrain.cfg +++ b/config/fxdata/terrain.cfg @@ -38,6 +38,8 @@ IsDiggable = 0 IsOwnable = 0 ; Whether this slab relates to liquid and bridges. 0 = None, 1 = Lava, 2 = Water, 3 = Bridge. WlbType = 0 +; Amount of gold that the block holds. +GoldHeld = 0 [slab1] Name = GOLD @@ -56,6 +58,7 @@ IsSafeLand = 0 IsDiggable = 1 IsOwnable = 0 WlbType = 0 +GoldHeld = 1024 [slab2] Name = DIRT @@ -944,6 +947,7 @@ IsSafeLand = 0 IsDiggable = 1 IsOwnable = 0 WlbType = 0 +GoldHeld = 174 [slab53] Name = GUARD_AREA @@ -1069,6 +1073,25 @@ IsDiggable = 0 IsOwnable = 1 WlbType = 0 +[slab60] +Name = DENSE_GOLD +TooltipTextID = 326 +BlockFlagsHeight = 4 +BlockHealthIndex = 9 +BlockFlags = BLOCKING VALUABLE +NoBlockFlags = +FillStyle = 0 +Category = 0 +SlbID = 0 +Indestructible = 0 +Wibble = 1 +Animated = 0 +IsSafeLand = 0 +IsDiggable = 1 +IsOwnable = 0 +WlbType = 0 +GoldHeld = 3072 + ; Rooms configuration. [room0] @@ -1429,3 +1452,4 @@ DOOR_WOODEN = 20 DOOR_BRACE = 80 DOOR_STEEL = 255 DOOR_MAGIC = 255 +DENSE_GOLD = 50 diff --git a/config/fxdata/textureanim.toml b/config/fxdata/textureanim.toml index 5e9c516210..e0494defbd 100644 --- a/config/fxdata/textureanim.toml +++ b/config/fxdata/textureanim.toml @@ -195,4 +195,52 @@ frames = [1029,1029,1035,1035,1038,1038,1041,1041] [texture591] name = "midas_door_cr" -frames = [1030,1030,1036,1036,1039,1039,1042,1042] \ No newline at end of file +frames = [1030,1030,1036,1036,1039,1039,1042,1042] + +[texture592] +name = "dense_gold" +frames = [1043,1043,1044,1044,1045,1045,1046,1046] + +[texture593] +name = "dense_gold2" +frames = [1047,1047,1048,1048,1049,1049,1050,1050] + +[texture594] +name = "dense_gold3" +frames = [1051,1051,1052,1052,1053,1053,1054,1054] + +[texture595] +name = "dense_gold_near_lava" +frames = [1055,1056,1056,1057,1057,1058,1058,1055] + +[texture596] +name = "dense_gold_near_lava2" +frames = [1057,1058,1058,1055,1055,1056,1056,1057] + +[texture597] +name = "dense_gold_near_lava3" +frames = [1056,1056,1057,1057,1058,1058,1055,1055] + +[texture598] +name = "intermediate_gold" +frames = [1059,1059,1060,1060,1061,1061,1062,1062] + +[texture599] +name = "intermediate_gold2" +frames = [1063,1063,1064,1064,1065,1065,1066,1066] + +[texture600] +name = "intermediate_gold3" +frames = [1067,1067,1068,1068,1069,1069,1070,1070] + +[texture601] +name = "intermediate_gold_near_lava" +frames = [1071,1072,1072,1073,1073,1074,1074,1071] + +[texture602] +name = "intermediate_gold_near_lava2" +frames = [1073,1074,1074,1071,1071,1072,1072,1073] + +[texture603] +name = "intermediate_gold_near_lava3" +frames = [1072,1072,1073,1073,1074,1074,1071,1071] \ No newline at end of file diff --git a/src/config_rules.c b/src/config_rules.c index 07879ed3e5..a89ad40d30 100644 --- a/src/config_rules.c +++ b/src/config_rules.c @@ -60,7 +60,6 @@ const struct NamedCommand rules_game_classicbugs_commands[] = { const struct NamedField rules_game_named_fields[] = { //name //field //field type //min //max - {"GOLDPERGOLDBLOCK", &game.conf.rules.game.gold_per_gold_block, var_type(game.conf.rules.game.gold_per_gold_block ), LONG_MIN, LONG_MAX}, {"POTOFGOLDHOLDS", &game.conf.rules.game.pot_of_gold_holds, var_type(game.conf.rules.game.pot_of_gold_holds ), LONG_MIN, LONG_MAX}, {"CHESTGOLDHOLD", &game.conf.rules.game.chest_gold_hold, var_type(game.conf.rules.game.chest_gold_hold ), LONG_MIN, LONG_MAX}, {"GOLDPILEVALUE", &game.conf.rules.game.gold_pile_value, var_type(game.conf.rules.game.gold_pile_value ), LONG_MIN, LONG_MAX}, @@ -75,7 +74,6 @@ const struct NamedField rules_game_named_fields[] = { {"DUNGEONHEARTHEALTIME", &game.conf.rules.game.dungeon_heart_heal_time, var_type(game.conf.rules.game.dungeon_heart_heal_time ), 0, ULONG_MAX}, {"DUNGEONHEARTHEALHEALTH", &game.conf.rules.game.dungeon_heart_heal_health, var_type(game.conf.rules.game.dungeon_heart_heal_health ), LONG_MIN, LONG_MAX}, {"HERODOORWAITTIME", &game.conf.rules.game.hero_door_wait_time, var_type(game.conf.rules.game.hero_door_wait_time ), 0, ULONG_MAX}, - {"GEMEFFECTIVENESS", &game.conf.rules.game.gem_effectiveness, var_type(game.conf.rules.game.gem_effectiveness ), 0, ULONG_MAX}, {"ROOMSELLGOLDBACKPERCENT", &game.conf.rules.game.room_sale_percent, var_type(game.conf.rules.game.room_sale_percent ), 0, LONG_MAX}, {"DOORSELLVALUEPERCENT", &game.conf.rules.game.door_sale_percent, var_type(game.conf.rules.game.door_sale_percent ), 0, LONG_MAX}, {"TRAPSELLVALUEPERCENT", &game.conf.rules.game.trap_sale_percent, var_type(game.conf.rules.game.trap_sale_percent ), 0, LONG_MAX}, @@ -267,7 +265,6 @@ static int long_compare_fn(const void *ptr_a, const void *ptr_b) static void set_defaults() { // Game block. - game.conf.rules.game.gold_per_gold_block = 1000; game.conf.rules.game.pot_of_gold_holds = 1000; game.conf.rules.game.gold_pile_value = 500; game.conf.rules.game.gold_pile_maximum = 5000; @@ -285,7 +282,6 @@ static void set_defaults() game.conf.rules.game.door_sale_percent = 100; game.conf.rules.game.room_sale_percent = 50; game.conf.rules.game.trap_sale_percent = 100; - game.conf.rules.game.gem_effectiveness = 17; game.conf.rules.game.pay_day_speed = 100; game.conf.rules.game.gold_per_hoard = 2000; game.conf.rules.game.torture_payday = 50; diff --git a/src/config_rules.h b/src/config_rules.h index 2d0d0d72bf..463543f7bb 100644 --- a/src/config_rules.h +++ b/src/config_rules.h @@ -70,7 +70,6 @@ struct SacrificeRecipe { }; struct GameRulesConfig { - GoldAmount gold_per_gold_block; GoldAmount pot_of_gold_holds; GoldAmount chest_gold_hold; GoldAmount gold_pile_value; @@ -86,7 +85,6 @@ struct GameRulesConfig { HitPoints dungeon_heart_heal_health; unsigned long hero_door_wait_time; unsigned long classic_bugs_flags; - unsigned long gem_effectiveness; long door_sale_percent; long room_sale_percent; long trap_sale_percent; diff --git a/src/config_terrain.c b/src/config_terrain.c index ac6cde073d..e75fc49e42 100644 --- a/src/config_terrain.c +++ b/src/config_terrain.c @@ -61,6 +61,7 @@ const struct NamedCommand terrain_slab_commands[] = { {"ANIMATED", 14}, {"ISOWNABLE", 15}, {"INDESTRUCTIBLE", 16}, + {"GOLDHELD", 17}, {NULL, 0}, }; @@ -214,6 +215,7 @@ const struct NamedCommand terrain_health_commands[] = { {"DOOR_BRACE", 7}, {"DOOR_STEEL", 8}, {"DOOR_MAGIC", 9}, + {"DENSE_GOLD", 10}, {NULL, 0}, }; @@ -717,6 +719,22 @@ TbBool parse_terrain_slab_blocks(char *buf, long len, const char *config_textnam COMMAND_TEXT(cmd_num), blocknamelen, blockname, config_textname); } break; + case 17: //GOLDHELD + if (get_conf_parameter_single(buf, &pos, len, word_buf, sizeof(word_buf)) > 0) + { + k = atoi(word_buf); + if (k >= 0) + { + slbattr->gold_held = k; + n++; + } + } + if (n < 1) + { + CONFWRNLOG("Incorrect value of \"%s\" parameter in [%.*s] block of %s file.", + COMMAND_TEXT(cmd_num), blocknamelen, blockname, config_textname); + } + break; case ccr_comment: break; case ccr_endOfFile: @@ -760,6 +778,7 @@ TbBool parse_terrain_slab_blocks(char *buf, long len, const char *config_textnam case 7: case 8: case 9: + case 10: if (get_conf_parameter_single(buf,&pos,len,word_buf,sizeof(word_buf)) > 0) { k = atoi(word_buf); diff --git a/src/config_terrain.h b/src/config_terrain.h index bc5d27144f..984e493546 100644 --- a/src/config_terrain.h +++ b/src/config_terrain.h @@ -124,6 +124,7 @@ struct SlabAttr { unsigned char wlb_type; unsigned char is_ownable; unsigned char indestructible; + GoldAmount gold_held; }; #pragma pack() diff --git a/src/frontmenu_ingame_map.c b/src/frontmenu_ingame_map.c index b22d25a3b3..c30042d085 100644 --- a/src/frontmenu_ingame_map.c +++ b/src/frontmenu_ingame_map.c @@ -736,7 +736,7 @@ void panel_map_update_subtile(PlayerNumber plyr_idx, MapSubtlCoord stl_x, MapSub } else if (map_block_revealed(mapblk, plyr_idx)) { - if (slb->kind == SlbT_GOLD) + if ((slb->kind == SlbT_GOLD) || (slb->kind == SlbT_DENSEGOLD)) { col = PnC_Gold; if ((mapblk->flags & SlbAtFlg_TaggedValuable) != 0) diff --git a/src/game_legacy.h b/src/game_legacy.h index b76f690fd8..1fc3a6989b 100644 --- a/src/game_legacy.h +++ b/src/game_legacy.h @@ -215,7 +215,7 @@ char numfield_1A; PlayerNumber neutral_player_num; struct GoldLookup gold_lookup[GOLD_LOOKUP_COUNT]; unsigned short ambient_sound_thing_idx; - HitPoints block_health[9]; + HitPoints block_health[10]; unsigned short generate_speed; unsigned long entrance_last_generate_turn; unsigned short entrance_room_id; diff --git a/src/gui_parchment.c b/src/gui_parchment.c index d8c2ac20ff..d13c58497e 100644 --- a/src/gui_parchment.c +++ b/src/gui_parchment.c @@ -231,7 +231,7 @@ TbPixel get_overhead_mapblock_color(MapSubtlCoord stl_x, MapSubtlCoord stl_y, Pl { pixval = background; } else - if (slb->kind == SlbT_GOLD) + if ((slb->kind == SlbT_GOLD) || (slb->kind == SlbT_DENSEGOLD)) { pixval = pixmap.ghost[background + 0x8C00]; } else diff --git a/src/map_blocks.c b/src/map_blocks.c index 12dafc579f..094a478581 100644 --- a/src/map_blocks.c +++ b/src/map_blocks.c @@ -1833,6 +1833,7 @@ void place_slab_type_on_map_f(SlabKind nslab, MapSubtlCoord stl_x, MapSubtlCoord { case SlbT_ROCK: case SlbT_GOLD: + case SlbT_DENSEGOLD: case SlbT_EARTH: case SlbT_TORCHDIRT: case SlbT_WALLDRAPE: diff --git a/src/map_data.c b/src/map_data.c index 837badf20e..f971fbd932 100644 --- a/src/map_data.c +++ b/src/map_data.c @@ -697,6 +697,7 @@ void conceal_map_area(PlayerNumber plyr_idx,MapSubtlCoord start_x,MapSubtlCoord case SlbT_ROCK: case SlbT_GEMS: case SlbT_GOLD: + case SlbT_DENSEGOLD: continue; default: break; diff --git a/src/slab_data.c b/src/slab_data.c index 4ae01b4827..f5e75ce570 100644 --- a/src/slab_data.c +++ b/src/slab_data.c @@ -376,7 +376,7 @@ int check_room_at_slab_loose(PlayerNumber plyr_idx, RoomKind rkind, MapSlabCoord { result = 4; } - else if (slb->kind == SlbT_GOLD) + else if ((slb->kind == SlbT_GOLD) || (slb->kind == SlbT_DENSEGOLD)) { result = 5; } @@ -489,6 +489,7 @@ long calculate_effeciency_score_for_room_slab(SlabCodedCoords slab_num, PlayerNu { case SlbT_ROCK: case SlbT_GOLD: + case SlbT_DENSEGOLD: case SlbT_EARTH: case SlbT_GEMS: eff_score++; diff --git a/src/slab_data.h b/src/slab_data.h index 4b4529dd05..8303cb5acb 100644 --- a/src/slab_data.h +++ b/src/slab_data.h @@ -90,6 +90,9 @@ enum SlabTypes { SlbT_DOORSECRET1 = 55, SlbT_DOORSECRET2 = 56, SlbT_ROCK_FLOOR = 57, + SlbT_DOORMIDAS1 = 58, + SlbT_DOORMIDAS2 = 59, + SlbT_DENSEGOLD = 60, }; enum WlbType { diff --git a/src/thing_doors.c b/src/thing_doors.c index 87fa691c9f..aa12cb4087 100644 --- a/src/thing_doors.c +++ b/src/thing_doors.c @@ -388,7 +388,7 @@ TbBool door_can_stand(struct Thing *thing) long slb_y = subtile_slab(thing->mappos.y.stl.num) + (int)small_around[i].delta_y; struct SlabMap* slb = get_slabmap_block(slb_x, slb_y); struct SlabAttr* slbattr = get_slab_attrs(slb); - if ((slbattr->category == SlbAtCtg_FortifiedWall) || (slb->kind == SlbT_ROCK) || (slbattr->category == SlbAtCtg_FriableDirt) || (slb->kind == SlbT_GOLD) || (slb->kind == SlbT_GEMS)) + if ((slbattr->category == SlbAtCtg_FortifiedWall) || (slb->kind == SlbT_ROCK) || (slbattr->category == SlbAtCtg_FriableDirt) || (slb->kind == SlbT_GOLD) || (slb->kind == SlbT_DENSEGOLD) || (slb->kind == SlbT_GEMS)) wall_flags |= 0x01; } // The array needs to have 2^4 = 16 values diff --git a/src/thing_stats.c b/src/thing_stats.c index 619e6037eb..d1e8d4459f 100644 --- a/src/thing_stats.c +++ b/src/thing_stats.c @@ -1142,22 +1142,18 @@ long calculate_damage_did_to_slab_with_single_hit(const struct Thing *diggertng, GoldAmount calculate_gold_digged_out_of_slab_with_single_hit(long damage_did_to_slab, const struct SlabMap *slb) { struct SlabAttr *slbattr = get_slab_attrs(slb); - GoldAmount gold = (damage_did_to_slab * game.conf.rules.game.gold_per_gold_block) / game.block_health[slbattr->block_health_index]; - // Returns gold-per-hit as an integer. - if (slb->kind == SlbT_GEMS) - { - gold = gold * game.conf.rules.game.gem_effectiveness / 100; - } - else if (slb->health == 0) + GoldAmount gold_per_block = slbattr->gold_held; + GoldAmount gold = (damage_did_to_slab * gold_per_block) / game.block_health[slbattr->block_health_index]; + if (slb->health == 0) // If the last hit deals the damage exactly, just drop a pile and the remainder. { - gold += (game.conf.rules.game.gold_per_gold_block % gold); + gold += (gold_per_block % gold); } else if (slb->health < 0) // If the damage dealt is more than the remaining health, then health is not divisible by damage, // so this should return whatever is left, as this is less than the gold given for a full hit. { - gold = game.conf.rules.game.gold_per_gold_block - (game.block_health[slbattr->block_health_index] / damage_did_to_slab) * gold; + gold = gold_per_block - (game.block_health[slbattr->block_health_index] / damage_did_to_slab) * gold; // Subtract all of the "full hits" and return what's left. } if (gold < 1)