Beispiel #1
0
    void RemoveFromContainerAddToPlaceValue(PlaceValueCtrl placeValueColumn, bool correctedColumn = false)
    {
        bool valid = false;

        if (placeValueColumn)
        {
            valid = placeValueColumn.AddDragGroup(this);
        }

        if (valid)
        {
            if (placeValueColumn.value == 1)
            {
                if (correctedColumn)
                {
                    EnlearnInstance.I.LogActions(EnlearnInstance.Action.AddChickenToTens);
                }
                else
                {
                    EnlearnInstance.I.LogActions(EnlearnInstance.Action.AddToOnes);
                }
            }
            else if (placeValueColumn.value == 10)
            {
                EnlearnInstance.I.LogActions(EnlearnInstance.Action.AddToTens);
            }

            Cleanup();
        }
        else
        {
            CreatureCtrl[] children = this.GetComponentsInChildren <CreatureCtrl>();
            children[0].Drop();
            Cleanup();
            //SnapBack();
        }
    }
Beispiel #2
0
    void OnMouseUp()
    {
        if (!isDragging)
        {
            return;
        }

        StopDrag();

        // check for bounding box intersections between group and place value subtraction car
        Bounds dragGroupBounds = dragGroup.GetComponent <SpriteRenderer>().bounds;
        int    dragValue       = dragGroup.GetComponent <DragGroup>().value;

        PlaceValueCtrl draggedColumn = null;

        if (dragGroupBounds.Intersects(column.bounds))
        {
            draggedColumn = column;
        }
        else if (convertColumn != null && dragGroupBounds.Intersects(convertColumn.bounds) && (value == 1 || convertColumn.allowDragConvert))
        {
            draggedColumn = convertColumn;
        }

        if (draggedColumn != null)
        {
            bool bFlashAlt = false;
            if (value == 1 && draggedColumn == convertColumn)
            {
                draggedColumn = column;
                bFlashAlt     = true;
            }

            int creaturesToAdd = (dragValue / draggedColumn.value);
            if (draggedColumn.numCreatures + creaturesToAdd <= draggedColumn.creatureMax)
            {
                if (draggedColumn.value == 1)
                {
                    //Genie.instance.LogEvent(OE_INTERACT.Create(OE_INTERACT.Type.DROP, "gameplay.onesColumn");
                    Genie.I.LogEvent(OE_INTERACT.Create(OE_INTERACT.Type.DROP, "gameplay.onesColumn"));
                }
                else
                {
                    //Genie.instance.LogEvent(OE_INTERACT.Create(OE_INTERACT.Type.DROP, "gameplay.tensColumn");
                    Genie.I.LogEvent(OE_INTERACT.Create(OE_INTERACT.Type.DROP, "gameplay.tensColumn"));
                }

                // remove creatures from list
                CreatureCtrl[] children = dragGroup.GetComponentsInChildren <CreatureCtrl>();
                for (int i = 0; i < children.Length; ++i)
                {
                    _creatures.Remove(children[i]);
                }

                // place into column
                if (draggedColumn.numCreatures > 9)
                {
                    dragGroup.GetComponent <DragGroup>().SetCreaturesBool("fullTen", true);
                }
                dragGroup.GetComponent <DragGroup>().SetCreaturesBool("inColumn", true);
                dragGroup.GetComponent <DragGroup>().SetCreaturesBool("inCar", false);
                dragGroup.GetComponent <DragGroup>().SetCreaturesTrigger("reset");

                if (creaturesToAdd > 1)
                {
                    column.Explode(dragGroup.GetComponent <DragGroup>());
                    draggedColumn.screen.Poof();
                    SoundManager.instance.PlayOneShot(SoundManager.instance.chickenConvertToOnes);
                }
                else
                {
                    draggedColumn.AddDragGroup(dragGroup.GetComponent <DragGroup>());
                    if (bFlashAlt)
                    {
                        SoundManager.instance.PlayOneShot(SoundManager.instance.chickenSnapBack);
                        convertColumn.ShowIncorrectFeedback();
                    }
                }
            }
            else
            {
                SnapBack();
            }
        }
        else
        {
            //Genie.instance.LogEvent(OE_INTERACT.Create(OE_INTERACT.Type.DROP, "gameplay.sub.snapback");
            //Genie.I.LogEvent(OE_INTERACT.Create(OE_INTERACT.Type.DROP, "gameplay.sub.snapback"));
            SnapBack();
        }

        column.ForceDragOverFalse();
        if (convertColumn != null)
        {
            convertColumn.UpdateDragOver(false, 10);
            convertColumn.ForceDragOverFalse();
        }

        // dispose of drag group
        Destroy(dragGroup);
        dragGroup = null;
    }