aoe_velocity_modifier = DogmaModifier( 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, 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, 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, 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.reg_cust_class_by_id( ShipModuleGundanceDisruptor, EffectId.ship_module_guidance_disruptor)
Effect.__init__(self, *args, **kwargs) 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, 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, 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, affector_attr_id=AttrId.tracking_speed_bonus) self.modifiers = ( *self.modifiers, max_range_modifier, falloff_modifier, tracking_speed_modifier) EffectFactory.reg_cust_class_by_id( ShipModuleTrackingDisruptor, EffectId.ship_module_tracking_disruptor)
# 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.reg_cust_class_by_id(DoomsdayDirect, EffectId.super_weapon_amarr) EffectFactory.reg_cust_class_by_id(DoomsdayDirect, EffectId.super_weapon_caldari) EffectFactory.reg_cust_class_by_id(DoomsdayDirect, EffectId.super_weapon_gallente) EffectFactory.reg_cust_class_by_id(DoomsdayDirect, EffectId.super_weapon_minmatar)
class UseMissiles(DmgDealerEffect): def get_cycles_until_reload(self, item): return get_cycles_until_reload_generic(item) 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.reg_cust_class_by_id(UseMissiles, EffectId.use_missiles)
# # 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.reg_cust_class_by_id(EmpWave, EffectId.emp_wave)
# 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.eos import ModDomain from eos.const.eos import ModOperator from eos.const.eos import ModAffecteeFilter 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_resistance, **kwargs) modifier = DogmaModifier(affectee_filter=ModAffecteeFilter.item, affectee_domain=ModDomain.target, affectee_attr_id=AttrId.max_velocity, operator=ModOperator.post_percent, affector_attr_id=AttrId.speed_factor) self.modifiers = (*self.modifiers, modifier) EffectFactory.reg_cust_class_by_id(RemoteWebifierFalloff, EffectId.remote_webifier_falloff)
# # 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_attack import TargetAttack EffectFactory.reg_cust_class_by_id( ProjectileFired, EffectId.projectile_fired) EffectFactory.reg_cust_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 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.reg_cust_class_by_id(FighterAbilityAttackM, EffectId.fighter_ability_attack_m) EffectFactory.reg_cust_class_by_id(FighterAbilityKamikaze, EffectId.fighter_ability_kamikaze) EffectFactory.reg_cust_class_by_id(FighterAbilityLaunchBomb, EffectId.fighter_ability_launch_bomb) EffectFactory.reg_cust_class_by_id(FighterAbilityMissiles, EffectId.fighter_ability_missiles)