コード例 #1
0
    private bool RemoveSection(Pickeditem _item)
    {
        if (_item.Remove)//Om Remove har blivit tryckt
        {
            if (!_item.isScaling)
            {
                GameObject obj = _item.getObj().m_obj;

                obj.transform.position = Camera.main.transform.position + Camera.main.transform.forward + new Vector3(0, -0.2f, 0);

                obj.GetComponent <Rigidbody>().AddForce(Camera.main.transform.forward);

                if (_item.hasMerged)
                {
                    obj.GetComponent <ItemProperties>().hasItem = _item.m_merge;
                }

                _item.Remove = false;
                m_items.RemoveAt(m_items.Count - 1);

                obj = null;

                if (m_items.Count == 1)
                {
                    m_items[0].StartMS(true, false);
                }

                return(true);
            }
        }
        return(false);
    }
コード例 #2
0
 private void CreateRestProdukt(string _value, Pickeditem _item, Pickeditem _target)
 {
     RestProdukt              = miniCopy(_value, _item);
     RestProdukt.setTarget    = _target;
     RestProdukt.negativeItem = _item.negativeItem;
     RestProdukt.setMoveTo    = Positions.Swap;
 }
コード例 #3
0
    private void DivisionAddSection()
    {
        if (m_items[0].Count == 0)
        {
            updateResult = true;
        }

        if (m_items[0].Count > 0 && m_items[2].Count == 0)
        {
            if (m_items[0][0].m_itemInfo.getNormalValue - m_items[1][0].m_itemInfo.getNormalValue >= 0)
            {
                decimal fix = (decimal)m_items[0][0].m_itemInfo.getNormalValue;
                fix -= (decimal)m_items[1][0].m_itemInfo.getNormalValue;
                m_items[0][0].m_itemInfo.getNormalValue = (float)fix;
                RestProdukt = new Pickeditem(m_items[1][0].m_itemInfo.getNormalValue.ToString(), m_items[0][0].m_obj.transform.position, 0, (int)m_items[0][0].m_itemInfo.TypeID);

                RestProdukt.setMoveTo    = Positions.ToResult;
                RestProdukt.negativeItem = m_items[0][0].negativeItem;
                m_items[2].Add(RestProdukt);

                if (m_items[0][0].m_itemInfo.getNormalValue == 0)
                {
                    m_items[0][0].Remove = true;
                    m_items[1][0].Remove = true;
                }
            }
        }
        else if (m_items[0][0].m_itemInfo.getNormalValue - m_items[1][0].m_itemInfo.getNormalValue >= 0)
        {
            decimal fix = (decimal)m_items[0][0].m_itemInfo.getNormalValue;
            fix -= (decimal)m_items[1][0].m_itemInfo.getNormalValue;
            m_items[0][0].m_itemInfo.getNormalValue = (float)fix;
            RestProdukt = new Pickeditem(m_items[1][0].m_itemInfo.getNormalValue.ToString(), m_items[0][0].m_obj.transform.position, 0, (int)m_items[0][0].m_itemInfo.TypeID);

            RestProdukt.setTarget    = m_items[2][0];
            RestProdukt.negativeItem = m_items[0][0].negativeItem;

            if (m_items[0][0].m_itemInfo.getNormalValue == 0)
            {
                m_items[0][0].Delete();
                m_items[0].RemoveAt(0);
            }
        }
        else
        {
            if (m_items[0].Count > 0)
            {
                m_items[0][0].StartMS(true, false);
                m_items[0][0].setMoveTo = Positions.result;
            }
            if (m_items[1].Count > 0)
            {
                m_items[1][0].StartMS(true, false);
                m_items[1][0].setMoveTo = Positions.result;
            }
        }
    }
コード例 #4
0
    public void MergeDivi(Pickeditem _obj)
    {
        oldValue = _obj.m_itemInfo.getNormalValue * m_itemInfo.getNormalValue;
        m_merge.Add(_obj);
        m_merge[0].m_itemInfo = new ItemProperties();
        m_merge[0].m_itemInfo.getNormalValue = _obj.m_itemInfo.getNormalValue;

        m_merge[0].mergeType = Powers.Division;

        GameObject.DestroyImmediate(_obj.m_obj.GetComponent <ItemProperties>().TextValue);
        GameObject.DestroyImmediate(_obj.m_obj);
    }
コード例 #5
0
 private void MoveToMerge(Pickeditem _item)
 {
     if (_item.m_obj.activeSelf)
     {
         _item.setMoveTo = Positions.Middle;
         if (!_item.isMoving)
         {
             _item.m_itemInfo.TextValue.SetActive(false);
             _item.m_obj.SetActive(false);
         }
     }
 }
コード例 #6
0
    public Pickeditem popDiviObj(Pickeditem _reference, int _type)
    {
        Pickeditem itemPop = new Pickeditem(_reference.m_itemInfo.setValue.ToString(), itemPosition, _reference.pos, _type);

        itemPop.negativeItem = _reference.negativeItem;

        m_itemInfo.setValue -= 1;
        itemPop.mergeType    = Powers.None;

        m_merge.RemoveAt(0);

        return(itemPop);
    }
コード例 #7
0
    public Pickeditem popMergeObj()
    {
        Pickeditem itemPop;

        if (m_merge[m_merge.Count - 1].m_itemInfo.texten == ".")
        {
            itemPop = new Pickeditem(m_merge[m_merge.Count - 1].m_itemInfo.texten, itemPosition, m_merge[m_merge.Count - 1].pos, (int)m_merge[m_merge.Count - 1].m_itemInfo.TypeID);
        }
        else
        {
            itemPop = new Pickeditem(m_merge[m_merge.Count - 1].m_itemInfo.setValue.ToString(), itemPosition, m_merge[m_merge.Count - 1].pos, (int)m_merge[m_merge.Count - 1].m_itemInfo.TypeID);
            itemPop.negativeItem = m_merge[m_merge.Count - 1].negativeItem;
            itemPop.mergeType    = m_merge[m_merge.Count - 1].mergeType;
            itemPop.m_merge      = m_merge[m_merge.Count - 1].m_merge;

            decimal from = (decimal)itemPop.m_itemInfo.setValue;
            decimal to   = (decimal)m_itemInfo.setValue;
            switch (itemPop.mergeType)//reverse
            {
            case Powers.Add:
                to -= from;
                break;

            case Powers.Substract:
                to += from;
                break;

            case Powers.Multiplication:
                to /= from;
                break;

            case Powers.Division:
                to *= from;
                break;

            default:
                break;
            }

            m_itemInfo.setValue = (float)to;
            itemPop.mergeType   = Powers.None;
        }
        m_merge.RemoveAt(m_merge.Count - 1);

        return(itemPop);
    }
コード例 #8
0
    public bool SortDivideNumbers()
    {
        // Enklaste versionen av divisionen
        if (checkResult)
        {
            ready = checkResult;
            return(ready);
        }
        if (RestProdukt != null)
        {
            if (!RestProdukt.isMoving)
            {
                if (RestProdukt.setMoveTo == Positions.Target)
                {
                    if (m_items[0].Count > 0)
                    {
                        if (RestProdukt.setTarget == m_items[0][0])
                        {
                            m_items[0][0].m_itemInfo.getNormalValue += RestProdukt.m_itemInfo.getNormalValue;
                        }
                    }
                    if (m_items[2].Count > 0)
                    {
                        if (RestProdukt.setTarget == m_items[2][0])
                        {
                            RestProdukt.setTarget.m_itemInfo.getNormalValue += 1;
                            RestProdukt.setTarget.m_merge.Add(RestProdukt);
                        }
                    }

                    RestProdukt.Delete();
                    RestProdukt = null;
                }
                return(true);
            }
            else
            {
                return(false);
            }
        }
        else
        {
            return(true);
        }
    }
コード例 #9
0
    private void DivisionBackSection()
    {
        if (m_items[2].Count > 0)
        {
            if (m_items[2][0].hasMerged)
            {
                RestProdukt           = m_items[2][0].popDiviObj(m_items[1][0], (int)m_items[0][0].m_itemInfo.TypeID);
                RestProdukt.setTarget = m_items[0][0];
            }
            else
            {
                CreateRestProdukt(m_items[2][0].m_itemInfo.itemValue.ToString(), m_items[2][0], m_items[0][0]);
                RestProdukt.m_itemInfo.getNormalValue = m_items[1][0].m_itemInfo.getNormalValue;

                m_items[2].RemoveAt(0);
            }
        }
    }
コード例 #10
0
    public void MergeBasicPower(Pickeditem _obj, Powers _pow)
    {
        if (_obj.m_itemInfo.texten != ".")
        {
            decimal to   = (decimal)m_itemInfo.setValue;
            decimal from = (decimal)_obj.m_itemInfo.setValue;
            switch (_pow)
            {
            case Powers.Add:
                to            += from;
                _obj.mergeType = Powers.Add;
                break;

            case Powers.Substract:
                to            -= from;
                _obj.mergeType = Powers.Substract;
                break;

            case Powers.Multiplication:
                to            *= from;
                _obj.mergeType = Powers.Multiplication;
                break;

            case Powers.Division:
                to            /= from;
                _obj.mergeType = Powers.Division;
                break;

            default:
                break;
            }
            m_itemInfo.setValue = (float)to;
        }
        else
        {
            _obj.mergeType    = Powers.None;
            m_itemInfo.texten = _obj.m_itemInfo.texten;
        }
        _obj.mergeType = _pow;
        m_merge.Add(_obj);

        GameObject.DestroyImmediate(_obj.m_obj.GetComponent <ItemProperties>().TextValue);
        GameObject.DestroyImmediate(_obj.m_obj);
    }
コード例 #11
0
    public Pickeditem(Pickeditem _obj)
    {
        m_obj      = (GameObject)GameObject.Instantiate(_obj.m_obj);
        m_itemInfo = m_obj.GetComponent <ItemProperties>();


        GameObject.DestroyImmediate(m_obj.GetComponent <Rigidbody>());
        if (m_obj.GetComponent <BoxCollider>())
        {
            m_obj.GetComponent <BoxCollider>().isTrigger = true;
        }
        else if (m_obj.GetComponent <SphereCollider>())
        {
            m_obj.GetComponent <SphereCollider>().isTrigger = true;
        }
        else
        {
            mergeType = Powers.Convert;
            m_itemInfo.setPartValue(_obj.m_itemInfo.p1, _obj.m_itemInfo.p2);
            m_obj.GetComponent <CapsuleCollider>().isTrigger = true;
        }

        m_obj.layer = LayerMask.NameToLayer("Picked");
        m_obj.transform.localScale = Vector3.zero; // Start skala

        setMoveTo  = Positions.AddSub;
        setScaleTo = Scaling.PickupScale;


        if (_obj.m_itemInfo.hasItem != null)
        {
            m_merge             = _obj.m_itemInfo.hasItem;
            m_itemInfo.setValue = _obj.m_itemInfo.setValue;
            mergeType           = Powers.Division;
        }

        m_itemInfo.setValue = _obj.m_itemInfo.setValue;
        oldValue            = m_itemInfo.setValue;
        oldPosNeg           = m_itemInfo.isNegative;
        StartMS(true, true);
        m_itemInfo.SpawnHitParticles();
    }
コード例 #12
0
    public void MergeNewDivi(Pickeditem _obj)
    {
        decimal temp = (decimal)m_itemInfo.getNormalValue;

        Delete();
        m_obj       = (GameObject)GameObject.Instantiate(GlobalItems.g_listOfObj[2]);
        m_obj.layer = LayerMask.NameToLayer("Picked");
        GameObject.Destroy(m_obj.GetComponent <Rigidbody>());
        m_obj.transform.localScale = new Vector3(0.05f, 0.05f, 0.1f);
        if (m_itemInfo == null)
        {
            m_itemInfo = m_obj.GetComponent <ItemProperties>();
        }

        m_itemInfo.setPartValue((float)temp, _obj.m_itemInfo.getNormalValue);
        mergeType = Powers.Convert;

        GameObject.DestroyImmediate(_obj.m_obj.GetComponent <ItemProperties>().TextValue);
        GameObject.DestroyImmediate(_obj.m_obj);
    }
