Ejemplo n.º 1
0
 void Start()
 {
     _effect             = new ConsumableEffect(transform.parent.transform.parent.Find("ConsumableList").transform);
     _consumablePlayerUI = transform.parent.transform.parent.Find("UI").Find("Consumable").GetComponent <ConsumableUI>();
     _playerTransform    = transform.parent.transform;
     _playerAnimator     = transform.parent.GetComponent <Animator>();
 }
Ejemplo n.º 2
0
        public void AddConsumable([NotNull] ProtoEntityViewModel consumableViewModel, double intensity)
        {
            if (Consumables.Count == 0)
            {
                ConsumableEffect = new ConsumableEffectViewModel(this, consumableViewModel, intensity);
                EntityViewModelsManager.AddRecipe(ConsumableEffect);
            }
            else
            {
                ConsumableEffect.AddConsumable(consumableViewModel, intensity);
            }

            Consumables.Add(consumableViewModel);
        }
		public void Decorate(GameObject go, Dictionary<string, object> options, AssetBundle assetBundle)
		{
			switch ((string)options ["type"]) {
            case "wearable":
                new WearableProductDecorator (_name).Decorate (go, options, assetBundle);
				break;
			case "consumable":
				new ConsumableProductDecorator (_name).Decorate (go, options, assetBundle);
				break;
            case "ongoing":
                new OnGoingProductDecorator(_name).Decorate(go,options,assetBundle);
                break;
			default:
				UnityEngine.Debug.Log ("illegal type");
				break;
			}


			List<Ingredient> ingredients = new List<Ingredient> ();
			foreach (KeyValuePair<string,object> collection in options["ingredients"] as Dictionary<string,object>) {
				var dictIngredient = collection.Value as Dictionary<string,object>;
				var resource = ScriptableObject.CreateInstance< Resource> ();
				resource.name = collection.Key;
				resource.setDisplayName (collection.Key);
				resource.costs = (float)(double)dictIngredient ["price"];
				resource.getResourceSettings ().percentage = 1f;
				if (dictIngredient.ContainsKey ("effects")) {
					List<ConsumableEffect> consumableEffects = new List<ConsumableEffect> ();

					foreach (object temp in dictIngredient["effects"] as List<object>) {
						Dictionary<string,object> affects = (Dictionary<string,object>)temp; 
						var consumableEffect = new ConsumableEffect ();
						switch ((string)affects ["affectStat"]) {
						case "hunger":
							consumableEffect.affectedStat = ConsumableEffect.AffectedStat.HUNGER;
							break;
						case "thirst":
							consumableEffect.affectedStat = ConsumableEffect.AffectedStat.THIRST;
							break;
						case "happiness":
							consumableEffect.affectedStat = ConsumableEffect.AffectedStat.HAPPINESS;
							break;
						case "tiredness":
							consumableEffect.affectedStat = ConsumableEffect.AffectedStat.TIREDNESS;
							break;
						case "sugarboost":
							consumableEffect.affectedStat = ConsumableEffect.AffectedStat.SUGARBOOST;
							break;
						default:
							UnityEngine.Debug.LogWarning("Unknown affect:" + affects["affectStat"]);
						break;
						}
						consumableEffect.amount = (float)(double)affects ["amount"];
						consumableEffects.Add (consumableEffect);
					}
					resource.effects = consumableEffects.ToArray ();
				}
				Ingredient ingredient = new Ingredient ();
				ingredient.defaultAmount = (float)(double)dictIngredient ["amount"];
				ingredient.tweakable = (bool)dictIngredient ["tweakable"];
				AssetManager.Instance.registerObject (resource);
				ingredient.resource = resource;
				ingredients.Add (ingredient);

			}
			go.gameObject.GetComponent<Product> ().ingredients = ingredients.ToArray ();

		}
Ejemplo n.º 4
0
 public Consumable(string itemName, int value, ConsumableEffect effect) : base(itemName, value)
 {
     this.effect = effect;
 }
