示例#1
0
        private void InitLetter()
        {
            m_LetterObjectView = m_CurrentLetter.GetComponent <LivingLetterController>();

            if (ColorTickleConfiguration.Instance.Variation == ColorTickleVariation.Image)
            {
                m_LetterObjectView.TransformIntoImage();
                m_LetterObjectView.LabelRender.color = Color.white;
            }

            m_TMPTextColoringLetter = m_CurrentLetter.GetComponent <TMPTextColoring>();
            m_SurfaceColoringLetter = m_CurrentLetter.GetComponent <SurfaceColoring>();

            m_LLController = m_CurrentLetter.GetComponent <ColorTickle_LLController>();
            m_LLController.movingToDestination = true;

            m_HitStateLLController = m_CurrentLetter.GetComponent <HitStateLLController>();
            m_HitStateLLController.OnTouchedOutside += OnTickled;

            m_LLController.OnDestinationReached += delegate() {
                game.Context.GetAudioManager().PlayVocabularyData(
                    m_LetterObjectView.Data,
                    soundType: ColorTickleConfiguration.Instance.GetVocabularySoundType()
                    );
            };//play audio on destination


            m_HitStateLLController.OnTouchedShape += TryEnableAntura;
            //game.anturaController.targetToLook = m_CurrentLetter.transform; //make antura look at the LL on rotations

            SetBrushColor(m_ColorsUIManager.defaultColor);

            ResetLaunchTimer(true);
        }
示例#2
0
        void RestoreQuestion(bool result)
        {
            LivingLetterController letterView = m_aoCurrentQuestionScene[m_iRemovedLLDataIndex].GetComponent <LetterBehaviour>().mLetter;

            foreach (GameObject _obj in m_aoCurrentQuestionScene)
            {
                _obj.GetComponent <LetterBehaviour>().Refresh();
            }

            if (result)
            {
                m_oEmoticonsController.EmoticonPositive();
            }
            else
            {
                m_oEmoticonsController.EmoticonNegative();
            }

            //change restored color letter with tag
            Color32 markColor = result ? new Color32(0x4C, 0xAF, 0x50, 0xFF) : new Color32(0xDD, 0x2C, 0x00, 0xFF);
            string  color     = result ? "#4CAF50" : "#DD2C00";

            if (MissingLetterConfiguration.Instance.Variation == MissingLetterVariation.Phrase)
            {
                letterView.Label.text = "<color=" + color + ">" + letterView.Label.text + "</color>";
            }
            else
            {
                LL_WordData word = (LL_WordData)m_oCurrQuestionPack.GetQuestion();
                letterView.Label.text = ArabicTextUtilities.GetWordWithMarkedLetterText(word.Data, m_oRemovedLetter, markColor, ArabicTextUtilities.MarkType.SingleLetter);
            }
        }
示例#3
0
        public EggLivingLetter(Transform parent, GameObject letterObjectViewPrefab, GameObject shadowPrefab, ILivingLetterData livingLetterData, Vector3 startPosition, Vector3 shadowPosition, Vector3 endPosition, float delay, Action endCallback)
        {
            livingLetter = UnityEngine.Object.Instantiate(letterObjectViewPrefab).GetComponent <LivingLetterController>();

            livingLetter.transform.SetParent(parent);
            livingLetter.transform.localPosition = startPosition;
            livingLetter.Init(livingLetterData);
            livingLetter.transform.localScale *= startScale;
            livingLetter.gameObject.SetActive(false);

            shadowTransform = UnityEngine.Object.Instantiate(shadowPrefab).transform;
            shadowTransform.SetParent(parent);
            shadowLocalPosition           = shadowPosition;
            shadowTransform.localPosition = shadowLocalPosition;
            shadowTransform.localScale   *= 0.7f;
            shadowTransform.gameObject.SetActive(false);

            this.startPosition = startPosition;
            this.endPosition   = endPosition;

            this.delay = delay;

            this.endCallback = endCallback;

            JumpToEnd();
        }
