Beispiel #1
0
    private void PlantMines()
    {
        checkTimeRemaining -= Time.deltaTime;

        if (checkTimeRemaining < float.Epsilon)
        {
            Landmine mine = new Landmine();
            mine.Position = Position;

            m_landmines.Add(mine);

            checkTimeRemaining = mineCheckFrequency;

            // determine whether to play sound
            if (Random.Range(0, 100) < m_clipProbability)
            {
                if (!m_audio.isPlaying)
                {
                    // find the sound to play
                    int index = Random.Range(0, m_audioclips.Count);
                    m_audio.clip = m_audioclips[index];
                    m_audio.Play();
                }
            }
        }
    }
Beispiel #2
0
            public void ReturnsTrueIfClientIdIsNull()
            {
                var target = new Landmine();
                var result = target.RequestGate(null, null);

                Assert.IsTrue(result);
            }
Beispiel #3
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        Landmine landmine = collision.gameObject.GetComponent <Landmine>();

        if (landmine != null)
        {
            landmine.Explode();
        }

        Explosion explosion = collision.gameObject.GetComponent <Explosion>();

        if (explosion != null)
        {
            explosion.DisableCollision();
            Vector2 dir = (transform.position - explosion.transform.position).normalized;
            rb.velocity = new Vector2(0, 0);
            rb.AddForce(dir * explosion.explodePower, ForceMode2D.Impulse);
            outtaControl = true;
            cameraShake.Shake();
        }

        Ending ending = collision.gameObject.GetComponent <Ending>();

        if (ending != null)
        {
            RegainControl();
            rb.velocity = Vector2.zero;
            ending.End();
            Destroy(this);
        }
    }
    public void PlaceMines()
    {
        int x = Mathf.FloorToInt(Player.transform.position.x);
        int y = Mathf.FloorToInt(Player.transform.position.y);

        for (int px = x - size; px < x + size + 1; px++)
        {
            for (int py = y - size; py < y + size + 1; py++)
            {
                if (px >= 0 && px < tscript.blocks.GetLength(0) && -py >= 0 && -py < tscript.blocks.GetLength(1))
                {
                    if (tscript.blocks[px, -py] == 70)
                    {
                        if (!poola.VerifyPosition(new Vector2(px + 0.44f, py - 0.557f)))
                        {
                            int i = poola.GetPooledObject();
                            if (i != -100)
                            {
                                poola.pooledObjects[i].transform.position = new Vector3(px + 0.44f, py - 0.557f, -0.01f);
                                poola.pooledObjects[i].SetActive(true);
                                Landmine rand = poola.pooledObjects[i].GetComponent <Landmine>();
                                rand.sendoUsada = false;
                                Renderer rend = poola.pooledObjects[i].GetComponent <Renderer>();
                                //rend.enabled = false;
                                color               = rend.material.color;
                                color.a             = 0;
                                rend.material.color = color;
                            }
                        }
                    }
                }
            }
        }
    }
Beispiel #5
0
    public void OnLandmineInteraction(Landmine landmine)
    {
        Vector3 force    = (transform.position - landmine.transform.position).normalized * landmineHitForce;
        Vector3 position = landmine.transform.position;

        AddForceNetworkTest(landmine.Sender.ID, force, position);
    }
Beispiel #6
0
            public void SetsExpectedDefaults()
            {
                var target = new Landmine();

                Assert.AreEqual("Landmine", target.LandmineName);
                Assert.AreEqual("8008", target.ExpectedValue);
                Assert.AreEqual(120, target.Seconds);
            }
Beispiel #7
0
    public override void ServerInit()
    {
        base.SetFlag(BaseEntity.Flags.On, false, false, true);
        Landmine landmine = this;

        base.Invoke(new Action(landmine.Arm), 1.5f);
        base.ServerInit();
    }
