diff --git a/eos/effects/aoebeaconbioluminescencecloud.py b/eos/effects/aoebeaconbioluminescencecloud.py new file mode 100644 index 000000000..708ce8925 --- /dev/null +++ b/eos/effects/aoebeaconbioluminescencecloud.py @@ -0,0 +1,13 @@ +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') + diff --git a/eos/effects/aoebeaconcausticcloud.py b/eos/effects/aoebeaconcausticcloud.py new file mode 100644 index 000000000..708ce8925 --- /dev/null +++ b/eos/effects/aoebeaconcausticcloud.py @@ -0,0 +1,13 @@ +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') + diff --git a/eos/effects/aoebeaconfilamentcloud.py b/eos/effects/aoebeaconfilamentcloud.py new file mode 100644 index 000000000..708ce8925 --- /dev/null +++ b/eos/effects/aoebeaconfilamentcloud.py @@ -0,0 +1,13 @@ +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') + diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index 19a8dd479..21f42ca52 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -672,6 +672,29 @@ class Fit(object): groups = ("Energy Weapon", "Hybrid Weapon") self.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, "maxRange", value, stackingPenalties=True) + # Localized environment effects + + if warfareBuffID == 79: # AOE_Beacon_bioluminescence_cloud + self.ship.boostItemAttr("signatureRadius", value, stackingPenalties=True) + + if warfareBuffID == 80: # AOE_Beacon_caustic_cloud_local_repair + self.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), + "armorDamageAmount", value, stackingPenalties=True) + + if warfareBuffID == 81: # AOE_Beacon_caustic_cloud_remote_repair + self.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), + "armorDamageAmount", value, stackingPenalties=True) + + if warfareBuffID == 88: # AOE_Beacon_filament_cloud_shield_booster + self.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation") or + mod.item.requiresSkill("Shield Emission Systems"), + "capacitorNeed", value, stackingPenalties=True) + + if warfareBuffID == 89: # AOE_Beacon_filament_cloud_ancillary_charge_usage + self.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation") or + mod.item.requiresSkill("Shield Emission Systems"), + "chargeRate", value, stackingPenalties=True) + # Abysmal Weather Effects if warfareBuffID == 90: # Weather_electric_storm_EM_resistance_penalty diff --git a/eve.db b/eve.db index b6de58bcf..c0ab25798 100644 Binary files a/eve.db and b/eve.db differ diff --git a/service/market.py b/service/market.py index e5b588e2a..733076e52 100644 --- a/service/market.py +++ b/service/market.py @@ -821,6 +821,7 @@ class Market(object): grp = self.getGroup("Effect Beacon") grp2 = self.getGroup("MassiveEnvironments") grp3 = self.getGroup("Non-Interactable Object") + grp4 = self.getGroup("Uninteractable Localized Effect Beacon") # Cycle through them for beacon in self.getItemsByGroup(grp): @@ -851,8 +852,17 @@ class Market(object): # Break loop on 1st result break - effects["Non-Interactable"] = set() + effects["Weather"] = set() for beacon in grp3.items: - effects["Non-Interactable"].add((beacon, beacon.name, beacon.name)) + if "weather" in beacon.name: + effects["Weather"].add((beacon, beacon.name, beacon.name)) + + for beacon in grp2.items: + if "weather" in beacon.name: + effects["Weather"].add((beacon, beacon.name, beacon.name)) + + effects["Localized"] = set() + for beacon in grp4.items: + effects["Localized"].add((beacon, beacon.name, beacon.name)) return effects