dragon_blade 2.1.0

A transpiler from Rust to Overwatch Workshop
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
pub mod Hero {
    use crate::lang_types::HeroLiteral;

    pub const Ana: HeroLiteral = HeroLiteral::new("Ana");
    pub const Ashe: HeroLiteral = HeroLiteral::new("Ashe");
    pub const Baptiste: HeroLiteral = HeroLiteral::new("Baptiste");
    pub const Bastion: HeroLiteral = HeroLiteral::new("Bastion");
    pub const Brigitte: HeroLiteral = HeroLiteral::new("Brigitte");
    pub const Cassidy: HeroLiteral = HeroLiteral::new("Cassidy");
    pub const Dva: HeroLiteral = HeroLiteral::new("D.Va");
    pub const Doomfist: HeroLiteral = HeroLiteral::new("Doomfist");
    pub const Echo: HeroLiteral = HeroLiteral::new("Echo");
    pub const Genji: HeroLiteral = HeroLiteral::new("Genji");
    pub const Hanzo: HeroLiteral = HeroLiteral::new("Hanzo");
    pub const JunkerQueen: HeroLiteral = HeroLiteral::new("Junker Queen");
    pub const Junkrat: HeroLiteral = HeroLiteral::new("Junkrat");
    pub const Kiriko: HeroLiteral = HeroLiteral::new("Kiriko");
    pub const Lifeweaver: HeroLiteral = HeroLiteral::new("Lifeweaver");
    pub const Lucio: HeroLiteral = HeroLiteral::new("LĂșcio");
    pub const Mei: HeroLiteral = HeroLiteral::new("Mei");
    pub const Mercy: HeroLiteral = HeroLiteral::new("Mercy");
    pub const Moira: HeroLiteral = HeroLiteral::new("Moira");
    pub const Orisa: HeroLiteral = HeroLiteral::new("Orisa");
    pub const Pharah: HeroLiteral = HeroLiteral::new("Pharah");
    pub const Ramattra: HeroLiteral = HeroLiteral::new("Ramattra");
    pub const Reaper: HeroLiteral = HeroLiteral::new("Reaper");
    pub const Reinhardt: HeroLiteral = HeroLiteral::new("Reinhardt");
    pub const Roadhog: HeroLiteral = HeroLiteral::new("Roadhog");
    pub const Sigma: HeroLiteral = HeroLiteral::new("Sigma");
    pub const Sojourn: HeroLiteral = HeroLiteral::new("Sojourn");
    pub const Soldier76: HeroLiteral = HeroLiteral::new("Soldier: 76");
    pub const Sombra: HeroLiteral = HeroLiteral::new("Sombra");
    pub const Symmetra: HeroLiteral = HeroLiteral::new("Symmetra");
    pub const Torbjorn: HeroLiteral = HeroLiteral::new("Torbjörn");
    pub const Tracer: HeroLiteral = HeroLiteral::new("Tracer");
    pub const Widowmaker: HeroLiteral = HeroLiteral::new("Widowmaker");
    pub const Winston: HeroLiteral = HeroLiteral::new("Winston");
    pub const WreckingBall: HeroLiteral = HeroLiteral::new("Wrecking Ball");
    pub const Zarya: HeroLiteral = HeroLiteral::new("Zarya");
    pub const Zenyatta: HeroLiteral = HeroLiteral::new("Zenyatta");
}

pub mod Team {
    use crate::lang_types::TeamLiteral;

    pub const TeamAll: TeamLiteral = TeamLiteral::new("All");
    pub const Team1: TeamLiteral = TeamLiteral::new("Team 1");
    pub const Team2: TeamLiteral = TeamLiteral::new("Team 2");
}

pub mod Button {
    use crate::lang_types::Button;

    pub const PrimaryFire: Button = Button::new("Button(Primary Fire)");
    pub const SecondaryFire: Button = Button::new("Button(Secondary Fire)");
    pub const Ability1: Button = Button::new("Button(Ability 1)");
    pub const Ability2: Button = Button::new("Button(Ability 2)");
    pub const Ultimate: Button = Button::new("Button(Ultimate)");
    pub const Interact: Button = Button::new("Button(Interact)");
    pub const Jump: Button = Button::new("Button(Jump)");
    pub const Crouch: Button = Button::new("Button(Crouch)");
    pub const Melee: Button = Button::new("Button(Melee)");
    pub const Reload: Button = Button::new("Button(Reload)");
}

pub mod Color {
    use crate::lang_types::Color;

    pub const White: Color = Color::new("Color(White)");
    pub const Yellow: Color = Color::new("Color(Yellow)");
    pub const Green: Color = Color::new("Color(Green)");
    pub const Purple: Color = Color::new("Color(Purple)");
    pub const Red: Color = Color::new("Color(Red)");
    pub const Blue: Color = Color::new("Color(Blue)");
    pub const Team1: Color = Color::new("Color(Team 1)");
    pub const Team2: Color = Color::new("Color(Team 2)");
    pub const Aqua: Color = Color::new("Color(Aqua)");
    pub const Orange: Color = Color::new("Color(Orange)");
    pub const SkyBlue: Color = Color::new("Color(Sky Blue)");
    pub const Turquoise: Color = Color::new("Color(Turquoise)");
    pub const LimeGreen: Color = Color::new("Color(Lime Green)");
    pub const Black: Color = Color::new("Color(Black)");
    pub const Rose: Color = Color::new("Color(Rose)");
    pub const Violet: Color = Color::new("Color(Violet)");
    pub const Gray: Color = Color::new("Color(Gray)");
}

pub mod GameMode {
    use crate::lang_types::GameMode;

    pub const Assault: GameMode = GameMode::new("Game Mode(Assault)");
    pub const BountyHunter: GameMode = GameMode::new("Game Mode(Bounty Hunter)");
    pub const CaptureTheFlag: GameMode = GameMode::new("Game Mode(Capture The Flag)");
    pub const Control: GameMode = GameMode::new("Game Mode(Control)");
    pub const Deathmatch: GameMode = GameMode::new("Game Mode(Deathmatch)");
    pub const Elimination: GameMode = GameMode::new("Game Mode(Elimination)");
    pub const Escort: GameMode = GameMode::new("Game Mode(Escort)");
    pub const FreezethawElimination: GameMode = GameMode::new("Game Mode(Freezethaw Elimination)");
    pub const Hybrid: GameMode = GameMode::new("Game Mode(Hybrid)");
    pub const JunkensteinsRevenge: GameMode = GameMode::new("Game Mode(Junkenstein's Revenge)");
    pub const Lucioball: GameMode = GameMode::new("Game Mode(LĂșcioball)");
    pub const MeisSnowballOffensive: GameMode =
        GameMode::new("Game Mode(Mei's Snowball Offensive)");
    pub const MischiefAndMagic: GameMode = GameMode::new("Game Mode(Mischief & Magic)");
    pub const PracticeRange: GameMode = GameMode::new("Game Mode(Practice Range)");
    pub const Push: GameMode = GameMode::new("Game Mode(Push)");
    pub const RoadhogsCatchAMari: GameMode = GameMode::new("Game Mode(Roadhog’s Catch-A-Mari)");
    pub const Skirmish: GameMode = GameMode::new("Game Mode(Skirmish)");
    pub const SnowballDeathmatch: GameMode = GameMode::new("Game Mode(Snowball Deathmatch)");
    pub const StarwatchGalacticRescue: GameMode =
        GameMode::new("Game Mode(Starwatch: Galactic Rescue)");
    pub const TeamDeathmatch: GameMode = GameMode::new("Game Mode(Team Deathmatch)");
    pub const WinstonsBeachVolleyball: GameMode = GameMode::new("Game Mode(Winston's Beach Ball)");
    pub const YetiHunter: GameMode = GameMode::new("Game Mode(Yeti Hunter)");
}

pub mod Map {
    use crate::lang_types::Map;

