public override void OnEquipmentAction(Character character, bool isHoldDown) { if (character.Movement.IsFrozen()) { return; } if (activeWarpShot == null) { if (isHoldDown) { SpawnStillWarpShot(character); cantMove = true; } else { SpawnMovingWarpShot(character); } } else { ProjectileBase projectileBase = activeWarpShot.GetComponent <ProjectileBase>(); if (cantMove && isHoldDown) { cantMove = false; Destroy(projectileBase.gameObject); activeWarpShot = null; } else if (isHoldDown && projectileBase.GetSpeed() > 0) { originalSpeed = projectileBase.GetSpeed(); projectileBase.SetSpeed(0); } else if (isHoldDown && Helper.NearlyEqual(projectileBase.GetSpeed(), 0)) { projectileBase.SetSpeed(originalSpeed); } else { WarpToShot(); } } }