Ejemplo n.º 1
0
        private static GameObject CreateRocketBlockTemp()
        {
            GameObject RocketTemp = new GameObject("Rocket Temp");

            RocketTemp.transform.localScale = new Vector3(1f, 0.75f, 0.75f);

            GameObject vis = new GameObject("Vis");

            vis.transform.SetParent(RocketTemp.transform);
            vis.transform.localPosition         -= RocketTemp.transform.right;
            vis.transform.localScale             = RocketTemp.transform.localScale;
            vis.AddComponent <MeshFilter>().mesh = ModResource.GetMesh("RocketPod_r Mesh");
            vis.AddComponent <MeshRenderer>().material.mainTexture = ModResource.GetTexture("RocketPod_r Texture");

            GameObject collider = new GameObject("Collider");

            collider.transform.SetParent(RocketTemp.transform);
            collider.transform.localScale = RocketTemp.transform.localScale;
            CapsuleCollider capsuleCollider = collider.AddComponent <CapsuleCollider>();

            capsuleCollider.radius    = 0.15f;
            capsuleCollider.height    = 2.5f;
            capsuleCollider.direction = 0;
            capsuleCollider.isTrigger = true;

            Rigidbody rigidbody = RocketTemp.AddComponent <Rigidbody>();

            rigidbody.mass = 0.25f;

            RocketTemp.AddComponent <RocketScript>();
            RocketTemp.AddComponent <DestroyIfEditMode>();
            RocketTemp.SetActive(false);
            return(RocketTemp);
        }
Ejemplo n.º 2
0
        public virtual void AssignEmission()
        {
            ModTexture t = ModResource.GetTexture("portalEmissionTex");

            if (t.Available)
            {
                MeshRenderer rend = VisualController.renderers[0];
                rend.sharedMaterial.SetTexture("_EmissMap", t);
                rend.sharedMaterial.SetColor("_EmissCol", def);

                /*
                 * VisualController.Prefab.DefaultSkin.material.SetTexture("_EmissMap", t);
                 * VisualController.Prefab.DefaultSkin.material.SetColor("_EmissCol", Color.gray);*/

                MaterialPropertyBlock props = new MaterialPropertyBlock();
                rend.GetPropertyBlock(props);
                props.SetColor("_EmissCol", def);
                rend.SetPropertyBlock(props);

                VisualController.canBeHeated       = true;
                VisualController.heating.lerpSpeed = 4f;
                VisualController.heating.glowCol   = def;
                VisualController.heating.colToSet  = "_EmissCol";
            }
        }
Ejemplo n.º 3
0
 void Awake()
 {
     if (StatMaster.isMP)
     {
         this.playerLabels = GameObject.Find("HUD/MULTIPLAYER/PLAYER_LABELS");
         this.DepthDisplayChange(0);
     }
     SceneManager.activeSceneChanged += (x, y) =>
     {
         if (y.buildIndex == 9)
         {
             this.playerLabels = GameObject.Find("HUD/MULTIPLAYER/PLAYER_LABELS");
             this.DepthDisplayChange(0);
         }
     };
     StatMaster.hudHiddenChanged += () =>
     {
         if (StatMaster.isMP)
         {
             this.playerLabels.SetActive(!this.playerLabels.activeSelf);
         }
     };
     ModResource.OnAllResourcesLoaded += () =>
     {
         for (int i = 0; i < this.typeIconList.Count; i++)
         {
             Texture texture = ModResource.GetTexture(this.typeIconList[i]);
             this.typeIconDic.Add(i, texture);
         }
     };
 }
        //#region Network
        ///// <summary>Block, GunbodyVelocity, BulletGuid,</summary>
        //public static MessageType FireMessage = ModNetworking.CreateMessageType(DataType.Block, DataType.Vector3, DataType.String);
        //#endregion

        public override void SafeAwake()
        {
            LaunchKey          = AddKey(LanguageManager.Instance.CurrentLanguage.fire, "Fire", KeyCode.C);
            StrengthSlider     = AddSlider(LanguageManager.Instance.CurrentLanguage.strength, "Strength", 1f, 0.5f, 3f);
            RateSlider         = AddSlider(LanguageManager.Instance.CurrentLanguage.rate, "Rate", 0.05f, 0.01f, 0.3f);
            KnockBackSlider    = AddSlider(LanguageManager.Instance.CurrentLanguage.knockBack, "KnockBack", 1f, 0.1f, 3f);
            BulletNumberSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletNumber, "Number", 200f, 1f, 500f);


            bulletMassSlider  = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletMass, "Mass", 0.1f, 0.1f, 0.5f);
            bulletDragSlider  = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletDrag, "Drag", 0.1f, 0.1f, 0.5f);
            bulletColorSlider = AddColourSlider(LanguageManager.Instance.CurrentLanguage.bulletTrailColor, "Color", Color.yellow, false);
            bulletCollisionEnableTimeSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletCollisionEnableTime, "Collision Enable Time", 0.01f, 0f, 0.1f);

            SpawnPoint   = new Vector3(0, 0.125f, 3.75f);
            Direction    = Vector3.forward;
            LaunchEnable = false;


            RotationRate = 0f;

            RotationAudioSource              = GetComponent <AudioSource>() ?? gameObject.AddComponent <AudioSource>();
            RotationAudioSource.clip         = ModResource.GetAudioClip("GatlingGun AudioClip");
            RotationAudioSource.loop         = true;
            RotationAudioSource.volume       = 1;
            RotationAudioSource.spatialBlend = 1;
            RotationAudioSource.maxDistance  = 15;

            CJ = GetComponent <ConfigurableJoint>();

            List <MeshFilter> meshFilters = new List <MeshFilter>();

            GetComponentsInChildren(false, meshFilters);
            GunVis = meshFilters.Find(match => match.name == "Vis").gameObject;
        }
