// Token: 0x06003895 RID: 14485 RVA: 0x00100E68 File Offset: 0x000FF068
		public void AddDelayHit(int frame, Vector2i pos, CombatActor target)
		{
			if (!BJLuaObjHelper.IsSkipLuaHotfix && this.TryInitHotFix("") && this.m_AddDelayHitInt32Vector2iCombatActor_hotfix != null)
			{
				this.m_AddDelayHitInt32Vector2iCombatActor_hotfix.call(new object[]
				{
					this,
					frame,
					pos,
					target
				});
				return;
			}
			BJLuaObjHelper.IsSkipLuaHotfix = false;
			if (this.m_hitCount >= this.m_skillInfo.HitCountMax)
			{
				return;
			}
			int index = 0;
			for (int i = this.m_delayHits.Count - 1; i >= 0; i--)
			{
				if (this.m_delayHits[i].m_frame <= frame)
				{
					index = i + 1;
					break;
				}
			}
			DelayHit item = default(DelayHit);
			item.m_frame = frame;
			item.m_position = pos;
			item.m_targetActor = target;
			this.m_delayHits.Insert(index, item);
		}
示例#2
0
        // Token: 0x060038A8 RID: 14504 RVA: 0x00102138 File Offset: 0x00100338
        private void AddDelayHit(CombatActor target, int delay)
        {
            if (!BJLuaObjHelper.IsSkipLuaHotfix && this.TryInitHotFix("") && this.m_AddDelayHitCombatActorInt32_hotfix != null)
            {
                this.m_AddDelayHitCombatActorInt32_hotfix.call(new object[]
                {
                    this,
                    target,
                    delay
                });
                return;
            }
            BJLuaObjHelper.IsSkipLuaHotfix = false;
            if (target == null)
            {
                return;
            }
            if (this.m_delayHits == null)
            {
                this.m_delayHits = new List <DelayHit>();
            }
            int num   = this.m_frameCount + Combat.MillisecondToFrame(delay);
            int index = 0;

            for (int i = this.m_delayHits.Count - 1; i >= 0; i--)
            {
                if (this.m_delayHits[i].m_frame <= num)
                {
                    index = i + 1;
                    break;
                }
            }
            DelayHit item = default(DelayHit);

            item.m_frame       = num;
            item.m_targetActor = target;
            this.m_delayHits.Insert(index, item);
            this.m_sourceActor.SetCanStopFrame(delay + this.Combat.ConfigDataLoader.Const_DamagePostDelay);
        }
示例#3
0
        // Token: 0x060038AB RID: 14507 RVA: 0x001023A0 File Offset: 0x001005A0
        private void TickDelayHits()
        {
            if (!BJLuaObjHelper.IsSkipLuaHotfix && this.TryInitHotFix("") && this.m_TickDelayHits_hotfix != null)
            {
                this.m_TickDelayHits_hotfix.call(new object[]
                {
                    this
                });
                return;
            }
            BJLuaObjHelper.IsSkipLuaHotfix = false;
            if (this.m_delayHits == null || this.m_delayHits.Count <= 0)
            {
                return;
            }
            DelayHit delayHit = this.m_delayHits[0];

            while (delayHit.m_frame <= this.m_frameCount)
            {
                if (this.Attack(delayHit.m_targetActor))
                {
                    this.m_sourceSkillState.m_hitCount++;
                    if (this.m_sourceSkillState.m_hitCount >= this.m_sourceSkillState.m_skillInfo.HitCountMax)
                    {
                        this.m_delayHits.Clear();
                        base.DeleteMe();
                        break;
                    }
                }
                this.m_delayHits.RemoveAt(0);
                if (this.m_delayHits.Count <= 0)
                {
                    break;
                }
                delayHit = this.m_delayHits[0];
            }
        }