teyvatdb 0.1.12 → 0.1.13

Sign up to get free protection for your applications and to get access to all the features.
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