Ejemplo n.º 5
0
 void Update()
 {
     if (Input.GetKeyDown(KeyCode.Space))
     {
         var b = Instantiate(
             ModResource.Load <GameObject>("Bullet"));
         b.transform.position = transform.position;
     }
 }
Ejemplo n.º 6
0
 public static void OnModLoad()
 {
     def = new Color(0.15f, 0.2f, 0.25f);
     FixVacuum();
     bundle                     = ModResource.GetAssetBundle("portal");
     normal                     = ModResource.GetMesh("portalDeviceMesh");
     shooting                   = ModResource.GetMesh("portalDeviceShotMesh");
     bundle.OnLoad             += Load;
     Events.OnSimulationToggle += ResetPortal;
 }
Ejemplo n.º 7
0
        public static T LoadAsset <T>(string name) where T : UnityEngine.Object
        {
            var go = ModResource.GetAssetBundle("Effect").LoadAsset <T>(name);

            if (typeof(T) == typeof(GameObject))
            {
                (go as GameObject).AddComponent <DestroyIfEditMode>();
            }
            return((T)Convert.ChangeType(go, typeof(T)));
        }
Ejemplo n.º 8
0
 private void AudioInit()
 {
     CloakAudio          = this.gameObject.AddComponent <AudioSource>();
     CloakAudio.clip     = ModResource.GetAudioClip("Cloaking.ogg");
     CloakAudio.loop     = false;
     CloakAudio.volume   = 1f;
     DecloakAudio        = this.gameObject.AddComponent <AudioSource>();
     DecloakAudio.clip   = ModResource.GetAudioClip("Decloaking.ogg");
     DecloakAudio.loop   = false;
     DecloakAudio.volume = 1f;
 }
Ejemplo n.º 9
0
        private IEnumerator LoadAssetBundle()
        {
            ModAssetBundle modAssetBundle = ModResource.GetAssetBundle("Effect");

            yield return(new WaitUntil(() => modAssetBundle.Available));

            Rocket     = new Asset_Rocket(modAssetBundle);
            Explosion  = new Asset_Explosion(modAssetBundle);
            MachineGun = new Asset_MachineGun(modAssetBundle);
            GatlingGun = new Asset_GatlingGun(modAssetBundle);
            Bullet     = new Asset_Bullet(modAssetBundle);
        }
Ejemplo n.º 10
0
        void Start()
        {
            particleSystem             = GetComponent <ParticleSystem>() ?? gameObject.AddComponent <ParticleSystem>();
            particleSystem.playOnAwake = false;
            particleSystem.Stop();
            particleSystem.startLifetime   = LifeTime;
            particleSystem.loop            = true;
            particleSystem.startColor      = StartColor;
            particleSystem.simulationSpace = ParticleSystemSimulationSpace.World;
            particleSystem.maxParticles    = 10240;
            particleSystem.gravityModifier = -0.02f;
            particleSystem.scalingMode     = ParticleSystemScalingMode.Shape;


            ParticleSystem.ShapeModule sm = particleSystem.shape;
            sm.shapeType = ParticleSystemShapeType.ConeShell;
            sm.radius    = Radius;
            sm.angle     = Angle;
            sm.length    = 1;

            sm.randomDirection = true;
            sm.enabled         = true;

            ParticleSystem.SizeOverLifetimeModule sl = particleSystem.sizeOverLifetime;
            sl.size    = new ParticleSystem.MinMaxCurve(Size, AnimationCurve.Linear(0f, StartSize, LifeTime, EndSize));
            sl.enabled = true;

            ParticleSystem.RotationOverLifetimeModule rolm = particleSystem.rotationOverLifetime;
            rolm.enabled = true;
            rolm.x       = new ParticleSystem.MinMaxCurve(0, 360);

            ParticleSystem.ColorOverLifetimeModule colm = particleSystem.colorOverLifetime;
            colm.color = new Gradient()
            {
                alphaKeys = new GradientAlphaKey[] { new GradientAlphaKey(StartAlpha, StartAlphaTime), new GradientAlphaKey(EndAlpha, EndAlphaTime) },

                colorKeys = new GradientColorKey[] { new GradientColorKey(StartColor, StartColorTime), new GradientColorKey(EndColor, EndColorTime) }
            };
            colm.enabled = true;

            ParticleSystem seb = particleSystem.subEmitters.birth0;

            seb = GetComponent <ParticleSystem>();

            ParticleSystemRenderer particleSystemRenderer = particleSystem.GetComponent <ParticleSystemRenderer>();

            particleSystemRenderer.sortMode                   = ParticleSystemSortMode.Distance;
            particleSystemRenderer.sortingFudge               = 80;
            particleSystemRenderer.receiveShadows             = true;
            particleSystemRenderer.sharedMaterial             = new Material(Shader.Find("Particles/Alpha Blended"));
            particleSystemRenderer.sharedMaterial.mainTexture = (ModResource.GetTexture("Rocket Smoke Texture"));
        }
