コード例 #1
0
ファイル: UFO.cs プロジェクト: EvilDroner/Asteroids
 public void Destruct() // Уничтожение UFO
 {
     AsteroidSounds.Instance.PlaySound("Boom");
     ExplosionController.MakeExplosion(transform.position);
     _reward.GiveReward();
     UFOPool.Instance.SendToPool(this);
 }
コード例 #2
0
 void Start()
 {
     if (instance == null)
         instance = this;
     else if (instance != this)
         Destroy(gameObject);
 }
コード例 #3
0
 public void Init(Vector3 _movementDir, float _speed, int _damage, ExplosionController _explosionControllerPrefab, ProjectileType _type, GameObject _hommingTarget)
 {
     Init(_movementDir, _speed, _damage, _explosionControllerPrefab, _type);
     hommingTarget         = _hommingTarget;
     rigidbody.isKinematic = true;
     boxCollider.isTrigger = true;
 }
コード例 #4
0
ファイル: BulletBall.cs プロジェクト: oocast/Zuagon
 void Awake()
 {
     chainMovement = GameObject.Find("SpawnController")
                     .GetComponent <ChainMovement>();
     explosion = GameObject.Find("ExplosionController")
                 .GetComponent <ExplosionController>();
 }
コード例 #5
0
    private void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.collider.gameObject.CompareTag(Strings.Tags.player))
        {
            //Calculate the magnitude of the explosion based on collision distance from center
            Vector2 collisionPoint     = collision.GetContact(0).point;
            float   collisionDistance  = (collisionPoint - rb.position).magnitude;
            float   explosionMagnitude = 1f - collisionDistance / maxCollisionDistance;

            //Instantiate an explosion particle effect with appropriate magnitude
            GameObject          explosionInstance   = Instantiate(explosion, rb.position, Quaternion.Euler(0, 0, rb.rotation)) as GameObject;
            ExplosionController explosionController = explosionInstance.GetComponent <ExplosionController>();
            explosionController.SetMagnitude(explosionMagnitude);

            //Play explosion sound
            playExplosionSound(explosionMagnitude);

            //Vibrate device
            explosionVibrate(explosionMagnitude);

            //Slow Time
            explosionTimeSlow(explosionMagnitude);

            Destroy(this.gameObject);

            //I put in lots of effot to make gate hits impactful :)
        }
    }
コード例 #6
0
 void Awake()
 {
     soundManager = GameObject.Find("SoundManager")
                    .GetComponent <SoundManagerScript> ();
     explosion = GameObject.Find("ExplosionController")
                 .GetComponent <ExplosionController>();
 }
コード例 #7
0
    /// <summary>
    /// Функция, описывающая процесс инициализации объекта
    /// </summary>
    /// <param name="_createParameter">Параметры создания</param>
    public new void InstantiateObject(PoolObjectParameters _createParameter)
    {
        //Создаем переменную под контроллер объекта
        ExplosionController explosionController = null;

        //Если пул выключенных объектов пуст
        if (_poolOfDisabled.Count == 0)
        {
            //Создаем новую пулю
            GameObject newItem = Instantiate(PoolObjectPrefab, transform);
            explosionController = newItem.GetComponent <ExplosionController>();

            //Добавляем созданный объект в пул активных элементов
            _poolOfEnabled.Add(explosionController);

            //Подписываемся на событие отключение только что созданного объекта
            explosionController.ObjectDisabledEvent.AddListener(OnDisabledObj);
        }
        //Если в пуле выключенных объектов есть элементы
        else
        {
            //Переносим выключенный объект из пула неактивных элементов в пул активных
            _poolOfEnabled.Add(_poolOfDisabled[_poolOfDisabled.Count - 1]);
            _poolOfDisabled.RemoveAt(_poolOfDisabled.Count - 1);
            explosionController = (ExplosionController)_poolOfEnabled[_poolOfEnabled.Count - 1];
        }
        //Включить объект
        _poolOfEnabled[_poolOfEnabled.Count - 1].Enable(_createParameter);
    }
コード例 #8
0
        private void ExplodeByHit()
        {
            if (_distructableByHit && _explosionPrefab != null)
            {
                var explosion = Instantiate(_explosionPrefab, transform.position, Quaternion.identity) as GameObject;
                var rigidbody = explosion.GetComponent <Rigidbody>();
                if (rigidbody != null)
                {
                    rigidbody.velocity = GetComponent <Rigidbody>().velocity;
                }

                ExplosionController explosionController = explosion.GetComponent <ExplosionController>();
                if (explosionController != null)
                {
                    explosionController.SetColor(_color);
                }
            }

            if (_scorePrefab != null)
            {
                var score = Instantiate(_scorePrefab, transform.position, Quaternion.identity) as GameObject;
                var text  = score.GetComponent <ScoreTextField>();
                if (text != null)
                {
                    text.SetValue(_hitValue);
                }
            }
        }
