/// <summary>
        /// Loads the reward on model.
        /// </summary>
        /// <param name="rewardPackUnlockData">The identifier.</param>
        /// <returns></returns>
        private GameObject LoadRewardPropOnAntura(RewardPack rewardPack)
        {
            RewardProp prop = rewardPack.RewardBase as RewardProp;

            if (prop == null)
            {
                Debug.LogFormat("Prop {0} not found!", rewardPack.BaseId);
                return(null);
            }

            // Check if we already loaded a reward of this category
            LoadedModel loadedModel = LoadedModels.Find(lm => lm.RewardPack.Category == prop.Category);

            if (loadedModel != null)
            {
                Destroy(loadedModel.GO);
                LoadedModels.Remove(loadedModel);
            }

            // Load Model
            string     boneParent  = prop.BoneAttach;
            GameObject rewardModel = null;

            switch (boneParent)
            {
            case "dog_head":
                rewardModel = ModelsManager.MountModel(prop.ID, Dog_head);
                break;

            case "dog_spine01":
                rewardModel = ModelsManager.MountModel(prop.ID, Dog_spine01);
                break;

            case "dog_jaw":
                rewardModel = ModelsManager.MountModel(prop.ID, Dog_jaw);
                break;

            case "dog_Tail4":
                rewardModel = ModelsManager.MountModel(prop.ID, Dog_Tail3);
                break;

            case "dog_R_ear04":
                rewardModel = ModelsManager.MountModel(prop.ID, Dog_R_ear04);
                break;

            case "dog_L_ear04":
                rewardModel = ModelsManager.MountModel(prop.ID, Dog_L_ear04);
                break;
            }

            // Set materials
            ModelsManager.SwitchMaterial(rewardModel, rewardPack.GetMaterialPair());

            // Save on LoadedModel List
            LoadedModels.Add(new LoadedModel()
            {
                RewardPack = rewardPack, GO = rewardModel
            });
            return(rewardModel);
        }
Exemple #2
0
    public void OpenWindow(NestedWeightedRewardPack nestedRewardPack)
    {
        currentRewardPack = nestedRewardPack.GetPackByWeight(out packIndex);
        currentRewardPack.Use();

        if (nestedRewardPack.Packs.Count != count)
        {
            return;
        }

        spinButton.gameObject.SetActive(true);

        var t = startOffsetDeg * Mathf.Deg2Rad;

        for (int i = 0; i < count; i++)
        {
            var pack = nestedRewardPack.Packs[i];
            for (int j = 0; j < pack.Rewards.Count; j++)
            {
                var rewardSource = pack.Rewards[j];
                var cloned       = pool.GetOrInstantiate(rewardSource.Source.TypeId);
                cloned.Source = rewardSource;
                cloned.Init();
                cloned.transform.localPosition    = new Vector3(radius * Mathf.Cos(t), radius * Mathf.Sin(t));
                cloned.transform.localEulerAngles = new Vector3(0, 0, t * Mathf.Rad2Deg + rotateElementOffsetDeg);
            }
            t += delta;
        }
        OpenWindow();
    }
        private void RewardSystemManager_OnRewardItemChanged(RewardPack rewardPack)
        {
            LoadRewardPackOnAntura(rewardPack);
            //rewardPack.SetNew(false);

            AppManager.I.RewardSystemManager.SaveRewardsUnlockDataChanges();
            SaveAnturaCustomization();
        }
        public GameObject LoadRewardPackOnAntura(RewardPack rewardPack)
        {
            if (rewardPack == null)
            {
                return(null);
            }
            switch (rewardPack.BaseType)
            {
            case RewardBaseType.Prop:
                return(LoadRewardPropOnAntura(rewardPack));

            case RewardBaseType.Texture:
                var newMaterial = MaterialManager.LoadTextureMaterial(rewardPack.BaseId, rewardPack.ColorId);
                // Main mesh
                var mats = SkinnedMesh.sharedMaterials;
                mats[0] = newMaterial;
                SkinnedMesh.sharedMaterials = mats;
                LoadedTexturePack           = rewardPack;
                // Sup mesh for texture
                foreach (var _renderer in SkinnedMeshsTextureOnly)
                {
                    var materials = _renderer.sharedMaterials;
                    materials[0] = newMaterial;
                    _renderer.sharedMaterials = materials;
                }
                break;

            case RewardBaseType.Decal:
                Material newDecalMaterial = MaterialManager.LoadTextureMaterial(rewardPack.BaseId, rewardPack.ColorId);
                // Main mesh
                Material[] decalMats = SkinnedMesh.sharedMaterials;
                decalMats[1] = newDecalMaterial;
                SkinnedMesh.sharedMaterials = decalMats;
                // Sup mesh for texture
                foreach (SkinnedMeshRenderer _renderer in SkinnedMeshsTextureOnly)
                {
                    Material[] materials = _renderer.sharedMaterials;
                    materials[1] = newDecalMaterial;
                    _renderer.sharedMaterials = materials;
                }
                LoadedDecalPack = rewardPack;
                break;

            default:
                Debug.LogWarningFormat("Reward Type {0} not found!", rewardPack.BaseType);
                break;
            }
            return(null);
        }
