상속: MonoBehaviour
예제 #1
0
    private void OnMeteorCollision(GameObject meteorGameObject)
    {
        Meteor meteor = meteorGameObject.GetComponent <Meteor>();

        meteor.Break();
        ReturnToPool();         //return to pool
    }
예제 #2
0
    public void SelectInSpell(int s)
    {
        clean();
        switch (s)
        {
        case 0:
            spellText = GameObject.Instantiate(Resources.Load("SpellTexts/MeteorText")) as GameObject;
            Destroy(escolhida [3].icon);
            escolhida[3] = new Meteor();
            spellbook.UpdateSpellIcons();
            break;

        case 1:
            spellText = GameObject.Instantiate(Resources.Load("SpellTexts/BlizzardText")) as GameObject;
            if (liberada [3] == 1)
            {
                Destroy(escolhida [3].icon);
                escolhida [3] = new Blizzard();
                spellbook.UpdateSpellIcons();
            }
            else
            {
                buttonLiberar = GameObject.Instantiate(Resources.Load("ButC")) as GameObject;
                buttonLiberar.GetComponent <CompItem>().setSpSelec(3);
            }
            break;
        }
    }
예제 #3
0
 public void SpawnMeteors()
 {
     foreach (Transform currSpawn in spawnPositions)
     {
         spawnedMeteor = Instantiate(meteor, currSpawn.position, currSpawn.rotation).GetComponent <Meteor>();
         spawnedMeteor.SetSummonerID(activatorID);
     }
 }
예제 #4
0
 private void OnTriggerEnter2D(Collider2D collision)
 {
     if (collision.GetComponent <Meteor>() != null)
     {
         Meteor meteorCollidedWith = collision.GetComponent <Meteor>();
         meteorCollidedWith.BlowUp();
     }
 }
예제 #5
0
    public void SpawnEnemy(Transform spawnLoc)
    {
        int ran = Random.Range(0, meteors.Length);

        meteor       = meteors[ran];
        meteor.color = ran;
        Instantiate(meteors[ran], spawnLoc.position, spawnLoc.rotation);
    }
예제 #6
0
    public void PlanetHitByMeteor(Meteor meteor)
    {
        // Score Manager
        ScoreManager.instance.PlanetHitByMeteor(meteor);

        // Population Manager
        PopulationManager.instance.PlanetHitByMeteor(meteor);
    }
예제 #7
0
 /// <summary>
 /// Handles the destruction of a meteor.
 /// </summary>
 /// <param name="meteor">The meteor that has been destroyed.</param>
 private void HandleMeteorDestuction(Meteor meteor)
 {
     _gameScore.Score++;
     if (meteor is TinyMeteor)
     {
         return;
     }
     _meteorFactory.SplitMeteor(meteor, true);
 }
    public void SpawnMeteorOutOfObject(IAvaiableForEnemySpawn _object)
    {
        Meteor newMeteor = ObjectSpawner.SpawnMeteor(_object.GetPosition());

        SimulationInstance.enemyObjects.Add(newMeteor);
        newMeteor.SetupPlayerTransform(SimulationInstance.Player.transform);
        newMeteor.LaunchStartupKick(_object.GetSpawnKickTargetPosition());
        newMeteor.ToggleToMoveTowardsPlayer();
    }
예제 #9
0
 /// <summary>
 /// Handles the collision between a laser and a meteor.
 /// </summary>
 /// <param name="laser">The laser that may collide.</param>
 /// <param name="meteor">The meteor that may collide.</param>
 private void HandleLaserMeteorCollision(Laser laser, Meteor meteor)
 {
     if (CollisionDetector.CheckCollision(laser.BoundingRectangle, meteor.BoundingCircle))
     {
         laser.Destroy();
         meteor.Damage(laser.Damage);
         _entityManager.AddEntity(new Explosion(meteor.Position, meteor.BoundingCircle.Radius));
     }
 }
