protected void Swap(int ID1, int ID2, int Value1, int Value2) { SortList[ID1] = Value2; SortList[ID2] = Value1; OnSwapEventArgs OSEA = new OnSwapEventArgs(ID1, ID2, Value1, Value2); OnSwap?.Invoke(this, OSEA); }
public Swaper Swap(SwipeDirection direction, float x, float y) { if (!swaping && IsEnabled) { X = x; Y = y; SwipeDirection = direction; swaping = true; OnSwap?.Invoke(this); swaping = false; } return(this); }
public Courier(Menu mainMenu) { var menu = new Menu("Courier", "courierSwapper"); menu.AddItem( new MenuItem("courierSwapItems", "Items:").SetValue(abilityToggler = new AbilityToggler(new Dictionary <string, bool>()))); var key = new MenuItem("courierKey", "Hotkey").SetValue(new KeyBind('-', KeyBindType.Press)); menu.AddItem(key); key.ValueChanged += (sender, args) => { if (args.GetNewValue <KeyBind>().Active) { OnSwap?.Invoke(this, EventArgs.Empty); } }; mainMenu.AddSubMenu(menu); }
private void UpdateState() { if (pendingQuads.Count == 0 && IsRunning == false) { foreach (var cube in cubes) { foreach (var quad in cube.Quads) { quad.Swap(); } } if (OnSwap != null) { OnSwap.Invoke(); } UpdateLists(); UpdateLod(); } }
IEnumerator PokerDash() { if (busy) { yield break; } busy = true; playerControl.invincible = true; OnSwap?.Invoke(); Smoke(); float timer = Time.realtimeSinceStartup; //bulletTime.ActiveBulletTime(true, BulletTime.BulletTimePriority.BulletTimePriority_High); swapTrajectory.active = true; Collider2D target = col; Sprite targetSprite = null; Sprite playerSprite = playerControl.spriteRenderer.sprite; if (target.GetComponent <SpriteRenderer>() != null) { targetSprite = target.GetComponent <SpriteRenderer>().sprite; } else { targetSprite = target.GetComponent <Thing>().sr.sprite; } //target.GetComponent<SpriteRenderer>().sprite = pokerSprite; //playerControl.spriteRenderer.sprite = pokerSprite; player.layer = 18; //playerControl.box.enabled = false; playerControl.disableAirControl = true; bool playerFaceRight = playerControl.spriteRenderer.flipX; dir = (Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position).normalized; Vector3 diff = Input.mousePosition - startingPoint; Rigidbody2D targetRb = target.GetComponent <Rigidbody2D>(); Vector2 targetV = targetRb.velocity; BoxCollider2D targetBox = target.GetComponent <BoxCollider2D>(); Thing targetThing = target.GetComponent <Thing>(); if (target.GetComponent <Enemy>() != null) { target.GetComponent <Enemy>().hpText.SetActive(false); } bool targetIsTrigger = targetBox.isTrigger; Vector3 prevPos = new Vector3(transform.position.x, playerControl.isTouchingGround ? player.GetComponent <Thing>().GetLowerY() + targetBox.size.y / 2f + 2f : transform.position.y, transform.position.z); Vector3 prevColPos = new Vector3(target.transform.position.x, targetThing.isTouchingGround ? targetThing.GetLowerY() + playerControl.box.size.y / 2f: target.transform.position.y, target.transform.position.z); Vector3 newPrevColPos = target.transform.position; targetBox.enabled = false; playerControl.box.enabled = false; audioSource.PlayOneShot(clip, 0.8f); //float speed = Vector3.Distance(prevPos, prevColPos) / dashDur; targetThing.swapping = true; //target.transform.position = prevPos; //player.transform.position = prevPos; playerControl.spriteRenderer.GetComponent <Animator>().enabled = false; if (target.GetComponent <Animator>() != null) { target.GetComponent <Animator>().enabled = false; } Vector3 playerScale = transform.localScale; Vector3 targetScale = target.transform.localScale; SpriteRenderer targetSr = target.GetComponent <SpriteRenderer>(); if (targetSr == null) { targetSr = target.GetComponent <Thing>().sr; } float playerGravity = playerControl.rb.gravityScale; float targetGravity = targetRb.gravityScale; playerControl.rb.gravityScale = 0f; targetRb.gravityScale = 0f; float speed = Mathf.Max(dashSpeed, Vector3.Distance(prevColPos, prevPos) / maxDashTime); // Vector3.Distance(prevColPos, prevPos) / pokerTransitionDur / 3f; float curr = 0f; //playerControl.spriteRenderer.sprite = turnPokerSprite; pokerTransitionDur = Vector3.Distance(prevPos, prevColPos) / speed; Vector3 destination = Vector3.zero; if (overrideDir != Vector2.zero) { dir = overrideDir; } target.transform.position = prevPos; while (curr < pokerTransitionDur) { destination = prevColPos; transform.position += (newPrevColPos - prevPos).normalized * speed * Time.fixedDeltaTime; //playerControl.rb.velocity = (prevColPos - prevPos).normalized * speed; //transform.DoMove(); //transform.position = Vector3.SmoothDamp(transform.position, prevColPos, ref destinationUpdateSpeed, pokerTransitionDur); if (targetRb != null) { targetRb.velocity = Vector2.zero; } yield return(new WaitForFixedUpdate()); curr += Time.fixedDeltaTime; ShadowPool.instance.GetFromPool(); } curr = curr - pokerTransitionDur; if (target != null) { target.transform.position = prevPos; } curr = curr - pokerTransitionDur; playerControl.transform.position = prevColPos; playerControl.spriteRenderer.GetComponent <Animator>().enabled = true; if (target.GetComponent <Animator>() != null) { target.GetComponent <Animator>().enabled = true; } playerControl.disableAirControl = false; Smoke(); player.layer = 9; targetThing.swapping = false; playerControl.spriteRenderer.sprite = playerSprite; player.transform.localScale = playerScale; target.transform.localScale = targetScale; playerControl.rb.gravityScale = playerGravity; targetRb.gravityScale = targetGravity; if (targetRb != null) { targetSr.sprite = targetSprite; //targetBox.isTrigger = targetIsTrigger; if (diff.magnitude > directionSwapThreshold && (targetThing.canBeThrown || throwOverride) && startingPoint != Vector3.negativeInfinity) { StartCoroutine(targetThing.CancelBeingThrown(0.65f)); if (targetThing.GetComponent <EnemyBullet_Transable_Forward>() == null) { targetRb.velocity = dir.normalized * (targetThing.overrideThrowSpeed != 0f ? targetThing.overrideThrowSpeed : swapSpeed); } else { targetRb.velocity = dir.normalized * targetV.magnitude; HandleBulletAcc(targetRb.GetComponent <EnemyBullet_Transable_Forward>(), dir); } StartCoroutine(targetThing.SetSlippery()); targetThing.thrownDir = dir; if (prevCol == col && Mathf.Abs(targetRb.gravityScale) >= 10f) { consecutiveThrowCount += 1; if (consecutiveThrowCount >= allowedConsecutiveThrowCount) { StartCoroutine(CancelDirectionThrow()); } } else { consecutiveThrowCount = 0; } prevCol = col; } else if (targetThing.GetComponent <EnemyBullet_Transable_Forward>() == null) { if (!targetThing.touchingFloor() && targetRb.gravityScale != 0f) { targetRb.velocity = new Vector2(0f, 100f); } else { targetRb.velocity = Vector2.zero; } } else { targetRb.velocity = targetV; } target.transform.position = prevPos; targetBox.enabled = true; if (target.GetComponent <Enemy>() != null) { //target.GetComponent<Enemy>().faceRight = !playerFaceRight; target.GetComponent <Enemy>().hpText.SetActive(true); } targetThing.swapTriggerMethod?.Invoke(); } playerControl.spriteRenderer.flipX = playerFaceRight; playerControl.box.enabled = true; busy = false; playerControl.invincible = false; //bulletTime.ActiveBulletTime(false, BulletTime.BulletTimePriority.BulletTimePriority_High); Energy.Instance.bulletTimeTimer = 0f; playerControl.canJump = false; ProCamera2DShake.Instance.Shake(0.2f, new Vector2(50f, 50f)); swapTrajectory.active = false; yield return(new WaitForFixedUpdate()); if (!playerControl.touchingFloor()) { playerControl.rb.velocity = new Vector2(0f, 250f); } else { playerControl.rb.velocity = Vector2.zero; } yield return(new WaitForFixedUpdate()); if (!playerControl.touchingFloor()) { playerControl.rb.velocity = new Vector2(0f, 250f); } else { playerControl.rb.velocity = Vector2.zero; } yield return(new WaitForFixedUpdate()); if (!playerControl.touchingFloor()) { playerControl.rb.velocity = new Vector2(0f, 250f); } else { playerControl.rb.velocity = Vector2.zero; } }