Example #1
0
        // Token: 0x060038A6 RID: 14502 RVA: 0x00101EBC File Offset: 0x001000BC
        private void AddSkillDelayHits(CombatSkillState ss, Fix64 x0, Fix64 x1)
        {
            if (!BJLuaObjHelper.IsSkipLuaHotfix && this.TryInitHotFix("") && this.m_AddSkillDelayHitsCombatSkillStateFix64Fix64_hotfix != null)
            {
                this.m_AddSkillDelayHitsCombatSkillStateFix64Fix64_hotfix.call(new object[]
                {
                    this,
                    ss,
                    x0,
                    x1
                });
                return;
            }
            BJLuaObjHelper.IsSkipLuaHotfix = false;
            int num  = 0;
            int num2 = 0;
            int num3 = this.GetDelayHitFrameMax() - this.m_frameCount;

            if (num3 >= 0 && ss.m_skillInfo.Time_MultiHit.Count > 0)
            {
                num  = Combat.FrameToMillisecond(num3) + ss.m_skillInfo.Time_MultiHit[0];
                num2 = 1;
            }
            while (ss.m_preAttackHitCount < ss.m_skillInfo.HitCountMax)
            {
                CombatActor combatActor = this.SearchHitTarget(x0, x1, this.m_hitId);
                if (combatActor != null)
                {
                    bool isCritical = ss.IsCritical(combatActor.IsHero());
                    do
                    {
                        this.AddDelayHit(combatActor, num);
                        this.m_sourceActor.PreAttack(combatActor, ss.m_skillInfo, isCritical);
                        if (ss.m_skillInfo.Time_MultiHit.Count > 0)
                        {
                            num += ss.m_skillInfo.Time_MultiHit[num2 % ss.m_skillInfo.Time_MultiHit.Count];
                            num2++;
                        }
                        ss.m_preAttackHitCount++;
                        if (combatActor.GetPreAttackHealthPoint() <= 0 && !combatActor.IsHero())
                        {
                            break;
                        }
                    }while (ss.m_preAttackHitCount < ss.m_skillInfo.HitCountMax);
IL_190:
                    combatActor.AddBeHitId(this.m_hitId);
                    continue;
                    goto IL_190;
                }
                break;
            }
        }
Example #2
0
        // Token: 0x060038A7 RID: 14503 RVA: 0x00102088 File Offset: 0x00100288
        private bool Attack(CombatActor target)
        {
            if (!BJLuaObjHelper.IsSkipLuaHotfix && this.TryInitHotFix("") && this.m_AttackCombatActor_hotfix != null)
            {
                return(Convert.ToBoolean(this.m_AttackCombatActor_hotfix.call(new object[]
                {
                    this,
                    target
                })));
            }
            BJLuaObjHelper.IsSkipLuaHotfix = false;
            if (target == null)
            {
                return(false);
            }
            bool isCritical = this.m_sourceSkillState.IsCritical(target.IsHero());

            target.AttackBy(this.m_sourceActor, this.m_sourceSkillState.m_skillInfo, isCritical);
            return(true);
        }