示例#1
0
        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)
示例#2
0
        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)
示例#3
0
文件: __init__.py 项目: jnowaczek/eos
# 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)
示例#4
0

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)
示例#5
0
#
# 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)
示例#6
0
文件: web.py 项目: jnowaczek/eos
# 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)
示例#7
0
#
# 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)
示例#8
0
#
# 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)