void feedDogs(DogFoodData food) { int amountFoodNeeded = calculateDogFoodNeeded(); if (amountFoodNeeded <= k.NONE_VALUE) { return; } DogFoodData foodNeeded = food.Copy(); foodNeeded.SetAmount(-amountFoodNeeded); if (dataController.HasFood(food.FoodType, amountFoodNeeded) && !IsCurrentlyFeeding) { dataController.ChangeCurrencyAmount(foodNeeded); buttonReference.interactable = false; EventController.Event(k.GetPlayEvent(k.ADD_FOOD)); dataController.RefillDogFood(); giveDogsFood(foodNeeded); foodBowlImage.color = food.Color; currentFood = foodNeeded; feedingTimer.Reset(); feedingTimer.Begin(); foodSelector.Hide(); } else { EventController.Event(k.GetPlayEvent(k.EMPTY)); foodSelector.SetDescription(LanguageDatabase.GetInstance.GetTerm(k.BUY_MORE_FOOD)); foodSelector.SetDelegate(loadFoodShop); } }
void updateFoodDisplay(DogFoodData food) { foodBowlIcon.SetImageColor(food.Color); foodAmount.SetText(food.Amount.ToString()); descriptionDisplay.SetText(food.Description); SetDelegate(defaultClickYes); }
public DogFoodData DigestFood() { DogFoodData food = this.eatenFood; this.eatenFood = null; return(food); }
public DogFoodData GetPiece() { DogFoodData piece = Copy(); piece.amount = k.SINGLE_VALUE; return(piece); }
public void SetAmount(int amount, string type = k.DEFAULT_FOOD_TYPE) { DogFoodData food = GetFood(type); int difference = amount - food.Amount; food.ChangeBy(difference); }
void giveDogsFood(DogFoodData food) { foreach (DogDescriptor dog in dataController.HomeDogs) { DogFoodData pieceOfFood = food.GetPiece(); dog.EatFood(pieceOfFood); } }
public DogFoodData GetLastUsedFood() { if (lastUsedFood == null) { lastUsedFood = GetFood(); } return(lastUsedFood); }
public void ChangeBy(int delta, string type = k.DEFAULT_FOOD_TYPE) { DogFoodData food = GetFood(type); food.ChangeBy(delta); if (delta < k.NONE_VALUE) { this.lastUsedFood = food; } }
public DogFoodData Get(string foodType) { DogFoodData food; if (!dogFoodLookup.TryGetValue(foodType, out food)) { food = DogFoodData.Default(); } return(food); }
CurrencyType defaultRandomType(DogDescriptor dog, DogFoodData food) { return(new WeightedRandomBuffer <CurrencyType>( new CurrencyType[] { CurrencyType.Coins, CurrencyType.DogFood, CurrencyType.SpecialGift }, getWeights(food, hasSpecialization: false)).GetRandom()); }
public static DogFoodData Default() { DogFoodData defaultFood = new DogFoodData(k.NONE_VALUE); defaultFood.foodType = k.DEFAULT_FOOD_TYPE; defaultFood.amountMod = k.NONE_VALUE; defaultFood.specialGiftMod = k.NONE_VALUE; defaultFood.colorHex = k.DEFAULT_FOOD_COLOR_HEX; defaultFood.color = k.DEFAULT_FOOD_COLOR; return(defaultFood); }
public void AddFood(DogFoodData newFood) { DogFoodData existingFood; if (foods.TryGetValue(newFood.FoodType, out existingFood)) { existingFood.ChangeBy(newFood.Amount); } else { foods[newFood.FoodType] = newFood; } }
void setFood(DogFoodData food, bool calculateIndex = true) { selectedFood = food; if (calculateIndex) { try { currentFoodIndex = ArrayUtil.IndexOf(foodOptions, selectedFood); } catch { currentFoodIndex = k.NONE_VALUE; selectedFood = foodOptions[currentFoodIndex]; } } updateFoodDisplay(food); }
CurrencyData generateGift(DogDescriptor dog) { #if UNITY_EDITOR // CHEAT: Returns the souvenir first for testing purposes: if (alwaysReturnSouvenirFirst && !dog.SouvenirCollected) { return(dog.Souvenir); } else if (alwaysReturnSpecialGift) { return(getSpecialGift(dog)); } #endif DogFoodData food = dog.DigestFood(); if (food == null) { food = dataController.DogFood; } CurrencyType specialization = dog.Breed.ISpecialization; int amount = randomAmount(); CurrencyType type; if (specialization == CurrencyType.None) { type = defaultRandomType(dog, food); } else { type = getRandomizerBySpecialization(dog, food, specialization).GetRandom(); } if (type == CurrencyType.SpecialGift) { return(getSpecialGift(dog)); } else { CurrencyData gift = giftFactory.Create(type, amount); if (food.AmountMod != k.NONE_VALUE) { gift.MultiplyBy(food.AmountMod); } return(gift); } }
float[] getWeights(DogFoodData dogFood, bool hasSpecialization) { float difference; float halfDifference; float specialGiftChance; if (dogFood.SpecialGiftMod != k.NONE_VALUE) { difference = dogFood.SpecialGiftMod - tuning.ChanceOfSpecialGift; specialGiftChance = dogFood.SpecialGiftMod; } else { difference = k.NONE_VALUE; specialGiftChance = tuning.ChanceOfSpecialGift; } halfDifference = difference / 2f; float[] weights; if (hasSpecialization) { weights = new float[] { tuning.ChanceOfSpecialization - halfDifference, tuning.ChanceOfSecondary - halfDifference, specialGiftChance, }; } else { weights = new float[] { tuning.DefaultChanceOfCollectingDogFood - halfDifference, tuning.DefaultChanceOfCollectingMoney - halfDifference, specialGiftChance, }; } return(weights); }
public void EatFood(DogFoodData food) { this.eatenFood = food; }
WeightedRandomBuffer <CurrencyType> getRandomizerBySpecialization(DogDescriptor dog, DogFoodData food, CurrencyType specialization) { CurrencyType[] currencies = new CurrencyType[] { specialization, getSecondary(specialization), CurrencyType.SpecialGift, }; float[] weights = getWeights(food, hasSpecialization: true); return(new WeightedRandomBuffer <CurrencyType>(currencies, weights)); }
void loadFoodShop(DogFoodData selectedFood) { PPSceneController.Instance.LoadShop(); }