Ejemplo n.º 5
0
        public void Decorate(GameObject go, Dictionary <string, object> options, AssetBundle assetBundle)
        {
            switch ((string)options ["type"])
            {
            case "wearable":
                new WerableProductDecorator(_name).Decorate(go, options, assetBundle);
                break;

            case "consumable":
                new ConsumableProductDecorator(_name).Decorate(go, options, assetBundle);
                break;

            case "ongoing":
                new OnGoingProductDecorator(_name).Decorate(go, options, assetBundle);
                break;

            default:
                UnityEngine.Debug.Log("illegal type");
                break;
            }

            List <Ingredient> ingredients = new List <Ingredient> ();

            foreach (KeyValuePair <string, object> collection in options["ingredients"] as Dictionary <string, object> )
            {
                var dictIngredient = collection.Value as Dictionary <string, object>;
                var resource       = ScriptableObject.CreateInstance <Resource> ();
                resource.name = collection.Key;
                resource.setDisplayName(collection.Key);
                resource.costs = (float)(double)dictIngredient ["price"];
                resource.getResourceSettings().percentage = 1f;
                if (dictIngredient.ContainsKey("effects"))
                {
                    List <ConsumableEffect> consumableEffects = new List <ConsumableEffect> ();

                    foreach (object temp in dictIngredient["effects"] as List <object> )
                    {
                        Dictionary <string, object> affects = (Dictionary <string, object>)temp;
                        var consumableEffect = new ConsumableEffect();
                        switch ((string)affects ["affectStat"])
                        {
                        case "hunger":
                            consumableEffect.affectedStat = ConsumableEffect.AffectedStat.HUNGER;
                            break;

                        case "thirst":
                            consumableEffect.affectedStat = ConsumableEffect.AffectedStat.THIRST;
                            break;

                        case "happiness":
                            consumableEffect.affectedStat = ConsumableEffect.AffectedStat.HAPPINESS;
                            break;

                        case "tiredness":
                            consumableEffect.affectedStat = ConsumableEffect.AffectedStat.TIREDNESS;
                            break;

                        case "sugarboost":
                            consumableEffect.affectedStat = ConsumableEffect.AffectedStat.SUGARBOOST;
                            break;

                        default:
                            UnityEngine.Debug.LogWarning("Unknown affect:" + affects["affectStat"]);
                            break;
                        }
                        consumableEffect.amount = (float)(double)affects ["amount"];
                        consumableEffects.Add(consumableEffect);
                    }
                    resource.effects = consumableEffects.ToArray();
                }
                Ingredient ingredient = new Ingredient();
                ingredient.defaultAmount = (float)(double)dictIngredient ["amount"];
                ingredient.tweakable     = (bool)dictIngredient ["tweakable"];
                AssetManager.Instance.registerObject(resource);
                ingredient.resource = resource;
                ingredients.Add(ingredient);
            }
            go.gameObject.GetComponent <Product> ().ingredients = ingredients.ToArray();
        }
Ejemplo n.º 6
0
    public Ingredient[] generateIngredient()
    {
        List <Ingredient> results = new List <Ingredient>();

        foreach (var t in Ingredients)
        {
            Ingredient ing = new Ingredient();
            ing.defaultAmount = t.Amount;
            ing.tweakable     = t.Tweakable;
            results.Add(ing);

            var resource = CreateInstance <Resource>();
            ing.resource  = resource;
            resource.name = t.Name;
            resource.setDisplayName(t.Name);
            resource.setCosts(t.Price);
            resource.getResourceSettings().percentage = 1f;

            List <ConsumableEffect> consumableEffects = new List <ConsumableEffect>();
            foreach (var t1 in t.Effects)
            {
                var consumableEffect = new ConsumableEffect();
                consumableEffect.amount = t1.Amount;
                switch (t1.Type)
                {
                case EffectTypes.HUNGER:
                    consumableEffect.affectedStat = ConsumableEffect.AffectedStat.HUNGER;
                    break;

                case EffectTypes.THIRST:

                    consumableEffect.affectedStat = ConsumableEffect.AffectedStat.THIRST;
                    break;

                case EffectTypes.HAPPINESS:

                    consumableEffect.affectedStat = ConsumableEffect.AffectedStat.HAPPINESS;
                    break;

                case EffectTypes.TIREDNESS:

                    consumableEffect.affectedStat = ConsumableEffect.AffectedStat.TIREDNESS;
                    break;

                case EffectTypes.SUGARBOOST:

                    consumableEffect.affectedStat = ConsumableEffect.AffectedStat.SUGARBOOST;
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }

                consumableEffects.Add(consumableEffect);
            }

            resource.effects = consumableEffects.ToArray();
        }

        return(results.ToArray());
    }
Ejemplo n.º 7
0
    public virtual GameObject Decorate()
    {
        Product P = GO.GetComponent <Product>();

        P.defaultPrice = price;


        switch (Hand)
        {
        case hand.Left:
            P.handSide = global::Hand.Side.LEFT;
            break;

        case hand.Right:
            P.handSide = global::Hand.Side.RIGHT;
            break;
        }

        List <Ingredient> ingredientsMod = new List <Ingredient>();

        foreach (ingredient I in ingredients)
        {
            var resource = ScriptableObject.CreateInstance <Resource>();
            resource.name = I.Name;
            resource.setDisplayName(I.Name);
            resource.costs = I.price;
            resource.getResourceSettings().percentage = 1f;
            List <ConsumableEffect> consumableEffects = new List <ConsumableEffect>();
            foreach (effect E in I.effects)
            {
                var consumableEffect = new ConsumableEffect();
                switch (E.Type)
                {
                case effect.Types.hunger:
                    consumableEffect.affectedStat = ConsumableEffect.AffectedStat.HUNGER;
                    break;

                case effect.Types.thirst:
                    consumableEffect.affectedStat = ConsumableEffect.AffectedStat.THIRST;
                    break;

                case effect.Types.happiness:
                    consumableEffect.affectedStat = ConsumableEffect.AffectedStat.HAPPINESS;
                    break;

                case effect.Types.tiredness:
                    consumableEffect.affectedStat = ConsumableEffect.AffectedStat.TIREDNESS;
                    break;

                case effect.Types.sugarboost:
                    consumableEffect.affectedStat = ConsumableEffect.AffectedStat.SUGARBOOST;
                    break;
                }
                consumableEffect.amount = E.amount;
                consumableEffects.Add(consumableEffect);
            }
            resource.effects = consumableEffects.ToArray();
            Ingredient ingredient = new Ingredient();
            ingredient.defaultAmount = I.amount;
            ingredient.tweakable     = I.tweakable;
            AssetManager.Instance.registerObject(resource);
            ingredient.resource = resource;
            ingredientsMod.Add(ingredient);
        }
        P.ingredients = ingredientsMod.ToArray();

        return(GO);
    }