| 287 | |
| 288 | |
| 289 | class BoosterInfo: |
| 290 | |
| 291 | def __init__(self, itemID, state=None, sideEffects=None): |
| 292 | self.itemID = itemID |
| 293 | self.state = state |
| 294 | self.sideEffects = sideEffects |
| 295 | |
| 296 | @classmethod |
| 297 | def fromBooster(cls, booster): |
| 298 | if booster is None: |
| 299 | return None |
| 300 | info = cls( |
| 301 | itemID=booster.itemID, |
| 302 | state=booster.active, |
| 303 | sideEffects={se.effectID: se.active for se in booster.sideEffects}) |
| 304 | return info |
| 305 | |
| 306 | def toBooster(self): |
| 307 | item = Market.getInstance().getItem(self.itemID, eager=('attributes', 'group.category')) |
| 308 | try: |
| 309 | booster = Booster(item) |
| 310 | except ValueError: |
| 311 | pyfalog.warning('Invalid item: {}'.format(self.itemID)) |
| 312 | return None |
| 313 | if self.state is not None: |
| 314 | booster.active = self.state |
| 315 | if self.sideEffects is not None: |
| 316 | for sideEffect in booster.sideEffects: |
| 317 | sideEffect.active = self.sideEffects.get(sideEffect.effectID, sideEffect.active) |
| 318 | return booster |
| 319 | |
| 320 | def __repr__(self): |
| 321 | return makeReprStr(self, ['itemID', 'state', 'sideEffects']) |
| 322 | |
| 323 | |
| 324 | class CargoInfo: |