Exemple #1
0
    public override bool?CheckTriggerEnter(StateController controller, Collider2D coll)
    {
        //SongProjectile
        MelodyProjectile projectile = coll.GetComponent <MelodyProjectile>();


        if (projectile != null && projectile.melodyID == melodyID && PlayerData.player.melodyData.currentMelody == melodyID)
        {
            return(true);
        }
        else
        {
            return(false);
        }
    }
Exemple #2
0
    public override void Act(StateController controller)
    {
        PlayerData data = (PlayerData)controller.data;

        PlayerData.MelodyData mData = data.melodyData;

        bool facingRight = true;

        if (mData.currentMelody != null && Input.GetButtonDown("MelodyProjectileCast") && mData.projectileCooldownTimer.IsDone())
        {
            Vector3 offset = SpawnOffset;

            facingRight = data.transform.localScale.x > 0;

            if (!facingRight)
            {
                offset = Vector3.Scale(SpawnOffset, new Vector3(-1, 0, 0));
            }

            GameObject newProjectile = null;
            switch (mData.currentMelody)
            {
            case Melody.MelodyID.JumpMelody:
                newProjectile = Instantiate(mData.JumpMelodyProjectile);
                break;

            case Melody.MelodyID.SleepMelody:
                newProjectile = Instantiate(mData.SleepMelodyProjectile);
                break;

            case Melody.MelodyID.MagicResistMelody:
                newProjectile = Instantiate(mData.MagicResistMelodyProjectile);
                break;
            }

            MelodyProjectile melodyProjectile = newProjectile.GetComponent <MelodyProjectile>();
            melodyProjectile.Init(controller.transform.position + offset, facingRight);

            mData.projectileCooldownTimer.Start();
        }
    }