    pub const AntarcticPeninsula: Map = Map::new("Map(Antarctic Peninsula)");
    pub const Ayutthaya: Map = Map::new("Map(Ayutthaya)");
    pub const BlackForest: Map = Map::new("Map(Black Forest)");
    pub const BlackForestWinter: Map = Map::new("Map(Black Forest Winter)");
    pub const BlizzardWorld: Map = Map::new("Map(Blizzard World)");
    pub const BlizzardWorldWinter: Map = Map::new("Map(Blizzard World Winter)");
    pub const Busan: Map = Map::new("Map(Busan)");
    pub const BusanDowntown: Map = Map::new("Map(Busan Downtown Lunar New Year)");
    pub const BusanSanctuary: Map = Map::new("Map(Busan Sanctuary Lunar New Year)");
    pub const BusanStadium: Map = Map::new("Map(Busan Stadium)");
    pub const Castillo: Map = Map::new("Map(Castillo)");
    pub const ChateauGuillard: Map = Map::new("Map(ChĂąteau Guillard)");
    pub const ChateauGuillardHalloween: Map = Map::new("Map(ChĂąteau Guillard Halloween)");
    pub const CircuitRoyal: Map = Map::new("Map(Circuit Royal)");
    pub const Colosseo: Map = Map::new("Map(Colosseo)");
    pub const Dorado: Map = Map::new("Map(Dorado)");
    pub const EcopointAntarctica: Map = Map::new("Map(Ecopoint: Antarctica)");
    pub const EcopointAntarcticaWinter: Map = Map::new("Map(Ecopoint: Antarctica Winter)");
    pub const Eichenwalde: Map = Map::new("Map(Eichenwalde)");
    pub const EichenwaldeHalloween: Map = Map::new("Map(Eichenwalde Halloween)");
    pub const Esperanca: Map = Map::new("Map(Esperança)");
    pub const EstadioDasRas: Map = Map::new("Map(EstĂĄdio das RĂŁs)");
    pub const Hanamura: Map = Map::new("Map(Hanamura)");
    pub const HanamuraWinter: Map = Map::new("Map(Hanamura Winter)");
    pub const Havana: Map = Map::new("Map(Havana)");
    pub const Hollywood: Map = Map::new("Map(Hollywood)");
    pub const HollywoodHalloween: Map = Map::new("Map(Hollywood Halloween)");
    pub const HorizonLunarColony: Map = Map::new("Map(Horizon Lunar Colony)");
    pub const Ilios: Map = Map::new("Map(Ilios)");
    pub const IliosLighthouse: Map = Map::new("Map(Ilios Lighthouse)");
    pub const IliosRuins: Map = Map::new("Map(Ilios Ruins)");
    pub const IliosWell: Map = Map::new("Map(Ilios Well)");
    pub const JunkensteinsRevenge: Map = Map::new("Map(Junkenstein's Revenge)");
    pub const Junkertown: Map = Map::new("Map(Junkertown)");
    pub const Kanezaka: Map = Map::new("Map(Kanezaka)");
    pub const KingsRow: Map = Map::new("Map(King's Row)");
    pub const KingsRowWinter: Map = Map::new("Map(King's Row Winter)");
    pub const LijiangControlCenter: Map = Map::new("Map(Lijiang Control Center)");
    pub const LijiangControlCenterLunarNewYear: Map =
        Map::new("Map(Lijiang Control Center Lunar New Year)");
    pub const LijiangGarden: Map = Map::new("Map(Lijiang Garden)");
    pub const LijiangGardenLunarNewYear: Map = Map::new("Map(Lijiang Garden Lunar New Year)");
    pub const LijiangNightMarket: Map = Map::new("Map(Lijiang Night Market)");
    pub const LijiangNightMarketLunarNewYear: Map =
        Map::new("Map(Lijiang Night Market Lunar New Year)");
    pub const LijiangTower: Map = Map::new("Map(Lijiang Tower)");
    pub const LijiangTowerLunarNewYear: Map = Map::new("Map(Lijiang Tower Lunar New Year)");
    pub const Malevento: Map = Map::new("Map(Malevento)");
    pub const Midtown: Map = Map::new("Map(Midtown)");
    pub const Necropolis: Map = Map::new("Map(Necropolis)");
    pub const Nepal: Map = Map::new("Map(Nepal)");
    pub const NepalSanctum: Map = Map::new("Map(Nepal Sanctum)");
    pub const NepalShrine: Map = Map::new("Map(Nepal Shrine)");
    pub const NepalVillage: Map = Map::new("Map(Nepal Village)");
    pub const NepalVillageWinter: Map = Map::new("Map(Nepal Village Winter)");
    pub const NewQueenStreet: Map = Map::new("Map(New Queen Street)");
    pub const Numbani: Map = Map::new("Map(Numbani)");
    pub const Oasis: Map = Map::new("Map(Oasis)");
    pub const OasisCityCenter: Map = Map::new("Map(Oasis City Center)");
    pub const OasisGardens: Map = Map::new("Map(Oasis Gardens)");
    pub const OasisUniversity: Map = Map::new("Map(Oasis University)");
    pub const Paraiso: Map = Map::new("Map(ParaĂ­so)");
    pub const Paris: Map = Map::new("Map(Paris)");
    pub const Petra: Map = Map::new("Map(Petra)");
    pub const PracticeRange: Map = Map::new("Map(Practice Range)");
    pub const Rialto: Map = Map::new("Map(Rialto)");
    pub const Route66: Map = Map::new("Map(Route 66)");
    pub const ShambaliMonastery: Map = Map::new("Map(Shambali Monastery)");
    pub const TempleOfAnubis: Map = Map::new("Map(Temple of Anubis)");
    pub const VolskayaIndustries: Map = Map::new("Map(Volskaya Industries)");
    pub const WatchpointGibraltar: Map = Map::new("Map(Watchpoint: Gibraltar)");
    pub const WorkshopChamber: Map = Map::new("Map(Workshop Chamber)");
    pub const WorkshopExpanse: Map = Map::new("Map(Workshop Expanse)");
    pub const WorkshopExpanseNight: Map = Map::new("Map(Workshop Expanse Night)");
    pub const WorkshopGreenScreen: Map = Map::new("Map(Workshop Green Screen)");
    pub const WorkshopIsland: Map = Map::new("Map(Workshop Island)");
    pub const WorkshopIslandNight: Map = Map::new("Map(Workshop Island Night)");
}

pub mod Status {
    use crate::lang_types::Status;

    pub const Hacked: Status = Status::new("Hacked");
    pub const Burning: Status = Status::new("Burning");
    pub const KnockedDown: Status = Status::new("Knocked Down");
    pub const Asleep: Status = Status::new("Asleep");
    pub const Frozen: Status = Status::new("Frozen");
    pub const Unkillable: Status = Status::new("Unkillable");
    pub const Invincible: Status = Status::new("Invincible");
    pub const PhasedOut: Status = Status::new("Phased Out");
    pub const Rooted: Status = Status::new("Rooted");
    pub const Stunned: Status = Status::new("Stunned");
}

pub mod Interaction {
    use crate::lang_types::Interaction;

