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 }
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")); }
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 }
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); }