예제 #10
0
 /// <summary>
 /// Handles the collision between the player and a meteor.
 /// </summary>
 /// <param name="player">The player that may collide.</param>
 /// <param name="meteor">The meteor that may collide.</param>
 private void HandlePlayerMeteorCollision(Player player, Meteor meteor)
 {
     if (CollisionDetector.CheckCollision(player.BoundingCircle, meteor.BoundingCircle))
     {
         player.Damage(1);
         meteor.Destroy();
         _entityManager.AddEntity(new Explosion(meteor.Position, meteor.BoundingCircle.Radius));
     }
 }
예제 #11
0
 private void OnCollisionEnter(Collision collision)
 {
     if (collision.transform.tag == "Meteor")
     {
         Meteor meteor = collision.transform.GetComponent <Meteor>();
         TakeDamage(meteor.m_BaseDamage * meteor.Size);
         Destroy(meteor);
     }
 }
예제 #12
0
    private void ShootOne()
    {
        Meteor  meteor    = this.meteors[Random.Range(0, this.meteors.Count)];
        Vector2 speed     = new Vector2(Random.Range(this.minSpeed.x, this.maxSpeed.x), Random.Range(this.minSpeed.y, this.maxSpeed.y));
        Meteor  newMeteor = Instantiate(meteor);

        newMeteor.transform.position = this.transform.position;
        newMeteor.speed = speed;
    }
예제 #13
0
    private void OnTriggerEnter(Collider other)
    {
        Meteor met = other.GetComponent <Meteor>();

        if (met != null)
        {
            Destroy(met.gameObject);
        }
    }
예제 #14
0
    void SpawnMeteor()
    {
        Meteor prefab = meteors[Random.Range(0, meteors.Length)];
        Meteor spawn  = Instantiate <Meteor>(prefab);
        //var offset = new Vector3(player.localPosition.x, 0, 0);
        var spawnPosition = player.localPosition + Random.onUnitSphere * spawnDistance;

        spawn.transform.localPosition = spawnPosition;
        //Debug.Log("Spawned meteor at: {}" + spawnPosition);
    }
예제 #15
0
 private void SpawnChildMeteor()
 {
     if (childMeteors.Length > 0)
     {
         int    whichMeteor = Random.Range(0, childMeteors.Length);
         Meteor child       = Instantiate(childMeteors[whichMeteor]);
         child.Initialize(Speed + 1);
         child.transform.position = transform.position;
     }
 }
예제 #16
0
 private void InvokeMeteorHit(Meteor meteor)
 {
     if (MeteorWasHit != null)
     {
         MeteorWasHit(this,
                      new MeteorHitEventArgs {
             Meteor = meteor
         });
     }
 }
