software-projekt-2-gold-wars/GoldWars/GoldWars/Map/TwoPlayerDefaultTestMap.swift
2020-05-09 17:57:22 +02:00

85 lines
2.8 KiB
Swift

//
// DefaultTestMap.swift
// GoldWars
//
// Created by Marcel Schwarz on 02.05.20.
// Copyright © 2020 SP2. All rights reserved.
//
import Foundation
import SpriteKit
import GameKit
class TwoPlayerDefaultTestMap: MapProtocol {
var entityManager: EntityManager!
var size: CGSize!
required init(scene: SKScene, entityManager: EntityManager) {
self.entityManager = entityManager;
self.size = scene.size
}
func load() {
// Create Bases
let basePlayerOne = Base(
position: CGPoint(x: self.size.width * 0.1, y: self.size.height / 2),
// ToDo: not final version. Better would be something like MatchmakingHelper.spieler1 but does not work yet
player: GKLocalPlayer.local,
team: .team1
)
let column1 = [
Base(position: CGPoint(x: self.size.width * 0.25, y: self.size.height * 0.25)),
Base(position: CGPoint(x: self.size.width * 0.25, y: self.size.height * 0.5)),
Base(position: CGPoint(x: self.size.width * 0.25, y: self.size.height * 0.75))
]
let column2 = [
Base(position: CGPoint(x: self.size.width * 0.5, y: self.size.height * 0.333)),
Base(position: CGPoint(x: self.size.width * 0.5, y: self.size.height * 0.666))
]
let column3 = [
Base(position: CGPoint(x: self.size.width * 0.75, y: self.size.height * 0.25)),
Base(position: CGPoint(x: self.size.width * 0.75, y: self.size.height * 0.5)),
Base(position: CGPoint(x: self.size.width * 0.75, y: self.size.height * 0.75))
]
let basePlayerTwo = Base(
position: CGPoint(x: self.size.width * 0.9, y: self.size.height / 2),
team: .team2
)
// Create adjacency Mapping
basePlayerOne.adjacencyList.append(contentsOf: column1)
column1.forEach({currBase in
currBase.adjacencyList.append(contentsOf: column2)
currBase.adjacencyList.append(basePlayerOne)
})
column2.forEach({currBase in
currBase.adjacencyList.append(contentsOf: column3)
currBase.adjacencyList.append(contentsOf: column1)
})
column3.forEach({currBase in
currBase.adjacencyList.append(basePlayerTwo)
currBase.adjacencyList.append(contentsOf: column3)
})
basePlayerTwo.adjacencyList.append(contentsOf: column3)
// Register bases with the EntityManager
entityManager.add(basePlayerOne)
column1.forEach({base in entityManager.add(base)})
column2.forEach({base in entityManager.add(base)})
column3.forEach({base in entityManager.add(base)})
entityManager.add(basePlayerTwo)
}
}