积分抽奖更新奖池模式

This commit is contained in:
2025-11-13 20:31:17 +08:00
parent 2853119f58
commit a121a2478f
2 changed files with 365 additions and 273 deletions

View File

@@ -2,8 +2,8 @@ from __future__ import annotations
from dataclasses import dataclass
from enum import Enum
from typing import Dict, List, Optional, Sequence, override
from PWF.Convention.Runtime.Config import *
from PWF.Convention.Runtime.Architecture import Architecture
from PWF.Convention.Runtime.GlobalConfig import ConsoleFrontColor, ProjectConfig
from PWF.CoreModules.database import get_db
@@ -174,6 +174,28 @@ class WPSBackpackSystem(WPSAPI):
return ()
return tuple(self._item_cache.values())
def get_items_by_tier(
self,
tier: BackpackItemTier,
*,
blacklist: Optional[Collection[str]] = None,
) -> List[BackpackItemDefinition]:
normalized_blacklist: Set[str] = set()
if blacklist:
normalized_blacklist = {
str(item_id).strip().lower()
for item_id in blacklist
if str(item_id).strip()
}
items: List[BackpackItemDefinition] = []
for definition in self._iter_registered_items():
if definition.tier != tier:
continue
if normalized_blacklist and definition.item_id.lower() in normalized_blacklist:
continue
items.append(definition)
return items
def collect_additional_sections(self) -> Sequence[GuideSection]:
sections = list(super().collect_additional_sections())
item_entries: List[GuideEntry] = []