    pub const VoiceLineUp: Interaction = Interaction::new("Voice Line Up");
    pub const VoiceLineLeft: Interaction = Interaction::new("Voice Line Left");
    pub const VoiceLineRight: Interaction = Interaction::new("Voice Line Right");
    pub const VoiceLineDown: Interaction = Interaction::new("Voice Line Down");
    pub const EmoteUp: Interaction = Interaction::new("Emote Up");
    pub const EmoteLeft: Interaction = Interaction::new("Emote Left");
    pub const EmoteRight: Interaction = Interaction::new("Emote Right");
    pub const EmoteDown: Interaction = Interaction::new("Emote Down");
    pub const UltimateStatus: Interaction = Interaction::new("Ultimate Status");
    pub const Hello: Interaction = Interaction::new("Hello");
    pub const NeedHealing: Interaction = Interaction::new("Need Healing");
    pub const GroupUp: Interaction = Interaction::new("Group Up");
    pub const Thanks: Interaction = Interaction::new("Thanks");
    pub const Acknowledge: Interaction = Interaction::new("Acknowledge");
    pub const PressTheAttack: Interaction = Interaction::new("Press The Attack");
    pub const YouAreWelcome: Interaction = Interaction::new("You Are Welcome");
    pub const Yes: Interaction = Interaction::new("Yes");
    pub const No: Interaction = Interaction::new("No");
    pub const Goodbye: Interaction = Interaction::new("Goodbye");
    pub const Go: Interaction = Interaction::new("Go");
    pub const Ready: Interaction = Interaction::new("Ready");
    pub const FallBack: Interaction = Interaction::new("Fall Back");
    pub const PushForward: Interaction = Interaction::new("Push Forward");
    pub const Incoming: Interaction = Interaction::new("Incoming");
    pub const WithYou: Interaction = Interaction::new("With You");
    pub const GoingIn: Interaction = Interaction::new("Going In");
    pub const OnMyWay: Interaction = Interaction::new("On My Way");
    pub const Attacking: Interaction = Interaction::new("Attacking");
    pub const Defending: Interaction = Interaction::new("Defending");
    pub const NeedHelp: Interaction = Interaction::new("Need Help");
    pub const Sorry: Interaction = Interaction::new("Sorry");
    pub const Countdown: Interaction = Interaction::new("Countdown");
    pub const SprayUp: Interaction = Interaction::new("Spray Up");
    pub const SprayLeft: Interaction = Interaction::new("Spray Left");
    pub const SprayRight: Interaction = Interaction::new("Spray Right");
    pub const SprayDown: Interaction = Interaction::new("Spray Down");
}

pub mod BeamEffect {
    use crate::lang_types::BeamEffect;

    pub const GoodBeam: BeamEffect = BeamEffect::new("Good Beam");
    pub const BadBeam: BeamEffect = BeamEffect::new("Bad Beam");
    pub const GrappleBeam: BeamEffect = BeamEffect::new("Grapple Beam");

    pub mod WithExtension {
        pub mod BeamEffects {
            use crate::lang_types::BeamEffect;

            pub const BrigitteFlailChainBeam: BeamEffect =
                BeamEffect::new("Brigitte Flail Chain Beam");
            pub const EchoFocusingBeam: BeamEffect = BeamEffect::new("Echo Focusing Beam");
            pub const JunkratTrapChainBeam: BeamEffect = BeamEffect::new("Junkrat Trap Chain Beam");
            pub const MercyHealingBeam: BeamEffect = BeamEffect::new("Mercy Healing Beam");
            pub const MercyBoostBeam: BeamEffect = BeamEffect::new("Mercy Boost Beam");
            pub const MoiraOrbHealBeam: BeamEffect = BeamEffect::new("Moira Orb Heal Beam");
            pub const MoiraOrbDamageBeam: BeamEffect = BeamEffect::new("Moira Orb Damage Beam");
            pub const MoiraGraspConnectedBeam: BeamEffect =
                BeamEffect::new("Moira Grasp Connected Beam");
            pub const MoiraCoalescenceBeam: BeamEffect = BeamEffect::new("Moira Coalescence Beam");
            pub const OrisaHaltTendrilBeam: BeamEffect = BeamEffect::new("Orisa Halt Tendril Beam");
            pub const OrisaAmplierBeam: BeamEffect = BeamEffect::new("Orisa Amplier Beam");
            pub const SymmetraProjectorBeam: BeamEffect =
                BeamEffect::new("Symmetra Projector Beam");
            pub const SymmetraTurretBeam: BeamEffect = BeamEffect::new("Symmetra Turret Beam");
            pub const TorbjornTurretSightBeam: BeamEffect =
                BeamEffect::new("Torbjörn Turret Sight Beam");
            pub const WinstonTeslaCannonBeam: BeamEffect =
                BeamEffect::new("Winston Tesla Cannon Beam");
            pub const ZaryaParticleBeam: BeamEffect = BeamEffect::new("Zarya Particle Beam");
            pub const OmnicSlicerBeam: BeamEffect = BeamEffect::new("Omnic Slicer Beam");
        }
    }
}

pub mod LingeringEffect {
    use crate::lang_types::LingeringEffect;

    pub const Sphere: LingeringEffect = LingeringEffect::new("Sphere");
    pub const LightShaft: LingeringEffect = LingeringEffect::new("Light Shaft");
    pub const Orb: LingeringEffect = LingeringEffect::new("Orb");
    pub const Ring: LingeringEffect = LingeringEffect::new("Ring");
    pub const Cloud: LingeringEffect = LingeringEffect::new("Cloud");
    pub const Sparkles: LingeringEffect = LingeringEffect::new("Sparkles");
    pub const GoodAura: LingeringEffect = LingeringEffect::new("Good Aura");
    pub const BadAura: LingeringEffect = LingeringEffect::new("Bad Aura");
    pub const EnergySound: LingeringEffect = LingeringEffect::new("Energy Sound");
    pub const PickUpSound: LingeringEffect = LingeringEffect::new("Pick-up Sound");
    pub const GoodAuraSound: LingeringEffect = LingeringEffect::new("Good Aura Sound");
    pub const BadAuraSound: LingeringEffect = LingeringEffect::new("Bad Aura Sound");
    pub const SparklesSound: LingeringEffect = LingeringEffect::new("Sparkles Sound");
    pub const SmokeSound: LingeringEffect = LingeringEffect::new("Smoke Sound");
    pub const DecalSound: LingeringEffect = LingeringEffect::new("Decal Sound");
    pub const BeaconSound: LingeringEffect = LingeringEffect::new("Beacon Sound");

    pub mod WithExtension {
        pub mod BeamSounds {
            use crate::lang_types::LingeringEffect;

            pub const EchoFocusingBeamSound: LingeringEffect =
                LingeringEffect::new("Echo Focusing Beam Sound");
            pub const JunkratTrapChainSound: LingeringEffect =
                LingeringEffect::new("Junkrat Trap Chain Sound");
            pub const MercyHealBeamSound: LingeringEffect =
                LingeringEffect::new("Mercy Heal Beam Sound");
            pub const MercyBoostBeamSound: LingeringEffect =
                LingeringEffect::new("Mercy Boost Beam Sound");
            pub const MoiraGraspConnectedSound: LingeringEffect =
                LingeringEffect::new("Moira Grasp Connected Sound");
            pub const MoiraOrbDamageSound: LingeringEffect =
                LingeringEffect::new("Moira Orb Damage Sound");
            pub const MoiraOrbHealSound: LingeringEffect =
                LingeringEffect::new("Moira Orb Heal Sound");
            pub const MoiraCoalescenceSound: LingeringEffect =
                LingeringEffect::new("Moira Coalescence Sound");
            pub const OrisaAmplierSound: LingeringEffect =
                LingeringEffect::new("Orisa Amplier Sound");
            pub const OrisaHaltTendrilSound: LingeringEffect =
                LingeringEffect::new("Orisa Halt Tendril Sound");
            pub const SymmetraProjectorSound: LingeringEffect =
                LingeringEffect::new("Symmetra Projector Sound");
            pub const WinstonTeslaCannonSound: LingeringEffect =
                LingeringEffect::new("Winston Tesla Cannon Sound");
            pub const ZaryaParticleBeamSound: LingeringEffect =
                LingeringEffect::new("Zarya Particle Beam Sound");
            pub const OmnicSlicerBeamSound: LingeringEffect =
                LingeringEffect::new("Omnic Slicer Beam Sound");
        }
        pub mod BuffAndDebuffSounds {
            use crate::lang_types::LingeringEffect;

