Esempio n. 1
0
    public bool LookForMember(MemberBehaviour theMemberToLookFor)
    {
        bool isSet           = false;
        int  coveredByMember = 0;
        List <PositionBehaviour> positionsCovered = new List <PositionBehaviour>();

        for (int index = 0; index < thePositions.Length; index++)
        {
            //Debug.Log(index.ToString());
            if (thePositions[index].currentOccupant == -1)
            {
                Vector3 origin = new Vector3(thePositions[index].transform.position.x, thePositions[index].transform.position.y, thePositions[index].transform.position.z - 0.8f);
                Ray     ray    = new Ray(origin, new Vector3(0.0f, 0.0f, 1.0f));

                List <RaycastHit> hits = new List <RaycastHit>();
                hits.AddRange(Physics.RaycastAll(ray));

                foreach (RaycastHit hitInfo in hits.OrderBy(l => l.distance))
                {
                    if (hitInfo.transform.GetComponent <MemberBehaviour>() == theMemberToLookFor)
                    {
                        coveredByMember++;
                        positionsCovered.Add(thePositions[index]);
                        isSet = true;
                        Debug.Log("Found");
                    }
                }
            }
        }

        if (coveredByMember == theMemberToLookFor.size)
        {
            switch (theMemberToLookFor.theSizeOfMember)
            {
            case MemberBehaviour.SizeOfMember.OneByOne:
                theMemberToLookFor.transform.position = positionsCovered[0].transform.position;
                break;

            case MemberBehaviour.SizeOfMember.OneByTwo:
                theMemberToLookFor.transform.position = new Vector3(positionsCovered[0].transform.position.x, positionsCovered[0].transform.position.y + offSetInY, positionsCovered[0].transform.position.z);
                break;

            case MemberBehaviour.SizeOfMember.TwoByOne:
                theMemberToLookFor.transform.position = new Vector3(positionsCovered[0].transform.position.x + offSetInX, positionsCovered[0].transform.position.y, positionsCovered[0].transform.position.z);
                break;

            case MemberBehaviour.SizeOfMember.TwoByTwo:
                theMemberToLookFor.transform.position = new Vector3(positionsCovered[0].transform.position.x + offSetInX, positionsCovered[0].transform.position.y + offSetInY, positionsCovered[0].transform.position.z);
                break;
            }
            theSquadBeingEdited.members++;
            theMemberToLookFor.inUnit = true;

            for (int index = 0; index < positionsCovered.Count; index++)
            {
                positionsCovered[index].currentOccupant = theMemberToLookFor.uniqueID;
            }
        }
        return(isSet);
    }
    public bool LookForMember(MemberBehaviour theMemberToLookFor)
    {
        bool isSet = false;
        int coveredByMember = 0;
        List<PositionBehaviour> positionsCovered = new List<PositionBehaviour>();

        for (int index = 0; index < thePositions.Length; index++)
        {
            //Debug.Log(index.ToString());
            if (thePositions[index].currentOccupant == -1)
            {
                Vector3 origin = new Vector3(thePositions[index].transform.position.x, thePositions[index].transform.position.y, thePositions[index].transform.position.z -0.8f);
                Ray ray = new Ray(origin, new Vector3(0.0f, 0.0f, 1.0f));

                List<RaycastHit> hits = new List<RaycastHit>();
                hits.AddRange(Physics.RaycastAll(ray));

                foreach (RaycastHit hitInfo in hits.OrderBy(l => l.distance))
                {
                    if (hitInfo.transform.GetComponent<MemberBehaviour>() == theMemberToLookFor)
                    {
                        coveredByMember++;
                        positionsCovered.Add(thePositions[index]);
                        isSet = true;
                        Debug.Log("Found");
                    }
                }
            }
        }

        if (coveredByMember == theMemberToLookFor.size)
        {
            switch (theMemberToLookFor.theSizeOfMember)
            {
                case MemberBehaviour.SizeOfMember.OneByOne:
                    theMemberToLookFor.transform.position = positionsCovered[0].transform.position;
                    break;
                case MemberBehaviour.SizeOfMember.OneByTwo:
                    theMemberToLookFor.transform.position = new Vector3(positionsCovered[0].transform.position.x, positionsCovered[0].transform.position.y + offSetInY, positionsCovered[0].transform.position.z);
                    break;
                case MemberBehaviour.SizeOfMember.TwoByOne:
                    theMemberToLookFor.transform.position = new Vector3(positionsCovered[0].transform.position.x + offSetInX, positionsCovered[0].transform.position.y, positionsCovered[0].transform.position.z);
                    break;
                case MemberBehaviour.SizeOfMember.TwoByTwo:
                    theMemberToLookFor.transform.position = new Vector3(positionsCovered[0].transform.position.x + offSetInX, positionsCovered[0].transform.position.y + offSetInY, positionsCovered[0].transform.position.z);
                    break;
            }
            theSquadBeingEdited.members++;
            theMemberToLookFor.inUnit = true;

            for (int index = 0; index < positionsCovered.Count; index++)
            {
                positionsCovered[index].currentOccupant = theMemberToLookFor.uniqueID;
            }
        }
        return isSet;
    }
    public bool LookForMember(MemberBehaviour theMemberToLookFor)
    {
        bool isSet = false;
        int coveredByMember = 0;

        //for

        return isSet;
    }
