NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

all_cso_relationships.py (2407B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\services\alliances\all_cso_relationships.py
      2 import blue
      3 from eve.client.script.ui.services.alliances.all_cso_base import BaseAllianceObject
      4 from eve.client.script.ui.shared.neocom.corporation import corpUISignals
      5 
      6 class AllianceRelationshipsO(BaseAllianceObject):
      7     __guid__ = 'allianceObject.relationships'
      8 
      9     def __init__(self, boundObject):
     10         BaseAllianceObject.__init__(self, boundObject)
     11         self.relationships = None
     12 
     13     def DoSessionChanging(self, isRemote, session, change):
     14         if 'allianceid' in change:
     15             self.relationships = None
     16 
     17     def Get(self):
     18         if self.relationships is None:
     19             self.relationships = self.GetMoniker().GetRelationships()
     20         return self.relationships
     21 
     22     def Set(self, relationship, toID):
     23         relationships = self.Get()
     24         if toID in relationships:
     25             if relationships[toID] == relationship:
     26                 return
     27         self.GetMoniker().SetRelationship(relationship, toID)
     28 
     29     def Delete(self, toID):
     30         relationships = self.Get()
     31         if toID not in relationships:
     32             return
     33         return self.GetMoniker().DeleteRelationship(toID)
     34 
     35     def OnAllianceRelationshipChanged(self, allianceID, toID, change):
     36         if allianceID != session.allianceid:
     37             return
     38         bAdd, bRemove = self.GetAddRemoveFromChange(change)
     39         if self.relationships is not None:
     40             if bAdd:
     41                 if len(change) != len(self.relationships.columns):
     42                     self.LogWarn('IncorrectNumberOfColumns ignoring change as Add change:', change)
     43                     return
     44                 line = []
     45                 for columnName in self.relationships.columns:
     46                     line.append(change[columnName][1])
     47 
     48                 self.relationships[toID] = blue.DBRow(self.relationships.header, line)
     49             else:
     50                 if toID not in self.relationships:
     51                     return
     52                 if bRemove:
     53                     del self.relationships[toID]
     54                 else:
     55                     member = self.relationships[toID]
     56                     for columnName in change.iterkeys():
     57                         setattr(member, columnName[0], change[columnName][1])
     58 
     59         corpUISignals.on_alliance_relationship_changed(allianceID, toID, change)