teyvatdb 0.1.12 → 0.1.13

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 (52) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/lib/genshin_data/artifact_sets/artifact_data.rb +263 -0
  4. data/lib/{teyvatdb → genshin_data}/artifact_sets.rb +3 -2
  5. data/lib/genshin_data/characters/character_data.rb +1072 -0
  6. data/lib/{teyvatdb → genshin_data}/characters.rb +4 -3
  7. data/lib/{teyvatdb → genshin_data}/materials/development/elite_monster_drops_data.rb +59 -55
  8. data/lib/{teyvatdb → genshin_data}/materials/development/gems_data.rb +37 -33
  9. data/lib/{teyvatdb → genshin_data}/materials/development/general_data.rb +15 -11
  10. data/lib/{teyvatdb → genshin_data}/materials/development/local_specialty_data.rb +48 -44
  11. data/lib/{teyvatdb → genshin_data}/materials/development/monster_loot_drops_data.rb +44 -40
  12. data/lib/{teyvatdb → genshin_data}/materials/development/talent_books_data.rb +50 -46
  13. data/lib/{teyvatdb → genshin_data}/materials/development/weapon_material_data.rb +65 -61
  14. data/lib/{teyvatdb → genshin_data}/materials/development/weapon_refinement_material_data.rb +18 -14
  15. data/lib/{teyvatdb → genshin_data}/materials/development/weekly_boss_drops_data.rb +29 -25
  16. data/lib/{teyvatdb → genshin_data}/materials/development/world_boss_drops_data.rb +32 -28
  17. data/lib/genshin_data/materials/development.rb +71 -0
  18. data/lib/{teyvatdb → genshin_data}/materials/standard/cooking_material_data.rb +60 -56
  19. data/lib/{teyvatdb → genshin_data}/materials/standard/crafting_material_data.rb +18 -14
  20. data/lib/{teyvatdb → genshin_data}/materials/standard/fishing_material_data.rb +49 -45
  21. data/lib/{teyvatdb → genshin_data}/materials/standard/forging_material_data.rb +23 -19
  22. data/lib/{teyvatdb → genshin_data}/materials/standard/furniture_material_data.rb +29 -25
  23. data/lib/genshin_data/materials/standard.rb +41 -0
  24. data/lib/{teyvatdb → genshin_data}/materials.rb +4 -2
  25. data/lib/genshin_data/nations/nation_data.rb +57 -0
  26. data/lib/genshin_data/nations.rb +12 -0
  27. data/lib/genshin_data/weapons/weapon_data/bows.rb +369 -0
  28. data/lib/genshin_data/weapons/weapon_data/catalysts.rb +359 -0
  29. data/lib/genshin_data/weapons/weapon_data/claymores.rb +339 -0
  30. data/lib/genshin_data/weapons/weapon_data/polearms.rb +289 -0
  31. data/lib/genshin_data/weapons/weapon_data/swords.rb +400 -0
  32. data/lib/genshin_data/weapons/weapon_data.rb +11 -0
  33. data/lib/genshin_data/weapons.rb +39 -0
  34. data/lib/genshin_data.rb +10 -0
  35. data/lib/{teyvatdb/genshin_data → genshin_object}/artifact_set.rb +4 -3
  36. data/lib/{teyvatdb/genshin_data → genshin_object}/character.rb +1 -1
  37. data/lib/{teyvatdb/genshin_data → genshin_object}/material.rb +1 -1
  38. data/lib/{teyvatdb/genshin_data → genshin_object}/nation.rb +1 -1
  39. data/lib/{teyvatdb/genshin_data → genshin_object}/weapon.rb +1 -1
  40. data/lib/genshin_object.rb +10 -0
  41. data/lib/teyvatdb/version.rb +1 -1
  42. data/lib/teyvatdb.rb +3 -7
  43. metadata +40 -34
  44. data/lib/teyvatdb/artifact_sets/artifact_data.rb +0 -265
  45. data/lib/teyvatdb/characters/character_data.rb +0 -1074
  46. data/lib/teyvatdb/genshin_data.rb +0 -13
  47. data/lib/teyvatdb/materials/development.rb +0 -428
  48. data/lib/teyvatdb/materials/standard.rb +0 -200
  49. data/lib/teyvatdb/nations/nation_data.rb +0 -55
  50. data/lib/teyvatdb/nations.rb +0 -21
  51. data/lib/teyvatdb/weapons/weapon_data.rb +0 -1697
  52. data/lib/teyvatdb/weapons.rb +0 -189