Esempio n. 4
0
    public void SetMemberPosition(MemberBehaviour memberToBeAdded)
    {
 
    }
    // Update is called once per frame
    void Update()
    {
        //Debug.Log(Input.mousePosition.x.ToString());
        if (isActive)
        {
            if (Input.mousePosition.x > (Screen.width - (Screen.width / 5.0f)))
            {
                if (Input.mousePosition.y < (Screen.height / 10.0f) && LowerBound.transform.localPosition.y < lowerBound)
                {
                    TopBound.transform.Translate(Vector3.up * scrollingRate * Time.deltaTime, transform);
                    for (int index = 0; index < members.Count; index++)
                    {
                        members[index].transform.Translate(Vector3.up * scrollingRate * Time.deltaTime, transform);
                    }
                    LowerBound.transform.Translate(Vector3.up * scrollingRate * Time.deltaTime, transform);
                }

                if (Input.mousePosition.y > (Screen.height - (Screen.height / 10)) && TopBound.transform.localPosition.y > upperBound)
                {
                    TopBound.transform.Translate(Vector3.up * -scrollingRate * Time.deltaTime, transform);
                    for (int index = 0; index < members.Count; index++)
                    {
                        members[index].transform.Translate(Vector3.up * -scrollingRate * Time.deltaTime, transform);
                    }
                    LowerBound.transform.Translate(Vector3.up * -scrollingRate * Time.deltaTime, transform);
                }
            }

            if (Input.GetMouseButtonDown(0))
            {
                Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

                RaycastHit hitInfo;

                if (Physics.Raycast(ray, out hitInfo))
                {
                    if (hitInfo.transform.GetComponent<MemberBehaviour>())
                    {
                        HeldMember = hitInfo.transform.GetComponent<MemberBehaviour>();
                        members.Remove(HeldMember);
                        currentlyHoldingAMember = true;
                        previousPosition = HeldMember.transform.localPosition;
                        HeldMember.transform.parent = null;
                    }
                }
            }

            if (Input.GetMouseButton(0))
            {
                if (currentlyHoldingAMember)
                {
                    float yPos = (6.0f * Input.mousePosition.y / (float)Screen.height) - 2.0f;
                    float xPos = (xRatio * Input.mousePosition.x / (float)Screen.width) - (xRatio / 2);
                    HeldMember.transform.position = new Vector3(xPos, yPos, 0.5f);
                    //Debug.Log(yPos.ToString());

                }
            }

            //if (Input.GetMouseButtonUp(0))
            //{
            //    if (currentlyHoldingAMember)
            //    {
            //        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            //        List<RaycastHit> hits = new List<RaycastHit>();
            //        hits.AddRange(Physics.RaycastAll (ray));

            //        foreach (RaycastHit hitInfo in hits.OrderBy(l => l.distance))
            //        {
            //            if (hitInfo.transform.GetComponent<PositionBehaviour>())
            //            {

            //            }
            //        }
            //    }
            //}
        }
    }
Esempio n. 6
0
 public void SetMemberPosition(MemberBehaviour memberToBeAdded)
 {
 }
