/// <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); }
/// <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); }
/// <summary> /// 获取满怒气 /// </summary> protected override int GetFullAnger() { if (Gstatus != null) { return(ConfigM.GetAngerK(1) + Gstatus.GetAttrData(EffectType.Anger)); } return(ConfigM.GetAngerK(1)); }
/// <summary> /// 获取闪避调整系数 /// </summary> protected override int GetDodgeRatio() { int ret = m_DodgeRatio; if (Gstatus != null) { ret += Gstatus.GetAttrData(EffectType.Hit) / MapGrid.m_Pixel; } return(ret); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <summary> /// 获取是否隐形 /// </summary> protected override bool GetHide() { return(Gstatus.HaveState(StatusType.Invisible)); }