Example #1
0
        override public void Execute()
        {
            Retain();
            // create data package for breeding view
            BreedingCoupleDataModel coupleData = new BreedingCoupleDataModel();

            var monsters = gameDataService.monsters;
            var images   = gameDataService.imageCache;

            // Creating left element
            coupleData.leftMonsterId          = coupleId.leftMonsterId;
            coupleData.leftMonsterName        = monsters[coupleId.leftMonsterId].name;
            coupleData.leftMonsterDescription = monsters[coupleId.leftMonsterId].description;
            coupleData.leftMonsterLevel       = monsters[coupleId.leftMonsterId].level;
            coupleData.leftMonsterTex         = images[monsters[coupleId.leftMonsterId].full_img];
            coupleData.leftMonsterType        = monsters[coupleId.leftMonsterId].type;

            // Creating right element
            coupleData.rightMonsterId          = coupleId.rightMonsterId;
            coupleData.rightMonsterName        = monsters[coupleId.rightMonsterId].name;
            coupleData.rightMonsterDescription = monsters[coupleId.rightMonsterId].description;
            coupleData.rightMonsterLevel       = monsters[coupleId.rightMonsterId].level;
            coupleData.rightMonsterTex         = images[monsters[coupleId.rightMonsterId].full_img];
            coupleData.rightMonsterType        = monsters[coupleId.rightMonsterId].type;


            newCoupleSignal.Dispatch(coupleData);

            Release();
        }
    private void OnBreedingStart(BreedingCoupleDataModel couple)
    {
        rightMonsterTex.Value         = couple.rightMonsterTex;
        rightMonsterName.Value        = couple.rightMonsterName;
        rightMonsterDescription.Value = couple.rightMonsterDescription;


        leftMonsterTex.Value         = couple.leftMonsterTex;
        leftMonsterName.Value        = couple.leftMonsterName;
        leftMonsterDescription.Value = couple.leftMonsterDescription;


        // Activate animations
        view.loving_fx_left.SetActive(true);
        view.loving_fx_right.SetActive(true);
        view.electro_fx.SetActive(true);
        view.gem_aura_fx.SetActive(true);

        // Activate animations based on monster type
        switch (couple.leftMonsterType)
        {
        case "Fire Lion":
            view.fire_lion_fx_left.SetActive(true);
            break;

        case "Lord of Atlantis":
            view.atlantis_fx_left.SetActive(true);
            break;

        case "Pandalf":
            view.pandalf_fx_left.SetActive(true);
            break;

        case "Rockilla":
            break;

        default:
            break;
        }

        switch (couple.rightMonsterType)
        {
        case "Fire Lion":
            view.fire_lion_fx_right.SetActive(true);
            break;

        case "Lord of Atlantis":
            view.atlantis_fx_right.SetActive(true);
            break;

        case "Pandalf":
            view.pandalf_fx_right.SetActive(true);
            break;

        case "Rockilla":
            break;

        default:
            break;
        }



        // Generate a random breeding time
        int breedingTime = UnityEngine.Random.Range(MinBreedingTime, MaxBreedingTime + 1);

        StartCoroutine("BreedingProcess", breedingTime);

        view.ShowView();
    }