File size: 11,478 Bytes
29b445b |
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 |
#!/usr/bin/env python3
"""
Game Constants for Tag Collector Game - Updated with new tag rarity names
This file contains shared constants used by both the main game and the library system.
"""
# Game currency names
TAG_CURRENCY_NAME = "TagCoins"
ENKEPHALIN_CURRENCY_NAME = "Enkephalin"
ENKEPHALIN_ICON = "💧"
STARTING_THRESHOLD = 0.55
MIN_THRESHOLD = 0.1
# Tag animations and theme settings
TAG_ANIMATIONS = {
"Star of the City": {
"css_class": "star-of-city",
"animation": """
@keyframes glowing {
0% { box-shadow: 0 0 5px #FFD700; }
50% { box-shadow: 0 0 20px #FFD700; }
100% { box-shadow: 0 0 5px #FFD700; }
}
.star-of-city {
background-color: rgba(255, 215, 0, 0.2);
padding: 8px;
border-radius: 5px;
border: 2px solid gold;
animation: glowing 2s infinite;
}
"""
},
"Impuritas Civitas": {
"css_class": "impuritas-civitas",
"animation": """
@keyframes rainbow-border {
0% { border-color: red; }
14% { border-color: orange; }
28% { border-color: yellow; }
42% { border-color: green; }
57% { border-color: blue; }
71% { border-color: indigo; }
85% { border-color: violet; }
100% { border-color: red; }
}
@keyframes rainbow-text {
0% { color: red; }
14% { color: orange; }
28% { color: yellow; }
42% { color: green; }
57% { color: blue; }
71% { color: indigo; }
85% { color: violet; }
100% { color: red; }
}
@keyframes rainbow-bg {
0% { background-color: rgba(255,0,0,0.1); }
14% { background-color: rgba(255,165,0,0.1); }
28% { background-color: rgba(255,255,0,0.1); }
42% { background-color: rgba(0,128,0,0.1); }
57% { background-color: rgba(0,0,255,0.1); }
71% { background-color: rgba(75,0,130,0.1); }
85% { background-color: rgba(238,130,238,0.1); }
100% { background-color: rgba(255,0,0,0.1); }
}
.impuritas-civitas {
background-color: rgba(0, 0, 0, 0.1);
padding: 10px;
border-radius: 5px;
border: 3px solid red;
animation: rainbow-border 4s linear infinite, rainbow-bg 4s linear infinite;
}
.impuritas-text {
font-weight: bold;
animation: rainbow-text 4s linear infinite;
}
"""
}
}
# Rarity levels with appropriate colors (updated to match new rarity tiers)
RARITY_LEVELS = {
"Canard": {"color": "#AAAAAA", "value": 1}, # Gray
"Urban Myth": {"color": "#5D9C59", "value": 5}, # Green
"Urban Legend": {"color": "#2196F3", "value": 10}, # Blue
"Urban Plague": {"color": "#9C27B0", "value": 25}, # Purple
"Urban Nightmare": {"color": "#FF9800", "value": 50}, # Orange
"Star of the City": {"color": "#FFEB3B", "value": 250}, # Yellow/Gold
"Impuritas Civitas": {"color": "#F44336", "value": 1000} # Red
}
# Essence generation costs in enkephalin
ESSENCE_COSTS = {
"Canard": 10, # Common tags
"Urban Myth": 30, # Uncommon tags
"Urban Legend": 75, # Rare tags
"Urban Plague": 150, # Very rare tags
"Urban Nightmare": 300, # Extremely rare tags
"Star of the City": 600, # Nearly mythical tags
"Impuritas Civitas": 1200 # Legendary tags
}
# Tag power system
TAG_POWER_BONUSES = {
"Canard": {"coin_multiplier": 0, "enkephalin_reward": 0},
"Urban Myth": {"coin_multiplier": 0, "enkephalin_reward": 0},
"Urban Legend": {"coin_multiplier": 0, "enkephalin_reward": 1},
"Urban Plague": {"coin_multiplier": 0.001, "enkephalin_reward": 3},
"Urban Nightmare": {"coin_multiplier": 0.0025, "enkephalin_reward": 5},
"Star of the City": {"coin_multiplier": 0.005, "enkephalin_reward": 10},
"Impuritas Civitas": {"coin_multiplier": 0.01, "enkephalin_reward": 25}
}
THRESHOLD_UPGRADES = [
{
"name": "Pattern Recognition Module",
"threshold_setting": 0.48367345, # High precision threshold
"cost": 300,
"description": "Basic algorithm focused on high-precision identification. Reduces false positives but may miss some tags."
},
{
"name": "Neural Network Enhancement",
"threshold_setting": 0.40000000,
"cost": 500,
"description": "Improved tag detection using multi-layer perceptrons. Offers good precision with moderate recall."
},
{
"name": "Deep Learning Framework",
"threshold_setting": 0.35000000,
"cost": 1000,
"description": "Advanced algorithms that learn from previous scans. Provides better balance between precision and recall."
},
{
"name": "Quantum Probability Engine",
"threshold_setting": 0.32857141, # Balanced optimal F1 score threshold
"cost": 2500,
"description": "Leverages quantum uncertainty for optimal detection balance. Perfect calibration point for F1 score."
},
{
"name": "Recursive Self-Improvement",
"threshold_setting": 0.31224489, # Weighted F1 threshold
"cost": 7500,
"description": "Scanner enhances its own detection capabilities. Optimized for weighted tag discovery."
},
{
"name": "Consciousness Emulation",
"threshold_setting": 0.25000000,
"cost": 15000,
"description": "Scanner develops intuition-like abilities. Favors higher recall while maintaining reasonable precision."
},
{
"name": "Technological Singularity",
"threshold_setting": 0.20612246, # High recall threshold
"cost": 50000,
"description": "The scanner transcends conventional limitations. Maximizes tag discovery at the cost of some precision."
}
]
# Achievements
ACHIEVEMENTS = {
# Collection achievements
"tag_collector_beginner": {"name": "Novice Archivist", "requirement": 50, "description": "Collect 50 different tags", "reward": {"coin_bonus": 0.01}},
"tag_collector_expert": {"name": "Senior Cataloger", "requirement": 250, "description": "Collect 250 different tags", "reward": {"coin_bonus": 0.01}},
"tag_collector_master": {"name": "Master Librarian", "requirement": 500, "description": "Collect 500 different tags", "reward": {"coin_bonus": 0.01}},
"tag_master": {"name": "Grand Archivist", "requirement": 1000, "description": "Collect 1000 different tags", "reward": {"coin_bonus": 0.01}},
# Rarity achievements
"legendary_hunter": {"name": "Impuritas Seeker", "requirement": 1, "description": "Find your first Impuritas Civitas tag", "reward": {"coin_bonus": 0.01, "enkephalin": 50}},
"multi_legendary": {"name": "Forbidden Collection", "requirement": 5, "description": "Collect 5 Impuritas Civitas tags", "reward": {"coin_bonus": 0.01, "enkephalin": 100}},
"canard_collector": {"name": "Canard Chronicler", "requirement": 30, "description": "Collect 30 Canard tags", "reward": {"coin_bonus": 0.01}},
"urban_myth_collector": {"name": "Myth Curator", "requirement": 15, "description": "Collect 15 Urban Myth tags", "reward": {"coin_bonus": 0.01}},
"urban_legend_collector": {"name": "Legend Preserver", "requirement": 10, "description": "Collect 10 Urban Legend tags", "reward": {"coin_bonus": 0.01}},
"urban_plague_collector": {"name": "Plague Archivist", "requirement": 5, "description": "Collect 5 Urban Plague tags", "reward": {"coin_bonus": 0.01}},
"urban_nightmare_collector": {"name": "Nightmare Keeper", "requirement": 5, "description": "Collect 5 Urban Nightmare tags", "reward": {"coin_bonus": 0.01}},
"star_collector": {"name": "Star Collector", "requirement": 3, "description": "Collect 3 Star of the City tags", "reward": {"coin_bonus": 0.01, "enkephalin": 30}},
"impuritas_collector": {"name": "Impuritas Scholar", "requirement": 3, "description": "Collect 3 Impuritas Civitas tags", "reward": {"coin_bonus": 0.01, "enkephalin": 75}},
# Progress achievements
"perfect_scanner": {"name": "Omniscient Observer", "description": "Reach the minimum threshold", "reward": {"coin_bonus": 0.01}},
"optimal_threshold": {"name": "Perfect Calibration", "description": "Reach the optimal F1 score threshold of 0.328", "reward": {"coin_bonus": 0.01}},
"collection_milestone_100": {"name": "Century Collector", "requirement": 100, "description": "Collect 100 different tags", "reward": {"tagcoins": 100, "coin_bonus": 0.01}},
"collection_milestone_1000": {"name": "Millennium Collector", "requirement": 1000, "description": "Collect 1000 different tags", "reward": {"tagcoins": 1000, "coin_bonus": 0.01}},
"collection_milestone_5000": {"name": "Epic Collector", "requirement": 5000, "description": "Collect 5000 different tags", "reward": {"tagcoins": 5000, "coin_bonus": 0.01}},
# Essence & library achievements
"essence_creator": {"name": "Essence Creator", "requirement": 5, "description": "Generate 5 tag essences", "reward": {"essence_cost_reduction": 0.2, "coin_bonus": 0.01}},
"tag_explorer": {"name": "Tag Explorer", "requirement": 20, "description": "Explore all library tiers", "reward": {"library_cost_reduction": 0.15, "coin_bonus": 0.01}},
"enkephalin_master": {"name": "Enkephalin Master", "requirement": 5000, "description": "Generate 5000 Enkephalin", "reward": {"essence_cost_reduction": 0.25, "coin_bonus": 0.01}},
"sacrifice_devotee": {"name": "Sacrifice Devotee", "requirement": 100, "description": "Sacrifice 100 tags", "reward": {"enkephalin_bonus": 0.2, "coin_bonus": 0.01}},
# New achievements
"category_explorer": {"name": "Category Explorer", "requirement": 10, "description": "Collect tags from 10 different categories", "reward": {"coin_bonus": 0.01}},
"series_collector": {"name": "Series Collector", "requirement": 3, "description": "Complete 3 series mosaics", "reward": {"coin_bonus": 0.01, "enkephalin": 25}},
"rapid_tagger": {"name": "Rapid Tagger", "requirement": 100, "description": "Scan 100 images", "reward": {"coin_bonus": 0.01}},
"enkephalin_harvester": {"name": "Enkephalin Harvester", "requirement": 1000, "description": "Generate 1000 Enkephalin", "reward": {"enkephalin_bonus": 0.1, "coin_bonus": 0.01}},
"library_scholar": {"name": "Library Scholar", "requirement": 50, "description": "Extract 50 tags from the library", "reward": {"library_cost_reduction": 0.1, "coin_bonus": 0.01}},
"rarity_hunter": {"name": "Rarity Hunter", "description": "Find tags of all rarity levels", "reward": {"coin_bonus": 0.02}},
"essence_master": {"name": "Essence Master", "requirement": 25, "description": "Generate 25 tag essences", "reward": {"essence_cost_reduction": 0.15, "coin_bonus": 0.01}},
"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}}
} |