import UIKit
import CoreData

class ImportPulseCity: ImportProtocol {
var moc: NSManagedObjectContext

required init(viewContext: NSManagedObjectContext) {
moc = viewContext
}

func importDIM() {
// MARK: - DIM
let dim = addDIM(name: "Pulse City", franchise: "Digimon", imageName: "PulseCity-Header", dimType: "Vital Bracelet/Hero", id: "0", eggImage: "PulseCity-Egg", dimImage: "PulseCity-DIM")

// MARK: - Digimon
// MARK: - Stage 1
let dokimon = addDigimon(name: "Dokimon", dim: dim, stage: 1, imageName: "dokimon", imageNameSplash: "dokimon-splash", type: free, activityType: "Normal", characterID: 0)

// MARK: - Stage 2
let bibimon = addDigimon(name: "Bibimon", dim: dim, stage: 2, imageName: "bibimon", imageNameSplash: "bibimon-splash", type: free, activityType: "Normal", characterID: 1)

// MARK: - Stage 3
let pulsemon = addDigimon(name: "Pulsemon", dim: dim, stage: 3, imageName: "pulsemon", imageNameSplash: "pulsemon-splash", type: vaccine, activityType: "Active", characterID: 2)

// MARK: - Stage 4
let bulkmon = addDigimon(name: "Bulkmon", dim: dim, stage: 4, imageName: "bulkmon", imageNameSplash: "bulkmon-splash", type: vaccine, activityType: "Stotic", characterID: 3)
let exermon = addDigimon(name: "Exermon", dim: dim, stage: 4, imageName: "exermon", imageNameSplash: "exermon-splash", type: data, activityType: "Indoor", characterID: 4)
let namakemon = addDigimon(name: "Namakemon", dim: dim, stage: 4, imageName: "namakemon", imageNameSplash: "namakemon-splash", type: virus, activityType: "Lazy", characterID: 6)
let runnermon = addDigimon(name: "Runnermon", dim: dim, stage: 4, imageName: "runnermon", imageNameSplash: "runnermon-splash", type: virus, activityType: "Active", characterID: 5)

// MARK: - Stage 5
let boutmon = addDigimon(name: "Boutmon", dim: dim, stage: 5, imageName: "boutmon", imageNameSplash: "boutmon-splash", type: vaccine, activityType: "Stotic", characterID: 7)
let climbmon = addDigimon(name: "Climbmon", dim: dim, stage: 5, imageName: "climbmon", imageNameSplash: "climbmon-splash", type: virus, activityType: "Indoor", characterID: 11)
let divemon = addDigimon(name: "Divemon", dim: dim, stage: 5, imageName: "divemon", imageNameSplash: "divemon-splash", type: data, activityType: "Normal", characterID: 9)
let pistmon = addDigimon(name: "Pistmon", dim: dim, stage: 5, imageName: "pistmon", imageNameSplash: "pistmon-splash", type: virus, activityType: "Normal", characterID: 12)
let shootmon = addDigimon(name: "Shootmon", dim: dim, stage: 5, imageName: "shootmon", imageNameSplash: "shootmon-splash", type: vaccine, activityType: "Active", characterID: 8)
let tempomon = addDigimon(name: "Tempomon", dim: dim, stage: 5, imageName: "tempomon", imageNameSplash: "tempomon-splash", type: data, activityType: "Active", characterID: 10)

// MARK: - Stage 6
let achillesmon = addDigimon(name: "Achillesmon", dim: dim, stage: 6, imageName: "achillesmon", imageNameSplash: "achillesmon-splash", type: virus, activityType: "Active", characterID: 15)
let kazuchimon = addDigimon(name: "Kazuchimon", dim: dim, stage: 6, imageName: "kazuchimon", imageNameSplash: "kazuchimon-splash", type: vaccine, activityType: "Normal", characterID: 13)
let shivamon = addDigimon(name: "Shivamon", dim: dim, stage: 6, imageName: "shivamon", imageNameSplash: "shivamon-splash", type: data, activityType: "Indoor", characterID: 14)
let shroudmon = addDigimon(name: "Shroudmon", dim: dim, stage: 6, imageName: "shroudmon", imageNameSplash: "shroudmon-splash", type: virus, activityType: "Stotic", adventureMode: true, adventureStage: 15, characterID: 16)

// MARK: - Evolutions
// MARK: - Stage 1 to 2
addEvolution(from: dokimon, to: bibimon, minutes: evo1Hour)

// MARK: - Stage 2 to 3
addEvolution(from: bibimon, to: pulsemon, minutes: evo3Hours)

// MARK: - Stage 3 to 4
addEvolution(from: pulsemon, to: bulkmon, trophies: 8, vitalValues: 1200, battles: 8, minutes: evo16Hours)
addEvolution(from: pulsemon, to: exermon, trophies: 3, vitalValues: 500, minutes: evo16Hours)
addEvolution(from: pulsemon, to: namakemon, minutes: evo16Hours)
addEvolution(from: pulsemon, to: runnermon, trophies: 5, vitalValues: 800, battles: 3, minutes: evo16Hours)

// MARK: - Stage 4 to 5
addEvolution(from: bulkmon, to: boutmon, trophies: 12, vitalValues: 3000, battles: 15, winRatio: 70, minutes: evo24Hours)
addEvolution(from: runnermon, to: boutmon, trophies: 12, vitalValues: 3000, battles: 15, winRatio: 70, minutes: evo24Hours)
addEvolution(from: bulkmon, to: climbmon, trophies: 6, vitalValues: 2000, battles: 10, winRatio: 50, minutes: evo24Hours)
addEvolution(from: namakemon, to: climbmon, trophies: 6, vitalValues: 2000, battles: 10, winRatio: 50, minutes: evo24Hours)
addEvolution(from: bulkmon, to: divemon, trophies: 10, vitalValues: 2500, battles: 10, winRatio: 50, minutes: evo24Hours)
addEvolution(from: runnermon, to: divemon, trophies: 10, vitalValues: 2500, battles: 10, winRatio: 50, minutes: evo24Hours)
addEvolution(from: exermon, to: pistmon, trophies: 6, vitalValues: 2000, battles: 10, winRatio: 50, minutes: evo24Hours)
addEvolution(from: runnermon, to: pistmon, trophies: 6, vitalValues: 2000, battles: 10, winRatio: 50, minutes: evo24Hours)
addEvolution(from: namakemon, to: shootmon, trophies: 12, vitalValues: 3000, battles: 15, winRatio: 70, minutes: evo24Hours)
addEvolution(from: exermon, to: shootmon, trophies: 12, vitalValues: 3000, battles: 15, winRatio: 70, minutes: evo24Hours)
addEvolution(from: exermon, to: tempomon, trophies: 10, vitalValues: 2500, battles: 10, winRatio: 50, minutes: evo24Hours)
addEvolution(from: namakemon, to: tempomon, trophies: 10, vitalValues: 2500, battles: 10, winRatio: 50, minutes: evo24Hours)

// MARK: - Stage 5 to 6
addEvolution(from: shootmon, to: achillesmon, trophies: 10, vitalValues: 4500, battles: 15, winRatio: 50, minutes: evo24Hours)
addEvolution(from: tempomon, to: achillesmon, trophies: 10, vitalValues: 4500, battles: 15, winRatio: 50, minutes: evo24Hours)
addEvolution(from: pistmon, to: achillesmon, trophies: 10, vitalValues: 4500, battles: 15, winRatio: 50, minutes: evo24Hours)
addEvolution(from: boutmon, to: kazuchimon, trophies: 20, vitalValues: 5000, battles: 20, winRatio: 70, minutes: evo24Hours)
addEvolution(from: tempomon, to: kazuchimon, trophies: 20, vitalValues: 5000, battles: 20, winRatio: 70, minutes: evo24Hours)
addEvolution(from: pistmon, to: kazuchimon, trophies: 20, vitalValues: 5000, battles: 20, winRatio: 70, minutes: evo24Hours)
addEvolution(from: shootmon, to: shivamon, trophies: 15, vitalValues: 4500, battles: 15, winRatio: 70, minutes: evo24Hours)
addEvolution(from: divemon, to: shivamon, trophies: 15, vitalValues: 4500, battles: 15, winRatio: 70, minutes: evo24Hours)
addEvolution(from: climbmon, to: shivamon, trophies: 15, vitalValues: 4500, battles: 15, winRatio: 70, minutes: evo24Hours)
addEvolution(from: boutmon, to: shroudmon, trophies: 20, vitalValues: 7000, battles: 25, winRatio: 70, minutes: evo24Hours)
addEvolution(from: divemon, to: shroudmon, trophies: 20, vitalValues: 7000, battles: 25, winRatio: 70, minutes: evo24Hours)
addEvolution(from: climbmon, to: shroudmon, trophies: 20, vitalValues: 7000, battles: 25, winRatio: 70, minutes: evo24Hours)

// MARK: - Adventure Mode
addAdventureMode(stage : 1, steps: 500, digimon : pulsemon, dim : dim)
addAdventureMode(stage : 2, steps: 1000, digimon : namakemon, dim : dim)
addAdventureMode(stage : 3, steps: 1000, digimon : runnermon, dim : dim)
addAdventureMode(stage : 4, steps: 1000, digimon : exermon, dim : dim)
addAdventureMode(stage : 5, steps: 1000, digimon : bulkmon, dim : dim)
addAdventureMode(stage : 6, steps: 1500, digimon : pistmon, dim : dim)
addAdventureMode(stage : 7, steps: 1500, digimon : shootmon, dim : dim)
addAdventureMode(stage : 8, steps: 1500, digimon : tempomon, dim : dim)
addAdventureMode(stage : 9, steps: 1500, digimon : divemon, dim : dim)
addAdventureMode(stage : 10, steps: 1500, digimon : climbmon, dim : dim)
addAdventureMode(stage : 11, steps: 1500, digimon : boutmon, dim : dim)
addAdventureMode(stage : 12, steps: 2000, digimon : achillesmon, dim : dim)
addAdventureMode(stage : 13, steps: 2000, digimon : shivamon, dim : dim)
addAdventureMode(stage : 14, steps: 2000, digimon : kazuchimon, dim : dim)
addAdventureMode(stage : 15, steps: 2500, digimon : shroudmon, unlock : true, dim : dim)
}
}