Beispiel #1
0
    protected override void OnInstanceInit()
    {
        base.OnInstanceInit();

        mGoblinPoolCtrl = M8.PoolController.GetPool(goblinPool);
        mGoblinPoolCtrl.AddType(goblinTemplate, goblinPts.Length, goblinPts.Length);
        mGoblins = new M8.CacheList <UnitEntity>(goblinPts.Length);

        var dragGuideGO = GameObject.FindGameObjectWithTag(tagDragGuide);

        mDragGuide = dragGuideGO.GetComponent <DragToGuideWidget>();

        titleAnim.gameObject.SetActive(false);
        motionIllustrationAnim.gameObject.SetActive(false);

        block1ForceNetGO.SetActive(false);
        block1ForceGravityGO.SetActive(false);
        block1ForceBalancedGO.SetActive(false);
        block1ForceUnbalancedGO.SetActive(false);
        block1ForceKnightGO.SetActive(false);
        block1ForceGoblinGO.SetActive(false);
        block1NetForceDirRoot.gameObject.SetActive(false);
        block1NetForceNoneGO.SetActive(false);

        block2ForcesGO.SetActive(false);
        block2ForceNetGO.SetActive(false);
        block2ForceGravityGO.SetActive(false);
        block2ForceBalancedGO.SetActive(false);
        block2ForceUnbalancedGO.SetActive(false);
        block2NetForceDirRoot.gameObject.SetActive(false);
        block2NetForceNoneGO.SetActive(false);

        interfaceRootGO.SetActive(false);

        princessGO.SetActive(false);

        victoryGO.SetActive(false);

        block1.gameObject.SetActive(false);
        block1.transform.position = block1StartPt.position;

        for (int i = 0; i < block1Wheels.Length; i++)
        {
            var suspension = block1Wheels[i].suspension;
            suspension.frequency       = block1WheelsAirFreq;
            block1Wheels[i].suspension = suspension;
        }

        block2.gameObject.SetActive(false);
        block2.transform.position = block2StartPt.position;

        signalUnitDragEnd.callback += OnSignalUnitDragEnd;
    }
Beispiel #2
0
    protected override void OnInstanceInit()
    {
        base.OnInstanceInit();

        //setup interactives
        var interactGOs = GameObject.FindGameObjectsWithTag(interactTag);

        //grab dragable bodies and initialize
        var dragBodyList = new List <DragRigidbody2D>();

        for (int i = 0; i < interactGOs.Length; i++)
        {
            var dragBodyComp = interactGOs[i].GetComponent <DragRigidbody2D>();
            if (dragBodyComp)
            {
                dragBodyComp.SetDragCursor(dragCursor);

                dragBodyComp.dragEndCallback += OnBodyDragEnd;

                dragBodyList.Add(dragBodyComp);
            }
        }

        mDragBodies = dragBodyList.ToArray();

        dragCursor.gameObject.SetActive(false);
        //

        inertiaIllustrationAnim.gameObject.SetActive(false);

        illustrateGO.gameObject.SetActive(false);

        //setup item
        itemBody.transform.position = itemStartPoint.position;
        itemBody.mass = itemBodyMasses[Random.Range(0, itemBodyMasses.Length)];
        itemBody.gameObject.SetActive(false);
        //

        //drag instructs
        var dragGuideGO = GameObject.FindGameObjectWithTag(tagDragGuide);

        mDragGuide = dragGuideGO.GetComponent <DragToGuideWidget>();

        dragWeightHelpGO.SetActive(false);

        signalTreasureOpened.callback += OnSignalTreasureOpened;
        signalShowNext.callback       += OnSignalShowNext;
    }
