Beispiel #1
0
    // Use this for initialization
    void Awake()
    {
        count = 0;

        if (gameObject.name == "Hero1") {
            characterID = 0;
            player = GetComponent<Player> ();
        }
        else if (gameObject.name == "Hero2"){
            characterID = 1;
            player = GetComponent<Player> ();
        }
        else if (GetComponent<MiniCopterBlock> ()) {
            characterID = 2;
            miniCopterBlock = GetComponent<MiniCopterBlock> ();
        }
        else if (gameObject.GetComponent<TankBlock> ()) {
            characterID = 3;
            tankBlock = GetComponent<TankBlock> ();
        }
        else if (GetComponent<JumpBlock> ()) {
            characterID = 4;
            jumpBlock = GetComponent<JumpBlock> ();
        }
        else if (GetComponent<TelekineticBlock> ()) {
            characterID = 5;
            telekineticBlock = GetComponent<TelekineticBlock> ();
        }
        else if (GetComponent<SuperTelekineticBlock> ()) {
            characterID = 6;
            superTelekineticBlock = GetComponent<SuperTelekineticBlock> ();
        }
        else if (GetComponent<DestructablePlatform>()){
            characterID = 7;
            destructablePlatform = GetComponent<DestructablePlatform>();
        }
        else if (GetComponent<TurretBlock>()){
            characterID = 8;
            turretBlock = GetComponent<TurretBlock> ();
        }
        else if (GetComponent<SuperTurretBlock>()){
            characterID = 9;
            superTurretBlock = GetComponent<SuperTurretBlock> ();
        }
        else if (GetComponent<PistonButton>()){
            characterID = 10;
            pistonButton = GetComponent<PistonButton> ();
        }
        else{
            characterID = 100;
        }
    }
    public IEnumerator LaunchOverIt()
    {
        StartCoroutine (CatalogWeapons ());
        StartCoroutine (StopChargeNoise ());
        StartCoroutine (chargeDisplay.StopCharger());
        if (blockInSlot){
            if (chargeDisplay.charger!=0 & !waiting){
                //TRIGGER RELEASE BUNDLE// (see below)
                waiting = true;
                launchCount++;
                StartCoroutine (ReleaseNoise ());
                StartCoroutine (KickBack ());
                StartCoroutine (InitialPassThrough());
                if (c1){
                    StartCoroutine (cameraFollowPlayer1.Shake());
                }
                else{
                    StartCoroutine (cameraBattleArena.Shake());
                }

                //things that happen to ALL fired weapons

                blockInSlot.rigidbody2D.WakeUp();
                if (blockTypes[0]!=7 && blockTypes[0]!=8 && blockTypes[0]!=13){ //telekineticblocks should float
                    blockInSlot.rigidbody2D.gravityScale = 1f;
                }
                if (blockTypes[0]!=11 && blockTypes[0]!=12){ //turretblocks should stay small
                    //blockInSlot.transform.localScale = Vector3.one * 3f;
                }
                charger = chargeDisplay.charger;
                blockInSlot.rigidbody2D.velocity = Vector2.zero;
                yield return new WaitForEndOfFrame();
                blockInSlot.rigidbody2D.AddForce(fDir * (baselineFire + fireSpeed * charger));
                blockInSlot.collider2D.isTrigger = false;
                occupied = false;
                wasOccupied = false;

                //Special things that those special blocks do
                if (blockInSlot.GetComponent<WeaponBlockScript> ()) {
                    weaponBlockScript = blockInSlot.GetComponent<WeaponBlockScript> ();
                    StartCoroutine(weaponBlockScript.Project());
                }

                switch (blockTypes[0]){
                case 2:
                    Explode explode = blockInSlot.GetComponent<Explode>();
                    StartCoroutine(explode.BlowMe());
                    break;
                case 3:
                    Freeze freezeScript = blockInSlot.GetComponent<Freeze>();
                    freezeScript.nowProjectile = true;
                    break;
                case 4:
                    NeutralSuper neutralSuper = blockInSlot.GetComponent<NeutralSuper>();
                    StartCoroutine(neutralSuper.BreakUp());
                    break;
                case 5:
                    ExplodeSuper explodeSuper = blockInSlot.GetComponent<ExplodeSuper>();
                    StartCoroutine(explodeSuper.GetIntimate());
                    break;
                case 6: // super freeze
                    SuperFreezeBlock freezeSuper = blockInSlot.GetComponent<SuperFreezeBlock>();
                    freezeSuper.wepDSID = wepDSID;
                    break;
                case 7: //telekinetic block
                    telekineticBlockScript = blockInSlot.GetComponent<TelekineticBlock>();
                    occupied = true;
                    wasOccupied = true;

                    telekineticBlockScript.weaponDetectorScript = this;
                    telekineticBlockScript.heroSpot = arm;
                    telekineticBlockScript.player = player;
                    telekineticBlockScript.wepDSID = wepDSID;
                    telekineticBlockScript.GetComponent<WeaponBlockScript>().wepDSID = wepDSID;

                    StartCoroutine (TeleBlockCheck());
                    StartCoroutine (telekineticBlockScript.Orbit());
                    StartCoroutine (telekineticBlockScript.StartingOff());
                    break;
                case 8: //super telekinetic block
                    superTelekineticBlockScript = blockInSlot.GetComponent<SuperTelekineticBlock>();
                    superTelekineticBlockScript.weaponDetectorScript = this;
                    superTelekineticBlockScript.character = character;
                    superTelekineticBlockScript.wepDSID = wepDSID;
                    superTelekineticBlockScript.GetComponent<WeaponBlockScript> ().wepDSID = wepDSID;

                    GameObject expo = Instantiate ( Resources.Load("Prefabs/Effects/Telesplosion"),hPos,Quaternion.identity) as GameObject;
                    expo.transform.localScale = Vector3.one;

                    StartCoroutine (superTelekineticBlockScript.Welcome());
                    break;
                case -1:
                    MiniCopterBlock miniCopterBlock = blockInSlot.GetComponent<MiniCopterBlock>();
                    StartCoroutine(miniCopterBlock.BeFree());
                    break;
                case 11: //turret block
                    //blockInSlot.transform.localScale = Vector3.one;
                    break;
                case 12: //super turret block
                    //blockInSlot.transform.localScale = Vector3.one;
                    break;
                case 13:
                    TeleportalBlock teleB = blockInSlot.GetComponent<TeleportalBlock>();
                    StartCoroutine(teleB.Phase1());
                    break;
                case 15:
                    ShockBlock shockb = blockInSlot.GetComponent<ShockBlock>();
                    StartCoroutine(shockb.FlipTheSwitch());
                    break;
                }

                StartCoroutine(CatalogWeapons());
                yield return new WaitForSeconds(0.01f);
                waiting = false;
                //StartCoroutine (ToggleWeapons());
                yield return null;
            }
        }
    }
Beispiel #3
0
    // Use this for initialization
    void Awake()
    {
        count = 0;

        if (gameObject.name == "Hero1")
        {
            characterID = 0;
            player      = GetComponent <Player> ();
        }
        else if (gameObject.name == "Hero2")
        {
            characterID = 1;
            player      = GetComponent <Player> ();
        }
        else if (GetComponent <MiniCopterBlock> ())
        {
            characterID     = 2;
            miniCopterBlock = GetComponent <MiniCopterBlock> ();
        }
        else if (gameObject.GetComponent <TankBlock> ())
        {
            characterID = 3;
            tankBlock   = GetComponent <TankBlock> ();
        }
        else if (GetComponent <JumpBlock> ())
        {
            characterID = 4;
            jumpBlock   = GetComponent <JumpBlock> ();
        }
        else if (GetComponent <TelekineticBlock> ())
        {
            characterID      = 5;
            telekineticBlock = GetComponent <TelekineticBlock> ();
        }
        else if (GetComponent <SuperTelekineticBlock> ())
        {
            characterID           = 6;
            superTelekineticBlock = GetComponent <SuperTelekineticBlock> ();
        }
        else if (GetComponent <DestructablePlatform>())
        {
            characterID          = 7;
            destructablePlatform = GetComponent <DestructablePlatform>();
        }
        else if (GetComponent <TurretBlock>())
        {
            characterID = 8;
            turretBlock = GetComponent <TurretBlock> ();
        }
        else if (GetComponent <SuperTurretBlock>())
        {
            characterID      = 9;
            superTurretBlock = GetComponent <SuperTurretBlock> ();
        }
        else if (GetComponent <PistonButton>())
        {
            characterID  = 10;
            pistonButton = GetComponent <PistonButton> ();
        }
        else
        {
            characterID = 100;
        }
    }