Beispiel #8
0
            public void ReturnsFalseIfExpectedValueNotEmptyFoundInUnknown()
            {
                var requestMock = new Mock <HttpRequestBase>();
                var target      = new Landmine {
                    RequestArea = (RequestArea)Enum.ToObject(typeof(RequestArea), -1)
                };
                var result = target.RequestGate("6AC9EB3D5C814D728E2D4C8F49C4F480", requestMock.Object);

                Assert.IsFalse(result);
            }
Beispiel #9
0
        public override EventResult Process(Logger logger)
        {
            logger.Log($"{_owner.Name} plants a landmine.");

            var landmine = new Landmine(_owner, _owner.Position, _owner.GameMap);

            var result = new EventResult();

            result.ChainEvent = new LandmineWaitingEvent(landmine);

            return(result);
        }
 public bool OnFire(float angle, Weapon weapon, WeaponStats _)
 {
     if (Randomf.Chance(Intensity * weapon.cooldown))
     {
         GameObject mine = SpawnPrefab(weapon.transform.position,
                                       new Vector3(0, 0, angle), weapon.transform.parent);
         Landmine landmine = mine.GetComponent <Landmine>();
         landmine.Activate(Intensity * 2, Intensity * 5, weapon.GetComponent <BaseController>());
         return(true);
     }
     return(false);
 }
Beispiel #11
0
            public void ReturnsFalseIfExpectedValueNotFoundInForm()
            {
                var requestMock = new Mock <HttpRequestBase>();

                requestMock.Setup(x => x.Form).Returns(new NameValueCollection {
                    { "Landmine", "100" },
                });
                var target = new Landmine {
                    RequestArea = RequestArea.Form
                };
                var result = target.RequestGate("0BDFD8A29F084D5492B0CF2E717E7195", requestMock.Object);

                Assert.IsFalse(result);
            }
Beispiel #12
0
            public void ReturnsTrueIfExpectedValueFoundInQueryString()
            {
                var requestMock = new Mock <HttpRequestBase>();

                requestMock.Setup(x => x.QueryString).Returns(new NameValueCollection {
                    { "Landmine", "8008" },
                });
                var target = new Landmine {
                    RequestArea = RequestArea.QueryString
                };
                var result = target.RequestGate("51CF66EC32974C40A1F54081CC4D53F7", requestMock.Object);

                Assert.IsTrue(result);
            }
Beispiel #13
0
            public void ReturnsFalseIfExpectedValueNotFoundInQueryString()
            {
                var requestMock = new Mock <HttpRequestBase>();

                requestMock.Setup(x => x.QueryString).Returns(new NameValueCollection {
                    { "Landmine", "100" },
                });
                var target = new Landmine {
                    RequestArea = RequestArea.QueryString
                };
                var result = target.RequestGate("0CB0F4EFC88143D7AA4E332B414A91D2", requestMock.Object);

                Assert.IsFalse(result);
            }
Beispiel #14
0
            public void ReturnsTrueIfExpectedValueFoundInHeaders()
            {
                var requestMock = new Mock <HttpRequestBase>();

                requestMock.Setup(x => x.Headers).Returns(new NameValueCollection {
                    { "Landmine", "8008" },
                });
                var target = new Landmine {
                    RequestArea = RequestArea.Header
                };
                var result = target.RequestGate("D3BCEC0D7E724E9FBF8042FAC0DADB0C", requestMock.Object);

                Assert.IsTrue(result);
            }
Beispiel #15
0
            public void ReturnsFalseIfCacheContainsLandmineTag()
            {
                HttpRuntime.Cache.Add(
                    "Landmined-B08B9F4B94404FFFAB41E244C69932F7",
                    true,
                    null,
                    DateTime.Now.AddSeconds(10),
                    Cache.NoSlidingExpiration,
                    CacheItemPriority.Low,
                    null);

                var target = new Landmine();
                var result = target.RequestGate(null, null);

                Assert.IsTrue(result);
            }
