Exemplo n.º 1
0
 public static void Postfix(TSMThemeAmbidextrousRangs __instance, TowerToSimulation tower)
 {
     if (Game.instance.getProfileModel().HasPurchasedNamedMonkeys() == true)
     {
         Model towerModel = tower.tower.model;
         Dictionary <string, string> Names = Game.instance.getProfileModel().namedMonkeyNames;
         foreach (string key in Names.Keys)
         {
             string monkeyName = key.Replace("1", "");
             if (towerModel.name.Contains(monkeyName))
             {
                 __instance.towerName.text = Names[key];
             }
             else
             {
                 foreach (string name in moreNames.Keys)
                 {
                     if (towerModel.name.Contains(name))
                     {
                         __instance.towerName.text = moreNames[name];
                     }
                 }
             }
         }
     }
 }
Exemplo n.º 2
0
            public static void Postfix(TSMThemeAmbidextrousRangs __instance, TowerToSimulation tower, TSMButton button)
            {
                if (tower.Def.name.Contains(TowerType.SuperMonkey) && tower.Def.tiers[0] >= 3 && tower.Def.tiers[0] < 5 &&
                    (button == __instance.leftHandButton || button == __instance.rightHandButton))
                {
                    SacrificesOff = !SacrificesOff;
                    Utils.SetTexture(__instance.leftHandButton.transform.Find("Icon").GetComponent <Image>(), SacrificesOff ? "Off" : "On");
                    Utils.SetTexture(__instance.rightHandButton.transform.Find("Icon").GetComponent <Image>(), SacrificesOff ? "Off" : "On");

                    foreach (var key in TSMTheme_Patch.text.Keys)
                    {
                        TSMTheme_Patch.text[key].gameObject.SetActiveRecursively(!SacrificesOff);
                        TSMTheme_Patch.icons[key].gameObject.SetActiveRecursively(!SacrificesOff);
                    }
                }
            }
Exemplo n.º 3
0
            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);
                }
            }