Beispiel #3
0
    protected override void OnInstanceInit()
    {
        base.OnInstanceInit();

        mPlayerGO   = GameObject.FindGameObjectWithTag(playerTag);
        mPlayerBody = mPlayerGO.GetComponent <Rigidbody2D>();
        mPlayerGO.SetActive(false);

        mForceGroupUIGO = GameObject.FindGameObjectWithTag(forceGroupUITag);
        mForceGroupUIGO.SetActive(false);

        mPlayGroupUIGO = GameObject.FindGameObjectWithTag(playGroupUITag);
        mPlayGroupUIGO.SetActive(false);

        graphButton.onClick.AddListener(OnShowGraph);
        graphButton.interactable = false;

        if (!string.IsNullOrEmpty(tagDragGuide))
        {
            var go = GameObject.FindGameObjectWithTag(tagDragGuide);
            mDragGuide = go.GetComponent <DragToGuideWidget>();
        }

        if (dragGuideGO)
        {
            dragGuideGO.SetActive(false);
        }
        if (dragEntityGuideGO)
        {
            dragEntityGuideGO.SetActive(false);
        }
        if (playGuideGO)
        {
            playGuideGO.SetActive(false);
        }

        signalGoal.callback += OnSignalGoal;
    }
Beispiel #4
0
    IEnumerator DoDragIndicator()
    {
        //grab guide
        if (!mDragGuide)
        {
            var go = GameObject.FindGameObjectWithTag(dragIndicatorTag);
            mDragGuide = go.GetComponent <DragToGuideWidget>();
        }

        //grab camera
        var cam = Camera.main;

        //wait for blobs to spawn
        while (blobSpawner.spawnQueueCount > 0 && blobSpawner.CheckAnyBlobActiveState(Blob.State.Spawning))
        {
            yield return(null);
        }

        var blobOp1 = blobSpawner.blobActives[0];
        var blobOp2 = blobSpawner.blobActives[1];
        var blobEq  = blobSpawner.blobActives[2];

        while (!(blobOp1.isConnected && blobOp2.isConnected && blobEq.isConnected))
        {
            if (connectControl.curOp == OperatorType.Divide && blobOp1.isConnected && blobEq.isConnected)
            {
                //special case when dividing
                var blobEqPos  = blobEq.jellySprite.CentralPoint.Body2D.position;
                var blobOp2Pos = blobOp2.jellySprite.CentralPoint.Body2D.position;

                Vector2 blobEqUIPos  = cam.WorldToScreenPoint(blobEqPos);
                Vector2 blobOp2UIPos = cam.WorldToScreenPoint(blobOp2Pos);

                if (mDragGuide.isActive)
                {
                    mDragGuide.UpdatePositions(blobEqUIPos, blobOp2UIPos);
                }
                else
                {
                    mDragGuide.Show(false, blobEqUIPos, blobOp2UIPos);
                }
            }
            else if (!(blobOp1.isConnected && blobOp2.isConnected))
            {
                var blobOp1Pos = blobOp1.jellySprite.CentralPoint.Body2D.position;
                var blobOp2Pos = blobOp2.jellySprite.CentralPoint.Body2D.position;

                Vector2 blobOp1UIPos = cam.WorldToScreenPoint(blobOp1Pos);
                Vector2 blobOp2UIPos = cam.WorldToScreenPoint(blobOp2Pos);

                if (mDragGuide.isActive)
                {
                    mDragGuide.UpdatePositions(blobOp1UIPos, blobOp2UIPos);
                }
                else
                {
                    mDragGuide.Show(false, blobOp1UIPos, blobOp2UIPos);
                }
            }
            //wait for blob 3 to be connected
            else if (!blobEq.isConnected)
            {
                var blobOp2Pos = blobOp2.jellySprite.CentralPoint.Body2D.position;
                var blobEqPos  = blobEq.jellySprite.CentralPoint.Body2D.position;

                Vector2 blobOp2UIPos = cam.WorldToScreenPoint(blobOp2Pos);
                Vector2 blobEqUIPos  = cam.WorldToScreenPoint(blobEqPos);

                if (mDragGuide.isActive)
                {
                    mDragGuide.UpdatePositions(blobOp2UIPos, blobEqUIPos);
                }
                else
                {
                    mDragGuide.Show(false, blobOp2UIPos, blobEqUIPos);
                }
            }

            yield return(null);
        }

        mDragGuide.Hide();

        mDragIndicatorRout = null;
    }