public void SpawnRabboid(Vector3 _position, RabboidResult _results) { Vector3 eulers = new Vector3(Random.Range(0.0f, 360.0f), Random.Range(0.0f, 360.0f), Random.Range(0.0f, 360.0f)); Transform rabboid = Instantiate(m_baseRabboidPrefab, _position, Quaternion.Euler(eulers)); rabboid.GetComponent <Rabboid>().Initialize(_results); }
public bool PlayerInteract(bool rabboidHeld, RabboidResult rabboidStats) { Debug.Log("here"); // Put bunny in cage if (!m_penData.m_bunnyInside && rabboidHeld) { Debug.Log("close"); m_penData.m_bunnyInside = true; m_penData.m_bunnyColour = rabboidStats.m_resultColour; m_penData.m_bunnySize = rabboidStats.m_size; m_penData.m_bunnyMouthPart = rabboidStats.m_mouthPart; m_penData.m_bunnyBackPart = rabboidStats.m_backPart; m_penData.ForceSerialization(); SetRabboid(); Close(); return(false); } // Take bunny out of cage else { Debug.Log("open"); m_penData.m_bunnyInside = false; m_penData.m_bunnyColour = null; m_penData.m_bunnySize = 0; m_penData.m_bunnyMouthPart = null; m_penData.m_bunnyBackPart = null; m_penData.ForceSerialization(); Open(); return(true); } }
public void SpawnRabboidEgg() { RabboidEgg egg = Instantiate(m_rabboidEggPrefab, Vector3.zero, Quaternion.identity).GetComponent <RabboidEgg>(); RabboidResult results = RabboidCalculator.Instance.CalculateRabboid(m_colourModList, m_mouthModList, m_backModList, m_sizeModList); ClearAllLists(); // Clear results list in rabboid mama egg.StartAnimation(m_spawnEggPath.m_movePath, this, results); }
public RabboidResult GetBunnyData() { RabboidResult rabboidResult = new RabboidResult(); if (m_gotRabboid == true) { rabboidResult = m_holdItem.GetComponent <Rabboid>().RabboidStats; } return(rabboidResult); }
void SetRabboid() { rabboid = Instantiate(m_baseRabboidPrefab, transform.position, transform.rotation); RabboidResult RabboidStats = new RabboidResult(); RabboidStats.m_resultColour = m_penData.m_bunnyColour; RabboidStats.m_size = m_penData.m_bunnySize; RabboidStats.m_mouthPart = m_penData.m_bunnyMouthPart; RabboidStats.m_backPart = m_penData.m_bunnyBackPart; rabboid.GetComponent <Rabboid>().Initialize(RabboidStats); rabboid.GetComponent <Rabboid>().m_insidePen = true; m_penData.m_bunnyInside = true; }
public void StartAnimation(Transform[] _path, RabboidMama _mama, RabboidResult _results) { if (m_started) { return; } m_started = true; m_pathToFollow = _path; m_mama = _mama; m_results = _results; StartCoroutine(SpawnAnimation()); }
public Transform GetRabboid() { GameObject newRabboid = Instantiate(m_baseRabboidPrefab, transform.position, transform.rotation); RabboidResult RabboidStats = new RabboidResult(); RabboidStats.m_resultColour = m_penData.m_bunnyColour; RabboidStats.m_size = m_penData.m_bunnySize; RabboidStats.m_mouthPart = m_penData.m_bunnyMouthPart; RabboidStats.m_backPart = m_penData.m_bunnyBackPart; newRabboid.GetComponent <Rabboid>().Initialize(RabboidStats); Destroy(rabboid); return(newRabboid.transform); }
public void Initialize(RabboidResult _result) { RabboidStats = _result; Transform newBack = null, newMouth = null; // Set back if (_result.m_backPart) { newBack = Instantiate(_result.m_backPart.m_bodyPrefab, m_backPoint.position, m_backPoint.rotation, m_backPoint.parent); } else if (m_defaultBack) { newBack = Instantiate(m_defaultBack, m_backPoint.position, m_backPoint.rotation, m_backPoint.parent); } // Set mouth if (_result.m_mouthPart) { newMouth = Instantiate(_result.m_mouthPart.m_bodyPrefab, m_mouthPoint.position, m_mouthPoint.rotation, m_mouthPoint.parent); } else if (m_defaultMouth) { newMouth = Instantiate(m_defaultMouth, m_mouthPoint.position, m_mouthPoint.rotation, m_mouthPoint.parent); } // Set colour if (_result.m_resultColour) { SetColours(_result.m_resultColour, newBack, newMouth); } // Set size transform.localScale = transform.localScale * _result.m_size; // Output name Debug.Log("New Rabboid: " + _result.m_name); }
void Grab() { bool tryingToPutRabbitinCage = false; if (m_hitTarget) { BunnyPen bpen = m_hitTarget.GetComponent <BunnyPen>(); if (m_holdHand.IsHolding() && bpen == null) { m_holdHand.Drop(); return; } tryingToPutRabbitinCage = true; } if (!tryingToPutRabbitinCage && m_holdHand.IsHolding()) { m_holdHand.Drop(); return; } if (!m_hitTarget) { return; } GunTable table = m_hitTarget.GetComponent <GunTable>(); if (table != null) { Debug.Log("table found"); if (m_playerControl.IsGunActive()) {//gun is active //place gun m_playerControl.ActiveGun(false); table.PlaceGun(); } else {//gun is not active // take gun m_playerControl.ActiveGun(true); table.TakeGun(); } } BunnyPen pen = m_hitTarget.GetComponent <BunnyPen>(); if (pen != null) { RabboidResult rabboidResult = new RabboidResult(); if (pen.m_penData.m_bunnyInside && m_holdHand.IsHolding()) { return; } else if (!pen.m_penData.m_bunnyInside && !m_holdHand.IsHolding()) { return; } if (m_holdHand.IsHoldingBunny()) { // Put the rabbit in the cage in the players hand rabboidResult = m_holdHand.GetBunnyData(); pen.PlayerInteract(true, rabboidResult); m_holdHand.DestroyItem(); } else { // Pick up the caged rabbit Transform bunny = pen.GetRabboid(); pen.PlayerInteract(false, rabboidResult); m_holdHand.Hold(bunny.transform); } } Rabboid rab = m_hitTarget.GetComponent <Rabboid>(); if (rab != null && !rab.m_insidePen) { m_holdHand.Hold(rab.transform); return; } PickUp pickUp = m_hitTarget.GetComponent <PickUp>(); if (pickUp != null) { if (m_inventory.AddToInventory(pickUp)) { //Debug.Log("sphere pickup"); SoundEffectsPlayer.Instance.PlaySound("PickUp"); Destroy(pickUp.gameObject); return; } } //didnt hit anything//drop holditem /*if (Physics.Raycast(rayy, out hit, m_range)) * { * PickUp pickup = hit.transform.GetComponent<PickUp>(); * if(pickup != null) * { * //Debug.Log("pick up " + pickup.name); * if(m_inventory.AddToInventory(pickup)) * { * // Debug.Log("added" + pickup.name); * Destroy(pickup.gameObject); * } * } * }*/ }
private void OnTriggerEnter(Collider other) { Transform parent = other.transform.parent; if (parent != null) { Rabboid rabboid = other.transform.parent.GetComponent <Rabboid>(); if (rabboid != null) { if (m_customerOrder.m_isActive) { RabboidResult RabboidStats = other.transform.parent.GetComponent <Rabboid>().RabboidStats; // Check the order int rabbitScore = 10; // Score is given based on how close the rabbit is to what the order wanted. int negativePointModifier = 2; int positivePointModifier = 2; // Check Size if (m_customerOrder.m_size == RabboidCalculator.NORMAL_SIZE) { if (RabboidStats.m_size <= RabboidCalculator.SMALL_SIZE) { rabbitScore -= negativePointModifier; } else if (RabboidStats.m_size >= RabboidCalculator.LARGE_SIZE) { rabbitScore -= negativePointModifier; } else { rabbitScore += positivePointModifier; } } else if (m_customerOrder.m_size == RabboidCalculator.SMALL_SIZE) { if (RabboidStats.m_size <= RabboidCalculator.SMALL_SIZE) { rabbitScore += positivePointModifier; } else if (RabboidStats.m_size >= RabboidCalculator.LARGE_SIZE) { rabbitScore -= negativePointModifier * 2; } else { rabbitScore -= negativePointModifier; } } else if (m_customerOrder.m_size == RabboidCalculator.LARGE_SIZE) { if (RabboidStats.m_size >= RabboidCalculator.LARGE_SIZE) { rabbitScore += positivePointModifier; } else if (RabboidStats.m_size <= RabboidCalculator.SMALL_SIZE) { rabbitScore -= negativePointModifier * 2; } else { rabbitScore -= negativePointModifier; } } // Check Color Color resultsColor = Color.white; if (RabboidStats.m_resultColour != null) { resultsColor = RabboidStats.m_resultColour.m_color; } Color customerColor = Color.white; if (m_customerOrder.m_colour != null) { customerColor = m_customerOrder.m_colour.m_color; } if (resultsColor == customerColor) { rabbitScore += positivePointModifier; } else { rabbitScore -= negativePointModifier; } // Check Body if ((RabboidStats.m_backPart == null && m_customerOrder.m_backPart == null) || (RabboidStats.m_backPart != null && m_customerOrder.m_backPart != null)) { rabbitScore += positivePointModifier; } else { rabbitScore -= negativePointModifier; } // Check Head if ((RabboidStats.m_mouthPart == null && m_customerOrder.m_mouthPart == null) || (RabboidStats.m_mouthPart != null && m_customerOrder.m_mouthPart != null)) { rabbitScore += positivePointModifier; } else { rabbitScore -= negativePointModifier; } // Add coins based on performance if (rabbitScore < 0) { rabbitScore = 0; } m_playerInventory.m_money += (uint)rabbitScore; StartCoroutine(UpdateCoinCounter((uint)rabbitScore)); // Tidy up //m_customerOrder.m_customer.GetComponent<Customer>().OrderComplete(); CancelOrder(false); m_Customer.OrderComplete(rabbitScore); m_bunny = other.transform; DestroyBunny(); } } } }