Inheritance: MonoBehaviour
Esempio n. 1
0
    /// <summary>
    /// Death
    /// function to handle the killing of the enemy
    /// </summary>
    public virtual void Die()
    {
        m_explodable.explode();
        ExplosionForce ef = GameObject.FindObjectOfType <ExplosionForce>();

        ef.doExplosion(transform.position);
    }
Esempio n. 2
0
    void Attack3()
    {
        // Typically used for secondary projectile or grenade attack
        if (attack3SoundTime < Time.time && SFXAttack3)
        {
            SFX.PlayOneShot(SFXAttack3);
            attack3SoundTime = Time.time + timeBetweenProj2;
        }

        if (explodeOnAttack3)
        {
            ExplosionForce ef    = GetComponent <ExplosionForce>();
            DamageData     ddNPC = Const.SetNPCDamageData(index, Const.aiState.Attack3, gameObject);
            float          take  = Const.a.GetDamageTakeAmount(ddNPC);
            ddNPC.other  = gameObject;
            ddNPC.damage = take;
            //enemy.GetComponent<HealthManager>().TakeDamage(ddNPC); Handled by ExplodeInner
            if (ef != null)
            {
                ef.ExplodeInner(transform.position + explosionOffset, attack3Force, attack3Radius, ddNPC);
            }
            healthManager.ObjectDeath(SFXDeathClip);
            return;
        }
    }
Esempio n. 3
0
    // Use this for initialization
    void Start()
    {
        glitch.enabled = !glitch.enabled;
        pc2dTransition.TransitionEnter();
        GameObject.Find("SwipeController").GetComponent <SwipeControl>().SetMethodToCall(SwipeDetection);
        StartPlayer.SetActive(true);
        EndPlayer.SetActive(false);
        ef = GameObject.FindObjectOfType <ExplosionForce>();
        //Debug
        GV         = 3f;
        ForceAdded = 200;

        animPlayer.SetBool("isCompleted", false);
        animCollision.SetBool("isCompleted", false);
        isCompleted = false;
        animPlayer.SetInteger("X", 0);
        animPlayer.SetInteger("Y", -1);
        animCollision.SetInteger("X", 0);
        animCollision.SetInteger("Y", -1);
        firstTime = true;
        Terbang(Direction.Bawah);
        StartCoroutine(animJump());
        LastDirection    = Direction.Bawah;
        justOnce         = false;
        stepTaken        = 0;
        textMesh_UI.text = stepTaken + "";
    }
Esempio n. 4
0
    void OnMouseDown()
    {
        _explodable.explode();
        ExplosionForce ef = FindObjectOfType <ExplosionForce>();

        ef.doExplosion(transform.position);
    }
    private void explodebottle()
    {
        _explodable.explode();
        ExplosionForce explosionForce = UnityEngine.Object.FindObjectOfType <ExplosionForce>();

        explosionForce.doExplosion(base.transform.position);
    }
Esempio n. 6
0
    public void Death()
    {
        GameController.AddPoints(points);
        _explodable.explode();
        ExplosionForce ef = GameObject.FindObjectOfType <ExplosionForce>();

        ef.doExplosion(transform.position);
    }
Esempio n. 7
0
    // Update is called once per frame
    void OnTriggerEnter2D(Collider2D other)
    {
        _explodable.explode();
        ExplosionForce ef = GameObject.FindObjectOfType <ExplosionForce>();

        ef.doExplosion(transform.position);
        noise1.Play();
    }
Esempio n. 8
0
 private void SpawnExploder()
 {
     exploderParent.DestroyChildren();
     exploder = Instantiate(exploderPrefab, exploderParent);
     exploder.transform.localPosition = Vector3.zero;
     exploder.transform.localRotation = Quaternion.identity;
     explosionForce = exploder.GetComponent <ExplosionForce>();
 }
    public IEnumerator waitExplode()
    {
        yield return(new WaitForSeconds(0.01f));

        _explodable.explode();
        ExplosionForce ef = GameObject.FindObjectOfType <ExplosionForce>();

        ef.doExplosion(transform.position);
    }
