示例#1
0
    /// <summary>
    /// Callback called once the bomb is hit by the blade.
    /// </summary>
    /// <param name="jsonVars"> Blade hit data. </param>
    void OnBombGotHit(string jsonVars)
    {
        BladeHitData objVars = ScriptableObject.CreateInstance <BladeHitData>();

        JsonUtility.FromJsonOverwrite(jsonVars, objVars);

        if (objVars.hitID == gameObject.GetInstanceID())
        {
            //print("Bomb: OnBombGotHit");

            currentLife--;

            // This bomb has no my life - destroy it and award the player for it.
            if (currentLife == 0)
            {
                // Create the sliced bomb according the blade's hit direction.
                Quaternion rotation   = Quaternion.LookRotation(objVars.bladeDir);
                GameObject slicedBomb = Instantiate(bombSlicedPrefab, transform.position, rotation);

                string jsonAwardVars = JsonUtility.ToJson(awardData);
                EventManager.TriggerEvent("AWARD_DATA_EVENT", jsonAwardVars);

                ObjectPooler.Instance.ReturnToPool(gameObject);

                UserModel.Instance.BombsSliced++;

                Destroy(slicedBomb, 3f);
            }
        }
    }
示例#2
0
    private void OnTriggerEnter2D(Collider2D col)
    {
        // Unique id of the object hit.
        int hitID = col.gameObject.GetInstanceID();

        // Create the scriptable data object of a hit.
        bladeHitData          = ScriptableObject.CreateInstance <BladeHitData>();
        bladeHitData.bladeDir = direction;
        bladeHitData.bladePos = transform.position;
        bladeHitData.hitID    = hitID;

        string jsonVars = JsonUtility.ToJson(bladeHitData);

        EventManager.TriggerEvent("BLADE_HIT_DATA_EVENT", jsonVars);
    }
示例#3
0
    /// <summary>
    /// Callback called once the booster is hit by the blade.
    /// </summary>
    /// <param name="jsonVars"> Blade hit data.</param>
    void OnBoosterHit(string jsonVars)
    {
        //print("Booster: OnBoosterHit");

        BladeHitData objVars = ScriptableObject.CreateInstance <BladeHitData>();

        JsonUtility.FromJsonOverwrite(jsonVars, objVars);

        // Only award for the booster hit by the blade.
        if (objVars.hitID == gameObject.GetInstanceID())
        {
            string jsonAwardVars = JsonUtility.ToJson(awardData);
            EventManager.TriggerEvent("AWARD_DATA_EVENT", jsonAwardVars);

            ObjectPooler.Instance.ReturnToPool(gameObject);
        }
    }