示例#1
0
        public static void Init()
        {
            if (Loaded)
            {
                return;
            }

            Loaded = true;
            var execAssembly = Assembly.GetExecutingAssembly();

            using (var stream = execAssembly.GetManifestResourceStream("JarlykMods.Hailstorm.hailstorm.assets"))
            {
                var bundle   = AssetBundle.LoadFromStream(stream);
                var provider = new AssetBundleResourcesProvider(Prefix.TrimEnd(':'), bundle);
                ResourcesAPI.AddProvider(provider);

                DarknessShader = bundle.LoadAsset <Shader>("Assets/Effects/darkness.shader");

                PureBlack    = bundle.LoadAsset <Material>("Assets/Materials/PureBlack.mat");
                PurpleCracks = bundle.LoadAsset <Material>("Assets/Materials/PurpleCracks.mat");

                TwisterVisualPrefab = bundle.LoadAsset <GameObject>("Assets/Prefabs/TwisterVisual.prefab");
                TwisterPrefab       = bundle.LoadAsset <GameObject>("Assets/Prefabs/Twister.prefab");
                TwisterProjectileController.AugumentPrefab(TwisterPrefab);

                BarrierMaterial = Resources.Load <GameObject>("Prefabs/TemporaryVisualEffects/barriereffect")
                                  .GetComponentInChildren <MeshRenderer>().material;

                CataclysmPlatformPrefab = bundle.LoadAsset <GameObject>("Assets/Prefabs/CataclysmPlatform.prefab");
                CataclysmPlatformPrefab.AddComponent <MobilePlatform>();

                CataclysmSkyboxMaterial = bundle.LoadAsset <Material>("Assets/SpaceSkies Free/Skybox_3/Purple_4K_Resolution.mat");
                CataclysmArenaPrefab    = bundle.LoadAsset <GameObject>("Assets/Prefabs/CataclysmArena.prefab");

                GravBombPrefab = bundle.LoadAsset <GameObject>("Assets/Prefabs/GravBomb.prefab");
                GravBombEffect.AugmentPrefab(GravBombPrefab);

                AsteroidProjectilePrefab = bundle.LoadAsset <GameObject>("Assets/Prefabs/AsteroidProjectile.prefab");
                AsteroidProjectileController.AugmentPrefab(AsteroidProjectilePrefab);

                LaserChargerPrefab = bundle.LoadAsset <GameObject>("Assets/Prefabs/LaserCharger.prefab");
                LaserChargerInteraction.AugmentPrefab(LaserChargerPrefab);
            }

            using (var bankStream = execAssembly.GetManifestResourceStream("JarlykMods.Hailstorm.Hailstorm.bnk"))
            {
                var bytes = new byte[bankStream.Length];
                bankStream.Read(bytes, 0, bytes.Length);
                SoundBanks.Add(bytes);
            }

            On.RoR2.Networking.GameNetworkManager.OnStartClient += GameNetworkManager_OnStartClient;
        }
示例#2
0
        private static void GravBomb(ConCommandArgs args)
        {
            var user = LocalUserManager.GetFirstLocalUser();
            var body = user.cachedBody;

            if (body?.master == null)
            {
                Debug.LogError("Cannot find local user body!");
                return;
            }

            GravBombEffect.Spawn(body.corePosition + 5f * Vector3.up, 6);
        }