added inventory service for armor and jewelry
This commit is contained in:
parent
09a6cd4946
commit
57a2384511
13 changed files with 2630 additions and 25 deletions
|
|
@ -34,6 +34,29 @@ class Item(Base):
|
|||
value = Column(Integer, default=0)
|
||||
burden = Column(Integer, default=0)
|
||||
|
||||
# Equipment status
|
||||
current_wielded_location = Column(Integer, default=0, index=True) # 0 = not equipped
|
||||
|
||||
# Item state
|
||||
bonded = Column(Integer, default=0) # 0=Normal, 1=Bonded, 2=Sticky, 4=Destroy on drop
|
||||
attuned = Column(Integer, default=0) # 0=Normal, 1=Attuned
|
||||
unique = Column(Boolean, default=False)
|
||||
|
||||
# Stack/Container properties
|
||||
stack_size = Column(Integer, default=1)
|
||||
max_stack_size = Column(Integer, default=1)
|
||||
items_capacity = Column(Integer) # For containers
|
||||
containers_capacity = Column(Integer) # For containers
|
||||
|
||||
# Durability
|
||||
structure = Column(Integer) # Current durability
|
||||
max_structure = Column(Integer) # Maximum durability
|
||||
|
||||
# Special item flags
|
||||
rare_id = Column(Integer) # For rare items
|
||||
lifespan = Column(Integer) # Item decay timer
|
||||
remaining_lifespan = Column(Integer) # Remaining decay time
|
||||
|
||||
# Metadata flags
|
||||
has_id_data = Column(Boolean, default=False)
|
||||
last_id_time = Column(BigInteger, default=0)
|
||||
|
|
@ -60,6 +83,11 @@ class ItemCombatStats(Base):
|
|||
elemental_damage_vs_monsters = Column(Float)
|
||||
variance = Column(Float)
|
||||
|
||||
# Advanced damage properties
|
||||
cleaving = Column(Integer) # Cleaving damage
|
||||
crit_damage_rating = Column(Integer) # Critical damage multiplier
|
||||
damage_over_time = Column(Integer) # DoT damage
|
||||
|
||||
# Attack properties
|
||||
attack_bonus = Column(Float)
|
||||
weapon_time = Column(Integer)
|
||||
|
|
@ -74,9 +102,24 @@ class ItemCombatStats(Base):
|
|||
|
||||
# Resistances
|
||||
resist_magic = Column(Integer)
|
||||
crit_resist_rating = Column(Integer)
|
||||
crit_damage_resist_rating = Column(Integer)
|
||||
dot_resist_rating = Column(Integer)
|
||||
life_resist_rating = Column(Integer)
|
||||
nether_resist_rating = Column(Integer)
|
||||
|
||||
# Healing/Recovery
|
||||
heal_over_time = Column(Integer)
|
||||
healing_resist_rating = Column(Integer)
|
||||
|
||||
# Mana properties
|
||||
mana_conversion_bonus = Column(Float)
|
||||
|
||||
# PvP properties
|
||||
pk_damage_rating = Column(Integer)
|
||||
pk_damage_resist_rating = Column(Integer)
|
||||
gear_pk_damage_rating = Column(Integer)
|
||||
gear_pk_damage_resist_rating = Column(Integer)
|
||||
|
||||
class ItemRequirements(Base):
|
||||
"""Wield requirements and skill prerequisites."""
|
||||
|
|
@ -105,8 +148,30 @@ class ItemEnhancements(Base):
|
|||
workmanship = Column(Float)
|
||||
salvage_workmanship = Column(Float)
|
||||
|
||||
# Advanced tinkering
|
||||
num_times_tinkered = Column(Integer, default=0)
|
||||
free_tinkers_bitfield = Column(Integer) # Which tinkers are free
|
||||
num_items_in_material = Column(Integer) # Salvage yield
|
||||
|
||||
# Additional imbue effects
|
||||
imbue_attempts = Column(Integer, default=0)
|
||||
imbue_successes = Column(Integer, default=0)
|
||||
imbued_effect2 = Column(Integer)
|
||||
imbued_effect3 = Column(Integer)
|
||||
imbued_effect4 = Column(Integer)
|
||||
imbued_effect5 = Column(Integer)
|
||||
imbue_stacking_bits = Column(Integer) # Which imbues stack
|
||||
|
||||
# Set information
|
||||
item_set = Column(String(100), index=True)
|
||||
equipment_set_extra = Column(Integer) # Additional set bonuses
|
||||
|
||||
# Special properties
|
||||
aetheria_bitfield = Column(Integer) # Aetheria slot properties
|
||||
heritage_specific_armor = Column(Integer) # Heritage armor type
|
||||
|
||||
# Cooldowns
|
||||
shared_cooldown = Column(Integer) # Cooldown group ID
|
||||
|
||||
class ItemRatings(Base):
|
||||
"""Modern rating system properties."""
|
||||
|
|
@ -126,6 +191,22 @@ class ItemRatings(Base):
|
|||
heal_boost_rating = Column(Integer)
|
||||
vitality_rating = Column(Integer)
|
||||
mana_conversion_rating = Column(Integer)
|
||||
weakness_rating = Column(Integer) # Weakness debuff strength
|
||||
nether_over_time = Column(Integer) # Nether DoT
|
||||
|
||||
# Gear totals
|
||||
gear_damage = Column(Integer) # Total gear damage
|
||||
gear_damage_resist = Column(Integer) # Total gear damage resist
|
||||
gear_crit = Column(Integer) # Total gear crit
|
||||
gear_crit_resist = Column(Integer) # Total gear crit resist
|
||||
gear_crit_damage = Column(Integer) # Total gear crit damage
|
||||
gear_crit_damage_resist = Column(Integer) # Total gear crit damage resist
|
||||
gear_healing_boost = Column(Integer) # Total gear healing boost
|
||||
gear_max_health = Column(Integer) # Total gear max health
|
||||
gear_nether_resist = Column(Integer) # Total gear nether resist
|
||||
gear_life_resist = Column(Integer) # Total gear life resist
|
||||
gear_overpower = Column(Integer) # Total gear overpower
|
||||
gear_overpower_resist = Column(Integer) # Total gear overpower resist
|
||||
|
||||
# Calculated totals
|
||||
total_rating = Column(Integer)
|
||||
|
|
@ -164,6 +245,9 @@ def create_indexes(engine):
|
|||
# Item search indexes
|
||||
sa.Index('ix_items_search', Item.character_name, Item.name, Item.object_class).create(engine, checkfirst=True)
|
||||
|
||||
# Equipment status index for filtering equipped items
|
||||
sa.Index('ix_items_equipped', Item.character_name, Item.current_wielded_location).create(engine, checkfirst=True)
|
||||
|
||||
# Combat stats indexes for filtering
|
||||
sa.Index('ix_combat_damage', ItemCombatStats.max_damage).create(engine, checkfirst=True)
|
||||
sa.Index('ix_combat_armor', ItemCombatStats.armor_level).create(engine, checkfirst=True)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue