public Aspects.Secondary?GetAspectForPotionSlot(PotionSlot slot) { BodyPart[] parts = slot.ToBodyParts(); if (parts.Length == 0) { return(null); } Transform partTransform = bodyPartToTransform(parts[0]); return(PlayerSprites.instance().getAspect(parts[0], partTransform.GetComponent <SpriteRenderer>().sprite)); }
public void showPotionsTab() { foreach (Transform child in gameObject.transform) { Destroy(child.gameObject); } foreach (CreatedPotion potion in Potions.instance().getLoggedPotions()) { GameObject potionDisplay; MultiSet <Aspects.Secondary> secondaries = potion.getPotion().getSecondaries(); if (secondaries.Count == 0) { // Potion has no secondaries potionDisplay = Instantiate(lineItemPrefab); } else { // Potion has secondaries potionDisplay = Instantiate(lineItemWithSecondariesPrefab); int i = 0; foreach (Aspects.Secondary aspect in secondaries) { GameObject icon = potionDisplay.transform.Find("Potion Details/Aspect Icons Secondary/Aspect " + (i + 1)).gameObject; icon.GetComponent <Image>().sprite = Aspects.instance().getNormalSprite(aspect); i++; } while (i < 3) { GameObject icon = potionDisplay.transform.Find("Potion Details/Aspect Icons Secondary/Aspect " + (i + 1)).gameObject; Destroy(icon); i++; } } potionDisplay.transform.SetParent(transform); List <IngredientType> ingredients = potion.getIngredients(); for (int i = 0; i < 3; i++) { potionDisplay.transform.Find("Ingredient Image " + (i + 1)).gameObject.GetComponent <Image>().sprite = IngredientRenderer.instance().getSprite(ingredients[i]); } Image bodyPartImage1 = potionDisplay.transform.Find("Potion Details/Potion Image").gameObject.GetComponent <Image>(); Image bodyPartImage2 = potionDisplay.transform.Find("Potion Details/Potion Image 2").gameObject.GetComponent <Image>(); bodyPartImage1.sprite = dudPotionSprite; bodyPartImage2.gameObject.SetActive(false); BodyPart[] parts = potion.getPotion().getAffectedBodyParts(); if (parts.Length > 0) { Sprite sprite = PlayerSprites.instance().getSprite(potion.getPotion().getType(), parts[0]); // Special cases for wings and tail if (sprite == null && parts[0] == BodyPart.WINGS) { sprite = noWingsSprite; } else if (sprite == null && parts[0] == BodyPart.TAIL) { sprite = noTailSprite; } else { bodyPartImage1.gameObject.SetActive(sprite != null); } bodyPartImage1.sprite = sprite; } if (parts.Length > 1) { bodyPartImage2.sprite = PlayerSprites.instance().getSprite(potion.getPotion().getType(), parts[1]); bodyPartImage2.gameObject.SetActive(bodyPartImage2.sprite != null); } int j = 1; foreach (Aspects.Primary primary in potion.getPotion().getPrimaries()) { potionDisplay.transform.Find("Potion Details/Aspect Icons/Aspect " + j).gameObject.GetComponent <Image>().sprite = Aspects.instance().getNormalSprite(primary); j++; } CreatedPotion potion2 = potion; potionDisplay.transform.Find("Remove Button").GetComponent <Button>().onClick.AddListener(() => { Potions.instance().removeLoggedPotion(potion2); showPotionsTab(); }); } }
public void setBodyPart(BodyPart part, Aspects.Secondary type) { Transform partTransform = bodyPartToTransform(part); partTransform.GetComponent <SpriteRenderer>().sprite = PlayerSprites.instance().getSprite(type, part); }