public void AddMotionControler(SpecialMotionControler _controler) { if (this.motionControlers.get_Count() <= 3) { this.motionControlers.Add(_controler); } }
public void Move(int _deltaTime) { int motionDeltaDistance = 0; if (this.Movement.isFlying) { VInt3 location; if (this.motionControlers.Count != 0) { for (int i = 0; i < this.motionControlers.Count; i++) { SpecialMotionControler controler = this.motionControlers[i]; motionDeltaDistance += controler.GetMotionDeltaDistance(_deltaTime); } location = this.Movement.actor.location; location.y += motionDeltaDistance; if (this.Movement.actor.groundY.i > location.y) { location.y = this.Movement.actor.groundY.i; this.Movement.actor.location = location; } else { this.Movement.actor.location = location; } } else { location = this.Movement.actor.location; if (this.Movement.actor.groundY.i == this.Movement.actor.location.y) { this.Movement.isFlying = false; this.gravityControler.ResetTime(); } else if (this.Movement.actor.groundY.i > this.Movement.actor.location.y) { location.y = this.Movement.actor.groundY.i; this.Movement.actor.location = location; this.Movement.isFlying = false; this.gravityControler.ResetTime(); } else { motionDeltaDistance = this.gravityControler.GetMotionDeltaDistance(_deltaTime); location.y += motionDeltaDistance; if (this.Movement.actor.groundY.i > location.y) { location.y = this.Movement.actor.groundY.i; this.Movement.actor.location = location; this.Movement.isFlying = false; this.gravityControler.ResetTime(); } else { this.Movement.actor.location = location; } } } } }
public void GravityMoveLerp(int _deltaTime, bool bReset) { int motionLerpDistance = 0; Vector3 zero = Vector3.zero; SpecialMotionControler controler = null; if (this.Movement != null) { VInt num2; if (this.motionControlers.Count != 0) { this.Movement.isLerpFlying = true; zero = this.Movement.actor.gameObject.transform.position; PathfindingUtility.GetGroundY((VInt3)zero, out num2); for (int i = 0; i < this.motionControlers.Count; i++) { controler = this.motionControlers[i]; motionLerpDistance += controler.GetMotionLerpDistance(_deltaTime); } zero.y += ((float)motionLerpDistance) / 1000f; if (((float)num2) > zero.y) { zero.y = (float)num2; this.Movement.actor.gameObject.transform.position = zero; } else { this.Movement.actor.gameObject.transform.position = zero; } } else if (this.Movement.isLerpFlying) { zero = this.Movement.actor.gameObject.transform.position; PathfindingUtility.GetGroundY((VInt3)zero, out num2); if (((float)num2) >= zero.y) { zero.y = (float)num2; this.Movement.actor.gameObject.transform.position = zero; this.Movement.isLerpFlying = false; this.gravityControler.ResetLerpTime(); } else { motionLerpDistance = this.gravityControler.GetMotionLerpDistance(_deltaTime); zero.y += ((float)motionLerpDistance) / 1000f; if (((float)num2) > zero.y) { zero.y = (float)num2; this.Movement.actor.gameObject.transform.position = zero; this.Movement.isLerpFlying = false; this.gravityControler.ResetLerpTime(); } else { this.Movement.actor.gameObject.transform.position = zero; } } } } }
public void GravityMoveLerp(int _deltaTime, bool bReset) { int num = 0; Vector3 position = Vector3.zero; if (this.Movement == null || this.Movement.actor.ActorControl.GetNoAbilityFlag(ObjAbilityType.ObjAbility_Freeze)) { return; } if (this.motionControlers.get_Count() != 0) { this.Movement.isLerpFlying = true; position = this.Movement.actor.myTransform.position; VInt vInt; PathfindingUtility.GetGroundY(this.Movement.actor.location, out vInt); for (int i = 0; i < this.motionControlers.get_Count(); i++) { SpecialMotionControler specialMotionControler = this.motionControlers.get_Item(i); num += specialMotionControler.GetMotionLerpDistance(_deltaTime); } position.y += (float)num / 1000f; if ((float)vInt > position.y) { position.y = (float)vInt; this.Movement.actor.myTransform.position = position; } else { this.Movement.actor.myTransform.position = position; } } else if (this.Movement.isLerpFlying) { position = this.Movement.actor.myTransform.position; VInt vInt; PathfindingUtility.GetGroundY(this.Movement.actor.location, out vInt); if ((float)vInt >= position.y) { position.y = (float)vInt; this.Movement.actor.myTransform.position = position; this.Movement.isLerpFlying = false; this.gravityControler.ResetLerpTime(); } else { num = this.gravityControler.GetMotionLerpDistance(_deltaTime); position.y += (float)num / 1000f; if ((float)vInt > position.y) { position.y = (float)vInt; this.Movement.actor.myTransform.position = position; this.Movement.isLerpFlying = false; this.gravityControler.ResetLerpTime(); } else { this.Movement.actor.myTransform.position = position; } } } }
public void RemoveMotionControler(SpecialMotionControler _controler) { this.motionControlers.Remove(_controler); }
public void Move(int _deltaTime) { int num = 0; if (!this.Movement.isFlying || this.Movement.actor.ActorControl.GetNoAbilityFlag(ObjAbilityType.ObjAbility_Freeze)) { return; } if (this.motionControlers.get_Count() != 0) { for (int i = 0; i < this.motionControlers.get_Count(); i++) { SpecialMotionControler specialMotionControler = this.motionControlers.get_Item(i); num += specialMotionControler.GetMotionDeltaDistance(_deltaTime); } VInt3 location = this.Movement.actor.location; location.y += num; if (this.Movement.actor.groundY.i > location.y) { location.y = this.Movement.actor.groundY.i; this.Movement.actor.location = location; } else { this.Movement.actor.location = location; } } else { VInt3 location = this.Movement.actor.location; if (this.Movement.actor.groundY.i == this.Movement.actor.location.y) { this.Movement.isFlying = false; this.gravityControler.ResetTime(); return; } if (this.Movement.actor.groundY.i > this.Movement.actor.location.y) { location.y = this.Movement.actor.groundY.i; this.Movement.actor.location = location; this.Movement.isFlying = false; this.gravityControler.ResetTime(); } else { num = this.gravityControler.GetMotionDeltaDistance(_deltaTime); location.y += num; if (this.Movement.actor.groundY.i > location.y) { location.y = this.Movement.actor.groundY.i; this.Movement.actor.location = location; this.Movement.isFlying = false; this.gravityControler.ResetTime(); } else { this.Movement.actor.location = location; } } } }