@@ -1,6 +1,10 @@
1
- module TeyvatDB::Materials::Standard
1
+ module GenshinData::Materials::Standard
2
2
  module FurnitureMaterialData
3
- ADHIGAMA_WOOD = TeyvatDB::GenshinData::Material.new(
3
+ def self.all
4
+ self.constants.map { |x| "GenshinData::Materials::Standard::FurnitureMaterialData::#{x}".constantize }
5
+ end
6
+
7
+ ADHIGAMA_WOOD = GenshinObject::Material.new(
4
8
  kamera_key: "AdhigamaWood",
5
9
  name: "Adhigama Wood",
6
10
  rarity: 1,
@@ -10,7 +14,7 @@ module TeyvatDB::Materials::Standard
10
14
  source_sub_category: :furniture_material,
11
15
  ).freeze
12
16
 
13
- ARALIA_WOOD = TeyvatDB::GenshinData::Material.new(
17
+ ARALIA_WOOD = GenshinObject::Material.new(
14
18
  kamera_key: "AraliaWood",
15
19
  name: "Aralia Wood",
16
20
  rarity: 1,
@@ -20,7 +24,7 @@ module TeyvatDB::Materials::Standard
20
24
  source_sub_category: :furniture_material,
21
25
  ).freeze
22
26
 
23
- ASH_WOOD = TeyvatDB::GenshinData::Material.new(
27
+ ASH_WOOD = GenshinObject::Material.new(
24
28
  kamera_key: "AshWood",
25
29
  name: "Ash Wood",
26
30
  rarity: 1,
@@ -30,7 +34,7 @@ module TeyvatDB::Materials::Standard
30
34
  source_sub_category: :furniture_material,
31
35
  ).freeze
32
36
 
33
- ATHEL_WOOD = TeyvatDB::GenshinData::Material.new(
37
+ ATHEL_WOOD = GenshinObject::Material.new(
34
38
  kamera_key: "AthelWood",
35
39
  name: "Athel Wood",
36
40
  rarity: 1,
@@ -40,7 +44,7 @@ module TeyvatDB::Materials::Standard
40
44
  source_sub_category: :furniture_material,
41
45
  ).freeze
42
46
 
43
- BAMBOO_SEGMENT = TeyvatDB::GenshinData::Material.new(
47
+ BAMBOO_SEGMENT = GenshinObject::Material.new(
44
48
  kamera_key: "BambooSegment",
45
49
  name: "Bamboo Segment",
46
50
  rarity: 1,
@@ -50,7 +54,7 @@ module TeyvatDB::Materials::Standard
50
54
  source_sub_category: :furniture_material,
51
55
  ).freeze
52
56
 
53
- BLUE_DYE = TeyvatDB::GenshinData::Material.new(
57
+ BLUE_DYE = GenshinObject::Material.new(
54
58
  kamera_key: "BlueDye",
55
59
  name: "Blue Dye",
56
60
  rarity: 1,
@@ -60,7 +64,7 @@ module TeyvatDB::Materials::Standard
60
64
  source_sub_category: :furniture_material,
61
65
  ).freeze
62
66
 
63
- BIRCH_WOOD = TeyvatDB::GenshinData::Material.new(
67
+ BIRCH_WOOD = GenshinObject::Material.new(
64
68
  kamera_key: "BirchWood",
65
69
  name: "Birch Wood",
66
70
  rarity: 1,
@@ -70,7 +74,7 @@ module TeyvatDB::Materials::Standard
70
74
  source_sub_category: :furniture_material,
71
75
  ).freeze
72
76
 
73
- BRIGHTWOOD = TeyvatDB::GenshinData::Material.new(
77
+ BRIGHTWOOD = GenshinObject::Material.new(
74
78
  kamera_key: "Brightwood",
75
79
  name: "Brightwood",
76
80
  rarity: 1,
@@ -80,7 +84,7 @@ module TeyvatDB::Materials::Standard
80
84
  source_sub_category: :furniture_material,
81
85
  ).freeze
82
86
 
83
- CUIHUA_WOOD = TeyvatDB::GenshinData::Material.new(
87
+ CUIHUA_WOOD = GenshinObject::Material.new(
84
88
  kamera_key: "CuihuaWood",
85
89
  name: "Cuihua Wood",
86
90
  rarity: 1,
@@ -90,7 +94,7 @@ module TeyvatDB::Materials::Standard
90
94
  source_sub_category: :furniture_material,
91
95
  ).freeze
92
96
 
93
- CYPRESS_WOOD = TeyvatDB::GenshinData::Material.new(
97
+ CYPRESS_WOOD = GenshinObject::Material.new(
94
98
  kamera_key: "CypressWood",
95
99
  name: "Cypress Wood",
96
100
  rarity: 1,
@@ -100,7 +104,7 @@ module TeyvatDB::Materials::Standard
100
104
  source_sub_category: :furniture_material,
101
105
  ).freeze
102
106
 
103
- FABRIC = TeyvatDB::GenshinData::Material.new(
107
+ FABRIC = GenshinObject::Material.new(
104
108
  kamera_key: "Fabric",
105
109
  name: "Fabric",
106
110
  rarity: 1,
@@ -110,7 +114,7 @@ module TeyvatDB::Materials::Standard
110
114
  source_sub_category: :furniture_material,
111
115
  ).freeze
112
116
 
113
- FIR_WOOD = TeyvatDB::GenshinData::Material.new(
117
+ FIR_WOOD = GenshinObject::Material.new(
114
118
  kamera_key: "FirWood",
115
119
  name: "Fir Wood",
116
120
  rarity: 1,
@@ -120,7 +124,7 @@ module TeyvatDB::Materials::Standard
120
124
  source_sub_category: :furniture_material,
121
125
  ).freeze
122
126
 
123
- FRAGRANT_CEDAR_WOOD = TeyvatDB::GenshinData::Material.new(
127
+ FRAGRANT_CEDAR_WOOD = GenshinObject::Material.new(
124
128
  kamera_key: "FragrantCedarWood",
125
129
  name: "Fragrant Cedar Wood",
126
130
  rarity: 1,
@@ -130,7 +134,7 @@ module TeyvatDB::Materials::Standard
130
134
  source_sub_category: :furniture_material,
131
135
  ).freeze
132
136
 
133
- KARMAPHALA_WOOD = TeyvatDB::GenshinData::Material.new(
137
+ KARMAPHALA_WOOD = GenshinObject::Material.new(
134
138
  kamera_key: "KarmaphalaWood",
135
139
  name: "Karmaphala Wood",
136
140
  rarity: 1,
@@ -140,7 +144,7 @@ module TeyvatDB::Materials::Standard
140
144
  source_sub_category: :furniture_material,
141
145
  ).freeze
142
146
 
143
- LINDEN_WOOD = TeyvatDB::GenshinData::Material.new(
147
+ LINDEN_WOOD = GenshinObject::Material.new(
144
148
  kamera_key: "LindenWood",
145
149
  name: "Linden Wood",
146
150
  rarity: 1,
@@ -150,7 +154,7 @@ module TeyvatDB::Materials::Standard
150
154
  source_sub_category: :furniture_material,
151
155
  ).freeze
152
156
 
153
- MALLOW_WOOD = TeyvatDB::GenshinData::Material.new(
157
+ MALLOW_WOOD = GenshinObject::Material.new(
154
158
  kamera_key: "MallowWood",
155
159
  name: "Mallow Wood",
156
160
  rarity: 1,
@@ -160,7 +164,7 @@ module TeyvatDB::Materials::Standard
160
164
  source_sub_category: :furniture_material,
161
165
  ).freeze
162
166
 
163
- MAPLE_WOOD = TeyvatDB::GenshinData::Material.new(
167
+ MAPLE_WOOD = GenshinObject::Material.new(
164
168
  kamera_key: "MapleWood",
165
169
  name: "Maple Wood",
166
170
  rarity: 1,
@@ -170,7 +174,7 @@ module TeyvatDB::Materials::Standard
170
174
  source_sub_category: :furniture_material,
171
175
  ).freeze
172
176
 
173
- MOUNTAIN_DATE_WOOD = TeyvatDB::GenshinData::Material.new(
177
+ MOUNTAIN_DATE_WOOD = GenshinObject::Material.new(
174
178
  kamera_key: "MountainDateWood",
175
179
  name: "Mountain Date Wood",
176
180
  rarity: 1,
@@ -180,7 +184,7 @@ module TeyvatDB::Materials::Standard
180
184
  source_sub_category: :furniture_material,
181
185
  ).freeze
182
186
 
183
- OTOGI_WOOD = TeyvatDB::GenshinData::Material.new(
187
+ OTOGI_WOOD = GenshinObject::Material.new(
184
188
  kamera_key: "OtogiWood",
185
189
  name: "Otogi Wood",
186
190
  rarity: 1,
@@ -190,7 +194,7 @@ module TeyvatDB::Materials::Standard
190
194
  source_sub_category: :furniture_material,
191
195
  ).freeze
192
196
 
193
- PINE_WOOD = TeyvatDB::GenshinData::Material.new(
197
+ PINE_WOOD = GenshinObject::Material.new(
194
198
  kamera_key: "PineWood",
195
199
  name: "Pine Wood",
196
200
  rarity: 1,
@@ -200,7 +204,7 @@ module TeyvatDB::Materials::Standard
200
204
  source_sub_category: :furniture_material,
201
205
  ).freeze
202
206
 
203
- RED_DYE = TeyvatDB::GenshinData::Material.new(
207
+ RED_DYE = GenshinObject::Material.new(
204
208
  kamera_key: "RedDye",
205
209
  name: "Red Dye",
206
210
  rarity: 2,
@@ -210,7 +214,7 @@ module TeyvatDB::Materials::Standard
210
214
  source_sub_category: :furniture_material,
211
215
  ).freeze
212
216
 
213
- SANDBEARER_WOOD = TeyvatDB::GenshinData::Material.new(
217
+ SANDBEARER_WOOD = GenshinObject::Material.new(
214
218
  kamera_key: "SandbearerWood",
215
219
  name: "Sandbearer Wood",
216
220
  rarity: 1,
@@ -220,7 +224,7 @@ module TeyvatDB::Materials::Standard
220
224
  source_sub_category: :furniture_material,
221
225
  ).freeze
222
226
 
223
- YELLOW_DYE = TeyvatDB::GenshinData::Material.new(
227
+ YELLOW_DYE = GenshinObject::Material.new(
224
228
  kamera_key: "YellowDye",
225
229
  name: "Yellow Dye",
226
230
  rarity: 1,
@@ -230,7 +234,7 @@ module TeyvatDB::Materials::Standard
230
234
  source_sub_category: :furniture_material,
231
235
  ).freeze
232
236
 
233
- YUMEMIRU_WOOD = TeyvatDB::GenshinData::Material.new(
237
+ YUMEMIRU_WOOD = GenshinObject::Material.new(
234
238
  kamera_key: "YumemiruWood",
235
239
  name: "Yumemiru Wood",
236
240
  rarity: 1,
@@ -0,0 +1,41 @@
1
+ module GenshinData::Materials
2
+ module Standard
3
+ require_relative "standard/cooking_material_data"
4
+ require_relative "standard/crafting_material_data"
5
+ require_relative "standard/fishing_material_data"
6
+ require_relative "standard/forging_material_data"
7
+ require_relative "standard/furniture_material_data"
8
+
9
+ class << self
10
+ def all
11
+ [
12
+ crafting_materials,
13
+ cooking_materials,
14
+ fishing_materials,
15
+ forging_materials,
16
+ furniture_materials,
17
+ ].flatten.sort { |x, y| x.name <=> y.name }
18
+ end
19
+
20
+ def crafting_materials
21
+ CraftingMaterialData.all
22
+ end
23
+
24
+ def cooking_materials
25
+ CookingMaterialsData.all
26
+ end
27
+
28
+ def fishing_materials
29
+ FishingMaterialData.all
30
+ end
31
+
32
+ def forging_materials
33
+ ForgingMaterialData.all
34
+ end
35
+
36
+ def furniture_materials
37
+ FurnitureMaterialData.all
38
+ end
39
+ end
40
+ end
41
+ end
@@ -1,4 +1,6 @@
1
- module TeyvatDB
1
+ module GenshinData
2
+
3
+ # Manager for all characters and attributes
2
4
  module Materials
3
5
  require_relative 'materials/development'
4
6
  require_relative 'materials/standard'
@@ -8,7 +10,7 @@ module TeyvatDB
8
10
  [
9
11
  Development.all,
10
12
  Standard.all,
11
- ].flatten
13
+ ].flatten.sort { |x, y| x.name <=> y.name }
12
14
  end
13
15
  end
14
16
  end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GenshinData::Nations
4
+ module NationData
5
+ def self.all
6
+ self.constants.map { |x| "GenshinData::Nations::NationData::#{x}".constantize }
7
+ end
8
+
9
+ FONTAINE = GenshinObject::Nation.new(
10
+ order: 5,
11
+ name: "fontaine",
12
+ pretty_name: "Fontaine"
13
+ ).freeze
14
+
15
+ INAZUMA = GenshinObject::Nation.new(
16
+ order: 3,
17
+ name: "inazuma",
18
+ pretty_name: "Inazuma"
19
+ ).freeze
20
+
21
+ LIYUE = GenshinObject::Nation.new(
22
+ order: 2,
23
+ name: "liyue",
24
+ pretty_name: "Liyue"
25
+ ).freeze
26
+
27
+ MONDSTADT = GenshinObject::Nation.new(
28
+ order: 1,
29
+ name: "mondstadt",
30
+ pretty_name: "Mondstadt"
31
+ ).freeze
32
+
33
+ NATLAN = GenshinObject::Nation.new(
34
+ order: 6,
35
+ name: "natlan",
36
+ pretty_name: "Natlan"
37
+ ).freeze
38
+
39
+ SNEZHNAYA = GenshinObject::Nation.new(
40
+ order: 7,
41
+ name: "snezhnaya",
42
+ pretty_name: "Snezhnaya"
43
+ ).freeze
44
+
45
+ SUMERU = GenshinObject::Nation.new(
46
+ order: 4,
47
+ name: "sumeru",
48
+ pretty_name: "Sumeru"
49
+ ).freeze
50
+
51
+ UNKNOWN = GenshinObject::Nation.new(
52
+ order: 8,
53
+ name: "unknown",
54
+ pretty_name: "Unknown"
55
+ ).freeze
56
+ end
57
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GenshinData
4
+ # Base Nation Data
5
+ module Nations
6
+ require_relative "nations/nation_data"
7
+
8
+ def self.all
9
+ NationData.all
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,369 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GenshinData::Weapons::WeaponData
4
+ module Bows
5
+ def self.all
6
+ self.constants.map { |x| "GenshinData::Weapons::WeaponData::Bows::#{x}".constantize }
7
+ end
8
+
9
+ ALLEY_HUNTER = GenshinObject::Weapon.new(
10
+ kamera_key: "AlleyHunter",
11
+ name: "AlleyHunter",
12
+ rarity: 4,
13
+ weapon_type: :bow,
14
+ elite_material_type: :chaos_core,
15
+ standard_material_type: :slime,
16
+ weapon_material_type: :chains
17
+ ).freeze
18
+
19
+ AMOS_BOW = GenshinObject::Weapon.new(
20
+ kamera_key: "AmosBow",
21
+ name: "Amos' Bow",
22
+ rarity: 5,
23
+ weapon_type: :bow,
24
+ elite_material_type: :chaos_core,
25
+ standard_material_type: :slime,
26
+ weapon_material_type: :chains
27
+ ).freeze
28
+
29
+ AQUA_SIMULACRA = GenshinObject::Weapon.new(
30
+ kamera_key: "AquaSimulacra",
31
+ name: "Aqua Simulacra",
32
+ rarity: 5,
33
+ weapon_type: :bow,
34
+ elite_material_type: :statuette,
35
+ standard_material_type: :spectral,
36
+ weapon_material_type: :guyun
37
+ ).freeze
38
+
39
+ BLACKCLIFF_WARBOW = GenshinObject::Weapon.new(
40
+ kamera_key: "BlackcliffWarbow",
41
+ name: "Blackcliff Warbow",
42
+ rarity: 4,
43
+ weapon_type: :bow,
44
+ elite_material_type: :sacrificial_knife,
45
+ standard_material_type: :nectar,
46
+ weapon_material_type: :guyun
47
+ ).freeze
48
+
49
+ COMPOUND_BOW = GenshinObject::Weapon.new(
50
+ kamera_key: "CompoundBow",
51
+ name: "Compound Bow",
52
+ rarity: 4,
53
+ weapon_type: :bow,
54
+ elite_material_type: :bone_shard,
55
+ standard_material_type: :fatui_insignia,
56
+ weapon_material_type: :aerosiderite
57
+ ).freeze
58
+
59
+ ELEGY_FOR_THE_END = GenshinObject::Weapon.new(
60
+ kamera_key: "ElegyForTheEnd",
61
+ name: "Elegy for the End",
62
+ rarity: 5,
63
+ weapon_type: :bow,
64
+ elite_material_type: :horn,
65
+ standard_material_type: :fatui_insignia,
66
+ weapon_material_type: :wolf_tooth
67
+ ).freeze
68
+
69
+ END_OF_THE_LINE = GenshinObject::Weapon.new(
70
+ kamera_key: "EndOfTheLine",
71
+ name: "End of the Line",
72
+ rarity: 4,
73
+ weapon_type: :bow,
74
+ elite_material_type: :fungal_nucleus,
75
+ standard_material_type: :pollen,
76
+ weapon_material_type: :scorching_might
77
+ ).freeze
78
+
79
+ FADING_TWILIGHT = GenshinObject::Weapon.new(
80
+ kamera_key: "FadingTwilight",
81
+ name: "Fading Twilight",
82
+ rarity: 4,
83
+ weapon_type: :bow,
84
+ elite_material_type: :sacrificial_knife,
85
+ standard_material_type: :scroll,
86
+ weapon_material_type: :aerosiderite
87
+ ).freeze
88
+
89
+ FAVONIUS_WARBOW = GenshinObject::Weapon.new(
90
+ kamera_key: "FavoniusWarbow",
91
+ name: "Favonius Warbow",
92
+ rarity: 4,
93
+ weapon_type: :bow,
94
+ elite_material_type: :chaos_core,
95
+ standard_material_type: :nectar,
96
+ weapon_material_type: :chains
97
+ ).freeze
98
+
99
+ HAMAYUMI = GenshinObject::Weapon.new(
100
+ kamera_key: "Hamayumi",
101
+ name: "Hamayumi",
102
+ rarity: 4,
103
+ weapon_type: :bow,
104
+ elite_material_type: :crystal_prism,
105
+ standard_material_type: :arrowhead,
106
+ weapon_material_type: :narukami
107
+ ).freeze
108
+
109
+ HUNTERS_BOW = GenshinObject::Weapon.new(
110
+ kamera_key: "HuntersBow",
111
+ name: "Hunter's Bow",
112
+ rarity: 1,
113
+ weapon_type: :bow,
114
+ elite_material_type: :ley_line,
115
+ standard_material_type: :hoarder_insignia,
116
+ weapon_material_type: :wolf_tooth
117
+ ).freeze
118
+
119
+ HUNTERS_PATH = GenshinObject::Weapon.new(
120
+ kamera_key: "HuntersPath",
121
+ name: "Hunter's Path",
122
+ rarity: 5,
123
+ weapon_type: :bow,
124
+ elite_material_type: :fungal_nucleus,
125
+ standard_material_type: :scarf,
126
+ weapon_material_type: :scorching_might
127
+ ).freeze
128
+
129
+ IBIS_PIERCER = GenshinObject::Weapon.new(
130
+ kamera_key: "IbisPiercer",
131
+ name: "Ibis Piercer",
132
+ rarity: 4,
133
+ weapon_type: :bow,
134
+ elite_material_type: :rogue_flower,
135
+ standard_material_type: :scarf,
136
+ weapon_material_type: :forest_dew
137
+ ).freeze
138
+
139
+ KINGS_SQUIRE = GenshinObject::Weapon.new(
140
+ kamera_key: "KingsSquire",
141
+ name: "King's Squire",
142
+ rarity: 4,
143
+ weapon_type: :bow,
144
+ elite_material_type: :fungal_nucleus,
145
+ standard_material_type: :arrowhead,
146
+ weapon_material_type: :scorching_might
147
+ ).freeze
148
+
149
+ MESSENGER = GenshinObject::Weapon.new(
150
+ kamera_key: "Messenger",
151
+ name: "Messenger",
152
+ rarity: 3,
153
+ weapon_type: :bow,
154
+ elite_material_type: :mist_grass,
155
+ standard_material_type: :hoarder_insignia,
156
+ weapon_material_type: :elixir
157
+ ).freeze
158
+
159
+ MITTERNACHTS_WALTZ = GenshinObject::Weapon.new(
160
+ kamera_key: "MitternachtsWaltz",
161
+ name: "Mitternachts Waltz",
162
+ rarity: 4,
163
+ weapon_type: :bow,
164
+ elite_material_type: :horn,
165
+ standard_material_type: :hoarder_insignia,
166
+ weapon_material_type: :decarabian
167
+ ).freeze
168
+
169
+ MOUUNS_MOON = GenshinObject::Weapon.new(
170
+ kamera_key: "MouunsMoon",
171
+ name: "Mouun's Moon",
172
+ rarity: 4,
173
+ weapon_type: :bow,
174
+ elite_material_type: :crystal_prism,
175
+ standard_material_type: :spectral,
176
+ weapon_material_type: :narukami
177
+ ).freeze
178
+
179
+ POLAR_STAR = GenshinObject::Weapon.new(
180
+ kamera_key: "PolarStar",
181
+ name: "Polar Star",
182
+ rarity: 5,
183
+ weapon_type: :bow,
184
+ elite_material_type: :concealed_talon,
185
+ standard_material_type: :spectral,
186
+ weapon_material_type: :oni_mask
187
+ ).freeze
188
+
189
+ PREDATOR = GenshinObject::Weapon.new(
190
+ kamera_key: "Predator",
191
+ name: "Predator",
192
+ rarity: 4,
193
+ weapon_type: :bow,
194
+ elite_material_type: :crystal_prism,
195
+ standard_material_type: :arrowhead,
196
+ weapon_material_type: :narukami
197
+ ).freeze
198
+
199
+ PROTOTYPE_CRESCENT = GenshinObject::Weapon.new(
200
+ kamera_key: "PrototypeCrescent",
201
+ name: "Prototype Crescent",
202
+ rarity: 4,
203
+ weapon_type: :bow,
204
+ elite_material_type: :mist_grass,
205
+ standard_material_type: :hoarder_insignia,
206
+ weapon_material_type: :elixir
207
+ ).freeze
208
+
209
+ RAVEN_BOW = GenshinObject::Weapon.new(
210
+ kamera_key: "RavenBow",
211
+ name: "Raven Bow",
212
+ rarity: 3,
213
+ weapon_type: :bow,
214
+ elite_material_type: :horn,
215
+ standard_material_type: :arrowhead,
216
+ weapon_material_type: :decarabian
217
+ ).freeze
218
+
219
+ RECURVE_BOW = GenshinObject::Weapon.new(
220
+ kamera_key: "RecurveBow",
221
+ name: "Recurve Bow",
222
+ rarity: 3,
223
+ weapon_type: :bow,
224
+ elite_material_type: :chaos_core,
225
+ standard_material_type: :scroll,
226
+ weapon_material_type: :chains
227
+ ).freeze
228
+
229
+ ROYAL_BOW = GenshinObject::Weapon.new(
230
+ kamera_key: "RoyalBow",
231
+ name: "Royal Bow",
232
+ rarity: 4,
233
+ weapon_type: :bow,
234
+ elite_material_type: :chaos_core,
235
+ standard_material_type: :slime,
236
+ weapon_material_type: :chains
237
+ ).freeze
238
+
239
+ RUST = GenshinObject::Weapon.new(
240
+ kamera_key: "Rust",
241
+ name: "Rust",
242
+ rarity: 4,
243
+ weapon_type: :bow,
244
+ elite_material_type: :sacrificial_knife,
245
+ standard_material_type: :hilichurl_mask,
246
+ weapon_material_type: :guyun
247
+ ).freeze
248
+
249
+ SACRIFICIAL_BOW = GenshinObject::Weapon.new(
250
+ kamera_key: "SacrificialBow",
251
+ name: "Sacrificial Bow",
252
+ rarity: 4,
253
+ weapon_type: :bow,
254
+ elite_material_type: :ley_line,
255
+ standard_material_type: :slime,
256
+ weapon_material_type: :wolf_tooth
257
+ ).freeze
258
+
259
+ SCION_OF_THE_BLAZING_SUN = GenshinObject::Weapon.new(
260
+ kamera_key: "ScionOfTheBlazingSun",
261
+ name: "Scion of the Blazing Sun",
262
+ rarity: 4,
263
+ weapon_type: :bow,
264
+ elite_material_type: :rogue_flower,
265
+ standard_material_type: :pollen,
266
+ weapon_material_type: :scorching_might
267
+ ).freeze
268
+
269
+ SEASONED_HUNTERS_BOW = GenshinObject::Weapon.new(
270
+ kamera_key: "SeasonedHuntersBow",
271
+ name: "Seasoned Hunter's Bow",
272
+ rarity: 2,
273
+ weapon_type: :bow,
274
+ elite_material_type: :ley_line,
275
+ standard_material_type: :hoarder_insignia,
276
+ weapon_material_type: :wolf_tooth
277
+ ).freeze
278
+
279
+ SHARPSHOOTERS_OATH = GenshinObject::Weapon.new(
280
+ kamera_key: "SharpshootersOath",
281
+ name: "Sharpshooter's Oath",
282
+ rarity: 3,
283
+ weapon_type: :bow,
284
+ elite_material_type: :ley_line,
285
+ standard_material_type: :slime,
286
+ weapon_material_type: :wolf_tooth
287
+ ).freeze
288
+
289
+ SKYWARD_HARP = GenshinObject::Weapon.new(
290
+ kamera_key: "SkywardHarp",
291
+ name: "Skyward Harp",
292
+ rarity: 5,
293
+ weapon_type: :bow,
294
+ elite_material_type: :ley_line,
295
+ standard_material_type: :arrowhead,
296
+ weapon_material_type: :wolf_tooth
297
+ ).freeze
298
+
299
+ SLINGSHOT = GenshinObject::Weapon.new(
300
+ kamera_key: "Slingshot",
301
+ name: "Slingshot",
302
+ rarity: 3,
303
+ weapon_type: :bow,
304
+ elite_material_type: :sacrificial_knife,
305
+ standard_material_type: :hilichurl_mask,
306
+ weapon_material_type: :guyun
307
+ ).freeze
308
+
309
+ SONG_OF_STILLNESS = GenshinObject::Weapon.new(
310
+ kamera_key: "SongOfStillness",
311
+ name: "Song of Stillness",
312
+ rarity: 4,
313
+ weapon_type: :bow,
314
+ elite_material_type: :tainted_water,
315
+ standard_material_type: :arrowhead,
316
+ weapon_material_type: :ancient_chord
317
+ ).freeze
318
+
319
+ THE_FIRST_GREAT_MAGIC = GenshinObject::Weapon.new(
320
+ kamera_key: "TheFirstGreatMagic",
321
+ name: "First Great Magic, The",
322
+ rarity: 5,
323
+ weapon_type: :bow,
324
+ elite_material_type: :tainted_water,
325
+ standard_material_type: :transoceanic,
326
+ weapon_material_type: :ancient_chord
327
+ ).freeze
328
+
329
+ THE_STRINGLESS = GenshinObject::Weapon.new(
330
+ kamera_key: "TheStringless",
331
+ name: "Stringless, The",
332
+ rarity: 4,
333
+ weapon_type: :bow,
334
+ elite_material_type: :horn,
335
+ standard_material_type: :arrowhead,
336
+ weapon_material_type: :decarabian
337
+ ).freeze
338
+
339
+ THE_VIRIDESCENT_HUNT = GenshinObject::Weapon.new(
340
+ kamera_key: "TheViridescentHunt",
341
+ name: "Viridescent Hunt, The",
342
+ rarity: 4,
343
+ weapon_type: :bow,
344
+ elite_material_type: :horn,
345
+ standard_material_type: :arrowhead,
346
+ weapon_material_type: :decarabian
347
+ ).freeze
348
+
349
+ THUNDERING_PULSE = GenshinObject::Weapon.new(
350
+ kamera_key: "ThunderingPulse",
351
+ name: "Thundering Pulse",
352
+ rarity: 5,
353
+ weapon_type: :bow,
354
+ elite_material_type: :crystal_prism,
355
+ standard_material_type: :arrowhead,
356
+ weapon_material_type: :narukami
357
+ ).freeze
358
+
359
+ WINDBLUME_ODE = GenshinObject::Weapon.new(
360
+ kamera_key: "WindblumeOde",
361
+ name: "Windblume Ode",
362
+ rarity: 4,
363
+ weapon_type: :bow,
364
+ elite_material_type: :ley_line,
365
+ standard_material_type: :nectar,
366
+ weapon_material_type: :chains
367
+ ).freeze
368
+ end
369
+ end