コード例 #1
0
ファイル: CharHandler.cs プロジェクト: ConstTeam/HeroProject
        private void _ToSkill(SkillDataWhole skillDataWhole)
        {
            if (skillDataWhole.m_eSkillKind == SkillEnum.SkillKind.Soul && m_CharData.SoulSkillInvalid.Value)
            {
                HUDTextMgr.GetInst().NewText(ConfigData.GetHUDText("16"), this, HUDTextMgr.HUDTextType.BUFF);                  //"技能失效"
            }
            m_CharData.m_iCurSkillID = skillDataWhole.m_iSkillID;
            OfficialShow();

            int actionId = skillDataWhole.m_iActionID;

            if (-1 == actionId)
            {
                ExcuteSkill(0);
                Invoke("OfficialHide", 1f);
            }
            else
            {
                m_CharAnim.ToSkill(actionId);
                m_CharMove.StopAutoMove();
            }

            if (skillDataWhole.m_eSkillKind == SkillEnum.SkillKind.Soul)
            {
                HUDTextMgr.GetInst().NewText(skillDataWhole.m_sDisplayName, this, HUDTextMgr.HUDTextType.MainSkillName);
            }
            else
            {
                HUDTextMgr.GetInst().NewText(skillDataWhole.m_sDisplayName, this, HUDTextMgr.HUDTextType.NormalSkillName);
            }
        }
コード例 #2
0
ファイル: CharHandler.cs プロジェクト: ConstTeam/HeroProject
        public void ToSkillWithoutCheck(int skillId)
        {
            SkillDataWhole skillDataWhole = SkillHandler.GetInst().GetSkillDataByID(skillId);

            if (CheckMP(skillDataWhole, false))
            {
                _ToSkill(skillDataWhole);
            }
        }
コード例 #3
0
ファイル: CharHandler.cs プロジェクト: ConstTeam/HeroProject
        public void ReleaseSkill(int skillId)
        {
            if (!CheckCanDo(skillId, false))
            {
                return;
            }

            SkillDataWhole skillDataWhole = SkillHandler.GetInst().GetSkillDataByID(skillId);

            _ToSkill(skillDataWhole);
        }
コード例 #4
0
ファイル: NormalSkill.cs プロジェクト: ConstTeam/HeroProject
 private void CheckRate(SkillDataWhole skillDataWhole, CharHandler charHandler, ref List <CharHandler> targets)
 {
     for (int i = targets.Count - 1; i >= 0; --i)
     {
         float rate = BattleCalculate.ExcuteFormula(skillDataWhole.m_sEffectRate, null, charHandler, targets[i]);
         if (Random.Range(0f, 1f) > rate)
         {
             HUDTextMgr.GetInst().NewText(ConfigData.GetValue("Lan_Battle_Client", "15", "Text"), targets[i], HUDTextMgr.HUDTextType.BUFF);                       //"释放不成功"
             targets.RemoveAt(i);
         }
     }
 }
コード例 #5
0
ファイル: ISkillType.cs プロジェクト: ConstTeam/HeroProject
        protected bool CheckRate(SkillDataWhole skillDataWhole, CharHandler charHandler, CharHandler target)
        {
            float rate = BattleCalculate.ExcuteFormula(skillDataWhole.m_sEffectRate, null, charHandler, target);

            if (Random.Range(0f, 1f) > rate)
            {
                HUDTextMgr.GetInst().NewText(ConfigData.GetHUDText("15"), target, HUDTextMgr.HUDTextType.BUFF);                   //"释放不成功"

                return(false);
            }

            return(true);
        }
コード例 #6
0
ファイル: SkillDataSon.cs プロジェクト: ConstTeam/HeroProject
        public SkillDataSon(ConfigRow rowData, SkillDataWhole parent)
        {
            m_Parent   = parent;
            m_bDeliver = false;
            string sSkillType = rowData.GetValue("SkillType");

            m_eSkillType = string.Empty == sSkillType ? SkillEnum.SkillType.Property : (SkillEnum.SkillType)Enum.Parse(typeof(SkillEnum.SkillType), sSkillType);
            string[] temp = rowData.GetValue("Camp_AimType").Split('_');
            m_eAimSide     = (SkillEnum.AimSide)Enum.Parse(typeof(SkillEnum.AimSide), temp[0]);
            m_eAimSideType = (SkillEnum.AimSideType)Enum.Parse(typeof(SkillEnum.AimSideType), temp[1]);
            m_eCatchType   = rowData.GetValue("CatchType").Length > 0 ? (SkillEnum.CatchType)Enum.Parse(typeof(SkillEnum.CatchType), rowData.GetValue("CatchType")) : SkillEnum.CatchType.All;

            SetCatchScope(rowData.GetValue("CatchScope"));
            SetBuffTime(rowData.GetValue("EffectExpress"));
            SetReceptorEffect(rowData.GetValue("ReceptorEffect"));
        }
コード例 #7
0
ファイル: CharHandler.cs プロジェクト: ConstTeam/HeroProject
        public bool ToSkill(int skillId, bool bManual = false)
        {
            if (!CheckCanDo(skillId, bManual))
            {
                return(false);
            }

            SkillDataWhole skillDataWhole = SkillHandler.GetInst().GetSkillDataByID(skillId);

            if (!CheckMP(skillDataWhole, bManual))
            {
                return(false);
            }

            _ToSkill(skillDataWhole);

            return(true);
        }
コード例 #8
0
ファイル: NormalSkill.cs プロジェクト: ConstTeam/HeroProject
        protected override void Excute(CharHandler charHandler, int index = -1, int skillInstId = -1)
        {
            SkillDataWhole skillDataWhole = SkillHandler.GetInst().GetSkillDataByID(charHandler.m_CharData.m_iCurSkillID);

            if (skillDataWhole.m_eSkillKind == SkillEnum.SkillKind.Soul && charHandler.m_CharData.SoulSkillInvalid.Value)
            {
                return;
            }

            SkillDataSon       skillDataSon;
            List <CharHandler> targets;

            for (int i = 1; i <= skillDataWhole.GetSonCount(); ++i)
            {
                skillDataSon = skillDataWhole.GetSkillDataBySonID(i);
                targets      = GetTargets(charHandler, skillDataSon, index);
                OnDoSkill(skillDataSon, charHandler, targets, skillInstId);
            }
        }
コード例 #9
0
ファイル: CharHandler.cs プロジェクト: ConstTeam/HeroProject
        private bool CheckMP(SkillDataWhole skillDataWhole, bool bManual)
        {
            if (ApplicationConst.bFreeSkill && bManual)
            {
                return(true);
            }

            if (SkillEnum.SkillKind.Soul == skillDataWhole.m_eSkillKind)
            {
                if (m_CharData.CurMP >= m_CharData.MaxMP)
                {
                    m_CharData.CurMP -= skillDataWhole.m_iNeedMP;
                    return(true);
                }
                else
                {
                    return(false);
                }
            }

            return(true);
        }