Esempio n. 10
0
    public void Explode()
    {
        Debug.Log("Mouse down");
        _explodable.GetComponent <Rigidbody2D>().simulated = true;
        _explodable.explode();
        ExplosionForce ef = GameObject.FindObjectOfType <ExplosionForce>();

        ef.doExplosion(transform.position);
    }
Esempio n. 11
0
 private void OnTriggerEnter2D(Collider2D col2d)
 {
     if (col2d.tag == "Player")
     {
         isDestroy = true;
         _explodable.explode();
         ExplosionForce ef = GameObject.FindObjectOfType <ExplosionForce>();
         ef.doExplosion(transform.position);
     }
 }
Esempio n. 12
0
 private void OnTriggerEnter2D(Collider2D col2d)
 {
     if (PlayerController.isFeverTouch && col2d.tag == "Player")
     {
         wallBreak.isDestroy = true;
         _explodable.explode();
         ExplosionForce ef = GameObject.FindObjectOfType <ExplosionForce>();
         ef.doExplosion(transform.position);
     }
 }
Esempio n. 13
0
    private void DestroyMatchesAt(int column, int row)
    {
        if (allDots[column, row].GetComponent <Dot>().isMatched)
        {
            if (breakableTiles[column, row] != null)
            {
                //if it does need to break take one hit
                breakableTiles[column, row].TakeHit(1);

                if (breakableTiles[column, row].hitPoints <= 0)
                {
                    breakableTiles[column, row] = null;
                }
            }

            if (goalManager != null)
            {
                goalManager.CompareGoal(allDots[column, row].tag.ToString());
                goalManager.UpdateGoals();
            }

            if (AllJuice == true || someJuice == true)
            {
                GameObject particale = Instantiate(destroyEffect, allDots[column, row].transform.position, Quaternion.identity);

                Destroy(particale, .5f);
            }

            if (AllJuice == true)
            {
                allDots[column, row].GetComponent <Dot>().explodable.generateFragments();
                ExplosionForce ef = GameObject.FindObjectOfType <ExplosionForce>();
                ef.doExplosion(transform.position);
            }

            //StartCoroutine(DestroysAfter(column, row, allDots[column, row]));

            if (AllJuice == true || someJuice == true)
            {
                audioSource.enabled = true;

                if (!audioSource.isPlaying)
                {
                    audioSource.clip = connectNormal;
                    audioSource.Play();
                }
            }

            Destroy(allDots[column, row]);
            //allDots[column, row].GetComponent<Renderer>().enabled = false;
            scoreManager.IncreaseScore(basePieceValue * streakValue);
            allDots[column, row] = null;
        }
    }
Esempio n. 14
0
 // Update is called once per frame
 void Update()
 {
     time += Time.deltaTime;
     if (time >= breaktime)
     {
         explodable.explode();
         ExplosionForce ef = GameObject.Find("Force").GetComponent <ExplosionForce>();
         ef.doExplosion(transform.position);
         breakflg = true;
     }
 }
Esempio n. 15
0
    void OnMouseDown()
    {
        // Exploding force
        _explodable.explode();
        ExplosionForce ef = GameObject.FindObjectOfType <ExplosionForce>();

        ef.doExplosion(transform.position);

        // Particle and background effects
        if (explosionFx == true)
        {
            explosionFx.transform.position = transform.position;
            explosionFx.Play();
        }
        else
        {
        }

        if (backgroundVfx == true)
        {
            backgroundVfx.gameObject.SetActive(true);
        }
        else
        {
        }

        if (BgVfx == true)
        {
            BgVfx.SetActive(true);
        }
        else
        {
        }

        //OnClick Sound
        sounds.GetComponent <AudioSource>().Play();

        // Displaying next target
        if (raceSet.transform.childCount > 1)
        {
            raceSet.transform.GetChild(1).gameObject.SetActive(true);
        }

        if (raceSet.transform.childCount == 1)
        {
            finish.SetActive(true);
        }


        // Reference for Score display
        ScoreDisplay.score                += 50;
        ScoreDisplay.backgroundScore      += 50;
        SavingHighScore.scoreForHighScore += 50;
    }