Beispiel #4
0
    public IEnumerator LaunchOverIt()
    {
        StartCoroutine(CatalogWeapons());
        StartCoroutine(StopChargeNoise());
        StartCoroutine(chargeDisplay.StopCharger());
        if (blockInSlot)
        {
            if (chargeDisplay.charger != 0 & !waiting)
            {
                //TRIGGER RELEASE BUNDLE// (see below)
                waiting = true;
                launchCount++;
                StartCoroutine(ReleaseNoise());
                StartCoroutine(KickBack());
                StartCoroutine(InitialPassThrough());
                if (c1)
                {
                    StartCoroutine(cameraFollowPlayer1.Shake());
                }
                else
                {
                    StartCoroutine(cameraBattleArena.Shake());
                }

                //things that happen to ALL fired weapons

                blockInSlot.rigidbody2D.WakeUp();
                if (blockTypes[0] != 7 && blockTypes[0] != 8 && blockTypes[0] != 13)            //telekineticblocks should float
                {
                    blockInSlot.rigidbody2D.gravityScale = 1f;
                }
                if (blockTypes[0] != 11 && blockTypes[0] != 12)              //turretblocks should stay small
                //blockInSlot.transform.localScale = Vector3.one * 3f;
                {
                }
                charger = chargeDisplay.charger;
                blockInSlot.rigidbody2D.velocity = Vector2.zero;
                yield return(new WaitForEndOfFrame());

                blockInSlot.rigidbody2D.AddForce(fDir * (baselineFire + fireSpeed * charger));
                blockInSlot.collider2D.isTrigger = false;
                occupied    = false;
                wasOccupied = false;

                //Special things that those special blocks do
                if (blockInSlot.GetComponent <WeaponBlockScript> ())
                {
                    weaponBlockScript = blockInSlot.GetComponent <WeaponBlockScript> ();
                    StartCoroutine(weaponBlockScript.Project());
                }

                switch (blockTypes[0])
                {
                case 2:
                    Explode explode = blockInSlot.GetComponent <Explode>();
                    StartCoroutine(explode.BlowMe());
                    break;

                case 3:
                    Freeze freezeScript = blockInSlot.GetComponent <Freeze>();
                    freezeScript.nowProjectile = true;
                    break;

                case 4:
                    NeutralSuper neutralSuper = blockInSlot.GetComponent <NeutralSuper>();
                    StartCoroutine(neutralSuper.BreakUp());
                    break;

                case 5:
                    ExplodeSuper explodeSuper = blockInSlot.GetComponent <ExplodeSuper>();
                    StartCoroutine(explodeSuper.GetIntimate());
                    break;

                case 6:                 // super freeze
                    SuperFreezeBlock freezeSuper = blockInSlot.GetComponent <SuperFreezeBlock>();
                    freezeSuper.wepDSID = wepDSID;
                    break;

                case 7:                 //telekinetic block
                    telekineticBlockScript = blockInSlot.GetComponent <TelekineticBlock>();
                    occupied    = true;
                    wasOccupied = true;

                    telekineticBlockScript.weaponDetectorScript = this;
                    telekineticBlockScript.heroSpot             = arm;
                    telekineticBlockScript.player  = player;
                    telekineticBlockScript.wepDSID = wepDSID;
                    telekineticBlockScript.GetComponent <WeaponBlockScript>().wepDSID = wepDSID;

                    StartCoroutine(TeleBlockCheck());
                    StartCoroutine(telekineticBlockScript.Orbit());
                    StartCoroutine(telekineticBlockScript.StartingOff());
                    break;

                case 8:                 //super telekinetic block
                    superTelekineticBlockScript = blockInSlot.GetComponent <SuperTelekineticBlock>();
                    superTelekineticBlockScript.weaponDetectorScript = this;
                    superTelekineticBlockScript.character            = character;
                    superTelekineticBlockScript.wepDSID = wepDSID;
                    superTelekineticBlockScript.GetComponent <WeaponBlockScript> ().wepDSID = wepDSID;

                    GameObject expo = Instantiate(Resources.Load("Prefabs/Effects/Telesplosion"), hPos, Quaternion.identity) as GameObject;
                    expo.transform.localScale = Vector3.one;

                    StartCoroutine(superTelekineticBlockScript.Welcome());
                    break;

                case -1:
                    MiniCopterBlock miniCopterBlock = blockInSlot.GetComponent <MiniCopterBlock>();
                    StartCoroutine(miniCopterBlock.BeFree());
                    break;

                case 11:                 //turret block
                    //blockInSlot.transform.localScale = Vector3.one;
                    break;

                case 12:                 //super turret block
                    //blockInSlot.transform.localScale = Vector3.one;
                    break;

                case 13:
                    TeleportalBlock teleB = blockInSlot.GetComponent <TeleportalBlock>();
                    StartCoroutine(teleB.Phase1());
                    break;

                case 15:
                    ShockBlock shockb = blockInSlot.GetComponent <ShockBlock>();
                    StartCoroutine(shockb.FlipTheSwitch());
                    break;
                }

                StartCoroutine(CatalogWeapons());
                yield return(new WaitForSeconds(0.01f));

                waiting = false;
                //StartCoroutine (ToggleWeapons());
                yield return(null);
            }
        }
    }