amar-rpg 2.1.5 → 2.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/amar-tui.rb +298 -298
  3. data/cli_npc_output_new.rb +2 -2
  4. metadata +4 -4
data/amar-tui.rb CHANGED
@@ -26,13 +26,13 @@ def reapply_colors(text)
26
26
  case line
27
27
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
28
28
  # Character name line - bright cyan
29
- line.fg(14).b
29
+ line.fg(14).bd
30
30
  when /^(Description:.*$)/
31
31
  # Description line - light yellow
32
32
  line.fg(229)
33
33
  when /^(BODY|MIND|SPIRIT)\s*\(/
34
34
  # Characteristic headers - bright yellow
35
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
35
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
36
36
  when /^\s+([A-Z][a-z]+)\s*\(/
37
37
  # Attribute names - bright magenta
38
38
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -41,10 +41,10 @@ def reapply_colors(text)
41
41
  line.fg(7)
42
42
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
43
43
  # Stats line - bright green
44
- line.fg(10).b
44
+ line.fg(10).bd
45
45
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
46
46
  # Weapons/armor/equipment - red
47
- line.fg(202).b
47
+ line.fg(202).bd
48
48
  else
49
49
  line
50
50
  end
@@ -79,13 +79,13 @@ def reapply_colors(text)
79
79
  case line
80
80
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
81
81
  # Character name line - bright cyan
82
- line.fg(14).b
82
+ line.fg(14).bd
83
83
  when /^(Description:.*$)/
84
84
  # Description line - light yellow
85
85
  line.fg(229)
86
86
  when /^(BODY|MIND|SPIRIT)\s*\(/
87
87
  # Characteristic headers - bright yellow
88
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
88
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
89
89
  when /^\s+([A-Z][a-z]+)\s*\(/
90
90
  # Attribute names - bright magenta
91
91
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -94,10 +94,10 @@ def reapply_colors(text)
94
94
  line.fg(7)
95
95
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
96
96
  # Stats line - bright green
97
- line.fg(10).b
97
+ line.fg(10).bd
98
98
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
99
99
  # Weapons/armor/equipment - red
100
- line.fg(202).b
100
+ line.fg(202).bd
101
101
  else
102
102
  line
103
103
  end
@@ -123,13 +123,13 @@ def reapply_colors(text)
123
123
  case line
124
124
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
125
125
  # Character name line - bright cyan
126
- line.fg(14).b
126
+ line.fg(14).bd
127
127
  when /^(Description:.*$)/
128
128
  # Description line - light yellow
129
129
  line.fg(229)
130
130
  when /^(BODY|MIND|SPIRIT)\s*\(/
131
131
  # Characteristic headers - bright yellow
132
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
132
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
133
133
  when /^\s+([A-Z][a-z]+)\s*\(/
134
134
  # Attribute names - bright magenta
135
135
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -138,10 +138,10 @@ def reapply_colors(text)
138
138
  line.fg(7)
139
139
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
140
140
  # Stats line - bright green
141
- line.fg(10).b
141
+ line.fg(10).bd
142
142
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
143
143
  # Weapons/armor/equipment - red
144
- line.fg(202).b
144
+ line.fg(202).bd
145
145
  else
146
146
  line
147
147
  end
@@ -221,13 +221,13 @@ def reapply_colors(text)
221
221
  case line
222
222
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
223
223
  # Character name line - bright cyan
224
- line.fg(14).b
224
+ line.fg(14).bd
225
225
  when /^(Description:.*$)/
226
226
  # Description line - light yellow
227
227
  line.fg(229)
228
228
  when /^(BODY|MIND|SPIRIT)\s*\(/
229
229
  # Characteristic headers - bright yellow
230
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
230
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
231
231
  when /^\s+([A-Z][a-z]+)\s*\(/
232
232
  # Attribute names - bright magenta
233
233
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -236,10 +236,10 @@ def reapply_colors(text)
236
236
  line.fg(7)
237
237
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
238
238
  # Stats line - bright green
239
- line.fg(10).b
239
+ line.fg(10).bd
240
240
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
241
241
  # Weapons/armor/equipment - red
242
- line.fg(202).b
242
+ line.fg(202).bd
243
243
  else
244
244
  line
245
245
  end
@@ -338,13 +338,13 @@ def reapply_colors(text)
338
338
  case line
339
339
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
340
340
  # Character name line - bright cyan
341
- line.fg(14).b
341
+ line.fg(14).bd
342
342
  when /^(Description:.*$)/
343
343
  # Description line - light yellow
344
344
  line.fg(229)
345
345
  when /^(BODY|MIND|SPIRIT)\s*\(/
346
346
  # Characteristic headers - bright yellow
347
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
347
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
348
348
  when /^\s+([A-Z][a-z]+)\s*\(/
349
349
  # Attribute names - bright magenta
350
350
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -353,10 +353,10 @@ def reapply_colors(text)
353
353
  line.fg(7)
354
354
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
355
355
  # Stats line - bright green
356
- line.fg(10).b
356
+ line.fg(10).bd
357
357
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
358
358
  # Weapons/armor/equipment - red
359
- line.fg(202).b
359
+ line.fg(202).bd
360
360
  else
361
361
  line
362
362
  end
@@ -380,13 +380,13 @@ def reapply_colors(text)
380
380
  case line
381
381
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
382
382
  # Character name line - bright cyan
383
- line.fg(14).b
383
+ line.fg(14).bd
384
384
  when /^(Description:.*$)/
385
385
  # Description line - light yellow
386
386
  line.fg(229)
387
387
  when /^(BODY|MIND|SPIRIT)\s*\(/
388
388
  # Characteristic headers - bright yellow
389
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
389
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
390
390
  when /^\s+([A-Z][a-z]+)\s*\(/
391
391
  # Attribute names - bright magenta
392
392
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -395,10 +395,10 @@ def reapply_colors(text)
395
395
  line.fg(7)
396
396
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
397
397
  # Stats line - bright green
398
- line.fg(10).b
398
+ line.fg(10).bd
399
399
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
400
400
  # Weapons/armor/equipment - red
401
- line.fg(202).b
401
+ line.fg(202).bd
402
402
  else
403
403
  line
404
404
  end
@@ -511,13 +511,13 @@ def reapply_colors(text)
511
511
  case line
512
512
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
513
513
  # Character name line - bright cyan
514
- line.fg(14).b
514
+ line.fg(14).bd
515
515
  when /^(Description:.*$)/
516
516
  # Description line - light yellow
517
517
  line.fg(229)
518
518
  when /^(BODY|MIND|SPIRIT)\s*\(/
519
519
  # Characteristic headers - bright yellow
520
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
520
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
521
521
  when /^\s+([A-Z][a-z]+)\s*\(/
522
522
  # Attribute names - bright magenta
523
523
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -526,10 +526,10 @@ def reapply_colors(text)
526
526
  line.fg(7)
527
527
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
528
528
  # Stats line - bright green
529
- line.fg(10).b
529
+ line.fg(10).bd
530
530
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
531
531
  # Weapons/armor/equipment - red
532
- line.fg(202).b
532
+ line.fg(202).bd
533
533
  else
534
534
  line
535
535
  end
@@ -555,13 +555,13 @@ def reapply_colors(text)
555
555
  case line
556
556
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
557
557
  # Character name line - bright cyan
558
- line.fg(14).b
558
+ line.fg(14).bd
559
559
  when /^(Description:.*$)/
560
560
  # Description line - light yellow
561
561
  line.fg(229)
562
562
  when /^(BODY|MIND|SPIRIT)\s*\(/
563
563
  # Characteristic headers - bright yellow
564
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
564
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
565
565
  when /^\s+([A-Z][a-z]+)\s*\(/
566
566
  # Attribute names - bright magenta
567
567
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -570,10 +570,10 @@ def reapply_colors(text)
570
570
  line.fg(7)
571
571
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
572
572
  # Stats line - bright green
573
- line.fg(10).b
573
+ line.fg(10).bd
574
574
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
575
575
  # Weapons/armor/equipment - red
576
- line.fg(202).b
576
+ line.fg(202).bd
577
577
  else
578
578
  line
579
579
  end
@@ -624,13 +624,13 @@ def reapply_colors(text)
624
624
  case line
625
625
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
626
626
  # Character name line - bright cyan
627
- line.fg(14).b
627
+ line.fg(14).bd
628
628
  when /^(Description:.*$)/
629
629
  # Description line - light yellow
630
630
  line.fg(229)
631
631
  when /^(BODY|MIND|SPIRIT)\s*\(/
632
632
  # Characteristic headers - bright yellow
633
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
633
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
634
634
  when /^\s+([A-Z][a-z]+)\s*\(/
635
635
  # Attribute names - bright magenta
636
636
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -639,10 +639,10 @@ def reapply_colors(text)
639
639
  line.fg(7)
640
640
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
641
641
  # Stats line - bright green
642
- line.fg(10).b
642
+ line.fg(10).bd
643
643
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
644
644
  # Weapons/armor/equipment - red
645
- line.fg(202).b
645
+ line.fg(202).bd
646
646
  else
647
647
  line
648
648
  end
@@ -664,13 +664,13 @@ def reapply_colors(text)
664
664
  case line
665
665
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
666
666
  # Character name line - bright cyan
667
- line.fg(14).b
667
+ line.fg(14).bd
668
668
  when /^(Description:.*$)/
669
669
  # Description line - light yellow
670
670
  line.fg(229)
671
671
  when /^(BODY|MIND|SPIRIT)\s*\(/
672
672
  # Characteristic headers - bright yellow
673
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
673
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
674
674
  when /^\s+([A-Z][a-z]+)\s*\(/
675
675
  # Attribute names - bright magenta
676
676
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -679,10 +679,10 @@ def reapply_colors(text)
679
679
  line.fg(7)
680
680
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
681
681
  # Stats line - bright green
682
- line.fg(10).b
682
+ line.fg(10).bd
683
683
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
684
684
  # Weapons/armor/equipment - red
685
- line.fg(202).b
685
+ line.fg(202).bd
686
686
  else
687
687
  line
688
688
  end
@@ -707,16 +707,16 @@ def draw_menu
707
707
  when /UTILITIES/ then 133 # Light magenta
708
708
  else 36 # Default cyan
709
709
  end
710
- menu_text += item.fg(color).b + "\n"
710
+ menu_text += item.fg(color).bd + "\n"
711
711
  else
712
712
  menu_text += item + "\n"
713
713
  end
714
714
  elsif idx == @menu_index
715
715
  # Highlighted item - RTFM style (bold arrow, underlined item)
716
716
  if true
717
- menu_text += "→ ".b + item.u + "\n" # Bold arrow, underlined item
717
+ menu_text += "→ ".bd + item.ul + "\n" # Bold arrow, underlined item
718
718
  else
719
- menu_text += "→ " + item.u + "\n" # Underlined item
719
+ menu_text += "→ " + item.ul + "\n" # Underlined item
720
720
  end
721
721
  else
722
722
  # Grey out legacy items
@@ -738,13 +738,13 @@ def reapply_colors(text)
738
738
  case line
739
739
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
740
740
  # Character name line - bright cyan
741
- line.fg(14).b
741
+ line.fg(14).bd
742
742
  when /^(Description:.*$)/
743
743
  # Description line - light yellow
744
744
  line.fg(229)
745
745
  when /^(BODY|MIND|SPIRIT)\s*\(/
746
746
  # Characteristic headers - bright yellow
747
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
747
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
748
748
  when /^\s+([A-Z][a-z]+)\s*\(/
749
749
  # Attribute names - bright magenta
750
750
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -753,10 +753,10 @@ def reapply_colors(text)
753
753
  line.fg(7)
754
754
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
755
755
  # Stats line - bright green
756
- line.fg(10).b
756
+ line.fg(10).bd
757
757
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
758
758
  # Weapons/armor/equipment - red
759
- line.fg(202).b
759
+ line.fg(202).bd
760
760
  else
761
761
  line
762
762
  end
@@ -787,13 +787,13 @@ def reapply_colors(text)
787
787
  case line
788
788
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
789
789
  # Character name line - bright cyan
790
- line.fg(14).b
790
+ line.fg(14).bd
791
791
  when /^(Description:.*$)/
792
792
  # Description line - light yellow
793
793
  line.fg(229)
794
794
  when /^(BODY|MIND|SPIRIT)\s*\(/
795
795
  # Characteristic headers - bright yellow
796
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
796
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
797
797
  when /^\s+([A-Z][a-z]+)\s*\(/
798
798
  # Attribute names - bright magenta
799
799
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -802,10 +802,10 @@ def reapply_colors(text)
802
802
  line.fg(7)
803
803
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
804
804
  # Stats line - bright green
805
- line.fg(10).b
805
+ line.fg(10).bd
806
806
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
807
807
  # Weapons/armor/equipment - red
808
- line.fg(202).b
808
+ line.fg(202).bd
809
809
  else
810
810
  line
811
811
  end
@@ -838,13 +838,13 @@ def reapply_colors(text)
838
838
  case line
839
839
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
840
840
  # Character name line - bright cyan
841
- line.fg(14).b
841
+ line.fg(14).bd
842
842
  when /^(Description:.*$)/
843
843
  # Description line - light yellow
844
844
  line.fg(229)
845
845
  when /^(BODY|MIND|SPIRIT)\s*\(/
846
846
  # Characteristic headers - bright yellow
847
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
847
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
848
848
  when /^\s+([A-Z][a-z]+)\s*\(/
849
849
  # Attribute names - bright magenta
850
850
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -853,10 +853,10 @@ def reapply_colors(text)
853
853
  line.fg(7)
854
854
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
855
855
  # Stats line - bright green
856
- line.fg(10).b
856
+ line.fg(10).bd
857
857
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
858
858
  # Weapons/armor/equipment - red
859
- line.fg(202).b
859
+ line.fg(202).bd
860
860
  else
861
861
  line
862
862
  end
@@ -896,13 +896,13 @@ def reapply_colors(text)
896
896
  case line
897
897
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
898
898
  # Character name line - bright cyan
899
- line.fg(14).b
899
+ line.fg(14).bd
900
900
  when /^(Description:.*$)/
901
901
  # Description line - light yellow
902
902
  line.fg(229)
903
903
  when /^(BODY|MIND|SPIRIT)\s*\(/
904
904
  # Characteristic headers - bright yellow
905
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
905
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
906
906
  when /^\s+([A-Z][a-z]+)\s*\(/
907
907
  # Attribute names - bright magenta
908
908
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -911,10 +911,10 @@ def reapply_colors(text)
911
911
  line.fg(7)
912
912
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
913
913
  # Stats line - bright green
914
- line.fg(10).b
914
+ line.fg(10).bd
915
915
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
916
916
  # Weapons/armor/equipment - red
917
- line.fg(202).b
917
+ line.fg(202).bd
918
918
  else
919
919
  line
920
920
  end
@@ -937,13 +937,13 @@ def reapply_colors(text)
937
937
  case line
938
938
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
939
939
  # Character name line - bright cyan
940
- line.fg(14).b
940
+ line.fg(14).bd
941
941
  when /^(Description:.*$)/
942
942
  # Description line - light yellow
943
943
  line.fg(229)
944
944
  when /^(BODY|MIND|SPIRIT)\s*\(/
945
945
  # Characteristic headers - bright yellow
946
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
946
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
947
947
  when /^\s+([A-Z][a-z]+)\s*\(/
948
948
  # Attribute names - bright magenta
949
949
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -952,10 +952,10 @@ def reapply_colors(text)
952
952
  line.fg(7)
953
953
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
954
954
  # Stats line - bright green
955
- line.fg(10).b
955
+ line.fg(10).bd
956
956
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
957
957
  # Weapons/armor/equipment - red
958
- line.fg(202).b
958
+ line.fg(202).bd
959
959
  else
960
960
  line
961
961
  end
@@ -986,13 +986,13 @@ def reapply_colors(text)
986
986
  case line
987
987
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
988
988
  # Character name line - bright cyan
989
- line.fg(14).b
989
+ line.fg(14).bd
990
990
  when /^(Description:.*$)/
991
991
  # Description line - light yellow
992
992
  line.fg(229)
993
993
  when /^(BODY|MIND|SPIRIT)\s*\(/
994
994
  # Characteristic headers - bright yellow
995
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
995
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
996
996
  when /^\s+([A-Z][a-z]+)\s*\(/
997
997
  # Attribute names - bright magenta
998
998
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -1001,10 +1001,10 @@ def reapply_colors(text)
1001
1001
  line.fg(7)
1002
1002
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
1003
1003
  # Stats line - bright green
1004
- line.fg(10).b
1004
+ line.fg(10).bd
1005
1005
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
1006
1006
  # Weapons/armor/equipment - red
1007
- line.fg(202).b
1007
+ line.fg(202).bd
1008
1008
  else
1009
1009
  line
1010
1010
  end
@@ -1048,13 +1048,13 @@ def reapply_colors(text)
1048
1048
  case line
1049
1049
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
1050
1050
  # Character name line - bright cyan
1051
- line.fg(14).b
1051
+ line.fg(14).bd
1052
1052
  when /^(Description:.*$)/
1053
1053
  # Description line - light yellow
1054
1054
  line.fg(229)
1055
1055
  when /^(BODY|MIND|SPIRIT)\s*\(/
1056
1056
  # Characteristic headers - bright yellow
1057
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
1057
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
1058
1058
  when /^\s+([A-Z][a-z]+)\s*\(/
1059
1059
  # Attribute names - bright magenta
1060
1060
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -1063,10 +1063,10 @@ def reapply_colors(text)
1063
1063
  line.fg(7)
1064
1064
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
1065
1065
  # Stats line - bright green
1066
- line.fg(10).b
1066
+ line.fg(10).bd
1067
1067
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
1068
1068
  # Weapons/armor/equipment - red
1069
- line.fg(202).b
1069
+ line.fg(202).bd
1070
1070
  else
1071
1071
  line
1072
1072
  end
@@ -1160,7 +1160,7 @@ def convert_ansi_to_rcurses(text)
1160
1160
  # Apply rcurses color
1161
1161
  if code.start_with?('1;')
1162
1162
  # Bold + color
1163
- result += colored_text.fg(color).b
1163
+ result += colored_text.fg(color).bd
1164
1164
  else
1165
1165
  result += colored_text.fg(color)
1166
1166
  end
@@ -1191,13 +1191,13 @@ def reapply_colors(text)
1191
1191
  case line
1192
1192
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
1193
1193
  # Character name line - bright cyan
1194
- line.fg(14).b
1194
+ line.fg(14).bd
1195
1195
  when /^(Description:.*$)/
1196
1196
  # Description line - light yellow
1197
1197
  line.fg(229)
1198
1198
  when /^(BODY|MIND|SPIRIT)\s*\(/
1199
1199
  # Characteristic headers - bright yellow
1200
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
1200
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
1201
1201
  when /^\s+([A-Z][a-z]+)\s*\(/
1202
1202
  # Attribute names - bright magenta
1203
1203
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -1206,10 +1206,10 @@ def reapply_colors(text)
1206
1206
  line.fg(7)
1207
1207
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
1208
1208
  # Stats line - bright green
1209
- line.fg(10).b
1209
+ line.fg(10).bd
1210
1210
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
1211
1211
  # Weapons/armor/equipment - red
1212
- line.fg(202).b
1212
+ line.fg(202).bd
1213
1213
  else
1214
1214
  line
1215
1215
  end
@@ -1311,13 +1311,13 @@ def reapply_colors(text)
1311
1311
  case line
1312
1312
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
1313
1313
  # Character name line - bright cyan
1314
- line.fg(14).b
1314
+ line.fg(14).bd
1315
1315
  when /^(Description:.*$)/
1316
1316
  # Description line - light yellow
1317
1317
  line.fg(229)
1318
1318
  when /^(BODY|MIND|SPIRIT)\s*\(/
1319
1319
  # Characteristic headers - bright yellow
1320
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
1320
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
1321
1321
  when /^\s+([A-Z][a-z]+)\s*\(/
1322
1322
  # Attribute names - bright magenta
1323
1323
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -1326,10 +1326,10 @@ def reapply_colors(text)
1326
1326
  line.fg(7)
1327
1327
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
1328
1328
  # Stats line - bright green
1329
- line.fg(10).b
1329
+ line.fg(10).bd
1330
1330
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
1331
1331
  # Weapons/armor/equipment - red
1332
- line.fg(202).b
1332
+ line.fg(202).bd
1333
1333
  else
1334
1334
  line
1335
1335
  end
@@ -1382,13 +1382,13 @@ def reapply_colors(text)
1382
1382
  case line
1383
1383
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
1384
1384
  # Character name line - bright cyan
1385
- line.fg(14).b
1385
+ line.fg(14).bd
1386
1386
  when /^(Description:.*$)/
1387
1387
  # Description line - light yellow
1388
1388
  line.fg(229)
1389
1389
  when /^(BODY|MIND|SPIRIT)\s*\(/
1390
1390
  # Characteristic headers - bright yellow
1391
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
1391
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
1392
1392
  when /^\s+([A-Z][a-z]+)\s*\(/
1393
1393
  # Attribute names - bright magenta
1394
1394
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -1397,10 +1397,10 @@ def reapply_colors(text)
1397
1397
  line.fg(7)
1398
1398
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
1399
1399
  # Stats line - bright green
1400
- line.fg(10).b
1400
+ line.fg(10).bd
1401
1401
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
1402
1402
  # Weapons/armor/equipment - red
1403
- line.fg(202).b
1403
+ line.fg(202).bd
1404
1404
  else
1405
1405
  line
1406
1406
  end
@@ -1636,13 +1636,13 @@ def reapply_colors(text)
1636
1636
  case line
1637
1637
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
1638
1638
  # Character name line - bright cyan
1639
- line.fg(14).b
1639
+ line.fg(14).bd
1640
1640
  when /^(Description:.*$)/
1641
1641
  # Description line - light yellow
1642
1642
  line.fg(229)
1643
1643
  when /^(BODY|MIND|SPIRIT)\s*\(/
1644
1644
  # Characteristic headers - bright yellow
1645
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
1645
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
1646
1646
  when /^\s+([A-Z][a-z]+)\s*\(/
1647
1647
  # Attribute names - bright magenta
1648
1648
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -1651,10 +1651,10 @@ def reapply_colors(text)
1651
1651
  line.fg(7)
1652
1652
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
1653
1653
  # Stats line - bright green
1654
- line.fg(10).b
1654
+ line.fg(10).bd
1655
1655
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
1656
1656
  # Weapons/armor/equipment - red
1657
- line.fg(202).b
1657
+ line.fg(202).bd
1658
1658
  else
1659
1659
  line
1660
1660
  end
@@ -1723,13 +1723,13 @@ def reapply_colors(text)
1723
1723
  case line
1724
1724
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
1725
1725
  # Character name line - bright cyan
1726
- line.fg(14).b
1726
+ line.fg(14).bd
1727
1727
  when /^(Description:.*$)/
1728
1728
  # Description line - light yellow
1729
1729
  line.fg(229)
1730
1730
  when /^(BODY|MIND|SPIRIT)\s*\(/
1731
1731
  # Characteristic headers - bright yellow
1732
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
1732
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
1733
1733
  when /^\s+([A-Z][a-z]+)\s*\(/
1734
1734
  # Attribute names - bright magenta
1735
1735
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -1738,10 +1738,10 @@ def reapply_colors(text)
1738
1738
  line.fg(7)
1739
1739
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
1740
1740
  # Stats line - bright green
1741
- line.fg(10).b
1741
+ line.fg(10).bd
1742
1742
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
1743
1743
  # Weapons/armor/equipment - red
1744
- line.fg(202).b
1744
+ line.fg(202).bd
1745
1745
  else
1746
1746
  line
1747
1747
  end
@@ -1782,9 +1782,9 @@ def roll_o6
1782
1782
  roll_str = roll.to_s.rjust(3).fg(roll_color)
1783
1783
 
1784
1784
  if roll >= 10
1785
- results << "#{roll_str} " + "(Critical!)".fg(46).b
1785
+ results << "#{roll_str} " + "(Critical!)".fg(46).bd
1786
1786
  elsif roll <= -3
1787
- results << "#{roll_str} " + "(Fumble!)".fg(196).b
1787
+ results << "#{roll_str} " + "(Fumble!)".fg(196).bd
1788
1788
  else
1789
1789
  results << "#{roll_str}"
1790
1790
  end
@@ -1848,13 +1848,13 @@ def reapply_colors(text)
1848
1848
  case line
1849
1849
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
1850
1850
  # Character name line - bright cyan
1851
- line.fg(14).b
1851
+ line.fg(14).bd
1852
1852
  when /^(Description:.*$)/
1853
1853
  # Description line - light yellow
1854
1854
  line.fg(229)
1855
1855
  when /^(BODY|MIND|SPIRIT)\s*\(/
1856
1856
  # Characteristic headers - bright yellow
1857
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
1857
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
1858
1858
  when /^\s+([A-Z][a-z]+)\s*\(/
1859
1859
  # Attribute names - bright magenta
1860
1860
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -1863,10 +1863,10 @@ def reapply_colors(text)
1863
1863
  line.fg(7)
1864
1864
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
1865
1865
  # Stats line - bright green
1866
- line.fg(10).b
1866
+ line.fg(10).bd
1867
1867
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
1868
1868
  # Weapons/armor/equipment - red
1869
- line.fg(202).b
1869
+ line.fg(202).bd
1870
1870
  else
1871
1871
  line
1872
1872
  end
@@ -1925,13 +1925,13 @@ def reapply_colors(text)
1925
1925
  case line
1926
1926
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
1927
1927
  # Character name line - bright cyan
1928
- line.fg(14).b
1928
+ line.fg(14).bd
1929
1929
  when /^(Description:.*$)/
1930
1930
  # Description line - light yellow
1931
1931
  line.fg(229)
1932
1932
  when /^(BODY|MIND|SPIRIT)\s*\(/
1933
1933
  # Characteristic headers - bright yellow
1934
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
1934
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
1935
1935
  when /^\s+([A-Z][a-z]+)\s*\(/
1936
1936
  # Attribute names - bright magenta
1937
1937
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -1940,10 +1940,10 @@ def reapply_colors(text)
1940
1940
  line.fg(7)
1941
1941
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
1942
1942
  # Stats line - bright green
1943
- line.fg(10).b
1943
+ line.fg(10).bd
1944
1944
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
1945
1945
  # Weapons/armor/equipment - red
1946
- line.fg(202).b
1946
+ line.fg(202).bd
1947
1947
  else
1948
1948
  line
1949
1949
  end
@@ -2160,13 +2160,13 @@ def reapply_colors(text)
2160
2160
  case line
2161
2161
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
2162
2162
  # Character name line - bright cyan
2163
- line.fg(14).b
2163
+ line.fg(14).bd
2164
2164
  when /^(Description:.*$)/
2165
2165
  # Description line - light yellow
2166
2166
  line.fg(229)
2167
2167
  when /^(BODY|MIND|SPIRIT)\s*\(/
2168
2168
  # Characteristic headers - bright yellow
2169
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
2169
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
2170
2170
  when /^\s+([A-Z][a-z]+)\s*\(/
2171
2171
  # Attribute names - bright magenta
2172
2172
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -2175,10 +2175,10 @@ def reapply_colors(text)
2175
2175
  line.fg(7)
2176
2176
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
2177
2177
  # Stats line - bright green
2178
- line.fg(10).b
2178
+ line.fg(10).bd
2179
2179
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
2180
2180
  # Weapons/armor/equipment - red
2181
- line.fg(202).b
2181
+ line.fg(202).bd
2182
2182
  else
2183
2183
  line
2184
2184
  end
@@ -2265,13 +2265,13 @@ def reapply_colors(text)
2265
2265
  case line
2266
2266
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
2267
2267
  # Character name line - bright cyan
2268
- line.fg(14).b
2268
+ line.fg(14).bd
2269
2269
  when /^(Description:.*$)/
2270
2270
  # Description line - light yellow
2271
2271
  line.fg(229)
2272
2272
  when /^(BODY|MIND|SPIRIT)\s*\(/
2273
2273
  # Characteristic headers - bright yellow
2274
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
2274
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
2275
2275
  when /^\s+([A-Z][a-z]+)\s*\(/
2276
2276
  # Attribute names - bright magenta
2277
2277
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -2280,10 +2280,10 @@ def reapply_colors(text)
2280
2280
  line.fg(7)
2281
2281
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
2282
2282
  # Stats line - bright green
2283
- line.fg(10).b
2283
+ line.fg(10).bd
2284
2284
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
2285
2285
  # Weapons/armor/equipment - red
2286
- line.fg(202).b
2286
+ line.fg(202).bd
2287
2287
  else
2288
2288
  line
2289
2289
  end
@@ -2428,13 +2428,13 @@ def reapply_colors(text)
2428
2428
  case line
2429
2429
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
2430
2430
  # Character name line - bright cyan
2431
- line.fg(14).b
2431
+ line.fg(14).bd
2432
2432
  when /^(Description:.*$)/
2433
2433
  # Description line - light yellow
2434
2434
  line.fg(229)
2435
2435
  when /^(BODY|MIND|SPIRIT)\s*\(/
2436
2436
  # Characteristic headers - bright yellow
2437
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
2437
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
2438
2438
  when /^\s+([A-Z][a-z]+)\s*\(/
2439
2439
  # Attribute names - bright magenta
2440
2440
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -2443,10 +2443,10 @@ def reapply_colors(text)
2443
2443
  line.fg(7)
2444
2444
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
2445
2445
  # Stats line - bright green
2446
- line.fg(10).b
2446
+ line.fg(10).bd
2447
2447
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
2448
2448
  # Weapons/armor/equipment - red
2449
- line.fg(202).b
2449
+ line.fg(202).bd
2450
2450
  else
2451
2451
  line
2452
2452
  end
@@ -2489,13 +2489,13 @@ def reapply_colors(text)
2489
2489
  case line
2490
2490
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
2491
2491
  # Character name line - bright cyan
2492
- line.fg(14).b
2492
+ line.fg(14).bd
2493
2493
  when /^(Description:.*$)/
2494
2494
  # Description line - light yellow
2495
2495
  line.fg(229)
2496
2496
  when /^(BODY|MIND|SPIRIT)\s*\(/
2497
2497
  # Characteristic headers - bright yellow
2498
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
2498
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
2499
2499
  when /^\s+([A-Z][a-z]+)\s*\(/
2500
2500
  # Attribute names - bright magenta
2501
2501
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -2504,10 +2504,10 @@ def reapply_colors(text)
2504
2504
  line.fg(7)
2505
2505
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
2506
2506
  # Stats line - bright green
2507
- line.fg(10).b
2507
+ line.fg(10).bd
2508
2508
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
2509
2509
  # Weapons/armor/equipment - red
2510
- line.fg(202).b
2510
+ line.fg(202).bd
2511
2511
  else
2512
2512
  line
2513
2513
  end
@@ -2562,13 +2562,13 @@ def reapply_colors(text)
2562
2562
  case line
2563
2563
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
2564
2564
  # Character name line - bright cyan
2565
- line.fg(14).b
2565
+ line.fg(14).bd
2566
2566
  when /^(Description:.*$)/
2567
2567
  # Description line - light yellow
2568
2568
  line.fg(229)
2569
2569
  when /^(BODY|MIND|SPIRIT)\s*\(/
2570
2570
  # Characteristic headers - bright yellow
2571
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
2571
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
2572
2572
  when /^\s+([A-Z][a-z]+)\s*\(/
2573
2573
  # Attribute names - bright magenta
2574
2574
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -2577,10 +2577,10 @@ def reapply_colors(text)
2577
2577
  line.fg(7)
2578
2578
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
2579
2579
  # Stats line - bright green
2580
- line.fg(10).b
2580
+ line.fg(10).bd
2581
2581
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
2582
2582
  # Weapons/armor/equipment - red
2583
- line.fg(202).b
2583
+ line.fg(202).bd
2584
2584
  else
2585
2585
  line
2586
2586
  end
@@ -2637,13 +2637,13 @@ def reapply_colors(text)
2637
2637
  case line
2638
2638
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
2639
2639
  # Character name line - bright cyan
2640
- line.fg(14).b
2640
+ line.fg(14).bd
2641
2641
  when /^(Description:.*$)/
2642
2642
  # Description line - light yellow
2643
2643
  line.fg(229)
2644
2644
  when /^(BODY|MIND|SPIRIT)\s*\(/
2645
2645
  # Characteristic headers - bright yellow
2646
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
2646
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
2647
2647
  when /^\s+([A-Z][a-z]+)\s*\(/
2648
2648
  # Attribute names - bright magenta
2649
2649
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -2652,10 +2652,10 @@ def reapply_colors(text)
2652
2652
  line.fg(7)
2653
2653
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
2654
2654
  # Stats line - bright green
2655
- line.fg(10).b
2655
+ line.fg(10).bd
2656
2656
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
2657
2657
  # Weapons/armor/equipment - red
2658
- line.fg(202).b
2658
+ line.fg(202).bd
2659
2659
  else
2660
2660
  line
2661
2661
  end
@@ -2711,13 +2711,13 @@ def reapply_colors(text)
2711
2711
  case line
2712
2712
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
2713
2713
  # Character name line - bright cyan
2714
- line.fg(14).b
2714
+ line.fg(14).bd
2715
2715
  when /^(Description:.*$)/
2716
2716
  # Description line - light yellow
2717
2717
  line.fg(229)
2718
2718
  when /^(BODY|MIND|SPIRIT)\s*\(/
2719
2719
  # Characteristic headers - bright yellow
2720
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
2720
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
2721
2721
  when /^\s+([A-Z][a-z]+)\s*\(/
2722
2722
  # Attribute names - bright magenta
2723
2723
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -2726,10 +2726,10 @@ def reapply_colors(text)
2726
2726
  line.fg(7)
2727
2727
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
2728
2728
  # Stats line - bright green
2729
- line.fg(10).b
2729
+ line.fg(10).bd
2730
2730
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
2731
2731
  # Weapons/armor/equipment - red
2732
- line.fg(202).b
2732
+ line.fg(202).bd
2733
2733
  else
2734
2734
  line
2735
2735
  end
@@ -2852,13 +2852,13 @@ def reapply_colors(text)
2852
2852
  case line
2853
2853
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
2854
2854
  # Character name line - bright cyan
2855
- line.fg(14).b
2855
+ line.fg(14).bd
2856
2856
  when /^(Description:.*$)/
2857
2857
  # Description line - light yellow
2858
2858
  line.fg(229)
2859
2859
  when /^(BODY|MIND|SPIRIT)\s*\(/
2860
2860
  # Characteristic headers - bright yellow
2861
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
2861
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
2862
2862
  when /^\s+([A-Z][a-z]+)\s*\(/
2863
2863
  # Attribute names - bright magenta
2864
2864
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -2867,10 +2867,10 @@ def reapply_colors(text)
2867
2867
  line.fg(7)
2868
2868
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
2869
2869
  # Stats line - bright green
2870
- line.fg(10).b
2870
+ line.fg(10).bd
2871
2871
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
2872
2872
  # Weapons/armor/equipment - red
2873
- line.fg(202).b
2873
+ line.fg(202).bd
2874
2874
  else
2875
2875
  line
2876
2876
  end
@@ -3008,13 +3008,13 @@ def reapply_colors(text)
3008
3008
  case line
3009
3009
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
3010
3010
  # Character name line - bright cyan
3011
- line.fg(14).b
3011
+ line.fg(14).bd
3012
3012
  when /^(Description:.*$)/
3013
3013
  # Description line - light yellow
3014
3014
  line.fg(229)
3015
3015
  when /^(BODY|MIND|SPIRIT)\s*\(/
3016
3016
  # Characteristic headers - bright yellow
3017
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
3017
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
3018
3018
  when /^\s+([A-Z][a-z]+)\s*\(/
3019
3019
  # Attribute names - bright magenta
3020
3020
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -3023,10 +3023,10 @@ def reapply_colors(text)
3023
3023
  line.fg(7)
3024
3024
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
3025
3025
  # Stats line - bright green
3026
- line.fg(10).b
3026
+ line.fg(10).bd
3027
3027
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
3028
3028
  # Weapons/armor/equipment - red
3029
- line.fg(202).b
3029
+ line.fg(202).bd
3030
3030
  else
3031
3031
  line
3032
3032
  end
@@ -3077,13 +3077,13 @@ def reapply_colors(text)
3077
3077
  case line
3078
3078
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
3079
3079
  # Character name line - bright cyan
3080
- line.fg(14).b
3080
+ line.fg(14).bd
3081
3081
  when /^(Description:.*$)/
3082
3082
  # Description line - light yellow
3083
3083
  line.fg(229)
3084
3084
  when /^(BODY|MIND|SPIRIT)\s*\(/
3085
3085
  # Characteristic headers - bright yellow
3086
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
3086
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
3087
3087
  when /^\s+([A-Z][a-z]+)\s*\(/
3088
3088
  # Attribute names - bright magenta
3089
3089
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -3092,10 +3092,10 @@ def reapply_colors(text)
3092
3092
  line.fg(7)
3093
3093
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
3094
3094
  # Stats line - bright green
3095
- line.fg(10).b
3095
+ line.fg(10).bd
3096
3096
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
3097
3097
  # Weapons/armor/equipment - red
3098
- line.fg(202).b
3098
+ line.fg(202).bd
3099
3099
  else
3100
3100
  line
3101
3101
  end
@@ -3131,13 +3131,13 @@ def reapply_colors(text)
3131
3131
  case line
3132
3132
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
3133
3133
  # Character name line - bright cyan
3134
- line.fg(14).b
3134
+ line.fg(14).bd
3135
3135
  when /^(Description:.*$)/
3136
3136
  # Description line - light yellow
3137
3137
  line.fg(229)
3138
3138
  when /^(BODY|MIND|SPIRIT)\s*\(/
3139
3139
  # Characteristic headers - bright yellow
3140
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
3140
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
3141
3141
  when /^\s+([A-Z][a-z]+)\s*\(/
3142
3142
  # Attribute names - bright magenta
3143
3143
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -3146,10 +3146,10 @@ def reapply_colors(text)
3146
3146
  line.fg(7)
3147
3147
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
3148
3148
  # Stats line - bright green
3149
- line.fg(10).b
3149
+ line.fg(10).bd
3150
3150
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
3151
3151
  # Weapons/armor/equipment - red
3152
- line.fg(202).b
3152
+ line.fg(202).bd
3153
3153
  else
3154
3154
  line
3155
3155
  end
@@ -3214,13 +3214,13 @@ def reapply_colors(text)
3214
3214
  case line
3215
3215
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
3216
3216
  # Character name line - bright cyan
3217
- line.fg(14).b
3217
+ line.fg(14).bd
3218
3218
  when /^(Description:.*$)/
3219
3219
  # Description line - light yellow
3220
3220
  line.fg(229)
3221
3221
  when /^(BODY|MIND|SPIRIT)\s*\(/
3222
3222
  # Characteristic headers - bright yellow
3223
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
3223
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
3224
3224
  when /^\s+([A-Z][a-z]+)\s*\(/
3225
3225
  # Attribute names - bright magenta
3226
3226
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -3229,10 +3229,10 @@ def reapply_colors(text)
3229
3229
  line.fg(7)
3230
3230
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
3231
3231
  # Stats line - bright green
3232
- line.fg(10).b
3232
+ line.fg(10).bd
3233
3233
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
3234
3234
  # Weapons/armor/equipment - red
3235
- line.fg(202).b
3235
+ line.fg(202).bd
3236
3236
  else
3237
3237
  line
3238
3238
  end
@@ -3264,13 +3264,13 @@ def reapply_colors(text)
3264
3264
  case line
3265
3265
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
3266
3266
  # Character name line - bright cyan
3267
- line.fg(14).b
3267
+ line.fg(14).bd
3268
3268
  when /^(Description:.*$)/
3269
3269
  # Description line - light yellow
3270
3270
  line.fg(229)
3271
3271
  when /^(BODY|MIND|SPIRIT)\s*\(/
3272
3272
  # Characteristic headers - bright yellow
3273
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
3273
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
3274
3274
  when /^\s+([A-Z][a-z]+)\s*\(/
3275
3275
  # Attribute names - bright magenta
3276
3276
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -3279,10 +3279,10 @@ def reapply_colors(text)
3279
3279
  line.fg(7)
3280
3280
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
3281
3281
  # Stats line - bright green
3282
- line.fg(10).b
3282
+ line.fg(10).bd
3283
3283
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
3284
3284
  # Weapons/armor/equipment - red
3285
- line.fg(202).b
3285
+ line.fg(202).bd
3286
3286
  else
3287
3287
  line
3288
3288
  end
@@ -3298,9 +3298,9 @@ def colorize_output(text, type = :default)
3298
3298
  # Always apply colors
3299
3299
  case type
3300
3300
  when :header
3301
- text.fg(14).b # Bright cyan bold
3301
+ text.fg(14).bd # Bright cyan bold
3302
3302
  when :subheader
3303
- text.fg(11).b # Bright yellow bold
3303
+ text.fg(11).bd # Bright yellow bold
3304
3304
  when :label
3305
3305
  text.fg(13) # Bright magenta (no bold)
3306
3306
  when :value
@@ -3314,7 +3314,7 @@ def colorize_output(text, type = :default)
3314
3314
  when :dice
3315
3315
  text.fg(202) # Orange (for dice/skill values)
3316
3316
  when :name
3317
- text.fg(15).b # Bright white bold
3317
+ text.fg(15).bd # Bright white bold
3318
3318
  else
3319
3319
  text
3320
3320
  end
@@ -3327,13 +3327,13 @@ def reapply_colors(text)
3327
3327
  case line
3328
3328
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
3329
3329
  # Character name line - bright cyan
3330
- line.fg(14).b
3330
+ line.fg(14).bd
3331
3331
  when /^(Description:.*$)/
3332
3332
  # Description line - light yellow
3333
3333
  line.fg(229)
3334
3334
  when /^(BODY|MIND|SPIRIT)\s*\(/
3335
3335
  # Characteristic headers - bright yellow
3336
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
3336
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
3337
3337
  when /^\s+([A-Z][a-z]+)\s*\(/
3338
3338
  # Attribute names - bright magenta
3339
3339
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -3342,10 +3342,10 @@ def reapply_colors(text)
3342
3342
  line.fg(7)
3343
3343
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
3344
3344
  # Stats line - bright green
3345
- line.fg(10).b
3345
+ line.fg(10).bd
3346
3346
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
3347
3347
  # Weapons/armor/equipment - red
3348
- line.fg(202).b
3348
+ line.fg(202).bd
3349
3349
  else
3350
3350
  line
3351
3351
  end
@@ -3382,13 +3382,13 @@ def reapply_colors(text)
3382
3382
  case line
3383
3383
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
3384
3384
  # Character name line - bright cyan
3385
- line.fg(14).b
3385
+ line.fg(14).bd
3386
3386
  when /^(Description:.*$)/
3387
3387
  # Description line - light yellow
3388
3388
  line.fg(229)
3389
3389
  when /^(BODY|MIND|SPIRIT)\s*\(/
3390
3390
  # Characteristic headers - bright yellow
3391
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
3391
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
3392
3392
  when /^\s+([A-Z][a-z]+)\s*\(/
3393
3393
  # Attribute names - bright magenta
3394
3394
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -3397,10 +3397,10 @@ def reapply_colors(text)
3397
3397
  line.fg(7)
3398
3398
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
3399
3399
  # Stats line - bright green
3400
- line.fg(10).b
3400
+ line.fg(10).bd
3401
3401
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
3402
3402
  # Weapons/armor/equipment - red
3403
- line.fg(202).b
3403
+ line.fg(202).bd
3404
3404
  else
3405
3405
  line
3406
3406
  end
@@ -3430,13 +3430,13 @@ def reapply_colors(text)
3430
3430
  case line
3431
3431
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
3432
3432
  # Character name line - bright cyan
3433
- line.fg(14).b
3433
+ line.fg(14).bd
3434
3434
  when /^(Description:.*$)/
3435
3435
  # Description line - light yellow
3436
3436
  line.fg(229)
3437
3437
  when /^(BODY|MIND|SPIRIT)\s*\(/
3438
3438
  # Characteristic headers - bright yellow
3439
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
3439
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
3440
3440
  when /^\s+([A-Z][a-z]+)\s*\(/
3441
3441
  # Attribute names - bright magenta
3442
3442
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -3445,10 +3445,10 @@ def reapply_colors(text)
3445
3445
  line.fg(7)
3446
3446
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
3447
3447
  # Stats line - bright green
3448
- line.fg(10).b
3448
+ line.fg(10).bd
3449
3449
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
3450
3450
  # Weapons/armor/equipment - red
3451
- line.fg(202).b
3451
+ line.fg(202).bd
3452
3452
  else
3453
3453
  line
3454
3454
  end
@@ -3544,13 +3544,13 @@ def reapply_colors(text)
3544
3544
  case line
3545
3545
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
3546
3546
  # Character name line - bright cyan
3547
- line.fg(14).b
3547
+ line.fg(14).bd
3548
3548
  when /^(Description:.*$)/
3549
3549
  # Description line - light yellow
3550
3550
  line.fg(229)
3551
3551
  when /^(BODY|MIND|SPIRIT)\s*\(/
3552
3552
  # Characteristic headers - bright yellow
3553
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
3553
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
3554
3554
  when /^\s+([A-Z][a-z]+)\s*\(/
3555
3555
  # Attribute names - bright magenta
3556
3556
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -3559,10 +3559,10 @@ def reapply_colors(text)
3559
3559
  line.fg(7)
3560
3560
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
3561
3561
  # Stats line - bright green
3562
- line.fg(10).b
3562
+ line.fg(10).bd
3563
3563
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
3564
3564
  # Weapons/armor/equipment - red
3565
- line.fg(202).b
3565
+ line.fg(202).bd
3566
3566
  else
3567
3567
  line
3568
3568
  end
@@ -3639,13 +3639,13 @@ def reapply_colors(text)
3639
3639
  case line
3640
3640
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
3641
3641
  # Character name line - bright cyan
3642
- line.fg(14).b
3642
+ line.fg(14).bd
3643
3643
  when /^(Description:.*$)/
3644
3644
  # Description line - light yellow
3645
3645
  line.fg(229)
3646
3646
  when /^(BODY|MIND|SPIRIT)\s*\(/
3647
3647
  # Characteristic headers - bright yellow
3648
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
3648
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
3649
3649
  when /^\s+([A-Z][a-z]+)\s*\(/
3650
3650
  # Attribute names - bright magenta
3651
3651
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -3654,10 +3654,10 @@ def reapply_colors(text)
3654
3654
  line.fg(7)
3655
3655
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
3656
3656
  # Stats line - bright green
3657
- line.fg(10).b
3657
+ line.fg(10).bd
3658
3658
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
3659
3659
  # Weapons/armor/equipment - red
3660
- line.fg(202).b
3660
+ line.fg(202).bd
3661
3661
  else
3662
3662
  line
3663
3663
  end
@@ -3890,13 +3890,13 @@ def reapply_colors(text)
3890
3890
  case line
3891
3891
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
3892
3892
  # Character name line - bright cyan
3893
- line.fg(14).b
3893
+ line.fg(14).bd
3894
3894
  when /^(Description:.*$)/
3895
3895
  # Description line - light yellow
3896
3896
  line.fg(229)
3897
3897
  when /^(BODY|MIND|SPIRIT)\s*\(/
3898
3898
  # Characteristic headers - bright yellow
3899
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
3899
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
3900
3900
  when /^\s+([A-Z][a-z]+)\s*\(/
3901
3901
  # Attribute names - bright magenta
3902
3902
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -3905,10 +3905,10 @@ def reapply_colors(text)
3905
3905
  line.fg(7)
3906
3906
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
3907
3907
  # Stats line - bright green
3908
- line.fg(10).b
3908
+ line.fg(10).bd
3909
3909
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
3910
3910
  # Weapons/armor/equipment - red
3911
- line.fg(202).b
3911
+ line.fg(202).bd
3912
3912
  else
3913
3913
  line
3914
3914
  end
@@ -4225,13 +4225,13 @@ def reapply_colors(text)
4225
4225
  case line
4226
4226
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
4227
4227
  # Character name line - bright cyan
4228
- line.fg(14).b
4228
+ line.fg(14).bd
4229
4229
  when /^(Description:.*$)/
4230
4230
  # Description line - light yellow
4231
4231
  line.fg(229)
4232
4232
  when /^(BODY|MIND|SPIRIT)\s*\(/
4233
4233
  # Characteristic headers - bright yellow
4234
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
4234
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
4235
4235
  when /^\s+([A-Z][a-z]+)\s*\(/
4236
4236
  # Attribute names - bright magenta
4237
4237
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -4240,10 +4240,10 @@ def reapply_colors(text)
4240
4240
  line.fg(7)
4241
4241
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
4242
4242
  # Stats line - bright green
4243
- line.fg(10).b
4243
+ line.fg(10).bd
4244
4244
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
4245
4245
  # Weapons/armor/equipment - red
4246
- line.fg(202).b
4246
+ line.fg(202).bd
4247
4247
  else
4248
4248
  line
4249
4249
  end
@@ -4457,13 +4457,13 @@ def reapply_colors(text)
4457
4457
  case line
4458
4458
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
4459
4459
  # Character name line - bright cyan
4460
- line.fg(14).b
4460
+ line.fg(14).bd
4461
4461
  when /^(Description:.*$)/
4462
4462
  # Description line - light yellow
4463
4463
  line.fg(229)
4464
4464
  when /^(BODY|MIND|SPIRIT)\s*\(/
4465
4465
  # Characteristic headers - bright yellow
4466
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
4466
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
4467
4467
  when /^\s+([A-Z][a-z]+)\s*\(/
4468
4468
  # Attribute names - bright magenta
4469
4469
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -4472,10 +4472,10 @@ def reapply_colors(text)
4472
4472
  line.fg(7)
4473
4473
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
4474
4474
  # Stats line - bright green
4475
- line.fg(10).b
4475
+ line.fg(10).bd
4476
4476
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
4477
4477
  # Weapons/armor/equipment - red
4478
- line.fg(202).b
4478
+ line.fg(202).bd
4479
4479
  else
4480
4480
  line
4481
4481
  end
@@ -4500,8 +4500,8 @@ def generate_weather_ui
4500
4500
  end
4501
4501
 
4502
4502
  # Get Month - Always use colors for weather UI
4503
- mstring = "WEATHER GENERATOR".fg(14).b + "\n"
4504
- mstring += "Select month:".fg(14).b + "\n"
4503
+ mstring = "WEATHER GENERATOR".fg(14).bd + "\n"
4504
+ mstring += "Select month:".fg(14).bd + "\n"
4505
4505
  7.times do |i|
4506
4506
  mstring += i.to_s.rjust(2).fg(202) + ": " # Orange for numbers
4507
4507
  mstring += $Month[i].fg(7).ljust(30) # White for month names
@@ -4526,7 +4526,7 @@ def generate_weather_ui
4526
4526
  $mn = month
4527
4527
 
4528
4528
  # Get weather conditions - Always use colors
4529
- weather_text = "\n" + "Select weather conditions:".fg(14).b + "\n\n"
4529
+ weather_text = "\n" + "Select weather conditions:".fg(14).bd + "\n\n"
4530
4530
  weather_text += " 1".fg(202) + ": " + "Arctic".fg(51) + "\n" # Cyan for cold
4531
4531
  weather_text += " 2".fg(202) + ": " + "Winter".fg(195) + "\n" # Light blue
4532
4532
  weather_text += " 3".fg(202) + ": " + "Cold".fg(117) + "\n" # Light cyan
@@ -4553,13 +4553,13 @@ def generate_weather_ui
4553
4553
  weather = 9 if weather > 9
4554
4554
 
4555
4555
  # Get wind - Always use colors
4556
- wind_text = "\n" + "Select wind conditions:".fg(14).b + "\n\n"
4557
- wind_text += "Wind Direction:".fg(11).b + "\n"
4556
+ wind_text = "\n" + "Select wind conditions:".fg(14).bd + "\n\n"
4557
+ wind_text += "Wind Direction:".fg(11).bd + "\n"
4558
4558
  wind_text += " 0".fg(202) + ": N " + "1".fg(202) + ": NE "
4559
4559
  wind_text += "2".fg(202) + ": E " + "3".fg(202) + ": SE\n"
4560
4560
  wind_text += " 4".fg(202) + ": S " + "5".fg(202) + ": SW "
4561
4561
  wind_text += "6".fg(202) + ": W " + "7".fg(202) + ": NW\n\n"
4562
- wind_text += "Wind Strength:".fg(11).b + "\n"
4562
+ wind_text += "Wind Strength:".fg(11).bd + "\n"
4563
4563
  wind_text += " 0".fg(202) + ": Calm " + "8".fg(202) + ": Light "
4564
4564
  wind_text += "16".fg(202) + ": Medium " + "24".fg(202) + ": Strong\n\n"
4565
4565
  wind_text += "Enter combined value".fg(13) + " (0-31, default=#{$wind_dir_n + $wind_str_n * 8}): "
@@ -4604,7 +4604,7 @@ def generate_weather_ui
4604
4604
  when 13 then 239 # Mestronorpha
4605
4605
  else 226 # Default yellow
4606
4606
  end
4607
- output += "\n" + "☀ WEATHER FOR #{$Month[month].upcase} ☀".fg(month_color).b + "\n"
4607
+ output += "\n" + "☀ WEATHER FOR #{$Month[month].upcase} ☀".fg(month_color).bd + "\n"
4608
4608
  output += ("─" * 60).fg(240) + "\n\n" # Grey divider
4609
4609
 
4610
4610
  # Weather symbols
@@ -4640,14 +4640,14 @@ def generate_weather_ui
4640
4640
  # Weather description with enhanced gradient coloring
4641
4641
  weather_text = $Weather[d.weather]
4642
4642
  weather_colored = case weather_text
4643
- when /blizzard/i then weather_text.fg(231).b # Bold white for blizzard
4644
- when /snow storm/i then weather_text.fg(255).b # Bold white for snow storm
4643
+ when /blizzard/i then weather_text.fg(231).bd # Bold white for blizzard
4644
+ when /snow storm/i then weather_text.fg(255).bd # Bold white for snow storm
4645
4645
  when /heavy snow/i then weather_text.fg(195) # Light blue-white for heavy snow
4646
4646
  when /snow/i then weather_text.fg(255) # White for snow
4647
4647
  when /hail/i then weather_text.fg(253) # Light gray for hail
4648
- when /thunder/i then weather_text.fg(93).b # Bold purple for thunder
4649
- when /lightning/i then weather_text.fg(226).b # Bold yellow for lightning
4650
- when /storm/i then weather_text.fg(202).b # Bold orange for storm
4648
+ when /thunder/i then weather_text.fg(93).bd # Bold purple for thunder
4649
+ when /lightning/i then weather_text.fg(226).bd # Bold yellow for lightning
4650
+ when /storm/i then weather_text.fg(202).bd # Bold orange for storm
4651
4651
  when /heavy rain/i then weather_text.fg(21) # Deep blue for heavy rain
4652
4652
  when /rain/i then weather_text.fg(33) # Blue for rain
4653
4653
  when /drizzle/i then weather_text.fg(111) # Light blue for drizzle
@@ -4664,8 +4664,8 @@ def generate_weather_ui
4664
4664
  when /lucid/i then weather_text.fg(252) # Very light gray
4665
4665
  when /warm/i then weather_text.fg(214) # Orange for warm
4666
4666
  when /hot/i then weather_text.fg(196) # Red for hot
4667
- when /scorching/i then weather_text.fg(160).b # Bold dark red for scorching
4668
- when /freezing/i then weather_text.fg(45).b # Bold cyan for freezing
4667
+ when /scorching/i then weather_text.fg(160).bd # Bold dark red for scorching
4668
+ when /freezing/i then weather_text.fg(45).bd # Bold cyan for freezing
4669
4669
  when /cold/i then weather_text.fg(51) # Cyan for cold
4670
4670
  when /cool/i then weather_text.fg(117) # Light cyan for cool
4671
4671
  when /breeze/i then weather_text.fg(159) # Light blue for breeze
@@ -4676,13 +4676,13 @@ def generate_weather_ui
4676
4676
  # Add weather symbol with color matching the weather
4677
4677
  symbol_added = false
4678
4678
  if weather_text =~ /blizzard|snow storm/i
4679
- line += " " + "❄".fg(231).b
4679
+ line += " " + "❄".fg(231).bd
4680
4680
  symbol_added = true
4681
4681
  elsif weather_text =~ /snow/i
4682
4682
  line += " " + "❄".fg(255)
4683
4683
  symbol_added = true
4684
4684
  elsif weather_text =~ /thunder|lightning|storm/i
4685
- line += " " + "⛈".fg(226).b
4685
+ line += " " + "⛈".fg(226).bd
4686
4686
  symbol_added = true
4687
4687
  elsif weather_text =~ /rain/i
4688
4688
  line += " " + "☂".fg(33)
@@ -4751,7 +4751,7 @@ def generate_weather_ui
4751
4751
  # Use different colors for different special days
4752
4752
  special_text = "★ #{d.special}"
4753
4753
  special_colored = case d.special
4754
- when /Ikalio/i then special_text.fg(226).b # ONLY Ikalio gets bright yellow (Sun God)
4754
+ when /Ikalio/i then special_text.fg(226).bd # ONLY Ikalio gets bright yellow (Sun God)
4755
4755
  when /Anashina/i then special_text.fg(41) # Anashina green (Nature)
4756
4756
  when /Gwendyll/i then special_text.fg(213) # Gwendyll magenta (Water)
4757
4757
  when /Fionella/i then special_text.fg(126) # Fionella new color (Love)
@@ -4769,7 +4769,7 @@ def generate_weather_ui
4769
4769
  when /MacGillan/i then special_text.fg(126) # MacGillan new color
4770
4770
  when /Maleko/i then special_text.fg(172) # Maleko color
4771
4771
  when /Mestronorpha/i then special_text.fg(239) # Mestronorpha color
4772
- when /Elesi/i then special_text.fg(229).b # Elesi - same as Full moon
4772
+ when /Elesi/i then special_text.fg(229).bd # Elesi - same as Full moon
4773
4773
  when /Ielina/i then special_text.fg(230) # Ielina new color
4774
4774
  when /Man Peggon|harvest/i then special_text.fg(130) # Man Peggon brown
4775
4775
  when /Taroc|solstice/i then special_text.fg(248) # Taroc grey (Forge)
@@ -4796,7 +4796,7 @@ def generate_weather_ui
4796
4796
  moon_colored = case i
4797
4797
  when 0 then moon_text.fg(238) # Dark gray for new moon
4798
4798
  when 7 then moon_text.fg(252) # Light gray for waxing
4799
- when 14 then moon_text.fg(229).b # Bold light yellow for full
4799
+ when 14 then moon_text.fg(229).bd # Bold light yellow for full
4800
4800
  when 21 then moon_text.fg(245) # Medium gray for waning
4801
4801
  end
4802
4802
  line += moon_colored
@@ -4902,7 +4902,7 @@ def generate_weather_ui
4902
4902
  when 13 then 239 # Mestronorpha
4903
4903
  else 226 # Default yellow
4904
4904
  end
4905
- output += "\n" + "☀ WEATHER FOR #{$Month[$mn].upcase} ☀".fg(month_color).b + "\n"
4905
+ output += "\n" + "☀ WEATHER FOR #{$Month[$mn].upcase} ☀".fg(month_color).bd + "\n"
4906
4906
  output += ("─" * 60).fg(240) + "\n\n" # Grey divider
4907
4907
 
4908
4908
  # Regenerate weather display with same settings
@@ -4935,13 +4935,13 @@ def reapply_colors(text)
4935
4935
  case line
4936
4936
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
4937
4937
  # Character name line - bright cyan
4938
- line.fg(14).b
4938
+ line.fg(14).bd
4939
4939
  when /^(Description:.*$)/
4940
4940
  # Description line - light yellow
4941
4941
  line.fg(229)
4942
4942
  when /^(BODY|MIND|SPIRIT)\s*\(/
4943
4943
  # Characteristic headers - bright yellow
4944
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
4944
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
4945
4945
  when /^\s+([A-Z][a-z]+)\s*\(/
4946
4946
  # Attribute names - bright magenta
4947
4947
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -4950,10 +4950,10 @@ def reapply_colors(text)
4950
4950
  line.fg(7)
4951
4951
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
4952
4952
  # Stats line - bright green
4953
- line.fg(10).b
4953
+ line.fg(10).bd
4954
4954
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
4955
4955
  # Weapons/armor/equipment - red
4956
- line.fg(202).b
4956
+ line.fg(202).bd
4957
4957
  else
4958
4958
  line
4959
4959
  end
@@ -4980,8 +4980,8 @@ def generate_weather_pdf
4980
4980
  end
4981
4981
 
4982
4982
  # Get Month
4983
- mstring = "WEATHER PDF GENERATOR".fg(14).b + "\n"
4984
- mstring += "Select month for PDF:".fg(14).b + "\n"
4983
+ mstring = "WEATHER PDF GENERATOR".fg(14).bd + "\n"
4984
+ mstring += "Select month for PDF:".fg(14).bd + "\n"
4985
4985
  7.times do |i|
4986
4986
  mstring += i.to_s.rjust(2).fg(202) + ": "
4987
4987
  mstring += $Month[i].fg(7).ljust(30)
@@ -5024,9 +5024,9 @@ def generate_weather_pdf
5024
5024
  $mn = month_input.to_i unless month_input.empty?
5025
5025
 
5026
5026
  # Get Weather condition
5027
- wstring = "WEATHER PDF GENERATOR".fg(14).b + "\n"
5028
- wstring += "Month: #{$Month[$mn]}".fg(45).b + "\n"
5029
- wstring += "Select weather condition:".fg(14).b + "\n"
5027
+ wstring = "WEATHER PDF GENERATOR".fg(14).bd + "\n"
5028
+ wstring += "Month: #{$Month[$mn]}".fg(45).bd + "\n"
5029
+ wstring += "Select weather condition:".fg(14).bd + "\n"
5030
5030
  ["1: Snow storm", "2: Heavy snow", "3: Light snow", "4: Hail",
5031
5031
  "5: Normal", "6: Sunny", "7: Hot", "8: Sweltering"].each do |w|
5032
5032
  wstring += w.fg(7) + "\n"
@@ -5090,8 +5090,8 @@ def generate_weather_pdf
5090
5090
 
5091
5091
  pdf_file = "saved/weather.pdf"
5092
5092
  if File.exist?(pdf_file)
5093
- output = "WEATHER PDF GENERATED".fg(10).b + "\n\n"
5094
- output += "Month: ".fg(14) + "#{$Month[$mn]}".fg(45).b + "\n"
5093
+ output = "WEATHER PDF GENERATED".fg(10).bd + "\n\n"
5094
+ output += "Month: ".fg(14) + "#{$Month[$mn]}".fg(45).bd + "\n"
5095
5095
  output += "Weather: ".fg(14) + ["", "Snow storm", "Heavy snow", "Light snow", "Hail",
5096
5096
  "Normal", "Sunny", "Hot", "Sweltering"][$weather_n].fg(45) + "\n\n"
5097
5097
  output += "PDF saved to: ".fg(14) + pdf_file.fg(10) + "\n\n"
@@ -5147,13 +5147,13 @@ def reapply_colors(text)
5147
5147
  case line
5148
5148
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
5149
5149
  # Character name line - bright cyan
5150
- line.fg(14).b
5150
+ line.fg(14).bd
5151
5151
  when /^(Description:.*$)/
5152
5152
  # Description line - light yellow
5153
5153
  line.fg(229)
5154
5154
  when /^(BODY|MIND|SPIRIT)\s*\(/
5155
5155
  # Characteristic headers - bright yellow
5156
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
5156
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
5157
5157
  when /^\s+([A-Z][a-z]+)\s*\(/
5158
5158
  # Attribute names - bright magenta
5159
5159
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -5162,10 +5162,10 @@ def reapply_colors(text)
5162
5162
  line.fg(7)
5163
5163
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
5164
5164
  # Stats line - bright green
5165
- line.fg(10).b
5165
+ line.fg(10).bd
5166
5166
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
5167
5167
  # Weapons/armor/equipment - red
5168
- line.fg(202).b
5168
+ line.fg(202).bd
5169
5169
  else
5170
5170
  line
5171
5171
  end
@@ -5609,13 +5609,13 @@ def reapply_colors(text)
5609
5609
  case line
5610
5610
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
5611
5611
  # Character name line - bright cyan
5612
- line.fg(14).b
5612
+ line.fg(14).bd
5613
5613
  when /^(Description:.*$)/
5614
5614
  # Description line - light yellow
5615
5615
  line.fg(229)
5616
5616
  when /^(BODY|MIND|SPIRIT)\s*\(/
5617
5617
  # Characteristic headers - bright yellow
5618
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
5618
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
5619
5619
  when /^\s+([A-Z][a-z]+)\s*\(/
5620
5620
  # Attribute names - bright magenta
5621
5621
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -5624,10 +5624,10 @@ def reapply_colors(text)
5624
5624
  line.fg(7)
5625
5625
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
5626
5626
  # Stats line - bright green
5627
- line.fg(10).b
5627
+ line.fg(10).bd
5628
5628
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
5629
5629
  # Weapons/armor/equipment - red
5630
- line.fg(202).b
5630
+ line.fg(202).bd
5631
5631
  else
5632
5632
  line
5633
5633
  end
@@ -5720,13 +5720,13 @@ def reapply_colors(text)
5720
5720
  case line
5721
5721
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
5722
5722
  # Character name line - bright cyan
5723
- line.fg(14).b
5723
+ line.fg(14).bd
5724
5724
  when /^(Description:.*$)/
5725
5725
  # Description line - light yellow
5726
5726
  line.fg(229)
5727
5727
  when /^(BODY|MIND|SPIRIT)\s*\(/
5728
5728
  # Characteristic headers - bright yellow
5729
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
5729
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
5730
5730
  when /^\s+([A-Z][a-z]+)\s*\(/
5731
5731
  # Attribute names - bright magenta
5732
5732
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -5735,10 +5735,10 @@ def reapply_colors(text)
5735
5735
  line.fg(7)
5736
5736
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
5737
5737
  # Stats line - bright green
5738
- line.fg(10).b
5738
+ line.fg(10).bd
5739
5739
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
5740
5740
  # Weapons/armor/equipment - red
5741
- line.fg(202).b
5741
+ line.fg(202).bd
5742
5742
  else
5743
5743
  line
5744
5744
  end
@@ -5809,13 +5809,13 @@ def reapply_colors(text)
5809
5809
  case line
5810
5810
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
5811
5811
  # Character name line - bright cyan
5812
- line.fg(14).b
5812
+ line.fg(14).bd
5813
5813
  when /^(Description:.*$)/
5814
5814
  # Description line - light yellow
5815
5815
  line.fg(229)
5816
5816
  when /^(BODY|MIND|SPIRIT)\s*\(/
5817
5817
  # Characteristic headers - bright yellow
5818
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
5818
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
5819
5819
  when /^\s+([A-Z][a-z]+)\s*\(/
5820
5820
  # Attribute names - bright magenta
5821
5821
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -5824,10 +5824,10 @@ def reapply_colors(text)
5824
5824
  line.fg(7)
5825
5825
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
5826
5826
  # Stats line - bright green
5827
- line.fg(10).b
5827
+ line.fg(10).bd
5828
5828
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
5829
5829
  # Weapons/armor/equipment - red
5830
- line.fg(202).b
5830
+ line.fg(202).bd
5831
5831
  else
5832
5832
  line
5833
5833
  end
@@ -5909,10 +5909,10 @@ def generate_town_relations
5909
5909
  txt_content.lines.each do |line|
5910
5910
  if line.include?("===")
5911
5911
  # Strong alliance (double positive)
5912
- output += line.fg(10).b # Bright green bold
5912
+ output += line.fg(10).bd # Bright green bold
5913
5913
  elsif line.include?("---")
5914
5914
  # Strong hate (double negative)
5915
- output += line.fg(196).b # Bright red bold
5915
+ output += line.fg(196).bd # Bright red bold
5916
5916
  elsif line.include?("+++")
5917
5917
  # Complex relationship
5918
5918
  output += line.fg(226) # Yellow
@@ -6021,13 +6021,13 @@ def reapply_colors(text)
6021
6021
  case line
6022
6022
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
6023
6023
  # Character name line - bright cyan
6024
- line.fg(14).b
6024
+ line.fg(14).bd
6025
6025
  when /^(Description:.*$)/
6026
6026
  # Description line - light yellow
6027
6027
  line.fg(229)
6028
6028
  when /^(BODY|MIND|SPIRIT)\s*\(/
6029
6029
  # Characteristic headers - bright yellow
6030
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
6030
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
6031
6031
  when /^\s+([A-Z][a-z]+)\s*\(/
6032
6032
  # Attribute names - bright magenta
6033
6033
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -6036,10 +6036,10 @@ def reapply_colors(text)
6036
6036
  line.fg(7)
6037
6037
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
6038
6038
  # Stats line - bright green
6039
- line.fg(10).b
6039
+ line.fg(10).bd
6040
6040
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
6041
6041
  # Weapons/armor/equipment - red
6042
- line.fg(202).b
6042
+ line.fg(202).bd
6043
6043
  else
6044
6044
  line
6045
6045
  end
@@ -6082,13 +6082,13 @@ def reapply_colors(text)
6082
6082
  case line
6083
6083
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
6084
6084
  # Character name line - bright cyan
6085
- line.fg(14).b
6085
+ line.fg(14).bd
6086
6086
  when /^(Description:.*$)/
6087
6087
  # Description line - light yellow
6088
6088
  line.fg(229)
6089
6089
  when /^(BODY|MIND|SPIRIT)\s*\(/
6090
6090
  # Characteristic headers - bright yellow
6091
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
6091
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
6092
6092
  when /^\s+([A-Z][a-z]+)\s*\(/
6093
6093
  # Attribute names - bright magenta
6094
6094
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -6097,10 +6097,10 @@ def reapply_colors(text)
6097
6097
  line.fg(7)
6098
6098
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
6099
6099
  # Stats line - bright green
6100
- line.fg(10).b
6100
+ line.fg(10).bd
6101
6101
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
6102
6102
  # Weapons/armor/equipment - red
6103
- line.fg(202).b
6103
+ line.fg(202).bd
6104
6104
  else
6105
6105
  line
6106
6106
  end
@@ -6121,13 +6121,13 @@ def reapply_colors(text)
6121
6121
  case line
6122
6122
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
6123
6123
  # Character name line - bright cyan
6124
- line.fg(14).b
6124
+ line.fg(14).bd
6125
6125
  when /^(Description:.*$)/
6126
6126
  # Description line - light yellow
6127
6127
  line.fg(229)
6128
6128
  when /^(BODY|MIND|SPIRIT)\s*\(/
6129
6129
  # Characteristic headers - bright yellow
6130
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
6130
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
6131
6131
  when /^\s+([A-Z][a-z]+)\s*\(/
6132
6132
  # Attribute names - bright magenta
6133
6133
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -6136,10 +6136,10 @@ def reapply_colors(text)
6136
6136
  line.fg(7)
6137
6137
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
6138
6138
  # Stats line - bright green
6139
- line.fg(10).b
6139
+ line.fg(10).bd
6140
6140
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
6141
6141
  # Weapons/armor/equipment - red
6142
- line.fg(202).b
6142
+ line.fg(202).bd
6143
6143
  else
6144
6144
  line
6145
6145
  end
@@ -6300,13 +6300,13 @@ def reapply_colors(text)
6300
6300
  case line
6301
6301
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
6302
6302
  # Character name line - bright cyan
6303
- line.fg(14).b
6303
+ line.fg(14).bd
6304
6304
  when /^(Description:.*$)/
6305
6305
  # Description line - light yellow
6306
6306
  line.fg(229)
6307
6307
  when /^(BODY|MIND|SPIRIT)\s*\(/
6308
6308
  # Characteristic headers - bright yellow
6309
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
6309
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
6310
6310
  when /^\s+([A-Z][a-z]+)\s*\(/
6311
6311
  # Attribute names - bright magenta
6312
6312
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -6315,10 +6315,10 @@ def reapply_colors(text)
6315
6315
  line.fg(7)
6316
6316
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
6317
6317
  # Stats line - bright green
6318
- line.fg(10).b
6318
+ line.fg(10).bd
6319
6319
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
6320
6320
  # Weapons/armor/equipment - red
6321
- line.fg(202).b
6321
+ line.fg(202).bd
6322
6322
  else
6323
6323
  line
6324
6324
  end
@@ -6494,13 +6494,13 @@ def reapply_colors(text)
6494
6494
  case line
6495
6495
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
6496
6496
  # Character name line - bright cyan
6497
- line.fg(14).b
6497
+ line.fg(14).bd
6498
6498
  when /^(Description:.*$)/
6499
6499
  # Description line - light yellow
6500
6500
  line.fg(229)
6501
6501
  when /^(BODY|MIND|SPIRIT)\s*\(/
6502
6502
  # Characteristic headers - bright yellow
6503
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
6503
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
6504
6504
  when /^\s+([A-Z][a-z]+)\s*\(/
6505
6505
  # Attribute names - bright magenta
6506
6506
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -6509,10 +6509,10 @@ def reapply_colors(text)
6509
6509
  line.fg(7)
6510
6510
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
6511
6511
  # Stats line - bright green
6512
- line.fg(10).b
6512
+ line.fg(10).bd
6513
6513
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
6514
6514
  # Weapons/armor/equipment - red
6515
- line.fg(202).b
6515
+ line.fg(202).bd
6516
6516
  else
6517
6517
  line
6518
6518
  end
@@ -6732,13 +6732,13 @@ def reapply_colors(text)
6732
6732
  case line
6733
6733
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
6734
6734
  # Character name line - bright cyan
6735
- line.fg(14).b
6735
+ line.fg(14).bd
6736
6736
  when /^(Description:.*$)/
6737
6737
  # Description line - light yellow
6738
6738
  line.fg(229)
6739
6739
  when /^(BODY|MIND|SPIRIT)\s*\(/
6740
6740
  # Characteristic headers - bright yellow
6741
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
6741
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
6742
6742
  when /^\s+([A-Z][a-z]+)\s*\(/
6743
6743
  # Attribute names - bright magenta
6744
6744
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -6747,10 +6747,10 @@ def reapply_colors(text)
6747
6747
  line.fg(7)
6748
6748
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
6749
6749
  # Stats line - bright green
6750
- line.fg(10).b
6750
+ line.fg(10).bd
6751
6751
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
6752
6752
  # Weapons/armor/equipment - red
6753
- line.fg(202).b
6753
+ line.fg(202).bd
6754
6754
  else
6755
6755
  line
6756
6756
  end
@@ -6812,13 +6812,13 @@ def reapply_colors(text)
6812
6812
  case line
6813
6813
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
6814
6814
  # Character name line - bright cyan
6815
- line.fg(14).b
6815
+ line.fg(14).bd
6816
6816
  when /^(Description:.*$)/
6817
6817
  # Description line - light yellow
6818
6818
  line.fg(229)
6819
6819
  when /^(BODY|MIND|SPIRIT)\s*\(/
6820
6820
  # Characteristic headers - bright yellow
6821
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
6821
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
6822
6822
  when /^\s+([A-Z][a-z]+)\s*\(/
6823
6823
  # Attribute names - bright magenta
6824
6824
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -6827,10 +6827,10 @@ def reapply_colors(text)
6827
6827
  line.fg(7)
6828
6828
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
6829
6829
  # Stats line - bright green
6830
- line.fg(10).b
6830
+ line.fg(10).bd
6831
6831
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
6832
6832
  # Weapons/armor/equipment - red
6833
- line.fg(202).b
6833
+ line.fg(202).bd
6834
6834
  else
6835
6835
  line
6836
6836
  end
@@ -6922,13 +6922,13 @@ def reapply_colors(text)
6922
6922
  case line
6923
6923
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
6924
6924
  # Character name line - bright cyan
6925
- line.fg(14).b
6925
+ line.fg(14).bd
6926
6926
  when /^(Description:.*$)/
6927
6927
  # Description line - light yellow
6928
6928
  line.fg(229)
6929
6929
  when /^(BODY|MIND|SPIRIT)\s*\(/
6930
6930
  # Characteristic headers - bright yellow
6931
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
6931
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
6932
6932
  when /^\s+([A-Z][a-z]+)\s*\(/
6933
6933
  # Attribute names - bright magenta
6934
6934
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -6937,10 +6937,10 @@ def reapply_colors(text)
6937
6937
  line.fg(7)
6938
6938
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
6939
6939
  # Stats line - bright green
6940
- line.fg(10).b
6940
+ line.fg(10).bd
6941
6941
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
6942
6942
  # Weapons/armor/equipment - red
6943
- line.fg(202).b
6943
+ line.fg(202).bd
6944
6944
  else
6945
6945
  line
6946
6946
  end
@@ -7353,13 +7353,13 @@ def reapply_colors(text)
7353
7353
  case line
7354
7354
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
7355
7355
  # Character name line - bright cyan
7356
- line.fg(14).b
7356
+ line.fg(14).bd
7357
7357
  when /^(Description:.*$)/
7358
7358
  # Description line - light yellow
7359
7359
  line.fg(229)
7360
7360
  when /^(BODY|MIND|SPIRIT)\s*\(/
7361
7361
  # Characteristic headers - bright yellow
7362
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
7362
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
7363
7363
  when /^\s+([A-Z][a-z]+)\s*\(/
7364
7364
  # Attribute names - bright magenta
7365
7365
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -7368,10 +7368,10 @@ def reapply_colors(text)
7368
7368
  line.fg(7)
7369
7369
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
7370
7370
  # Stats line - bright green
7371
- line.fg(10).b
7371
+ line.fg(10).bd
7372
7372
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
7373
7373
  # Weapons/armor/equipment - red
7374
- line.fg(202).b
7374
+ line.fg(202).bd
7375
7375
  else
7376
7376
  line
7377
7377
  end
@@ -7584,13 +7584,13 @@ def reapply_colors(text)
7584
7584
  case line
7585
7585
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
7586
7586
  # Character name line - bright cyan
7587
- line.fg(14).b
7587
+ line.fg(14).bd
7588
7588
  when /^(Description:.*$)/
7589
7589
  # Description line - light yellow
7590
7590
  line.fg(229)
7591
7591
  when /^(BODY|MIND|SPIRIT)\s*\(/
7592
7592
  # Characteristic headers - bright yellow
7593
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
7593
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
7594
7594
  when /^\s+([A-Z][a-z]+)\s*\(/
7595
7595
  # Attribute names - bright magenta
7596
7596
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -7599,10 +7599,10 @@ def reapply_colors(text)
7599
7599
  line.fg(7)
7600
7600
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
7601
7601
  # Stats line - bright green
7602
- line.fg(10).b
7602
+ line.fg(10).bd
7603
7603
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
7604
7604
  # Weapons/armor/equipment - red
7605
- line.fg(202).b
7605
+ line.fg(202).bd
7606
7606
  else
7607
7607
  line
7608
7608
  end
@@ -7678,9 +7678,9 @@ def show_latest_town_map
7678
7678
  txt_content = File.read(txt_file)
7679
7679
  txt_content.lines.each do |line|
7680
7680
  if line.include?("===")
7681
- output += line.fg(10).b # Bright green bold for strong alliance
7681
+ output += line.fg(10).bd # Bright green bold for strong alliance
7682
7682
  elsif line.include?("---")
7683
- output += line.fg(196).b # Bright red bold for deep hate
7683
+ output += line.fg(196).bd # Bright red bold for deep hate
7684
7684
  elsif line.include?("+++")
7685
7685
  output += line.fg(226) # Yellow for complex
7686
7686
  elsif line.include?("--")
@@ -7734,9 +7734,9 @@ def show_latest_town_map
7734
7734
  txt_content = File.read(txt_file)
7735
7735
  txt_content.lines.each do |line|
7736
7736
  if line.include?("===")
7737
- output += line.fg(10).b
7737
+ output += line.fg(10).bd
7738
7738
  elsif line.include?("---")
7739
- output += line.fg(196).b
7739
+ output += line.fg(196).bd
7740
7740
  elsif line.include?("+++")
7741
7741
  output += line.fg(226)
7742
7742
  elsif line.include?("--")
@@ -7784,9 +7784,9 @@ def show_latest_town_map
7784
7784
  txt_content = File.read(txt_file)
7785
7785
  txt_content.lines.each do |line|
7786
7786
  if line.include?("===")
7787
- output += line.fg(10).b
7787
+ output += line.fg(10).bd
7788
7788
  elsif line.include?("---")
7789
- output += line.fg(196).b
7789
+ output += line.fg(196).bd
7790
7790
  elsif line.include?("+++")
7791
7791
  output += line.fg(226)
7792
7792
  elsif line.include?("--")
@@ -7831,9 +7831,9 @@ def show_latest_town_map
7831
7831
  txt_content = File.read(txt_file)
7832
7832
  txt_content.lines.each do |line|
7833
7833
  if line.include?("===")
7834
- output += line.fg(10).b
7834
+ output += line.fg(10).bd
7835
7835
  elsif line.include?("---")
7836
- output += line.fg(196).b
7836
+ output += line.fg(196).bd
7837
7837
  elsif line.include?("+++")
7838
7838
  output += line.fg(226)
7839
7839
  elsif line.include?("--")
@@ -7961,13 +7961,13 @@ def reapply_colors(text)
7961
7961
  case line
7962
7962
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
7963
7963
  # Character name line - bright cyan
7964
- line.fg(14).b
7964
+ line.fg(14).bd
7965
7965
  when /^(Description:.*$)/
7966
7966
  # Description line - light yellow
7967
7967
  line.fg(229)
7968
7968
  when /^(BODY|MIND|SPIRIT)\s*\(/
7969
7969
  # Characteristic headers - bright yellow
7970
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
7970
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
7971
7971
  when /^\s+([A-Z][a-z]+)\s*\(/
7972
7972
  # Attribute names - bright magenta
7973
7973
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -7976,10 +7976,10 @@ def reapply_colors(text)
7976
7976
  line.fg(7)
7977
7977
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
7978
7978
  # Stats line - bright green
7979
- line.fg(10).b
7979
+ line.fg(10).bd
7980
7980
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
7981
7981
  # Weapons/armor/equipment - red
7982
- line.fg(202).b
7982
+ line.fg(202).bd
7983
7983
  else
7984
7984
  line
7985
7985
  end
@@ -8037,13 +8037,13 @@ def reapply_colors(text)
8037
8037
  case line
8038
8038
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
8039
8039
  # Character name line - bright cyan
8040
- line.fg(14).b
8040
+ line.fg(14).bd
8041
8041
  when /^(Description:.*$)/
8042
8042
  # Description line - light yellow
8043
8043
  line.fg(229)
8044
8044
  when /^(BODY|MIND|SPIRIT)\s*\(/
8045
8045
  # Characteristic headers - bright yellow
8046
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
8046
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
8047
8047
  when /^\s+([A-Z][a-z]+)\s*\(/
8048
8048
  # Attribute names - bright magenta
8049
8049
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -8052,10 +8052,10 @@ def reapply_colors(text)
8052
8052
  line.fg(7)
8053
8053
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
8054
8054
  # Stats line - bright green
8055
- line.fg(10).b
8055
+ line.fg(10).bd
8056
8056
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
8057
8057
  # Weapons/armor/equipment - red
8058
- line.fg(202).b
8058
+ line.fg(202).bd
8059
8059
  else
8060
8060
  line
8061
8061
  end
@@ -8072,13 +8072,13 @@ def reapply_colors(text)
8072
8072
  case line
8073
8073
  when /^(\w+.*\([MF] \d+\).*H\/W:.*$)/
8074
8074
  # Character name line - bright cyan
8075
- line.fg(14).b
8075
+ line.fg(14).bd
8076
8076
  when /^(Description:.*$)/
8077
8077
  # Description line - light yellow
8078
8078
  line.fg(229)
8079
8079
  when /^(BODY|MIND|SPIRIT)\s*\(/
8080
8080
  # Characteristic headers - bright yellow
8081
- line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).b }
8081
+ line.gsub(/^(BODY|MIND|SPIRIT)/) { |match| match.fg(15).bd }
8082
8082
  when /^\s+([A-Z][a-z]+)\s*\(/
8083
8083
  # Attribute names - bright magenta
8084
8084
  line.gsub(/^(\s+)([A-Z][a-z]+)/) { $1 + $2.fg(13) }
@@ -8087,10 +8087,10 @@ def reapply_colors(text)
8087
8087
  line.fg(7)
8088
8088
  when /^(SIZE:.*BP:.*DB:.*MD:.*)/
8089
8089
  # Stats line - bright green
8090
- line.fg(10).b
8090
+ line.fg(10).bd
8091
8091
  when /^(ARMOR:|WEAPON|WEAPONS:|EQUIPMENT:)/
8092
8092
  # Weapons/armor/equipment - red
8093
- line.fg(202).b
8093
+ line.fg(202).bd
8094
8094
  else
8095
8095
  line
8096
8096
  end