Add a toggle between fit-specific implants and character implants. This avoids a lot of the problems of how to mix these two sources of implants. Character implants cannot change stage.
This commit is contained in:
@@ -28,7 +28,7 @@ from eos.db.saveddata.module import modules_table
|
||||
from eos.db.saveddata.drone import drones_table
|
||||
from eos.db.saveddata.cargo import cargo_table
|
||||
from eos.db.saveddata.implant import fitImplants_table
|
||||
from eos.types import Fit, Module, User, Booster, Drone, Cargo, Implant, Character, DamagePattern, TargetResists
|
||||
from eos.types import Fit, Module, User, Booster, Drone, Cargo, Implant, Character, DamagePattern, TargetResists, ImplantLocation
|
||||
from eos.effectHandlerHelpers import *
|
||||
|
||||
fits_table = Table("fits", saveddata_meta,
|
||||
@@ -42,6 +42,7 @@ fits_table = Table("fits", saveddata_meta,
|
||||
Column("booster", Boolean, nullable = False, index = True, default = 0),
|
||||
Column("targetResistsID", ForeignKey("targetResists.ID"), nullable=True),
|
||||
Column("modeID", Integer, nullable=True),
|
||||
Column("implantLocation", Integer, nullable=False, default=ImplantLocation.FIT),
|
||||
)
|
||||
|
||||
projectedFits_table = Table("projectedFits", saveddata_meta,
|
||||
|
||||
@@ -31,6 +31,8 @@ import eos.db
|
||||
import time
|
||||
import copy
|
||||
from utils.timer import Timer
|
||||
from eos.enum import Enum
|
||||
|
||||
|
||||
import logging
|
||||
|
||||
@@ -41,6 +43,10 @@ try:
|
||||
except ImportError:
|
||||
from utils.compat import OrderedDict
|
||||
|
||||
class ImplantLocation(Enum):
|
||||
FIT = 0
|
||||
CHARACTER = 1
|
||||
|
||||
class Fit(object):
|
||||
"""Represents a fitting, with modules, ship, implants, etc."""
|
||||
|
||||
@@ -318,17 +324,20 @@ class Fit(object):
|
||||
|
||||
return -log(0.25) * agility * mass / 1000000
|
||||
|
||||
@property
|
||||
def implantSource(self):
|
||||
return self.implantLocation
|
||||
|
||||
@implantSource.setter
|
||||
def implantSource(self, source):
|
||||
self.implantLocation = source
|
||||
|
||||
@property
|
||||
def appliedImplants(self):
|
||||
implantsBySlot = {}
|
||||
if self.character:
|
||||
for implant in self.character.implants:
|
||||
implantsBySlot[implant.slot] = implant
|
||||
|
||||
for implant in self.implants:
|
||||
implantsBySlot[implant.slot] = implant
|
||||
|
||||
return implantsBySlot.values()
|
||||
if self.implantLocation == ImplantLocation.CHARACTER:
|
||||
return self.character.implants
|
||||
else:
|
||||
return self.implants
|
||||
|
||||
@validates("ID", "ownerID", "shipID")
|
||||
def validator(self, key, val):
|
||||
|
||||
@@ -32,7 +32,7 @@ from eos.saveddata.implant import Implant
|
||||
from eos.saveddata.booster import SideEffect
|
||||
from eos.saveddata.booster import Booster
|
||||
from eos.saveddata.ship import Ship
|
||||
from eos.saveddata.fit import Fit
|
||||
from eos.saveddata.fit import Fit, ImplantLocation
|
||||
from eos.saveddata.mode import Mode
|
||||
from eos.saveddata.fleet import Fleet, Wing, Squad
|
||||
from eos.saveddata.miscData import MiscData
|
||||
|
||||
Reference in New Issue
Block a user