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 MoverCircle(ActAnnular obj, Character target, HitCallbackFly onTriggerEnter, Vector3 rotatePoint, Transform rotateTrans) : base(obj, target, onTriggerEnter) { this.m_rotatePoint = rotatePoint; this.m_rotateTrans = rotateTrans; this.m_Annular = obj; }
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 MoverFly(ActFlyObj obj, Character target, HitCallbackFly onTriggerEnter) { this.Target = target; this.mMoveSpeed = obj.MoveSpeed; this.mMoveStartSpeed = obj.MoveSpeed; this.mMoveSpeedCurve = GetCurve(obj.MoveSpeedCurve); this.mMoveStartTime = Time.time; this.Load(obj, onTriggerEnter); }
public void Load(ActFlyObj obj, HitCallbackFly hitCallback) { mFlyObj = obj; if (obj.World) { Transform p = obj.Skill.Caster.Avatar.GetBindTransform(obj.CasterBind); mUnit = GTWorld.Instance.Ect.LoadEffect(obj.ID, 0, obj.Retain); mUnit.CacheTransform.parent = p; mUnit.CacheTransform.localPosition = obj.Offset; mUnit.CacheTransform.localEulerAngles = obj.Euler; mUnit.CacheTransform.parent = null; mUnit.CacheTransform.localScale = obj.Scale; mUnit.CacheTransform.localEulerAngles = obj.Euler + obj.Skill.Caster.Euler; } else { Transform p = obj.Skill.Caster.Avatar.GetBindTransform(obj.CasterBind); mUnit = GTWorld.Instance.Ect.LoadEffect(obj.ID, 0, GTTransform.Create(obj.Offset, obj.Euler, obj.Scale), p, obj.Retain); } mUnit.TriggerEnter = (other) => { hitCallback(this, other); }; mIsLoaded = true; CacheTransform = mUnit.CacheTransform; }
public MoverChaseParabol(ActMissile obj, Character target, HitCallbackFly onTriggerEnter) : base(obj, target, onTriggerEnter) { }
public MoverFlyWeaponBind(ActFlyWeaponBind obj, Character target, HitCallbackFly onTriggerEnter) : base(obj, target, onTriggerEnter) { }
public void MakeMove(ActFlyWeaponBind obj, Character target, HitCallbackFly onTriggerEnter) { MoverFlyWeaponBind mover = new MoverFlyWeaponBind(obj, target, onTriggerEnter); mMovers.Add(mover); }
public void MakeMove(ActAnnular obj, Character target, HitCallbackFly onTriggerEnter, Vector3 rotatePoint, Transform rotateTrans) { MoverCircle mover = new MoverCircle(obj, target, onTriggerEnter, rotatePoint, rotateTrans); mMovers.Add(mover); }
public MoverFixDirection(ActMissile obj, Character target, HitCallbackFly onTriggerEnter) : base(obj, target, onTriggerEnter) { }