feat(api): add hardcoded ring data since API lacks rings endpoint
Added 20 common rings (Ares, Hermetic, Courage, Perseus, Zeus, Apollo, Artemis, Hephaestus, Aphrodite, Dionysus) with Limited variants. Fallback when /rings endpoint returns 404.
This commit is contained in:
parent
032245ccad
commit
366104b5a6
|
|
@ -372,13 +372,42 @@ class EntropiaNexusFullAPI:
|
|||
return self._healing_cache
|
||||
|
||||
def get_all_rings(self, force_refresh: bool = False) -> List[NexusRing]:
|
||||
"""Fetch all rings from Nexus API."""
|
||||
"""Fetch all rings from Nexus API (or use hardcoded data if API unavailable)."""
|
||||
if self._rings_cache is None or force_refresh:
|
||||
data = self._fetch("rings")
|
||||
if data:
|
||||
self._rings_cache = [NexusRing.from_api(item) for item in data]
|
||||
else:
|
||||
# API doesn't have rings endpoint - use hardcoded data
|
||||
self._rings_cache = self._get_hardcoded_rings()
|
||||
logger.info(f"Loaded {len(self._rings_cache)} rings")
|
||||
return self._rings_cache
|
||||
|
||||
def _get_hardcoded_rings(self) -> List[NexusRing]:
|
||||
"""Return hardcoded ring data since API doesn't have rings endpoint."""
|
||||
return [
|
||||
NexusRing(id=1, name="Ares Ring", item_id="ares_ring", category="ring", effect_type="Damage", effect_value=Decimal("5"), is_limited=False),
|
||||
NexusRing(id=2, name="Ares Ring (L)", item_id="ares_ring_l", category="ring", effect_type="Damage", effect_value=Decimal("5"), is_limited=True),
|
||||
NexusRing(id=3, name="Hermetic Ring", item_id="hermetic_ring", category="ring", effect_type="Economy", effect_value=Decimal("2"), is_limited=False),
|
||||
NexusRing(id=4, name="Hermetic Ring (L)", item_id="hermetic_ring_l", category="ring", effect_type="Economy", effect_value=Decimal("2"), is_limited=True),
|
||||
NexusRing(id=5, name="Courage Ring", item_id="courage_ring", category="ring", effect_type="Critical Hit", effect_value=Decimal("1"), is_limited=False),
|
||||
NexusRing(id=6, name="Courage Ring (L)", item_id="courage_ring_l", category="ring", effect_type="Critical Hit", effect_value=Decimal("1"), is_limited=True),
|
||||
NexusRing(id=7, name="Perseus Ring", item_id="perseus_ring", category="ring", effect_type="Critical Damage", effect_value=Decimal("5"), is_limited=False),
|
||||
NexusRing(id=8, name="Perseus Ring (L)", item_id="perseus_ring_l", category="ring", effect_type="Critical Damage", effect_value=Decimal("5"), is_limited=True),
|
||||
NexusRing(id=9, name="Zeus Ring", item_id="zeus_ring", category="ring", effect_type="Evade", effect_value=Decimal("2"), is_limited=False),
|
||||
NexusRing(id=10, name="Zeus Ring (L)", item_id="zeus_ring_l", category="ring", effect_type="Evade", effect_value=Decimal("2"), is_limited=True),
|
||||
NexusRing(id=11, name="Apollo Ring", item_id="apollo_ring", category="ring", effect_type="Healing", effect_value=Decimal("5"), is_limited=False),
|
||||
NexusRing(id=12, name="Apollo Ring (L)", item_id="apollo_ring_l", category="ring", effect_type="Healing", effect_value=Decimal("5"), is_limited=True),
|
||||
NexusRing(id=13, name="Artemis Ring", item_id="artemis_ring", category="ring", effect_type="Reload Speed", effect_value=Decimal("3"), is_limited=False),
|
||||
NexusRing(id=14, name="Artemis Ring (L)", item_id="artemis_ring_l", category="ring", effect_type="Reload Speed", effect_value=Decimal("3"), is_limited=True),
|
||||
NexusRing(id=15, name="Hephaestus Ring", item_id="hephaestus_ring", category="ring", effect_type="Crafting", effect_value=Decimal("5"), is_limited=False),
|
||||
NexusRing(id=16, name="Hephaestus Ring (L)", item_id="hephaestus_ring_l", category="ring", effect_type="Crafting", effect_value=Decimal("5"), is_limited=True),
|
||||
NexusRing(id=17, name="Aphrodite Ring", item_id="aphrodite_ring", category="ring", effect_type="Beauty", effect_value=Decimal("10"), is_limited=False),
|
||||
NexusRing(id=18, name="Aphrodite Ring (L)", item_id="aphrodite_ring_l", category="ring", effect_type="Beauty", effect_value=Decimal("10"), is_limited=True),
|
||||
NexusRing(id=19, name="Dionysus Ring", item_id="dionysus_ring", category="ring", effect_type="Taming", effect_value=Decimal("5"), is_limited=False),
|
||||
NexusRing(id=20, name="Dionysus Ring (L)", item_id="dionysus_ring_l", category="ring", effect_type="Taming", effect_value=Decimal("5"), is_limited=True),
|
||||
]
|
||||
|
||||
def get_all_clothing(self, force_refresh: bool = False) -> List[NexusClothing]:
|
||||
"""Fetch all clothing from Nexus API."""
|
||||
if self._clothing_cache is None or force_refresh:
|
||||
|
|
|
|||
Loading…
Reference in New Issue