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>(); }
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 (); }
public Consumable(string itemName, int value, ConsumableEffect effect) : base(itemName, value) { this.effect = effect; }
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(); }
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()); }
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); }