Merge branch 'master' into py3EFFS
This commit is contained in:
@@ -24,10 +24,10 @@ saveInRoot = False
|
|||||||
|
|
||||||
# Version data
|
# Version data
|
||||||
|
|
||||||
version = "2.0.2"
|
version = "2.1.1"
|
||||||
tag = "Stable"
|
tag = "Stable"
|
||||||
expansionName = "YC120.3"
|
expansionName = "Into the Abyss"
|
||||||
expansionVersion = "1.8"
|
expansionVersion = "1.1"
|
||||||
evemonMinVersion = "4081"
|
evemonMinVersion = "4081"
|
||||||
|
|
||||||
minItemSearchLength = 3
|
minItemSearchLength = 3
|
||||||
|
|||||||
13
dist_assets/win/Microsoft.VC90.CRT.manifest
Normal file
13
dist_assets/win/Microsoft.VC90.CRT.manifest
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
|
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
||||||
|
<noInheritable/>
|
||||||
|
<assemblyIdentity
|
||||||
|
type="win32"
|
||||||
|
name="Microsoft.VC90.CRT"
|
||||||
|
version="9.0.21022.8"
|
||||||
|
processorArchitecture="x86"
|
||||||
|
publicKeyToken="1fc8b3b9a1e18e3b"/>
|
||||||
|
<file name="MSVCR90.DLL"/>
|
||||||
|
<file name="MSVCM90.DLL"/>
|
||||||
|
<file name="MSVCP90.DLL"/>
|
||||||
|
</assembly>
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
; we do some #ifdef conditionals because automated compilation passes these as arguments
|
; we do some #ifdef conditionals because automated compilation passes these as arguments
|
||||||
|
|
||||||
#ifndef MyAppVersion
|
#ifndef MyAppVersion
|
||||||
#define MyAppVersion "1.15.0"
|
#define MyAppVersion "2.1.0"
|
||||||
#endif
|
#endif
|
||||||
#ifndef MyAppExpansion
|
#ifndef MyAppExpansion
|
||||||
#define MyAppExpansion "Vanguard 1.0"
|
#define MyAppExpansion "Vanguard 1.0"
|
||||||
@@ -64,7 +64,7 @@ Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{
|
|||||||
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1
|
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1
|
||||||
|
|
||||||
[Files]
|
[Files]
|
||||||
Source: "{#MyAppDir}\pyfa.exe"; DestDir: "{app}"; Flags: ignoreversion
|
Source: "{#MyAppDir}\pyfa.exe"; DestDir: "{app}"; Flags: ignoreversion; AfterInstall: RemoveFromVirtualStore
|
||||||
Source: "{#MyAppDir}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
Source: "{#MyAppDir}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||||
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
|
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
|
||||||
|
|
||||||
@@ -104,6 +104,22 @@ begin
|
|||||||
FSWbemLocator := Unassigned;
|
FSWbemLocator := Unassigned;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure RemoveFromVirtualStore;
|
||||||
|
var
|
||||||
|
VirtualStore,FileName,FilePath:String;
|
||||||
|
DriveChars:Integer;
|
||||||
|
begin
|
||||||
|
VirtualStore:=AddBackslash(ExpandConstant('{localappdata}'))+'VirtualStore';
|
||||||
|
FileName:=ExpandConstant(CurrentFileName);
|
||||||
|
DriveChars:=Length(ExtractFileDrive(FileName));
|
||||||
|
if DriveChars>0 then begin
|
||||||
|
Delete(FileName,1,DriveChars);
|
||||||
|
FileName:=VirtualStore+FileName;
|
||||||
|
FilePath:=ExtractFilePath(FileName);
|
||||||
|
DelTree(FilePath, True, True, True);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
function PrepareToInstall(var NeedsRestart: Boolean): String;
|
function PrepareToInstall(var NeedsRestart: Boolean): String;
|
||||||
begin
|
begin
|
||||||
if(IsAppRunning( 'pyfa.exe' )) then
|
if(IsAppRunning( 'pyfa.exe' )) then
|
||||||
|
|||||||
25
dist_assets/win/pyfa.exe.manifest
Normal file
25
dist_assets/win/pyfa.exe.manifest
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
|
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
||||||
|
<assemblyIdentity name="pyfa" processorArchitecture="x86" type="win32" version="1.0.0.0"/>
|
||||||
|
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||||
|
<security>
|
||||||
|
<requestedPrivileges>
|
||||||
|
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
|
||||||
|
</requestedPrivileges>
|
||||||
|
</security>
|
||||||
|
</trustInfo>
|
||||||
|
<dependency>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
|
||||||
|
</dependentAssembly>
|
||||||
|
</dependency>
|
||||||
|
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
||||||
|
<application>
|
||||||
|
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
|
||||||
|
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
|
||||||
|
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
|
||||||
|
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
|
||||||
|
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
|
||||||
|
</application>
|
||||||
|
</compatibility>
|
||||||
|
</assembly>
|
||||||
@@ -20,6 +20,8 @@ added_files = [
|
|||||||
('../../imgs/renders/*.png', 'imgs/renders'),
|
('../../imgs/renders/*.png', 'imgs/renders'),
|
||||||
('../../service/jargon/*.yaml', 'service/jargon'),
|
('../../service/jargon/*.yaml', 'service/jargon'),
|
||||||
('../../dist_assets/win/pyfa.ico', '.'),
|
('../../dist_assets/win/pyfa.ico', '.'),
|
||||||
|
('../../dist_assets/win/pyfa.exe.manifest', '.'),
|
||||||
|
('../../dist_assets/win/Microsoft.VC90.CRT.manifest', '.'),
|
||||||
(requests.certs.where(), '.'), # is this needed anymore?
|
(requests.certs.where(), '.'), # is this needed anymore?
|
||||||
('../../eve.db', '.'),
|
('../../eve.db', '.'),
|
||||||
('../../README.md', '.'),
|
('../../README.md', '.'),
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ debug = False
|
|||||||
gamedataCache = True
|
gamedataCache = True
|
||||||
saveddataCache = True
|
saveddataCache = True
|
||||||
gamedata_version = ""
|
gamedata_version = ""
|
||||||
|
gamedata_date = ""
|
||||||
gamedata_connectionstring = 'sqlite:///' + realpath(join(dirname(abspath(__file__)), "..", "eve.db"))
|
gamedata_connectionstring = 'sqlite:///' + realpath(join(dirname(abspath(__file__)), "..", "eve.db"))
|
||||||
pyfalog.debug("Gamedata connection string: {0}", gamedata_connectionstring)
|
pyfalog.debug("Gamedata connection string: {0}", gamedata_connectionstring)
|
||||||
|
|
||||||
|
|||||||
@@ -51,10 +51,14 @@ try:
|
|||||||
config.gamedata_version = gamedata_session.execute(
|
config.gamedata_version = gamedata_session.execute(
|
||||||
"SELECT `field_value` FROM `metadata` WHERE `field_name` LIKE 'client_build'"
|
"SELECT `field_value` FROM `metadata` WHERE `field_name` LIKE 'client_build'"
|
||||||
).fetchone()[0]
|
).fetchone()[0]
|
||||||
|
config.gamedata_date = gamedata_session.execute(
|
||||||
|
"SELECT `field_value` FROM `metadata` WHERE `field_name` LIKE 'dump_time'"
|
||||||
|
).fetchone()[0]
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
pyfalog.warning("Missing gamedata version.")
|
pyfalog.warning("Missing gamedata version.")
|
||||||
pyfalog.critical(e)
|
pyfalog.critical(e)
|
||||||
config.gamedata_version = None
|
config.gamedata_version = None
|
||||||
|
config.gamedata_date = None
|
||||||
|
|
||||||
saveddata_connectionstring = config.saveddata_connectionstring
|
saveddata_connectionstring = config.saveddata_connectionstring
|
||||||
if saveddata_connectionstring is not None:
|
if saveddata_connectionstring is not None:
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Modules from group: Missile Launcher Bomb (2 of 2)
|
# Modules from group: Missile Launcher Bomb (2 of 2)
|
||||||
# Modules from group: Shield Extender (33 of 33)
|
# Modules from group: Shield Extender (36 of 36)
|
||||||
type = "passive"
|
type = "passive"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# ammoInfluenceCapNeed
|
# ammoInfluenceCapNeed
|
||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Items from category: Charge (478 of 928)
|
# Items from category: Charge (493 of 947)
|
||||||
type = "passive"
|
type = "passive"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# ammoInfluenceRange
|
# ammoInfluenceRange
|
||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Items from category: Charge (572 of 928)
|
# Items from category: Charge (587 of 947)
|
||||||
type = "passive"
|
type = "passive"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
# Charges from group: Festival Charges (23 of 23)
|
# Charges from group: Festival Charges (23 of 23)
|
||||||
# Charges from group: Interdiction Probe (2 of 2)
|
# Charges from group: Interdiction Probe (2 of 2)
|
||||||
# Charges from group: Structure Festival Charges (3 of 3)
|
# Charges from group: Structure Festival Charges (3 of 3)
|
||||||
|
# Special Edition Assetss from group: Festival Charges Expired (2 of 2)
|
||||||
type = "passive"
|
type = "passive"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,7 @@
|
|||||||
# ammoTrackingMultiplier
|
# ammoTrackingMultiplier
|
||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Charges from group: Advanced Artillery Ammo (8 of 8)
|
# Items from category: Charge (182 of 947)
|
||||||
# Charges from group: Advanced Autocannon Ammo (8 of 8)
|
|
||||||
# Charges from group: Advanced Beam Laser Crystal (8 of 8)
|
|
||||||
# Charges from group: Advanced Blaster Charge (8 of 8)
|
|
||||||
# Charges from group: Advanced Pulse Laser Crystal (8 of 8)
|
|
||||||
# Charges from group: Advanced Railgun Charge (8 of 8)
|
|
||||||
# Charges from group: Projectile Ammo (128 of 128)
|
# Charges from group: Projectile Ammo (128 of 128)
|
||||||
type = "passive"
|
type = "passive"
|
||||||
|
|
||||||
|
|||||||
16
eos/effects/aoebeaconbioluminescencecloud.py
Normal file
16
eos/effects/aoebeaconbioluminescencecloud.py
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# aoe_beacon_bioluminescence_cloud
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Celestials named like: Bioluminescence Cloud (3 of 3)
|
||||||
|
runTime = "early"
|
||||||
|
type = ("projected", "passive", "gang")
|
||||||
|
|
||||||
|
|
||||||
|
def handler(fit, beacon, context, **kwargs):
|
||||||
|
for x in range(1, 3):
|
||||||
|
if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)):
|
||||||
|
value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x))
|
||||||
|
id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x))
|
||||||
|
|
||||||
|
if id:
|
||||||
|
fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early')
|
||||||
16
eos/effects/aoebeaconcausticcloud.py
Normal file
16
eos/effects/aoebeaconcausticcloud.py
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# aoe_beacon_caustic_cloud
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Celestials named like: Caustic Cloud (3 of 3)
|
||||||
|
runTime = "early"
|
||||||
|
type = ("projected", "passive", "gang")
|
||||||
|
|
||||||
|
|
||||||
|
def handler(fit, beacon, context, **kwargs):
|
||||||
|
for x in range(1, 3):
|
||||||
|
if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)):
|
||||||
|
value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x))
|
||||||
|
id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x))
|
||||||
|
|
||||||
|
if id:
|
||||||
|
fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early')
|
||||||
16
eos/effects/aoebeaconfilamentcloud.py
Normal file
16
eos/effects/aoebeaconfilamentcloud.py
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# aoe_beacon_filament_cloud
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Celestials named like: Filament Cloud (3 of 3)
|
||||||
|
runTime = "early"
|
||||||
|
type = ("projected", "passive", "gang")
|
||||||
|
|
||||||
|
|
||||||
|
def handler(fit, beacon, context, **kwargs):
|
||||||
|
for x in range(1, 3):
|
||||||
|
if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)):
|
||||||
|
value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x))
|
||||||
|
id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x))
|
||||||
|
|
||||||
|
if id:
|
||||||
|
fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early')
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
# armorAllRepairSystemsAmountBonusPassive
|
# armorAllRepairSystemsAmountBonusPassive
|
||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
|
# Implants named like: Agency 'Hardshell' TB Dose (3 of 4)
|
||||||
# Implants named like: Exile Booster (4 of 4)
|
# Implants named like: Exile Booster (4 of 4)
|
||||||
# Implant: Antipharmakon Kosybo
|
# Implant: Antipharmakon Kosybo
|
||||||
type = "passive"
|
type = "passive"
|
||||||
@@ -9,4 +10,4 @@ type = "passive"
|
|||||||
def handler(fit, booster, context):
|
def handler(fit, booster, context):
|
||||||
fit.modules.filteredItemBoost(
|
fit.modules.filteredItemBoost(
|
||||||
lambda mod: mod.item.requiresSkill("Repair Systems") or mod.item.requiresSkill("Capital Repair Systems"),
|
lambda mod: mod.item.requiresSkill("Repair Systems") or mod.item.requiresSkill("Capital Repair Systems"),
|
||||||
"armorDamageAmount", booster.getModifiedItemAttr("armorDamageAmountBonus"))
|
"armorDamageAmount", booster.getModifiedItemAttr("armorDamageAmountBonus") or 0)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# armorHPBonusAdd
|
# armorHPBonusAdd
|
||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Modules from group: Armor Reinforcer (48 of 48)
|
# Modules from group: Armor Reinforcer (51 of 51)
|
||||||
type = "passive"
|
type = "passive"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# armorReinforcerMassAdd
|
# armorReinforcerMassAdd
|
||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Modules from group: Armor Reinforcer (48 of 48)
|
# Modules from group: Armor Reinforcer (51 of 51)
|
||||||
type = "passive"
|
type = "passive"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# armorRepair
|
# armorRepair
|
||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Modules from group: Armor Repair Unit (105 of 105)
|
# Modules from group: Armor Repair Unit (108 of 108)
|
||||||
runTime = "late"
|
runTime = "late"
|
||||||
type = "active"
|
type = "active"
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
# Not used by any item
|
|
||||||
type = "gang", "active"
|
|
||||||
gangBonus = "armorHpBonus2"
|
|
||||||
gangBoost = "armorHP"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, module, context):
|
|
||||||
if "gang" not in context:
|
|
||||||
return
|
|
||||||
fit.ship.boostItemAttr("armorHP", module.getModifiedItemAttr("armorHpBonus2"))
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
# boosterArmorHpPenalty
|
# boosterArmorHpPenalty
|
||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Implants from group: Booster (12 of 62)
|
# Implants named like: Booster (12 of 33)
|
||||||
type = "boosterSideEffect"
|
type = "boosterSideEffect"
|
||||||
|
|
||||||
# User-friendly name for the side effect
|
# User-friendly name for the side effect
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# boosterMaxVelocityPenalty
|
# boosterMaxVelocityPenalty
|
||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Implants from group: Booster (12 of 62)
|
# Implants named like: Booster (12 of 33)
|
||||||
type = "boosterSideEffect"
|
type = "boosterSideEffect"
|
||||||
|
|
||||||
# User-friendly name for the side effect
|
# User-friendly name for the side effect
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# boosterShieldCapacityPenalty
|
# boosterShieldCapacityPenalty
|
||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Implants from group: Booster (12 of 62)
|
# Implants named like: Booster (12 of 33)
|
||||||
type = "boosterSideEffect"
|
type = "boosterSideEffect"
|
||||||
|
|
||||||
# User-friendly name for the side effect
|
# User-friendly name for the side effect
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
# Modules from group: Capacitor Flux Coil (6 of 6)
|
# Modules from group: Capacitor Flux Coil (6 of 6)
|
||||||
# Modules from group: Capacitor Power Relay (20 of 20)
|
# Modules from group: Capacitor Power Relay (20 of 20)
|
||||||
# Modules from group: Power Diagnostic System (23 of 23)
|
# Modules from group: Power Diagnostic System (23 of 23)
|
||||||
# Modules from group: Propulsion Module (65 of 127)
|
# Modules from group: Propulsion Module (68 of 133)
|
||||||
# Modules from group: Reactor Control Unit (22 of 22)
|
# Modules from group: Reactor Control Unit (22 of 22)
|
||||||
type = "passive"
|
type = "passive"
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
# Not used by any item
|
# citadelRigBonus
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Structures from group: Citadel (9 of 9)
|
||||||
type = "passive"
|
type = "passive"
|
||||||
runTime = "early"
|
runTime = "early"
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Modules from group: CPU Enhancer (19 of 19)
|
# Modules from group: CPU Enhancer (19 of 19)
|
||||||
|
# Variations of structure module: Standup Co-Processor Array I (2 of 2)
|
||||||
type = "passive"
|
type = "passive"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
# Not used by any item
|
|
||||||
type = "active", "projected"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, module, context):
|
|
||||||
if "projected" not in context:
|
|
||||||
return
|
|
||||||
fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("speedFactor"),
|
|
||||||
stackingPenalties=True)
|
|
||||||
11
eos/effects/disintegratorweapondamagemultiply.py
Normal file
11
eos/effects/disintegratorweapondamagemultiply.py
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# disintegratorWeaponDamageMultiply
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Modules from group: Entropic Radiation Sink (3 of 3)
|
||||||
|
type = "passive"
|
||||||
|
|
||||||
|
|
||||||
|
def handler(fit, module, context):
|
||||||
|
fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Precursor Weapon",
|
||||||
|
"damageMultiplier", module.getModifiedItemAttr("damageMultiplier"),
|
||||||
|
stackingPenalties=True)
|
||||||
11
eos/effects/disintegratorweaponspeedmultiply.py
Normal file
11
eos/effects/disintegratorweaponspeedmultiply.py
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# disintegratorWeaponSpeedMultiply
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Modules from group: Entropic Radiation Sink (3 of 3)
|
||||||
|
type = "passive"
|
||||||
|
|
||||||
|
|
||||||
|
def handler(fit, module, context):
|
||||||
|
fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Precursor Weapon",
|
||||||
|
"speed", module.getModifiedItemAttr("speedMultiplier"),
|
||||||
|
stackingPenalties=True)
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Module: Warp Disruption Burst Projector
|
# Module: Warp Disruption Burst Projector
|
||||||
|
# Structure Module: Standup Warp Disruption Burst Projector
|
||||||
type = "projected", "active"
|
type = "projected", "active"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Module: Sensor Dampening Burst Projector
|
# Module: Sensor Dampening Burst Projector
|
||||||
|
# Structure Module: Standup Sensor Dampening Burst Projector
|
||||||
type = "projected", "active"
|
type = "projected", "active"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Module: ECM Jammer Burst Projector
|
# Module: ECM Jammer Burst Projector
|
||||||
|
# Structure Module: Standup ECM Jammer Burst Projector
|
||||||
from eos.modifiedAttributeDict import ModifiedAttributeDict
|
from eos.modifiedAttributeDict import ModifiedAttributeDict
|
||||||
|
|
||||||
type = "projected", "active"
|
type = "projected", "active"
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Module: Energy Neutralization Burst Projector
|
# Module: Energy Neutralization Burst Projector
|
||||||
|
# Structure Module: Standup Energy Neutralization Burst Projector
|
||||||
from eos.saveddata.module import State
|
from eos.saveddata.module import State
|
||||||
from eos.modifiedAttributeDict import ModifiedAttributeDict
|
from eos.modifiedAttributeDict import ModifiedAttributeDict
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Module: Target Illumination Burst Projector
|
# Module: Target Illumination Burst Projector
|
||||||
|
# Structure Module: Standup Target Illumination Burst Projector
|
||||||
type = "projected", "active"
|
type = "projected", "active"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Module: Weapon Disruption Burst Projector
|
# Module: Weapon Disruption Burst Projector
|
||||||
|
# Structure Module: Standup Weapon Disruption Burst Projector
|
||||||
|
|
||||||
type = "active", "projected"
|
type = "active", "projected"
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Module: Stasis Webification Burst Projector
|
# Module: Stasis Webification Burst Projector
|
||||||
|
# Structure Module: Standup Stasis Webification Burst Projector
|
||||||
type = "active", "projected"
|
type = "active", "projected"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
# Not used by any item
|
|
||||||
type = "passive"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, skill, context):
|
|
||||||
fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"),
|
|
||||||
"damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level)
|
|
||||||
@@ -8,4 +8,4 @@ type = "passive"
|
|||||||
def handler(fit, container, context):
|
def handler(fit, container, context):
|
||||||
level = container.level if "skill" in context else 1
|
level = container.level if "skill" in context else 1
|
||||||
fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"),
|
fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"),
|
||||||
"maxVelocity", container.getModifiedItemAttr("droneMaxVelocityBonus") * level)
|
"maxVelocity", container.getModifiedItemAttr("droneMaxVelocityBonus") * level, stackingPenalties=True)
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
# Not used by any item
|
|
||||||
type = "passive"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, src, context):
|
|
||||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command Specialist"),
|
|
||||||
"commandBonusHidden",
|
|
||||||
src.getModifiedItemAttr("eliteBonusCommandDestroyer1"),
|
|
||||||
skill="Command Destroyers")
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
# Not used by any item
|
|
||||||
type = "passive"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, src, context):
|
|
||||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), "signatureRadiusBonus",
|
|
||||||
src.getModifiedItemAttr("eliteBonusCommandDestroyer3"), skill="Command Destroyers")
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
# Not used by any item
|
|
||||||
type = "passive"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, module, context):
|
|
||||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command Specialist"),
|
|
||||||
"commandBonusHidden", module.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships")
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
# Not used by any item
|
|
||||||
type = "passive"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, ship, context):
|
|
||||||
fit.ship.increaseItemAttr("droneCapacity", ship.getModifiedItemAttr("eliteBonusGunship2"), skill="Assault Frigates")
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
# Not used by any item
|
|
||||||
type = "passive"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, src, context):
|
|
||||||
fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "trackingSpeed",
|
|
||||||
src.getModifiedItemAttr("eliteBonusGunship2"), stackingPenalties=True, skill="Assault Frigates")
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
# Not used by any item
|
|
||||||
from eos.saveddata.module import State
|
|
||||||
|
|
||||||
type = "active", "projected"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, src, context):
|
|
||||||
if "projected" in context and ((hasattr(src, "state") and src.state >= State.ACTIVE) or hasattr(src, "amountActive")):
|
|
||||||
multiplier = src.amountActive if hasattr(src, "amountActive") else 1
|
|
||||||
amount = src.getModifiedItemAttr("energyNeutralizerAmount")
|
|
||||||
time = src.getModifiedItemAttr("duration")
|
|
||||||
fit.addDrain(src, time, amount * multiplier, 0)
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
# energyNeutralizerFalloff
|
# energyNeutralizerFalloff
|
||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Modules from group: Energy Neutralizer (51 of 51)
|
# Modules from group: Energy Neutralizer (54 of 54)
|
||||||
from eos.saveddata.module import State
|
from eos.saveddata.module import State
|
||||||
from eos.modifiedAttributeDict import ModifiedAttributeDict
|
from eos.modifiedAttributeDict import ModifiedAttributeDict
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
# Not used by any item
|
|
||||||
type = "projected", "active"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, src, context):
|
|
||||||
if "projected" in context:
|
|
||||||
amount = src.getModifiedItemAttr("powerTransferAmount")
|
|
||||||
duration = src.getModifiedItemAttr("duration")
|
|
||||||
fit.addDrain(src, duration, -amount, 0)
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
# Not used by any item
|
|
||||||
type = "projected", "active"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, container, context):
|
|
||||||
if "projected" in context:
|
|
||||||
fit.ship.boostItemAttr("signatureRadius", container.getModifiedItemAttr("signatureRadiusBonus"),
|
|
||||||
stackingPenalties=True)
|
|
||||||
@@ -1,4 +1,8 @@
|
|||||||
# Not used by any item
|
# fighterAbilityAttackM
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Items from category: Fighter (50 of 82)
|
||||||
|
# Fighters from group: Heavy Fighter (34 of 34)
|
||||||
"""
|
"""
|
||||||
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
||||||
effects, and thus this effect file contains some custom information useful only to fighters.
|
effects, and thus this effect file contains some custom information useful only to fighters.
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
# Not used by any item
|
# fighterAbilityECM
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Fighters named like: Scarab (4 of 4)
|
||||||
"""
|
"""
|
||||||
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
||||||
effects, and thus this effect file contains some custom information useful only to fighters.
|
effects, and thus this effect file contains some custom information useful only to fighters.
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
# Not used by any item
|
# fighterAbilityEnergyNeutralizer
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Fighters named like: Cenobite (4 of 4)
|
||||||
"""
|
"""
|
||||||
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
||||||
effects, and thus this effect file contains some custom information useful only to fighters.
|
effects, and thus this effect file contains some custom information useful only to fighters.
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
# Not used by any item
|
# fighterAbilityEvasiveManeuvers
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Fighters from group: Light Fighter (16 of 32)
|
||||||
"""
|
"""
|
||||||
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
||||||
effects, and thus this effect file contains some custom information useful only to fighters.
|
effects, and thus this effect file contains some custom information useful only to fighters.
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
# Not used by any item
|
# fighterAbilityLaunchBomb
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Fighters from group: Heavy Fighter (16 of 34)
|
||||||
"""
|
"""
|
||||||
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
||||||
effects, and thus this effect file contains some custom information useful only to fighters.
|
effects, and thus this effect file contains some custom information useful only to fighters.
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
# Not used by any item
|
# fighterAbilityMicroWarpDrive
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Items from category: Fighter (48 of 82)
|
||||||
"""
|
"""
|
||||||
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
||||||
effects, and thus this effect file contains some custom information useful only to fighters.
|
effects, and thus this effect file contains some custom information useful only to fighters.
|
||||||
|
|||||||
@@ -1,4 +1,8 @@
|
|||||||
# Not used by any item
|
# fighterAbilityMissiles
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Items from category: Fighter (48 of 82)
|
||||||
|
# Fighters from group: Light Fighter (32 of 32)
|
||||||
"""
|
"""
|
||||||
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
||||||
effects, and thus this effect file contains some custom information useful only to fighters.
|
effects, and thus this effect file contains some custom information useful only to fighters.
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
# Not used by any item
|
# fighterAbilityStasisWebifier
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Fighters named like: Dromi (4 of 4)
|
||||||
"""
|
"""
|
||||||
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
||||||
effects, and thus this effect file contains some custom information useful only to fighters.
|
effects, and thus this effect file contains some custom information useful only to fighters.
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
# Not used by any item
|
# fighterAbilityWarpDisruption
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Fighters named like: Siren (4 of 4)
|
||||||
"""
|
"""
|
||||||
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
||||||
effects, and thus this effect file contains some custom information useful only to fighters.
|
effects, and thus this effect file contains some custom information useful only to fighters.
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
# Not used by any item
|
|
||||||
type = "passive"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, module, context):
|
|
||||||
# Note: we increase maxGroupActive by two.
|
|
||||||
# If we only increased it by one, we'd get the number to stay equal
|
|
||||||
# As Comman Processors use one themselves too
|
|
||||||
fit.modules.filteredItemIncrease(lambda mod: mod.item.group.name == "Gang Coordinator" and
|
|
||||||
"maxGroupActive" in mod.itemModifiedAttributes,
|
|
||||||
"maxGroupActive", 1)
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
# fueledArmorRepair
|
# fueledArmorRepair
|
||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Modules from group: Ancillary Armor Repairer (4 of 4)
|
# Modules from group: Ancillary Armor Repairer (7 of 7)
|
||||||
runTime = "late"
|
runTime = "late"
|
||||||
type = "active"
|
type = "active"
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# fueledShieldBoosting
|
# fueledShieldBoosting
|
||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Modules from group: Ancillary Shield Booster (5 of 5)
|
# Modules from group: Ancillary Shield Booster (8 of 8)
|
||||||
runTime = "late"
|
runTime = "late"
|
||||||
type = "active"
|
type = "active"
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
# Not used by any item
|
|
||||||
type = "passive"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, ship, context):
|
|
||||||
fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Ice Harvesting"),
|
|
||||||
"capacitorNeed", ship.getModifiedItemAttr("iceHarvestCycleBonus"))
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
# Not used by any item
|
|
||||||
type = "gang"
|
|
||||||
gangBoost = "maxTargetRange"
|
|
||||||
gangBonus = "maxTargetRangeBonus"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, container, context):
|
|
||||||
fit.ship.boostItemAttr(gangBoost, container.getModifiedItemAttr(gangBonus))
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
# Not used by any item
|
|
||||||
type = "passive"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, implant, context):
|
|
||||||
fit.character.getSkill("Information Command").suppress()
|
|
||||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command Specialist"),
|
|
||||||
"commandBonusHidden", implant.getModifiedItemAttr("mindlinkBonus"))
|
|
||||||
11
eos/effects/largedisintegratorskilldmgbonus.py
Normal file
11
eos/effects/largedisintegratorskilldmgbonus.py
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# largeDisintegratorSkillDmgBonus
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Skill: Large Disintegrator Specialization
|
||||||
|
type = "passive"
|
||||||
|
|
||||||
|
|
||||||
|
def handler(fit, container, context):
|
||||||
|
level = container.level if "skill" in context else 1
|
||||||
|
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Disintegrator Specialization"),
|
||||||
|
"damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level)
|
||||||
11
eos/effects/largeprecursorturretdmgbonusrequiredskill.py
Normal file
11
eos/effects/largeprecursorturretdmgbonusrequiredskill.py
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# largePrecursorTurretDmgBonusRequiredSkill
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Skill: Large Precursor Weapon
|
||||||
|
type = "passive"
|
||||||
|
|
||||||
|
|
||||||
|
def handler(fit, container, context):
|
||||||
|
level = container.level if "skill" in context else 1
|
||||||
|
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Precursor Weapon"),
|
||||||
|
"damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level)
|
||||||
@@ -1,4 +1,7 @@
|
|||||||
# Not used by any item
|
# lightningWeapon
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Structure Module: Standup Arcing Vorton Projector I
|
||||||
type = 'active'
|
type = 'active'
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,52 +0,0 @@
|
|||||||
# Not used by any item
|
|
||||||
type = "active"
|
|
||||||
runTime = "early"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, module, context):
|
|
||||||
# Resistances
|
|
||||||
for layer, attrPrefix in (('shield', 'shield'), ('armor', 'armor'), ('hull', '')):
|
|
||||||
for damageType in ('Kinetic', 'Thermal', 'Explosive', 'Em'):
|
|
||||||
bonus = "%s%sDamageResonance" % (attrPrefix, damageType)
|
|
||||||
bonus = "%s%s" % (bonus[0].lower(), bonus[1:])
|
|
||||||
booster = "%s%sDamageResonance" % (layer, damageType)
|
|
||||||
penalize = False if layer == 'hull' else True
|
|
||||||
fit.ship.multiplyItemAttr(bonus, module.getModifiedItemAttr(booster),
|
|
||||||
stackingPenalties=penalize, penaltyGroup="preMul")
|
|
||||||
|
|
||||||
# Turrets
|
|
||||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret") or
|
|
||||||
mod.item.requiresSkill("Large Hybrid Turret") or
|
|
||||||
mod.item.requiresSkill("Large Projectile Turret"),
|
|
||||||
"maxRange", module.getModifiedItemAttr("maxRangeBonus"),
|
|
||||||
stackingPenalties=True)
|
|
||||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret") or
|
|
||||||
mod.item.requiresSkill("Large Hybrid Turret") or
|
|
||||||
mod.item.requiresSkill("Large Projectile Turret"),
|
|
||||||
"falloff", module.getModifiedItemAttr("falloffBonus"),
|
|
||||||
stackingPenalties=True)
|
|
||||||
|
|
||||||
# Missiles
|
|
||||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes") or
|
|
||||||
mod.charge.requiresSkill("Cruise Missiles") or
|
|
||||||
mod.charge.requiresSkill("Heavy Missiles"),
|
|
||||||
"maxVelocity", module.getModifiedItemAttr("missileVelocityBonus"))
|
|
||||||
|
|
||||||
# Tanking
|
|
||||||
fit.modules.filteredItemBoost(
|
|
||||||
lambda mod: mod.item.requiresSkill("Capital Repair Systems") or mod.item.requiresSkill("Repair Systems"),
|
|
||||||
"armorDamageAmount", module.getModifiedItemAttr("armorDamageAmountBonus"),
|
|
||||||
stackingPenalties=True)
|
|
||||||
fit.modules.filteredItemBoost(
|
|
||||||
lambda mod: mod.item.requiresSkill("Capital Shield Operation") or mod.item.requiresSkill("Shield Operation"),
|
|
||||||
"shieldBonus", module.getModifiedItemAttr("shieldBoostMultiplier"),
|
|
||||||
stackingPenalties=True)
|
|
||||||
|
|
||||||
# Speed penalty
|
|
||||||
fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("speedFactor"))
|
|
||||||
|
|
||||||
# Max locked targets
|
|
||||||
fit.ship.forceItemAttr("maxLockedTargets", module.getModifiedItemAttr("maxLockedTargets"))
|
|
||||||
|
|
||||||
# Block Hostile ewar
|
|
||||||
fit.ship.forceItemAttr("disallowOffensiveModifiers", module.getModifiedItemAttr("disallowOffensiveModifiers"))
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
# Not used by any item
|
|
||||||
type = "passive"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, module, context):
|
|
||||||
fit.ship.increaseItemAttr("mass", module.getModifiedItemAttr("mass") or 0)
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
# Not used by any item
|
|
||||||
type = "passive"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, module, context):
|
|
||||||
fit.ship.increaseItemAttr("maxVelocity", module.getModifiedItemAttr("maxVelocity"))
|
|
||||||
11
eos/effects/mediumdisintegratorskilldmgbonus.py
Normal file
11
eos/effects/mediumdisintegratorskilldmgbonus.py
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# mediumDisintegratorSkillDmgBonus
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Skill: Medium Disintegrator Specialization
|
||||||
|
type = "passive"
|
||||||
|
|
||||||
|
|
||||||
|
def handler(fit, container, context):
|
||||||
|
level = container.level if "skill" in context else 1
|
||||||
|
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Disintegrator Specialization"),
|
||||||
|
"damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level)
|
||||||
11
eos/effects/mediumprecursorturretdmgbonusrequiredskill.py
Normal file
11
eos/effects/mediumprecursorturretdmgbonusrequiredskill.py
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# mediumPrecursorTurretDmgBonusRequiredSkill
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Skill: Medium Precursor Weapon
|
||||||
|
type = "passive"
|
||||||
|
|
||||||
|
|
||||||
|
def handler(fit, container, context):
|
||||||
|
level = container.level if "skill" in context else 1
|
||||||
|
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Precursor Weapon"),
|
||||||
|
"damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level)
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
# Not used by any item
|
|
||||||
type = "passive"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, ship, context):
|
|
||||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Director"),
|
|
||||||
"commandBonus", ship.getModifiedItemAttr("commandBonusEffective"))
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
# missileSkillWarheadUpgradesEmDamageBonus
|
# missileSkillWarheadUpgradesEmDamageBonus
|
||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Implants named like: Agency 'Pyrolancea' DB Dose (3 of 3)
|
# Implants named like: Agency 'Pyrolancea' DB Dose (3 of 4)
|
||||||
# Skill: Warhead Upgrades
|
# Skill: Warhead Upgrades
|
||||||
type = "passive"
|
type = "passive"
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# missileSkillWarheadUpgradesExplosiveDamageBonus
|
# missileSkillWarheadUpgradesExplosiveDamageBonus
|
||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Implants named like: Agency 'Pyrolancea' DB Dose (3 of 3)
|
# Implants named like: Agency 'Pyrolancea' DB Dose (3 of 4)
|
||||||
# Skill: Warhead Upgrades
|
# Skill: Warhead Upgrades
|
||||||
type = "passive"
|
type = "passive"
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# missileSkillWarheadUpgradesKineticDamageBonus
|
# missileSkillWarheadUpgradesKineticDamageBonus
|
||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Implants named like: Agency 'Pyrolancea' DB Dose (3 of 3)
|
# Implants named like: Agency 'Pyrolancea' DB Dose (3 of 4)
|
||||||
# Skill: Warhead Upgrades
|
# Skill: Warhead Upgrades
|
||||||
type = "passive"
|
type = "passive"
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# missileSkillWarheadUpgradesThermalDamageBonus
|
# missileSkillWarheadUpgradesThermalDamageBonus
|
||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Implants named like: Agency 'Pyrolancea' DB Dose (3 of 3)
|
# Implants named like: Agency 'Pyrolancea' DB Dose (3 of 4)
|
||||||
# Skill: Warhead Upgrades
|
# Skill: Warhead Upgrades
|
||||||
type = "passive"
|
type = "passive"
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
# Not used by any item
|
|
||||||
type = "passive"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, module, context):
|
|
||||||
for type in ("Em", "Explosive", "Kinetic", "Thermal"):
|
|
||||||
fit.ship.preAssignItemAttr("armor{0}DamageResonance".format(type),
|
|
||||||
module.getModifiedItemAttr("passiveArmor{0}DamageResonance".format(type)))
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
# Not used by any item
|
|
||||||
type = "passive"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, module, context):
|
|
||||||
for type in ("Em", "Explosive", "Kinetic", "Thermal"):
|
|
||||||
fit.ship.preAssignItemAttr("shield{0}DamageResonance".format(type),
|
|
||||||
module.getModifiedItemAttr("passiveShield{0}DamageResonance".format(type)))
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
# Not used by any item
|
|
||||||
runTime = "early"
|
|
||||||
type = "passive"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, module, context):
|
|
||||||
fit.ship.preAssignItemAttr("agility", module.getModifiedItemAttr("agility"))
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
# moduleBonusAfterburner
|
# moduleBonusAfterburner
|
||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Modules from group: Propulsion Module (62 of 127)
|
# Modules from group: Propulsion Module (65 of 133)
|
||||||
type = "active"
|
type = "active"
|
||||||
runTime = "late"
|
runTime = "late"
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# moduleBonusMicrowarpdrive
|
# moduleBonusMicrowarpdrive
|
||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Modules from group: Propulsion Module (65 of 127)
|
# Modules from group: Propulsion Module (68 of 133)
|
||||||
type = "active"
|
type = "active"
|
||||||
runTime = "late"
|
runTime = "late"
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Modules from group: Rig Anchor (4 of 4)
|
# Modules from group: Rig Anchor (4 of 4)
|
||||||
# Implants named like: Agency 'Overclocker' SB Dose (3 of 3)
|
# Implants named like: Agency 'Overclocker' SB Dose (3 of 4)
|
||||||
# Implants named like: grade Snake (16 of 18)
|
# Implants named like: grade Snake (16 of 18)
|
||||||
# Modules named like: Auxiliary Thrusters (8 of 8)
|
# Modules named like: Auxiliary Thrusters (8 of 8)
|
||||||
# Implant: Quafe Zero
|
# Implant: Quafe Zero
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
# nosCpuNeedBonusEffect
|
|
||||||
#
|
|
||||||
# Used by:
|
|
||||||
# Ship: Rabisu
|
|
||||||
type = "passive"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, src, context):
|
|
||||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "cpu",
|
|
||||||
src.getModifiedItemAttr("nosferatuCpuNeedBonus"))
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
# Not used by any item
|
|
||||||
type = "passive"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, src, context):
|
|
||||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"),
|
|
||||||
"falloffEffectiveness", src.getModifiedItemAttr("shipBonusORECapital3"),
|
|
||||||
skill="Capital Industrial Ships")
|
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Modules from group: Missile Launcher Torpedo (22 of 22)
|
# Modules from group: Missile Launcher Torpedo (22 of 22)
|
||||||
# Items from market group: Ship Equipment > Turrets & Bays (429 of 863)
|
# Items from market group: Ship Equipment > Turrets & Bays (429 of 881)
|
||||||
# Module: Interdiction Sphere Launcher I
|
# Module: Interdiction Sphere Launcher I
|
||||||
type = "overheat"
|
type = "overheat"
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
# overloadSelfArmorDamageAmountDurationBonus
|
# overloadSelfArmorDamageAmountDurationBonus
|
||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Modules from group: Ancillary Armor Repairer (4 of 4)
|
# Modules from group: Ancillary Armor Repairer (7 of 7)
|
||||||
# Modules from group: Armor Repair Unit (105 of 105)
|
# Modules from group: Armor Repair Unit (108 of 108)
|
||||||
type = "overheat"
|
type = "overheat"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
# Used by:
|
# Used by:
|
||||||
# Modules from group: Energy Weapon (101 of 214)
|
# Modules from group: Energy Weapon (101 of 214)
|
||||||
# Modules from group: Hybrid Weapon (105 of 221)
|
# Modules from group: Hybrid Weapon (105 of 221)
|
||||||
|
# Modules from group: Precursor Weapon (15 of 15)
|
||||||
# Modules from group: Projectile Weapon (99 of 165)
|
# Modules from group: Projectile Weapon (99 of 165)
|
||||||
type = "overheat"
|
type = "overheat"
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Modules from group: Capacitor Booster (59 of 59)
|
# Modules from group: Capacitor Booster (59 of 59)
|
||||||
# Modules from group: Energy Neutralizer (51 of 51)
|
# Modules from group: Energy Neutralizer (54 of 54)
|
||||||
# Modules from group: Energy Nosferatu (51 of 51)
|
# Modules from group: Energy Nosferatu (51 of 51)
|
||||||
# Modules from group: Hull Repair Unit (25 of 25)
|
# Modules from group: Hull Repair Unit (25 of 25)
|
||||||
# Modules from group: Remote Armor Repairer (39 of 39)
|
# Modules from group: Remote Armor Repairer (39 of 39)
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Modules from group: Stasis Grappler (7 of 7)
|
# Modules from group: Stasis Grappler (7 of 7)
|
||||||
# Modules from group: Stasis Web (18 of 18)
|
# Modules from group: Stasis Web (19 of 19)
|
||||||
# Modules from group: Warp Scrambler (52 of 53)
|
# Modules from group: Warp Scrambler (54 of 55)
|
||||||
type = "overheat"
|
type = "overheat"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
# overloadSelfShieldBonusDurationBonus
|
# overloadSelfShieldBonusDurationBonus
|
||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Modules from group: Ancillary Shield Booster (5 of 5)
|
# Modules from group: Ancillary Shield Booster (8 of 8)
|
||||||
# Modules from group: Shield Booster (93 of 93)
|
# Modules from group: Shield Booster (97 of 97)
|
||||||
type = "overheat"
|
type = "overheat"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# overloadSelfSpeedBonus
|
# overloadSelfSpeedBonus
|
||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Modules from group: Propulsion Module (127 of 127)
|
# Modules from group: Propulsion Module (133 of 133)
|
||||||
type = "overheat"
|
type = "overheat"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
# Not used by any item
|
# pointDefense
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Structure Modules from group: Structure Area Denial Module (2 of 2)
|
||||||
type = 'active'
|
type = 'active'
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
# Modules from group: Capacitor Power Relay (20 of 20)
|
# Modules from group: Capacitor Power Relay (20 of 20)
|
||||||
# Modules from group: Power Diagnostic System (23 of 23)
|
# Modules from group: Power Diagnostic System (23 of 23)
|
||||||
# Modules from group: Reactor Control Unit (22 of 22)
|
# Modules from group: Reactor Control Unit (22 of 22)
|
||||||
|
# Variations of structure module: Standup Reactor Control Unit I (2 of 2)
|
||||||
type = "passive"
|
type = "passive"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
# probeLauncherCPUPercentBonusTacticalDestroyer
|
|
||||||
#
|
|
||||||
# Used by:
|
|
||||||
# Ships from group: Tactical Destroyer (4 of 4)
|
|
||||||
type = "passive"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, ship, context):
|
|
||||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Astrometrics"),
|
|
||||||
"cpu", ship.getModifiedItemAttr("roleBonusT3ProbeCPU"))
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
# Not used by any item
|
|
||||||
type = "passive"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, module, context):
|
|
||||||
fit.ship.increaseItemAttr("rechargeRate", module.getModifiedItemAttr("rechargeRate"))
|
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Modules from group: ECM (39 of 39)
|
# Modules from group: ECM (39 of 39)
|
||||||
|
# Starbases from group: Electronic Warfare Battery (12 of 12)
|
||||||
from eos.modifiedAttributeDict import ModifiedAttributeDict
|
from eos.modifiedAttributeDict import ModifiedAttributeDict
|
||||||
|
|
||||||
type = "projected", "active"
|
type = "projected", "active"
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
# Not used by any item
|
|
||||||
type = "projected", "active"
|
|
||||||
runTime = "late"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, module, context):
|
|
||||||
if "projected" not in context:
|
|
||||||
return
|
|
||||||
bonus = module.getModifiedItemAttr("structureDamageAmount")
|
|
||||||
duration = module.getModifiedItemAttr("duration") / 1000.0
|
|
||||||
fit.extraAttributes.increase("hullRepair", bonus / duration)
|
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Modules from group: Sensor Dampener (6 of 6)
|
# Modules from group: Sensor Dampener (6 of 6)
|
||||||
|
# Starbases from group: Sensor Dampening Battery (3 of 3)
|
||||||
type = "projected", "active"
|
type = "projected", "active"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
#
|
#
|
||||||
# Used by:
|
# Used by:
|
||||||
# Modules from group: Stasis Grappler (7 of 7)
|
# Modules from group: Stasis Grappler (7 of 7)
|
||||||
# Modules from group: Stasis Web (18 of 18)
|
# Modules from group: Stasis Web (19 of 19)
|
||||||
|
# Starbases from group: Stasis Webification Battery (3 of 3)
|
||||||
type = "active", "projected"
|
type = "active", "projected"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
# Not used by any item
|
|
||||||
type = "passive"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, skill, context):
|
|
||||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill(skill),
|
|
||||||
"drawback", skill.getModifiedItemAttr("rigDrawbackBonus") * skill.level)
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
# Not used by any item
|
|
||||||
type = "passive"
|
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, module, context):
|
|
||||||
fit.ship.increaseItemAttr("scanResolution", module.getModifiedItemAttr("scanResolution"))
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user