예제 #1
0
        //反弹伤害
        private void Rebound(float hurt, CharHandler srcHandler)
        {
            float rebound = _charHandler.m_CharData.Rebound.Value;

            hurt *= rebound;
            srcHandler.BeHit(hurt, _charHandler, null, false);
            HUDTextMgr.GetInst().NewText(string.Format(ConfigData.GetHUDText("17"), hurt), _charHandler, HUDTextMgr.HUDTextType.BUFF);                //"反弹伤害 {0:N0}"
        }
예제 #2
0
 private static void _ChangeHP(CharHandler aimCharHandler, float fValue, CharHandler charHandler, SkillData skillData)
 {
     if (fValue <= 0)
     {
         aimCharHandler.BeHit(-fValue, charHandler, skillData.m_Parent);
     }
     else
     {
         fValue = Mathf.Max(1f, fValue * (1 + aimCharHandler.m_CharData.CureUpRatio - aimCharHandler.m_CharData.CureDownRatio));
         HUDTextMgr.GetInst().NewText(string.Format("{0:N0}", fValue), aimCharHandler, HUDTextMgr.HUDTextType.AbsorbHP);
         aimCharHandler.m_CharData.CurHP += fValue;
     }
 }
예제 #3
0
        public void TapLightning()
        {
            List <CharHandler> lst = m_CharInScene.GetAllMonster();

            if (lst.Count > 0)
            {
                CharHandler monster = lst[Random.Range(0, lst.Count)];
                if (monster.m_CharData.m_eState != BattleEnum.Enum_CharState.PreBorn)
                {
                    ResourceMgr.GetInst().PopTapLightning(monster.m_ParentTrans.position);
                    monster.BeHit(10f, null);
                }
            }
        }
예제 #4
0
        private void BeHitCallback(CharHandler charHandler, CharHandler aimHandler)
        {
            float hurt;

            if (BattleEnum.Enum_CharType.Monster == charHandler.m_CharData.m_eType)
            {
                hurt = BattleCalculate.MonsterNormalHurt(charHandler.m_CharData, aimHandler.m_CharData);
            }
            else
            {
                hurt = BattleCalculate.HeroNormalHurt(charHandler.m_CharData, aimHandler.m_CharData);
            }

            hurt = ChangeProperty.RatioCoefficient(hurt, SkillEnum.SkillKind.Force, charHandler, aimHandler);
            aimHandler.BeHit(hurt, charHandler);
        }
예제 #5
0
        //吸收伤害
        private void Absorb(float hurt, CharHandler srcHandler)
        {
            float absorb = _charHandler.m_CharData.Absorb.Value;

            if (absorb < hurt)
            {
                float tmp = hurt - absorb;
                HUDTextMgr.GetInst().NewText(string.Format(ConfigData.GetHUDText("18"), absorb), _charHandler, HUDTextMgr.HUDTextType.BUFF);                  //"吸收伤害 {0:N0}"
                HUDTextMgr.GetInst().NewText((0 - tmp).ToString(), _charHandler, HUDTextMgr.HUDTextType.BUFF);

                _charHandler.m_CharTick.CancelAbsorb();
                _charHandler.BeHit(tmp, srcHandler);
            }
            else if (absorb == hurt)
            {
                HUDTextMgr.GetInst().NewText(string.Format(ConfigData.GetHUDText("18"), hurt), _charHandler, HUDTextMgr.HUDTextType.BUFF);                    //"吸收伤害 {0:N0}"
                _charHandler.m_CharTick.CancelAbsorb();
            }
            else
            {
                HUDTextMgr.GetInst().NewText(string.Format(ConfigData.GetHUDText("18"), hurt), _charHandler, HUDTextMgr.HUDTextType.BUFF);                    //"吸收伤害 {0:N0}"
            }
            _charHandler.m_CharData.Absorb.Value -= hurt;
        }