private void LoadCar() { Car car = DatabaseDataAcces.getPlayersCar(player.id); carRenderer = gameObject.GetComponent <CarRenderer>(); RenderedCar renderedCar = carRenderer.RenderCar(car, new Vector3(0, 0), false, false, null, -1, false); renderedCar.chassis.transform.localScale = new Vector3(2f, 2f); renderedCar.chassis.AddComponent <PolygonCollider2D>(); CarOnClick carOnClick = renderedCar.chassis.AddComponent <CarOnClick>(); carOnClick.garage = this; }
public void LoadCar() { if (renderedCar != null) { Destroy(renderedCar.chassis); renderedCar = null; } playerCar = DatabaseDataAcces.getPlayersCar(player.id); powerText.text = playerCar.GetCarPower() + ""; energyText.text = playerCar.GetCarEnergyLeft() + ""; healthText.text = playerCar.GetCarHealth() + ""; carRenderer = gameObject.GetComponent <CarRenderer>(); renderedCar = carRenderer.RenderCar(playerCar, new Vector3(0f, -1.5f), false, false, null, -1, false); renderedCar.chassis.transform.localScale = new Vector3(2f, 2f); if (renderedCar.attack1 != null) { RemoveItemOnClick removeItem = renderedCar.attack1.AddComponent <RemoveItemOnClick>(); removeItem.item = renderedCar.attack1; removeItem.type = 1; removeItem.modifyCar = this; renderedCar.attack1.AddComponent <PolygonCollider2D>(); } if (renderedCar.attack2 != null) { RemoveItemOnClick removeItem = renderedCar.attack2.AddComponent <RemoveItemOnClick>(); removeItem.item = renderedCar.attack2; removeItem.type = 2; removeItem.modifyCar = this; renderedCar.attack2.AddComponent <PolygonCollider2D>(); } if (renderedCar.forklift != null) { RemoveItemOnClick removeItem = renderedCar.forklift.AddComponent <RemoveItemOnClick>(); removeItem.item = renderedCar.forklift; removeItem.type = 3; removeItem.modifyCar = this; renderedCar.forklift.AddComponent <PolygonCollider2D>(); } if (renderedCar.frontWheel != null) { RemoveItemOnClick removeItem = renderedCar.frontWheel.AddComponent <RemoveItemOnClick>(); removeItem.item = renderedCar.frontWheel; removeItem.type = 4; removeItem.modifyCar = this; renderedCar.frontWheel.AddComponent <PolygonCollider2D>(); } if (renderedCar.backWheel != null) { RemoveItemOnClick removeItem = renderedCar.backWheel.AddComponent <RemoveItemOnClick>(); removeItem.item = renderedCar.backWheel; removeItem.type = 5; removeItem.modifyCar = this; renderedCar.backWheel.AddComponent <PolygonCollider2D>(); } LoadPlaces(playerCar.chassis); }
public RenderedCar RenderCar(Car car, Vector3 chassisPos, bool isGame, bool flipped, Game game, int player, bool playerControls) { GameObject chassis = null; GameObject attack1 = null; GameObject attack2 = null; GameObject forkliftObj = null; GameObject frontWheel = null; GameObject backWheel = null; Vector3[] attack1Pos = new Vector3[4]; Vector3 attack2Pos = Vector3.zero; Vector3 forkliftPos = Vector3.zero; Vector3 frontWheelPos = Vector3.zero; Vector3 backWheelPos = Vector3.zero; Vector3 anchorPos = Vector3.zero; Vector3 connectedAnchor = Vector3.zero; Vector3 bladeAnchorPos = Vector3.zero; Vector3 bladeConnectedAnchor = Vector3.zero; float speed = (flipped) ? -300f : 300f; if (car.chassis != null) { switch (car.chassis.id) { case 1: chassis = Instantiate(chassis1, chassisPos, Quaternion.identity); if (!flipped) { attack1Pos[0] = new Vector3(1.21f, -0.14f); attack1Pos[1] = new Vector3(1.21f, -0.14f); attack1Pos[2] = new Vector3(0.5f, -0.17f); attack1Pos[3] = new Vector3(1.21f, -0.14f); forkliftPos = new Vector3(-0.62f, -0.7f); anchorPos = new Vector3(1.84f, 0f); connectedAnchor = new Vector3(0.3f, -0.7f); frontWheelPos = new Vector3(0.55f, -1.24f); backWheelPos = new Vector3(-0.55f, -1.24f); bladeAnchorPos = new Vector3(-1.25f, -0.09f); bladeConnectedAnchor = new Vector3(0.585f, -0.185f); } else { attack1Pos[0] = new Vector3(-1.16f, -0.11f); attack1Pos[1] = new Vector3(-1.16f, -0.11f); attack1Pos[2] = new Vector3(-0.55f, -0.16f); attack1Pos[3] = new Vector3(-1.16f, -0.11f); forkliftPos = new Vector3(0.63f, -0.67f); anchorPos = new Vector3(-1.78f, 0f); connectedAnchor = new Vector3(-0.26f, -0.67f); frontWheelPos = new Vector3(-0.48f, -1.24f); backWheelPos = new Vector3(0.53f, -1.24f); bladeAnchorPos = new Vector3(1.35f, -0.09f); bladeConnectedAnchor = new Vector3(-0.485f, -0.155f); } break; case 2: chassis = Instantiate(chassis2, chassisPos, Quaternion.identity); if (!flipped) { attack1Pos[0] = new Vector3(1.65f, 0.3f); attack1Pos[1] = new Vector3(1.65f, 0.3f); attack1Pos[2] = new Vector3(0.97f, 0.24f); attack1Pos[3] = new Vector3(1.65f, 0.3f); forkliftPos = new Vector3(-0.29f, -0.08f); anchorPos = new Vector3(1.83f, 0f); connectedAnchor = new Vector3(0.625f, -0.08f); frontWheelPos = new Vector3(0.55f, -0.48f); backWheelPos = new Vector3(-0.91f, -0.48f); bladeAnchorPos = new Vector3(-1.29f, -0.09f); bladeConnectedAnchor = new Vector3(1.005f, 0.255f); } else { attack1Pos[0] = new Vector3(-1.61f, 0.29f); attack1Pos[1] = new Vector3(-1.61f, 0.29f); attack1Pos[2] = new Vector3(-0.99f, 0.25f); attack1Pos[3] = new Vector3(-1.61f, 0.29f); forkliftPos = new Vector3(0.27f, -0.09f); anchorPos = new Vector3(-1.8f, 0f); connectedAnchor = new Vector3(-0.63f, -0.09f); frontWheelPos = new Vector3(-0.49f, -0.48f); backWheelPos = new Vector3(0.92f, -0.48f); bladeAnchorPos = new Vector3(1.33f, -0.09f); bladeConnectedAnchor = new Vector3(-0.945f, 0.245f); } break; case 3: chassis = Instantiate(chassis3, chassisPos, Quaternion.identity); if (!flipped) { attack1Pos[0] = new Vector3(1.77f, 0.18f); attack1Pos[1] = new Vector3(1.77f, 0.18f); attack1Pos[2] = new Vector3(1.13f, 0.14f); attack1Pos[3] = new Vector3(1.77f, 0.18f); attack2Pos = new Vector3(-0.2f, 0.08f); forkliftPos = new Vector3(-0.05f, -0.1f); anchorPos = new Vector3(1.8f, 0f); connectedAnchor = new Vector3(0.85f, -0.1f); frontWheelPos = new Vector3(1.07f, -0.57f); backWheelPos = new Vector3(-0.17f, -0.57f); bladeAnchorPos = new Vector3(-1.26f, -0.11f); bladeConnectedAnchor = new Vector3(1.14f, 0.125f); } else { attack1Pos[0] = new Vector3(-1.77f, 0.23f); attack1Pos[1] = new Vector3(-1.77f, 0.23f); attack1Pos[2] = new Vector3(-1.11f, 0.18f); attack1Pos[3] = new Vector3(-1.77f, 0.23f); attack2Pos = new Vector3(0.26f, 0.1f); forkliftPos = new Vector3(0.1f, -0.15f); anchorPos = new Vector3(-1.78f, 0f); connectedAnchor = new Vector3(-0.79f, -0.15f); frontWheelPos = new Vector3(-1.03f, -0.57f); backWheelPos = new Vector3(0.2f, -0.57f); bladeAnchorPos = new Vector3(1.33f, -0.11f); bladeConnectedAnchor = new Vector3(-1.105f, 0.175f); } break; } if (flipped) { chassis.GetComponent <SpriteRenderer>().flipX = true; } if (isGame) { chassis.AddComponent <Rigidbody2D>().mass = 5; chassis.AddComponent <PolygonCollider2D>(); WallAttackDetection wallAttack = chassis.AddComponent <WallAttackDetection>(); wallAttack.game = game; wallAttack.player = player; chassis.tag = "Chassis"; } } if (car.attack1 != null) { switch (car.attack1.id) { case 7: attack1 = Instantiate(blade, new Vector3(0, 0), Quaternion.identity); attack1.transform.position = chassisPos + attack1Pos[0]; break; case 8: attack1 = Instantiate(chainsaw, new Vector3(0, 0), Quaternion.identity); attack1.transform.position = chassisPos + attack1Pos[1]; break; case 9: attack1 = Instantiate(rocket, new Vector3(0, 0), Quaternion.identity); attack1.transform.position = chassisPos + attack1Pos[2]; break; case 10: attack1 = Instantiate(stinger, new Vector3(0, 0), Quaternion.identity); attack1.transform.position = chassisPos + attack1Pos[3]; break; } attack1.transform.SetParent(chassis.transform); attack1.transform.localScale = new Vector3(0.5f, 0.5f); attack1.GetComponent <SpriteRenderer>().sortingOrder = 1; if (flipped) { attack1.GetComponent <SpriteRenderer>().flipX = true; } if (isGame) { if (car.attack1.id == 7) { HingeJoint2D joint = attack1.AddComponent <HingeJoint2D>(); joint.connectedBody = chassis.GetComponent <Rigidbody2D>(); joint.anchor = bladeAnchorPos; joint.connectedAnchor = bladeConnectedAnchor; JointMotor2D motor = joint.motor; motor.motorSpeed = 200; motor.maxMotorTorque = 50; joint.motor = motor; attack1.GetComponent <Rigidbody2D>().mass = 0.3f; } else { FixedJoint2D joint = attack1.AddComponent <FixedJoint2D>(); joint.connectedBody = chassis.GetComponent <Rigidbody2D>(); attack1.GetComponent <Rigidbody2D>().mass = 0.1f; } PolygonCollider2D polygonCollider = attack1.AddComponent <PolygonCollider2D>(); polygonCollider.isTrigger = true; if (car.attack1.id != 9) { AttackDetection attackDetection = attack1.AddComponent <AttackDetection>(); attackDetection.game = game; attackDetection.player = player; } } } if (car.frontWheel != null) { float radius = -1; switch (car.frontWheel.id) { case 4: radius = 0.73f; frontWheel = Instantiate(wheel1, new Vector3(0, 0), Quaternion.identity); break; case 5: radius = 0.61f; frontWheel = Instantiate(wheel2, new Vector3(0, 0), Quaternion.identity); break; } frontWheel.transform.SetParent(chassis.transform); frontWheel.transform.position = chassisPos + frontWheelPos; frontWheel.transform.localScale = new Vector3(0.5f, 0.5f); frontWheel.GetComponent <SpriteRenderer>().sortingOrder = 1; if (flipped) { frontWheel.GetComponent <SpriteRenderer>().flipX = true; } if (isGame) { WheelJoint2D wheelJoint2D = frontWheel.AddComponent <WheelJoint2D>(); wheelJoint2D.connectedBody = chassis.GetComponent <Rigidbody2D>(); wheelJoint2D.connectedAnchor = frontWheelPos; JointSuspension2D jointSuspension = wheelJoint2D.suspension; jointSuspension.dampingRatio = 0.9f; jointSuspension.frequency = 10; wheelJoint2D.suspension = jointSuspension; wheelJoint2D.useMotor = true; JointMotor2D motor = wheelJoint2D.motor; motor.motorSpeed = speed; wheelJoint2D.motor = motor; wheelJoint2D.useMotor = !playerControls; CircleCollider2D circleCollider = frontWheel.AddComponent <CircleCollider2D>(); circleCollider.radius = radius; } } if (car.backWheel != null) { float radius = -1; switch (car.backWheel.id) { case 4: radius = 0.73f; backWheel = Instantiate(wheel1, new Vector3(0, 0), Quaternion.identity); break; case 5: radius = 0.61f; backWheel = Instantiate(wheel2, new Vector3(0, 0), Quaternion.identity); break; } backWheel.transform.SetParent(chassis.transform); backWheel.transform.position = chassisPos + backWheelPos; backWheel.transform.localScale = new Vector3(0.5f, 0.5f); backWheel.GetComponent <SpriteRenderer>().sortingOrder = 1; if (flipped) { backWheel.GetComponent <SpriteRenderer>().flipX = true; } if (isGame) { WheelJoint2D wheelJoint2D = backWheel.AddComponent <WheelJoint2D>(); wheelJoint2D.connectedBody = chassis.GetComponent <Rigidbody2D>(); wheelJoint2D.connectedAnchor = backWheelPos; JointSuspension2D jointSuspension = wheelJoint2D.suspension; jointSuspension.dampingRatio = 0.9f; jointSuspension.frequency = 10; wheelJoint2D.suspension = jointSuspension; wheelJoint2D.useMotor = true; JointMotor2D motor = wheelJoint2D.motor; motor.motorSpeed = speed; wheelJoint2D.motor = motor; wheelJoint2D.useMotor = !playerControls; CircleCollider2D circleCollider = backWheel.AddComponent <CircleCollider2D>(); circleCollider.radius = radius; } } if (car.forklift != null) { forkliftObj = Instantiate(forklift); forkliftObj.transform.position = chassisPos + forkliftPos; forkliftObj.transform.localScale = new Vector3(0.5f, 0.5f); forkliftObj.GetComponent <SpriteRenderer>().sortingOrder = 1; forkliftObj.transform.SetParent(chassis.transform); if (!flipped) { forkliftObj.GetComponent <SpriteRenderer>().flipX = true; } if (isGame) { forkliftObj.AddComponent <PolygonCollider2D>(); HingeJoint2D joint = forkliftObj.AddComponent <HingeJoint2D>(); joint.connectedBody = chassis.GetComponent <Rigidbody2D>(); joint.anchor = anchorPos; joint.connectedAnchor = connectedAnchor; JointMotor2D motor = joint.motor; if (player == 0) { motor.motorSpeed = -50; } else { motor.motorSpeed = 50; } motor.maxMotorTorque = 500; joint.motor = motor; joint.useMotor = !playerControls; forkliftObj.GetComponent <Rigidbody2D>().mass = 0.3f; } } if (car.attack2 != null) { attack2 = Instantiate(rocket); attack2.transform.position = chassisPos + attack2Pos; attack2.transform.localScale = new Vector3(0.5f, 0.5f); attack2.GetComponent <SpriteRenderer>().sortingOrder = 1; attack2.transform.SetParent(chassis.transform); if (flipped) { attack2.GetComponent <SpriteRenderer>().flipX = true; } if (isGame) { FixedJoint2D joint = attack2.AddComponent <FixedJoint2D>(); joint.connectedBody = chassis.GetComponent <Rigidbody2D>(); attack2.GetComponent <Rigidbody2D>().mass = 0; } } RenderedCar renderedCar = new RenderedCar(); renderedCar.chassis = chassis; renderedCar.attack1 = attack1; renderedCar.attack2 = attack2; renderedCar.forklift = forkliftObj; renderedCar.frontWheel = frontWheel; renderedCar.backWheel = backWheel; return(renderedCar); }