示例#4
0
 void Awake()
 {
     status           = LLStatus.None;
     LLController     = livingLetter.GetComponent <LivingLetterController>();
     startingPosition = transform.position;
     startingRotation = LLController.transform.rotation;
 }
示例#5
0
        protected override LivingLetterController SpawnLetter()
        {
            LivingLetterController l = base.SpawnLetter();

            l.gameObject.AddComponent <FastCrowdDraggableLetter>();

            return(l);
        }
示例#6
0
 void Start()
 {
     letterView       = transform.root.GetComponent <LivingLetterController>();
     origLocalPos     = transform.localPosition;
     thisTransform    = transform;
     origParent       = transform.parent;
     transform.parent = null;
 }
示例#7
0
 void Start()
 {
     shadowStartSize   = shadow.localScale;
     shadow.localScale = Vector3.zero;
     LLMesh            = GetComponentsInChildren <SkinnedMeshRenderer>();
     letterView        = GetComponent <LivingLetterController>();
     letterAnimator    = GetComponent <Animator>();
     statPos           = transform.position;
 }
示例#8
0
        protected virtual LivingLetterController SpawnLetter()
        {
            // Spawn!
            LivingLetterController LLController = Instantiate(livingLetterPrefab);

            LLController.gameObject.SetActive(true);
            LLController.transform.SetParent(transform, true);

            Vector3 newPosition = walkableArea.GetFurthestSpawn(letterGOs); // Find isolated spawn point

            LLController.transform.position = newPosition;
            LLController.transform.rotation = Quaternion.Euler(0, UnityEngine.Random.value * 360, 0);
            LLController.Init(AppManager.I.Teacher.GetAllTestLetterDataLL().GetRandom());

            LLController.gameObject.AddComponent <Rigidbody>().isKinematic = true;

            foreach (var collider in LLController.gameObject.GetComponentsInChildren <Collider>())
            {
                collider.isTrigger = true;
            }

            var characterController = LLController.gameObject.AddComponent <CharacterController>();

            characterController.height = 6;
            characterController.center = Vector3.up * 3;
            characterController.radius = 1.5f;
            LLController.gameObject.AddComponent <LetterCharacterController>();

            var livingLetter = LLController.gameObject.AddComponent <IntroStrollingLetter>();

            livingLetter.factory = this;

            var pos = LLController.transform.position;

            pos.y = 10;
            LLController.transform.position = pos;

            letters.Add(livingLetter);
            letterGOs.Add(livingLetter.gameObject);

            livingLetter.onDropped += (result) =>
            {
                if (result)
                {
                    letters.Remove(livingLetter);
                    letterGOs.Remove(livingLetter.gameObject);
                    toDestroy.Enqueue(livingLetter);
                }

                if (onDropped != null)
                {
                    onDropped(LLController.Data, result);
                }
            };

            return(LLController);
        }
 // Use this for initialization
 void Start()
 {
     m_LetterObjectView = gameObject.GetComponent <LivingLetterController>();
     m_HitState         = eHitState.HIT_NONE;
     m_Tickle           = false;
     m_TickleTime       = 2.0f;
     gameObject.GetComponent <TMPTextColoring>().OnShapeHit += ShapeTouched;
     gameObject.GetComponent <SurfaceColoring>().OnBodyHit  += BodyTouched;
 }
        private void Awake()
        {
            letterObjectView = GetComponent<LivingLetterController>();

            springJoints = new List<SpringJoint>();

            foreach (SpringJoint springJoint in GetComponents<SpringJoint>()) {
                springJoints.Add(springJoint);
            }
        }
示例#11
0
        void Awake()
        {
            letterObjectView = GetComponent <LivingLetterController>();

            foreach (Collider collider in GetComponentsInChildren <Collider>())
            {
                collider.enabled = false;
            }

            SetIsColliderEnabled(true);
            HideVictoryRays();
        }