コード例 #9
0
    void Explode()
    {
        GameObject          exp = Instantiate(explosion, transform.position, transform.rotation);
        ExplosionController ec  = exp.GetComponent <ExplosionController>();

        ec.damage = gm.weaponStatus.chargeBulletDamage;
        Destroy(transform.parent.gameObject);
    }
コード例 #10
0
 void DestroyAllInstantiatables()
 {
     EnemyController.DestroyAll();
     ForeshadowController.DestroyAll();
     GateController.DestroyAll();
     ExplosionController.DestroyAll();
     SelfDestruct.DestroyAll();
 }
コード例 #11
0
    void Awake()
    {
        if (instance == null)
        {
            instance = this;
        }

        explosionPrefab = Resources.Load("Flash02") as GameObject;
    }
コード例 #12
0
 public void Init(Vector3 _movementDir, float _speed, int _damage, ExplosionController _explosionControllerPrefab, ProjectileType _type = ProjectileType.kNormal)
 {
     movementDir               = _movementDir;
     speed                     = _speed;
     rigidbody.velocity        = _movementDir * _speed;
     explosionControllerPrefab = _explosionControllerPrefab;
     damage                    = _damage;
     type = _type;
 }
コード例 #13
0
ファイル: ChainMovement.cs プロジェクト: oocast/Zuagon
	void Awake () {
		spawn = GetComponent<SpawnMarbles> ();
		health = GameObject.Find ("VillainHealth")
			.GetComponent<VillainHealth>();
		soundManager = GameObject.Find ("SoundManager")
			.GetComponent<SoundManagerScript>();
		explosion = GameObject.Find ("ExplosionController")
			.GetComponent<ExplosionController>();
	}
コード例 #14
0
ファイル: GameController.cs プロジェクト: votruongan/TATank
    public void BombExplodeAt(int time, int pId, int ePPosX, int ePPosY)
    {
        Vector3 explodePos = foreController.PixelToWorldPosition(ePPosX, ePPosY, true);
        int     offset     = (isOnDander)?(2200):(0);

        // explosionController.DelayedExecute(time+offset,explodePos);
        ExplosionController.GetInstance().WillExplode(explodePos);
        digController.DelayedExecute(time + offset, explodePos);
    }
コード例 #15
0
 void Awake()
 {
     spawn  = GetComponent <SpawnMarbles> ();
     health = GameObject.Find("VillainHealth")
              .GetComponent <VillainHealth>();
     soundManager = GameObject.Find("SoundManager")
                    .GetComponent <SoundManagerScript>();
     explosion = GameObject.Find("ExplosionController")
                 .GetComponent <ExplosionController>();
 }
コード例 #16
0
    public void SpawnExplosion(Vector3 pos, float scale)
    {
        ExplosionController ec = op.InstantiatePooled(
            pos,
            Quaternion.identity,
            false
            ).GetComponent <ExplosionController>();

        ec.Initialize(op, scale);
        StartCoroutine(ec.Explode());
    }
コード例 #17
0
 public void OnControllerColliderHit(ControllerColliderHit hit)
 {
     //Self destruct on collision with player.
     if (hit.gameObject.tag == "Player")
     {
         //Spawn explosion
         GameObject          explosion      = Instantiate(ExplosionPrefab, transform.position, Quaternion.Euler(90f, 0f, 0f)) as GameObject;
         ExplosionController explosion_data = explosion.GetComponent <ExplosionController>();
         explosion_data.CausedBy = gameObject;
     }
 }
コード例 #18
0
    private void detonate()
    {
        if (ExplosionPrefab != null)
        {
            GameObject          explosion      = Instantiate(ExplosionPrefab, transform.position, Quaternion.Euler(90f, 0f, 0f)) as GameObject;
            ExplosionController explosion_data = explosion.GetComponent <ExplosionController>();
            explosion_data.CausedBy = FiredBy;
        }

        m_isAlive = false;
    }
コード例 #19
0
 // Use this for initialization
 public void InstanciateExplosion(Vector3 explosionPosition)
 {
     if (explode)
     {
         GameObject     explosionInstanciated   = Instantiate(explosion, explosionPosition, transform.rotation) as GameObject;
         ParticleSystem explosionParticleSystem = explosionInstanciated.GetComponent <ParticleSystem>();
         explosionParticleSystem.startLifetime = scale;
         ExplosionController explosionInstanciatedController = explosionInstanciated.GetComponent <ExplosionController>();
         explosionInstanciatedController.scale = scale;
     }
 }
