Update game/game_constants.py
Browse files- game/game_constants.py +204 -204
game/game_constants.py
CHANGED
@@ -1,205 +1,205 @@
|
|
1 |
-
#!/usr/bin/env python3
|
2 |
-
"""
|
3 |
-
Game Constants for Tag Collector Game - Updated with new tag rarity names
|
4 |
-
This file contains shared constants used by both the main game and the library system.
|
5 |
-
"""
|
6 |
-
|
7 |
-
# Game currency names
|
8 |
-
TAG_CURRENCY_NAME = "TagCoins"
|
9 |
-
ENKEPHALIN_CURRENCY_NAME = "Enkephalin"
|
10 |
-
ENKEPHALIN_ICON = "💧"
|
11 |
-
|
12 |
-
STARTING_THRESHOLD = 0.
|
13 |
-
MIN_THRESHOLD = 0.1
|
14 |
-
|
15 |
-
# Tag animations and theme settings
|
16 |
-
TAG_ANIMATIONS = {
|
17 |
-
"Star of the City": {
|
18 |
-
"css_class": "star-of-city",
|
19 |
-
"animation": """
|
20 |
-
@keyframes glowing {
|
21 |
-
0% { box-shadow: 0 0 5px #FFD700; }
|
22 |
-
50% { box-shadow: 0 0 20px #FFD700; }
|
23 |
-
100% { box-shadow: 0 0 5px #FFD700; }
|
24 |
-
}
|
25 |
-
.star-of-city {
|
26 |
-
background-color: rgba(255, 215, 0, 0.2);
|
27 |
-
padding: 8px;
|
28 |
-
border-radius: 5px;
|
29 |
-
border: 2px solid gold;
|
30 |
-
animation: glowing 2s infinite;
|
31 |
-
}
|
32 |
-
"""
|
33 |
-
},
|
34 |
-
"Impuritas Civitas": {
|
35 |
-
"css_class": "impuritas-civitas",
|
36 |
-
"animation": """
|
37 |
-
@keyframes rainbow-border {
|
38 |
-
0% { border-color: red; }
|
39 |
-
14% { border-color: orange; }
|
40 |
-
28% { border-color: yellow; }
|
41 |
-
42% { border-color: green; }
|
42 |
-
57% { border-color: blue; }
|
43 |
-
71% { border-color: indigo; }
|
44 |
-
85% { border-color: violet; }
|
45 |
-
100% { border-color: red; }
|
46 |
-
}
|
47 |
-
|
48 |
-
@keyframes rainbow-text {
|
49 |
-
0% { color: red; }
|
50 |
-
14% { color: orange; }
|
51 |
-
28% { color: yellow; }
|
52 |
-
42% { color: green; }
|
53 |
-
57% { color: blue; }
|
54 |
-
71% { color: indigo; }
|
55 |
-
85% { color: violet; }
|
56 |
-
100% { color: red; }
|
57 |
-
}
|
58 |
-
|
59 |
-
@keyframes rainbow-bg {
|
60 |
-
0% { background-color: rgba(255,0,0,0.1); }
|
61 |
-
14% { background-color: rgba(255,165,0,0.1); }
|
62 |
-
28% { background-color: rgba(255,255,0,0.1); }
|
63 |
-
42% { background-color: rgba(0,128,0,0.1); }
|
64 |
-
57% { background-color: rgba(0,0,255,0.1); }
|
65 |
-
71% { background-color: rgba(75,0,130,0.1); }
|
66 |
-
85% { background-color: rgba(238,130,238,0.1); }
|
67 |
-
100% { background-color: rgba(255,0,0,0.1); }
|
68 |
-
}
|
69 |
-
|
70 |
-
.impuritas-civitas {
|
71 |
-
background-color: rgba(0, 0, 0, 0.1);
|
72 |
-
padding: 10px;
|
73 |
-
border-radius: 5px;
|
74 |
-
border: 3px solid red;
|
75 |
-
animation: rainbow-border 4s linear infinite, rainbow-bg 4s linear infinite;
|
76 |
-
}
|
77 |
-
|
78 |
-
.impuritas-text {
|
79 |
-
font-weight: bold;
|
80 |
-
animation: rainbow-text 4s linear infinite;
|
81 |
-
}
|
82 |
-
"""
|
83 |
-
}
|
84 |
-
}
|
85 |
-
|
86 |
-
# Rarity levels with appropriate colors (updated to match new rarity tiers)
|
87 |
-
RARITY_LEVELS = {
|
88 |
-
"Canard": {"color": "#AAAAAA", "value": 1}, # Gray
|
89 |
-
"Urban Myth": {"color": "#5D9C59", "value": 5}, # Green
|
90 |
-
"Urban Legend": {"color": "#2196F3", "value": 10}, # Blue
|
91 |
-
"Urban Plague": {"color": "#9C27B0", "value": 25}, # Purple
|
92 |
-
"Urban Nightmare": {"color": "#FF9800", "value": 50}, # Orange
|
93 |
-
"Star of the City": {"color": "#FFEB3B", "value": 250}, # Yellow/Gold
|
94 |
-
"Impuritas Civitas": {"color": "#F44336", "value": 1000} # Red
|
95 |
-
}
|
96 |
-
|
97 |
-
# Essence generation costs in enkephalin
|
98 |
-
ESSENCE_COSTS = {
|
99 |
-
"Canard": 10, # Common tags
|
100 |
-
"Urban Myth": 30, # Uncommon tags
|
101 |
-
"Urban Legend": 75, # Rare tags
|
102 |
-
"Urban Plague": 150, # Very rare tags
|
103 |
-
"Urban Nightmare": 300, # Extremely rare tags
|
104 |
-
"Star of the City": 600, # Nearly mythical tags
|
105 |
-
"Impuritas Civitas": 1200 # Legendary tags
|
106 |
-
}
|
107 |
-
|
108 |
-
# Tag power system
|
109 |
-
TAG_POWER_BONUSES = {
|
110 |
-
"Canard": {"coin_multiplier": 0, "enkephalin_reward": 0},
|
111 |
-
"Urban Myth": {"coin_multiplier": 0, "enkephalin_reward": 0},
|
112 |
-
"Urban Legend": {"coin_multiplier": 0, "enkephalin_reward": 1},
|
113 |
-
"Urban Plague": {"coin_multiplier": 0.001, "enkephalin_reward": 3},
|
114 |
-
"Urban Nightmare": {"coin_multiplier": 0.0025, "enkephalin_reward": 5},
|
115 |
-
"Star of the City": {"coin_multiplier": 0.005, "enkephalin_reward": 10},
|
116 |
-
"Impuritas Civitas": {"coin_multiplier": 0.01, "enkephalin_reward": 25}
|
117 |
-
}
|
118 |
-
|
119 |
-
THRESHOLD_UPGRADES = [
|
120 |
-
{
|
121 |
-
"name": "Pattern Recognition Module",
|
122 |
-
"threshold_setting": 0.
|
123 |
-
"cost": 300,
|
124 |
-
"description": "Basic algorithm focused on high-precision identification. Reduces false positives but may miss some tags."
|
125 |
-
},
|
126 |
-
{
|
127 |
-
"name": "Neural Network Enhancement",
|
128 |
-
"threshold_setting": 0.
|
129 |
-
"cost": 500,
|
130 |
-
"description": "Improved tag detection using multi-layer perceptrons. Offers good precision with moderate recall."
|
131 |
-
},
|
132 |
-
{
|
133 |
-
"name": "Deep Learning Framework",
|
134 |
-
"threshold_setting": 0.
|
135 |
-
"cost": 1000,
|
136 |
-
"description": "Advanced algorithms that learn from previous scans. Provides better balance between precision and recall."
|
137 |
-
},
|
138 |
-
{
|
139 |
-
"name": "Quantum Probability Engine",
|
140 |
-
"threshold_setting": 0.
|
141 |
-
"cost": 2500,
|
142 |
-
"description": "Leverages quantum uncertainty for optimal detection balance. Perfect calibration point for F1 score."
|
143 |
-
},
|
144 |
-
{
|
145 |
-
"name": "Recursive Self-Improvement",
|
146 |
-
"threshold_setting": 0.
|
147 |
-
"cost": 7500,
|
148 |
-
"description": "Scanner enhances its own detection capabilities. Optimized for weighted tag discovery."
|
149 |
-
},
|
150 |
-
{
|
151 |
-
"name": "Consciousness Emulation",
|
152 |
-
"threshold_setting": 0.
|
153 |
-
"cost": 15000,
|
154 |
-
"description": "Scanner develops intuition-like abilities. Favors higher recall while maintaining reasonable precision."
|
155 |
-
},
|
156 |
-
{
|
157 |
-
"name": "Technological Singularity",
|
158 |
-
"threshold_setting": 0.
|
159 |
-
"cost": 50000,
|
160 |
-
"description": "The scanner transcends conventional limitations. Maximizes tag discovery at the cost of some precision."
|
161 |
-
}
|
162 |
-
]
|
163 |
-
|
164 |
-
# Achievements
|
165 |
-
ACHIEVEMENTS = {
|
166 |
-
# Collection achievements
|
167 |
-
"tag_collector_beginner": {"name": "Novice Archivist", "requirement": 50, "description": "Collect 50 different tags", "reward": {"coin_bonus": 0.01}},
|
168 |
-
"tag_collector_expert": {"name": "Senior Cataloger", "requirement": 250, "description": "Collect 250 different tags", "reward": {"coin_bonus": 0.01}},
|
169 |
-
"tag_collector_master": {"name": "Master Librarian", "requirement": 500, "description": "Collect 500 different tags", "reward": {"coin_bonus": 0.01}},
|
170 |
-
"tag_master": {"name": "Grand Archivist", "requirement": 1000, "description": "Collect 1000 different tags", "reward": {"coin_bonus": 0.01}},
|
171 |
-
|
172 |
-
# Rarity achievements
|
173 |
-
"legendary_hunter": {"name": "Impuritas Seeker", "requirement": 1, "description": "Find your first Impuritas Civitas tag", "reward": {"coin_bonus": 0.01, "enkephalin": 50}},
|
174 |
-
"multi_legendary": {"name": "Forbidden Collection", "requirement": 5, "description": "Collect 5 Impuritas Civitas tags", "reward": {"coin_bonus": 0.01, "enkephalin": 100}},
|
175 |
-
"canard_collector": {"name": "Canard Chronicler", "requirement": 30, "description": "Collect 30 Canard tags", "reward": {"coin_bonus": 0.01}},
|
176 |
-
"urban_myth_collector": {"name": "Myth Curator", "requirement": 15, "description": "Collect 15 Urban Myth tags", "reward": {"coin_bonus": 0.01}},
|
177 |
-
"urban_legend_collector": {"name": "Legend Preserver", "requirement": 10, "description": "Collect 10 Urban Legend tags", "reward": {"coin_bonus": 0.01}},
|
178 |
-
"urban_plague_collector": {"name": "Plague Archivist", "requirement": 5, "description": "Collect 5 Urban Plague tags", "reward": {"coin_bonus": 0.01}},
|
179 |
-
"urban_nightmare_collector": {"name": "Nightmare Keeper", "requirement": 5, "description": "Collect 5 Urban Nightmare tags", "reward": {"coin_bonus": 0.01}},
|
180 |
-
"star_collector": {"name": "Star Collector", "requirement": 3, "description": "Collect 3 Star of the City tags", "reward": {"coin_bonus": 0.01, "enkephalin": 30}},
|
181 |
-
"impuritas_collector": {"name": "Impuritas Scholar", "requirement": 3, "description": "Collect 3 Impuritas Civitas tags", "reward": {"coin_bonus": 0.01, "enkephalin": 75}},
|
182 |
-
|
183 |
-
# Progress achievements
|
184 |
-
"perfect_scanner": {"name": "Omniscient Observer", "description": "Reach the minimum threshold", "reward": {"coin_bonus": 0.01}},
|
185 |
-
"optimal_threshold": {"name": "Perfect Calibration", "description": "Reach the optimal F1 score threshold of 0.328", "reward": {"coin_bonus": 0.01}},
|
186 |
-
"collection_milestone_100": {"name": "Century Collector", "requirement": 100, "description": "Collect 100 different tags", "reward": {"tagcoins": 100, "coin_bonus": 0.01}},
|
187 |
-
"collection_milestone_1000": {"name": "Millennium Collector", "requirement": 1000, "description": "Collect 1000 different tags", "reward": {"tagcoins": 1000, "coin_bonus": 0.01}},
|
188 |
-
"collection_milestone_5000": {"name": "Epic Collector", "requirement": 5000, "description": "Collect 5000 different tags", "reward": {"tagcoins": 5000, "coin_bonus": 0.01}},
|
189 |
-
|
190 |
-
# Essence & library achievements
|
191 |
-
"essence_creator": {"name": "Essence Creator", "requirement": 5, "description": "Generate 5 tag essences", "reward": {"essence_cost_reduction": 0.2, "coin_bonus": 0.01}},
|
192 |
-
"tag_explorer": {"name": "Tag Explorer", "requirement": 20, "description": "Explore all library tiers", "reward": {"library_cost_reduction": 0.15, "coin_bonus": 0.01}},
|
193 |
-
"enkephalin_master": {"name": "Enkephalin Master", "requirement": 5000, "description": "Generate 5000 Enkephalin", "reward": {"essence_cost_reduction": 0.25, "coin_bonus": 0.01}},
|
194 |
-
"sacrifice_devotee": {"name": "Sacrifice Devotee", "requirement": 100, "description": "Sacrifice 100 tags", "reward": {"enkephalin_bonus": 0.2, "coin_bonus": 0.01}},
|
195 |
-
|
196 |
-
# New achievements
|
197 |
-
"category_explorer": {"name": "Category Explorer", "requirement": 10, "description": "Collect tags from 10 different categories", "reward": {"coin_bonus": 0.01}},
|
198 |
-
"series_collector": {"name": "Series Collector", "requirement": 3, "description": "Complete 3 series mosaics", "reward": {"coin_bonus": 0.01, "enkephalin": 25}},
|
199 |
-
"rapid_tagger": {"name": "Rapid Tagger", "requirement": 100, "description": "Scan 100 images", "reward": {"coin_bonus": 0.01}},
|
200 |
-
"enkephalin_harvester": {"name": "Enkephalin Harvester", "requirement": 1000, "description": "Generate 1000 Enkephalin", "reward": {"enkephalin_bonus": 0.1, "coin_bonus": 0.01}},
|
201 |
-
"library_scholar": {"name": "Library Scholar", "requirement": 50, "description": "Extract 50 tags from the library", "reward": {"library_cost_reduction": 0.1, "coin_bonus": 0.01}},
|
202 |
-
"rarity_hunter": {"name": "Rarity Hunter", "description": "Find tags of all rarity levels", "reward": {"coin_bonus": 0.02}},
|
203 |
-
"essence_master": {"name": "Essence Master", "requirement": 25, "description": "Generate 25 tag essences", "reward": {"essence_cost_reduction": 0.15, "coin_bonus": 0.01}},
|
204 |
-
"legendary_librarian": {"name": "Legendary Librarian", "description": "Extract an Impuritas Civitas tag from the library", "reward": {"library_cost_reduction": 0.2, "coin_bonus": 0.01, "enkephalin": 100}}
|
205 |
}
|
|
|
1 |
+
#!/usr/bin/env python3
|
2 |
+
"""
|
3 |
+
Game Constants for Tag Collector Game - Updated with new tag rarity names
|
4 |
+
This file contains shared constants used by both the main game and the library system.
|
5 |
+
"""
|
6 |
+
|
7 |
+
# Game currency names
|
8 |
+
TAG_CURRENCY_NAME = "TagCoins"
|
9 |
+
ENKEPHALIN_CURRENCY_NAME = "Enkephalin"
|
10 |
+
ENKEPHALIN_ICON = "💧"
|
11 |
+
|
12 |
+
STARTING_THRESHOLD = 0.9
|
13 |
+
MIN_THRESHOLD = 0.1
|
14 |
+
|
15 |
+
# Tag animations and theme settings
|
16 |
+
TAG_ANIMATIONS = {
|
17 |
+
"Star of the City": {
|
18 |
+
"css_class": "star-of-city",
|
19 |
+
"animation": """
|
20 |
+
@keyframes glowing {
|
21 |
+
0% { box-shadow: 0 0 5px #FFD700; }
|
22 |
+
50% { box-shadow: 0 0 20px #FFD700; }
|
23 |
+
100% { box-shadow: 0 0 5px #FFD700; }
|
24 |
+
}
|
25 |
+
.star-of-city {
|
26 |
+
background-color: rgba(255, 215, 0, 0.2);
|
27 |
+
padding: 8px;
|
28 |
+
border-radius: 5px;
|
29 |
+
border: 2px solid gold;
|
30 |
+
animation: glowing 2s infinite;
|
31 |
+
}
|
32 |
+
"""
|
33 |
+
},
|
34 |
+
"Impuritas Civitas": {
|
35 |
+
"css_class": "impuritas-civitas",
|
36 |
+
"animation": """
|
37 |
+
@keyframes rainbow-border {
|
38 |
+
0% { border-color: red; }
|
39 |
+
14% { border-color: orange; }
|
40 |
+
28% { border-color: yellow; }
|
41 |
+
42% { border-color: green; }
|
42 |
+
57% { border-color: blue; }
|
43 |
+
71% { border-color: indigo; }
|
44 |
+
85% { border-color: violet; }
|
45 |
+
100% { border-color: red; }
|
46 |
+
}
|
47 |
+
|
48 |
+
@keyframes rainbow-text {
|
49 |
+
0% { color: red; }
|
50 |
+
14% { color: orange; }
|
51 |
+
28% { color: yellow; }
|
52 |
+
42% { color: green; }
|
53 |
+
57% { color: blue; }
|
54 |
+
71% { color: indigo; }
|
55 |
+
85% { color: violet; }
|
56 |
+
100% { color: red; }
|
57 |
+
}
|
58 |
+
|
59 |
+
@keyframes rainbow-bg {
|
60 |
+
0% { background-color: rgba(255,0,0,0.1); }
|
61 |
+
14% { background-color: rgba(255,165,0,0.1); }
|
62 |
+
28% { background-color: rgba(255,255,0,0.1); }
|
63 |
+
42% { background-color: rgba(0,128,0,0.1); }
|
64 |
+
57% { background-color: rgba(0,0,255,0.1); }
|
65 |
+
71% { background-color: rgba(75,0,130,0.1); }
|
66 |
+
85% { background-color: rgba(238,130,238,0.1); }
|
67 |
+
100% { background-color: rgba(255,0,0,0.1); }
|
68 |
+
}
|
69 |
+
|
70 |
+
.impuritas-civitas {
|
71 |
+
background-color: rgba(0, 0, 0, 0.1);
|
72 |
+
padding: 10px;
|
73 |
+
border-radius: 5px;
|
74 |
+
border: 3px solid red;
|
75 |
+
animation: rainbow-border 4s linear infinite, rainbow-bg 4s linear infinite;
|
76 |
+
}
|
77 |
+
|
78 |
+
.impuritas-text {
|
79 |
+
font-weight: bold;
|
80 |
+
animation: rainbow-text 4s linear infinite;
|
81 |
+
}
|
82 |
+
"""
|
83 |
+
}
|
84 |
+
}
|
85 |
+
|
86 |
+
# Rarity levels with appropriate colors (updated to match new rarity tiers)
|
87 |
+
RARITY_LEVELS = {
|
88 |
+
"Canard": {"color": "#AAAAAA", "value": 1}, # Gray
|
89 |
+
"Urban Myth": {"color": "#5D9C59", "value": 5}, # Green
|
90 |
+
"Urban Legend": {"color": "#2196F3", "value": 10}, # Blue
|
91 |
+
"Urban Plague": {"color": "#9C27B0", "value": 25}, # Purple
|
92 |
+
"Urban Nightmare": {"color": "#FF9800", "value": 50}, # Orange
|
93 |
+
"Star of the City": {"color": "#FFEB3B", "value": 250}, # Yellow/Gold
|
94 |
+
"Impuritas Civitas": {"color": "#F44336", "value": 1000} # Red
|
95 |
+
}
|
96 |
+
|
97 |
+
# Essence generation costs in enkephalin
|
98 |
+
ESSENCE_COSTS = {
|
99 |
+
"Canard": 10, # Common tags
|
100 |
+
"Urban Myth": 30, # Uncommon tags
|
101 |
+
"Urban Legend": 75, # Rare tags
|
102 |
+
"Urban Plague": 150, # Very rare tags
|
103 |
+
"Urban Nightmare": 300, # Extremely rare tags
|
104 |
+
"Star of the City": 600, # Nearly mythical tags
|
105 |
+
"Impuritas Civitas": 1200 # Legendary tags
|
106 |
+
}
|
107 |
+
|
108 |
+
# Tag power system
|
109 |
+
TAG_POWER_BONUSES = {
|
110 |
+
"Canard": {"coin_multiplier": 0, "enkephalin_reward": 0},
|
111 |
+
"Urban Myth": {"coin_multiplier": 0, "enkephalin_reward": 0},
|
112 |
+
"Urban Legend": {"coin_multiplier": 0, "enkephalin_reward": 1},
|
113 |
+
"Urban Plague": {"coin_multiplier": 0.001, "enkephalin_reward": 3},
|
114 |
+
"Urban Nightmare": {"coin_multiplier": 0.0025, "enkephalin_reward": 5},
|
115 |
+
"Star of the City": {"coin_multiplier": 0.005, "enkephalin_reward": 10},
|
116 |
+
"Impuritas Civitas": {"coin_multiplier": 0.01, "enkephalin_reward": 25}
|
117 |
+
}
|
118 |
+
|
119 |
+
THRESHOLD_UPGRADES = [
|
120 |
+
{
|
121 |
+
"name": "Pattern Recognition Module",
|
122 |
+
"threshold_setting": 0.85,
|
123 |
+
"cost": 300,
|
124 |
+
"description": "Basic algorithm focused on high-precision identification. Reduces false positives but may miss some tags."
|
125 |
+
},
|
126 |
+
{
|
127 |
+
"name": "Neural Network Enhancement",
|
128 |
+
"threshold_setting": 0.75,
|
129 |
+
"cost": 500,
|
130 |
+
"description": "Improved tag detection using multi-layer perceptrons. Offers good precision with moderate recall."
|
131 |
+
},
|
132 |
+
{
|
133 |
+
"name": "Deep Learning Framework",
|
134 |
+
"threshold_setting": 0.61,
|
135 |
+
"cost": 1000,
|
136 |
+
"description": "Advanced algorithms that learn from previous scans. Provides better balance between precision and recall."
|
137 |
+
},
|
138 |
+
{
|
139 |
+
"name": "Quantum Probability Engine",
|
140 |
+
"threshold_setting": 0.55,
|
141 |
+
"cost": 2500,
|
142 |
+
"description": "Leverages quantum uncertainty for optimal detection balance. Perfect calibration point for F1 score."
|
143 |
+
},
|
144 |
+
{
|
145 |
+
"name": "Recursive Self-Improvement",
|
146 |
+
"threshold_setting": 0.45,
|
147 |
+
"cost": 7500,
|
148 |
+
"description": "Scanner enhances its own detection capabilities. Optimized for weighted tag discovery."
|
149 |
+
},
|
150 |
+
{
|
151 |
+
"name": "Consciousness Emulation",
|
152 |
+
"threshold_setting": 0.41,
|
153 |
+
"cost": 15000,
|
154 |
+
"description": "Scanner develops intuition-like abilities. Favors higher recall while maintaining reasonable precision."
|
155 |
+
},
|
156 |
+
{
|
157 |
+
"name": "Technological Singularity",
|
158 |
+
"threshold_setting": 0.35,
|
159 |
+
"cost": 50000,
|
160 |
+
"description": "The scanner transcends conventional limitations. Maximizes tag discovery at the cost of some precision."
|
161 |
+
}
|
162 |
+
]
|
163 |
+
|
164 |
+
# Achievements
|
165 |
+
ACHIEVEMENTS = {
|
166 |
+
# Collection achievements
|
167 |
+
"tag_collector_beginner": {"name": "Novice Archivist", "requirement": 50, "description": "Collect 50 different tags", "reward": {"coin_bonus": 0.01}},
|
168 |
+
"tag_collector_expert": {"name": "Senior Cataloger", "requirement": 250, "description": "Collect 250 different tags", "reward": {"coin_bonus": 0.01}},
|
169 |
+
"tag_collector_master": {"name": "Master Librarian", "requirement": 500, "description": "Collect 500 different tags", "reward": {"coin_bonus": 0.01}},
|
170 |
+
"tag_master": {"name": "Grand Archivist", "requirement": 1000, "description": "Collect 1000 different tags", "reward": {"coin_bonus": 0.01}},
|
171 |
+
|
172 |
+
# Rarity achievements
|
173 |
+
"legendary_hunter": {"name": "Impuritas Seeker", "requirement": 1, "description": "Find your first Impuritas Civitas tag", "reward": {"coin_bonus": 0.01, "enkephalin": 50}},
|
174 |
+
"multi_legendary": {"name": "Forbidden Collection", "requirement": 5, "description": "Collect 5 Impuritas Civitas tags", "reward": {"coin_bonus": 0.01, "enkephalin": 100}},
|
175 |
+
"canard_collector": {"name": "Canard Chronicler", "requirement": 30, "description": "Collect 30 Canard tags", "reward": {"coin_bonus": 0.01}},
|
176 |
+
"urban_myth_collector": {"name": "Myth Curator", "requirement": 15, "description": "Collect 15 Urban Myth tags", "reward": {"coin_bonus": 0.01}},
|
177 |
+
"urban_legend_collector": {"name": "Legend Preserver", "requirement": 10, "description": "Collect 10 Urban Legend tags", "reward": {"coin_bonus": 0.01}},
|
178 |
+
"urban_plague_collector": {"name": "Plague Archivist", "requirement": 5, "description": "Collect 5 Urban Plague tags", "reward": {"coin_bonus": 0.01}},
|
179 |
+
"urban_nightmare_collector": {"name": "Nightmare Keeper", "requirement": 5, "description": "Collect 5 Urban Nightmare tags", "reward": {"coin_bonus": 0.01}},
|
180 |
+
"star_collector": {"name": "Star Collector", "requirement": 3, "description": "Collect 3 Star of the City tags", "reward": {"coin_bonus": 0.01, "enkephalin": 30}},
|
181 |
+
"impuritas_collector": {"name": "Impuritas Scholar", "requirement": 3, "description": "Collect 3 Impuritas Civitas tags", "reward": {"coin_bonus": 0.01, "enkephalin": 75}},
|
182 |
+
|
183 |
+
# Progress achievements
|
184 |
+
"perfect_scanner": {"name": "Omniscient Observer", "description": "Reach the minimum threshold", "reward": {"coin_bonus": 0.01}},
|
185 |
+
"optimal_threshold": {"name": "Perfect Calibration", "description": "Reach the optimal F1 score threshold of 0.328", "reward": {"coin_bonus": 0.01}},
|
186 |
+
"collection_milestone_100": {"name": "Century Collector", "requirement": 100, "description": "Collect 100 different tags", "reward": {"tagcoins": 100, "coin_bonus": 0.01}},
|
187 |
+
"collection_milestone_1000": {"name": "Millennium Collector", "requirement": 1000, "description": "Collect 1000 different tags", "reward": {"tagcoins": 1000, "coin_bonus": 0.01}},
|
188 |
+
"collection_milestone_5000": {"name": "Epic Collector", "requirement": 5000, "description": "Collect 5000 different tags", "reward": {"tagcoins": 5000, "coin_bonus": 0.01}},
|
189 |
+
|
190 |
+
# Essence & library achievements
|
191 |
+
"essence_creator": {"name": "Essence Creator", "requirement": 5, "description": "Generate 5 tag essences", "reward": {"essence_cost_reduction": 0.2, "coin_bonus": 0.01}},
|
192 |
+
"tag_explorer": {"name": "Tag Explorer", "requirement": 20, "description": "Explore all library tiers", "reward": {"library_cost_reduction": 0.15, "coin_bonus": 0.01}},
|
193 |
+
"enkephalin_master": {"name": "Enkephalin Master", "requirement": 5000, "description": "Generate 5000 Enkephalin", "reward": {"essence_cost_reduction": 0.25, "coin_bonus": 0.01}},
|
194 |
+
"sacrifice_devotee": {"name": "Sacrifice Devotee", "requirement": 100, "description": "Sacrifice 100 tags", "reward": {"enkephalin_bonus": 0.2, "coin_bonus": 0.01}},
|
195 |
+
|
196 |
+
# New achievements
|
197 |
+
"category_explorer": {"name": "Category Explorer", "requirement": 10, "description": "Collect tags from 10 different categories", "reward": {"coin_bonus": 0.01}},
|
198 |
+
"series_collector": {"name": "Series Collector", "requirement": 3, "description": "Complete 3 series mosaics", "reward": {"coin_bonus": 0.01, "enkephalin": 25}},
|
199 |
+
"rapid_tagger": {"name": "Rapid Tagger", "requirement": 100, "description": "Scan 100 images", "reward": {"coin_bonus": 0.01}},
|
200 |
+
"enkephalin_harvester": {"name": "Enkephalin Harvester", "requirement": 1000, "description": "Generate 1000 Enkephalin", "reward": {"enkephalin_bonus": 0.1, "coin_bonus": 0.01}},
|
201 |
+
"library_scholar": {"name": "Library Scholar", "requirement": 50, "description": "Extract 50 tags from the library", "reward": {"library_cost_reduction": 0.1, "coin_bonus": 0.01}},
|
202 |
+
"rarity_hunter": {"name": "Rarity Hunter", "description": "Find tags of all rarity levels", "reward": {"coin_bonus": 0.02}},
|
203 |
+
"essence_master": {"name": "Essence Master", "requirement": 25, "description": "Generate 25 tag essences", "reward": {"essence_cost_reduction": 0.15, "coin_bonus": 0.01}},
|
204 |
+
"legendary_librarian": {"name": "Legendary Librarian", "description": "Extract an Impuritas Civitas tag from the library", "reward": {"library_cost_reduction": 0.2, "coin_bonus": 0.01, "enkephalin": 100}}
|
205 |
}
|