public void MakeMove(ActMissile obj, Character target, HitCallbackFly onTriggerEnter) { MoverBase mover = null; switch (obj.MoveType) { case EMoveType.TYPE_FIXDIRECTION: mover = new MoverFixDirection(obj, target, onTriggerEnter); break; case EMoveType.TYPE_FIXPOSITION: mover = new MoverFixPosition(obj, target, onTriggerEnter); break; case EMoveType.TYPE_CHASE: mover = new MoverChase(obj, target, onTriggerEnter); break; case EMoveType.TYPE_CHASEPARABOL: mover = new MoverChaseParabol(obj, target, onTriggerEnter); break; } if (mover != null) { mMovers.Add(mover); } }
public MoverFixPosition(ActMissile obj, Character target, HitCallbackFly onTriggerEnter) : base(obj, target, onTriggerEnter) { this.m_HAngle = obj.MoveHAngle; this.m_VAngle = obj.MoveVAngle; this.m_DestPosition = target != null?target.Avatar.GetBindPosition(EBind.Body) : CacheTransform.position + CacheTransform.forward * 10; this.m_DistanceToTarget = GTTools.GetHorizontalDistance(CacheTransform.position, m_DestPosition); }
public MoverChaseParabol(ActMissile obj, Character target, HitCallbackFly onTriggerEnter) : base(obj, target, onTriggerEnter) { }
public MoverFixDirection(ActMissile obj, Character target, HitCallbackFly onTriggerEnter) : base(obj, target, onTriggerEnter) { }