Пример #1
0
        public void UpdateTerminals(MultiShopController self)
        {
            // choose random item tier
            ItemTierShopConfig itemTierConfig = PickRandomItemTier();

            MultiShop.RepopulateTerminals(self, itemTierConfig);
        }
Пример #2
0
        public void CreateTerminals(On.RoR2.MultiShopController.orig_CreateTerminals orig, MultiShopController self)
        {
            // choose random item tier
            ItemTierShopConfig itemTierConfig = PickRandomItemTier();

            self.itemTier    = itemTierConfig.itemTier;
            self.Networkcost = 1;
            MultiShop.CreateTerminals(orig, self, itemTierConfig);
        }
Пример #3
0
        public void CreateTerminals(On.RoR2.MultiShopController.orig_CreateTerminals orig, RoR2.MultiShopController self)
        {
            int index = MultiShop.instances.Count; // I don't super like this
            ItemTierShopConfig itemTierConfig = ModConfig.tierWeights[index];

            self.itemTier    = itemTierConfig.itemTier;
            self.Networkcost = itemTierConfig.price;

            MultiShop.CreateTerminals(orig, self, itemTierConfig);
        }
Пример #4
0
        public void SpawnShop(Xoroshiro128Plus xoroshiro128Plus)
        {
            SpawnCard  card = Resources.Load <SpawnCard>("SpawnCards/InteractableSpawnCard/iscTripleShop");
            GameObject multiShopGameObject = DirectorCore.instance.TrySpawnObject(new DirectorSpawnRequest(card, new DirectorPlacementRule
            {
                maxDistance   = 30f,
                minDistance   = 10f,
                placementMode = DirectorPlacementRule.PlacementMode.Approximate,
                position      = TeleporterInteraction.instance.transform.position
            }, xoroshiro128Plus));

            float   startPosOffsetY = 0; // -7.2f;
            Vector3 endPosition     = multiShopGameObject.transform.position;

            multiShopGameObject.transform.position = new Vector3(multiShopGameObject.transform.position.x, multiShopGameObject.transform.position.y + startPosOffsetY, multiShopGameObject.transform.position.z);

            MultiShopController        multiShopController     = multiShopGameObject.GetComponent <MultiShopController>();
            List <PurchaseInteraction> purchaseInteractionList = new List <PurchaseInteraction>();

            GameObject[] terminalGameObjects = multiShopController.GetFieldValue <GameObject[]>("terminalGameObjects");
            for (int k = 0; k < terminalGameObjects.Length; k++)
            {
                purchaseInteractionList.Add(terminalGameObjects[k].GetComponent <PurchaseInteraction>());
                terminalGameObjects[k].gameObject.transform.position = new Vector3(terminalGameObjects[k].gameObject.transform.position.x, terminalGameObjects[k].gameObject.transform.position.y + startPosOffsetY, terminalGameObjects[k].gameObject.transform.position.z);
            }

            //EffectManager.instance.SpawnEffect(Resources.Load<GameObject>("Prefabs/Effects/BeetleQueenBurrow"), new EffectData()
            EffectManager.instance.SpawnEffect(Resources.Load <GameObject>("Prefabs/Effects/TeleportOutBoom"), new EffectData()
            {
                origin   = endPosition,
                rotation = Quaternion.identity
            }, true);

            MultiShop.terminalOffset = Math.Abs(terminalGameObjects[0].gameObject.transform.position.y - multiShopGameObject.transform.position.y);

            MultiShop multiShop = new MultiShop
            {
                multiShopController          = multiShopController,
                terminalPurchaseInteractions = purchaseInteractionList,
                endPosition = endPosition
            };

            MultiShop.instances.Add(multiShop);
        }
Пример #5
0
 public void UpdateTerminals(RoR2.MultiShopController self)
 {
     MultiShop.RepopulateTerminals(self, MultiShop.RetrieveItemTierConfig(ModConfig.tierWeights, self.itemTier));
 }