示例#12
0
 void Start()
 {
     m_oLetter = gameObject.GetComponent <LivingLetterController>();
     if (!m_bSetStartPosition)
     {
         m_v3StartPosition = m_oLetter.gameObject.transform.position;
     }
     else
     {
         m_oLetter.gameObject.transform.position = m_v3StartPosition;
     }
     m_v3Destination = m_Destination.position;
 }
示例#13
0
        ArabicAlphabetHelper.ArabicStringPart RemoveLetterFromQuestion(LL_LetterData letter)
        {
            LL_WordData word = (LL_WordData)m_oCurrQuestionPack.GetQuestion();

            LivingLetterController letterView = m_aoCurrentQuestionScene[0].GetComponent <LetterBehaviour>().mLetter;

            var parts = ArabicAlphabetHelper.FindLetter(AppManager.I.DB, word.Data, letter.Data, true);

            var partToRemove = parts[0];

            letterView.Label.text = ArabicAlphabetHelper.GetWordWithMissingLetterText(word.Data, partToRemove, mk_sRemovedLetterChar);
            return(partToRemove);
        }
示例#14
0
        public StrollingLivingLetter GetLetter(ILivingLetterData data)
        {
            for (int i = 0; i < letters.Count; i++)
            {
                LivingLetterController lov = letters[i].gameObject.GetComponent <LivingLetterController>();
                if (DataMatchingHelper.IsDataMatching(lov.Data, data, LetterEqualityStrictness.Letter))
                {
                    return(letters[i]);
                }
            }

            return(null);
        }
示例#15
0
        public StrollingLivingLetter GetLetter(ILivingLetterData data)
        {
            for (int i = 0; i < letters.Count; i++)
            {
                LivingLetterController lov = letters[i].gameObject.GetComponent <LivingLetterController>();

                if (lov.Data.Equals(data))
                {
                    return(letters[i]);
                }
            }

            return(null);
        }
示例#16
0
        public void Initialize(float _maxY, LivingLetterController _letter, Vector3 tubePosition)
        {
            tubeSpawnPosition = tubePosition - Vector3.up * 4;

            cameraDistance = (transform.position.z) - Camera.main.transform.position.z;

            //cameraDistance = Vector3.Distance(Camera.main.transform.position, transform.position);
            letter = _letter;
            maxY   = _maxY;

            dropLetter    = false;
            isResetting   = false;
            clampPosition = false;
        }
示例#17
0
        StringPart RemoveLetterFromQuestion(LL_LetterData letter)
        {
            LL_WordData word = (LL_WordData)m_oCurrQuestionPack.GetQuestion();

            LivingLetterController letterView = m_aoCurrentQuestionScene[0].GetComponent <LetterBehaviour>().mLetter;

            bool findSameForm = MissingLetterConfiguration.Instance.Variation == MissingLetterVariation.LetterForm;
            var  parts        = LanguageSwitcher.I.GetHelper(LanguageUse.Learning).FindLetter(AppManager.I.DB, word.Data, letter.Data, findSameForm ? LetterEqualityStrictness.WithActualForm : LetterEqualityStrictness.Letter);
            //Debug.LogWarning("Looking for letter " + letter.Id + " into word " + word.Id);

            var partToRemove = parts[0];

            letterView.LabelRender.text = LanguageSwitcher.I.GetHelper(LanguageUse.Learning).GetWordWithMissingLetterText(word.Data, partToRemove);
            return(partToRemove);
        }
示例#18
0
        int RemoveWordfromQuestion(List <LL_WordData> Words, LL_WordData word)
        {
            int index = 0;

            for (; index < Words.Count; ++index)
            {
                if (Words[index].Id == word.Id)
                {
                    break;
                }
            }

            LivingLetterController tmp = m_aoCurrentQuestionScene[index].GetComponent <LetterBehaviour>().mLetter;

            tmp.LabelRender.text = "";
            return(index);
        }
