void OnMouseUp() { if (!isDragging) { return; } StopDrag(); PlaceValueCtrl ones = container.controller.screen.GetComponent <MyScreen>().onesColumn; PlaceValueCtrl tens = container.controller.screen.GetComponent <MyScreen>().tensColumn; // update place value column over states ones.UpdateDragOver(false, (numOnes == 0 ? numTens * 10 : numOnes)); tens.UpdateDragOver(false, numTens); // check for bounding box intersections between group and place value columns bool onesPlacement = this.GetComponent <SpriteRenderer>().bounds.Intersects(ones.bounds) && (ones.numCreatures + numOnes + numTens * 10) <= ones.creatureMax && (!isMultipleOfTen || ones.allowDragConvert); bool tensPlacement = this.GetComponent <SpriteRenderer>().bounds.Intersects(tens.bounds) && (tens.numCreatures + numTens) <= tens.creatureMax && !onesPlacement; if ((onesPlacement || tensPlacement) && !isMultipleOfTen && isGreaterThanNine) { //NOTE: this probably doesn't happen any more, should confirm //Genie.instance.LogEvent(OE_INTERACT.Create(OE_INTERACT.Type.DROP, "gameplay.eitherColumn"); Genie.I.LogEvent(OE_INTERACT.Create(OE_INTERACT.Type.DROP, "gameplay.eitherColumn")); ones.ForceDragOverFalse(value); RemoveFromContainerDistributeToPlaceValue(); } else if (onesPlacement && !tensPlacement && isLessThanTen) { //Genie.instance.LogEvent(OE_INTERACT.Create(OE_INTERACT.Type.DROP, "gameplay.onesColumn"); Genie.I.LogEvent(OE_INTERACT.Create(OE_INTERACT.Type.DROP, "gameplay.onesColumn")); // if on the correct place-value column, snap to place-value column (remove from queue) // try to place in ones column ones.ForceDragOverFalse(value); RemoveFromContainerAddToPlaceValue(ones); } else if (tensPlacement && !onesPlacement && isMultipleOfTen) { //Genie.instance.LogEvent(OE_INTERACT.Create(OE_INTERACT.Type.DROP, "gameplay.tensColumn"); Genie.I.LogEvent(OE_INTERACT.Create(OE_INTERACT.Type.DROP, "gameplay.tensColumn")); // try to place in tens column tens.ForceDragOverFalse(value); RemoveFromContainerAddToPlaceValue(tens); } else if (tensPlacement && !onesPlacement && !isMultipleOfTen) { //Genie.instance.LogEvent(OE_INTERACT.Create(OE_INTERACT.Type.DROP, "gameplay.tensColumn"); Genie.I.LogEvent(OE_INTERACT.Create(OE_INTERACT.Type.DROP, "gameplay.tensColumn")); // highlight tens column as incorrect placement (reminder) tens.ShowIncorrectFeedback(); SoundManager.instance.PlayOneShot(SoundManager.instance.chickenSnapBack); // try to place in ones column ones.ForceDragOverFalse(value); RemoveFromContainerAddToPlaceValue(ones, true); } else if (onesPlacement && isMultipleOfTen && ones.numCreatures < 10 && ones.allowDragConvert) { //Genie.instance.LogEvent(OE_INTERACT.Create(OE_INTERACT.Type.DROP, "gameplay.onesColumn"); Genie.I.LogEvent(OE_INTERACT.Create(OE_INTERACT.Type.DROP, "gameplay.onesColumn")); EnlearnInstance.I.LogActions(EnlearnInstance.Action.AddNestToOnes); // place a 10s in 1s column ones.ForceDragOverFalse(value); CreatureCtrl[] children = this.GetComponentsInChildren <CreatureCtrl>(); bool bIsBrown = children[0].color == CreatureCtrl.COLOR_BROWN; SoundManager.instance.PlayOneShot(SoundManager.instance.chickenConvertToOnes); ones.Add(10, bIsBrown); // add explosion effects container.controller.screen.Poof(); Cleanup(); } else { if (onesPlacement) { // update place value column over states ones.ForceDragOverFalse(value); ones.GetComponent <Animator>().SetTrigger("correct"); } if (tensPlacement) { tens.ForceDragOverFalse(value); tens.GetComponent <Animator>().SetTrigger("correct"); } // else, if we're overlapping with both or neither // snap back to QueueContainer //SnapBack(); CreatureCtrl[] children = this.GetComponentsInChildren <CreatureCtrl>(); children[0].Drop(); Cleanup(); } }