示例#1
0
    /// <summary>
    /// 技能免疫
    /// </summary>
    protected override ImmuneSkill GetSkillImmune()
    {
        if (Gstatus == null)
        {
            return(ImmuneSkill.Normal);
        }
        //无敌状态
        if (Gstatus.HaveState(StatusType.Invincible) == true)
        {
            return(ImmuneSkill.Invincible);
        }
        //击飞状态
        if (Gstatus.HaveState(StatusType.ClickFly) == true)
        {
            return(ImmuneSkill.Invincible);
        }
        //虚化状态
        if (Gstatus.HaveState(StatusType.Virtual) == true)
        {
            return(ImmuneSkill.PhySkill);
        }
        //物理免疫
        if (Gstatus.HaveState(StatusType.ImmunePhysical) == true)
        {
            return(ImmuneSkill.PhySkill);
        }
        //魔法免疫
        if (Gstatus.HaveState(StatusType.ImmunityMagic) == true)
        {
            return(ImmuneSkill.MagicSkill);
        }

        return(ImmuneSkill.Normal);
    }
示例#2
0
    /// <summary>
    /// 移动
    /// </summary>
    protected override bool GetCanMove()
    {
        if (Gstatus == null)
        {
            return(true);
        }

        //眩晕状态
        if (Gstatus.HaveState(StatusType.Vertigo) == true)
        {
            return(false);
        }
        //击飞状态
        if (Gstatus.HaveState(StatusType.ClickFly))
        {
            return(false);
        }

        //静止状态
        if (Gstatus.HaveState(StatusType.Still))
        {
            return(false);
        }

        //束缚状态
        if (Gstatus.HaveState(StatusType.Trapped) == true)
        {
            return(false);
        }

        return(true);
    }
示例#3
0
 /// <summary>
 /// 获取满怒气
 /// </summary>
 protected override int GetFullAnger()
 {
     if (Gstatus != null)
     {
         return(ConfigM.GetAngerK(1) + Gstatus.GetAttrData(EffectType.Anger));
     }
     return(ConfigM.GetAngerK(1));
 }
示例#4
0
    /// <summary>
    /// 获取闪避调整系数
    /// </summary>
    protected override int GetDodgeRatio()
    {
        int ret = m_DodgeRatio;

        if (Gstatus != null)
        {
            ret += Gstatus.GetAttrData(EffectType.Hit) / MapGrid.m_Pixel;
        }
        return(ret);
    }
示例#5
0
    /// <summary>
    /// 获取攻击速度
    /// </summary>
    protected override float GetAttackSpeed()
    {
        float speed = 1f;

        if (Gstatus != null)
        {
            speed = (1 + Gstatus.GetAttrData(EffectType.AttackTime) * 0.01f);
        }
        return(speed < 0.1f?0.1f:speed);
    }
示例#6
0
    /// <summary>
    /// 获取移动速度
    /// </summary>
    protected override float GetSpeedercent()
    {
        float speed = 1f;

        if (Gstatus != null)
        {
            speed = (1 + Gstatus.GetAttrData(EffectType.MoveSpeed) * 0.01f);
        }
        return(speed < 0.1f?0.1f:speed);
    }
示例#7
0
    /// <summary>
    /// 合成属性数据
    /// </summary>
    public override int GetAttrData(EffectType Type)
    {
        int ret = GetBaseAttrData(Type);

        if (Gstatus != null && Type != EffectType.RecoHp && Type != EffectType.RecoAnger)
        {
            ret += Gstatus.GetAttrData(Type);
        }

        return(ret);
    }
示例#8
0
    /// <summary>
    /// 获取能否触发陷阱房间
    /// </summary>
    protected override bool GetTriggerTrapBuilding()
    {
        if (Gstatus == null)
        {
            return(true);
        }
        //眩晕状态
        if (Gstatus.HaveState(StatusType.Invisible) == true)
        {
            return(false);
        }
        //击飞状态
        if (Gstatus.HaveState(StatusType.ClickFly) == true)
        {
            return(false);
        }

        return(true);
    }
示例#9
0
    /// <summary>
    /// 移动
    /// </summary>
    protected override bool GetCanAttack()
    {
        if (Gstatus == null)
        {
            return(true);
        }

        //眩晕状态
        if (Gstatus.HaveState(StatusType.Vertigo) == true)
        {
            return(false);
        }
        //击飞状态
        if (Gstatus.HaveState(StatusType.ClickFly))
        {
            return(false);
        }

        return(true);
    }
示例#10
0
    /// <summary>
    /// 合成属性数据
    /// </summary>
    public override int GetAttrData(EffectType Type)
    {
        int ret = GetBaseAttrData(Type);

        if (Gstatus != null && Type != EffectType.RecoHp && Type != EffectType.RecoAnger)
        {
            ret += Gstatus.GetAttrData(Type);
        }

        List <Life> lifeList = new List <Life>();

        /*  Life skillTarget = m_Parent.m_Skill.PropSkillInfo.m_target;*/
        //LifeMCamp camp = skillTarget.m_Core.m_Camp;
        //遍历同一阵营
        CM.SearchLifeMListInBoat(ref lifeList, LifeMType.SOLDIER | LifeMType.SUMMONPET, LifeMCamp.ALL);
        foreach (Life life in lifeList)
        {
            ret += life.m_Skill.GetAuraAffector(Type, m_Parent, Camp);
        }
        return(ret);
    }
示例#11
0
    /// <summary>
    /// 技能释放方式
    /// </summary>
    protected override ReleaseType GetReleaseType()
    {
        if (Gstatus == null)
        {
            return(ReleaseType.Normal);
        }
        //眩晕状态
        if (Gstatus.HaveState(StatusType.Vertigo) == true)
        {
            return(ReleaseType.NoALL);
        }
        //击飞状态
        if (Gstatus.HaveState(StatusType.ClickFly))
        {
            return(ReleaseType.NoALL);
        }
        //变形状态
        if (Gstatus.HaveState(StatusType.Transfiguration))
        {
            return(ReleaseType.NoALL);
        }
        //沉默状态
        if (Gstatus.HaveState(StatusType.Silence))
        {
            return(ReleaseType.NoMagic);
        }
        //束缚状态
        if (Gstatus.HaveState(StatusType.Trapped))
        {
            return(ReleaseType.NoAttack);
        }
        //击退状态
        if (Gstatus.HaveState(StatusType.KickedBack))
        {
            return(ReleaseType.NoALL);
        }

        return(ReleaseType.Normal);
    }
示例#12
0
 /// <summary>
 /// 获取是否隐形
 /// </summary>
 protected override bool GetHide()
 {
     return(Gstatus.HaveState(StatusType.Invisible));
 }