Ejemplo n.º 11
0
        public void Initialization()
        {
            if (FieldDetector != null)
            {
                return;                        // Avoid initializaiton running multiple times
            }
            ReactivationTimer = CloakExtendingTime.Value;
            AudioInit();
            FieldSize    = CloakFieldSize.Value;
            CoolDownTime = 0;
            InvBumpTex   = new Material(Shader.Find("FX/Glass/Stained BumpDistort"));

            InvBumpTex.color       = new Color(1, 1, 1, 0);
            InvBumpTex.mainTexture = ModResource.GetTexture("Cloak disturb.png");
            InvBumpTex.SetTexture("_BumpMap", ModResource.GetTexture("Cloak disturb.png"));
            InvTex             = new Material(Shader.Find("Transparent/Diffuse"));
            InvTex.color       = new Color(1, 1, 1, 0);
            InvTex.mainTexture = ModResource.GetTexture("ALL BLACK.jpg");

            FieldDetector      = GameObject.CreatePrimitive(PrimitiveType.Sphere);
            FieldDetector.name = "StealthFieldDetector";
            FieldDetector.GetComponent <SphereCollider>().isTrigger = true;
            FieldDetector.transform.position = Vector3.down * 999999;
            Destroy(FieldDetector.GetComponent <Renderer>());

            // Polymorphism
            StealthCloakFieldScript a = null;

            // Decide whether create a MP version of detector or a normal version. Note that host will still use normal version.
            if (StatMaster.isMP && StatMaster.isClient)
            {
                a = FieldDetector.AddComponent <StealthCloakFieldScriptMP>();
            }
            else
            {
                a = FieldDetector.AddComponent <StealthCloakFieldScript>();
            }

            a.setCloakTimer(CloakExtendingTime.Value);
            a.useFlashVFX = this.DirectionVisualization.IsActive;

            // Use the static method to store the detector instance
            StealthCloakFieldScript.PushInNewSCFS(Block.From(this).SimBlock, a);
            // This is for deletion usage
            a.MyBeloning = this;

            // Adding Cloak script to other blocks
            foreach (MeshRenderer renderer in Machine.SimulationMachine.GetComponentsInChildren <MeshRenderer>())
            {
                getCloakScript(renderer);
            }
        }
Ejemplo n.º 12
0
        static IEnumerator ReadWheelMesh()
        {
            WheelColliderOrgin = new GameObject("Wheel Collider Orgin");
            WheelColliderOrgin.transform.SetParent(EnhancementBlockController.Instance.transform);
            ModMesh modMesh = ModResource.CreateMeshResource("Wheel Mesh", "Resources" + @"/" + "Wheel.obj");

            yield return(new WaitUntil(() => modMesh.Available));

            MeshCollider meshCollider = WheelColliderOrgin.AddComponent <MeshCollider>();

            meshCollider.sharedMesh = ModResource.GetMesh("Wheel Mesh");
            meshCollider.convex     = true;
            WheelColliderOrgin.SetActive(false);
        }
Ejemplo n.º 13
0
        protected override void deploySelf()
        {
            ModAssetBundle mab            = ModResource.GetAssetBundle("CitadelAssetBundle");
            GameObject     KeepStarEntity = GameObject.Instantiate((GameObject)mab.LoadAsset <UnityEngine.Object>("assets/keepstar.prefab"));

            KeepStarEntity.name = "KeepstarEntity";

            KeepstarScript ks = KeepStarEntity.AddComponent <KeepstarScript>();

            ks.deploySelf(new Vector3(0.0005f, 0.0005f, 0.0005f), this.transform.position, this.transform.rotation, DictMTContracts);

            this.transform.parent = null;
            Machine.RemoveBlock(Block.From(this));
        }
Ejemplo n.º 14
0
        public override void OnPrefabCreation()
        {
            GameObject ActualCollider = new GameObject("ActualCollider");

            ActualCollider.transform.SetParent(transform.FindChild("Colliders"));
            MeshCollider colliderMesh  = ActualCollider.AddComponent <MeshCollider>();
            MeshFilter   colliderMeshF = ActualCollider.AddComponent <MeshFilter>();

            colliderMeshF.mesh                  = ModResource.GetMesh("KeepstarCollider");
            colliderMesh.sharedMesh             = colliderMeshF.mesh;
            colliderMesh.convex                 = false;
            ActualCollider.transform.localScale = new Vector3(0.0005f, 0.0005f, 0.0005f);

            this.Rigidbody.useGravity = false;
        }
Ejemplo n.º 15
0
        public void Setup(Poultryizer p, Poultryizer.ChickenReferences c)
        {
            poultryizer = p;
            Chicken     = c;
            ModAudioClip a = ModResource.GetAudioClip("polymorph");

            if (a.Available)
            {
                audioSource               = gameObject.GetComponent <AudioSource>() ?? gameObject.AddComponent <AudioSource>();
                audioSource.volume        = 0.9f;
                audioSource.spatialBlend  = 0.99f;
                audioSource.reverbZoneMix = 1;
                audioSource.clip          = clip = a;
            }
        }
Ejemplo n.º 16
0
        public override void OnSimulateStart()
        {
            CreateEffectChild();

            effectTimer = Random.Range(0f, 1f / effectUpdatesPerSecond);

            ModAudioClip c = ModResource.GetAudioClip("polymorph");

            if (c.Available)
            {
                audioSource      = gameObject.GetComponent <AudioSource>() ?? gameObject.AddComponent <AudioSource>();
                audioSource.clip = c;
            }

            simulationStarted = true;
        }
