示例#1
0
 static void Init()
 {
     if (GameObject.FindObjectOfType <WeaverCanvas>() == null)
     {
         GameObject.Instantiate(WeaverAssets.LoadWeaverAsset <GameObject>("Weaver Canvas"), null);
     }
 }
示例#2
0
 // Token: 0x06000092 RID: 146 RVA: 0x00003E1E File Offset: 0x0000201E
 protected virtual void OnValidate()
 {
     if (this.EssenceCollectPrefab == null)
     {
         this.EssenceCollectPrefab = WeaverAssets.LoadWeaverAsset <GameObject>("Corpse Dream Essence");
     }
 }
示例#3
0
 // Token: 0x06000494 RID: 1172 RVA: 0x0000FA26 File Offset: 0x0000DC26
 public static EssenceEffects Spawn(Vector3 position)
 {
     if (EssenceEffects.EffectPool == null)
     {
         EssenceEffects.EffectPool = ObjectPool.Create(WeaverAssets.LoadWeaverAsset <GameObject>("Essence Effects"));
     }
     return(EssenceEffects.EffectPool.Instantiate <EssenceEffects>(position, Quaternion.identity));
 }
示例#4
0
        //static AudioClip DamageSound;

        protected virtual void Reset()
        {
            //Debug.Log("RESET");
            DamageSound   = Assets.AudioAssets.DamageEnemy;
            DamageFlash   = WeaverAssets.LoadWeaverAsset <GameObject>("Hit Flash Orange");
            OrangeSpatter = WeaverAssets.LoadWeaverAsset <GameObject>("Spatter Orange");
            HitPuff       = WeaverAssets.LoadWeaverAsset <GameObject>("Hit Puff");
        }
示例#5
0
        static void Init()
        {
            prefab = WeaverAssets.LoadWeaverAsset <GameObject>("Weaver Settings Screen").GetComponent <SettingsScreen>();

            WeaverGameManager.OnGameStateChange += GameStateChange;
#if UNITY_EDITOR
            SpawnMenu();
#endif
        }
示例#6
0
        public static DeathWave Spawn(Vector3 position, float sizeMultiplier)
        {
            if (DeathWavePool == null)
            {
                DeathWavePool = ObjectPool.Create(WeaverAssets.LoadWeaverAsset <GameObject>("Death Wave Infected"));
            }
            var instance = DeathWavePool.Instantiate <DeathWave>(position, Quaternion.identity);

            instance.SizeMultiplier = sizeMultiplier;
            instance.UpdateVisuals();
            return(instance);
        }
示例#7
0
        static void Spawn_Internal(Vector3 position, AudioClip clip, bool playProvidedAudioClip)
        {
            if (StunEffectPool == null)
            {
                StunEffectPool = ObjectPool.Create(WeaverAssets.LoadWeaverAsset <GameObject>("Stun Effect"));
            }
            var instance = StunEffectPool.Instantiate(position, Quaternion.identity).GetComponent <StunEffect>();

            if (playProvidedAudioClip)
            {
                instance.StunSound = clip;
            }
        }
示例#8
0
    public static RoarEmitter Spawn(Vector3 position)
    {
        if (Prefab == null)
        {
            Prefab = WeaverAssets.LoadWeaverAsset <GameObject>("Roar Wave");
        }

        var instance = GameObject.Instantiate(Prefab, position + Prefab.transform.localPosition, Quaternion.identity).GetComponent <RoarEmitter>();

        instance.stopAfterTime = 0f;

        return(instance);
    }
示例#9
0
        public static void Create()
        {
            var prefab = WeaverAssets.LoadWeaverAsset <GameObject>("Weaver Canvas");

            if (GameObject.FindObjectOfType <EventSystem>() == null)
            {
                var eventObject = new GameObject("Event System");
                if (Application.isPlaying)
                {
                    GameObject.DontDestroyOnLoad(eventObject);
                }
                eventObject.AddComponent <EventSystem>();
                eventObject.AddComponent <StandaloneInputModule>();
            }

            var instance = GameObject.Instantiate(prefab, null);

            instance.name = prefab.name;

            EditorSceneManager.SaveScene(instance.scene);
        }
示例#10
0
        /*[Attributes.OnHarmonyPatch]
         * static void PatchTest(HarmonyPatcher patcher)
         * {
         *      Debug.Log("Running Blood patch");
         *      patcher.Patch(typeof(Blood).GetMethod(nameof(SpawnBlood)), typeof(Blood).GetMethod(nameof(Prefix), BindingFlags.NonPublic | BindingFlags.Static), null);
         * }
         *
         * static bool Prefix()
         * {
         *      Debug.Log("Spawning Blood!");
         *      return true;
         * }*/


        public static Blood SpawnBlood(Vector3 position, BloodSpawnInfo spawnInfo)
        {
            if (bloodPrefab == null)
            {
                bloodPrefab = WeaverAssets.LoadWeaverAsset <GameObject>("Blood Particles");
            }

            /*if (BloodPool == null)
             * {
             *      BloodPool = new ObjectPool(WeaverAssets.LoadWeaverAsset<GameObject>("Blood Particles"));
             * }*/

            //var instance = BloodPool.Instantiate(position, Quaternion.identity);
            var instance       = Pooling.Instantiate(bloodPrefab, position, Quaternion.identity);
            var particleSystem = instance.GetComponent <ParticleSystem>();

            particleSystem.Stop();
            particleSystem.emission.SetBursts(new ParticleSystem.Burst[]
            {
                new ParticleSystem.Burst(0f, (short)Mathf.RoundToInt(spawnInfo.MinCount * AmountMultiplier), (short)Mathf.RoundToInt(spawnInfo.MaxCount * AmountMultiplier))
            });
            var main = particleSystem.main;

            main.maxParticles = Mathf.RoundToInt(spawnInfo.MaxCount * AmountMultiplier);
            main.startSpeed   = new ParticleSystem.MinMaxCurve(spawnInfo.MinSpeed * SpeedMultiplier, spawnInfo.MaxSpeed * SpeedMultiplier);
            if (spawnInfo.ColorOverride != null)
            {
                main.startColor = new ParticleSystem.MinMaxGradient(spawnInfo.ColorOverride.Value);
            }

            var shape = particleSystem.shape;

            shape.arc = spawnInfo.AngleMax - spawnInfo.AngleMin;
            instance.transform.SetZRotation(spawnInfo.AngleMin);
            particleSystem.Play();

            return(instance.GetComponent <Blood>());
        }
示例#11
0
        public static AreaTitle SpawnNoFade(string topText, string bottomText)
        {
            if (AreaTitlePool == null)
            {
                Prefab        = WeaverAssets.LoadWeaverAsset <GameObject>("Area Title Small");
                AreaTitlePool = ObjectPool.Create(Prefab);
            }

            var title = AreaTitlePool.Instantiate <AreaTitle>(WeaverCanvas.SceneContent);

            title.TopText    = topText;
            title.BottomText = bottomText;

            var oldRect = Prefab.GetComponent <RectTransform>();
            var newRect = title.GetComponent <RectTransform>();

            newRect.sizeDelta        = oldRect.sizeDelta;
            newRect.anchoredPosition = oldRect.anchoredPosition;
            newRect.localScale       = oldRect.localScale;

            //title.GetComponent<RectTransform>().size = Prefab.GetComponent<RectTransform>().rect;

            return(title);
        }