Beispiel #16
0
        public static void On_LandmineTriggered(Landmine landmine, BasePlayer basePlayer)
        {
            LandmineTriggerEvent landmineTriggerEvent = new LandmineTriggerEvent(landmine, basePlayer);

            OnNext("On_LandmineTriggered", landmineTriggerEvent);

            if (landmineTriggerEvent.Explode)
            {
                if (basePlayer != null)
                {
                    landmine.SetFieldValue("triggerPlayerID", basePlayer.userID);
                }
                landmine.SetFlag(BaseEntity.Flags.Open, true);
                landmine.SendNetworkUpdate(BasePlayer.NetworkQueue.Update);
            }
        }
    public override void Activate(GameObject parent)
    {
        Transform mineLocation = parent.GetComponent <GunPosition>().shootPosition;
        //Create a landmine at the start position
        GameObject landmineInstance = Instantiate(landMine, mineLocation.transform.position, Quaternion.identity);
        BotSensor  sensor           = parent.GetComponentInParent <BotSensor>();
        int        enemyLayer       = sensor.GetEnemyLayer();
        //Fetch script/data for landmine
        Landmine projectileScript = landmineInstance.GetComponent <Landmine>();

        //Tells landmine values
        projectileScript.SetValues(damage, projectileSize, enemyLayer);

        // call a destroy function on landmineInstance

        //TODO: Set landmine knockback
    }
Beispiel #18
0
 public override void ObjectEntered(GameObject obj)
 {
     if (base.isClient)
     {
         return;
     }
     if (!this.Armed())
     {
         Landmine landmine = this;
         base.CancelInvoke(new Action(landmine.Arm));
         this.blocked = true;
         return;
     }
     if (Interface.CallHook("OnTrapTrigger", this, obj) != null)
     {
         return;
     }
     this.Trigger(obj.ToBaseEntity() as BasePlayer);
 }
    private void DestroyRPC(int id)
    {
        if (Instance == null)
        {
            return;
        }

        m_Landmines.RemoveAll(x => x == null);

        Landmine landmine = m_Landmines.Find(x => x.ID == id);


        if (landmine != null)
        {
            landmine.SpawnExplosion();

            m_Landmines.Remove(landmine);
            m_Pool.Reserve(landmine.GetComponent <PooledObject>());
        }
    }
    private void SpawnNewRPC(Vector3 position, float fuse, int damage, int health, float radius, int viewID, int mineID, double createTime)
    {
        Landmine landmine = m_Pool.Spawn <Landmine>();

        float dt = (float)(PhotonNetwork.time - createTime);

        fuse -= dt;

        landmine.Health.SetMaxValue(health, true);
        landmine.transform.SetParent(transform);

        landmine.SetFuse(fuse);
        landmine.SetPosition(position);
        landmine.SetDamage(damage);
        landmine.SetRadius(radius);
        landmine.SetSenderID(viewID);
        landmine.SetID(mineID);

        m_Landmines.Add(landmine);

        m_LandmineID = mineID + 1;
    }
Beispiel #21
0
    public void BackStep()
    {
        // drop landmines
        if (isRunning)
        {
            if (!IsPartCoolingDown())
            {
                ResetCooldownTimer();

                //Create a landmine at the start position
                GameObject landmineInstance = Instantiate(landmine, projectileStartPos.transform.position, Quaternion.identity);

                //Fetch script/data for landmine
                Landmine projectileScript = landmineInstance.GetComponent <Landmine>();

                //Tells landmine values
                projectileScript.SetValues(damage, projectileSize, enemyLayer);

                // call a destroy function on landmineInstance

                //TODO: Set landmine knockback
            }
        }
    }
Beispiel #22
0
 private object IOnTrapDisarm(Landmine trap, BaseEntity.RPCMessage msg)
 {
     return Interface.CallHook("OnTrapDisarm", trap, msg.player);
 }
Beispiel #23
0
 public LandmineWaitingEvent(Landmine landmine)
 {
     Landmine = landmine;
 }