예제 #17
0
 public override bool Update(ref Meteor Meteor)
 {
     if (this._ticks < 10)
     {
         Meteor.Opacity += 0.1f;
     }
     else if (this._ticks > this._maxTicks - 10)
     {
         Meteor.Opacity -= 0.1f;
     }
     ref Vector2 position = ref Meteor.Position;
예제 #18
0
        private void OnDisasterTick(object sender, object o)
        {
            if (entityManager.Count < maxEntities)
            {
                // spawn a disaster
                Random randDis = new Random();
                switch (randDis.Next(1, 3))
                {
                case 1:
                    BaseEntity                   enemy      = new Meteor();
                    Systems.SpawnSystem          newSpawn   = new Systems.SpawnSystem();
                    Components.PositionComponent spawnPoint = newSpawn.Spawn(EntityType.Meteor);
                    enemy.sprite.Margin = new Thickness((double)spawnPoint.getXPos(), (double)spawnPoint.getYPos(), 0, 0);
                    Canvas.SetZIndex(enemy.sprite, 7);
                    GameSpace.Children.Add(enemy.sprite);     //ADDING THE ENTITY'S XAML ELEMENT TO THE SCREEN
                    int index = GameSpace.Children.IndexOf(enemy.sprite);
                    entityManager.Add(enemy);
                    break;

                case 2:
                    BaseEntity                   lightningEnemy      = new Lightning();
                    Systems.SpawnSystem          newLightningSpawn   = new Systems.SpawnSystem();
                    Components.PositionComponent lightningSpawnPoint = newLightningSpawn.Spawn(EntityType.Lightning);
                    lightningEnemy.sprite.Margin = new Thickness((double)lightningSpawnPoint.getXPos(), (double)lightningSpawnPoint.getYPos(), 0, 0);
                    Canvas.SetZIndex(lightningEnemy.sprite, 7);
                    GameSpace.Children.Add(lightningEnemy.sprite);     //ADDING THE ENTITY'S XAML ELEMENT TO THE SCREEN
                    int lightningIndex = GameSpace.Children.IndexOf(lightningEnemy.sprite);
                    entityManager.Add(lightningEnemy);
                    break;
                }

                /*
                 * List<BaseEntity> tempList = entityManager;
                 * for (int i = 0; i < tempList.Count; i++)
                 * {
                 *  if (tempList[i].EntType == EntityType.Lightning)
                 *  {
                 *
                 *      BaseEntity newFire = new Fire();
                 *      newFire.sprite.Margin = new Thickness(tempList[i].sprite.Margin.Left, tempList[i].sprite.Margin.Left, 0, 0);
                 *      Canvas.SetZIndex(newFire.sprite, 7);
                 *      GameSpace.Children.Add(newFire.sprite); //ADDING THE ENTITY'S XAML ELEMENT TO THE SCREEN
                 *      int index = GameSpace.Children.IndexOf(newFire.sprite);
                 *      entityManager.Add(newFire);
                 *
                 *  }
                 * }*/


                Components.DamageComponent hostileDamage = new Components.DamageComponent(); //Test Component
                hostileDamage.setInflictableDamage(10);
                InflictVillageDamage(hostileDamage);                                         //Damages Village
            }
        }
예제 #19
0
    public void SpawnMeteor()
    {
        Meteor    m          = (Meteor)Instantiate(meteorPrefabs[Random.Range(0, meteorPrefabs.Length)], meteorsParent);
        Transform spawnPoint = spawnPoints[Random.Range(0, spawnPoints.Length)];

        m.transform.position = spawnPoint.position;
        m.SetDirection(spawnPoint.right);
        m.Init(this);

        meteors.Add(m);
    }
예제 #20
0
 public bool CollidedWith(Meteor _Meteor)
 {
     if ((_PlayerBitmap.CircleCollision(X, Y, _Meteor.CollisionCircle)) == true)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
예제 #21
0
 public void Remove(Meteor meteor, bool s)
 {
     meteors.Remove(meteor);
     if (s)
     {
         score++;
         ui.money++;
         ui.UpdateMoney();
         UpdateScore();
     }
 }
예제 #22
0
    void CreateMeteor()
    {
        Vector3    itemSpawnPos = new Vector3(transform.position.x, transform.position.y + 3f, transform.position.z);
        Vector3    dir          = targetUnit.transform.position - itemSpawnPos + Vector3.up * 1.5f;
        Quaternion rot          = Quaternion.LookRotation(dir);
        Meteor     newMeteor    = Instantiate(meteorPrefab, itemSpawnPos, rot);

        newMeteor.Initialize(team);
        NetworkServer.Spawn(newMeteor.gameObject);
        newMeteor.GetComponent <Rigidbody>().AddForce(Vector3.Normalize(dir) * 200f, ForceMode.Impulse);
    }
    void loadPattern()
    {
        //DEBUG
        int totalMet = 0;

        foreach (KeyValuePair <Vector2, List <Meteor> > entry in meteorMap)
        {
            totalMet += entry.Value.Count;
        }
        Debug.Log("Number of meteors before pattern: " + totalMet);
//DEBUG
        patternIndex++;
        MeteorPattern patternToLoad = currentPatternList[patternIndex];

        Vector2[] positions = patternToLoad.initialPos.ToArray();
        float[]   fallTime  = patternToLoad.timeToFall.ToArray();
        Shape[]   shapes    = patternToLoad.meteorShape.ToArray();
        float[]   startTime = patternToLoad.timeToStart.ToArray();
        int       size      = positions.Length;

        Debug.Log("Adding " + size + " meteors as pattern");
        patternEndTime  = patternToLoad.initTime;
        patternInitTime = patternToLoad.endTime;
        for (int i = 0; i < size; i++)
        {
            GameObject newMeteor = Instantiate(meteorPrefab, new Vector3(100.0f, 100.0f, 100.0f), Quaternion.identity);//Instance
            Meteor     meteorRef = newMeteor.GetComponent <Meteor>();
            if (meteorMap[positions[i]] != null)
            {
                meteorMap[positions[i]].Add(meteorRef);
            }
            else
            {
                Debug.Log("Emptied meteormap on position:" + positions[i]);
                meteorMap.Add(positions[i], new List <Meteor>());
                meteorMap[positions[i]].Add(meteorRef);
            }
            //Debug.Log("Ok "+positionToHit);
            //registerHitShapeOnCells(hashMap[positionToHit], newShape);
            meteorRef.Initialize(hashMap[positions[i]], fallTime[i], startTime[i], patternToLoad.warningTime, _gameController, shapes[i]);
            if (!tutorialEnded)
            {
                meteorRef.setMakeHoles(true);
            }
        }
        //DEBUG
        totalMet = 0;
        foreach (KeyValuePair <Vector2, List <Meteor> > entry in meteorMap)
        {
            totalMet += entry.Value.Count;
        }
        Debug.Log("Number of meteors after pattern: " + totalMet);
        //DEBUG
    }
예제 #24
0
    // Spawns the meteors                      ^ y
    //                                         |
    // Visual outlook for the cases:    ---1---|---2---
    //                                  |      |      |
    //                                  8      |      3
    //                                  |=============| => x
    //                                  7      |      4
    //                                  |      |      |
    //                                  ---6---|---5---
    // I mean... it works -_-
    private IEnumerator Spawn()
    {
        while (true)
        {
            randomMeteorIndex = Random.Range(0, meteors.Length);
            sidePicker        = Random.Range(1, 8);
            randomXPos        = Random.Range(0, xPosBound);
            randomYPos        = Random.Range(0, yPosBound);

            switch (sidePicker)
            {
            case 1: Meteor meteor1 = Instantiate(meteors[randomMeteorIndex],
                                                 new Vector2(-randomXPos, yPosBound), Quaternion.identity);
                meteor1.tag = "1"; break;

            case 2:
                Meteor meteor2 = Instantiate(meteors[randomMeteorIndex],
                                             new Vector2(randomXPos, yPosBound), Quaternion.identity);
                meteor2.tag = "2"; break;

            case 3:
                Meteor meteor3 = Instantiate(meteors[randomMeteorIndex],
                                             new Vector2(xPosBound, randomYPos), Quaternion.identity);
                meteor3.tag = "3"; break;

            case 4:
                Meteor meteor4 = Instantiate(meteors[randomMeteorIndex],
                                             new Vector2(xPosBound, -randomYPos), Quaternion.identity);
                meteor4.tag = "4"; break;

            case 5:
                Meteor meteor5 = Instantiate(meteors[randomMeteorIndex],
                                             new Vector2(randomXPos, -yPosBound), Quaternion.identity);
                meteor5.tag = "5"; break;

            case 6:
                Meteor meteor6 = Instantiate(meteors[randomMeteorIndex],
                                             new Vector2(-randomXPos, -yPosBound), Quaternion.identity);
                meteor6.tag = "6"; break;

            case 7:
                Meteor meteor7 = Instantiate(meteors[randomMeteorIndex],
                                             new Vector2(-xPosBound, -yPosBound), Quaternion.identity);
                meteor7.tag = "7"; break;

            case 8:
                Meteor meteor8 = Instantiate(meteors[randomMeteorIndex],
                                             new Vector2(-xPosBound, randomYPos), Quaternion.identity);
                meteor8.tag = "8"; break;
            }

            yield return(new WaitForSeconds(spawnDelay));
        }
    }
예제 #25
0
    private void SpawnMeteor()
    {
        Vector3   spawnVectorPosition  = new Vector3(UnityEngine.Random.Range((-XBorderExtent - BorderBufferZone), -XBorderExtent), UnityEngine.Random.Range((-YBorderExtent - BorderBufferZone), -YBorderExtent));
        int       randomNumber         = UnityEngine.Random.Range(0, MeteorSpawnPoints.Count);
        Transform spawnVectorTransform = MeteorSpawnPoints[randomNumber];

        Meteor m = Instantiate(MeteorPrefab, spawnVectorTransform.position, MeteorPrefab.transform.rotation);

        m.Target = planet.transform;
        meteors.Add(m);
    }
예제 #26
0
        public void DrawMeteor(TacticSeed seed, TacticState tacticState, Meteor newMeteor)
        {
            Graphics g = Graphics.FromImage(bmFull);

            g.DrawImage(newMeteor.objectImg,
                        new Rectangle(newMeteor.x - seed.boxWidth / 6,
                                      newMeteor.y - seed.boxHeight / 6,
                                      seed.boxWidth / 3,
                                      seed.boxHeight / 3));
            g.DrawString(newMeteor.currentHealth.ToString(), new Font("Arial", 8.0F), Brushes.Red, new PointF(tacticState.cMap.boxes[newMeteor.boxId].xpoint1 + 20, tacticState.cMap.boxes[newMeteor.boxId].ypoint1 - 25));
        }
예제 #27
0
    // Update is called once per frame
    void Update()
    {
        if (target == null)
        {
            Meteor m = meteorController.GetRandom();

            if (m == null)
            {
                trail.transform.parent = meteorController.transform;
                Destroy(trail, 3);
                Destroy(gameObject);
            }
            else
            {
                target = m.transform;
            }
        }
        else
        {
            Vector3    relativePos = target.transform.position - transform.position;
            Quaternion rotation    = Quaternion.LookRotation(relativePos, Vector3.up);


            transform.localRotation = Quaternion.RotateTowards(transform.localRotation, rotation, turnSpeed * Time.deltaTime);

            if (speed <= maxSpeed)
            {
                speed += acceleration;
            }

            Vector3 moveDirection = transform.forward;
            moveDirection *= speed * Time.deltaTime;
            controller.Move(moveDirection * Time.deltaTime);

            if (Vector3.Distance(transform.position, target.transform.position) <= 4f)
            {
                target.GetComponent <Meteor>().DestroyIt(true);
                trail.transform.parent = meteorController.transform;
                Destroy(trail, 3);
                Destroy(gameObject);
            }
        }



        time += Time.deltaTime;
        if (time >= lifeTime)
        {
            trail.transform.parent = meteorController.transform;
            Destroy(trail, 3);
            //gravity.RemoveObject(GetComponent<Rigidbody>());
            Destroy(gameObject);
        }
    }
예제 #28
0
    void OnTriggerEnter2D(Collider2D collider)
    {
        Laser   missile = collider.gameObject.GetComponent <Laser>();
        Meteor  meteor  = collider.gameObject.GetComponent <Meteor>();
        Powerup powerup = collider.gameObject.GetComponent <Powerup>();

        // Laser was fired and collides with player
        if (missile)
        {
            // If shield is hit, negate the damage and destroy the missile
            if (Powerup.GetShield())
            {
                ShieldDown();
                missile.Hit();
            }
            // Else take damage
            else
            {
                health -= missile.GetDamage();
                missile.Hit();
                HealthCheck();
            }
        }

        // Meteor collides with player
        if (meteor)
        {
            // If shield is hit, negate the damage and destroy the meteor
            if (Powerup.GetShield())
            {
                ShieldDown();
                meteor.Hit();
            }
            // Else take damage
            else
            {
                health -= meteor.GetDamage();
                meteor.Hit();
                HealthCheck();
            }
        }

        // If player collects a shield powerup
        if (powerup && collider.gameObject.name.Contains("shieldPowerup"))
        {
            ShieldUp(powerup);
        }

        // If player collects a speed powerup
        if (powerup && collider.gameObject.name.Contains("speedPowerup"))
        {
            SpeedBoostOn(powerup);
        }
    }
예제 #29
0
    void SpawnMeteor()
    {
        float Position_X = GameCore.Instance.Player.transform.position.x + OffsetRange * .5f + Random.Range(-OffsetRange, OffsetRange);

        Meteor newMeteor = Instantiate <GameObject>(MeteorPrefab, new Vector3(Position_X, -2f), Quaternion.identity, MeteorParent).GetComponent <Meteor>();

        newMeteor.TriggerFall();

        _meteors.Add(newMeteor);

        CooldownSpawn = Frequency + Random.Range(-RandomDeviation, RandomDeviation);
    }
예제 #30
0
 private void OnTriggerEnter(Collider other)
 {
     if (other.tag != "Player")
     {
         if (other.tag == "Meteor")
         {
             Meteor meteor = other.GetComponent <Meteor>();
             meteor.TakeDamage(m_BaseDamage);
         }
         Destroy(gameObject);
     }
 }
예제 #31
0
    public Wizard(int level, GameObject characterObject)
        : base("Wizard", level, 100 + Application.loadedLevel * 50)
    {
        CharacterObject = characterObject;
        WaypointPosition = new Vector3(0.9f, 0.65f, -1.0f);
        Speed = 0.5f; // 100f;

        BasicAttack = new Frostbolt();
        StrongAttack = new ArcaneBarrage();
        SpecialAttack = new Meteor();

        BasicDefend = new Shield();
        StrongDefend = new IceBarrier();
        SpecialDefend = new Dodge();
    }
예제 #32
0
 private int SortMethod(Meteor meteor1, Meteor meteor2)
 {
     return meteor2.Depth.CompareTo(meteor1.Depth);
 }
 //Форма и другое
 public Form1()
 {
     InitializeComponent();
     initializeAngle();
     initializeVolume();
     initializeSpeed();
     initializeStart_Height();
     initializationType();
     initializeHeight();
     initializeTimer();
     initializeTime();
     initializeXTime();
     initializeStart();
     Logo_init();
     //Graf1.
     met = new Meteor();
     Graphik_Form = new Graph(this);
     start_logo = new Logo();
     start_logo.Show();
 }
예제 #34
0
    void Start()
    {
        NovaProjectilesPool = new NovaProjectile[8];
        for(int i = 0; i < NovaProjectilesPool.Length; i++)
        {
            GameObject temp = Instantiate(NovaProjectilePrefab);
            NovaProjectilesPool[i] = temp.GetComponent<NovaProjectile>();
            temp.SetActive(false);
        }

        BarrageProjectilesPool = new BarrageProjectile[8];
        for(int i = 0; i < BarrageProjectilesPool.Length; i++)
        {
            GameObject temp = Instantiate(BarragePrefab);
            BarrageProjectilesPool[i] = temp.GetComponent<BarrageProjectile>();
            temp.SetActive(false);
        }

        GameObject tempobj = Instantiate(MeteorPrefab);
        MyMeteor = tempobj.GetComponent<Meteor>();
        tempobj.SetActive(false);

        Dirs = new Vector2[8];

        Dirs[0] = new Vector2(-1.0f, 0.0f);
        Dirs[1] = new Vector2(1.0f, 0.0f);
        Dirs[2] = new Vector2(0.0f, 1.0f);
        Dirs[3] = new Vector2(0.0f, -1.0f);
        Dirs[4] = new Vector2(-0.6f, 0.6f);
        Dirs[5] = new Vector2(0.6f, 0.6f);
        Dirs[6] = new Vector2(0.6f, -0.6f);
        Dirs[7] = new Vector2(-0.6f, -0.6f);
    }
예제 #35
0
 // Use this for initialization
 void Start()
 {
     //BossHealth = 3;
     meteor = GameObject.FindGameObjectWithTag("Meteor").GetComponent<Meteor>();
     playerObj = GameObject.FindGameObjectWithTag("Player");
     player = GameObject.FindGameObjectWithTag("Player").GetComponent<HeroController>();
     dead = false;
 }
예제 #36
0
 // Use this for initialization
 void Start()
 {
     meteor = GameObject.FindGameObjectWithTag("Meteor").GetComponent<Meteor>();
     playerObj = GameObject.FindGameObjectWithTag("Player");
     player = GameObject.FindGameObjectWithTag("Player").GetComponent<HeroController>();
     dead = false;
     rigidbody2D.velocity = new Vector3(0, -10f, 0);
 }