Ejemplo n.º 17
0
        private GameObject CreateBulletTemp()
        {
            GameObject temp = new GameObject("Bullet Temp");

            temp.AddComponent <DestroyIfEditMode>();

            GameObject vis = new GameObject("Vis");

            vis.transform.SetParent(temp.transform);
            vis.transform.position    = temp.transform.position;
            vis.transform.rotation    = temp.transform.rotation;
            vis.transform.localScale *= 0.025f;

            vis.AddComponent <MeshFilter>().mesh = ModResource.GetMesh("Bullet Mesh");
            MeshRenderer meshRenderer = vis.AddComponent <MeshRenderer>();

            meshRenderer.material.mainTexture = ModResource.GetTexture("Bullet Texture");

            Rigidbody rigidbody = temp.AddComponent <Rigidbody>();

            rigidbody.collisionDetectionMode = CollisionDetectionMode.ContinuousDynamic;
            rigidbody.mass = 0.5f;
            rigidbody.drag = 0.25f;

            TrailRenderer trailRenderer = temp.AddComponent <TrailRenderer>();

            trailRenderer.startWidth      = 0.08f;
            trailRenderer.endWidth        = 0f;
            trailRenderer.time            = 0.05f;
            trailRenderer.material.shader = Shader.Find("Particles/Additive");
            trailRenderer.material.SetColor("_TintColor", Color.yellow);

            BoxCollider boxCollider = temp.AddComponent <BoxCollider>();

            boxCollider.size = new Vector3(0.1f, 0.1f, 0.25f);
            boxCollider.material.bounciness = 0f;

            BulletScript bulletScript = temp.AddComponent <BulletScript>();

            bulletScript.Direction          = Vector3.forward;
            bulletScript.ColliderEnableTime = 1f;

            TimedSelfDestruct tsd = temp.AddComponent <TimedSelfDestruct>();

            temp.SetActive(false);
            return(temp);
        }
Ejemplo n.º 18
0
        public virtual void AssignAudio()
        {
            clips    = new ModAudioClip[3];
            clips[0] = ModResource.GetAudioClip("fireOrange");
            clips[1] = ModResource.GetAudioClip("fireBlue");
            clips[2] = ModResource.GetAudioClip("fireMiss");

            if (clips[0].Available && clips[1].Available)
            {
                audioSource               = gameObject.GetComponent <AudioSource>() ?? gameObject.AddComponent <AudioSource>();
                audioSource.volume        = 0.9f;
                audioSource.pitch         = 1f;
                audioSource.spatialBlend  = 0.99f;
                audioSource.reverbZoneMix = 1;
                audioSource.clip          = clips[0];
            }
        }
        public override void SafeAwake()
        {
            LaunchKey      = AddKey(LanguageManager.Instance.CurrentLanguage.fire, "Fire", KeyCode.C);
            StrengthSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.strength, "Strength", 1f, 0.5f, 3f);
            RateSlider     = AddSlider(LanguageManager.Instance.CurrentLanguage.rate, "Rate", 0.35f, 0.1f, 0.3f);

            KnockBackSlider    = AddSlider(LanguageManager.Instance.CurrentLanguage.knockBack, "KnockBack", 0.5f, 0.1f, 1f);
            BulletNumberSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletNumber, "Number", 200f, 1f, 500f);

            bulletPowerSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletPower, "Power", 0.3f, 0.1f, 1f);
            bulletMassSlider  = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletMass, "Mass", 0.1f, 0.1f, 0.5f);
            bulletDragSlider  = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletDrag, "Drag", 0.1f, 0.1f, 0.5f);
            bulletCollisionEnableTimeSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletCollisionEnableTime, "Collision Enable Time", 0.1f, 0.01f, 0.8f);
            bulletTrailLengthSlider         = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletTrailLength, "Length", 0.1f, 0f, 0.4f);
            bulletTrailWidthSlider          = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletTrailWidth, "Width", 1f, 0.1f, 3f);
            bulletColorSlider = AddColourSlider(LanguageManager.Instance.CurrentLanguage.bulletTrailColor, "Color", Color.yellow, false);


            holdToggle = AddToggle(LanguageManager.Instance.CurrentLanguage.hold, "Hold", true);
            //spawnDistanceSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.distance, "Distance", 2f, 0f, 4f);
            //spawnDistanceSlider.ValueChanged += (value) => { SpawnPoint = new Vector3(0f, 0f, value); };
            damperSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.damper, "Damper", 1f, 0f, 5f);

            SpawnPoint   = new Vector3(0.0f, 0.0f, 3.5f);
            Direction    = Vector3.forward;
            LaunchEnable = false;

            fireAudioSource              = GetComponent <AudioSource>() ?? gameObject.AddComponent <AudioSource>();
            fireAudioSource.clip         = ModResource.GetAudioClip("QuickFireGun AudioClip");
            fireAudioSource.loop         = false;
            fireAudioSource.volume       = 1;
            fireAudioSource.spatialBlend = 5f;
            fireAudioSource.maxDistance  = 15f;

            CJ         = GetComponent <ConfigurableJoint>();
            CJ.yMotion = ConfigurableJointMotion.Limited;
            var cl = CJ.linearLimit;

            cl.limit       = 0.5f;
            CJ.linearLimit = cl;
            var yd = CJ.yDrive;

            yd.positionDamper = 750f * damperSlider.Value;
            yd.positionSpring = 1000f;
            CJ.yDrive         = yd;
        }