Esempio n. 7
0
	void Start () 
    {
        xRatio = 6.0f * ((float)Screen.width / (float)Screen.height);
        int currentRowOfOne = 0;
        int currentRowOfTwo = 0;
        int exampleID = 0;

        for(int index = 0; index < magicNumberForTesting; index++)
        {
            MemberBehaviour newMember = null;
            newMember = (MemberBehaviour)Instantiate(memberOneByOne, new Vector3(0.0f, 0.0f, 0.0f), Quaternion.identity);
            newMember.transform.parent = transform;
            newMember.uniqueID = exampleID;
            exampleID++;

            int columnChoiceByIndex = index % 2;
            if (columnChoiceByIndex == 0)
            {
                newMember.transform.localPosition = new Vector3(columnOne, 2.3f - (currentRowOfOne * distanceBetweenRowsForOne), 0.0f);
            }
            else
            {
                newMember.transform.localPosition = new Vector3(columnTwo, 2.3f - (currentRowOfOne * distanceBetweenRowsForOne), 0.0f);
                currentRowOfOne++;
            }

            members.Add(newMember);
        }
        lastIndexOfOneByOne = members.Count - 1;
        currentRowOfOne++;
  
        for (int index = 0; index < magicNumberForTesting; index++)
        {
            MemberBehaviour newMember = null;
            newMember = (MemberBehaviour)Instantiate(memberOneByTwo, new Vector3(0.0f, 0.0f, 0.0f), Quaternion.identity);
            newMember.transform.parent = transform;
            newMember.uniqueID = exampleID;
            exampleID++;

            int columnChoiceByIndex = index % 2;
            if (columnChoiceByIndex == 0)
            {
                newMember.transform.localPosition = new Vector3(columnOne, 2.3f - (currentRowOfOne * distanceBetweenRowsForOne) - (currentRowOfTwo *distanceBetweenRowsForTwo) + differenceBetweenOneAndTwoY, 0.0f);
            }
            else
            {
                newMember.transform.localPosition = new Vector3(columnTwo, 2.3f - (currentRowOfOne * distanceBetweenRowsForOne) - (currentRowOfTwo * distanceBetweenRowsForTwo) + differenceBetweenOneAndTwoY, 0.0f);
                currentRowOfTwo++;
            }

            members.Add(newMember);
        }
        lastIndexOfOneByTwo = members.Count - 1;

        //currentRowOfTwo--;

        for (int index = 0; index < magicNumberForTesting; index++)
        {
            MemberBehaviour newMember = null;
            newMember = (MemberBehaviour)Instantiate(memberTwoByOne, new Vector3(0.0f, 0.0f, 0.0f), Quaternion.identity);
            newMember.transform.parent = transform;
            newMember.uniqueID = exampleID;
            exampleID++;

            newMember.transform.localPosition = new Vector3(columnOne + differenceBetweenOneAndTwoX, 2.3f - (currentRowOfOne * distanceBetweenRowsForOne) - (currentRowOfTwo * distanceBetweenRowsForTwo) + differenceBetweenOneAndTwoY + 0.5f, 0.0f);
            currentRowOfOne++;
          
            members.Add(newMember);
        }

        lastIndexOfTwoByOne = members.Count - 1;

        for (int index = 0; index < magicNumberForTesting; index++)
        {
            MemberBehaviour newMember = null;
            newMember = (MemberBehaviour)Instantiate(memberTwoByTwo, new Vector3(0.0f, 0.0f, 0.0f), Quaternion.identity);
            newMember.transform.parent = transform;
            newMember.uniqueID = exampleID;
            exampleID++;

            newMember.transform.localPosition = new Vector3(columnOne + differenceBetweenOneAndTwoX, 2.3f - (currentRowOfOne * distanceBetweenRowsForOne) - (currentRowOfTwo * distanceBetweenRowsForTwo) + differenceBetweenOneAndTwoY, 0.0f);
            currentRowOfTwo++;

            members.Add(newMember);

        }

        LowerBound.transform.localPosition = new Vector3(columnOne + differenceBetweenOneAndTwoX, 2.3f - (currentRowOfOne * distanceBetweenRowsForOne) - (currentRowOfTwo * distanceBetweenRowsForTwo) + differenceBetweenOneAndTwoY + 0.5f, 0.0f);

        //renderer.enabled = false;
	}