Beispiel #24
0
 private void OnTrapDisarm(Landmine trap, BasePlayer player)
 {
     HookCalled("OnTrapDisarm");
 }
Beispiel #25
0
        /// <summary>
        /// Called from <c>Landmine.Trigger(BasePlayer)</c>
        /// </summary>
        public static void On_LandmineTriggered(Landmine landmine, BasePlayer basePlayer)
        {
            Pre<LandmineTriggerEvent> preLandmineTriggerEvent = new Pre<LandmineTriggerEvent>(landmine, basePlayer);

            OnNext("Pre_LandmineTriggered", preLandmineTriggerEvent);

            if (preLandmineTriggerEvent.IsCanceled == false) {
                if (basePlayer != null) {
                    landmine.SetFieldValue("triggerPlayerID", basePlayer.userID);
                }

                landmine.SetFlag(BaseEntity.Flags.Open, true);
                landmine.SendNetworkUpdate(BasePlayer.NetworkQueue.Update);

                OnNext("On_LandmineTriggered", preLandmineTriggerEvent.Event);
            }
        }
Beispiel #26
0
 /// <summary>
 /// Called from <c>Landmine.Explode()</c>
 /// </summary>
 public static void On_LandmineExploded(Landmine l) => OnNext("On_LandmineExploded", l);
Beispiel #27
0
 /// <summary>
 /// Called from <c>Landmine.Arm()</c>
 /// </summary>
 public static void On_LandmineArmed(Landmine l) => OnNext("On_LandmineArmed", l);
Beispiel #28
0
 public void On_LandmineExploded(Landmine l)
 {
     SetHookWorking("On_LandmineExploded");
     Broadcast("Landmine has exploded");
 }
Beispiel #29
0
 public void On_LandmineArmed(Landmine l)
 {
     SetHookWorking("On_LandmineArmed");
     Broadcast("Landmine has been armed");
 }
Beispiel #30
0
 public static void On_LandmineArmed(Landmine l)
 {
     OnNext("On_LandmineArmed", l);
 }
Beispiel #31
0
 public LandmineTriggerEvent(Landmine landmine, BasePlayer player)
 {
     _landmine = landmine;
     _player   = Server.GetPlayer(player);
 }
Beispiel #32
0
 public LandmineTriggerEvent(Landmine landmine, BasePlayer player)
 {
     _landmine = landmine;
     _player = Server.GetPlayer(player);
 }
Beispiel #33
0
    public override void OnKilled(HitInfo info)
    {
        Landmine landmine = this;

        base.Invoke(new Action(landmine.Explode), UnityEngine.Random.Range(0.1f, 0.3f));
    }
Beispiel #34
0
 public static void On_LandmineExploded(Landmine l)
 {
     OnNext("On_LandmineExploded", l);
 }
Beispiel #35
0
 public static void LandmineArmed(Landmine l)
 {
     OnLandmineArmed.OnNext(l);
 }
Beispiel #36
0
 public static void LandmineExploded(Landmine l)
 {
     OnLandmineExploded.OnNext(l);
 }
 private void overloadAttack()
 {
      //Animation
      //overload
      overload = Instantiate(overloadObject, transform.position, transform.rotation) as Landmine;
      overload_CD = 0;
 }
Beispiel #38
0
        public static void On_LandmineTriggered(Landmine landmine, BasePlayer basePlayer)
        {
            LandmineTriggerEvent landmineTriggerEvent = new LandmineTriggerEvent(landmine, basePlayer);
            OnNext("On_LandmineTriggered", landmineTriggerEvent);

            if (landmineTriggerEvent.Explode)
            {
                if (basePlayer != null)
                    landmine.SetFieldValue("triggerPlayerID", basePlayer.userID);
                landmine.SetFlag(BaseEntity.Flags.Open, true);
                landmine.SendNetworkUpdate(BasePlayer.NetworkQueue.Update);
            }
        }