Ejemplo n.º 20
0
        void InitRender()
        {
            if (glowTex == null)
            {
                glowTex = ModResource.GetTexture("glow");
            }

            if (glowTex != null && glowTex.Loaded && !glowTex.HasError && texture2D2 == null)
            {
                texture2D2 = glowTex.Texture;
            }

            if (texture2D2 != null)
            {
                var renderer = base.transform.FindChild("Vis").gameObject.GetComponentInChildren <Renderer>();
                renderer.material.SetTexture("_EmissMap", texture2D2);
            }
        }
        //#region Network
        ///// <summary>Block, GunbodyVelocity, BulletGuid,</summary>
        //public static MessageType FireMessage = ModNetworking.CreateMessageType(DataType.Block, DataType.Vector3, DataType.String);
        //#endregion

        public override void SafeAwake()
        {
            LaunchKey      = AddKey(LanguageManager.Instance.CurrentLanguage.fire, "Fire", KeyCode.C);
            StrengthSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.strength, "Strength", 1f, 0.5f, 3f);
            //StrengthSlider.ValueChanged += (value) => { Strength = value; };
            RateSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.rate, "Rate", 0.05f, 0.1f, 0.3f);
            //RateSlider.ValueChanged += (value) => { Rate = value; };
            KnockBackSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.knockBack, "KnockBack", 1f, 0.1f, 3f);
            //KnockBackSlider.ValueChanged += (value) => { KnockBack = value; };
            BulletNumberSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletNumber, "Number", 200f, 1f, 500f);
            //BulletNumberSlider.ValueChanged += (value) => { BulletMaxNumber = (int)value; };

            bulletMassSlider  = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletMass, "Mass", 0.1f, 0.1f, 0.5f);
            bulletDragSlider  = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletDrag, "Drag", 0.1f, 0.1f, 0.5f);
            bulletColorSlider = AddColourSlider(LanguageManager.Instance.CurrentLanguage.bulletTrailColor, "Color", Color.yellow, false);
            bulletCollisionEnableTimeSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletCollisionEnableTime, "Collision Enable Time", 0.01f, 0f, 0.1f);

            //KnockBack = 1f;
            SpawnPoint = new Vector3(-2.65f, 0f, 0.5f);
            Direction  = -Vector3.right;
            //BulletObject = AssetManager.Instance.MachineGun.bulletTemp;
            //BulletObject = InstanstiateBullet();
            LaunchEnable = false;


            //RotationRate = 0f;

            fireAudioSource              = GetComponent <AudioSource>() ?? gameObject.AddComponent <AudioSource>();
            fireAudioSource.clip         = ModResource.GetAudioClip("MachineGun AudioClip");
            fireAudioSource.loop         = false;
            fireAudioSource.volume       = 1;
            fireAudioSource.spatialBlend = 5f;
            fireAudioSource.maxDistance  = 15f;

            CJ = GetComponent <ConfigurableJoint>();

            List <MeshFilter> meshFilters = new List <MeshFilter>();

            GetComponentsInChildren(false, meshFilters);
            GunVis = meshFilters.Find(match => match.name == "Vis").gameObject;
        }
        public override void OnSimulateStart()
        {
            BulletCurrentNumber = BulletMaxNumber = (int)BulletNumberSlider.Value;
            Strength            = StrengthSlider.Value * 5f;
            KnockBack           = KnockBackSlider.Value * Strength * 4f;
            Rate = RateSlider.Value;

            initVFX();

            void initVFX()
            {
                EffectsObject = EffectsObject ?? (GameObject)Instantiate(AssetManager.Instance.MachineGun.fireEffect, transform);
                EffectsObject.transform.position         = transform.TransformPoint(Vector3.forward * 3);
                EffectsObject.transform.localEulerAngles = new Vector3(0, 180, 0);
                EffectsObject.GetComponent <Reactivator>().TimeDelayToReactivate = Rate;
                EffectsObject.SetActive(false);

                material = GunVis.GetComponent <MeshRenderer>().material = Instantiate(AssetManager.Instance.GatlingGun.material);
                material.SetTexture("_MainTex", ModResource.GetTexture("GatlingGun Texture"));
                material.SetTexture("_EmissionMap", ModResource.GetTexture("GatlingGun-e Texture"));
            }
        }
Ejemplo n.º 23
0
        void Start()
        {
            particleSystem = GetComponent <ParticleSystem>() ?? gameObject.AddComponent <ParticleSystem>();

            particleSystem.playOnAwake = false;
            particleSystem.Stop();
            particleSystem.startLifetime = LifeTime;

            particleSystem.scalingMode = ParticleSystemScalingMode.Hierarchy;

            ParticleSystem.ShapeModule sm = particleSystem.shape;
            sm.shapeType       = ParticleSystemShapeType.Cone;
            sm.radius          = Radius;
            sm.angle           = Angle;
            sm.randomDirection = false;
            sm.enabled         = true;


            ParticleSystem.SizeOverLifetimeModule sl = particleSystem.sizeOverLifetime;
            sl.size    = new ParticleSystem.MinMaxCurve(Size, AnimationCurve.Linear(0f, StartSize, LifeTime, EndSize));
            sl.enabled = true;

            ParticleSystem.ColorOverLifetimeModule colm = particleSystem.colorOverLifetime;
            colm.color = new Gradient()
            {
                alphaKeys = new GradientAlphaKey[] { new GradientAlphaKey(1, 0), new GradientAlphaKey(0, LifeTime) },

                colorKeys = new GradientColorKey[] { new GradientColorKey(StartColor, ColorStartTime), new GradientColorKey(EndColor, ColorEndTime) }
            };
            colm.enabled = true;

            ParticleSystemRenderer particleSystemRenderer = GetComponent <ParticleSystemRenderer>();

            particleSystemRenderer.sharedMaterial             = new Material(Shader.Find("Particles/Additive"));
            particleSystemRenderer.sharedMaterial.mainTexture = (ModResource.GetTexture("Rocket Fire Texture"));
        }