示例#19
0
        //uses fast crowd letter management and dragging:
        public TakeMeHomeLL spawnLetter(ILivingLetterData data)
        {
            //

            LivingLetterController letterObjectView = Instantiate(LLPrefab);

            letterObjectView.gameObject.SetActive(true);
            letterObjectView.transform.localScale = new Vector3(0.8f, 0.8f, 0.8f);
            letterObjectView.transform.SetParent(transform, true);
            Vector3 newPosition = GetComponent <TakeMeHomeGame> ().LLSpawnPosition.position;           // = walkableArea.GetFurthestSpawn(letters); // Find isolated spawn point

            letterObjectView.transform.position = newPosition;
            //letterObjectView.transform.rotation = Quaternion.identity
            letterObjectView.Init(data);

            var ll = letterObjectView.gameObject.AddComponent <TakeMeHomeLL>();

            ll.Initialize(plane.transform.position.y, letterObjectView, GetComponent <TakeMeHomeGame> ().spawnTube.transform.position);

            /*/var livingLetter = letterObjectView.gameObject.AddComponent<FastCrowdLivingLetter>();
             * //livingLetter.crowd = this;
             *
             * letterObjectView.gameObject.AddComponent<FastCrowdDraggableLetter>();*/
            letterObjectView.gameObject.AddComponent <Rigidbody>().isKinematic = true;

            foreach (var collider in letterObjectView.gameObject.GetComponentsInChildren <Collider>())
            {
                collider.isTrigger = true;
            }

            var characterController = letterObjectView.gameObject.AddComponent <CharacterController>();

            characterController.height = 6;
            characterController.center = Vector3.up * 3;
            characterController.radius = 1.5f;



            _letter = (ll);

            return(ll);
        }
示例#20
0
        public EggRunLetter(GameObject letterObjectPrefab, GameObject shadowPrefab, ILivingLetterData letterData, Transform parent, Vector3 leftOutPosition, Vector3 rightOutPosition)
        {
            outPositions[0] = leftOutPosition;
            outPositions[1] = rightOutPosition;

            letterObject = UnityEngine.Object.Instantiate(letterObjectPrefab).GetComponent <LivingLetterController>();
            letterObject.transform.SetParent(parent);
            letterObject.Init(letterData);

            currentOutPosition = UnityEngine.Random.Range(0, 2);

            lerpPositionValue = currentOutPosition;

            letterObject.transform.position = outPositions[currentOutPosition];

            shadowTransform = UnityEngine.Object.Instantiate(shadowPrefab).transform;
            shadowTransform.SetParent(letterObject.transform);
            shadowTransform.localPosition = Vector3.zero;
            shadowTransform.localScale   *= 0.7f;

            letterObject.Poof();
        }
示例#21
0
        public EggLivingLetter(Transform parent, GameObject letterObjectViewPrefab, GameObject shadowPrefab, ILivingLetterData livingLetterData, Vector3 startPosition, Vector3 shadowPosition, Vector3 endPosition, float delay, Action endCallback)
        {
            livingLetter = UnityEngine.Object.Instantiate(letterObjectViewPrefab).GetComponent <LivingLetterController>();

            livingLetter.transform.SetParent(parent);
            livingLetter.transform.localPosition = startPosition;


            if (livingLetterData.DataType == LivingLetterDataType.Letter)
            {
                ((LL_LetterData)livingLetterData).ForceShowAccent = true;
            }
            livingLetter.Init(livingLetterData);


            livingLetter.transform.localScale *= startScale;
            livingLetter.gameObject.SetActive(false);

            if (EggConfiguration.Instance.Variation == EggVariation.Image)
            {
                livingLetter.TransformIntoImage();
            }

            shadowTransform = UnityEngine.Object.Instantiate(shadowPrefab).transform;
            shadowTransform.SetParent(parent);
            shadowLocalPosition           = shadowPosition;
            shadowTransform.localPosition = shadowLocalPosition;
            shadowTransform.localScale   *= 0.7f;
            shadowTransform.gameObject.SetActive(false);

            this.startPosition = startPosition;
            this.endPosition   = endPosition;

            this.delay = delay;

            this.endCallback = endCallback;

            JumpToEnd();
        }