Esempio n. 8
0
    public void BuildMemberTray()
    {
        if (members.Count > 0)
        {
            MemberBehaviour currentMember = members[0];
            Vector3 currentTopPosition = TopBound.transform.localPosition;
            int currentIndex = 0;
            int currentRowOfOne = 0;
            int currentRowOfTwo = 0;

            while (currentMember.theSizeOfMember == MemberBehaviour.SizeOfMember.OneByOne)
            {
                currentMember.transform.parent = transform;
                int columnChoiceByIndex = currentIndex % 2;

                if (columnChoiceByIndex == 0)
                {
                    currentMember.transform.localPosition = new Vector3(columnOne, currentTopPosition.y - 0.7f - (currentRowOfOne * distanceBetweenRowsForOne), 0.0f);
                }
                else
                {
                    currentMember.transform.localPosition = new Vector3(columnTwo, currentTopPosition.y - 0.7f - (currentRowOfOne * distanceBetweenRowsForOne), 0.0f);
                    currentRowOfOne++;
                }
                currentIndex++;
                currentMember = members[currentIndex];
            }

            //Debug.Log("First while loop");

            currentRowOfOne++;
            if (currentIndex % 2 != 0)
                currentRowOfOne++;

            lastIndexOfOneByOne = members.Count - 1;
            int usedForToggle = 0;

            while (currentMember.theSizeOfMember == MemberBehaviour.SizeOfMember.OneByTwo)
            {
                currentMember.transform.parent = transform;
                int columnChoiceByIndex = usedForToggle % 2;
                if (columnChoiceByIndex == 0)
                {
                    currentMember.transform.localPosition = new Vector3(columnOne, currentTopPosition.y - 0.7f - (currentRowOfOne * distanceBetweenRowsForOne) - (currentRowOfTwo * distanceBetweenRowsForTwo) + differenceBetweenOneAndTwoY, 0.0f);
                }
                else
                {
                    currentMember.transform.localPosition = new Vector3(columnTwo, currentTopPosition.y - 0.7f - (currentRowOfOne * distanceBetweenRowsForOne) - (currentRowOfTwo * distanceBetweenRowsForTwo) + differenceBetweenOneAndTwoY, 0.0f);
                    currentRowOfTwo++;
                }
                usedForToggle++;
                currentIndex++;
                currentMember = members[currentIndex];
            }

            //Debug.Log("Second While Loop");
            if (usedForToggle % 2 != 0)
                currentRowOfTwo++;

            lastIndexOfOneByTwo = members.Count - 1;

            //currentRowOfTwo--;

            while (currentMember.theSizeOfMember == MemberBehaviour.SizeOfMember.TwoByOne)
            {
                currentMember.transform.parent = transform;

                currentMember.transform.localPosition = new Vector3(columnOne + differenceBetweenOneAndTwoX, currentTopPosition.y - 0.7f - (currentRowOfOne * distanceBetweenRowsForOne) - (currentRowOfTwo * distanceBetweenRowsForTwo) + differenceBetweenOneAndTwoY + 0.5f, 0.0f);
                currentRowOfOne++;

                currentIndex++;
                currentMember = members[currentIndex];
            }

            //Debug.Log("Third while loop");

            lastIndexOfTwoByOne = members.Count - 1;

            while (currentMember)
            {
                currentMember.transform.parent = transform;
                currentMember.transform.localPosition = new Vector3(columnOne + differenceBetweenOneAndTwoX, currentTopPosition.y - 0.7f - (currentRowOfOne * distanceBetweenRowsForOne) - (currentRowOfTwo * distanceBetweenRowsForTwo) + differenceBetweenOneAndTwoY, 0.0f);
                currentRowOfTwo++;

                currentIndex++;
                if (currentIndex != members.Count)
                    currentMember = members[currentIndex];
                else
                    currentMember = null;
            }

            //Debug.Log("Fourth while loop");

            LowerBound.transform.localPosition = new Vector3(columnOne + differenceBetweenOneAndTwoX, currentTopPosition.y - 0.7f - (currentRowOfOne * distanceBetweenRowsForOne) - (currentRowOfTwo * distanceBetweenRowsForTwo) + differenceBetweenOneAndTwoY + 0.5f, 0.0f);

        }
    }