Ejemplo n.º 24
0
        public override void OnSimulateStart()
        {
            LockerRect = new Rect(new Vector2(Screen.width / 2 - LockerHeight.Value / 2, Screen.height / 2 - LockerWidth.Value / 2), new Vector2(LockerHeight.Value, LockerWidth.Value));
            ticc       = Time.time;
            disp       = !HideThisPanel.IsActive;

            BombDrop = new GameObject();
            BombDrop.transform.SetParent(transform);
            BombDrop.name = "Bomb Indicator";

            Light BombDropLight = BombDrop.AddComponent <Light>();

            BombDropLight.type       = LightType.Spot;
            BombDropLight.intensity  = 8;
            BombDropLight.range      = Camera.main.farClipPlane;
            BombDropLight.color      = Color.red;
            BombDropLight.cookieSize = 100;
            BombDropLight.range      = 5;
            BombDrop.transform.LookAt(new Vector3(BombDrop.transform.position.x, BombDrop.transform.position.y - 10, BombDrop.transform.position.z));
            BombDropLight.enabled = false;
            BombDrop.AddComponent <DestroyIfEditMode>();

            if (AdvTI.IsActive)
            {
                float width = 1f;
                AdvBombDrop          = this.gameObject.AddComponent <LineRenderer>();
                AdvBombDrop.material = new Material(Shader.Find("Particles/Additive"));
                AdvBombDrop.SetWidth(width, width);
                AdvBombDrop.SetColors(StartColour.Value, EndColour.Value);
                AdvBombDrop.SetPosition(0, transform.position);
                AdvBombDrop.SetVertexCount((int)AdvTIS.Value);
                AdvBombDrop.enabled = false;
            }

            机体准星       = Center.IsActive ? ModResource.GetTexture("HUD/Center.png") : null;
            俯仰刻度       = Pitch.IsActive ? ModResource.GetTexture("HUD/Gradienter.png") : null;
            正00纹理      = MapCenter.IsActive ? ModResource.GetTexture("HUD/Zero Zero Front.png") : null;
            负00纹理      = MapCenter.IsActive ? ModResource.GetTexture("HUD/Zero Zero Back.png") : null;
            现时高度指示纹理   = HeightIndicator.IsActive ? ModResource.GetTexture("HUD/Height Line.png") : null;
            冰层纹理       = IceFreezeIndicator.IsActive && HeightIndicator.IsActive ? ModResource.GetTexture("HUD/Ice Floor.png") : null;
            地面那一条杠杠滴纹理 = GroundIndicator.IsActive && HeightIndicator.IsActive ? ModResource.GetTexture("HUD/Floor Line.png") : null;
            一千杠杠       = OneThousandIndicator.IsActive && HeightIndicator.IsActive ? ModResource.GetTexture("HUD/OverICE Line.png") : null;
            北罗盘纹理      = Direction.IsActive ? ModResource.GetTexture("HUD/Direction Indicator North.png") : null;
            南罗盘纹理      = Direction.IsActive ? ModResource.GetTexture("HUD/Direction Indicator South.png") : null;
            西罗盘纹理      = Direction.IsActive ? ModResource.GetTexture("HUD/Direction Indicator East.png") : null;
            东罗盘纹理      = Direction.IsActive ? ModResource.GetTexture("HUD/Direction Indicator West.png") : null;
            小罗盘纹理      = Direction.IsActive ? ModResource.GetTexture("HUD/Direction Indicator Small.png") : null;
            小地图纹理      = MiniMap.IsActive ? ModResource.GetTexture("HUD/Minimap Addition.png") : null;
            锁定窗口       = UseLockWindow.IsActive? ModResource.GetTexture("HUD/Locker.png") : null;


            if (MiniMap.IsActive)
            {
                MiniMapGO = new GameObject("MiniMapCam");
                MiniMapGO.transform.SetParent(Machine.SimulationMachine);
                MiniMapCamera = MiniMapGO.AddComponent <Camera>();
                MiniMapCamera.CopyFrom(Camera.main);
                MiniMapCamera.aspect           = 1;
                MiniMapCamera.orthographic     = true;
                MiniMapCamera.orthographicSize = 150;
                MiniMapCamera.nearClipPlane    = 45;
                MiniMapCamera.targetTexture    = RTCamera;
                MiniMapCamera.clearFlags       = CameraClearFlags.SolidColor;
                //MiniMapCamera.rect = new Rect(
                //            new Vector2(
                //                Screen.width * 10 / 9,
                //                Screen.height * 10 / 9),
                //            new Vector2(Screen.width / 10, Screen.height / 10));

                RTCamera = new RenderTexture(Screen.width / 5, Screen.height / 5, 24);
            }
        }
        public override void OnSimulateStart()
        {
            BulletCurrentNumber = BulletMaxNumber = (int)BulletNumberSlider.Value;
            Strength            = StrengthSlider.Value * 120f;
            KnockBack           = KnockBackSlider.Value * Strength * 0.75f;
            Rate = RateSlider.Value;

            var yd = CJ.yDrive;

            yd.positionDamper = 500f * damperSlider.Value * StrengthSlider.Value;
            yd.positionSpring = 3000f * StrengthSlider.Value;
            CJ.yDrive         = yd;

            initBullet();
            initVFX();

            void initBullet()
            {
                BulletObject = new GameObject("Bullet");
                BulletObject.transform.localScale = transform.localScale * 0.05f;
                BulletObject.AddComponent <DestroyIfEditMode>();

                var mf = BulletObject.AddComponent <MeshFilter>();

                mf.mesh = ModResource.GetMesh("Bullet Mesh");

                var mr = BulletObject.AddComponent <MeshRenderer>();

                mr.material.mainTexture = ModResource.GetTexture("Bullet Texture");

                var rigidbody = BulletObject.AddComponent <Rigidbody>();

                rigidbody.mass = bulletMassSlider.Value;
                rigidbody.drag = bulletDragSlider.Value;
                rigidbody.collisionDetectionMode = CollisionDetectionMode.ContinuousDynamic;

                var collider = BulletObject.AddComponent <BoxCollider>();

                var tsd = BulletObject.AddComponent <TimedSelfDestruct>();

                var bs = BulletObject.AddComponent <BulletScript>();

                bs.Setup(Strength, bulletCollisionEnableTimeSlider.Value, Direction);

                var tr = BulletObject.AddComponent <TrailRenderer>();

                tr.startWidth = BulletObject.transform.localScale.magnitude * bulletTrailWidthSlider.Value;
                tr.endWidth   = BulletObject.transform.localScale.magnitude * 0.5f * bulletTrailWidthSlider.Value;
                tr.material   = new Material(Shader.Find("Particles/Additive"));
                tr.material.SetColor("_TintColor", bulletColorSlider.Value);
                tr.time = Mathf.Clamp(bulletTrailLengthSlider.Value, 0f, 1f);

                BulletObject.SetActive(false);
            }

            void initVFX()
            {
                EffectsObject = EffectsObject ?? (GameObject)Instantiate(AssetManager.Instance.MachineGun.fireEffect, transform);
                EffectsObject.transform.position         = transform.TransformPoint(SpawnPoint);
                EffectsObject.transform.localEulerAngles = new Vector3(0, 180f, 0);
                EffectsObject.transform.localScale       = Vector3.one * 0.65f;
                EffectsObject.GetComponent <Reactivator>().TimeDelayToReactivate = Rate;
                EffectsObject.SetActive(false);
            }
        }
