コード例 #1
0
    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);
    }
コード例 #2
0
ファイル: BunnyPen.cs プロジェクト: SeanTheHuang/MamaBunny
 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);
     }
 }
コード例 #3
0
    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);
    }
コード例 #4
0
ファイル: HoldHand.cs プロジェクト: SeanTheHuang/MamaBunny
    public RabboidResult GetBunnyData()
    {
        RabboidResult rabboidResult = new RabboidResult();

        if (m_gotRabboid == true)
        {
            rabboidResult = m_holdItem.GetComponent <Rabboid>().RabboidStats;
        }
        return(rabboidResult);
    }
コード例 #5
0
ファイル: BunnyPen.cs プロジェクト: SeanTheHuang/MamaBunny
    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;
    }
コード例 #6
0
ファイル: RabboidEgg.cs プロジェクト: SeanTheHuang/MamaBunny
    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());
    }
コード例 #7
0
ファイル: BunnyPen.cs プロジェクト: SeanTheHuang/MamaBunny
    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);
    }
コード例 #8
0
    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);
    }
コード例 #9
0
ファイル: GrabHand.cs プロジェクト: SeanTheHuang/MamaBunny
    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);
         *      }
         *  }
         * }*/
    }
コード例 #10
0
    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();
                }
            }
        }
    }