Advertisement
Guest User

Untitled

a guest
Nov 19th, 2018
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package
  2. {
  3.    import flash.display.Sprite;
  4.    import flash.events.Event;
  5.    import flash.net.URLLoader;
  6.    import flash.net.URLRequest;
  7.    import heroclickerlib.CH2;
  8.    import models.Character;
  9.    import models.Characters;
  10.    import models.Item;
  11.    import models.ItemStat;
  12.    import ui.IdleHeroUIManager;
  13.    
  14.    public class NotSoRandom extends Sprite
  15.    {
  16.        
  17.      
  18.       public var MOD_INFO:Object;
  19.      
  20.       public var textFileLoaded:Boolean;
  21.      
  22.       public var order:Array;
  23.      
  24.       public function NotSoRandom()
  25.       {
  26.          this.MOD_INFO = {
  27.             "name":"Not So Random",
  28.             "description":"The mod let\'s you prioritize, which items to buy with the Buy Random Catalog Item Gem.",
  29.             "version":1,
  30.             "author":"Naluni"
  31.          };
  32.          this.order = new Array();
  33.          super();
  34.       }
  35.      
  36.       public function onStartup(game:IdleHeroMain) : void
  37.       {
  38.          this.textFileLoaded = false;
  39.          this.readTextfile();
  40.          Characters.startingDefaultInstances["Helpful Adventurer"].levelGraphNodeTypes["Au"]["setupFunction"] = function():void
  41.          {
  42.             addBuyNotSoRandomCatalogItemGem(Characters.startingDefaultInstances["Helpful Adventurer"]);
  43.          };
  44.       }
  45.      
  46.       public function onStaticDataLoaded(staticData:Object) : void
  47.       {
  48.       }
  49.      
  50.       public function onUserDataLoaded() : void
  51.       {
  52.       }
  53.      
  54.       public function onCharacterCreated(characterInstance:Character) : void
  55.       {
  56.       }
  57.      
  58.       private function addBuyNotSoRandomCatalogItemGem(characterInstance:Character) : void
  59.       {
  60.          CH2.currentCharacter.automator.addGem(characterInstance.name + "_4","Buy Random Catalog Item",97,"Buys a random catalog item if you can afford it.",this.onBuyRandomCatalogItemGemActivate,this.canBuyRandomCatalogItem,500);
  61.       }
  62.      
  63.       public function canBuyRandomCatalogItem() : Boolean
  64.       {
  65.          var catalog:Array = null;
  66.          var randomItemIndex:int = 0;
  67.          var randomItem:Item = null;
  68.          var character:Character = CH2.currentCharacter;
  69.          if(!character.didFinishWorld && character.catalogItemsForSale && character.catalogItemsForSale.length > 0)
  70.          {
  71.             catalog = character.catalogItemsForSale;
  72.             randomItemIndex = CH2.roller.modRoller.integer(0,catalog.length - 1);
  73.             randomItem = catalog[randomItemIndex];
  74.             return !character.itemPurchasesLocked && character.gold.gte(randomItem.cost());
  75.          }
  76.          return false;
  77.       }
  78.      
  79.       public function onBuyRandomCatalogItemGemActivate() : Boolean
  80.       {
  81.          var itemStat:ItemStat = null;
  82.          var itemStatId:Number = NaN;
  83.          var itemPriority:Number = NaN;
  84.          var i:int = 0;
  85.          var character:Character = CH2.currentCharacter;
  86.          if(character.itemPurchasesLocked || character.didFinishWorld || !this.textFileLoaded)
  87.          {
  88.             return false;
  89.          }
  90.          var catalog:Array = character.catalogItemsForSale;
  91.          var currentSelectedItem:Item = catalog[0];
  92.          var currentSelectedItemIndex:Number = 0;
  93.          var currentSelectedPrority:Number = 100;
  94.          for(var j:int = 0; j < catalog.length; j++)
  95.          {
  96.             itemStat = catalog[j].newestItemStat;
  97.             itemStatId = itemStat.id;
  98.             itemPriority = 100;
  99.             for(i = 0; i < this.order.length; i++)
  100.             {
  101.                if(itemStatId == this.order[i])
  102.                {
  103.                   itemPriority = i;
  104.                   break;
  105.                }
  106.             }
  107.             if(itemPriority < currentSelectedPrority)
  108.             {
  109.                currentSelectedItem = catalog[j];
  110.                currentSelectedItemIndex = j;
  111.                currentSelectedPrority = itemPriority;
  112.             }
  113.          }
  114.          var randomItemIndex:Number = currentSelectedItemIndex;
  115.          var randomItem:Item = currentSelectedItem;
  116.          if(character.gold.gte(randomItem.cost()))
  117.          {
  118.             character.purchaseCatalogItem(randomItemIndex);
  119.             IdleHeroUIManager.instance.refreshDamageDisplays();
  120.             return true;
  121.          }
  122.          return false;
  123.       }
  124.      
  125.       private function readTextfile() : void
  126.       {
  127.          var loader:URLLoader = null;
  128.          var loaderComplete:Function = null;
  129.          loaderComplete = function(event:Event):void
  130.          {
  131.             loader.removeEventListener(Event.COMPLETE,loaderComplete);
  132.             order = event.target.data.split("\n");
  133.             for(var i:int = 0; i < order.length; i++)
  134.             {
  135.                if(String(order[i]).search("Crit Chance") != -1)
  136.                {
  137.                   order[i] = CH2.STAT_CRIT_CHANCE;
  138.                }
  139.                if(String(order[i]).search("Crit Damage") != -1)
  140.                {
  141.                   order[i] = CH2.STAT_CRIT_DAMAGE;
  142.                }
  143.                if(String(order[i]).search("Haste") != -1)
  144.                {
  145.                   order[i] = CH2.STAT_HASTE;
  146.                }
  147.                if(String(order[i]).search("Clickable Gold") != -1)
  148.                {
  149.                   order[i] = CH2.STAT_CLICKABLE_GOLD;
  150.                }
  151.                if(String(order[i]).search("Click Damage") != -1)
  152.                {
  153.                   order[i] = CH2.STAT_CLICK_DAMAGE;
  154.                }
  155.                if(String(order[i]).search("Boss Gold") != -1)
  156.                {
  157.                   order[i] = CH2.STAT_BOSS_GOLD;
  158.                }
  159.                if(String(order[i]).search("Total Mana") != -1)
  160.                {
  161.                   order[i] = CH2.STAT_TOTAL_MANA;
  162.                }
  163.                if(String(order[i]).search("Mana Regeneration") != -1)
  164.                {
  165.                   order[i] = CH2.STAT_MANA_REGEN;
  166.                }
  167.                if(String(order[i]).search("Total Energy") != -1)
  168.                {
  169.                   order[i] = CH2.STAT_TOTAL_ENERGY;
  170.                }
  171.                if(String(order[i]).search("Gold Piles") != -1)
  172.                {
  173.                   order[i] = CH2.STAT_CLICKABLE_CHANCE;
  174.                }
  175.                if(String(order[i]).search("Bonus Gold Chance") != -1)
  176.                {
  177.                   order[i] = CH2.STAT_BONUS_GOLD_CHANCE;
  178.                }
  179.                if(String(order[i]).search("Treasure Chest Chance") != -1)
  180.                {
  181.                   order[i] = CH2.STAT_TREASURE_CHEST_CHANCE;
  182.                }
  183.                if(String(order[i]).search("Treasure Chest Gold") != -1)
  184.                {
  185.                   order[i] = CH2.STAT_TREASURE_CHEST_GOLD;
  186.                }
  187.                if(String(order[i]).search("Gold") != -1)
  188.                {
  189.                   order[i] = CH2.STAT_GOLD;
  190.                }
  191.             }
  192.             textFileLoaded = true;
  193.          };
  194.          var url:URLRequest = new URLRequest("order.txt");
  195.          loader = new URLLoader();
  196.          loader.addEventListener(Event.COMPLETE,loaderComplete);
  197.          loader.load(url);
  198.       }
  199.    }
  200. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement