import UIKit
import CoreData

class ImportForestGuardians: ImportProtocol {
var moc: NSManagedObjectContext

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

func importDIM() {
// MARK: - DIM
let dim = addDIM(name: "Forest Guardians", franchise: "Digimon", imageName: "ForestGuardians-Header", dimType: "Vital Bracelet BE", id: "133", eggImage: "ForestGuardians-Egg", dimImage: "ForestGuardians-DIM", adventureIcon: "ForestGuardians-Adventure")

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

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

// MARK: - Stage 3
let fanbeemon = addDigimon(name: "FanBeemon", dim: dim, stage: 3, imageName: "fanbeemon", imageNameSplash: "fanbeemon-splash", type: virus, activityType: "Active", characterID: 4)
let lalamon = addDigimon(name: "Lalamon", dim: dim, stage: 3, imageName: "lalamon", imageNameSplash: "lalamon-splash", type: data, activityType: "Active", characterID: 3)
let morphomon = addDigimon(name: "Morphomon", dim: dim, stage: 3, imageName: "morphomon", imageNameSplash: "morphomon-splash", type: vaccine, activityType: "Normal", adventureMode: true, adventureStage: 2, characterID: 19)
let tentomon = addDigimon(name: "Tentomon", dim: dim, stage: 3, imageName: "tentomon", imageNameSplash: "tentomon-splash", type: vaccine, activityType: "Normal", characterID: 2)

// MARK: - Stage 4
let hudiemon = addDigimon(name: "Hudiemon", dim: dim, stage: 4, imageName: "hudiemon", imageNameSplash: "hudiemon-splash", type: free, activityType: "Indoor", adventureMode: true, adventureStage: 5, characterID: 20)
let kabuterimon = addDigimon(name: "Kabuterimon", dim: dim, stage: 4, imageName: "kabuterimon", imageNameSplash: "kabuterimon-splash", type: vaccine, activityType: "Normal", characterID: 5)
let kuwagamon = addDigimon(name: "Kuwagamon", dim: dim, stage: 4, imageName: "kuwagamon", imageNameSplash: "kuwagamon-splash", type: virus, activityType: "Indoor", characterID: 8)
let sunflowmon = addDigimon(name: "Sunflowmon", dim: dim, stage: 4, imageName: "sunflowmon", imageNameSplash: "sunflowmon-splash", type: data, activityType: "Normal", characterID: 6)
let waspmon = addDigimon(name: "Waspmon", dim: dim, stage: 4, imageName: "waspmon", imageNameSplash: "waspmon-splash", type: virus, activityType: "Active", characterID: 7)

// MARK: - Stage 5
let cannonbeemon = addDigimon(name: "CannonBeemon", dim: dim, stage: 5, imageName: "cannonbeemon", imageNameSplash: "cannonbeemon-splash", type: virus, activityType: "Active", characterID: 11)
let eosmon_ultimate = addDigimon(name: "Eosmon (Ultimate)", dim: dim, stage: 5, imageName: "eosmon_ultimate", imageNameSplash: "eosmon_ultimate-splash", type: free, activityType: "Normal", adventureMode: true, adventureStage: 8, characterID: 21)
let lilamon = addDigimon(name: "Lilamon", dim: dim, stage: 5, imageName: "lilamon", imageNameSplash: "lilamon-splash", type: data, activityType: "Active", characterID: 10)
let megakabuterimon_red = addDigimon(name: "MegaKabuterimon (Red)", dim: dim, stage: 5, imageName: "megakabuterimon_red", imageNameSplash: "megakabuterimon_red-splash", type: vaccine, activityType: "Normal", characterID: 9)
let okuwamon = addDigimon(name: "Okuwamon", dim: dim, stage: 5, imageName: "okuwamon", imageNameSplash: "okuwamon-splash", type: virus, activityType: "Indoor", characterID: 12)

// MARK: - Stage 6
let bancholillymon = addDigimon(name: "BanchoLillymon", dim: dim, stage: 6, imageName: "bancholillymon", imageNameSplash: "bancholillymon-splash", type: virus, activityType: "Active", adventureMode: true, adventureStage: 12, characterID: 22)
let grankuwagamon = addDigimon(name: "GranKuwagamon", dim: dim, stage: 6, imageName: "grankuwagamon", imageNameSplash: "grankuwagamon-splash", type: free, activityType: "Active", characterID: 16)
let herculeskabuterimon = addDigimon(name: "HerculesKabuterimon", dim: dim, stage: 6, imageName: "herculeskabuterimon", imageNameSplash: "herculeskabuterimon-splash", type: vaccine, activityType: "Normal", characterID: 13)
let rosemon = addDigimon(name: "Rosemon", dim: dim, stage: 6, imageName: "rosemon", imageNameSplash: "rosemon-splash", type: data, activityType: "Active", characterID: 14)
let rosemon_burst_mode = addDigimon(name: "Rosemon: Burst Mode", dim: dim, stage: 6, imageName: "rosemon_burst_mode", imageNameSplash: "rosemon_burst_mode-splash", type: data, activityType: "Active", adventureMode: true, adventureStage: 11, characterID: 18)
let tigervespamon = addDigimon(name: "TigerVespamon", dim: dim, stage: 6, imageName: "tigervespamon", imageNameSplash: "tigervespamon-splash", type: virus, activityType: "Active", characterID: 15)

// MARK: - Stage 7
let tyrantkabuterimon = addDigimon(name: "TyrantKabuterimon", dim: dim, stage: 7, imageName: "tyrantkabuterimon", imageNameSplash: "tyrantkabuterimon-splash", type: virus, activityType: "Indoor", characterID: 17)

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

// MARK: - Stage 2 to 3
addEvolution(from: motimon, to: fanbeemon, minutes: evo3Hours)
addEvolution(from: motimon, to: lalamon, trophies: 5, vitalValues: 500, minutes: evo3Hours)
addEvolution(from: motimon, to: morphomon, trophies: 5, vitalValues: 1000, minutes: evo3Hours)
addEvolution(from: motimon, to: tentomon, trophies: 3, vitalValues: 500, minutes: evo3Hours)

// MARK: - Stage 3 to 4
addEvolution(from: lalamon, to: hudiemon, trophies: 12, vitalValues: 1500, battles: 10, minutes: evo12Hours)
addEvolution(from: morphomon, to: hudiemon, trophies: 12, vitalValues: 1500, battles: 10, minutes: evo12Hours)
addEvolution(from: tentomon, to: kabuterimon, trophies: 8, vitalValues: 1000, battles: 5, minutes: evo12Hours)
addEvolution(from: fanbeemon, to: kabuterimon, trophies: 8, vitalValues: 1000, battles: 5, minutes: evo12Hours)
addEvolution(from: tentomon, to: kuwagamon, minutes: evo12Hours)
addEvolution(from: fanbeemon, to: kuwagamon, minutes: evo12Hours)
addEvolution(from: tentomon, to: sunflowmon, trophies: 10, vitalValues: 1000, battles: 8, minutes: evo12Hours)
addEvolution(from: lalamon, to: sunflowmon, trophies: 10, vitalValues: 1000, battles: 8, minutes: evo12Hours)
addEvolution(from: fanbeemon, to: waspmon, trophies: 5, vitalValues: 1000, battles: 3, minutes: evo12Hours)
addEvolution(from: morphomon, to: waspmon, trophies: 5, vitalValues: 1000, battles: 3, minutes: evo12Hours)
addEvolution(from: lalamon, to: waspmon, trophies: 5, vitalValues: 1000, battles: 3, minutes: evo12Hours)

// MARK: - Stage 4 to 5
addEvolution(from: hudiemon, to: cannonbeemon, trophies: 10, vitalValues: 2000, battles: 10, winRatio: 50, minutes: evo24Hours)
addEvolution(from: sunflowmon, to: cannonbeemon, trophies: 10, vitalValues: 2000, battles: 10, winRatio: 50, minutes: evo24Hours)
addEvolution(from: waspmon, to: cannonbeemon, trophies: 10, vitalValues: 2000, battles: 10, winRatio: 50, minutes: evo24Hours)
addEvolution(from: kuwagamon, to: cannonbeemon, trophies: 10, vitalValues: 2000, battles: 10, winRatio: 50, minutes: evo24Hours)
addEvolution(from: sunflowmon, to: eosmon_ultimate, trophies: 12, vitalValues: 3000, battles: 15, winRatio: 60, minutes: evo24Hours)
addEvolution(from: hudiemon, to: eosmon_ultimate, trophies: 12, vitalValues: 3000, battles: 15, winRatio: 60, minutes: evo24Hours)
addEvolution(from: kabuterimon, to: lilamon, trophies: 12, vitalValues: 2500, battles: 15, winRatio: 50, minutes: evo24Hours)
addEvolution(from: sunflowmon, to: lilamon, trophies: 12, vitalValues: 2500, battles: 15, winRatio: 50, minutes: evo24Hours)
addEvolution(from: waspmon, to: megakabuterimon_red, trophies: 12, vitalValues: 2500, battles: 12, winRatio: 50, minutes: evo24Hours)
addEvolution(from: kabuterimon, to: megakabuterimon_red, trophies: 10, vitalValues: 2500, battles: 12, winRatio: 50, minutes: evo24Hours)
addEvolution(from: waspmon, to: okuwamon, trophies: 8, vitalValues: 2000, battles: 10, winRatio: 40, minutes: evo24Hours)
addEvolution(from: kuwagamon, to: okuwamon, trophies: 8, vitalValues: 2000, battles: 10, winRatio: 40, minutes: evo24Hours)

// MARK: - Stage 5 to 6
addEvolution(from: eosmon_ultimate, to: bancholillymon, trophies: 35, vitalValues: 3500, battles: 20, winRatio: 60, minutes: evo24Hours)
addEvolution(from: lilamon, to: bancholillymon, trophies: 30, vitalValues: 3500, battles: 20, winRatio: 60, minutes: evo24Hours)
addEvolution(from: okuwamon, to: grankuwagamon, trophies: 20, vitalValues: 2500, battles: 15, winRatio: 50, minutes: evo24Hours)
addEvolution(from: cannonbeemon, to: grankuwagamon, trophies: 20, vitalValues: 2500, battles: 15, winRatio: 50, minutes: evo24Hours)
addEvolution(from: cannonbeemon, to: herculeskabuterimon, trophies: 30, vitalValues: 3000, battles: 15, winRatio: 60, minutes: evo24Hours)
addEvolution(from: megakabuterimon_red, to: herculeskabuterimon, trophies: 30, vitalValues: 3000, battles: 15, winRatio: 60, minutes: evo24Hours)
addEvolution(from: lilamon, to: rosemon, trophies: 25, vitalValues: 3500, battles: 20, winRatio: 60, minutes: evo24Hours)
addEvolution(from: megakabuterimon_red, to: rosemon, trophies: 30, vitalValues: 3500, battles: 20, winRatio: 60, minutes: evo24Hours)
addEvolution(from: lilamon, to: rosemon_burst_mode, trophies: 35, vitalValues: 3500, battles: 20, winRatio: 70, minutes: evo24Hours)
addEvolution(from: cannonbeemon, to: tigervespamon, trophies: 25, vitalValues: 3000, battles: 15, winRatio: 50, minutes: evo24Hours)
addEvolution(from: okuwamon, to: tigervespamon, trophies: 25, vitalValues: 3000, battles: 15, winRatio: 50, minutes: evo24Hours)
addEvolution(from: eosmon_ultimate, to: tigervespamon, trophies: 25, vitalValues: 3000, battles: 15, winRatio: 50, minutes: evo24Hours)

// MARK: - Stage 6 to 7
addEvolution(from: herculeskabuterimon, to: tyrantkabuterimon, isJogress: true, jogressCharacterID: 16, minutes: evo3Hours)
addEvolution(from: grankuwagamon, to: tyrantkabuterimon, isJogress: true, jogressCharacterID: 13, minutes: evo3Hours)

// MARK: - Adventure Mode
addAdventureMode(stage : 1, steps: 500, digimon : fanbeemon, dim : dim)
addAdventureMode(stage : 2, steps: 500, digimon : morphomon, unlock : true, dim : dim)
addAdventureMode(stage : 3, steps: 1000, digimon : waspmon, dim : dim)
addAdventureMode(stage : 4, steps: 1000, digimon : kuwagamon, dim : dim)
addAdventureMode(stage : 5, steps: 1000, digimon : hudiemon, unlock : true, dim : dim)
addAdventureMode(stage : 6, steps: 1500, digimon : cannonbeemon, dim : dim)
addAdventureMode(stage : 7, steps: 1500, digimon : okuwamon, dim : dim)
addAdventureMode(stage : 8, steps: 1500, digimon : eosmon_ultimate, unlock : true, dim : dim)
addAdventureMode(stage : 9, steps: 1500, digimon : tigervespamon, dim : dim)
addAdventureMode(stage : 10, steps: 1500, digimon : grankuwagamon, dim : dim)
addAdventureMode(stage : 11, steps: 2000, digimon : rosemon_burst_mode, unlock : true, dim : dim)
addAdventureMode(stage : 12, steps: 2500, digimon : bancholillymon, unlock : true, dim : dim)
}
}