diff --git a/core/nexus_full_api.py b/core/nexus_full_api.py index 702fc4e..178c8db 100644 --- a/core/nexus_full_api.py +++ b/core/nexus_full_api.py @@ -372,12 +372,41 @@ 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") - self._rings_cache = [NexusRing.from_api(item) for item in data] + 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."""