Skip to content

Commit

Permalink
돌이킬 수 없다 12
Browse files Browse the repository at this point in the history
  • Loading branch information
presto95 committed Mar 13, 2019
1 parent dc031de commit b0eaba2
Show file tree
Hide file tree
Showing 20 changed files with 345 additions and 205 deletions.
4 changes: 4 additions & 0 deletions RespectU.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
16E72F47E46466C1D0F72348BC1734D2 /* Button.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7994394D253D83388739913632BF52F4 /* Button.swift */; };
1722D64EEA474AA4DB6530A17DA20635 /* TrophyTechnika3TableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A875376A5EBE583D9D47E2CCA367EB4F /* TrophyTechnika3TableViewController.swift */; };
1914B51E2236B3E500BA057E /* SearchRecordDetail.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1914B51D2236B3E500BA057E /* SearchRecordDetail.swift */; };
1914B520223805BD00BA057E /* Persistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1914B51F223805BD00BA057E /* Persistence.swift */; };
1B7BDC0518E8261BB7E114B238485E0D /* Double+.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00C0A70ADF02A515C554A2A7F65D04D0 /* Double+.swift */; };
1C4D888E2BECAA7E7447EC6E493D700E /* TrophyBSTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C2415AABC509E942301DF3589F55F8 /* TrophyBSTableViewController.swift */; };
1D5A93ADB7E0551D8265EC21D90E8114 /* Note.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AF510989C994AF286BAC6EFC98F3D86 /* Note.swift */; };
Expand Down Expand Up @@ -255,6 +256,7 @@
181F3BF12F13DC015494221C8902B980 /* AchievementResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AchievementResponse.swift; sourceTree = "<group>"; };
18449AAA9B8578063135A1485D123683 /* AchievementNoteTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AchievementNoteTableViewController.swift; sourceTree = "<group>"; };
1914B51D2236B3E500BA057E /* SearchRecordDetail.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchRecordDetail.swift; sourceTree = "<group>"; };
1914B51F223805BD00BA057E /* Persistence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Persistence.swift; sourceTree = "<group>"; };
1B070570A49E0EE97FB9D7A7BEE9915B /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/Localizable.strings; sourceTree = "<group>"; };
1EC376E253CB7630E7BAC771AB75FC10 /* APIService+Tip.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "APIService+Tip.swift"; sourceTree = "<group>"; };
1FD55BA517A60A14D8EC54ACB1C7B9D4 /* Pods-RespectU.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RespectU.debug.xcconfig"; path = "Pods/Target Support Files/Pods-RespectU/Pods-RespectU.debug.xcconfig"; sourceTree = "<group>"; };
Expand Down Expand Up @@ -684,6 +686,7 @@
children = (
3C37ECC78732D6E4E089B5B5F40D5C39 /* Realm */,
2AA94CA525D5326C0F9292D848B27357 /* Response */,
1914B51F223805BD00BA057E /* Persistence.swift */,
);
path = Models;
sourceTree = "<group>";
Expand Down Expand Up @@ -1111,6 +1114,7 @@
C49BDBE7974F6333739B639CFBC5DB8A /* BaseViewController.swift in Sources */,
16E72F47E46466C1D0F72348BC1734D2 /* Button.swift in Sources */,
94382F584F379628F8CCCEEF51AA8C23 /* CAGradientLayer+.swift in Sources */,
1914B520223805BD00BA057E /* Persistence.swift in Sources */,
36105E909ADA369CB7D0D1B675FED1F4 /* Difficulty.swift in Sources */,
1B7BDC0518E8261BB7E114B238485E0D /* Double+.swift in Sources */,
53DC6066E155D2567781E494547956C9 /* DownloadViewController.swift in Sources */,
Expand Down
26 changes: 7 additions & 19 deletions RespectU/Resources/SwiftGen/Strings.swift
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,6 @@ internal enum L10n {
internal static let _5BNORMALSeeker47CombosBREAKFullComboTrophyEarned = L10n.tr("Localizable", "5B NORMAL [Seeker]\n47 Combos -> BREAK -> Full Combo -> Trophy Earned")
/// 777콤보 달성하기
internal static let _777Combos = L10n.tr("Localizable", "777 Combos")
/// 정확도
internal static let accuracy = L10n.tr("Localizable", "ACCURACY")
/// 정확도
internal static let accuracy = L10n.tr("Localizable", "Accuracy")
/// 도전과제
internal static let achievement = L10n.tr("Localizable", "ACHIEVEMENT")
/// 도전과제
internal static let achievement = L10n.tr("Localizable", "Achievement")
/// 오름차순
Expand All @@ -45,8 +39,6 @@ internal enum L10n {
internal static let changeBPMDefault = L10n.tr("Localizable", "Change BPM Default")
/// 네트워크 상태를 확인하세요.
internal static let checkYourNetworkStatus = L10n.tr("Localizable", "Check your network status.")
/// 준비중
internal static let comingSoon = L10n.tr("Localizable", "Coming soon")
/// 준비중입니다.
internal static let comingSoon = L10n.tr("Localizable", "Coming soon.")
/// 크레딧
Expand Down Expand Up @@ -169,8 +161,6 @@ internal enum L10n {
internal static let normalDesc = L10n.tr("Localizable", "NORMAL / DESC")
/// 비고
internal static let note = L10n.tr("Localizable", "NOTE")
/// 비고
internal static let note = L10n.tr("Localizable", "Note")
/// 알림
internal static let notification = L10n.tr("Localizable", "Notification")
/// 확인
Expand All @@ -196,17 +186,15 @@ internal enum L10n {
/// 점
internal static let point = L10n.tr("Localizable", "Point")
/// 랭크
internal static let rank = L10n.tr("Localizable", "Rank")
/// 랭크
internal static let rank = L10n.tr("Localizable", "RANK")
/// 랭킹
internal static let ranking = L10n.tr("Localizable", "Ranking")
/// 정확도
internal static let rate = L10n.tr("Localizable", "Rate")
/// 정확도 범위 (%)
internal static let rateRange = L10n.tr("Localizable", "Rate Range (%)")
/// 앱 평가하기
internal static let rateThisApp = L10n.tr("Localizable", "Rate This App")
/// 정확도
internal static let rating = L10n.tr("Localizable", "RATING")
/// 제거
internal static let remove = L10n.tr("Localizable", "Remove")
/// 검색
Expand Down Expand Up @@ -293,19 +281,19 @@ internal enum L10n {
internal static let toResetTheValueDoNotEnterAnyValues = L10n.tr("Localizable", "Enter the rate.\nTo reset the value, do not enter any values.")
}

internal enum InputYourAccuracy {
internal enum InputYourRate {
/// 정확도를 입력하세요.\n값을 초기화하려면 어떠한 값도 입력하지 마세요.
internal static let toResetTheValueDoNotEnterAnyValues = L10n.tr("Localizable", "Input your accuracy.\nTo reset the value, do not enter any values.")
internal static let toResetTheValueDoNotEnterAnyValues = L10n.tr("Localizable", "Input your rate.\nTo reset the value, do not enter any values.")
}

internal enum InputYourRate {
internal enum InputYourRating {
/// 정확도를 입력하세요.\n값을 초기화하려면 어떠한 값도 입력하지 마세요.
internal static let toResetTheValueDoNotEnterAnyValues = L10n.tr("Localizable", "Input your rate.\nTo reset the value, do not enter any values.")
internal static let toResetTheValueDoNotEnterAnyValues = L10n.tr("Localizable", "Input your rating.\nTo reset the value, do not enter any values.")
}

internal enum ThereIsNewData {
/// 새로운 데이터가 있습니다.\n"서버에서 다운로드하기"로 이동하여 최신 데이터로 업데이트하세요.
internal static let goToDownloadingFromTheServerAndUpdateToTheLatestData = L10n.tr("Localizable", "There is new data.\nGo to "Downloading from the server" and update to the latest data.")
internal static let goToDownloadingFromTheServerAndUpdateToTheLatestData = L10n.tr("Localizable", "There is new data.\nGo to [Downloading from the server] and update to the latest data.")
}
}
// swiftlint:enable explicit_type_interface function_parameter_count identifier_name line_length
Expand Down
19 changes: 5 additions & 14 deletions RespectU/Resources/ko.lproj/Localizable.strings
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/*
/*
Localizable.strings
RespectU

Expand Down Expand Up @@ -26,18 +26,14 @@
"Performance" = "성과";
"Performance Record" = "성과 기록";
"RANK" = "랭크";
"Rank" = "랭크";
"Rate" = "정확도";
"Input your rate.\nTo reset the value, do not enter any values." = "정확도를 입력하세요.\n값을 초기화하려면 어떠한 값도 입력하지 마세요.";
"ACCURACY" = "정확도";
"Accuracy" = "정확도";
"RATING" = "정확도";
"NOTE" = "비고";
"Note" = "비고";
"Input your rate.\nTo reset the value, do not enter any values." = "정확도를 입력하세요.\n값을 초기화하려면 어떠한 값도 입력하지 마세요.";
"No Pattern" = "패턴 없음";
"My Record" = "내 기록";
"PATTERNS" = "패턴";
"AVERAGE" = "평균 정확도";
"Input your accuracy.\nTo reset the value, do not enter any values." = "정확도를 입력하세요.\n값을 초기화하려면 어떠한 값도 입력하지 마세요.";
"Input your rating.\nTo reset the value, do not enter any values." = "정확도를 입력하세요.\n값을 초기화하려면 어떠한 값도 입력하지 마세요.";
"Select your rank." = "랭크를 선택하세요.";
"Select your note." = "비고를 선택하세요.";

Expand All @@ -52,7 +48,6 @@

"Unlock (ACHIEVEMENT)" = "해금 (도전과제)";
"Unlock (MISSION)" = "해금 (미션)";
"ACHIEVEMENT" = "도전과제";

"My Favorite Button" = "주 버튼 설정";
"The information displayed on the first run screen depends on the setting value." = "설정값에 따라 첫 실행 화면에 표시되는 정보가 달라집니다.";
Expand Down Expand Up @@ -98,7 +93,6 @@
"Nickname Setting" = "닉네임 설정";
"Enter your nickname." = "닉네임을 입력해 주세요.";
"Point" = "점";
"Coming soon" = "준비중";
"Summary" = "요약";
"Graph" = "그래프";
"MAX COMBO Failure" = "MAX COMBO 실패";
Expand Down Expand Up @@ -146,10 +140,7 @@
"Store recorded performance information on the server." = "기록한 성과 정보를 서버에 저장합니다.";
"If there is no data on the server, the recorded performance information can be initialized." = "서버에 데이터가 없는 경우 기록한 성과 정보가 초기화될 수 있습니다.";
"Warning" = "경고";
"There is new data.\nGo to \"Downloading from the server\" and update to the latest data." = "새로운 데이터가 있습니다.\n\"서버에서 다운로드하기\"로 이동하여 최신 데이터로 업데이트하세요.";
"Rank" = "랭크";
"Rate" = "정확도";
"Note" = "비고";
"There is new data.\nGo to [Downloading from the server] and update to the latest data." = "새로운 데이터가 있습니다.\n\"서버에서 다운로드하기\"로 이동하여 최신 데이터로 업데이트하세요.";
"Select the note." = "비고를 선택하세요.";
"Select the rank." = "랭크를 선택하세요.";
"Enter the rate.\nTo reset the value, do not enter any values." = "정확도를 입력하세요.\n초기화하려면 아무 값도 입력하지 마세요.";
Expand Down
2 changes: 2 additions & 0 deletions RespectU/Sources/Common/MissionSection.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
// Copyright © 2018년 Presto. All rights reserved.
//

import UIKit

/// The `enum` that defines each mission sections.
enum MissionSection {

Expand Down
53 changes: 53 additions & 0 deletions RespectU/Sources/Extension/String+.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,57 @@ extension String {
var localized: String {
return NSLocalizedString(self, tableName: nil, bundle: Bundle.main, value: "", comment: "")
}

func missionGradient(_ direction: GradientDirection) -> CAGradientLayer? {
let startPoint = direction == .horizontal ? CGPoint(x: 0, y: 0.5) : CGPoint(x: 0.5, y: 0)
let endPoint = direction == .horizontal ? CGPoint(x: 1, y: 0.5) : CGPoint(x: 0.5, y: 1)
switch self {
case MissionSection.Respect.departure:
return CAGradientLayer.makeGradient(startPoint: startPoint, endPoint: endPoint, colors: [#colorLiteral(red: 0.137254902, green: 0.6549019608, blue: 0.3921568627, alpha: 1), #colorLiteral(red: 0.2431372549, green: 0.8235294118, blue: 0.8274509804, alpha: 1)], locations: [0, 0.5, 1])
case MissionSection.Respect.clubRoad645:
return CAGradientLayer.makeGradient(startPoint: startPoint, endPoint: endPoint, colors: [#colorLiteral(red: 0.1568627451, green: 0.6431372549, blue: 0.7725490196, alpha: 1), #colorLiteral(red: 0.2352941176, green: 0.8235294118, blue: 0.8, alpha: 1)], locations: [0, 0.5, 1])
case MissionSection.Respect.maxTheater:
return CAGradientLayer.makeGradient(startPoint: startPoint, endPoint: endPoint, colors: [#colorLiteral(red: 0.5176470588, green: 0.737254902, blue: 0.5019607843, alpha: 1), #colorLiteral(red: 0.2941176471, green: 0.7137254902, blue: 0.9176470588, alpha: 1)], locations: [0, 0.5, 1])
case MissionSection.Respect.anotherWorld:
return CAGradientLayer.makeGradient(startPoint: startPoint, endPoint: endPoint, colors: [#colorLiteral(red: 0.2156862745, green: 0.6392156863, blue: 0.7098039216, alpha: 1), #colorLiteral(red: 0.3215686275, green: 0.537254902, blue: 0.9333333333, alpha: 1)], locations: [0, 0.5, 1])
case MissionSection.Respect.backStage:
return CAGradientLayer.makeGradient(startPoint: startPoint, endPoint: endPoint, colors: [#colorLiteral(red: 0.631372549, green: 0.4117647059, blue: 0.9254901961, alpha: 1), #colorLiteral(red: 0.3450980392, green: 0.431372549, blue: 0.937254902, alpha: 1)], locations: [0, 0.5, 1])
case MissionSection.Respect.chaosTheory:
return CAGradientLayer.makeGradient(startPoint: startPoint, endPoint: endPoint, colors: [#colorLiteral(red: 0.6705882353, green: 0.3254901961, blue: 0.7725490196, alpha: 1), #colorLiteral(red: 0.5294117647, green: 0.3647058824, blue: 0.9764705882, alpha: 1)], locations: [0, 0.5, 1])
case MissionSection.Respect.soundLab:
return CAGradientLayer.makeGradient(startPoint: startPoint, endPoint: endPoint, colors: [#colorLiteral(red: 0.7098039216, green: 0.3294117647, blue: 0.8941176471, alpha: 1), #colorLiteral(red: 0.7568627451, green: 0.5529411765, blue: 0.3725490196, alpha: 1)], locations: [0, 0.5, 1])
case MissionSection.Respect.visualizer:
return CAGradientLayer.makeGradient(startPoint: startPoint, endPoint: endPoint, colors: [#colorLiteral(red: 0.7294117647, green: 0.3137254902, blue: 0.9254901961, alpha: 1), #colorLiteral(red: 0.9843137255, green: 0.4078431373, blue: 0.8156862745, alpha: 1)], locations: [0, 0.5, 1])
case MissionSection.Respect.developers:
return CAGradientLayer.makeGradient(startPoint: startPoint, endPoint: endPoint, colors: [#colorLiteral(red: 0.6392156863, green: 0.2784313725, blue: 0.6901960784, alpha: 1), #colorLiteral(red: 0.9803921569, green: 0.4470588235, blue: 0.4392156863, alpha: 1)], locations: [0, 0.5, 1])
case MissionSection.Respect.destination:
return CAGradientLayer.makeGradient(startPoint: startPoint, endPoint: endPoint, colors: [#colorLiteral(red: 0.5921568627, green: 0.2588235294, blue: 0.2588235294, alpha: 1), #colorLiteral(red: 0.6470588235, green: 0.06274509804, blue: 0.1803921569, alpha: 1)], locations: [0, 0.5, 1])
case MissionSection.Trilogy.tSide:
return CAGradientLayer.makeGradient(startPoint: startPoint, endPoint: endPoint, colors: [#colorLiteral(red: 0.2980392157, green: 0.337254902, blue: 0.9843137255, alpha: 1), #colorLiteral(red: 0.4, green: 0.6980392157, blue: 0.9764705882, alpha: 1)], locations: [0, 0.5, 1])
case MissionSection.Trilogy.rSide:
return CAGradientLayer.makeGradient(startPoint: startPoint, endPoint: endPoint, colors: [#colorLiteral(red: 0.2941176471, green: 0.337254902, blue: 0.9843137255, alpha: 1), #colorLiteral(red: 0.5882352941, green: 0.4352941176, blue: 0.9568627451, alpha: 1)], locations: [0, 0.5, 1])
case MissionSection.CE.electronicCity:
return CAGradientLayer.makeGradient(startPoint: startPoint, endPoint: endPoint, colors: [#colorLiteral(red: 0.2509803922, green: 0.2352941176, blue: 0.1960784314, alpha: 1), #colorLiteral(red: 0.8352941176, green: 0.7254901961, blue: 0.2235294118, alpha: 1)], locations: [0, 0.5, 1])
case MissionSection.CE.metropolis:
return CAGradientLayer.makeGradient(startPoint: startPoint, endPoint: endPoint, colors: [#colorLiteral(red: 0.9254901961, green: 0.6980392157, blue: 0.2509803922, alpha: 1), #colorLiteral(red: 0.6274509804, green: 0.4784313725, blue: 0.7450980392, alpha: 1)], locations: [0, 0.5, 1])
case MissionSection.Technika1.platinumMixing:
return CAGradientLayer.makeGradient(startPoint: startPoint, endPoint: endPoint, colors: [#colorLiteral(red: 0.09803921569, green: 0.1882352941, blue: 0.2980392157, alpha: 1), #colorLiteral(red: 0.5490196078, green: 0.6862745098, blue: 0.7921568627, alpha: 1)], locations: [0, 0.5, 1])
case MissionSection.Technika1.technicalMixing:
return CAGradientLayer.makeGradient(startPoint: startPoint, endPoint: endPoint, colors: [#colorLiteral(red: 0.4, green: 0.07450980392, blue: 0.3803921569, alpha: 1), #colorLiteral(red: 0.8705882353, green: 0.2039215686, blue: 0.6392156863, alpha: 1)], locations: [0, 0.5, 1])
case MissionSection.BS.stylishPerformance:
return CAGradientLayer.makeGradient(startPoint: startPoint, endPoint: endPoint, colors: [#colorLiteral(red: 0.3411764706, green: 0.6274509804, blue: 0.9215686275, alpha: 1), #colorLiteral(red: 0.09803921569, green: 0.262745098, blue: 0.6784313725, alpha: 1)], locations: [0, 0.5, 1])
case MissionSection.BS.absoluteSound:
return CAGradientLayer.makeGradient(startPoint: startPoint, endPoint: endPoint, colors: [#colorLiteral(red: 0.8588235294, green: 0.2078431373, blue: 0.5960784314, alpha: 1), #colorLiteral(red: 0.3960784314, green: 0.05490196078, blue: 0.1960784314, alpha: 1)], locations: [0, 0.5, 1])
case MissionSection.LinkDisk.whiteDisk:
return CAGradientLayer.makeGradient(startPoint: startPoint, endPoint: endPoint, colors: [#colorLiteral(red: 0.6549019608, green: 0.03529411765, blue: 0.06274509804, alpha: 1), #colorLiteral(red: 0.9333333333, green: 0.7960784314, blue: 0.8117647059, alpha: 1)], locations: [0, 0.5, 1])
case MissionSection.LinkDisk.blackDisk:
return CAGradientLayer.makeGradient(startPoint: startPoint, endPoint: endPoint, colors: [#colorLiteral(red: 0.1333333333, green: 0.1176470588, blue: 0.1098039216, alpha: 1), #colorLiteral(red: 0.5921568627, green: 0.5411764706, blue: 0.3843137255, alpha: 1)], locations: [0, 0.5, 1])
case MissionSection.Technika2.starMixing:
return CAGradientLayer.makeGradient(startPoint: startPoint, endPoint: endPoint, colors: [#colorLiteral(red: 0.537254902, green: 0.07058823529, blue: 0.5058823529, alpha: 1), #colorLiteral(red: 0.1058823529, green: 0.3882352941, blue: 0.6392156863, alpha: 1), #colorLiteral(red: 0.2470588235, green: 0.6588235294, blue: 0.1921568627, alpha: 1), #colorLiteral(red: 0.9333333333, green: 0.7333333333, blue: 0.1843137255, alpha: 1)], locations: [0, 0.25, 0.5, 0.75, 1])
case MissionSection.Technika2.clubMixing:
return CAGradientLayer.makeGradient(startPoint: startPoint, endPoint: endPoint, colors: [#colorLiteral(red: 0.07843137255, green: 0.2470588235, blue: 0.6705882353, alpha: 1), #colorLiteral(red: 0.9843137255, green: 0.7960784314, blue: 0.1882352941, alpha: 1)], locations: [0, 0.5, 1])
default:
return nil
}
}
}
49 changes: 49 additions & 0 deletions RespectU/Sources/Models/Persistence.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
//
// Persistence.swift
// RespectU
//
// Created by Presto on 13/03/2019.
// Copyright © 2019 Presto. All rights reserved.
//

import Foundation

struct Persistence {

static var favoriteButton: Button {
get {
let buttonString = UserDefaults.standard.string(forKey: "favoriteButton") ?? ""
return Button(rawValue: buttonString) ?? .button4
}
set {
UserDefaults.standard.do {
$0.set(newValue.rawValue, forKey: "favoriteButton")
$0.synchronize()
}
}
}

static var nickname: String {
get {
return UserDefaults.standard.string(forKey: "nickname") ?? L10n.nicknameSetting
}
set {
UserDefaults.standard.do {
$0.set(newValue, forKey: "nickname")
$0.synchronize()
}
}
}

static var numberOfLaunching: Int {
get {
return UserDefaults.standard.integer(forKey: "appOpenCount")
}
set {
UserDefaults.standard.do {
$0.set(newValue, forKey: "appOpenCount")
$0.synchronize()
}
}
}
}
Loading

0 comments on commit b0eaba2

Please sign in to comment.