Esempio n. 16
0
    void OnCollisionEnter2D(Collision2D coll)
    {
        // deal damage
        // spawn explosion light + particles
        gameObject.GetComponent <MeshRenderer>().enabled = false;

        GameObject hit = coll.gameObject;

        // direct hit
        if (hit.tag == "Player")
        {
            var health = hit.GetComponent <PlayerHealth>();
            if (health != null)
            {
                print("dmg: " + Mathf.Lerp(maxHitDmg, 0, Vector3.Distance(transform.position, srcPos) / maxDist) + ", dist to src: " + Vector3.Distance(transform.position, srcPos));
                health.CmdTakeDamage(Mathf.Lerp(maxHitDmg, 0, Vector3.Distance(transform.position, srcPos) / maxDist),
                                     source.GetComponent <PlayerInfo>().playerName, source.GetComponent <PlayerInfo>().primaryColor);
            }
        }

        // splash damage
        GameObject[] players;

        players = GameObject.FindGameObjectsWithTag("Player");

        // a_player meaning generic player, not the current player
        foreach (GameObject a_player in players)
        {
            // do not deal damage to direct hit
            if (a_player.GetComponent <Rigidbody2D>() != null)
            {
                // no splash + direct hit compounding
                if (a_player != hit.gameObject)
                {
                    var health = a_player.GetComponent <PlayerHealth>();
                    if (health != null)
                    {
                        float damage = Mathf.Lerp(Mathf.SmoothStep(0, splashDmgMax, (explosionRadius - Vector3.Distance(transform.position, a_player.transform.position)) / explosionRadius), 0, Vector3.Distance(transform.position, srcPos) / maxDist);
                        health.CmdTakeDamage(damage, source.GetComponent <PlayerInfo>().playerName, source.GetComponent <PlayerInfo>().primaryColor);
                    }
                }

                // add explosion force to player hit
                ExplosionForce expl = a_player.GetComponent <ExplosionForce>();
                if (isServer)
                {
                    expl.RpcAddExplosionForce(explosionForce, transform.position, explosionRadius);
                }
            }
        }

        SpawnExplosion();
        NetworkServer.Destroy(this.gameObject);
    }
Esempio n. 17
0
    public void Explode()
    {
        // Disable collision
        if (boxCol != null)
        {
            boxCol.enabled = false;
        }
        if (meshCol != null)
        {
            meshCol.enabled = false;
        }
        if (sphereCol != null)
        {
            sphereCol.enabled = false;
        }
        if (capCol != null)
        {
            capCol.enabled = false;
        }

        explosion = GetComponent <ExplosionForce>();
        if (explosion != null)
        {
            explosion.ExplodeOuter(transform.position);
        }
        if (explosion != null)
        {
            explosion.ExplodeInner(transform.position, nearforce, nearradius, null);
        }

        GameObject explosionEffect = Const.a.GetObjectFromPool(Const.PoolType.GrenadeFragExplosions);

        if (explosionEffect != null)
        {
            explosionEffect.SetActive(true);
            explosionEffect.transform.position = transform.position;
            // TODO: Do I need more than one temporary audio entity for this sort of thing?
            if (deathSound != null)
            {
                GameObject tempAud = GameObject.Find("TemporaryAudio");
                tempAud.transform.position = transform.position;
                AudioSource aS = tempAud.GetComponent <AudioSource>();
                if (aS != null)
                {
                    aS.PlayOneShot(deathSound);
                }
            }
            gameObject.SetActive(false);
        }

        //if (explosionEffect != null) Instantiate(explosion, transform.position, Quaternion.identity); //TODO: use pool
        //Destroy(this.gameObject); //TODO: use pool
    }
Esempio n. 18
0
    private void OnDrawGizmos()
    {
        if (Time.time > ExplosionTriggerTime)
        {
            float ExplosionTime = Time.time - ExplosionTriggerTime;
            float Radius        = ExplosionRadius.Evaluate(ExplosionTime);
            float Force         = ExplosionForce.Evaluate(ExplosionTime);

            Gizmos.color = new Color(0.5f + Force / 500, 0.5f - Force / 500, 0, Mathf.Clamp(Mathf.Abs(Force) / 1000, 0.1f, 0.75f));
            Gizmos.DrawSphere(transform.position, Radius);
        }
    }