コード例 #13
0
    public bool SortBasicNumbers() // fixa talens värden innan den mergar eller backar
    {
        if (RestProdukt == null)
        {
            for (int i = 0; i < m_items.Count; i++)
            {
                for (int k = 0; k < m_items[i].Count; k++)
                {
                    if (m_items[i].Count - 1 == k)                                                            // om den sista värdeRegler
                    {
                        if (m_items[i][k].m_itemInfo.setValue == 0 && m_items[i][k].m_itemInfo.texten != ".") // nollans regler
                        {
                            if (m_items[i].Count > 1)                                                         // om det finns flera värden
                            {
                                if (m_items[i][k - 1].m_itemInfo.texten != ".")                               //om värdet innan visar sig inte vara ett comma
                                {
                                    m_items[i][k].Delete();
                                    m_items[i].RemoveAt(k);
                                    countSize--;
                                    return(false);
                                }
                            }
                        }
                    }

                    if (i == 0) // översta talen
                    {
                        #region Negative
                        if (m_items[i][k].negativeItem)
                        {
                            if (m_items[0].Count - 1 > k) // om det inte är det sista talet
                            {
                                Debug.Log(m_items[i][k].m_itemInfo.setValue);

                                if (m_items[i][k].m_itemInfo.setValue < -9)
                                {
                                    if (m_items[i][k + 1].m_itemInfo.texten == ".")
                                    {
                                        if (m_items[i][k + 2].negativeItem)
                                        {
                                            Debug.Log("0");
                                            CreateRestProdukt("1", m_items[i][k], m_items[i][k + 2]);
                                            m_items[i][k].m_itemInfo.setValue += 10;

                                            return(false);
                                        }
                                        else
                                        {
                                            Debug.Log("0");
                                            CreateRestProdukt("10", m_items[i][k], m_items[i][k + 2]);
                                            m_items[i][k + 2].m_itemInfo.setValue -= 1;

                                            return(false);
                                        }
                                    }
                                    else
                                    {
                                        if (m_items[i][k + 1].negativeItem)
                                        {
                                            Debug.Log("0");
                                            CreateRestProdukt("1", m_items[i][k], m_items[i][k + 1]);
                                            m_items[i][k].m_itemInfo.setValue += 10;

                                            return(false);
                                        }
                                        else
                                        {
                                            Debug.Log("0");
                                            CreateRestProdukt("10", m_items[i][k], m_items[i][k + 1]);
                                            m_items[i][k + 1].m_itemInfo.setValue -= 1;

                                            return(false);
                                        }
                                    }
                                }
                                else if (!m_items[i][k + 1].m_itemInfo.isNegative)
                                {
                                    if (m_items[i][k + 1].m_itemInfo.texten == "." && !m_items[i][k + 2].negativeItem)
                                    {
                                        Debug.Log("0");
                                        CreateRestProdukt("1", m_items[i][k + 2], m_items[i][k]);
                                        m_items[i][k + 2].m_itemInfo.setValue -= 10;

                                        return(false);
                                    }
                                    else
                                    {
                                        Debug.Log("0");
                                        CreateRestProdukt("10", m_items[i][k + 1], m_items[i][k]);
                                        m_items[i][k + 1].m_itemInfo.setValue -= 1;

                                        return(false);
                                    }
                                }
                            }
                            else if (m_items[i][k].m_itemInfo.setValue < -9)
                            {
                                Debug.Log("0");
                                m_items[i][k].m_itemInfo.setValue += 10;
                                Pickeditem temp = new Pickeditem("1", m_items[i][k].m_obj.transform.position, 0, (int)m_items[i][k].m_itemInfo.TypeID);
                                temp.negativeItem = m_items[i][k].negativeItem;
                                countSize++;

                                temp.setMoveTo = Positions.AddSub;
                                m_items[0].Add(temp);
                                Debug.Log("3");
                                return(false);
                            }
                        }
                        #endregion
                        else
                        #region Positive
                        {
                            if (m_items[i].Count - 1 > k) // om det inte är det sista talet
                            {
                                if (m_items[i][k].m_itemInfo.setValue > 9)
                                {
                                    Debug.Log("te");
                                    if (m_items[i][k + 1].m_itemInfo.texten == ".")
                                    {
                                        if (!m_items[i][k + 2].negativeItem)
                                        {
                                            Debug.Log("0");
                                            CreateRestProdukt("1", m_items[i][k], m_items[i][k + 2]);
                                            m_items[i][k].m_itemInfo.setValue -= 10;

                                            return(false);
                                        }
                                        else
                                        {
                                            Debug.Log("0");
                                            CreateRestProdukt("10", m_items[i][k + 2], m_items[i][k]);
                                            m_items[i][k + 2].m_itemInfo.setValue += 1;

                                            return(false);
                                        }
                                    }
                                    else
                                    {
                                        if (!m_items[0][k].negativeItem)
                                        {
                                            Debug.Log("0");
                                            CreateRestProdukt("1", m_items[i][k], m_items[i][k + 1]);
                                            m_items[i][k].m_itemInfo.setValue -= 10;

                                            return(false);
                                        }
                                        else
                                        {
                                            Debug.Log("0");
                                            CreateRestProdukt("10", m_items[i][k + 1], m_items[i][k]);
                                            m_items[i][k + 1].m_itemInfo.setValue += 1;

                                            return(false);
                                        }
                                    }
                                }
                                else if (m_items[i][k + 1].m_itemInfo.isNegative)
                                {
                                    if (m_items[i][k + 1].m_itemInfo.texten == "." && !m_items[i][k + 2].negativeItem)
                                    {
                                        Debug.Log("0");
                                        CreateRestProdukt("1", m_items[i][k + 2], m_items[i][k]);
                                        m_items[i][k + 2].m_itemInfo.setValue += 10;

                                        return(false);
                                    }
                                    else
                                    {
                                        Debug.Log("0");
                                        CreateRestProdukt("10", m_items[i][k + 1], m_items[i][k]);
                                        m_items[i][k + 1].m_itemInfo.setValue += 1;

                                        return(false);
                                    }
                                }
                            }
                            else if (m_items[i][k].m_itemInfo.setValue > 9)
                            {
                                Debug.Log("0");
                                m_items[i][k].m_itemInfo.setValue -= 10;
                                Pickeditem temp = new Pickeditem("1", m_items[i][k].m_obj.transform.position, 0, (int)m_items[i][k].m_itemInfo.TypeID);
                                temp.negativeItem = m_items[i][k].negativeItem;
                                countSize++;

                                temp.setMoveTo = Positions.AddSub;
                                m_items[0].Add(temp);
                                Debug.Log("3");
                                return(false);
                            }
                        }
                        #endregion
                    }

                    else if (i == 2) // resultatet
                    {
                        #region Negative
                        if (m_items[i][k].negativeItem) //Om detta värdet är negativt == röd i detta fallet
                        {
                            if (m_items[0].Count > 0)   // om det finns items i det övre fältet
                            {
                                if (m_items[0][0].m_itemInfo.texten == ".")
                                {
                                    if (m_items[0][1].negativeItem)
                                    {
                                        if (m_items[i][k].m_itemInfo.setValue < -9)
                                        {
                                            Debug.Log("0");
                                            CreateRestProdukt("1", m_items[i][k], m_items[0][1]);
                                            m_items[i][k].m_itemInfo.setValue += 10;
                                            return(false);
                                        }
                                    }
                                    else if (m_items[0][1].m_itemInfo.setValue != 0)
                                    {
                                        CreateRestProdukt("10", m_items[0][1], m_items[i][k]);
                                        Debug.Log(m_items[0][1].m_itemInfo.setValue);
                                        m_items[0][1].m_itemInfo.setValue -= 1;
                                        Debug.Log(m_items[0][1].m_itemInfo.setValue);
                                        return(false);
                                    }
                                }
                                else
                                {
                                    if (m_items[0][0].negativeItem)
                                    {
                                        if (m_items[i][k].m_itemInfo.setValue < -9)
                                        {
                                            Debug.Log("0");
                                            CreateRestProdukt("1", m_items[0][0], m_items[i][k]);
                                            m_items[0][0].m_itemInfo.setValue += 10;

                                            return(false);
                                        }
                                    }
                                    else if (m_items[0][0].m_itemInfo.setValue != 0)
                                    {
                                        Debug.Log("0");
                                        Debug.Log(m_items[0][0].m_itemInfo.setValue);
                                        m_items[0][0].m_itemInfo.setValue -= 1;
                                        Debug.Log(m_items[0][0].m_itemInfo.setValue);
                                        CreateRestProdukt("10", m_items[0][0], m_items[i][k]);
                                        return(false);
                                    }
                                }
                            }
                            else if (m_items[i][k].m_itemInfo.setValue < -9)
                            {
                                Debug.Log("0");
                                m_items[i][k].m_itemInfo.setValue -= 10;
                                Pickeditem temp = new Pickeditem("1", m_items[i][k].m_obj.transform.position, 0, (int)m_items[i][k].m_itemInfo.TypeID);
                                countSize++;

                                temp.setMoveTo    = Positions.AddSub;
                                temp.negativeItem = m_items[i][k].negativeItem;
                                m_items[0].Add(temp);
                                Debug.Log("3");
                                return(false);
                            }
                        }
                        #endregion
                        else
                        #region Positive
                        {
                            if (m_items[0].Count > 0)
                            {
                                if (m_items[0][0].m_itemInfo.texten == ".")
                                {
                                    if (!m_items[0][1].negativeItem)
                                    {
                                        if (m_items[i][k].m_itemInfo.setValue > 9)
                                        {
                                            Debug.Log("0");
                                            CreateRestProdukt("1", m_items[i][k], m_items[0][1]);
                                            m_items[i][k].m_itemInfo.setValue -= 10;
                                            return(false);
                                        }
                                    }
                                    else if (m_items[i][k].m_itemInfo.setValue != 0)
                                    {
                                        CreateRestProdukt("10", m_items[0][1], m_items[i][k]);
                                        m_items[0][1].m_itemInfo.setValue += 1;
                                        return(false);
                                    }
                                }
                                else
                                {
                                    if (!m_items[0][0].negativeItem)
                                    {
                                        if (m_items[i][k].m_itemInfo.setValue > 9)
                                        {
                                            Debug.Log("0");
                                            m_items[i][k].m_itemInfo.setValue -= 10;
                                            CreateRestProdukt("1", m_items[i][k], m_items[0][0]);
                                            return(false);
                                        }
                                    }
                                    else if (m_items[i][k].m_itemInfo.setValue != 0)
                                    {
                                        Debug.Log("0");
                                        m_items[0][0].m_itemInfo.setValue -= 1;
                                        CreateRestProdukt("10", m_items[0][0], m_items[i][k]);
                                        return(false);
                                    }
                                }
                            }

                            else if (m_items[i][k].m_itemInfo.setValue > 9) // lägg till en ny item
                            {
                                m_items[i][k].m_itemInfo.setValue -= 10;
                                Pickeditem temp = new Pickeditem("1", m_items[i][k].m_obj.transform.position, 0, (int)m_items[i][k].m_itemInfo.TypeID);
                                countSize++;

                                temp.setMoveTo = Positions.AddSub;
                                m_items[0].Add(temp);
                                Debug.Log("3");
                                return(false);
                            }
                        }
                        #endregion

                        if (checkResult)
                        {
                            ready = ResultBasicController();
                            return(ready);
                        }
                    }
                    //Radera onödiga siffrer/märken
                }
            }


            return(true);
        }
        else if (!RestProdukt.isMoving)
        {
            if (RestProdukt.setMoveTo == Positions.Target)
            {
                if (RestProdukt.setTarget.negativeItem == RestProdukt.negativeItem)
                {
                    RestProdukt.setTarget.m_itemInfo.setValue += RestProdukt.m_itemInfo.setValue;
                }
                else
                {
                    RestProdukt.setTarget.m_itemInfo.setValue += RestProdukt.m_itemInfo.setValue;
                    RestProdukt.setTarget.negativeItem         = RestProdukt.negativeItem;
                }
                RestProdukt.Delete();
                RestProdukt = null;
            }
            return(false);
        }
        else
        {
            return(false);
        }
    }