Ejemplo n.º 26
0
        public override void OnSimulateStart()
        {
            string ShaderString = UseNotTrans.IsActive ? "Legacy Shaders/Reflective/Bumped Specular" : "Particles/Additive";

            rHInfos = new List <RHInfo>();

            Especially = new GameObject("TheThings");

            if (!UseLegacy.IsActive)
            {
                CINU  = new CheckIfNeeeeeeedsUpdate(CheckIfNeedsUpdate);
                CTRGO = new GameObject("CubeTube");

                if (CTR == null)
                {
                    CTR = CTRGO.AddComponent <CustomTubeRenderer>();
                    //CTR.material = new Material(Shader.Find("Particles/Alpha Blended"));
                    //CTR.crossSegments = 1;
                    CTR.flatAtDistance = 1;
                    CTR.maxRebuildTime = 0.01f;
                }


                CTRGO.transform.SetParent(transform);
                CTRGO.transform.localPosition = Vector3.forward * 1.1f;
                CTRGO.transform.rotation      = transform.rotation;
            }
            else
            {
                CINU = new CheckIfNeeeeeeedsUpdate(LegacyCheckIfNeedsUpdate);
                if (lr == null)
                {
                    lr = this.gameObject.AddComponent <LineRenderer>();
                }
                lr.material          = new Material(Shader.Find(ShaderString));
                lr.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
                lr.SetWidth(0.08f, 0.08f);

                Color ArgColour = LaserColourSlider.Value;

                lr.SetColors(Color.Lerp(ArgColour, Color.black, 0.45f),
                             Color.Lerp(ArgColour, Color.clear, 0.2f));
                lr.SetVertexCount(0);
            }

            Especially.transform.SetParent(this.transform);
            Especially.transform.localPosition = Vector3.forward * 1.1f;
            Especially.transform.LookAt(this.transform.position);

            //lr.material.SetColors(Color.Lerp(ArgColour, Color.black, 0.45f),
            //    Color.Lerp(ArgColour, Color.clear, 0.2f));



            laserAtOff = !LaserOnOffToggle.IsActive;

            PointLight            = Especially.AddComponent <Light>();
            PointLight.color      = LaserColourSlider.Value;
            PointLight.intensity  = 3 * Math.Max(0.25f, PenetrativeLengthMultiplier.Value);
            PointLight.range      = Mathf.Max(this.transform.localScale.x, this.transform.localScale.y) * LaserWidth.Value * 3f;
            PointLight.shadows    = LightShadows.Soft;
            TheToggleProvideLight = LightOptionToggle.IsActive ? 1 : 0;
            if (ShrinkEffectToggle.IsActive && !PSR)
            {
                PS = Especially.AddComponent <ParticleSystem>();
                ParticleSystem.Particle NewParticle = new ParticleSystem.Particle();
                PS.startSize     = 0.2f;
                PS.startColor    = new Color(LaserColourSlider.Value.r, LaserColourSlider.Value.g, LaserColourSlider.Value.b, 0.5f);
                PS.startLifetime = ChargeHoldGasp.Value * 0.45f;
                PS.startSpeed    = -0.5f;
                PS.scalingMode   = ParticleSystemScalingMode.Shape;
                PS.SetParticles(new ParticleSystem.Particle[] { NewParticle }, 1);

                ParticleSystem.ColorOverLifetimeModule PSCOLM = PS.colorOverLifetime;
                PSCOLM.color = new Gradient()
                {
                    alphaKeys = new GradientAlphaKey[] { new GradientAlphaKey(0, 0), new GradientAlphaKey(0.8f, 0.2f), new GradientAlphaKey(1, 1) }, colorKeys = new GradientColorKey[] { new GradientColorKey(PS.startColor, 0), new GradientColorKey(PS.startColor, 1) }
                };
                PSCOLM.enabled = true;

                PS.simulationSpace = ParticleSystemSimulationSpace.World;

                //ParticleSystem.Burst BUTS = new ParticleSystem.Burst(10, 10, 1000);

                PSR = Especially.GetComponent <ParticleSystemRenderer>();
                //PSR.material = new Material(Shader.Find("Particles/Alpha Blended"));
                PSR.material             = new Material(Shader.Find(ShaderString));
                PSR.material.mainTexture = (ModResource.GetTexture("LaserParticle.png"));
            }
            if (StatMaster.isMP && !StatMaster.isClient)
            {
                Message laserSimu = Messages.LaserSimuStart.CreateMessage(Block.From(this));
                ModNetworking.SendInSimulation(laserSimu);
            }
        }