            pub const AnaNanoBoostedSound: LingeringEffect =
                LingeringEffect::new("Ana Nano Boosted Sound");
            pub const BaptisteImmortalityFieldProtectedSound: LingeringEffect =
                LingeringEffect::new("Baptiste Immortality Field Protected Sound");
            pub const EchoCloningSound: LingeringEffect =
                LingeringEffect::new("Echo Cloning Sound");
            pub const LucioSoundBarrierProtectedSound: LingeringEffect =
                LingeringEffect::new("LĂșcio Sound Barrier Protected Sound");
            pub const MeiFrozenSound: LingeringEffect = LingeringEffect::new("Mei Frozen Sound");
            pub const MercyDamageBoostedSound: LingeringEffect =
                LingeringEffect::new("Mercy Damage Boosted Sound");
            pub const SigmaGraviticFluxTargetSound: LingeringEffect =
                LingeringEffect::new("Sigma Gravitic Flux Target Sound");
            pub const SombraHackingSound: LingeringEffect =
                LingeringEffect::new("Sombra Hacking Sound");
            pub const SombraHackedSound: LingeringEffect =
                LingeringEffect::new("Sombra Hacked Sound");
            pub const TorbjornOverloadingSound: LingeringEffect =
                LingeringEffect::new("Torbjörn Overloading Sound");
            pub const WidowmakerVenomMineTargetSound: LingeringEffect =
                LingeringEffect::new("Widowmaker Venom Mine Target Sound");
            pub const WinstonTeslaCannonTargetSound: LingeringEffect =
                LingeringEffect::new("Winston Tesla Cannon Target Sound");
            pub const WinstonPrimalRageSound: LingeringEffect =
                LingeringEffect::new("Winston Primal Rage Sound");
            pub const WreckingBallAdaptiveShieldTargetSound: LingeringEffect =
                LingeringEffect::new("Wrecking Ball Adaptive Shield Target Sound");
            pub const WreckingBallPiledriverFireSound: LingeringEffect =
                LingeringEffect::new("Wrecking Ball Piledriver Fire Sound");
            pub const ZenyattaOrbOfDiscordTargetSound: LingeringEffect =
                LingeringEffect::new("Zenyatta Orb Of Discord Target Sound");
        }
        pub mod BuffStatusEffects {
            use crate::lang_types::LingeringEffect;

            pub const HealTargetActiveEffect: LingeringEffect =
                LingeringEffect::new("Heal Target Active Effect");
            pub const HealTargetEffect: LingeringEffect =
                LingeringEffect::new("Heal Target Effect");
            pub const AnaBioticGrenadeIncreasedHealingEffect: LingeringEffect =
                LingeringEffect::new("Ana Biotic Grenade Increased Healing Effect");
            pub const AnaNanoBoostedEffect: LingeringEffect =
                LingeringEffect::new("Ana Nano Boosted Effect");
            pub const BaptisteImmortalityFieldProtectedEffect: LingeringEffect =
                LingeringEffect::new("Baptiste Immortality Field Protected Effect");
            pub const EchoCloningEffect: LingeringEffect =
                LingeringEffect::new("Echo Cloning Effect");
            pub const LucioSoundBarrierProtectedEffect: LingeringEffect =
                LingeringEffect::new("LĂșcio Sound Barrier Protected Effect");
            pub const MercyDamageBoostedEffect: LingeringEffect =
                LingeringEffect::new("Mercy Damage Boosted Effect");
            pub const ReaperWraithFormEffect: LingeringEffect =
                LingeringEffect::new("Reaper Wraith Form Effect");
            pub const Soldier76SprintingEffect: LingeringEffect =
                LingeringEffect::new("Soldier: 76 Sprinting Effect");
            pub const TorbjornOverloadingEffect: LingeringEffect =
                LingeringEffect::new("Torbjörn Overloading Effect");
            pub const WinstonPrimedRageEffect: LingeringEffect =
                LingeringEffect::new("Winston Primed Rage Effect");
            pub const WreckingBallAdaptiveShieldTargetEffect: LingeringEffect =
                LingeringEffect::new("Wrecking Ball Adaptive Shield Target Effect");
            pub const WreckingBallPiledriverFireEffect: LingeringEffect =
                LingeringEffect::new("Wrecking Ball Piledriver Fire Effect");
        }
        pub mod DebuffEffects {
            use crate::lang_types::LingeringEffect;

            pub const AnaBioticGrenadeNoHealingEffect: LingeringEffect =
                LingeringEffect::new("Ana Biotic Grenade No Healing Effect");
            pub const AnaSleepingEffect: LingeringEffect =
                LingeringEffect::new("Ana Sleeping Effect");
            pub const AsheDynamiteBurningParticleEffect: LingeringEffect =
                LingeringEffect::new("Ashe Dynamite Burning Particle Effect");
            pub const AsheDynamiteBurningMaterialEffect: LingeringEffect =
                LingeringEffect::new("Ashe Dynamite Burning Material Effect");
            pub const CassidyFlashbangStunnedEffect: LingeringEffect =
                LingeringEffect::new("Cassidy Flashbang Stunned Effect");
            pub const MeiFrozenEffect: LingeringEffect = LingeringEffect::new("Mei Frozen Effect");
            pub const SigmaGraviticFluxTargetEffect: LingeringEffect =
                LingeringEffect::new("Sigma Gravitic Flux Target Effect");
            pub const SombraHackedLoopingEffect: LingeringEffect =
                LingeringEffect::new("Sombra Hacked Looping Effect");
            pub const WidowmakerVenomMineTargetEffect: LingeringEffect =
                LingeringEffect::new("Widowmaker Venom Mine Target Effect");
            pub const WinstonTeslaCannonTargetEffect: LingeringEffect =
                LingeringEffect::new("Winston Tesla Cannon Target Effect");
            pub const ZenyattaOrbOfDiscordTargetEffect: LingeringEffect =
                LingeringEffect::new("Zenyatta Orb Of Discord Target Effect");
        }
    }
}

pub mod ProjectileType {
    use crate::lang_types::ProjectileType;

    pub const OrbProjectile: ProjectileType = ProjectileType::new("Orb Projectile");

    pub mod WithExtension {
        pub mod Projectiles {
            use crate::lang_types::ProjectileType;

            pub const BaptisteBioticLauncher: ProjectileType =
                ProjectileType::new("Baptiste Biotic Launcher");
            pub const BastionA36TacticalGrenade: ProjectileType =
                ProjectileType::new("Bastion A-36 Tactical Grenade");
            pub const EchoStickyBomb: ProjectileType = ProjectileType::new("Echo Sticky Bomb");
            pub const GenjiShuriken: ProjectileType = ProjectileType::new("Genji Shuriken");
            pub const LucioSonicAmplifier: ProjectileType =
                ProjectileType::new("Lucio Sonic Amplifier");
            pub const MeiIcicle: ProjectileType = ProjectileType::new("Mei Icicle");
            pub const MercyCaduceusBlaster: ProjectileType =
                ProjectileType::new("Mercy Caduceus Blaster");
            pub const MoiraDamageOrb: ProjectileType = ProjectileType::new("Moira Damage Orb");
            pub const MoiraHealOrb: ProjectileType = ProjectileType::new("Moira Heal Orb");
            pub const OrisaFusionDriver: ProjectileType =
                ProjectileType::new("Orisa Fusion Driver");
            pub const PharahRocket: ProjectileType = ProjectileType::new("Pharah Rocket");
            pub const ReinhardtFireStrike: ProjectileType =
                ProjectileType::new("Reinhardt Fire Strike");
            pub const RoadhogScrap: ProjectileType = ProjectileType::new("Roadhog Scrap");
            pub const RoadhogScrapBall: ProjectileType = ProjectileType::new("Roadhog Scrap Ball");
            pub const SigmaHyperSphere: ProjectileType = ProjectileType::new("Sigma Hyper Sphere");
            pub const SymmetraPhotonProjector: ProjectileType =
                ProjectileType::new("Symmetra Photon Projector");
            pub const RamattraRavenousVortexSphere: ProjectileType =
                ProjectileType::new("Ramattra Ravenous Vortex Sphere");
            pub const ZaryaGraviton: ProjectileType = ProjectileType::new("Zarya Graviton");
            pub const ZaryaParticleCannon: ProjectileType =
                ProjectileType::new("Zarya Particle Cannon");
        }
    }
}

