internal static void Postfix(TSMThemeDefault __instance, TowerToSimulation tower) { if (tower.Def.GetModTower()?.ModTowerSet is ModTowerSet modTowerSet && !tower.IsParagon) { var texture = ResourceHandler.GetTexture(modTowerSet.PortraitReference.GUID); var sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f), 5.4f, 0, SpriteMeshType.FullRect, new Vector4(22.5f, 22.5f, 22.5f, 22.5f)); __instance.towerBackgroundImage.sprite = sprite; } }
public static void Postfix(TSMThemeAmbidextrousRangs __instance, TowerToSimulation tower) { if (text != null) { foreach (var key in text.Keys) { text[key].gameObject.SetActiveRecursively(false); icons[key].gameObject.SetActiveRecursively(false); } } if (tower.Def.name.Contains(TowerType.SuperMonkey) && tower.Def.tiers[0] >= 3 && tower.Def.tiers[0] < 5) { if (__instance.towerBackgroundImage.sprite == null) { if (magicSprite == null) { foreach (BaseTSMTheme t in TowerSelectionMenu.instance.themeManager.themes) { if (t.GetIl2CppType().IsAssignableFrom(Il2CppType.Of <TSMThemeDefault>())) { TSMThemeDefault td = t.Cast <TSMThemeDefault>(); if (td.magicSprite != null) { magicSprite = td.magicSprite; } } } } if (magicSprite != null) { __instance.magicSprite = magicSprite; ResourceLoader.LoadSpriteFromSpriteReferenceAsync(magicSprite, __instance.towerBackgroundImage, false); } } ; if (__instance.isMonkeyPortraitFlipped) { __instance.leftHandButton.gameObject.SetActive(false); __instance.rightHandButton.gameObject.SetActive(true); } else { __instance.rightHandButton.gameObject.SetActive(false); __instance.leftHandButton.gameObject.SetActive(true); } if (leftSprite == null && rightSprite == null) { leftSprite = __instance.leftHandButton.transform.Find("Icon").GetComponent <Image>().sprite; rightSprite = __instance.rightHandButton.transform.Find("Icon").GetComponent <Image>().sprite; } Utils.SetTexture(__instance.leftHandButton.transform.Find("Icon").GetComponent <Image>(), SacrificesOff ? "Off" : "On"); Utils.SetTexture(__instance.rightHandButton.transform.Find("Icon").GetComponent <Image>(), SacrificesOff ? "Off" : "On"); if (text == null) { text = new Dictionary <string, NK_TextMeshProUGUI> { ["Primary"] = Object.Instantiate(__instance.popCountText, __instance.transform, true), ["Military"] = Object.Instantiate(__instance.popCountText, __instance.transform, true), ["Magic"] = Object.Instantiate(__instance.popCountText, __instance.transform, true), ["Support"] = Object.Instantiate(__instance.popCountText, __instance.transform, true) }; icons = new Dictionary <string, GameObject> { ["Primary"] = Object.Instantiate(__instance.gameObject.transform.Find("TSMPopInfoDefault").Find("PopImage").gameObject, __instance.transform, true), ["Military"] = Object.Instantiate(__instance.gameObject.transform.Find("TSMPopInfoDefault").Find("PopImage").gameObject, __instance.transform, true), ["Magic"] = Object.Instantiate(__instance.gameObject.transform.Find("TSMPopInfoDefault").Find("PopImage").gameObject, __instance.transform, true), ["Support"] = Object.Instantiate(__instance.gameObject.transform.Find("TSMPopInfoDefault").Find("PopImage").gameObject, __instance.transform, true) }; float unit = __instance.popCountText.fontSize / 2; int i = -1; foreach (var key in icons.Keys) { Utils.SetTexture(icons[key].transform.GetComponent <Image>(), key); text[key].transform.Translate(0, i * unit, 0); icons[key].transform.Translate(0, i * unit, 0); i--; } } if (!SacrificesOff) { var worths = Utils.GetTowerWorths(tower.tower); var colors = Utils.GetColors(worths, tower.Def.tiers[0] == 4); foreach (var key in text.Keys) { text[key].gameObject.SetActiveRecursively(true); icons[key].gameObject.SetActiveRecursively(true); text[key].SetText( "$" + worths[key]); text[key].color = colors[key]; } } } else if (tower.Def.baseId == TowerType.BoomerangMonkey && leftSprite != null && rightSprite != null) { Utils.SetTexture(__instance.leftHandButton.transform.Find("Icon").GetComponent <Image>(), null, leftSprite); Utils.SetTexture(__instance.rightHandButton.transform.Find("Icon").GetComponent <Image>(), null, rightSprite); } }