added inventory, updated DB

This commit is contained in:
erik 2025-06-10 19:21:21 +00:00
parent f218350959
commit 10c51f6825
16528 changed files with 147743 additions and 79 deletions

View file

@ -0,0 +1,121 @@
#!/usr/bin/env python3
"""
Extract spell names from Mag-Plugins/Shared/Spells/Spells.csv for spell ID translation.
"""
import csv
import json
from pathlib import Path
def extract_spell_names():
"""Extract spell ID to name mappings from Spells.csv."""
csv_path = Path('/home/erik/MosswartOverlord/Mag-Plugins/Shared/Spells/Spells.csv')
if not csv_path.exists():
print(f"❌ Spells.csv not found at {csv_path}")
return {}
spell_mappings = {}
# Try different encodings
encodings = ['utf-8', 'latin-1', 'windows-1252', 'utf-8-sig']
for encoding in encodings:
try:
with open(csv_path, 'r', encoding=encoding) as f:
reader = csv.DictReader(f)
print(f"✓ Successfully opened with {encoding} encoding")
for row in reader:
try:
spell_id = int(row['Id'])
spell_name = row['Name'].strip()
spell_description = row.get('Description', '').strip()
spell_school = row.get('School', '').strip()
spell_family = row.get('Family', '').strip()
spell_difficulty = row.get('Difficulty', '').strip()
spell_duration = row.get('Duration', '').strip()
spell_mana = row.get('Mana', '').strip()
# Create comprehensive spell data
spell_data = {
'name': spell_name,
'description': spell_description,
'school': spell_school,
'family': spell_family,
'difficulty': spell_difficulty,
'duration': spell_duration,
'mana': spell_mana
}
spell_mappings[spell_id] = spell_data
except (ValueError, KeyError) as e:
print(f"⚠️ Skipping invalid row: {e}")
continue
# If we get here successfully, we're done
break
except Exception as e:
print(f"❌ Error with {encoding} encoding: {e}")
continue
if spell_mappings:
print(f"✓ Extracted {len(spell_mappings)} spell entries")
else:
print("❌ Failed to extract spells with any encoding")
return spell_mappings
def save_spell_database(spell_mappings):
"""Save spell mappings to JSON file."""
output_path = Path('/home/erik/MosswartOverlord/inventory-service/spell_database.json')
spell_database = {
'metadata': {
'version': '1.0.0',
'source': 'Mag-Plugins/Shared/Spells/Spells.csv',
'total_spells': len(spell_mappings),
'description': 'Spell ID to name/data mappings for Asheron\'s Call'
},
'spells': spell_mappings
}
try:
with open(output_path, 'w', encoding='utf-8') as f:
json.dump(spell_database, f, indent=2, ensure_ascii=False)
print(f"✓ Spell database saved to {output_path}")
return True
except Exception as e:
print(f"❌ Error saving spell database: {e}")
return False
def main():
"""Main extraction process."""
print("Extracting spell names from Spells.csv...")
# Extract spell mappings
spell_mappings = extract_spell_names()
if not spell_mappings:
print("❌ No spells extracted")
return
# Save to JSON file
if save_spell_database(spell_mappings):
# Show some sample spells
print("\nSample spell entries:")
for spell_id, spell_data in list(spell_mappings.items())[:5]:
print(f" {spell_id}: {spell_data['name']} ({spell_data['school']})")
print(f"\n✓ Successfully processed {len(spell_mappings)} spells")
else:
print("❌ Failed to save spell database")
if __name__ == "__main__":
main()