public void AddSlotPiece(TankPiece piece) { tankSlot.Piece = piece; piece.CancelGravity(); piece.colliderInProps.enabled = false; piece.rigidbody.bodyType = RigidbodyType2D.Kinematic; piece.transform.SetParent(transform); piece.transform.localPosition = Vector3.zero; piece.transform.localScale = Vector3.one; piece.transform.localRotation = Quaternion.identity; tankSlot.IsFilled = true; }
public void DestroySlot() { if (tankSlot.Piece != null) { TankPiece piece = tankSlot.Piece; piece.EnableGravity(); piece.colliderInProps.enabled = true; piece.rigidbody.bodyType = RigidbodyType2D.Dynamic; var rndX = Random.Range(0.8f, 1f); var rndY = Random.Range(0.8f, 1f); Vector3 variatingDirection = new Vector3(piece.team == Team.Blue ? rndX * -1 : rndX, rndY); piece.ThrowProp(variatingDirection, null); tankSlot.Piece = null; tankSlot.IsFilled = false; } }
private void ExecuteAddPiece(PlayerController playerController) { TankPiece piece = playerController.holdingProp as TankPiece; for (int i = 0; i < tankController.TankSlots.Count; i++) { var slot = tankController.TankSlots[i]; if (slot.Id == piece.Id && team == piece.team) { TankSlotsGraphics[i].AddSlotPiece(piece); playerController.holdingProp = null; } } if (tankController.isRepaired) { canShoot = true; } SoundManager.Instance.StopSFX("sfx_tank_repair"); }