# Copyright (C) 2011-2018 Anton Vorobyov # # This file is part of Eos. # # Eos is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from .base import WarfareBuffEffect class ModuleBonusWarfareLinkMining(WarfareBuffEffect): friendly_only = True EffectFactory.register_class_by_id(ModuleBonusWarfareLinkMining, EffectId.module_bonus_warfare_link_mining)
# Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import AttrId from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from .base import RemoteArmorRepairEffect class ShipModuleRemoteArmorMutadaptiveRepairer(RemoteArmorRepairEffect): def get_rep_amount(self, item): rep_amount = item.attrs.get(AttrId.armor_dmg_amount, 0) try: spoolup_mult = 1 + item.attrs[AttrId.repair_mult_bonus_max] except KeyError: spoolup_mult = 1 return rep_amount * spoolup_mult EffectFactory.register_class_by_id( ShipModuleRemoteArmorMutadaptiveRepairer, EffectId.ship_module_remote_armor_mutadaptive_repairer)
# Copyright (C) 2011-2018 Anton Vorobyov # # This file is part of Eos. # # Eos is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from .base import WarfareBuffEffect class ModuleBonusWarfareLinkInfo(WarfareBuffEffect): friendly_only = True EffectFactory.register_class_by_id(ModuleBonusWarfareLinkInfo, EffectId.module_bonus_warfare_link_info)
# Eos is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import AttrId from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from .base import BaseNeutEffect class EnergyNeutralizerFalloff(BaseNeutEffect): def get_neut_amount(self, item): return item.attrs.get(AttrId.energy_neutralizer_amount, 0) EffectFactory.register_class_by_id( EnergyNeutralizerFalloff, EffectId.energy_neutralizer_falloff)
# the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import AttrId from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from eos.eve_obj.effect.helper_func import get_cycles_until_reload_generic from .base import RemoteArmorRepairEffect class ShipModuleAncillaryRemoteArmorRepairer(RemoteArmorRepairEffect): def get_cycles_until_reload(self, item): return get_cycles_until_reload_generic(item) def get_rep_amount(self, item): return item.attrs.get(AttrId.armor_dmg_amount, 0) EffectFactory.register_class_by_id( ShipModuleAncillaryRemoteArmorRepairer, EffectId.ship_module_ancillary_remote_armor_repairer)
# This file is part of Eos. # # Eos is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import AttrId from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from .base import BaseCapTransmitEffect class ShipModuleRemoteCapacitorTransmitter(BaseCapTransmitEffect): def get_cap_transmit_amount(self, item): return item.attrs.get(AttrId.power_transfer_amount, 0) EffectFactory.register_class_by_id( ShipModuleRemoteCapacitorTransmitter, EffectId.ship_module_remote_capacitor_transmitter)
# This file is part of Eos. # # Eos is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from .base import WarfareBuffEffect class ModuleBonusWarfareLinkSkirmish(WarfareBuffEffect): friendly_only = True EffectFactory.register_class_by_id( ModuleBonusWarfareLinkSkirmish, EffectId.module_bonus_warfare_link_skirmish)
# but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== import math from eos.const.eve import AttrId from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from eos.eve_obj.effect.helper_func import get_cycles_until_reload_generic from .base import RemoteShieldRepairEffect class ShipModuleAncillaryRemoteShieldBooster(RemoteShieldRepairEffect): def get_cycles_until_reload(self, item): return get_cycles_until_reload_generic(item, default=math.inf) def get_rep_amount(self, item): return item.attrs.get(AttrId.shield_bonus, 0) EffectFactory.register_class_by_id( ShipModuleAncillaryRemoteShieldBooster, EffectId.ship_module_ancillary_remote_shield_booster)
# Copyright (C) 2011-2018 Anton Vorobyov # # This file is part of Eos. # # Eos is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from .chain_lightning import ChainLightning from .projectile_fired import ProjectileFired from .target_disintegrator_attack import TargetDisintegratorAttack from .target_attack import TargetAttack EffectFactory.register_class_by_id(ChainLightning, EffectId.chain_lightning) EffectFactory.register_class_by_id(ProjectileFired, EffectId.projectile_fired) EffectFactory.register_class_by_id(TargetDisintegratorAttack, EffectId.target_disintegrator_attack) EffectFactory.register_class_by_id(TargetAttack, EffectId.target_attack)
# Copyright (C) 2011-2018 Anton Vorobyov # # This file is part of Eos. # # Eos is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import AttrId from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from .base import LocalShieldRepairEffect class ShieldBoosting(LocalShieldRepairEffect): def get_rep_amount(self, item): return item.attrs.get(AttrId.shield_bonus, 0) EffectFactory.register_class_by_id(ShieldBoosting, EffectId.shield_boosting)
# # Eos is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from .attack_m import FighterAbilityAttackM from .kamikaze import FighterAbilityKamikaze from .launch_bomb import FighterAbilityLaunchBomb from .missiles import FighterAbilityMissiles EffectFactory.register_class_by_id(FighterAbilityAttackM, EffectId.fighter_ability_attack_m) EffectFactory.register_class_by_id(FighterAbilityKamikaze, EffectId.fighter_ability_kamikaze) EffectFactory.register_class_by_id(FighterAbilityLaunchBomb, EffectId.fighter_ability_launch_bomb) EffectFactory.register_class_by_id(FighterAbilityMissiles, EffectId.fighter_ability_missiles)
affectee_filter=ModAffecteeFilter.owner_skillrq, affectee_domain=ModDomain.target, affectee_filter_extra_arg=TypeId.missile_launcher_operation, affectee_attr_id=AttrId.aoe_velocity, operator=ModOperator.post_percent, aggregate_mode=ModAggregateMode.stack, affector_attr_id=AttrId.aoe_velocity_bonus) max_velocity_modifier = DogmaModifier( affectee_filter=ModAffecteeFilter.owner_skillrq, affectee_domain=ModDomain.target, affectee_filter_extra_arg=TypeId.missile_launcher_operation, affectee_attr_id=AttrId.max_velocity, operator=ModOperator.post_percent, aggregate_mode=ModAggregateMode.stack, affector_attr_id=AttrId.missile_velocity_bonus) explosion_delay_modifier = DogmaModifier( affectee_filter=ModAffecteeFilter.owner_skillrq, affectee_domain=ModDomain.target, affectee_filter_extra_arg=TypeId.missile_launcher_operation, affectee_attr_id=AttrId.explosion_delay, operator=ModOperator.post_percent, aggregate_mode=ModAggregateMode.stack, affector_attr_id=AttrId.explosion_delay_bonus) self.modifiers = (*self.modifiers, aoe_cloud_size_modifier, aoe_velocity_modifier, max_velocity_modifier, explosion_delay_modifier) EffectFactory.register_class_by_id(ShipModuleGundanceDisruptor, EffectId.ship_module_guidance_disruptor)
# Eos is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import AttrId from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from .base import BaseCapTransmitEffect class ShipModuleRemoteCapacitorTransmitter(BaseCapTransmitEffect): def get_cap_transmit_amount(self, item): return item.attrs.get(AttrId.power_transfer_amount, 0) EffectFactory.register_class_by_id( ShipModuleRemoteCapacitorTransmitter, EffectId.ship_module_remote_capacitor_transmitter)
# # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import AttrId from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from eos.stats_container import DmgStats from .base import DmgDealerEffect class EmpWave(DmgDealerEffect): def get_volley(self, item): em = item.attrs.get(AttrId.em_dmg, 0) therm = item.attrs.get(AttrId.therm_dmg, 0) kin = item.attrs.get(AttrId.kin_dmg, 0) expl = item.attrs.get(AttrId.expl_dmg, 0) return DmgStats(em, therm, kin, expl) def get_applied_volley(self, item, tgt_data): raise NotImplementedError EffectFactory.register_class_by_id(EmpWave, EffectId.emp_wave)
def get_volley(self, item): if not self.get_cycles_until_reload(item): return DmgStats(0, 0, 0, 0) # If module can cycle until reload, it means we can assume that there's # a charge loaded charge = self.get_charge(item) charge_defeff_id = charge._type_default_effect_id if ( charge_defeff_id is None or charge_defeff_id not in charge._running_effect_ids or charge_defeff_id not in ( EffectId.missile_launching, EffectId.fof_missile_launching, EffectId.bomb_launching) ): return DmgStats(0, 0, 0, 0) em = charge.attrs.get(AttrId.em_dmg, 0) therm = charge.attrs.get(AttrId.therm_dmg, 0) kin = charge.attrs.get(AttrId.kin_dmg, 0) expl = charge.attrs.get(AttrId.expl_dmg, 0) return DmgStats(em, therm, kin, expl) def get_applied_volley(self, item, tgt_data): raise NotImplementedError EffectFactory.register_class_by_id( UseMissiles, EffectId.use_missiles)
# GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import AttrId from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from eos.stats_container import DmgStats from .base import DmgDealerEffect class EmpWave(DmgDealerEffect): def get_volley(self, item): em = item.attrs.get(AttrId.em_dmg, 0) therm = item.attrs.get(AttrId.therm_dmg, 0) kin = item.attrs.get(AttrId.kin_dmg, 0) expl = item.attrs.get(AttrId.expl_dmg, 0) return DmgStats(em, therm, kin, expl) def get_applied_volley(self, item, tgt_data): raise NotImplementedError EffectFactory.register_class_by_id( EmpWave, EffectId.emp_wave)
# the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from .direct_dmg import DoomsdayDirect EffectFactory.register_class_by_id( DoomsdayDirect, EffectId.super_weapon_amarr) EffectFactory.register_class_by_id( DoomsdayDirect, EffectId.super_weapon_caldari) EffectFactory.register_class_by_id( DoomsdayDirect, EffectId.super_weapon_gallente) EffectFactory.register_class_by_id( DoomsdayDirect, EffectId.super_weapon_minmatar)
# (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== import math from eos.const.eve import AttrId from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from eos.eve_obj.effect.helper_func import get_cycles_until_reload_generic from .base import LocalShieldRepairEffect class FueledShieldBoosting(LocalShieldRepairEffect): def get_cycles_until_reload(self, item): return get_cycles_until_reload_generic(item, default=math.inf) def get_rep_amount(self, item): return item.attrs.get(AttrId.shield_bonus, 0) EffectFactory.register_class_by_id(FueledShieldBoosting, EffectId.fueled_shield_boosting)
# # This file is part of Eos. # # Eos is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import AttrId from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from .base import RemoteArmorRepairEffect class NpcEntityRemoteArmorRepairer(RemoteArmorRepairEffect): def get_rep_amount(self, item): return item.attrs.get(AttrId.armor_dmg_amount, 0) EffectFactory.register_class_by_id(NpcEntityRemoteArmorRepairer, EffectId.npc_entity_remote_armor_repairer)
# Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from .attack_m import FighterAbilityAttackM from .kamikaze import FighterAbilityKamikaze from .launch_bomb import FighterAbilityLaunchBomb from .missiles import FighterAbilityMissiles EffectFactory.register_class_by_id( FighterAbilityAttackM, EffectId.fighter_ability_attack_m) EffectFactory.register_class_by_id( FighterAbilityKamikaze, EffectId.fighter_ability_kamikaze) EffectFactory.register_class_by_id( FighterAbilityLaunchBomb, EffectId.fighter_ability_launch_bomb) EffectFactory.register_class_by_id( FighterAbilityMissiles, EffectId.fighter_ability_missiles)
# ============================================================================== from eos.const.eos import ModAffecteeFilter from eos.const.eos import ModAggregateMode from eos.const.eos import ModDomain from eos.const.eos import ModOperator from eos.const.eve import AttrId from eos.const.eve import EffectId from eos.eve_obj.effect import Effect from eos.eve_obj.effect import EffectFactory from eos.eve_obj.modifier import DogmaModifier class RemoteWebifierFalloff(Effect): def __init__(self, *args, resist_attr_id=None, **kwargs): Effect.__init__(self, *args, resist_attr_id=AttrId.stasis_webifier_resist, **kwargs) modifier = DogmaModifier(affectee_filter=ModAffecteeFilter.item, affectee_domain=ModDomain.target, affectee_attr_id=AttrId.max_velocity, operator=ModOperator.post_percent, aggregate_mode=ModAggregateMode.stack, affector_attr_id=AttrId.speed_factor) self.modifiers = (*self.modifiers, modifier) EffectFactory.register_class_by_id(RemoteWebifierFalloff, EffectId.remote_webifier_falloff)
affectee_domain=ModDomain.target, affectee_filter_extra_arg=TypeId.gunnery, affectee_attr_id=AttrId.max_range, operator=ModOperator.post_percent, aggregate_mode=ModAggregateMode.stack, affector_attr_id=AttrId.max_range_bonus) falloff_modifier = DogmaModifier( affectee_filter=ModAffecteeFilter.domain_skillrq, affectee_domain=ModDomain.target, affectee_filter_extra_arg=TypeId.gunnery, affectee_attr_id=AttrId.falloff, operator=ModOperator.post_percent, aggregate_mode=ModAggregateMode.stack, affector_attr_id=AttrId.falloff_bonus) tracking_speed_modifier = DogmaModifier( affectee_filter=ModAffecteeFilter.domain_skillrq, affectee_domain=ModDomain.target, affectee_filter_extra_arg=TypeId.gunnery, affectee_attr_id=AttrId.tracking_speed, operator=ModOperator.post_percent, aggregate_mode=ModAggregateMode.stack, affector_attr_id=AttrId.tracking_speed_bonus) self.modifiers = ( *self.modifiers, max_range_modifier, falloff_modifier, tracking_speed_modifier) EffectFactory.register_class_by_id( ShipModuleTrackingDisruptor, EffectId.ship_module_tracking_disruptor)
max_range_modifier = DogmaModifier( affectee_filter=ModAffecteeFilter.domain_skillrq, affectee_domain=ModDomain.target, affectee_filter_extra_arg=TypeId.gunnery, affectee_attr_id=AttrId.max_range, operator=ModOperator.post_percent, aggregate_mode=ModAggregateMode.stack, affector_attr_id=AttrId.max_range_bonus) falloff_modifier = DogmaModifier( affectee_filter=ModAffecteeFilter.domain_skillrq, affectee_domain=ModDomain.target, affectee_filter_extra_arg=TypeId.gunnery, affectee_attr_id=AttrId.falloff, operator=ModOperator.post_percent, aggregate_mode=ModAggregateMode.stack, affector_attr_id=AttrId.falloff_bonus) tracking_speed_modifier = DogmaModifier( affectee_filter=ModAffecteeFilter.domain_skillrq, affectee_domain=ModDomain.target, affectee_filter_extra_arg=TypeId.gunnery, affectee_attr_id=AttrId.tracking_speed, operator=ModOperator.post_percent, aggregate_mode=ModAggregateMode.stack, affector_attr_id=AttrId.tracking_speed_bonus) self.modifiers = (*self.modifiers, max_range_modifier, falloff_modifier, tracking_speed_modifier) EffectFactory.register_class_by_id(ShipModuleTrackingDisruptor, EffectId.ship_module_tracking_disruptor)
# # Eos is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import AttrId from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from .base import BaseNeutEffect class EnergyNosferatuFalloff(BaseNeutEffect): def get_neut_amount(self, item): if item.attrs.get(AttrId.nos_override, 0): return item.attrs.get(AttrId.power_transfer_amount, 0) return 0 EffectFactory.register_class_by_id(EnergyNosferatuFalloff, EffectId.energy_nosferatu_falloff)
# Copyright (C) 2011-2018 Anton Vorobyov # # This file is part of Eos. # # Eos is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import AttrId from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from .base import LocalArmorRepairEffect class ArmorRepair(LocalArmorRepairEffect): def get_rep_amount(self, item): return item.attrs.get(AttrId.armor_dmg_amount, 0) EffectFactory.register_class_by_id(ArmorRepair, EffectId.armor_repair)
from eos.const.eos import ModAffecteeFilter from eos.const.eos import ModAggregateMode from eos.const.eos import ModDomain from eos.const.eos import ModOperator from eos.const.eve import AttrId from eos.const.eve import EffectId from eos.eve_obj.effect import Effect from eos.eve_obj.effect import EffectFactory from eos.eve_obj.modifier import DogmaModifier class RemoteWebifierFalloff(Effect): def __init__(self, *args, resist_attr_id=None, **kwargs): Effect.__init__( self, *args, resist_attr_id=AttrId.stasis_webifier_resist, **kwargs) modifier = DogmaModifier( affectee_filter=ModAffecteeFilter.item, affectee_domain=ModDomain.target, affectee_attr_id=AttrId.max_velocity, operator=ModOperator.post_percent, aggregate_mode=ModAggregateMode.stack, affector_attr_id=AttrId.speed_factor) self.modifiers = (*self.modifiers, modifier) EffectFactory.register_class_by_id( RemoteWebifierFalloff, EffectId.remote_webifier_falloff)
# Eos is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import AttrId from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from .base import RemoteShieldRepairEffect class NpcEntityRemoteShieldBooster(RemoteShieldRepairEffect): def get_rep_amount(self, item): return item.attrs.get(AttrId.shield_bonus, 0) EffectFactory.register_class_by_id( NpcEntityRemoteShieldBooster, EffectId.npc_entity_remote_shield_booster)
# Copyright (C) 2011 Diego Duclos # Copyright (C) 2011-2018 Anton Vorobyov # # This file is part of Eos. # # Eos is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from .direct_dmg import DoomsdayDirect EffectFactory.register_class_by_id(DoomsdayDirect, EffectId.super_weapon_amarr) EffectFactory.register_class_by_id(DoomsdayDirect, EffectId.super_weapon_caldari) EffectFactory.register_class_by_id(DoomsdayDirect, EffectId.super_weapon_gallente) EffectFactory.register_class_by_id(DoomsdayDirect, EffectId.super_weapon_minmatar)
# it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import AttrId from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from eos.eve_obj.effect.helper_func import get_cycles_until_reload_generic from .base import LocalArmorRepairEffect class FueledArmorRepair(LocalArmorRepairEffect): def get_cycles_until_reload(self, item): return get_cycles_until_reload_generic(item) def get_rep_amount(self, item): return item.attrs.get(AttrId.armor_dmg_amount, 0) EffectFactory.register_class_by_id(FueledArmorRepair, EffectId.fueled_armor_repair)
# ============================================================================== # Copyright (C) 2011 Diego Duclos # Copyright (C) 2011-2018 Anton Vorobyov # # This file is part of Eos. # # Eos is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from .projectile_fired import ProjectileFired from .target_abc_attack import TargetABCAttack from .target_attack import TargetAttack EffectFactory.register_class_by_id(ProjectileFired, EffectId.projectile_fired) EffectFactory.register_class_by_id(TargetABCAttack, EffectId.target_abc_attack) EffectFactory.register_class_by_id(TargetAttack, EffectId.target_attack)
# # This file is part of Eos. # # Eos is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import AttrId from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from .base import RemoteShieldRepairEffect class NpcEntityRemoteShieldBooster(RemoteShieldRepairEffect): def get_rep_amount(self, item): return item.attrs.get(AttrId.shield_bonus, 0) EffectFactory.register_class_by_id(NpcEntityRemoteShieldBooster, EffectId.npc_entity_remote_shield_booster)
from eos.const.eos import ModAffecteeFilter from eos.const.eos import ModAggregateMode from eos.const.eos import ModDomain from eos.const.eos import ModOperator from eos.const.eve import AttrId from eos.const.eve import EffectId from eos.eve_obj.effect import Effect from eos.eve_obj.effect import EffectFactory from eos.eve_obj.modifier import DogmaModifier class RemoteSensorDampFalloff(Effect): def __init__(self, *args, resist_attr_id=None, **kwargs): Effect.__init__( self, *args, resist_attr_id=AttrId.sensor_dampener_resist, **kwargs) modifier = DogmaModifier( affectee_filter=ModAffecteeFilter.item, affectee_domain=ModDomain.target, affectee_attr_id=AttrId.max_target_range, operator=ModOperator.post_percent, aggregate_mode=ModAggregateMode.stack, affector_attr_id=AttrId.max_target_range_bonus) self.modifiers = (*self.modifiers, modifier) EffectFactory.register_class_by_id( RemoteSensorDampFalloff, EffectId.remote_sensor_damp_falloff)
# Eos is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import AttrId from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from .base import RemoteArmorRepairEffect class ShipModuleRemoteArmorRepairer(RemoteArmorRepairEffect): def get_rep_amount(self, item): return item.attrs.get(AttrId.armor_dmg_amount, 0) EffectFactory.register_class_by_id( ShipModuleRemoteArmorRepairer, EffectId.ship_module_remote_armor_repairer)
# Eos is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import AttrId from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from .base import LocalArmorRepairEffect class ArmorRepair(LocalArmorRepairEffect): def get_rep_amount(self, item): return item.attrs.get(AttrId.armor_dmg_amount, 0) EffectFactory.register_class_by_id( ArmorRepair, EffectId.armor_repair)
# it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from .projectile_fired import ProjectileFired from .target_abc_attack import TargetABCAttack from .target_attack import TargetAttack EffectFactory.register_class_by_id( ProjectileFired, EffectId.projectile_fired) EffectFactory.register_class_by_id( TargetABCAttack, EffectId.target_abc_attack) EffectFactory.register_class_by_id( TargetAttack, EffectId.target_attack)
# Eos is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import AttrId from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from .base import RemoteArmorRepairEffect class NpcEntityRemoteArmorRepairer(RemoteArmorRepairEffect): def get_rep_amount(self, item): return item.attrs.get(AttrId.armor_dmg_amount, 0) EffectFactory.register_class_by_id( NpcEntityRemoteArmorRepairer, EffectId.npc_entity_remote_armor_repairer)
# the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import AttrId from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from .base import BaseNeutEffect class EnergyNosferatuFalloff(BaseNeutEffect): def get_neut_amount(self, item): if item.attrs.get(AttrId.nos_override, 0): return item.attrs.get(AttrId.power_transfer_amount, 0) return 0 EffectFactory.register_class_by_id( EnergyNosferatuFalloff, EffectId.energy_nosferatu_falloff)
# Copyright (C) 2011-2018 Anton Vorobyov # # This file is part of Eos. # # Eos is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from .base import WarfareBuffEffect class ModuleBonusWarfareLinkArmor(WarfareBuffEffect): friendly_only = True EffectFactory.register_class_by_id(ModuleBonusWarfareLinkArmor, EffectId.module_bonus_warfare_link_armor)
# Copyright (C) 2011-2018 Anton Vorobyov # # This file is part of Eos. # # Eos is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from .base import WarfareBuffEffect class ModuleBonusWarfareLinkShield(WarfareBuffEffect): friendly_only = True EffectFactory.register_class_by_id(ModuleBonusWarfareLinkShield, EffectId.module_bonus_warfare_link_shield)
# # This file is part of Eos. # # Eos is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import AttrId from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from .base import BaseNeutEffect class EntityEnergyNeutralizerFalloff(BaseNeutEffect): def get_neut_amount(self, item): return item.attrs.get(AttrId.energy_neutralizer_amount, 0) EffectFactory.register_class_by_id(EntityEnergyNeutralizerFalloff, EffectId.entity_energy_neutralizer_falloff)
# Eos is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Eos is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Eos. If not, see <http://www.gnu.org/licenses/>. # ============================================================================== from eos.const.eve import AttrId from eos.const.eve import EffectId from eos.eve_obj.effect import EffectFactory from .base import LocalShieldRepairEffect class ShieldBoosting(LocalShieldRepairEffect): def get_rep_amount(self, item): return item.attrs.get(AttrId.shield_bonus, 0) EffectFactory.register_class_by_id( ShieldBoosting, EffectId.shield_boosting)