コード例 #14
0
    public Pickeditem getObj()
    {
        Pickeditem itemPop;

        if (m_merge.Count > 0 && !m_remove)
        {
            if (m_merge[0].m_itemInfo.texten == ".")
            {
                itemPop = new Pickeditem(m_merge[0].m_itemInfo.texten, itemPosition, m_merge[0].pos, (int)m_merge[0].m_itemInfo.TypeID);
            }
            else
            {
                Debug.Log(m_merge[m_merge.Count - 1].m_itemInfo.itemValue);
                if (m_merge[m_merge.Count - 1].mergeType == Powers.Division)
                {
                    decimal fix = (decimal)oldValue * (decimal)m_merge[m_merge.Count - 1].m_itemInfo.setValue;
                    oldValue             = (float)fix;
                    itemPop              = new Pickeditem(m_merge[m_merge.Count - 1].m_itemInfo.getNormalValue.ToString(), itemPosition, m_merge[m_merge.Count - 1].pos, (int)m_merge[m_merge.Count - 1].m_itemInfo.TypeID);
                    itemPop.negativeItem = m_merge[m_merge.Count - 1].negativeItem;

                    itemPop.mergeType = Powers.None;

                    m_itemInfo.isNegative     = oldPosNeg;
                    m_itemInfo.getNormalValue = oldValue;
                }
                else
                {
                    itemPop = new Pickeditem(m_merge[m_merge.Count - 1].oldValue.ToString(), itemPosition, m_merge[m_merge.Count - 1].pos, (int)m_merge[m_merge.Count - 1].m_itemInfo.TypeID);
                    itemPop.negativeItem = m_merge[m_merge.Count - 1].negativeItem;

                    itemPop.mergeType = Powers.None;

                    m_itemInfo.isNegative     = oldPosNeg;
                    m_itemInfo.getNormalValue = oldValue;
                }
            }
            m_merge.RemoveAt(0);
        }
        else
        {
            m_obj.transform.localScale = new Vector3(1, 1, 1);
            m_obj.layer = LayerMask.NameToLayer("Item");

            m_obj.AddComponent <Rigidbody>();

            if (m_obj.GetComponent <BoxCollider>())
            {
                m_obj.GetComponent <BoxCollider>().isTrigger = false;
            }
            else if (m_obj.GetComponent <SphereCollider>())
            {
                m_obj.GetComponent <SphereCollider>().isTrigger = false;
            }
            else if (m_obj.GetComponent <CapsuleCollider>())
            {
                m_obj.transform.localScale = new Vector3(1, 0.5662833f, 1);
                m_obj.GetComponent <CapsuleCollider>().isTrigger = false;
            }
            return(this);
        }
        return(itemPop);
    }