Ejemplo n.º 27
0
        public override void OnSimulateStart()
        {
            this.transform.Find("Vis/Vis").GetComponent <MeshRenderer>().material.shader = Shader.Find("Legacy Shaders/Reflective/Bumped Specular");
            this.transform.Find("Vis/Vis").GetComponent <MeshRenderer>().material.SetTexture("_BumpMap", ModResource.GetTexture("zDroneBump.png"));

            if (DroneAIType.Value == 1)
            {
                IAmSwitching = true;
                TargetSelector();
            }
            else
            {
                foreach (DroneControlBlockBehavior DCBB in Machine.SimulationMachine.GetComponentsInChildren <DroneControlBlockBehavior>())
                {
                    if (DCBB.DroneTag.Value == this.DroneTag.Value)
                    {
                        DCBB.AIDroneList.Add(this);
                        MyControl           = DCBB;
                        OrbitVeloMultiplier = 1f;
                        break;
                    }
                }
            }


            Shooter = Instantiate(PrefabMaster.BlockPrefabs[11].gameObject);
            Shooter.transform.parent = this.transform;
            Destroy(Shooter.GetComponent <ConfigurableJoint>());
            炮弹速度 = 5 * 58;
            Shooter.transform.localEulerAngles = Vector3.right * 270;
            Shooter.transform.localPosition    = Vector3.up * 0.8f + Vector3.forward * 3f;
            Destroy(Shooter.GetComponentInChildren <CapsuleCollider>());
            CB = Shooter.GetComponent <CanonBlock>();
            CB.knockbackSpeed = 30;
            CB.Rigidbody      = this.Rigidbody;
            Destroy(Shooter.GetComponent <Rigidbody>());
            ((List <MSlider>)(CB.Sliders))[0].Value = 5;

            MeshCollider MC = this.transform.GetComponentInChildren <MeshCollider>();

            MC.material.dynamicFriction = 0;
            MC.material.staticFriction  = 0;

            MyPrecision = 0.25f;
            MySize      = 1;
            精度          = 0.25f;
            size        = 1;
            SetUpHP(200);
            RotatingSpeed = 1f;
            //RotatingSpeed = 5f;
            PositionIndicator = GameObject.CreatePrimitive(PrimitiveType.Sphere);
            DestroyImmediate(PositionIndicator.GetComponent <Rigidbody>());
            DestroyImmediate(PositionIndicator.GetComponent <Collider>());
        }
Ejemplo n.º 28
0
 private void Awake()
 {
     ModResource.CreateAssetBundleResource("Effect", @"Resources/bundle_mfk");
     StartCoroutine(LoadAssetBundle());
     SceneManager.sceneLoaded += (s, a) => { StartCoroutine(LoadAssetBundle()); };
 }
Ejemplo n.º 29
0
        public override void BuildingUpdate()
        {
            DroneTag.Value = (int)DroneTag.Value;
            //Debug.Log(GameObject.Find("frozen_knight_1").GetComponent<Renderer>().material.shader.name);
            //this.transform.Find("Vis/Vis").GetComponent<MeshRenderer>().material.shader = Shader.Find("Instanced/Block Shader (GPUI off)");
            this.transform.Find("Vis/Vis").GetComponent <MeshRenderer>().material.shader = Shader.Find("Legacy Shaders/Reflective/Bumped Specular");
            this.transform.Find("Vis/Vis").GetComponent <MeshRenderer>().material.SetTexture("_BumpMap", ModResource.GetTexture("FiaoCombinedMod/zDroneBump.png"));


            if (DroneAIType.Value == 0)
            {
                Activation.DisplayInMapper = false;
                //OrbitRadius.DisplayInMapper = true;
                Difficulty.DisplayInMapper = false;
                DroneTag.DisplayInMapper   = true;
            }
            else
            {
                Activation.DisplayInMapper = true;
                //OrbitRadius.DisplayInMapper = false;
                Difficulty.DisplayInMapper = true;
                DroneTag.DisplayInMapper   = false;
            }
        }