// Token: 0x060038A4 RID: 14500 RVA: 0x00101A38 File Offset: 0x000FFC38 private CombatActor SearchHitTarget(Fix64 x0, Fix64 x1, ushort hitId) { if (!BJLuaObjHelper.IsSkipLuaHotfix && this.TryInitHotFix("") && this.m_SearchHitTargetFix64Fix64UInt16_hotfix != null) { return((CombatActor)this.m_SearchHitTargetFix64Fix64UInt16_hotfix.call(new object[] { this, x0, x1, hitId })); } BJLuaObjHelper.IsSkipLuaHotfix = false; CombatTeam team = this.Combat.GetTeam(this.m_targetTeamNumber); int num = int.MaxValue; CombatActor result = null; int num2 = (int)((long)(x0 + x1)) / 2; int num3 = Math.Abs((int)((long)(x0 - x1)) / 2) + this.m_configDataFlyObjectInfo.CollisionRadius; if (!this.m_team.IsAttackHeroOnly()) { foreach (CombatActor combatActor in team.GetActors()) { if (combatActor.CanBeTarget()) { if (Math.Abs((int)((long)combatActor.Position.x) - num2) <= num3 + combatActor.Radius) { if (!combatActor.HasBeHitId(hitId)) { int num4 = CombatFlyObject.ComputeTargetScore(x1, combatActor); if (num4 < num) { num = num4; result = combatActor; } } } } } return(result); } CombatActor hero = team.GetHero(); if (hero != null && hero.CanBeTarget() && Math.Abs((int)((long)hero.Position.x) - num2) <= num3 + hero.Radius) { return(hero); } return(null); }
// Token: 0x060038A5 RID: 14501 RVA: 0x00101C34 File Offset: 0x000FFE34 public override void Tick() { if (!BJLuaObjHelper.IsSkipLuaHotfix && this.TryInitHotFix("") && this.m_Tick_hotfix != null) { this.m_Tick_hotfix.call(new object[] { this }); return; } BJLuaObjHelper.IsSkipLuaHotfix = false; this.m_life++; this.m_frameCount++; if (this.m_life <= this.m_lifeMax) { if (this.m_configDataFlyObjectInfo.TrackType == TrackType.TrackType_Parabolic) { CombatActor targetActor = this.m_targetActor; Fix64 value = MathUtility.Lerp(this.m_startPosition.x, this.m_endPosition.x, (Fix64)((long)this.m_life) / (Fix64)((long)this.m_lifeMax)); int num = this.m_configDataFlyObjectInfo.CollisionRadius + targetActor.Radius; if (((this.m_endPosition.x >= this.m_startPosition.x && (int)((long)value) >= (int)((long)targetActor.Position.x) - num) || (this.m_endPosition.x < this.m_startPosition.x && (int)((long)value) <= (int)((long)targetActor.Position.x) + num)) && targetActor.CanBeTarget()) { this.Attack(this.m_targetActor); this.m_targetActor.AddBeHitId(this.m_hitId); this.m_sourceSkillState.m_hitCount++; base.DeleteMe(); } } else { Fix64 x = MathUtility.Lerp(this.m_startPosition.x, this.m_endPosition.x, (Fix64)((long)(this.m_life - 1)) / (Fix64)((long)this.m_lifeMax)); Fix64 x2 = MathUtility.Lerp(this.m_startPosition.x, this.m_endPosition.x, (Fix64)((long)this.m_life) / (Fix64)((long)this.m_lifeMax)); this.AddSkillDelayHits(this.m_sourceSkillState, x, x2); this.TickDelayHits(); } } else if (this.HasDelayHit()) { this.TickDelayHits(); if (this.m_fx != null) { this.m_fx.FxStop(true); this.m_fx = null; } } else { base.DeleteMe(); } }