public PlanetoidModel( ObjectTunables settings, ObjectStateManager stateManager, PlanetoidInstaller.PlanetoidTunables tunables, Rigidbody2D rigidbody, PointEffector2D effector, [Inject(Id = "EffectorCollider")] CircleCollider2D effectorCollider, [Inject(Id = "SpriteCollider")] CircleCollider2D spriteCollider, [Inject(Id = "EffectorSprite")] Transform effectorTransform, PlanetoidFacade facade) : base(settings, stateManager) { Rigidbody = rigidbody; GameObject = rigidbody.gameObject; PointEffector = effector; EffectorCollider = effectorCollider; _tunables = tunables; SpriteCollider = spriteCollider; EffectorSpriteTransform = effectorTransform; Facade = facade; var exp = new CurveTestScript { direction = RandomFromDistribution.Direction_e.Left, skew = 100f }; var scale = exp.GetRandomNumber(1, tunables.RadiusMax); SpriteCollider.transform.localScale = Vector3.one * scale; Rigidbody.mass = Mathf.PI * scale * scale; PointEffector.forceMagnitude = -1 * _tunables.EffectorForceScale * Rigidbody.mass * Rigidbody.mass; EffectorCollider.radius = scale * scale * scale * _tunables.EffectorRadiusScale; EffectorSpriteTransform.localScale = Vector2.one * EffectorCollider.radius * 2; Rigidbody.velocity = Vector2.zero; }
public void DespawnPlanetoid(PlanetoidFacade which) { _pool.Despawn(which); }