Пример #1
0
        private static void CreateMarkedPickupDroplet(PickupIndex pickupIndex, Vector3 position, Vector3 velocity)
        {
            GenericPickupController.CreatePickupInfo pickupInfo = new GenericPickupController.CreatePickupInfo {
                rotation = Quaternion.identity, pickupIndex = pickupIndex
            };

            GameObject droplet = UnityEngine.Object.Instantiate(PickupDropletController.pickupDropletPrefab, position, Quaternion.identity);

            PickupDropletController controller = droplet.GetComponent <PickupDropletController>();

            if (controller)
            {
                controller.createPickupInfo   = pickupInfo;
                controller.NetworkpickupIndex = pickupInfo.pickupIndex;
            }

            Rigidbody rigidBody = droplet.GetComponent <Rigidbody>();

            rigidBody.velocity = velocity;
            rigidBody.AddTorque(UnityEngine.Random.Range(150f, 120f) * UnityEngine.Random.onUnitSphere);

            droplet.AddComponent <ZetDropMarker>();

            NetworkServer.Spawn(droplet);
        }
Пример #2
0
 private static void PickupDropletController_onDropletHitGroundServer(ref GenericPickupController.CreatePickupInfo createPickupInfo, ref bool shouldSpawn)
 {
     if ((createPickupInfo.pickupIndex == gesturePickupIndex || createPickupInfo.pickupIndex == tonicPickupIndex) &&
         Stage.instance.sceneDef && Stage.instance.sceneDef.baseSceneName == "bazaar")
     {
         createPickupInfo.pickupIndex = bestItemPickupIndex;
     }
 }
Пример #3
0
        private static void CommandGroupInterceptHook(On.RoR2.Artifacts.CommandArtifactManager.orig_OnDropletHitGroundServer orig, ref GenericPickupController.CreatePickupInfo createPickupInfo, ref bool shouldSpawn)
        {
            if (!shouldSpawn)
            {
                return;
            }

            PickupIndex pickupIndex = createPickupInfo.pickupIndex;

            if (pickupIndex != PickupIndex.none)
            {
                PickupDef pickupDef = PickupCatalog.GetPickupDef(pickupIndex);
                if (pickupDef != null)
                {
                    if (pickupDef.itemIndex != ItemIndex.None && Catalog.aspectItemIndexes.Contains(pickupDef.itemIndex))
                    {
                        if (Configuration.AspectWorldUnique.Value && Configuration.AspectCommandGroupItems.Value)
                        {
                            AspectCommandDroplet(pickupDef, createPickupInfo.position, createPickupInfo.rotation, ref shouldSpawn);
                        }
                    }

                    if (pickupDef.equipmentIndex != EquipmentIndex.None && Catalog.aspectEquipIndexes.Contains(pickupDef.equipmentIndex))
                    {
                        if (Configuration.AspectCommandGroupEquip.Value)
                        {
                            AspectCommandDroplet(pickupDef, createPickupInfo.position, createPickupInfo.rotation, ref shouldSpawn);
                        }
                    }
                }
            }

            if (!shouldSpawn)
            {
                return;
            }

            orig(ref createPickupInfo, ref shouldSpawn);
        }