Esempio n. 19
0
    void OnMouseDown()
    {
        _explodable.explode();
        ExplosionForce ef = GameObject.FindObjectOfType <ExplosionForce>();

        ef.doExplosion(transform.position);

        sounds.GetComponent <AudioSource>().Play();

        ScoreIndicator.GetComponent <Text>().text = "+ 500";
        ScoreIndicator.GetComponent <Animator>().Play("ScoreGained");
        ScoreDisplay.score                += 500;
        ScoreDisplay.backgroundScore      += 500;
        SavingHighScore.scoreForHighScore += 500;
    }
Esempio n. 20
0
    public override void ProcessFrame(Playable playable, FrameData info, object playerData)
    {
        bool alreadyExploded = false;

        GameObject ARTIFACT   = GameObject.Find("ARTIFACT");
        var        explodable = ARTIFACT.GetComponent <Explodable>();

        if (explodable != null && exploded == true && alreadyExploded == false)
        {
            alreadyExploded = true;
            explodable.explode();
            ExplosionForce ef = GameObject.FindObjectOfType <ExplosionForce>();
            ef.doExplosion(ARTIFACT.transform.position);
        }
    }
Esempio n. 21
0
    private void ExplodeBrick(GameObject brick, GameObject icon)
    {
        var audioManager = FindObjectOfType <AudioManager>();

        audioManager.Play("Stone");
        brick.GetComponent <Rigidbody2D>().simulated = true;
        brick.GetComponent <Explodable>().explode();
        ExplosionForce ef = GameObject.FindObjectOfType <ExplosionForce>();

        ef.doExplosion(brick.transform.position);
        icon.GetComponent <Rigidbody2D>().simulated = true;
        icon.GetComponent <Explodable>().explode();
        ef = GameObject.FindObjectOfType <ExplosionForce>();
        ef.doExplosion(brick.transform.position);
    }
Esempio n. 22
0
    void ExplodeOnDeath()
    {
        ExplosionForce ef    = GetComponent <ExplosionForce> ();
        DamageData     ddNPC = Const.SetNPCDamageData(index, Const.aiState.Attack3, gameObject);
        float          take  = Const.a.GetDamageTakeAmount(ddNPC);

        ddNPC.other  = gameObject;
        ddNPC.damage = take;
        //enemy.GetComponent<HealthManager>().TakeDamage(ddNPC); Handled by ExplodeInner
        if (ef != null)
        {
            ef.ExplodeInner((transform.position + viewVerticalOffset) + explosionOffset, attack3Force, attack3Radius, ddNPC);
        }
        healthManager.ObjectDeath(SFXAttack1);
        GetComponent <MeshRenderer> ().enabled = false;
    }
Esempio n. 23
0
    private void StartProcess()
    {
        if (pawnflg1 == false)
        {
            explodable = titleLogo.GetComponent <Explodable>();
            var _big_star = Instantiate(big_star);

            se_bigstar.Play();

            pawnflg1 = true;
        }

        if (pawnflg1 == true && pawnflg2 == false)
        {
            time += Time.deltaTime;
            if (time >= TitelBreakTime)
            {
                explodable.explode();
                ExplosionForce ef = GameObject.Find("Force").GetComponent <ExplosionForce>();
                ef.doExplosion(transform.position);

                se_titlebreak.Play();

                time     = 0f;
                pawnflg2 = true;
            }
        }

        if (pawnflg2 == true && pawnflg3 == false)
        {
            for (int i = 0; i < star_child.Length; i++)
            {
                var _vibe_star = Instantiate(vibe_star);
                _vibe_star.transform.position = star_child[i].transform.position;
            }

            Destroy(constellation);

            se_vibe.Play();
            Invoke("SeFalling", 1.5f);

            pawnflg3 = true;
        }
    }
Esempio n. 24
0
    protected void explode()
    {
        if (!alive)
        {
            return;
        }
        alive = false;
        float explosionForce  = explosionDamage * 200f;
        float explosionRadius = Mathf.Sqrt(explosionDamage) * 0.7f;

        Collider2D[] colliders = Physics2D.OverlapCircleAll(transform.position, explosionRadius);
        Vector2      dir;
        float        wearoff;
        Damageable   damageable;
        TerrainPiece terrainPiece;

        foreach (Collider2D coll in colliders)
        {
            damageable = coll.GetComponent <Damageable>();
            if (damageable != null)
            {
                dir     = (coll.transform.position - transform.position);
                wearoff = 1 - (dir.magnitude / explosionRadius);
                damageable.doDamage(explosionDamage * wearoff);
            }
            terrainPiece = coll.GetComponent <TerrainPiece>();
            if (terrainPiece != null)
            {
                terrainPiece.destroyTerrain(transform.position, explosionRadius * 0.6f);
            }
        }

        var position = transform.position;

        position.z = explosion.transform.position.z;
        Instantiate(explosion, position, transform.rotation);

        ExplosionForce ef = GameObject.FindObjectOfType <ExplosionForce>();

        ef.doExplosion(transform.position, explosionForce, explosionRadius);

        afterExposion();
    }
Esempio n. 25
0
    private void OnCollisionEnter2D(Collision2D collision)
    {
        if ((collision.gameObject.CompareTag("Ground") || collision.gameObject.CompareTag("Enemy") || collision.gameObject.CompareTag("BreakBlock")) && isThreadBreaked)
        {
            if (medKit != null)
            {
                medKit.transform.position = transform.position;
                medKit.SetActive(true);
                medKit.transform.GetChild(0).GetComponent <Rigidbody2D>().AddForce(new Vector2(0, 0.03f), ForceMode2D.Impulse);
            }

            effect.transform.position = transform.position;
            effect.SetActive(true);
            explodable.explode();
            ExplosionForce ef = GameObject.FindObjectOfType <ExplosionForce>();
            ef.doExplosion(transform.position);
            cameraShake.Shake(0.25f, 0.2f);
            SoundManagerV2.Instance.PlaySE(8);
        }
    }
Esempio n. 26
0
 void Dead()
 {
     nav.isStopped = true;         // Stop moving
     //anim.speed = 0f; // Stop animation
     ai_dead           = true;
     ai_dying          = false;
     rbody.isKinematic = true;
     currentState      = Const.aiState.Dead;
     firstSighting     = false;
     if (healthManager.gibOnDeath)
     {
         ExplosionForce ef    = GetComponent <ExplosionForce>();
         DamageData     ddNPC = Const.SetNPCDamageData(index, Const.aiState.Attack3, gameObject);
         float          take  = Const.a.GetDamageTakeAmount(ddNPC);
         ddNPC.other  = gameObject;
         ddNPC.damage = take;
         if (ef != null)
         {
             ef.ExplodeInner(transform.position + explosionOffset, attack3Force, attack3Radius, ddNPC);
         }
         healthManager.ObjectDeath(SFXDeathClip);
     }
 }
Esempio n. 27
0
    private void FixedUpdate()
    {
        if (Time.time > ExplosionTriggerTime)
        {
            if (Time.time > ExplosionEndTime)
            {
                Destroy(this);
            }

            float ExplosionTime = Time.time - ExplosionTriggerTime;
            float Radius        = ExplosionRadius.Evaluate(ExplosionTime);
            float Force         = ExplosionForce.Evaluate(ExplosionTime);

            if (Radius <= 0)
            {
                return;
            }

            Collider[] HitColliders = Physics.OverlapSphere(transform.position, Radius);

            foreach (Collider HitCollider in HitColliders)
            {
                if (HitCollider.gameObject == this.gameObject)
                {
                    continue;
                }
                Rigidbody Body = HitCollider.GetComponent <Rigidbody>();
                if (Body == null)
                {
                    continue;
                }
                float BodyDistance = Vector3.Distance(Body.transform.position, transform.position);

                Body.AddExplosionForce(Force * ForceFalloff.Evaluate(BodyDistance / Radius), ExplosionLocation, 0.0f, 0.0f, ForceMode.Force);
            }
        }
    }
Esempio n. 28
0
 void Start()
 {
     _explosionForce = FindObjectOfType <ExplosionForce>();
 }
Esempio n. 29
0
 /// <summary>
 /// Start is called on the frame when a script is enabled just before
 /// any of the Update methods is called the first time.
 /// </summary>
 void Start()
 {
     _force = GetComponent <ExplosionForce>();
 }