コード例 #15
0
    public void DiviStop(ref List <Pickeditem> _items) // <<<<<<<<<<<<<<<
    {
        if (_items.Count > 0 && !stop)
        {
            for (int i = 0; i < m_items.Count; i++)
            {
                for (int k = 0; k < m_items[i].Count; k++)
                {
                    m_items[i][k].setMoveTo = Positions.Middle;
                    m_items[i][k].StartMS(true, false);
                }
            }
            stop = true;
        }
        else if (_items.Count > 0 && stop)
        {
            if (updateResult)
            {
                if (ready)
                {
                    checkResult = false;
                    if (m_items[0].Count == 0 && m_items[1].Count == 0) // == det har gått jämnt ut
                    {
                        _items[0].MergeBasicPower(_items[1], Functions);
                        Debug.Log("ssa");
                        _items.RemoveAt(1);

                        _items[0].StartMS(true, false);
                        _items[0].setMoveTo = Positions.Picked;
                        _items[0].m_obj.transform.position = m_items[2][0].itemPosition;
                        _items[0].m_itemInfo.TextValue.transform.position = m_items[2][0].itemPosition;

                        _items[0].m_obj.SetActive(true);
                        _items[0].m_itemInfo.TextValue.SetActive(true);
                    }
                    else if (m_items[0].Count == 1 && m_items[1].Count == 0)
                    {
                        _items[0].Delete();
                        m_items[2][0].MergeDivi(_items[1]);

                        _items[1].Delete();
                        _items.RemoveAt(0);
                        _items.RemoveAt(0);


                        if (m_items[2][0].hasMerged)
                        {
                            Debug.Log(m_items[2][0].m_merge[0].m_itemInfo);
                        }

                        _items.Add(new Pickeditem(m_items[0][0]));
                        _items.Add(new Pickeditem(m_items[2][0]));

                        if (_items[1].hasMerged)
                        {
                            Debug.Log(_items[1].m_merge[0].m_itemInfo.setValue);
                        }
                        foreach (Pickeditem p in _items)
                        {
                            p.setMoveTo = Positions.Picked;
                        }
                    }
                }
                else
                {
                    foreach (Pickeditem p in _items)
                    {
                        p.m_obj.SetActive(true);
                        p.m_itemInfo.TextValue.SetActive(true);
                        p.StartMS(true, false);
                        p.setMoveTo = Positions.Picked;
                        p.m_obj.transform.position = m_items[0][0].itemPosition;
                    }
                }

                int temp = m_items.Count;
                for (int i = 0; i < temp; i++)
                {
                    int temp_Count = m_items[0].Count;
                    for (int k = 0; k < temp_Count; k++)
                    {
                        m_items[0][0].Delete(); // tar bort innehållet i item
                        m_items[0].RemoveAt(0); // Tar bort item från listan
                    }
                    m_items.RemoveAt(0);        // Tar bort listAllokeringen
                }

                if (m_items.Count > 0)
                {
                    if (m_items[0].Count > 0)
                    {
                        m_items[0][0].Delete();
                    }
                    m_items.RemoveAt(0); // ta bort resultatListan
                }
                if (RestProdukt != null)
                {
                    RestProdukt.Delete();
                    RestProdukt = null;
                }
            }
        }
    }
