Пример #1
0
        public static void Postfix(pReactorState newState, pReactorState oldState, LG_WardenObjective_Reactor __instance)
        {
            if (newState.status == oldState.status)
            {
                return;
            }

            if (newState.status == eReactorStatus.Shutdown_intro)
            {
                __instance.m_sound.Post(EVENTS.LIGHTS_OFF_GLOBAL);
                __instance.m_sound.Post(EVENTS.REACTOR_SHUTDOWN);
                var noise = new NM_NoiseData()
                {
                    noiseMaker = null,
                    position   = __instance.m_terminalAlign.position,
                    radiusMin  = 7,
                    radiusMax  = 100,
                    yScale     = 1f,
                    node       = __instance.SpawnNode,
                    type       = NM_NoiseType.InstaDetect,
                    includeToNeightbourAreas = false,
                    raycastFirstNode         = false
                };
                NoiseManager.MakeNoise(noise);
            }
        }
        public void Activate(uint enemyID, int count, LG_LayerType layer, eLocalZoneIndex zoneIndex, string areaName)
        {
            var enemies  = UnityEngine.Object.FindObjectsOfType <EnemyAgent>();
            int curCount = 0;

            for (int index = 0; index < enemies.Count && (count == -1 || curCount < count); index++)
            {
                var enemy = enemies[index];

                var node = enemy.CourseNode;
                if (node != null && node.LayerType == layer && node.m_zone.LocalIndex == zoneIndex && node.m_area.m_navInfo.Suffix.ToLower() == areaName)
                {
                    if (enemy.EnemyData.persistentID == enemyID && enemy.AI != null && enemy.Alive)
                    {
                        NM_NoiseData data = new NM_NoiseData()
                        {
                            noiseMaker = null,
                            position   = enemy.Position,
                            radiusMin  = 0f,
                            radiusMax  = 100f,
                            yScale     = 1f,
                            node       = enemy.CourseNode,
                            type       = NM_NoiseType.InstaDetect,
                            includeToNeightbourAreas = true,
                            raycastFirstNode         = false
                        };

                        NoiseManager.MakeNoise(data);
                        curCount++;
                    }
                }
            }
        }
Пример #3
0
 public void OnCollisionEnter2D(Collision2D collision)
 {
     if (collision.gameObject.tag == "Wall")
     {
         NoiseManager.MakeNoise(transform.position, noiseAmount);
         Destroy(this.gameObject);
     }
 }
Пример #4
0
    void FixedUpdate()
    {
        float horizontal = player.GetAxis("Horizontal");
        float vertical   = player.GetAxis("Vertical");
        bool  running    = player.GetButton("Run");

        Vector2 dir        = new Vector2(horizontal, vertical);
        float   speed      = running ? runSpeed : walkSpeed;
        float   noiseLevel = rb.velocity.magnitude * volumeMultiplier;

        rb.AddForce(dir * speed);

        if (noiseLevel > 0)
        {
            NoiseManager.MakeNoise(transform.position, noiseLevel);
        }

        // DEBUG
        noiseCircle.localScale = Vector2.one * noiseLevel * 2;
    }
Пример #5
0
    IEnumerator Shoot()
    {
        while (App.Instance.isPlaying)
        {
            if (weapon != null && !dead && fire)
            {
                if (weapon.melee)
                {
                    float elapsedTime = 0;
                    if (weapon.swingRotate.magnitude != 0)
                    {
                        Quaternion startRot = gun.transform.rotation;

                        while (elapsedTime <= weapon.swingTime)
                        {
                            elapsedTime           += Time.deltaTime;
                            gun.transform.rotation = Quaternion.Lerp(startRot, Quaternion.Euler(weapon.swingRotate), elapsedTime / weapon.swingTime);
                            yield return(null);
                        }

                        elapsedTime = 0;
                        while (elapsedTime <= weapon.swingTime * 1.5f)
                        {
                            elapsedTime += Time.deltaTime;

                            gun.transform.rotation = Quaternion.Lerp(Quaternion.Euler(weapon.swingRotate), startRot, elapsedTime / (weapon.swingTime * 1.5f));
                            yield return(null);
                        }

                        if (GetComponentInChildren <MeleeWeapon>())
                        {
                            GetComponentInChildren <MeleeWeapon>().senderTag = gameObject.tag;
                        }
                    }
                    else
                    {
                        Vector3 startPos = gunPos.position;
                        Vector3 moveTo   = startPos + (gun.transform.right);

                        while (elapsedTime <= weapon.swingTime / 2)
                        {
                            elapsedTime           += Time.deltaTime;
                            gun.transform.position = Vector3.Lerp(startPos, moveTo, elapsedTime / (weapon.swingTime / 2));
                            yield return(null);
                        }


                        elapsedTime = 0;
                        while (elapsedTime <= weapon.swingTime / 2)
                        {
                            elapsedTime           += Time.deltaTime;
                            gun.transform.position = Vector3.Lerp(moveTo, gunPos.position, elapsedTime / (weapon.swingTime / 2));
                            yield return(null);
                        }
                    }

                    weapon.durability--;

                    if (weapon.durability <= 0)
                    {
                        Destroy(gun);
                        weapon = null;
                    }

                    yield return(null);
                }
                else if (ammo > 0)
                {
                    //create bullet
                    foreach (Transform t in shootPos)
                    {
                        Vector3 pos = new Vector3(t.position.x, t.position.y, -1);
                        Bullet  b   = Instantiate(weapon.bullet, pos, t.rotation).GetComponent <Bullet>();
                        b.speed    += rig.velocity.normalized.magnitude;
                        b.senderTag = gameObject.tag;
                    }

                    StartCoroutine(MuzzleFlash());
                    NoiseManager.MakeNoise(transform.position, 0.2f, 12.5f, "gun");

                    if (gameObject.CompareTag("Player"))
                    {
                        App.Instance.cameraController.Shake(weapon.shakeTime);
                    }

                    // Instantiate(weapon.muzzle, shootPos.position, shootPos.rotation);

                    AudioController.PlaySound(weapon.GetRandomClip());
                    ammo--;

                    if (ammo <= 0)
                    {
                        if (weapon.destroyAfterThrow)
                        {
                            Destroy(gun);
                        }
                        else
                        {
                            ThrowGun();
                        }

                        if (charAnim != null)
                        {
                            charAnim.SetInteger("weapon", 0);
                        }
                        weapon = null;
                    }

                    if (weapon != null)
                    {
                        yield return(new WaitForSeconds(weapon.fireRate));
                    }
                }
            }


            yield return(null);
        }

        yield return(null);
    }
Пример #6
0
 // Use this for initialization
 void Start()
 {
     NoiseManager.MakeNoise(transform.position, noiseAmount);
     Destroy(this.gameObject);
 }