FIXME solved by extending the TeamComponent behavior
This commit is contained in:
parent
604001a365
commit
458d50e4b3
@ -23,20 +23,29 @@ class TeamComponent: GKComponent {
|
||||
fire.particleColorSequence = nil
|
||||
fire.particleColorBlendFactor = 1.0
|
||||
|
||||
switch team {
|
||||
case .team1: fire.particleColor = SKColor.red
|
||||
case .team2: fire.particleColor = SKColor.purple
|
||||
case .team3: fire.particleColor = SKColor.green
|
||||
case .team4: fire.particleColor = SKColor.gray
|
||||
}
|
||||
|
||||
self.team = team
|
||||
self.player = player
|
||||
super.init()
|
||||
fire.particleColor = getColor(by: team)
|
||||
}
|
||||
|
||||
required init?(coder aDecoder: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
|
||||
func getColor(by team: Team) -> SKColor {
|
||||
switch team {
|
||||
case .team1: return SKColor.red
|
||||
case .team2: return SKColor.purple
|
||||
case .team3: return SKColor.green
|
||||
case .team4: return SKColor.gray
|
||||
}
|
||||
}
|
||||
|
||||
func change(to team: Team, to player: GKPlayer) -> Void {
|
||||
self.team = team
|
||||
self.player = player
|
||||
self.fire.particleColor = getColor(by: team)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -119,9 +119,9 @@ class EntityManager {
|
||||
let base = (entity as! Base)
|
||||
|
||||
if base.changeOwnership {
|
||||
//FIX-ME: Find a way to update the Component without deleting it upfront
|
||||
//TODO: outsource component handling to a generic function
|
||||
//base.removeComponent(ofType: TeamComponent.self)
|
||||
if (entity.component(ofType: TeamComponent.self) != nil) {
|
||||
entity.component(ofType: TeamComponent.self)!.change(to: (entities[0] as! Base).component(ofType: TeamComponent.self)!.team, to: (entities[0] as! Base).component(ofType: TeamComponent.self)!.player)
|
||||
} else {
|
||||
base.addComponent(TeamComponent(
|
||||
team: (entities[0] as! Base).component(ofType: TeamComponent.self)!.team,
|
||||
player: (entities[0] as! Base).component(ofType: TeamComponent.self)!.player,
|
||||
@ -131,6 +131,7 @@ class EntityManager {
|
||||
if let fire = entity.component(ofType: TeamComponent.self)?.fire{
|
||||
scene.addChild(fire)
|
||||
}
|
||||
}
|
||||
base.changeOwnership = false
|
||||
}
|
||||
}
|
||||
@ -150,9 +151,9 @@ class EntityManager {
|
||||
if getOwnerBySnapBase != nil {
|
||||
base.changeOwnership = true
|
||||
base.ownershipPlayer = getOwnerBySnapBase
|
||||
//FIX-ME: Find a way to update the Component without deleting it upfront
|
||||
//TODO: outsource component handling to a generic function
|
||||
//entity.removeComponent(ofType: TeamComponent.self)
|
||||
if (entity.component(ofType: TeamComponent.self) != nil) {
|
||||
entity.component(ofType: TeamComponent.self)!.change(to: getTeamByPlayer(playerName: snapBase.ownership!), to: getOwnerBySnapBase!)
|
||||
} else {
|
||||
entity.addComponent(TeamComponent(
|
||||
team: getTeamByPlayer(playerName: snapBase.ownership!),
|
||||
player: getOwnerBySnapBase!,
|
||||
@ -165,6 +166,7 @@ class EntityManager {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func getSnapshotBaseById(baseId: Int, snapshotModel: SnapshotModel) -> BaseEntityModel{
|
||||
return snapshotModel.baseEntites.filter { $0.baseId == baseId }[0]
|
||||
|
Loading…
Reference in New Issue
Block a user