pub mod ModifyHealthType {
    use crate::lang_types::ModifyHealthType;

    pub const Damage: ModifyHealthType = ModifyHealthType::new("Damage");
    pub const Heal: ModifyHealthType = ModifyHealthType::new("Heal");
}

pub mod SplashSound {
    use crate::lang_types::SplashSound;

    pub const ExplosionSound: SplashSound = SplashSound::new("Explosion Sound");
    pub const BuffExplosionSound: SplashSound = SplashSound::new("Buff Explosion Sound");
    pub const RingExplosionSound: SplashSound = SplashSound::new("Ring Explosion Sound");

    pub mod WithExtension {
        pub mod ExplosionSounds {
            use crate::lang_types::SplashSound;

            pub const AnaBioticGrenadeExplosionSound: SplashSound =
                SplashSound::new("Ana Biotic Grenade Explosion Sound");
            pub const AsheDynamiteExplosionSound: SplashSound =
                SplashSound::new("Ashe Dynamite Explosion Sound");
            pub const BaptisteBioticLauncherExplosionSound: SplashSound =
                SplashSound::new("Baptiste Biotic Launcher Explosion Sound");
            pub const BastionTankCannonExplosionSound: SplashSound =
                SplashSound::new("Bastion Tank Cannon Explosion Sound");
            pub const BrigitteWhipShotHealAreaSound: SplashSound =
                SplashSound::new("Brigitte Whip Shot Heal Area Sound");
            pub const BrigitteRepairPackImpactSound: SplashSound =
                SplashSound::new("Brigitte Repair Pack Impact Sound");
            pub const BrigitteRepairPackArmorSound: SplashSound =
                SplashSound::new("Brigitte Repair Pack Armor Sound");
            pub const DVaMicroMissilesExplosionSound: SplashSound =
                SplashSound::new("DVa Micro Missiles Explosion Sound");
            pub const DVaSelfDestructExplosionSound: SplashSound =
                SplashSound::new("DVa Self Destruct Explosion Sound");
            pub const DoomfistRisingUppercutLeapSound: SplashSound =
                SplashSound::new("Doomfist Rising Uppercut Leap Sound");
            pub const DoomfistRisingUppercutImpactSound: SplashSound =
                SplashSound::new("Doomfist Rising Uppercut Impact Sound");
            pub const DoomfistMeteorStrikeImpactSound: SplashSound =
                SplashSound::new("Doomfist Meteor Strike Impact Sound");
            pub const EchoStickyBombExplosionSound: SplashSound =
                SplashSound::new("Echo Sticky Bomb Explosion Sound");
            pub const JunkratFragLauncherExplosionSound: SplashSound =
                SplashSound::new("Junkrat Frag Launcher Explosion Sound");
            pub const JunkratConcussionMineExplosionSound: SplashSound =
                SplashSound::new("Junkrat Concussion Mine Explosion Sound");
            pub const JunkratRipTireExplosionSound: SplashSound =
                SplashSound::new("Junkrat Rip Tire Explosion Sound");
            pub const HanzoSonicArrowInitialPulseSound: SplashSound =
                SplashSound::new("Hanzo Sonic Arrow Initial Pulse Sound");
            pub const LucioSoundBarrierCastSound: SplashSound =
                SplashSound::new("LĂșcio Sound Barrier Cast Sound");
            pub const CassidyFlashbangExplosionSound: SplashSound =
                SplashSound::new("Cassidy Flashbang Explosion Sound");
            pub const MoiraFadeDisappearSound: SplashSound =
                SplashSound::new("Moira Fade Disappear Sound");
            pub const MoiraFadeReappearSound: SplashSound =
                SplashSound::new("Moira Fade Reappear Sound");
            pub const OrisaHaltImplosionSound: SplashSound =
                SplashSound::new("Orisa Halt Implosion Sound");
            pub const PharahRocketLauncherExplosionSound: SplashSound =
                SplashSound::new("Pharah Rocket Launcher Explosion Sound");
            pub const PharahConcussiveBlastSound: SplashSound =
                SplashSound::new("Pharah Concussive Blast Sound");
            pub const PharahBarrageExplosionSound: SplashSound =
                SplashSound::new("Pharah Barrage Explosion Sound");
            pub const ReinhardtFireStrikeTargetImpactSound: SplashSound =
                SplashSound::new("Reinhardt Fire Strike Target Impact Sound");
            pub const SigmaHyperSphereImplosionSound: SplashSound =
                SplashSound::new("Sigma Hyper Sphere Implosion Sound");
            pub const SigmaAccretionImpactSound: SplashSound =
                SplashSound::new("Sigma Accretion Impact Sound");
            pub const SombraLogoSound: SplashSound = SplashSound::new("Sombra Logo Sound");
            pub const SombraTranslocatorDisappearSound: SplashSound =
                SplashSound::new("Sombra Translocator Disappear Sound");
            pub const SombraTranslocatorReappearSound: SplashSound =
                SplashSound::new("Sombra Translocator Reappear Sound");
            pub const SombraEMPExplosionSound: SplashSound =
                SplashSound::new("Sombra EMP Explosion Sound");
            pub const SymmetraTeleporterReappearSound: SplashSound =
                SplashSound::new("Symmetra Teleporter Reappear Sound");
            pub const TracerRecallDisappearSound: SplashSound =
                SplashSound::new("Tracer Recall Disappear Sound");
            pub const TracerRecallReappearSound: SplashSound =
                SplashSound::new("Tracer Recall Reappear Sound");
            pub const WidowmakerVenomMineExplosionSound: SplashSound =
                SplashSound::new("Widowmaker Venom Mine Explosion Sound");
            pub const WinstonJumpPackLandingSound: SplashSound =
                SplashSound::new("Winston Jump Pack Landing Sound");
            pub const WreckingBallPiledriverImpactSound: SplashSound =
                SplashSound::new("Wrecking Ball Piledriver Impact Sound");
            pub const WreckingBallMinefieldExplosionSound: SplashSound =
                SplashSound::new("Wrecking Ball Minefield Explosion Sound");
            pub const ZaryaParticleCannonExplosionSound: SplashSound =
                SplashSound::new("Zarya Particle Cannon Explosion Sound");
        }
    }
}

pub mod SplashVisual {
    use crate::lang_types::SplashVisual;

    pub const BadExplosion: SplashVisual = SplashVisual::new("Bad Explosion");
    pub const GoodExplosion: SplashVisual = SplashVisual::new("Good Explosion");
    pub const RingExplosion: SplashVisual = SplashVisual::new("Ring Explosion");

    pub mod WithExtension {
        pub mod EnergyExplosionEffects {
            use crate::lang_types::SplashVisual;

