// 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; } }
// 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); }