コード例 #20
0
    private GameObject[] randomExplosions;                         // visual particle effect attached to gameobject



    void Start()
    {
        if (instance == null)
        {
            instance = this;
        }
        else if (instance != this)
        {
            Destroy(gameObject);
        }
    }
コード例 #21
0
    public static ExplosionController Get(string name)
    {
        if (indice[name] >= CAPACITY)
        {
            indice[name] = 0;
        }
        ExplosionController explosion = explosions[name][indice[name]];

        explosion.gameObject.SetActive(true);
        explosion.Reset();
        indice[name]++;
        return(explosion);
    }
コード例 #22
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            ExplosionController.CallExplosion(GameObject.Find("ggj odun").transform.position, Color.yellow);
            clickAmount--;
        }

        if (clickAmount <= 0)
        {
            op.allowSceneActivation = true;
        }
    }
コード例 #23
0
ファイル: Explosion.cs プロジェクト: NiteKnightVR/Qu-Dash
 void continueExplosion()
 {
     if ((int)spriteNumber >= ExplosionController.getFinalSpriteNumber())
     {
         GetComponent <SpriteRenderer>().sprite = null;
         spriteNumber = 0;
     }
     else
     {
         GetComponent <SpriteRenderer>().sprite = ExplosionController.getSprite((int)spriteNumber);
         spriteNumber += spriteSpeed;
     }
 }
コード例 #24
0
 private void SelfDestruct()
 {
     if (explosiveSize > 0 && explosionPrefab)
     {
         ExplosionController explosion = Instantiate(explosionPrefab);
         explosion.transform.position = transform.position + transform.forward * (explosiveSize / 2);
         explosion.explosionSize      = explosiveSize;
         //explosion.pushForce = thrustForce;
         explosion.explosionDamage = hullDamage;
         explosion.Explode();
     }
     Destroy(gameObject);
 }
コード例 #25
0
    public void AddExplosion(Vector3 position, ExplosionController.Orientation orientation)
    {
        GameObject newObject = Instantiate(
            spawnPrefabs[(int)SpawnPrefabs.ExplosionTile],
            position,
            Quaternion.identity);

        ExplosionController explosionController = newObject.GetComponent <ExplosionController>();

        explosionController.orientation = orientation;

        NetworkServer.Spawn(newObject);
    }
コード例 #26
0
 private void OnTriggerEnter(Collider other)
 {
     if (other.tag == "NPC")
     {
         Debug.Log("<color=green>ProjectileContoller::</color> <color=red>Hit NPC</color>");
         //TODO(Rok Kos): Use polling
         ExplosionController explosionController = Instantiate(explosionControllerPrefab, other.transform.position, Quaternion.identity, null);
         explosionController.PlayExplosion();
         if (type != ProjectileType.kLaser)
         {
             Destroy(this.gameObject);
         }
     }
 }
コード例 #27
0
    private void Die()
    {
        _isAlive = false;
        ExplosionController explosion = ExplosionManager.Get(explodeEffect);

        explosion.transform.position = transform.position;
        explosion.Explode();
        if (explodeSound)
        {
            AudioManager.PlayAtPoint(explodeSound, transform.position);
        }
        CancerManager.Recycle(this);
        GameSceneController.OnCancerDeath(identifierName);
    }
コード例 #28
0
    public void Kill()
    {
        gameObject.SetActive(false);

        if (gameObject.name == "Player")
        {
            gameObject.GetComponent <Player>().OnDeath();
        }

        var explosion = ExplosionController.GetAvailble();

        explosion.gameObject.SetActive(true);
        explosion.gameObject.transform.position = transform.position;
    }
コード例 #29
0
    private void PrepareDamageEffects()
    {
        smoke = Instantiate(smokePrefab);
        smoke.transform.position = smokePosition.position;
        smoke.transform.parent   = smokePosition;

        fire = Instantiate(firePrefab);
        fire.transform.position = firePosition.position;
        fire.transform.parent   = firePosition;

        explosion = Instantiate(explosionPrefab);
        explosion.transform.position = explosionPosition.position;
        explosion.transform.parent   = explosionPosition;
    }