            pub const BrigitteRepairPackImpactEffect: SplashVisual =
                SplashVisual::new("Brigitte Repair Pack Impact Effect");
            pub const BrigitteRepairPackArmorEffect: SplashVisual =
                SplashVisual::new("Brigitte Repair Pack Armor Effect");
            pub const BrigitteWhipShotHealAreaEffect: SplashVisual =
                SplashVisual::new("Brigitte Whip Shot Heal Area Effect");
            pub const DVaMicroMissilesExplosionEffect: SplashVisual =
                SplashVisual::new("DVa Micro Missiles Explosion Effect");
            pub const DVaSelfDestructExplosionEffect: SplashVisual =
                SplashVisual::new("DVa Self Destruct Explosion Effect");
            pub const EchoStickyBombExplosionEffect: SplashVisual =
                SplashVisual::new("Echo Sticky Bomb Explosion Effect");
            pub const HanzoSonicArrowInitialPulseEffect: SplashVisual =
                SplashVisual::new("Hanzo Sonic Arrow Initial Pulse Effect");
            pub const LucioSoundBarrierCastEffect: SplashVisual =
                SplashVisual::new("LĂșcio Sound Barrier Cast Effect");
            pub const MoiraFadeDisappearEffect: SplashVisual =
                SplashVisual::new("Moira Fade Disappear Effect");
            pub const MoiraFadeReappearEffect: SplashVisual =
                SplashVisual::new("Moira Fade Reappear Effect");
            pub const OrisaHaltImplosionEffect: SplashVisual =
                SplashVisual::new("Orisa Halt Implosion Effect");
            pub const SigmaHyperSphereImplosionEffect: SplashVisual =
                SplashVisual::new("Sigma Hyper Sphere Implosion Effect");
            pub const SombraLogoEffect: SplashVisual = SplashVisual::new("Sombra Logo Effect");
            pub const SombraTranslocatorDisappearEffect: SplashVisual =
                SplashVisual::new("Sombra Translocator Disappear Effect");
            pub const SombraTranslocatorReappearEffect: SplashVisual =
                SplashVisual::new("Sombra Translocator Reappear Effect");
            pub const SombraEMPExplosionEffect: SplashVisual =
                SplashVisual::new("Sombra EMP Explosion Effect");
            pub const SymmetraTeleporterReappearEffect: SplashVisual =
                SplashVisual::new("Symmetra Teleporter Reappear Effect");
            pub const TracerRecallDisappearEffect: SplashVisual =
                SplashVisual::new("Tracer Recall Disappear Effect");
            pub const TracerRecallReappearEffect: SplashVisual =
                SplashVisual::new("Tracer Recall Reappear Effect");
            pub const ZaryaParticleCannonExplosionEffect: SplashVisual =
                SplashVisual::new("Zarya Particle Cannon Explosion Effect");
        }
        pub mod KineticExplosionEffects {
            use crate::lang_types::SplashVisual;

            pub const AnaBioticGrenadeExplosionEffect: SplashVisual =
                SplashVisual::new("Ana Biotic Grenade Explosion Effect");
            pub const AsheDynamiteExplosionEffect: SplashVisual =
                SplashVisual::new("Ashe Dynamite Explosion Effect");
            pub const BaptisteBioticLauncherExplosionEffect: SplashVisual =
                SplashVisual::new("Baptiste Biotic Launcher Explosion Effect");
            pub const BastionTankCannonExplosionEffect: SplashVisual =
                SplashVisual::new("Bastion Tank Cannon Explosion Effect");
            pub const DoomfistRisingUppercutLeapEffect: SplashVisual =
                SplashVisual::new("Doomfist Rising Uppercut Leap Effect");
            pub const DoomfistRisingUppercutImpactEffect: SplashVisual =
                SplashVisual::new("Doomfist Rising Uppercut Impact Effect");
            pub const DoomfistMeteorStrikeImpactEffect: SplashVisual =
                SplashVisual::new("Doomfist Meteor Strike Impact Effect");
            pub const JunkratFragLauncherExplosionEffect: SplashVisual =
                SplashVisual::new("Junkrat Frag Launcher Explosion Effect");
            pub const JunkratConcussionMineExplosionEffect: SplashVisual =
                SplashVisual::new("Junkrat Concussion Mine Explosion Effect");
            pub const JunkratRipTireExplosionEffect: SplashVisual =
                SplashVisual::new("Junkrat Rip Tire Explosion Effect");
            pub const CassidyFlashbangExplosionEffect: SplashVisual =
                SplashVisual::new("Cassidy Flashbang Explosion Effect");
            pub const PharahRocketLauncherExplosionEffect: SplashVisual =
                SplashVisual::new("Pharah Rocket Launcher Explosion Effect");
            pub const PharahConcussiveBlastEffect: SplashVisual =
                SplashVisual::new("Pharah Concussive Blast Effect");
            pub const PharahBarrageExplosionEffect: SplashVisual =
                SplashVisual::new("Pharah Barrage Explosion Effect");
            pub const ReinhardtFireStrikeTargetImpactEffect: SplashVisual =
                SplashVisual::new("Reinhardt Fire Strike Target Impact Effect");
            pub const SigmaAccretionImpactEffect: SplashVisual =
                SplashVisual::new("Sigma Accretion Impact Effect");
            pub const WidowmakerVenomMineExplosionEffect: SplashVisual =
                SplashVisual::new("Widowmaker Venom Mine Explosion Effect");
            pub const WinstonJumpPackLandingEffect: SplashVisual =
                SplashVisual::new("Winston Jump Pack Landing Effect");
            pub const WreckingBallPiledriverImpactEffect: SplashVisual =
                SplashVisual::new("Wrecking Ball Piledriver Impact Effect");
            pub const WreckingBallMinefieldExplosionEffect: SplashVisual =
                SplashVisual::new("Wrecking Ball Minefield Explosion Effect");
        }
    }
}

pub mod SplashEffect {
    pub use super::SplashSound::*;
    pub use super::SplashVisual::*;

    pub mod WithExtension {
        pub use super::super::SplashSound::WithExtension::*;
        pub use super::super::SplashVisual::WithExtension::*;
    }
}

pub mod HudLocation {
    use crate::lang_types::HudLocation;

    pub const Left: HudLocation = HudLocation::new("Left");
    pub const Top: HudLocation = HudLocation::new("Top");
    pub const Right: HudLocation = HudLocation::new("Right");
}

pub mod SpectatorVisibility {
    use crate::lang_types::SpectatorVisibility;

    pub const Default: SpectatorVisibility = SpectatorVisibility::new("Default Visibility");
    pub const Always: SpectatorVisibility = SpectatorVisibility::new("Visible Always");
    pub const Never: SpectatorVisibility = SpectatorVisibility::new("Never Visible");
}

pub mod Icon {
    use crate::lang_types::Icon;

    pub const ArrowDown: Icon = Icon::new("Arrow: Down");
    pub const ArrowLeft: Icon = Icon::new("Arrow: Left");
    pub const ArrowRight: Icon = Icon::new("Arrow: Right");
    pub const ArrowUp: Icon = Icon::new("Arrow: Up");
    pub const Asterisk: Icon = Icon::new("Asterisk");
    pub const Bolt: Icon = Icon::new("Bolt");
    pub const Checkmark: Icon = Icon::new("Checkmark");
    pub const Circle: Icon = Icon::new("Circle");
    pub const Club: Icon = Icon::new("Club");
    pub const Diamond: Icon = Icon::new("Diamond");
    pub const Dizzy: Icon = Icon::new("Dizzy");
    pub const ExclamationMark: Icon = Icon::new("Exclamation Mark");
    pub const Eye: Icon = Icon::new("Eye");
    pub const Fire: Icon = Icon::new("Fire");
    pub const Flag: Icon = Icon::new("Flag");
    pub const Halo: Icon = Icon::new("Halo");
    pub const Happy: Icon = Icon::new("Happy");
    pub const Heart: Icon = Icon::new("Heart");
    pub const Moon: Icon = Icon::new("Moon");
    pub const No: Icon = Icon::new("No");
    pub const Plus: Icon = Icon::new("Plus");
    pub const Poison: Icon = Icon::new("Poison");
    pub const Poison2: Icon = Icon::new("Poison 2");
    pub const QuestionMark: Icon = Icon::new("Question Mark");
    pub const Radioactive: Icon = Icon::new("Radioactive");
    pub const Recycle: Icon = Icon::new("Recycle");
    pub const RingThick: Icon = Icon::new("Ring Thick");
    pub const RingThin: Icon = Icon::new("Ring Thin");
    pub const Sad: Icon = Icon::new("Sad");
    pub const Skull: Icon = Icon::new("Skull");
    pub const Spade: Icon = Icon::new("Spade");
    pub const Spiral: Icon = Icon::new("Spiral");
    pub const Stop: Icon = Icon::new("Stop");
    pub const Trashcan: Icon = Icon::new("Trashcan");
    pub const Warning: Icon = Icon::new("Warning");
    pub const X: Icon = Icon::new("X");
}

pub mod Clipping {
    use crate::lang_types::Clipping;

