예제 #1
0
    public override void initAnim(Navi navi, ChipLogic c)
    {
        List <Sprite> subarray = new List <Sprite>();
        int           start; // index of first frame in sheet

        switch (c.sword_size)
        {
        case 1:                 // sword (1x1)
            start = 4;
            break;

        case 2:                 // longsword (1x2)
            start = 0;
            break;

        case -1:                 // widesword (3x1)
            start = 8;
            break;

        default:                // unlisted sword size: NOT A SWORD
            start = 0;
            break;
        }
        int i = 0;

        while (i < 4)           // animation is 4 frames long
        {
            subarray.Add(effectAnim[start + i]);
            i++;
        }
        slash_eff = subarray.ToArray();         // load only corresponding cannon frames
        // prepare renderer for slash effect then deactivate until time to render
        slash_renderer = new GameObject();
        slash_renderer.AddComponent <SpriteRenderer>();
        slash_frame = 0;
        slash_renderer.GetComponent <SpriteRenderer>().sprite       = slash_eff[slash_frame];
        slash_renderer.GetComponent <SpriteRenderer>().sortingOrder = 6; //top layer, hit effect shows above auras
        if (!navi.myNavi())                                              // flip slash effect horizontally when created by opponent
        {
            slash_renderer.GetComponent <SpriteRenderer>().flipX = true;
        }
        slash_renderer.SetActive(false);

        hit = true;             // reset hit check boolean to true until active frame of attack

        // take control of navi sword animation to sync animations
        c.chip_anim_frame    = 0;
        c.frametimer         = 2 * c.chipFR;    // first frame is longer
        navi.rate_controlled = true;
        navi.swordAnim       = true;
        navi.controlledSpriteSet(0);

        //sound
        navi.GetComponent <AudioSource>().PlayOneShot(Resources.Load <AudioClip>("Audio/s_sword"));

        c.interrupt = true;             //sword attacks can be interrupted at any time
    }
예제 #2
0
    public override void initAnim(Navi navi, ChipLogic c)
    {
        c.chip_sprite = effectAnim;
        c.chip_renderObj.transform.position += navi.body_offset;         // offset sprite up to match navi
        c.chip_anim_frame = 0;
        c.chip_renderObj.GetComponent <SpriteRenderer>().sprite       = c.chip_sprite[c.chip_anim_frame];
        c.chip_renderObj.GetComponent <SpriteRenderer>().sortingOrder = 4;        //	sorted just below barrier effects
        c.chip_renderObj.GetComponent <SpriteRenderer>().color        = new Color(1f, 1f, 1f, 0.9f);
        c.frametimer = c.chipFR;
        recov_amount = c.power;

        //audio
        navi.GetComponent <AudioSource>().PlayOneShot(Resources.Load <AudioClip>("Audio/Recover HQ"));
    }
예제 #3
0
    public override void initAnim(Navi navi, ChipLogic c)
    {
        List <Sprite> subarray = new List <Sprite>();
        int           start; // index of first frame in sheet

        switch (c.ID)
        {
        case 2:                 // HiCannon
            start = 6;
            break;

        case 3:                 // MCannon
            start = 12;
            break;

        default:                // Cannon or ID not listed, so default to Cannon
            start = 0;
            break;
        }
        int i = 0;

        while (i < 6)           // animation is 6 frames long
        {
            subarray.Add(effectAnim[start + i]);
            i++;
        }
        c.chip_sprite = subarray.ToArray();                        // load only corresponding cannon frames
        c.chip_renderObj.transform.position += navi.buster_offset; // offset sprite to match navi
        c.chip_anim_frame = 0;
        c.chip_renderObj.GetComponent <SpriteRenderer>().sprite       = c.chip_sprite[c.chip_anim_frame];
        c.chip_renderObj.GetComponent <SpriteRenderer>().sortingOrder = 2;        //sorted just above navi
        c.frametimer = c.chipFR;

        // take control of navi shoot animation to sync animations
        navi.rate_controlled = true;
        navi.shootAnim       = true;
        navi.controlledSpriteSet(0);

        //audio
        navi.GetComponent <AudioSource>().PlayOneShot(Resources.Load <AudioClip>("Audio/Cannon HQ"));
        // audio clip needs silenced trimmed from start

        c.interrupt = true;             // cannons can be interrupted at any time
    }
예제 #4
0
    public override void activate(Navi navi)
    {
        if (navi.active_chip != null)               // deactivate any other active chip before activating
        {
            navi.active_chip.deactivate(navi);
        }
        navi.active_chip = this;
        // If being activated by me
        if (navi.localOwner.Id == navi.owner.Id)
        {
            AC_dispObj = navi.AC_dispA;
        }
        // If being activated by enemy
        if (navi.localOwner.Id != navi.owner.Id)
        {
            AC_dispObj = navi.AC_dispB;
        }
        // Setup Active Chip display
        AC_dispObj.SetActive(true);
        AC_disp = AC_dispObj.GetComponent <ActiveChipDisplay>();
        AC_disp.RecieveData(this);
        AC_disp.max_duration             = power;
        AC_disp.duration                 = power;
        AC_disp.power_text.text          = "" + Math.Ceiling(AC_disp.duration);
        AC_disp.duration_ring.fillAmount = AC_disp.duration / AC_disp.max_duration;

        //audio
        navi.GetComponent <AudioSource>().PlayOneShot(Resources.Load <AudioClip>("Audio/Barrier HQ"));

        // Setup sprite renderer for chip's sprite
        chip_renderObj = new GameObject();
        chip_renderObj.transform.SetParent(navi.transform, false);
        chip_renderObj.transform.position += navi.body_offset;          // offset sprite up to match navi
        chip_renderObj.AddComponent <SpriteRenderer>();
        chip_anim_frame = 0;
        chip_renderObj.GetComponent <SpriteRenderer>().sprite       = chip_sprite[chip_anim_frame];
        chip_renderObj.GetComponent <SpriteRenderer>().sortingOrder = 5;        //	ensures sprite appear overtop
        chip_renderObj.GetComponent <SpriteRenderer>().color        = new Color(1f, 1f, 1f, 0.5f);
        frametimer = chipFR;
        OnSyncedUpdate(navi);
    }