コード例 #30
0
    void OnTriggerEnter(Collider col)
    {
        string colTag = col.gameObject.tag;

        if (colTag != null)
        {
            //PICKUP ITEM
            if (colTag.Contains("Item_"))
            {
                //play sound
                float vol = Random.Range(volLowRange, volHighRange);
                audioSource.PlayOneShot(pickupSound, vol);

                switch (colTag)
                {
                case "Item_Explosive":
                    currentProjectile = "explosive";
                    break;

                case "Item_Multi":
                    currentProjectile = "multi";
                    break;

                default:
                    currentProjectile = "default";
                    break;
                }
                float tempProjectileDuration = 5.0f;
                StartCoroutine(setSpecialProjectileTime(tempProjectileDuration));
                StartCoroutine(ColorFlash(tempProjectileDuration, 0.3f, Color.blue));
            }

            //HIT PROJECTILE
            if (colTag.Contains("Projectile_") && !isRespawing && !colTag.Contains(myTag))
            {
                ProjectileController pc = col.gameObject.GetComponent <ProjectileController>();

                KillSelf(pc.myCreator);
            }

            //HIT EXPLOSION
            if (colTag.Contains("Explosion_Damaging") && !isRespawing && !colTag.Contains(myTag))
            {
                ExplosionController ec = col.gameObject.GetComponent <ExplosionController>();

                KillSelf(ec.myCreator);
            }
        }
    }
コード例 #31
0
ファイル: RocketController.cs プロジェクト: 4026/ld30
    private void explode(Vector3 epicentre)
    {
        if (m_hasExploded) {
            return;
        }

        m_hasExploded = true;
        GameObject explosion = Instantiate(Explosion, epicentre, Quaternion.identity) as GameObject;
        m_explosionController = explosion.GetComponent<ExplosionController>();
        m_explosionController.Radius = SplashRadius;
        m_explosionController.PushForce = PushForce;
        m_explosionController.Damage = SplashDamage;
        m_explosionController.CausedBy = m_projectile.FiredBy;

        Destroy(this.gameObject);
    }
コード例 #32
0
    /// <summary>
    /// Constructor. Inject the various dependencies.
    /// </summary>
    public BubbleController(GameObject bubblePrefab, BubbleOptions options, Boundary worldBoundary, ExplosionController explosionController, SpectrumVisualiser spectrumVisualiser)
    {
        this.explosionController = explosionController;
        this.bubblePrefab = bubblePrefab;
        this.options = options;
        this.worldBoundary = worldBoundary;

        activeBubbles = new List<GameObject>(options.maxBubbles);
        pooledBubbles = new List<GameObject>(options.maxBubbles);
        InitBubblePool();

        spectrumPeaks = new List<Peak>();

        // Subscribe to the spectrum visualiser's SpectrumChangedEvent,
        // so that we are able to spawn bubbles at peaks in the rendered spectrum.
        spectrumVisualiser.SpectrumChangedEventHandler += OnSpectrumBandsUpdate;
        yOrigin = spectrumVisualiser.yOrigin;
    }
コード例 #33
0
    IEnumerator MoveSacrifices()
    {
        while (Vector3.Distance(InputController.selectedFucker.transform.position, fire.transform.position) > 0.2f)
        {
            for (int i = 0; i < InputController.Fuckers.Count; i++)
            {
                InputController.Fuckers[i].transform.Translate((fire.transform.position - InputController.Fuckers[i].transform.position).normalized * Time.deltaTime * 5, Space.World);
            }
            yield return(null);
        }

        ExplosionController.CallExplosion(fire.transform.position, Color.black);
        yield return(new WaitForSeconds(0.2f));

        FollowerSpawner.instance.Refresh(FollowerSpawner.Amount);
        PlayCreator.instance.Refresh();
        InputController.instance.Refresh();
    }
コード例 #34
0
    void explode()
    {
        //destroy obj
        Destroy(this.gameObject);

        //instantate explosion
        ExplosionController ec = explosionImage.GetComponent <ExplosionController>();

        ec.init(myCreator, isDamagingExplosion);
        Instantiate(explosionImage, myTransform.position, Quaternion.identity);

        //shake camera
        if (isScreenShaker)
        {
            CameraController cc = Camera.main.GetComponent <CameraController> ();
            cc.shakeCamera();
        }
    }
コード例 #35
0
ファイル: BulletBall.cs プロジェクト: oocast/Zuagon
	void Awake () {
		chainMovement = GameObject.Find ("SpawnController")
			.GetComponent <ChainMovement>();
		explosion = GameObject.Find ("ExplosionController")
			.GetComponent<ExplosionController>();
	}
コード例 #36
0
	void Awake () {
		soundManager = GameObject.Find ("SoundManager")
			.GetComponent<SoundManagerScript> ();
		explosion = GameObject.Find ("ExplosionController")
			.GetComponent<ExplosionController>();
	}