    pub const ClipAgainstSurfaces: Clipping = Clipping::new("Clip Against Surfaces");
    pub const DoNotClip: Clipping = Clipping::new("Do Not Clip");
}

pub mod HealthType {
    use crate::lang_types::HealthType;

    pub const Health: HealthType = HealthType::new("Health");
    pub const Armor: HealthType = HealthType::new("Armor");
    pub const Shield: HealthType = HealthType::new("Shield");
}

pub mod Invisibility {
    use crate::lang_types::Invisibility;

    pub const All: Invisibility = Invisibility::new("All");
    pub const Enemies: Invisibility = Invisibility::new("Enemies");
    pub const None: Invisibility = Invisibility::new("None");
}

pub mod OutlineType {
    use crate::lang_types::OutlineType;

    pub const Default: OutlineType = OutlineType::new("Default");
    pub const Occluded: OutlineType = OutlineType::new("Occluded");
    pub const Always: OutlineType = OutlineType::new("Always");
}

pub mod ThrottleBehavior {
    use crate::lang_types::ThrottleBehavior;

    pub const ReplaceExistingThrottle: ThrottleBehavior =
        ThrottleBehavior::new("Replace Existing Throttle");
    pub const AddToExistingThrottle: ThrottleBehavior =
        ThrottleBehavior::new("Add To Existing Throttle");
}

pub mod SubroutineBehavior {
    use crate::lang_types::SubroutineBehavior;

    pub const RestartRule: SubroutineBehavior = SubroutineBehavior::new("Restart Rule");
    pub const DoNothing: SubroutineBehavior = SubroutineBehavior::new("Do Nothing");
}

pub mod WaitBehavior {
    use crate::lang_types::WaitBehavior;

    pub const IgnoreCondition: WaitBehavior = WaitBehavior::new("Ignore Condition");
    pub const AbortWhenFalse: WaitBehavior = WaitBehavior::new("Abort When False");
    pub const RestartWhenTrue: WaitBehavior = WaitBehavior::new("Restart When True");
}

pub mod RelativeSystem {
    use crate::lang_types::RelativeSystem;

    pub const ToWorld: RelativeSystem = RelativeSystem::new("To World");
    pub const ToPlayer: RelativeSystem = RelativeSystem::new("To Player");
}

pub mod BarrierLOS {
    use crate::lang_types::BarrierLOS;

    pub const BarriersDoNotBlockLOS: BarrierLOS = BarrierLOS::new("Barriers Do Not Block LOS");
    pub const EnemyBarriersBlockLOS: BarrierLOS = BarrierLOS::new("Enemy Barriers Block LOS");
    pub const AllBarriersBlockLOS: BarrierLOS = BarrierLOS::new("All Barriers Block LOS");
}

pub mod Transformation {
    use crate::lang_types::Transformation;

    pub const Rotation: Transformation = Transformation::new("Rotation");
    pub const RotationAndTranslation: Transformation =
        Transformation::new("Rotation And Translation");
}

pub mod Statistic {
    use crate::lang_types::Statistic;

    pub const AllDamageDealt: Statistic = Statistic::new("All Damage Dealt");
    pub const BarrierDamageDealt: Statistic = Statistic::new("Barrier Damage Dealt");
    pub const CriticalHitAccuracy: Statistic = Statistic::new("Critical Hit Accuracy");
    pub const CriticalHits: Statistic = Statistic::new("Critical Hits");
    pub const DamageBlocked: Statistic = Statistic::new("Damage Blocked");
    pub const DamageTaken: Statistic = Statistic::new("Damage Taken");
    pub const Deaths: Statistic = Statistic::new("Deaths");
    pub const DefensiveAssists: Statistic = Statistic::new("Defensive Assists");
    pub const Eliminations: Statistic = Statistic::new("Eliminations");
    pub const EnvironmentalDeaths: Statistic = Statistic::new("Environmental Deaths");
    pub const EnvironmentalKills: Statistic = Statistic::new("Environmental Kills");
    pub const FinalBlows: Statistic = Statistic::new("Final Blows");
    pub const HealingDone: Statistic = Statistic::new("Healing Done");
    pub const HealingReceived: Statistic = Statistic::new("Healing Received");
    pub const HeroDamageDealt: Statistic = Statistic::new("Hero Damage Dealt");
    pub const MultikillBest: Statistic = Statistic::new("Multikill Best");
    pub const Multikills: Statistic = Statistic::new("Multikills");
    pub const ObjectiveKills: Statistic = Statistic::new("Objective Kills");
    pub const OffensiveAssists: Statistic = Statistic::new("Offensive Assists");
    pub const ScopedAccuracy: Statistic = Statistic::new("Scoped Accuracy");
    pub const ScopedCriticalHitAccuracy: Statistic = Statistic::new("Scoped Critical Hit Accuracy");
    pub const ScopedCriticalHits: Statistic = Statistic::new("Scoped Critical Hits");
    pub const ScopedHits: Statistic = Statistic::new("Scoped Hits");
    pub const ScopedShots: Statistic = Statistic::new("Scoped Shots");
    pub const SelfHealing: Statistic = Statistic::new("Self Healing");
    pub const ShotsFired: Statistic = Statistic::new("Shots Fired");
    pub const ShotsHit: Statistic = Statistic::new("Shots Hit");
    pub const ShotsMissed: Statistic = Statistic::new("Shots Missed");
    pub const SoloKills: Statistic = Statistic::new("Solo Kills");
    pub const UltimatesEarned: Statistic = Statistic::new("Ultimates Earned");
    pub const UltimatesUsed: Statistic = Statistic::new("Ultimates Used");
    pub const WeaponAccuracy: Statistic = Statistic::new("Weapon Accuracy");
}

pub mod LOS_Check {
    use crate::lang_types::LOS_Check;

    pub const Off: LOS_Check = LOS_Check::new("Off");
    pub const Surfaces: LOS_Check = LOS_Check::new("Surfaces");
    pub const SurfacesAndEnemyBarriers: LOS_Check = LOS_Check::new("Surfaces And Enemy Barriers");
    pub const SurfacesAndAllBarriers: LOS_Check = LOS_Check::new("Surfaces And All Barriers");
}

pub mod Reeval_0 {
    use crate::lang_types::Reeval_0;

    pub const Destination_Rate: Reeval_0 = Reeval_0::new("Destination and Rate");
    pub const None: Reeval_0 = Reeval_0::new("None");
}

pub mod Reeval_1 {
    use crate::lang_types::Reeval_1;

    pub const VisibleTo_Position_Radius: Reeval_1 = Reeval_1::new("Visible To Position and Radius");
    pub const Position_Radius: Reeval_1 = Reeval_1::new("Position and Radius");
    pub const VisibleTo: Reeval_1 = Reeval_1::new("Visible To");
    pub const None: Reeval_1 = Reeval_1::new("None");
    pub const VisibleTo_Position_Radius_Color: Reeval_1 =
        Reeval_1::new("Visible To Position Radius and Color");
    pub const Position_Radius_Color: Reeval_1 = Reeval_1::new("Position Radius and Color");
    pub const VisibleTo_Color: Reeval_1 = Reeval_1::new("Visible To and Color");
    pub const Color: Reeval_1 = Reeval_1::new("Color");
}

pub mod Reeval_2 {
    use crate::lang_types::Reeval_2;