コード例 #16
0
    public void BasicStop(ref List <Pickeditem> _items)
    {
        if (_items.Count > 0 && !stop)
        {
            for (int i = 0; i < m_items.Count; i++)
            {
                for (int k = 0; k < m_items[i].Count; k++)
                {
                    m_items[i][k].setMoveTo = Positions.Middle;
                    m_items[i][k].StartMS(true, false);
                }
            }
            stop = true;
        }
        else if (_items.Count > 0 && stop)
        {
            if (updateResult)
            {
                if (ready)
                {
                    Debug.Log(_items[1].m_merge.Count);
                    _items[0].MergeBasicPower(_items[1], Functions);
                    Debug.Log(_items[1].m_merge.Count);
                    _items.RemoveAt(1);

                    _items[0].m_obj.SetActive(true);
                    _items[0].m_itemInfo.TextValue.SetActive(true);
                    _items[0].StartMS(true, false);
                    _items[0].setMoveTo = Positions.Picked;
                    _items[0].m_obj.transform.position = m_items[2][0].itemPosition;
                    _items[0].m_itemInfo.TextValue.transform.position = m_items[2][0].itemPosition;
                }
                else
                {
                    foreach (Pickeditem p in _items)
                    {
                        p.m_obj.SetActive(true);
                        p.m_itemInfo.TextValue.SetActive(true);
                        p.StartMS(true, false);
                        p.setMoveTo = Positions.Picked;
                        p.m_obj.transform.position = m_items[0][0].itemPosition;
                    }
                }

                int temp = m_items.Count;
                for (int i = 0; i < temp; i++)
                {
                    int temp_Count = m_items[0].Count;
                    for (int k = 0; k < temp_Count; k++)
                    {
                        m_items[0][0].Delete(); // tar bort innehållet i item
                        m_items[0].RemoveAt(0); // Tar bort item från listan
                    }
                    m_items.RemoveAt(0);        // Tar bort listAllokeringen
                }
                if (m_items.Count > 0)
                {
                    m_items.RemoveAt(0); // ta bort resultatListan
                }
            }
        }
        if (RestProdukt != null)
        {
            RestProdukt.Delete();
            RestProdukt = null;
        }
    }
