public void showInfo(Vector3 location, Aspects.Primary primary, Aspects.Secondary secondary) { panel.transform.position = new Vector3(location.x, location.y, panel.transform.position.z); this.primary.sprite = Aspects.instance().getNormalSprite(primary); this.secondary.sprite = Aspects.instance().getNormalSprite(secondary); panel.SetActive(true); }
private Potion getBestMatch(Aspects.Primary primary1, Aspects.Primary primary2, Aspects.Primary primary3, MultiSet <Aspects.Secondary> secondaries) { MultiSet <Aspects.Primary> primaries = new MultiSet <Aspects.Primary>(); primaries.Add(primary1); primaries.Add(primary2); primaries.Add(primary3); if (!potions.ContainsKey(primaries)) { return(defaultPotion); } List <Potion> primaryMatches = potions[primaries]; Potion bestMatch = null; foreach (Potion primaryMatch in primaryMatches) { bool match = (primaryMatch.getSecondaries().Except(secondaries).Count == 0); if (match && (bestMatch == null || bestMatch.getSecondaries().Count() < primaryMatch.getSecondaries().Count())) { bestMatch = primaryMatch; } } return(bestMatch); }
public IngredientData(IngredientType type, Aspects.Primary primary, Aspects.Secondary secondary) { this.type = type; this.primary = primary; this.secondary = secondary; primaryGuesses = new Dictionary<Aspects.Primary, GuessState>(); secondaryGuesses = new Dictionary<Aspects.Secondary, GuessState>(); }
public IngredientData(IngredientType type, Aspects.Primary primary, Aspects.Secondary secondary) { this.type = type; this.primary = primary; this.secondary = secondary; primaryGuesses = new Dictionary <Aspects.Primary, GuessState>(); secondaryGuesses = new Dictionary <Aspects.Secondary, GuessState>(); }
public GuessState getGuessState(Aspects.Primary aspect) { if (primaryGuesses.ContainsKey(aspect)) { return(primaryGuesses[aspect]); } else { return(GuessState.UNKNOWN); } }
public Potion(Aspects.Primary primary1, Aspects.Primary primary2, Aspects.Primary primary3, MultiSet <Aspects.Secondary> secondaries, PotionSlot slot, Aspects.Secondary type, Effect effect) { primaries = new MultiSet <Aspects.Primary>(); primaries.Add(primary1); primaries.Add(primary2); primaries.Add(primary3); this.secondaries = new MultiSet <Aspects.Secondary>(secondaries); _slot = slot; _type = type; _effect = effect; }
public void add(Aspects.Primary primary1, Aspects.Primary primary2, Aspects.Primary primary3, MultiSet <Aspects.Secondary> secondaries, PotionSlot slot, Aspects.Secondary type, Effect effect) { Potion potion = new Potion(primary1, primary2, primary3, secondaries, slot, type, effect); MultiSet <Aspects.Primary> primaries = new MultiSet <Aspects.Primary>(); primaries.Add(primary1); primaries.Add(primary2); primaries.Add(primary3); if (!potions.ContainsKey(primaries)) { potions.Add(primaries, new List <Potion>()); } potions[primaries].Add(potion); }
public bool hasMultiplePrimaryGuesses() { Aspects.Primary guess = Aspects.Primary.UNKNOWN; foreach (Aspects.Primary aspect in primaryGuesses.Keys) { if (primaryGuesses[aspect] == GuessState.HAS) { if (guess == Aspects.Primary.UNKNOWN) { guess = aspect; } else { // Multiple aspects guessed return(true); } } } return(false); }
public Aspects.Primary getPrimaryGuess() { Aspects.Primary guess = Aspects.Primary.UNKNOWN; foreach (Aspects.Primary aspect in primaryGuesses.Keys) { if (primaryGuesses[aspect] == GuessState.HAS) { if (guess == Aspects.Primary.UNKNOWN) { guess = aspect; } else { // Multiple aspects guessed; invalid return(Aspects.Primary.UNKNOWN); } } } return(guess); }
private void initAspect(IngredientType ingredient, GameObject lineItemInstance, String childName, Aspects.Primary aspect) { GameObject iconButton = lineItemInstance.transform.Find(childName).gameObject; iconButton.GetComponent <Image>().sprite = Aspects.instance().getGreyedSprite(aspect); IngredientData.GuessState currentGuess = Ingredients.instance().getIngredient(ingredient).getGuessState(aspect); switch (currentGuess) { case IngredientData.GuessState.UNKNOWN: iconButton.GetComponent <Image>().sprite = Aspects.instance().getGreyedSprite(aspect); break; case IngredientData.GuessState.HAS: iconButton.GetComponent <Image>().sprite = Aspects.instance().getNormalSprite(aspect); break; case IngredientData.GuessState.NOT_HAS: iconButton.GetComponent <Image>().sprite = Aspects.instance().getDisabledSprite(aspect); break; } iconButton.GetComponent <Button>().onClick.AddListener(() => { IngredientData data = Ingredients.instance().getIngredient(ingredient); IngredientData.GuessState guess = data.getGuessState(aspect); IngredientData.GuessState next = IngredientData.GuessState.UNKNOWN; Image icon = iconButton.GetComponent <Image>(); switch (guess) { case IngredientData.GuessState.UNKNOWN: next = IngredientData.GuessState.HAS; icon.sprite = Aspects.instance().getNormalSprite(aspect); break; case IngredientData.GuessState.HAS: next = IngredientData.GuessState.NOT_HAS; icon.sprite = Aspects.instance().getDisabledSprite(aspect); break; case IngredientData.GuessState.NOT_HAS: next = IngredientData.GuessState.UNKNOWN; icon.sprite = Aspects.instance().getGreyedSprite(aspect); break; } data.setGuessState(aspect, next); updateWarningIcon(data, lineItemInstance); }); }
private void add(IngredientType type, Aspects.Primary primary, Aspects.Secondary secondary) { ingredients.Add(type, new IngredientData(type, primary, secondary)); }
public IngredientData(IngredientType type, Aspects.Primary primary, Aspects.Secondary secondary) { this.type = type; this.primary = primary; this.secondary = secondary; }
public void setGuessState(Aspects.Primary aspect, GuessState state) { primaryGuesses[aspect] = state; }