    pub const VisibleTo_String: Reeval_2 = Reeval_2::new("Visible To and String");
    pub const String: Reeval_2 = Reeval_2::new("String");
    pub const VisibleTo_SortOrder_String: Reeval_2 =
        Reeval_2::new("Visible To Sort Order and String");
    pub const SortOrder_String: Reeval_2 = Reeval_2::new("Sort Order and String");
    pub const VisibleTo_SortOrder: Reeval_2 = Reeval_2::new("Visible To and Sort Order");
    pub const VisibleTo: Reeval_2 = Reeval_2::new("Visible To");
    pub const SortOrder: Reeval_2 = Reeval_2::new("Sort Order");
    pub const None: Reeval_2 = Reeval_2::new("None");
    pub const VisibleTo_String_Color: Reeval_2 = Reeval_2::new("Visible To String and Color");
    pub const String_Color: Reeval_2 = Reeval_2::new("String and Color");
    pub const VisibleTo_SortOrder_String_Color: Reeval_2 =
        Reeval_2::new("Visible To Sort Order String and Color");
    pub const SortOrder_String_Color: Reeval_2 = Reeval_2::new("Sort Order String and Color");
    pub const VisibleTo_SortOrder_Color: Reeval_2 =
        Reeval_2::new("Visible To Sort Order and Color");
    pub const VisibleTo_Color: Reeval_2 = Reeval_2::new("Visible To and Color");
    pub const SortOrder_Color: Reeval_2 = Reeval_2::new("Sort Order and Color");
    pub const Color: Reeval_2 = Reeval_2::new("Color");
}

pub mod Reeval_3 {
    use crate::lang_types::Reeval_3;

    pub const VisibleTo_Position: Reeval_3 = Reeval_3::new("Visible To and Position");
    pub const Position: Reeval_3 = Reeval_3::new("Position");
    pub const VisibleTo: Reeval_3 = Reeval_3::new("Visible To");
    pub const None: Reeval_3 = Reeval_3::new("None");
    pub const VisibleTo_Position_Color: Reeval_3 = Reeval_3::new("Visible To Position and Color");
    pub const Position_Color: Reeval_3 = Reeval_3::new("Position and Color");
    pub const VisibleTo_Color: Reeval_3 = Reeval_3::new("Visible To and Color");
    pub const Color: Reeval_3 = Reeval_3::new("Color");
}

pub mod Reeval_4 {
    use crate::lang_types::Reeval_4;

    pub const VisibleTo_Position_String: Reeval_4 = Reeval_4::new("Visible To Position and String");
    pub const VisibleTo_String: Reeval_4 = Reeval_4::new("Visible To and String");
    pub const String: Reeval_4 = Reeval_4::new("String");
    pub const VisibleTo_Position: Reeval_4 = Reeval_4::new("Visible To and Position");
    pub const VisibleTo: Reeval_4 = Reeval_4::new("Visible To");
    pub const None: Reeval_4 = Reeval_4::new("None");
    pub const VisibleTo_Position_String_Color: Reeval_4 =
        Reeval_4::new("Visible To Position String and Color");
    pub const VisibleTo_String_Color: Reeval_4 = Reeval_4::new("Visible To String and Color");
    pub const String_Color: Reeval_4 = Reeval_4::new("String and Color");
    pub const VisibleTo_Position_Color: Reeval_4 = Reeval_4::new("Visible To Position and Color");
    pub const VisibleTo_Color: Reeval_4 = Reeval_4::new("Visible To and Color");
    pub const Color: Reeval_4 = Reeval_4::new("Color");
}

pub mod Reeval_5 {
    use crate::lang_types::Reeval_5;

    pub const VisibleTo_Values_Color: Reeval_5 = Reeval_5::new("Visible To Values and Color");
    pub const VisibleTo_Values: Reeval_5 = Reeval_5::new("Visible To and Values");
    pub const VisibleTo_Color: Reeval_5 = Reeval_5::new("Visible To and Color");
    pub const VisibleTo: Reeval_5 = Reeval_5::new("Visible To");
    pub const Values_Color: Reeval_5 = Reeval_5::new("Values and Color");
    pub const Values: Reeval_5 = Reeval_5::new("Values");
    pub const Color: Reeval_5 = Reeval_5::new("Color");
    pub const None: Reeval_5 = Reeval_5::new("None");
}

pub mod Reeval_6 {
    use crate::lang_types::Reeval_6;

    pub const VisibleTo_Position_Values_Color: Reeval_6 =
        Reeval_6::new("Visible To Position Values and Color");
    pub const VisibleTo_Position_Values: Reeval_6 = Reeval_6::new("Visible To Position and Values");
    pub const VisibleTo_Position_Color: Reeval_6 = Reeval_6::new("Visible To Position and Color");
    pub const VisibleTo_Values_Color: Reeval_6 = Reeval_6::new("Visible To Values and Color");
    pub const VisibleTo_Position: Reeval_6 = Reeval_6::new("Visible To and Position");
    pub const VisibleTo_Values: Reeval_6 = Reeval_6::new("Visible To and Values");
    pub const VisibleTo_Color: Reeval_6 = Reeval_6::new("Visible To and Color");
    pub const VisibleTo: Reeval_6 = Reeval_6::new("Visible To");
    pub const Position_Values_Color: Reeval_6 = Reeval_6::new("Position Values and Color");
    pub const Position_Color: Reeval_6 = Reeval_6::new("Position and Color");
    pub const Position_Values: Reeval_6 = Reeval_6::new("Position and Values");
    pub const Position: Reeval_6 = Reeval_6::new("Position");
    pub const Values_Color: Reeval_6 = Reeval_6::new("Values and Color");
    pub const Values: Reeval_6 = Reeval_6::new("Values");
    pub const Color: Reeval_6 = Reeval_6::new("Color");
    pub const None: Reeval_6 = Reeval_6::new("None");
}

pub mod Reeval_7 {
    use crate::lang_types::Reeval_7;

    pub const VisibleTo_Position_Direction_Size: Reeval_7 =
        Reeval_7::new("Visible To Position Direction and Size");
    pub const Position_Direction_Size: Reeval_7 = Reeval_7::new("Position Direction and Size");
    pub const VisibleTo: Reeval_7 = Reeval_7::new("Visible To");
    pub const None: Reeval_7 = Reeval_7::new("None");
    pub const VisibleTo_FriendlyTo_Position_Direction_Size: Reeval_7 =
        Reeval_7::new("Visible To Friendly To Position Direction and Size");
    pub const FriendlyTo_Position_Direction_Size: Reeval_7 =
        Reeval_7::new("Friendly To Position Direction and Size");
    pub const VisibleTo_FriendlyTo: Reeval_7 = Reeval_7::new("Visible To Friendly To");
    pub const FriendlyTo: Reeval_7 = Reeval_7::new("Friendly To");
}

pub mod Reeval_8 {
    use crate::lang_types::Reeval_8;

    pub const Direction_Rate_MaxSpeed: Reeval_8 = Reeval_8::new("Direction Rate and Max Speed");
    pub const None: Reeval_8 = Reeval_8::new("None");
}

pub mod Reeval_9 {
    use crate::lang_types::Reeval_9;

    pub const Assisters_Targets: Reeval_9 = Reeval_9::new("Assisters and Targets");
    pub const None: Reeval_9 = Reeval_9::new("None");
}

pub mod Reeval_10 {
    use crate::lang_types::Reeval_10;

    pub const Receivers_Damagers_DamagePercent: Reeval_10 =
        Reeval_10::new("Receivers Damagers and Damage Percent");
    pub const Receivers_Damagers: Reeval_10 = Reeval_10::new("Receivers and Damagers");
    pub const None: Reeval_10 = Reeval_10::new("None");
}

pub mod Reeval_11 {
    use crate::lang_types::Reeval_11;

    pub const Direction_TurnRate: Reeval_11 = Reeval_11::new("Direction and Turn Rate");
    pub const None: Reeval_11 = Reeval_11::new("None");
}

pub mod Reeval_12 {
    use crate::lang_types::Reeval_12;

    pub const Receivers_Healers_HealingPercent: Reeval_12 =
        Reeval_12::new("Receivers Healers and Healing Percent");
    pub const Receivers_Healers: Reeval_12 = Reeval_12::new("Receivers and Healers");
    pub const None: Reeval_12 = Reeval_12::new("None");
}

pub mod Reeval_13 {
    use crate::lang_types::Reeval_13;

    pub const Direction_Magnitude: Reeval_13 = Reeval_13::new("Direction and Magnitude");
    pub const None: Reeval_13 = Reeval_13::new("None");
}