コード例 #17
0
    private bool ResultBasicController()
    {
        if (!ready && RestProdukt == null)
        {
            int i = m_items[2].Count - 1;
            int k = i - 1;
            while (k >= 0)
            {
                if (m_items[2][i].m_itemInfo.texten != ".")
                {
                    if (m_items[2][i].negativeItem != m_items[2][k].negativeItem)
                    {
                        if (m_items[2][k].m_itemInfo.texten == ".")
                        {
                            if (m_items[2][i].negativeItem != m_items[2][k - 1].negativeItem && m_items[2][i].m_itemInfo.setValue != 0)
                            {
                                RestProdukt              = new Pickeditem("10", m_items[2][i].m_obj.transform.position, 0, (int)m_items[2][i].m_itemInfo.TypeID);
                                RestProdukt.setTarget    = m_items[2][k - 1];
                                RestProdukt.setMoveTo    = Positions.Swap;
                                RestProdukt.setMoveTimer = 1.25f;
                                if (m_items[2][i].negativeItem)
                                {
                                    m_items[2][i].m_itemInfo.setValue += 1;
                                    RestProdukt.negativeItem           = m_items[2][i].negativeItem;

                                    Debug.Log("RR");
                                    return(false);
                                }
                                else if (m_items[2][i].m_itemInfo.setValue != 0)
                                {
                                    m_items[2][i].m_itemInfo.setValue -= 1;
                                    RestProdukt.negativeItem           = m_items[2][i].negativeItem;

                                    Debug.Log("RR");
                                    return(false);
                                }
                            }
                        }
                        else
                        {
                            Debug.Log("RR");
                            if (m_items[2][i].negativeItem != m_items[2][k].negativeItem && m_items[2][i].m_itemInfo.setValue != 0)
                            {
                                RestProdukt              = new Pickeditem("10", m_items[2][i].m_obj.transform.position, 0, (int)m_items[2][i].m_itemInfo.TypeID);
                                RestProdukt.setTarget    = m_items[2][k];
                                RestProdukt.setMoveTo    = Positions.Swap;
                                RestProdukt.setMoveTimer = 1.25f;
                                if (m_items[2][i].negativeItem)
                                {
                                    m_items[2][i].m_itemInfo.setValue += 1;
                                    RestProdukt.negativeItem           = m_items[2][i].negativeItem;

                                    Debug.Log("RR");
                                    return(false);
                                }
                                else
                                {
                                    m_items[2][i].m_itemInfo.setValue -= 1;
                                    RestProdukt.negativeItem           = m_items[2][i].negativeItem;

                                    Debug.Log("RR");
                                    return(false);
                                }
                            }
                        }
                    }
                }

                i--;
                k--;
            }

            foreach (Pickeditem p in m_items[2])
            {
                p.StartMS(true, false);
                p.setMoveTo = Positions.Middle;
            }
            return(true);
        }
        return(false);
    }
コード例 #18
0
 private Pickeditem miniCopy(string _value, Pickeditem _item)
 {
     return(new Pickeditem(_value, _item.m_obj.transform.position, 0, (int)_item.m_itemInfo.TypeID));
 }