Exemple #5
0
        /// <summary>
        /// Loads all rewards in "this" object instance from list of reward ids.
        /// </summary>
        /// <param name="_listOfIdsAsJsonString">The list of ids as json string.</param>
        public void LoadFromListOfIds(string _listOfIdsAsJsonString)
        {
            if (AppManager.I.Player == null)
            {
                Debug.Log("No default reward already created. Unable to load customization now");
                return;
            }

            AnturaCustomization tmp = JsonUtility.FromJson <AnturaCustomization>(_listOfIdsAsJsonString);

            if (tmp != null)
            {
                PropPacksIds  = tmp.PropPacksIds;
                TexturePackId = tmp.TexturePackId;
                DecalPackId   = tmp.DecalPackId;
            }

            var rewardSystem = AppManager.I.RewardSystemManager;

            if (string.IsNullOrEmpty(TexturePackId))
            {
                RewardPack defaultTileTexturePack = rewardSystem.GetAllRewardPacksOfBaseType(RewardBaseType.Texture)[0];
                Debug.LogWarning("AnturaCustomization: Using default texture: " + defaultTileTexturePack);
                TexturePackId = defaultTileTexturePack.UniqueId;
            }
            if (string.IsNullOrEmpty(DecalPackId))
            {
                RewardPack defaultDecalTexturePack = rewardSystem.GetAllRewardPacksOfBaseType(RewardBaseType.Decal)[0];
                Debug.LogWarning("AnturaCustomization: Using default decal: " + defaultDecalTexturePack);
                DecalPackId = defaultDecalTexturePack.UniqueId;
            }

            // Load correct packs from IDs
            PropPacks = new List <RewardPack>();
            foreach (string propPackId in PropPacksIds)
            {
                var pack = rewardSystem.GetRewardPackByUniqueId(propPackId);
                if (pack != null)
                {
                    PropPacks.Add(pack);
                }
            }

            TexturePack = rewardSystem.GetRewardPackByUniqueId(TexturePackId);
            DecalPack   = rewardSystem.GetRewardPackByUniqueId(DecalPackId);
        }
 /// <summary>
 /// Sets the reward material colors.
 /// </summary>
 /// <param name="_gameObject">The game object.</param>
 /// <param name="rewardPackUnlockData">The reward pack.</param>
 /// <returns></returns>
 public GameObject SetRewardMaterialColors(GameObject _gameObject, RewardPack rewardPack)
 {
     ModelsManager.SwitchMaterial(_gameObject, rewardPack.GetMaterialPair());
     //actualRewardsForCategoryColor.Add()
     return(_gameObject);
 }
 public void OpenWindow(RewardPack pack)
 {
     this.pack = pack;
     OpenWindow();
 }