langjam gamejam nethack-inspired programming game olifog.itch.io/yendor
1

Configure Feed

Select the types of activity you want to include in your feed.

quick rebalancing

olifog (Dec 20, 2025, 6:18 PM UTC) 3bb6fc64 558d808b

+181 -160
+90 -75
game/main.nh
··· 643 643 // Using draw_line for proper bezier-like connections 644 644 645 645 #draw_buff_tree(bx, by) > 646 - // Branching tree with player choice! 647 - // Col 0: Stats path (STR, AC) 646 + // Speed upgrades first, then branches! 647 + // Col 0: Stats path (HP, STR, AC) 648 648 // Col 1: Gold path 649 - // Col 2: Speed path (separate) 649 + // Col 2: Speed path (separate, ends at row 3) 650 650 nw := NODE_W. 651 651 nh := NODE_H. 652 652 gx := NODE_GAP_X. 653 653 gy := NODE_GAP_Y + 8. 654 654 655 - // Calculate row positions (8 rows) 655 + // Calculate row positions (10 rows) 656 656 row0 := by - nh. 657 657 row1 := row0 - nh - gy. 658 658 row2 := row1 - nh - gy. ··· 661 661 row5 := row4 - nh - gy. 662 662 row6 := row5 - nh - gy. 663 663 row7 := row6 - nh - gy. 664 + row8 := row7 - nh - gy. 665 + row9 := row8 - nh - gy. 664 666 665 667 // Column positions 666 668 col0 := bx. ··· 671 673 672 674 lr := 45. lg := 55. lb := 70. 673 675 674 - // Row 0: HP I (center between col0 and col1) branches to 3 paths 675 - /draw_tree_conn/(colm + nw / 2)/(row0 - 2)/(col0 + nw / 2)/(row1 + nh + 2)/lr/lg/lb. 676 - /draw_tree_conn/(colm + nw / 2)/(row0 - 2)/(col1 + nw / 2)/(row1 + nh + 2)/lr/lg/lb. 677 - /draw_tree_conn/(colm + nw / 2)/(row0 - 2)/(col2 + nw / 2)/(row1 + nh + 2)/lr/lg/lb. 676 + // Row 0 -> Row 1: Speed 5x to Speed 10x (center) 677 + /draw_tree_conn/(colm + nw / 2)/(row0 - 2)/(colm + nw / 2)/(row1 + nh + 2)/lr/lg/lb. 678 678 679 - // Row 1 -> Row 2: Stats path and Gold path continue, Speed continues 680 - /draw_tree_conn/(col0 + nw / 2)/(row1 - 2)/(col0 + nw / 2)/(row2 + nh + 2)/lr/lg/lb. 681 - /draw_tree_conn/(col1 + nw / 2)/(row1 - 2)/(col1 + nw / 2)/(row2 + nh + 2)/lr/lg/lb. 682 - /draw_tree_conn/(col2 + nw / 2)/(row1 - 2)/(col2 + nw / 2)/(row2 + nh + 2)/lr/lg/lb. 679 + // Row 1 -> Row 2: Speed 10x branches to HP I, Gold Spawn, Speed 100x 680 + /draw_tree_conn/(colm + nw / 2)/(row1 - 2)/(col0 + nw / 2)/(row2 + nh + 2)/lr/lg/lb. 681 + /draw_tree_conn/(colm + nw / 2)/(row1 - 2)/(col1 + nw / 2)/(row2 + nh + 2)/lr/lg/lb. 682 + /draw_tree_conn/(colm + nw / 2)/(row1 - 2)/(col2 + nw / 2)/(row2 + nh + 2)/lr/lg/lb. 683 683 684 - // Row 2 -> Row 3: Stats and Gold merge to HP II (center) 685 - /draw_tree_conn/(col0 + nw / 2)/(row2 - 2)/(colm + nw / 2)/(row3 + nh + 2)/lr/lg/lb. 686 - /draw_tree_conn/(col1 + nw / 2)/(row2 - 2)/(colm + nw / 2)/(row3 + nh + 2)/lr/lg/lb. 684 + // Row 2 -> Row 3: HP I to STR I, Gold Spawn to Gold Spawn+, Speed 100x to Speed 1000x 685 + /draw_tree_conn/(col0 + nw / 2)/(row2 - 2)/(col0 + nw / 2)/(row3 + nh + 2)/lr/lg/lb. 686 + /draw_tree_conn/(col1 + nw / 2)/(row2 - 2)/(col1 + nw / 2)/(row3 + nh + 2)/lr/lg/lb. 687 687 /draw_tree_conn/(col2 + nw / 2)/(row2 - 2)/(col2 + nw / 2)/(row3 + nh + 2)/lr/lg/lb. 688 688 689 - // Row 3: HP II branches to Stats path and Gold path 690 - /draw_tree_conn/(colm + nw / 2)/(row3 - 2)/(col0 + nw / 2)/(row4 + nh + 2)/lr/lg/lb. 691 - /draw_tree_conn/(colm + nw / 2)/(row3 - 2)/(col1 + nw / 2)/(row4 + nh + 2)/lr/lg/lb. 692 - /draw_tree_conn/(col2 + nw / 2)/(row3 - 2)/(col2 + nw / 2)/(row4 + nh + 2)/lr/lg/lb. 689 + // Row 3 -> Row 4: STR I to AC I (stats path only continues) 690 + /draw_tree_conn/(col0 + nw / 2)/(row3 - 2)/(col0 + nw / 2)/(row4 + nh + 2)/lr/lg/lb. 693 691 694 - // Row 4 -> Row 5: Stats and Gold paths continue 692 + // Row 4 -> Row 5: AC I to HP II 695 693 /draw_tree_conn/(col0 + nw / 2)/(row4 - 2)/(col0 + nw / 2)/(row5 + nh + 2)/lr/lg/lb. 696 - /draw_tree_conn/(col1 + nw / 2)/(row4 - 2)/(col1 + nw / 2)/(row5 + nh + 2)/lr/lg/lb. 694 + 695 + // Row 5 -> Row 6: HP II branches to STR II and Gold Drops 696 + /draw_tree_conn/(col0 + nw / 2)/(row5 - 2)/(col0 + nw / 2)/(row6 + nh + 2)/lr/lg/lb. 697 + /draw_tree_conn/(col0 + nw / 2)/(row5 - 2)/(col1 + nw / 2)/(row6 + nh + 2)/lr/lg/lb. 698 + 699 + // Row 6 -> Row 7: STR II to AC II, Gold Drops to Gold Drops+ 700 + /draw_tree_conn/(col0 + nw / 2)/(row6 - 2)/(col0 + nw / 2)/(row7 + nh + 2)/lr/lg/lb. 701 + /draw_tree_conn/(col1 + nw / 2)/(row6 - 2)/(col1 + nw / 2)/(row7 + nh + 2)/lr/lg/lb. 697 702 698 - // Row 5 -> Row 6: Stats and Gold merge to HP III 699 - /draw_tree_conn/(col0 + nw / 2)/(row5 - 2)/(colm + nw / 2)/(row6 + nh + 2)/lr/lg/lb. 700 - /draw_tree_conn/(col1 + nw / 2)/(row5 - 2)/(colm + nw / 2)/(row6 + nh + 2)/lr/lg/lb. 703 + // Row 7 -> Row 8: AC II and Gold Drops+ merge to HP III 704 + /draw_tree_conn/(col0 + nw / 2)/(row7 - 2)/(colm + nw / 2)/(row8 + nh + 2)/lr/lg/lb. 705 + /draw_tree_conn/(col1 + nw / 2)/(row7 - 2)/(colm + nw / 2)/(row8 + nh + 2)/lr/lg/lb. 701 706 702 - // Row 6 -> Row 7: HP III to STR III 703 - /draw_tree_conn/(colm + nw / 2)/(row6 - 2)/(colm + nw / 2)/(row7 + nh + 2)/lr/lg/lb. 707 + // Row 8 -> Row 9: HP III to STR III 708 + /draw_tree_conn/(colm + nw / 2)/(row8 - 2)/(colm + nw / 2)/(row9 + nh + 2)/lr/lg/lb. 704 709 705 710 // Draw nodes 706 - // Row 0: HP I (center) 707 - /draw_node/colm/row0/UPGRADE_BUFF_HP_1. 711 + // Row 0: Speed 5x (center) 712 + /draw_node/colm/row0/UPGRADE_BUFF_SPEED_5. 708 713 709 - // Row 1: STR I (left), Gold Spawn (center), Speed 5x (right) 710 - /draw_node/col0/row1/UPGRADE_BUFF_STR_1. 711 - /draw_node/col1/row1/UPGRADE_BUFF_GOLD_SPAWN. 712 - /draw_node/col2/row1/UPGRADE_BUFF_SPEED_5. 714 + // Row 1: Speed 10x (center) 715 + /draw_node/colm/row1/UPGRADE_BUFF_SPEED_10. 713 716 714 - // Row 2: AC I (left), Gold Spawn+ (center), Speed 10x (right) 715 - /draw_node/col0/row2/UPGRADE_BUFF_AC_1. 716 - /draw_node/col1/row2/UPGRADE_BUFF_GOLD_SPAWN_2. 717 - /draw_node/col2/row2/UPGRADE_BUFF_SPEED_10. 717 + // Row 2: HP I (left), Gold Spawn (center), Speed 100x (right) 718 + /draw_node/col0/row2/UPGRADE_BUFF_HP_1. 719 + /draw_node/col1/row2/UPGRADE_BUFF_GOLD_SPAWN. 720 + /draw_node/col2/row2/UPGRADE_BUFF_SPEED_100. 718 721 719 - // Row 3: HP II (center), Speed 100x (right) 720 - /draw_node/colm/row3/UPGRADE_BUFF_HP_2. 721 - /draw_node/col2/row3/UPGRADE_BUFF_SPEED_100. 722 + // Row 3: STR I (left), Gold Spawn+ (center), Speed 1000x (right) 723 + /draw_node/col0/row3/UPGRADE_BUFF_STR_1. 724 + /draw_node/col1/row3/UPGRADE_BUFF_GOLD_SPAWN_2. 725 + /draw_node/col2/row3/UPGRADE_BUFF_SPEED_1000. 722 726 723 - // Row 4: STR II (left), Gold Drops (center), Speed 1000x (right) 724 - /draw_node/col0/row4/UPGRADE_BUFF_STR_2. 725 - /draw_node/col1/row4/UPGRADE_BUFF_GOLD_DROP. 726 - /draw_node/col2/row4/UPGRADE_BUFF_SPEED_1000. 727 + // Row 4: AC I (left) 728 + /draw_node/col0/row4/UPGRADE_BUFF_AC_1. 727 729 728 - // Row 5: AC II (left), Gold Drops+ (center) 729 - /draw_node/col0/row5/UPGRADE_BUFF_AC_2. 730 - /draw_node/col1/row5/UPGRADE_BUFF_GOLD_DROP_2. 730 + // Row 5: HP II (left) 731 + /draw_node/col0/row5/UPGRADE_BUFF_HP_2. 732 + 733 + // Row 6: STR II (left), Gold Drops (center) 734 + /draw_node/col0/row6/UPGRADE_BUFF_STR_2. 735 + /draw_node/col1/row6/UPGRADE_BUFF_GOLD_DROP. 736 + 737 + // Row 7: AC II (left), Gold Drops+ (center) 738 + /draw_node/col0/row7/UPGRADE_BUFF_AC_2. 739 + /draw_node/col1/row7/UPGRADE_BUFF_GOLD_DROP_2. 731 740 732 - // Row 6: HP III (center) 733 - /draw_node/colm/row6/UPGRADE_BUFF_HP_3. 741 + // Row 8: HP III (center between col0 and col1) 742 + /draw_node/colm/row8/UPGRADE_BUFF_HP_3. 734 743 735 - // Row 7: STR III (center) 736 - /draw_node/colm/row7/UPGRADE_BUFF_STR_3. 744 + // Row 9: STR III (center) 745 + /draw_node/colm/row9/UPGRADE_BUFF_STR_3. 737 746 < 738 747 739 748 #draw_diff_tree(bx, by) > ··· 1191 1200 bx := clip_x + TREE_PADDING + tech_scroll_x. 1192 1201 by := clip_y + clip_h - TREE_PADDING + tech_scroll_y. 1193 1202 1194 - // Row positions (8 rows for buff tree with branches) 1203 + // Row positions (10 rows for buff tree with speed start) 1195 1204 row0 := by - nh. 1196 1205 row1 := row0 - nh - gy. 1197 1206 row2 := row1 - nh - gy. ··· 1200 1209 row5 := row4 - nh - gy. 1201 1210 row6 := row5 - nh - gy. 1202 1211 row7 := row6 - nh - gy. 1212 + row8 := row7 - nh - gy. 1213 + row9 := row8 - nh - gy. 1203 1214 1204 1215 // BUFF tree columns (3 columns: stats, gold, speed) 1205 1216 col0 := bx. ··· 1207 1218 col2 := bx + (nw + gx) * 2. 1208 1219 colm := bx + (nw + gx) / 2. 1209 1220 1210 - // BUFF tree - Row 0: HP I (center) 1211 - /try_node_click/colm/row0/UPGRADE_BUFF_HP_1/mx/my. 1221 + // BUFF tree - Row 0: Speed 5x (center) 1222 + /try_node_click/colm/row0/UPGRADE_BUFF_SPEED_5/mx/my. 1212 1223 1213 - // Row 1: STR I (left), Gold Spawn (center), Speed 5x (right) 1214 - /try_node_click/col0/row1/UPGRADE_BUFF_STR_1/mx/my. 1215 - /try_node_click/col1/row1/UPGRADE_BUFF_GOLD_SPAWN/mx/my. 1216 - /try_node_click/col2/row1/UPGRADE_BUFF_SPEED_5/mx/my. 1224 + // Row 1: Speed 10x (center) 1225 + /try_node_click/colm/row1/UPGRADE_BUFF_SPEED_10/mx/my. 1217 1226 1218 - // Row 2: AC I (left), Gold Spawn+ (center), Speed 10x (right) 1219 - /try_node_click/col0/row2/UPGRADE_BUFF_AC_1/mx/my. 1220 - /try_node_click/col1/row2/UPGRADE_BUFF_GOLD_SPAWN_2/mx/my. 1221 - /try_node_click/col2/row2/UPGRADE_BUFF_SPEED_10/mx/my. 1227 + // Row 2: HP I (left), Gold Spawn (center), Speed 100x (right) 1228 + /try_node_click/col0/row2/UPGRADE_BUFF_HP_1/mx/my. 1229 + /try_node_click/col1/row2/UPGRADE_BUFF_GOLD_SPAWN/mx/my. 1230 + /try_node_click/col2/row2/UPGRADE_BUFF_SPEED_100/mx/my. 1222 1231 1223 - // Row 3: HP II (center), Speed 100x (right) 1224 - /try_node_click/colm/row3/UPGRADE_BUFF_HP_2/mx/my. 1225 - /try_node_click/col2/row3/UPGRADE_BUFF_SPEED_100/mx/my. 1232 + // Row 3: STR I (left), Gold Spawn+ (center), Speed 1000x (right) 1233 + /try_node_click/col0/row3/UPGRADE_BUFF_STR_1/mx/my. 1234 + /try_node_click/col1/row3/UPGRADE_BUFF_GOLD_SPAWN_2/mx/my. 1235 + /try_node_click/col2/row3/UPGRADE_BUFF_SPEED_1000/mx/my. 1226 1236 1227 - // Row 4: STR II (left), Gold Drops (center), Speed 1000x (right) 1228 - /try_node_click/col0/row4/UPGRADE_BUFF_STR_2/mx/my. 1229 - /try_node_click/col1/row4/UPGRADE_BUFF_GOLD_DROP/mx/my. 1230 - /try_node_click/col2/row4/UPGRADE_BUFF_SPEED_1000/mx/my. 1237 + // Row 4: AC I (left) 1238 + /try_node_click/col0/row4/UPGRADE_BUFF_AC_1/mx/my. 1231 1239 1232 - // Row 5: AC II (left), Gold Drops+ (center) 1233 - /try_node_click/col0/row5/UPGRADE_BUFF_AC_2/mx/my. 1234 - /try_node_click/col1/row5/UPGRADE_BUFF_GOLD_DROP_2/mx/my. 1240 + // Row 5: HP II (left) 1241 + /try_node_click/col0/row5/UPGRADE_BUFF_HP_2/mx/my. 1235 1242 1236 - // Row 6: HP III (center) 1237 - /try_node_click/colm/row6/UPGRADE_BUFF_HP_3/mx/my. 1243 + // Row 6: STR II (left), Gold Drops (center) 1244 + /try_node_click/col0/row6/UPGRADE_BUFF_STR_2/mx/my. 1245 + /try_node_click/col1/row6/UPGRADE_BUFF_GOLD_DROP/mx/my. 1238 1246 1239 - // Row 7: STR III (center) 1240 - /try_node_click/colm/row7/UPGRADE_BUFF_STR_3/mx/my. 1247 + // Row 7: AC II (left), Gold Drops+ (center) 1248 + /try_node_click/col0/row7/UPGRADE_BUFF_AC_2/mx/my. 1249 + /try_node_click/col1/row7/UPGRADE_BUFF_GOLD_DROP_2/mx/my. 1250 + 1251 + // Row 8: HP III (center) 1252 + /try_node_click/colm/row8/UPGRADE_BUFF_HP_3/mx/my. 1253 + 1254 + // Row 9: STR III (center) 1255 + /try_node_click/colm/row9/UPGRADE_BUFF_STR_3/mx/my. 1241 1256 1242 1257 // DIFF tree (right of Buff, grows upward - 7 rows) 1243 1258 diff_x := bx + branch_w + BRANCH_GAP.
+91 -85
game/tech.nh
··· 114 114 115 115 #get_upgrade_cost(id) > 116 116 // BUFF BRANCH - exponentially scaling costs 117 - // Costs are consistent within each row tier 118 - // Row 0: Starting node 119 - << 30 when id == UPGRADE_BUFF_HP_1. 120 - // Row 1: First tier choices ($100) 121 - << 100 when id == UPGRADE_BUFF_STR_1. 122 - << 100 when id == UPGRADE_BUFF_GOLD_SPAWN. 123 - << 100 when id == UPGRADE_BUFF_SPEED_5. 124 - // Row 2: Second tier ($400) 125 - << 400 when id == UPGRADE_BUFF_AC_1. 126 - << 400 when id == UPGRADE_BUFF_GOLD_SPAWN_2. 127 - << 400 when id == UPGRADE_BUFF_SPEED_10. 128 - // Row 3: Third tier ($1,500 main, $10k speed) 129 - << 1500 when id == UPGRADE_BUFF_HP_2. 130 - << 10000 when id == UPGRADE_BUFF_SPEED_100. 131 - // Row 4: Fourth tier ($5,000 main, $100k speed) 132 - << 5000 when id == UPGRADE_BUFF_STR_2. 133 - << 5000 when id == UPGRADE_BUFF_GOLD_DROP. 134 - << 100000 when id == UPGRADE_BUFF_SPEED_1000. 135 - // Row 5: Fifth tier ($20,000) 117 + // Speed upgrades are first (cheap entry point) 118 + // Row 0: Starting node (Speed 5x - very cheap!) 119 + << 10 when id == UPGRADE_BUFF_SPEED_5. 120 + // Row 1: Speed 10x (still cheap) 121 + << 25 when id == UPGRADE_BUFF_SPEED_10. 122 + // Row 2: Three choices branch ($60 for HP/Gold, $5k for Speed 100x) 123 + << 60 when id == UPGRADE_BUFF_HP_1. 124 + << 60 when id == UPGRADE_BUFF_GOLD_SPAWN. 125 + << 5000 when id == UPGRADE_BUFF_SPEED_100. 126 + // Row 3: Second tier ($200 for stats/gold, $50k for Speed 1000x) 127 + << 200 when id == UPGRADE_BUFF_STR_1. 128 + << 200 when id == UPGRADE_BUFF_GOLD_SPAWN_2. 129 + << 50000 when id == UPGRADE_BUFF_SPEED_1000. 130 + // Row 4: Third tier ($600) 131 + << 600 when id == UPGRADE_BUFF_AC_1. 132 + // Row 5: Fourth tier ($2,000) 133 + << 2000 when id == UPGRADE_BUFF_HP_2. 134 + // Row 6: Fifth tier ($6,000) 135 + << 6000 when id == UPGRADE_BUFF_STR_2. 136 + << 6000 when id == UPGRADE_BUFF_GOLD_DROP. 137 + // Row 7: Sixth tier ($20,000) 136 138 << 20000 when id == UPGRADE_BUFF_AC_2. 137 139 << 20000 when id == UPGRADE_BUFF_GOLD_DROP_2. 138 - // Row 6: Sixth tier ($75,000) 139 - << 75000 when id == UPGRADE_BUFF_HP_3. 140 - // Row 7: Final tier ($250,000) 141 - << 250000 when id == UPGRADE_BUFF_STR_3. 140 + // Row 8: Seventh tier ($60,000) 141 + << 60000 when id == UPGRADE_BUFF_HP_3. 142 + // Row 9: Final tier ($200,000) 143 + << 200000 when id == UPGRADE_BUFF_STR_3. 142 144 143 145 // DIFFICULTY BRANCH - exponential cost scaling 144 146 << 25 when id == UPGRADE_DIFF_STAIRS_RANDOM. // Row 0 - Start ··· 201 203 has := /has_upgrade/id. 202 204 << 0 when has == 1. 203 205 204 - // BUFF BRANCH - branching tree with choices! 206 + // BUFF BRANCH - Speed starts, then branches! 205 207 // Layout: 206 - // HP I (start) 207 - // / \ \ 208 - // STR I Gold Spawn Speed 5x 209 - // | | | 210 - // AC I Gold Spawn+ Speed 10x 211 - // \ / | 212 - // HP II Speed 100x 213 - // / \ | 214 - // STR II Gold Drops Speed 1000x 215 - // | | 216 - // AC II Gold Drops+ 217 - // \ / 218 - // HP III 219 - // | 220 - // STR III 208 + // Speed 5x (start) 209 + // | 210 + // Speed 10x 211 + // / | \ 212 + // HP I Gold Spawn Speed 100x 213 + // | | | 214 + // STR I Gold Spawn+ Speed 1000x 215 + // | 216 + // AC I 217 + // | 218 + // HP II 219 + // / \ 220 + // STR II Gold Drops 221 + // | | 222 + // AC II Gold Drops+ 223 + // \ / 224 + // HP III 225 + // | 226 + // STR III 221 227 222 - // Row 0: HP I is the starting node (no prereqs) 223 - << 1 when id == UPGRADE_BUFF_HP_1. 228 + // Row 0: Speed 5x is the starting node (no prereqs) 229 + << 1 when id == UPGRADE_BUFF_SPEED_5. 224 230 225 - // Row 1: Three choices branch from HP I 231 + // Row 1: Speed 10x needs Speed 5x 232 + has_speed5 := /has_upgrade/UPGRADE_BUFF_SPEED_5. 233 + << has_speed5 when id == UPGRADE_BUFF_SPEED_10. 234 + 235 + // Row 2: Three choices branch from Speed 10x 236 + has_speed10 := /has_upgrade/UPGRADE_BUFF_SPEED_10. 237 + << has_speed10 when id == UPGRADE_BUFF_HP_1. 238 + << has_speed10 when id == UPGRADE_BUFF_GOLD_SPAWN. 239 + << has_speed10 when id == UPGRADE_BUFF_SPEED_100. 240 + 241 + // Row 3: Stats path continues, Gold path continues, Speed continues 226 242 has_hp1 := /has_upgrade/UPGRADE_BUFF_HP_1. 227 243 << has_hp1 when id == UPGRADE_BUFF_STR_1. 228 - << has_hp1 when id == UPGRADE_BUFF_GOLD_SPAWN. 229 - << has_hp1 when id == UPGRADE_BUFF_SPEED_5. 230 - 231 - // Row 2: Stats path continues, Gold path continues, Speed continues 232 - has_str1 := /has_upgrade/UPGRADE_BUFF_STR_1. 233 - << has_str1 when id == UPGRADE_BUFF_AC_1. 234 244 235 245 has_gold_spawn := /has_upgrade/UPGRADE_BUFF_GOLD_SPAWN. 236 246 << has_gold_spawn when id == UPGRADE_BUFF_GOLD_SPAWN_2. 237 247 238 - has_speed5 := /has_upgrade/UPGRADE_BUFF_SPEED_5. 239 - << has_speed5 when id == UPGRADE_BUFF_SPEED_10. 248 + has_speed100 := /has_upgrade/UPGRADE_BUFF_SPEED_100. 249 + << has_speed100 when id == UPGRADE_BUFF_SPEED_1000. 240 250 241 - // Row 3: HP II requires EITHER AC I OR Gold Spawn+ (merge point) 251 + // Row 4: AC I needs STR I 252 + has_str1 := /has_upgrade/UPGRADE_BUFF_STR_1. 253 + << has_str1 when id == UPGRADE_BUFF_AC_1. 254 + 255 + // Row 5: HP II needs AC I 242 256 has_ac1 := /has_upgrade/UPGRADE_BUFF_AC_1. 243 - has_gold_spawn2 := /has_upgrade/UPGRADE_BUFF_GOLD_SPAWN_2. 244 - has_tier2_choice := has_ac1 + has_gold_spawn2. 245 - << 1 when id == UPGRADE_BUFF_HP_2 and has_tier2_choice gt 0. 257 + << has_ac1 when id == UPGRADE_BUFF_HP_2. 246 258 247 - has_speed10 := /has_upgrade/UPGRADE_BUFF_SPEED_10. 248 - << has_speed10 when id == UPGRADE_BUFF_SPEED_100. 249 - 250 - // Row 4: Two choices branch from HP II 259 + // Row 6: Two choices branch from HP II 251 260 has_hp2 := /has_upgrade/UPGRADE_BUFF_HP_2. 252 261 << has_hp2 when id == UPGRADE_BUFF_STR_2. 253 262 << has_hp2 when id == UPGRADE_BUFF_GOLD_DROP. 254 263 255 - has_speed100 := /has_upgrade/UPGRADE_BUFF_SPEED_100. 256 - << has_speed100 when id == UPGRADE_BUFF_SPEED_1000. 257 - 258 - // Row 5: Stats path continues, Gold path continues 264 + // Row 7: Stats path continues, Gold path continues 259 265 has_str2 := /has_upgrade/UPGRADE_BUFF_STR_2. 260 266 << has_str2 when id == UPGRADE_BUFF_AC_2. 261 267 262 268 has_gold_drop := /has_upgrade/UPGRADE_BUFF_GOLD_DROP. 263 269 << has_gold_drop when id == UPGRADE_BUFF_GOLD_DROP_2. 264 270 265 - // Row 6: HP III requires EITHER AC II OR Gold Drops+ (merge point) 271 + // Row 8: HP III requires EITHER AC II OR Gold Drops+ (merge point) 266 272 has_ac2 := /has_upgrade/UPGRADE_BUFF_AC_2. 267 273 has_gold_drop2 := /has_upgrade/UPGRADE_BUFF_GOLD_DROP_2. 268 274 has_tier3_choice := has_ac2 + has_gold_drop2. 269 275 << 1 when id == UPGRADE_BUFF_HP_3 and has_tier3_choice gt 0. 270 276 271 - // Row 7: STR III needs HP III 277 + // Row 9: STR III needs HP III 272 278 has_hp3 := /has_upgrade/UPGRADE_BUFF_HP_3. 273 279 << has_hp3 when id == UPGRADE_BUFF_STR_3. 274 280 ··· 511 517 dng_kobolds_enabled = 0. 512 518 dng_goblins_enabled = 0. 513 519 514 - // Calculate bonus from upgrades (linear addition, starts at 0) 520 + // Calculate bonus from upgrades (4-6 per upgrade for meaningful rewards) 515 521 bonus := 0. 516 522 517 523 // Stairs placement (first upgrade) 518 524 dng_stairs_random = 1 when /has_upgrade/UPGRADE_DIFF_STAIRS_RANDOM == 1. 519 - bonus = bonus + 1 when /has_upgrade/UPGRADE_DIFF_STAIRS_RANDOM == 1. 525 + bonus = bonus + 2 when /has_upgrade/UPGRADE_DIFF_STAIRS_RANDOM == 1. 520 526 521 527 // Room count from difficulty upgrades (additive +1 each) 522 528 dng_max_rooms = dng_max_rooms + 1 when /has_upgrade/UPGRADE_DIFF_ROOM_2 == 1. 523 - bonus = bonus + 1 when /has_upgrade/UPGRADE_DIFF_ROOM_2 == 1. 529 + bonus = bonus + 4 when /has_upgrade/UPGRADE_DIFF_ROOM_2 == 1. 524 530 525 531 dng_max_rooms = dng_max_rooms + 1 when /has_upgrade/UPGRADE_DIFF_ROOM_3 == 1. 526 - bonus = bonus + 1 when /has_upgrade/UPGRADE_DIFF_ROOM_3 == 1. 532 + bonus = bonus + 4 when /has_upgrade/UPGRADE_DIFF_ROOM_3 == 1. 527 533 528 534 dng_max_rooms = dng_max_rooms + 1 when /has_upgrade/UPGRADE_DIFF_ROOM_4 == 1. 529 - bonus = bonus + 1 when /has_upgrade/UPGRADE_DIFF_ROOM_4 == 1. 535 + bonus = bonus + 5 when /has_upgrade/UPGRADE_DIFF_ROOM_4 == 1. 530 536 531 537 dng_max_rooms = dng_max_rooms + 1 when /has_upgrade/UPGRADE_DIFF_ROOM_MANY == 1. 532 - bonus = bonus + 2 when /has_upgrade/UPGRADE_DIFF_ROOM_MANY == 1. 538 + bonus = bonus + 6 when /has_upgrade/UPGRADE_DIFF_ROOM_MANY == 1. 533 539 534 540 // Room size (with upgrade: 2-5 interior, meaning 4x4 to 7x7 total) 535 541 dng_min_room_size = 2 when /has_upgrade/UPGRADE_DIFF_VAR_SIZE == 1. 536 542 dng_max_room_size = 5 when /has_upgrade/UPGRADE_DIFF_VAR_SIZE == 1. 537 - bonus = bonus + 1 when /has_upgrade/UPGRADE_DIFF_VAR_SIZE == 1. 543 + bonus = bonus + 3 when /has_upgrade/UPGRADE_DIFF_VAR_SIZE == 1. 538 544 539 545 // Monster types (Kobolds enables 1 monster, Goblins adds variety) 540 546 dng_kobolds_enabled = 1 when /has_upgrade/UPGRADE_DIFF_KOBOLDS == 1. 541 547 dng_monster_count = 1 when /has_upgrade/UPGRADE_DIFF_KOBOLDS == 1. 542 - bonus = bonus + 2 when /has_upgrade/UPGRADE_DIFF_KOBOLDS == 1. 548 + bonus = bonus + 5 when /has_upgrade/UPGRADE_DIFF_KOBOLDS == 1. 543 549 544 550 dng_goblins_enabled = 1 when /has_upgrade/UPGRADE_DIFF_GOBLINS == 1. 545 - bonus = bonus + 2 when /has_upgrade/UPGRADE_DIFF_GOBLINS == 1. 551 + bonus = bonus + 5 when /has_upgrade/UPGRADE_DIFF_GOBLINS == 1. 546 552 547 553 // Monster count upgrades (additive +1 each) 548 554 dng_monster_count = dng_monster_count + 1 when /has_upgrade/UPGRADE_DIFF_MONSTER_2 == 1. 549 - bonus = bonus + 2 when /has_upgrade/UPGRADE_DIFF_MONSTER_2 == 1. 555 + bonus = bonus + 6 when /has_upgrade/UPGRADE_DIFF_MONSTER_2 == 1. 550 556 551 557 dng_monster_count = dng_monster_count + 1 when /has_upgrade/UPGRADE_DIFF_MONSTER_3 == 1. 552 - bonus = bonus + 2 when /has_upgrade/UPGRADE_DIFF_MONSTER_3 == 1. 558 + bonus = bonus + 6 when /has_upgrade/UPGRADE_DIFF_MONSTER_3 == 1. 553 559 554 560 // Gold spawning (from BUFF branch) 555 561 dng_gold_enabled = 0. ··· 671 677 << "Max bot speed: 1000x" when id == UPGRADE_BUFF_SPEED_1000. 672 678 673 679 // DIFFICULTY 674 - << "Stairs in random spot (+$1)" when id == UPGRADE_DIFF_STAIRS_RANDOM. 675 - << "+1 room per floor (+$1)" when id == UPGRADE_DIFF_ROOM_2. 676 - << "Room size varies 3-7 (+$1)" when id == UPGRADE_DIFF_VAR_SIZE. 677 - << "Kobolds spawn (+$2)" when id == UPGRADE_DIFF_KOBOLDS. 678 - << "+1 room per floor (+$1)" when id == UPGRADE_DIFF_ROOM_3. 679 - << "Goblins spawn (+$2)" when id == UPGRADE_DIFF_GOBLINS. 680 - << "+1 monster per floor (+$2)" when id == UPGRADE_DIFF_MONSTER_2. 681 - << "+1 room per floor (+$1)" when id == UPGRADE_DIFF_ROOM_4. 682 - << "+1 monster per floor (+$2)" when id == UPGRADE_DIFF_MONSTER_3. 683 - << "+1 room per floor (+$2)" when id == UPGRADE_DIFF_ROOM_MANY. 680 + << "Stairs in random spot (+$2)" when id == UPGRADE_DIFF_STAIRS_RANDOM. 681 + << "+1 room per floor (+$4)" when id == UPGRADE_DIFF_ROOM_2. 682 + << "Room size varies 3-7 (+$3)" when id == UPGRADE_DIFF_VAR_SIZE. 683 + << "Kobolds spawn (+$5)" when id == UPGRADE_DIFF_KOBOLDS. 684 + << "+1 room per floor (+$4)" when id == UPGRADE_DIFF_ROOM_3. 685 + << "Goblins spawn (+$5)" when id == UPGRADE_DIFF_GOBLINS. 686 + << "+1 monster per floor (+$6)" when id == UPGRADE_DIFF_MONSTER_2. 687 + << "+1 room per floor (+$5)" when id == UPGRADE_DIFF_ROOM_4. 688 + << "+1 monster per floor (+$6)" when id == UPGRADE_DIFF_MONSTER_3. 689 + << "+1 room per floor (+$6)" when id == UPGRADE_DIFF_ROOM_MANY. 684 690 685 691 // LANGUAGE - describe purpose, not syntax! 686 692 // Row 0: Start