public virtual void OnRealHitTarget(CreatureHitCollider target, AttackInfo a) { ++m_targetCount; if (m_targetCount == 1) { creature.DispatchEvent(CreatureEvents.FIRST_HIT, Event_.Pop(target.creature)); } if (!a || a.targetLimit < 1 || m_targetCount < a.targetLimit) { return; } _Clear(); if (m_currentSnapshot > -1) { m_snapShots[m_currentSnapshot].Set(m_attackBox, m_hitEff, m_forward); } }
public void OnHit(CreatureHitCollider hit) { FightRecordManager.RecordLog <LogEmpty>(log => { log.tag = (byte)TagType.FlyEffectOnHit; }); if (destroyed || !hit && m_groundHited) { return; } if (!hit) { m_groundHited = true; } if (!effectInfo.hitEffect.isEmpty) { Create(effectInfo.hitEffect, source, startForward ? 1 : -1, inverted, hitEffect, position_, eular_, m_root.eulerAngles); } if (effectInfo.removeOnHit == 1 || effectInfo.removeOnHit == 2 && !hit) { FightRecordManager.RecordLog <LogEffectDestoryOnHit>(l => { l.tag = (byte)TagType.FlyEffectOnHit; l.name = name; l.removeOnHit = effectInfo.removeOnHit; }); Destroy(); } #if AI_LOG Module_AI.LogBattleMsg(source, "flying effect[logId: {0}] OnHit,hit creature is {1} with effect pos = {2}, collider pos = {3} ", logId, hit == null ? "null" : hit.creature ? hit.creature.uiName : "null", position_, m_collider == null ? "null" : m_collider.position.ToString()); #endif }
public override void OnRealHitTarget(CreatureHitCollider target, AttackInfo a) { base.OnRealHitTarget(target, a); effect.OnHit(target); }