示例#22
0
        void RestoreQuestion(bool result)
        {
            LivingLetterController letterView = m_aoCurrentQuestionScene[m_iRemovedLLDataIndex].GetComponent <LetterBehaviour>().mLetter;

            foreach (GameObject _obj in m_aoCurrentQuestionScene)
            {
                _obj.GetComponent <LetterBehaviour>().Refresh();
            }

            if (result)
            {
                m_oEmoticonsController.EmoticonPositive();
            }
            else
            {
                m_oEmoticonsController.EmoticonNegative();
            }

            //change restored color letter with tag
            Color32 markColor = result ? new Color32(0x4C, 0xAF, 0x50, 0xFF) : new Color32(0xDD, 0x2C, 0x00, 0xFF);
            string  color     = result ? "#4CAF50" : "#DD2C00";

            switch (MissingLetterConfiguration.Instance.Variation)
            {
            case MissingLetterVariation.Phrase:
                letterView.LabelRender.text = "<color=" + color + ">" + letterView.LabelRender.text + "</color>";
                break;

            case MissingLetterVariation.LetterForm:
            case MissingLetterVariation.LetterInWord:
                var word = (LL_WordData)m_oCurrQuestionPack.GetQuestion();
                letterView.LabelRender.text = LanguageSwitcher.LearningHelper.GetWordWithMarkedLetterText(word.Data, m_oRemovedLetter, markColor, MarkType.SingleLetter);
                break;

            case MissingLetterVariation.Image:
                break;
            }
        }
示例#23
0
        private void InitTutorialLetter()
        {
            m_LetterObjectView = m_TutorialLetter.GetComponent <LivingLetterController>();

            m_TMPTextColoringLetter = m_TutorialLetter.GetComponent <TMPTextColoring>();
            m_SurfaceColoringLetter = m_TutorialLetter.GetComponent <SurfaceColoring>();

            m_LLController = m_TutorialLetter.GetComponent <ColorTickle_LLController>();
            m_LLController.movingToDestination = true;

            m_HitStateLLController = m_TutorialLetter.GetComponent <HitStateLLController>();
            m_HitStateLLController.OnTouchedOutside += LoseLife;
            m_HitStateLLController.EnableTutorial   += EnableTutorialAnimation;

            SetBrushColor(new Color(255, 0, 0, 255));

            DisableLetterComponents();

            //m_LLController.OnDestinationReached += EnableTutorialAnimation;

            m_LLController.OnDestinationReached += delegate() {
                //play intro dialogue
                game.PlayIntro(() => {
                    //play tutorial dialogue on intro finish

                    //for now this is broken, COLORTICKLE_TUTO is repeated like a loop
                    // HACK stop audio and replay music
                    //game.Context.GetAudioManager().PlayDialogue(Db.LocalizationDataId.ColorTickle_Tuto, delegate() { game.Context.GetAudioManager().StopMusic(); game.Context.GetAudioManager().PlayMusic(game.backgroundMusic); });

                    game.PlayTutorial(null);

                    EnableLetterComponents();
                    EnableTutorialAnimation();
                });
            };
        }
示例#24
0
 /// <summary>
 /// Risen on letter or world match.
 /// </summary>
 private void Droppable_OnRightMatch(LivingLetterController _letterView)
 {
     AudioManager.I.PlaySound(Sfx.OK);
     NextArea();
 }
示例#25
0
 private void Droppable_OnWrongMatch(LivingLetterController _letterView)
 {
     AudioManager.I.PlaySound(Sfx.KO);
 }
示例#26
0
 void Start()
 {
     letter = GetComponent <LivingLetterController>();
     letter.SetState(LLAnimationStates.LL_rocketing);
 }
 void Start()
 {
     letter = GetComponent <LivingLetterController>();
 }
 public StrollingLetterFallingState(StrollingLivingLetter letter) : base(letter)
 {
     view = letter.gameObject.GetComponent <LivingLetterController>();
 }