forked from SteamWar/SteamWar
Merge branch 'main' into TNTLeague/BiggerCoins
This commit is contained in:
@@ -62,8 +62,8 @@ object TNTLeagueGame {
|
||||
|
||||
var gameTimeRemaining: Int = TNTLeagueConfig.config.gameTime
|
||||
|
||||
val blueTeam = TNTLeagueTeam(TNTLeagueWorldConfig.blueTeam, TNTLeagueTeam.Team.BLUE)
|
||||
val redTeam = TNTLeagueTeam(TNTLeagueWorldConfig.redTeam, TNTLeagueTeam.Team.RED)
|
||||
val blueTeam = TNTLeagueTeam(TNTLeagueConfig.config.blueTeam)
|
||||
val redTeam = TNTLeagueTeam(TNTLeagueConfig.config.redTeam)
|
||||
|
||||
private lateinit var start: Timestamp
|
||||
|
||||
@@ -160,10 +160,18 @@ object TNTLeagueGame {
|
||||
|
||||
fun getTeam(player: Player) = if (player in blueTeam.members) blueTeam else if (player in redTeam.members) redTeam else null
|
||||
|
||||
fun getFreeTeam(player: Player) = if (blueTeam.leader == null && (TNTLeagueConfig.config.blueLeader == null || player.uniqueId == TNTLeagueConfig.config.blueLeader)) blueTeam
|
||||
fun getFreeTeam(player: Player) = if (TNTLeagueConfig.isEvent()) getEventFreeTeam(player) else getNormalFreeTeam(player)
|
||||
|
||||
private fun getNormalFreeTeam(player: Player) = if (blueTeam.leader == null && (TNTLeagueConfig.config.blueLeader == null || player.uniqueId == TNTLeagueConfig.config.blueLeader)) blueTeam
|
||||
else if (redTeam.leader == null && TNTLeagueConfig.config.redLeader == null || player.uniqueId == TNTLeagueConfig.config.redLeader) redTeam
|
||||
else null
|
||||
|
||||
private fun getEventFreeTeam(player: Player) = SteamwarUser.get(player.uniqueId).let { user ->
|
||||
if (user.team == TNTLeagueConfig.config.eventTeamBlue.teamId && blueTeam.members.size < TNTLeagueConfig.config.event.maximumTeamMembers) blueTeam
|
||||
else if (user.team == TNTLeagueConfig.config.eventTeamRed.teamId && redTeam.members.size < TNTLeagueConfig.config.event.maximumTeamMembers) redTeam
|
||||
else null
|
||||
}
|
||||
|
||||
fun checkStart() {
|
||||
if (blueTeam.isReady && redTeam.isReady) {
|
||||
blueTeam.leader?.inventory?.clear()
|
||||
@@ -213,18 +221,26 @@ object TNTLeagueGame {
|
||||
fun win(tntLeagueTeam: TNTLeagueTeam, reason: WinReason) {
|
||||
if (state != GameState.RUNNING) return
|
||||
end()
|
||||
plugin.server.onlinePlayers.forEach { message.send("TEAM_WIN", it, SubMessage(tntLeagueTeam.name)) }
|
||||
plugin.server.onlinePlayers.forEach { message.send("TEAM_WIN", it, tntLeagueTeam.name) }
|
||||
explode(tntLeagueTeam.opposite)
|
||||
|
||||
if (TNTLeagueConfig.isEvent()) {
|
||||
TNTLeagueConfig.config.eventFight.ergebnis = tntLeagueTeam.ergebnisInt
|
||||
}
|
||||
}
|
||||
|
||||
fun draw(reason: WinReason) {
|
||||
if (state != GameState.RUNNING) return
|
||||
end()
|
||||
message.broadcast("DRAW")
|
||||
|
||||
if (TNTLeagueConfig.isEvent()) {
|
||||
TNTLeagueConfig.config.eventFight.ergebnis = 3
|
||||
}
|
||||
}
|
||||
|
||||
fun explode(team: TNTLeagueTeam) {
|
||||
Area(team.config.spawnLocation.clone().add(20.0, 30.0, 20.0), team.config.spawnLocation.clone().subtract(20.0, 0.0, 20.0).add(0.0, 30.0, 0.0))
|
||||
Area(team.config.worldConfig.spawnLocation.clone().add(20.0, 30.0, 20.0), team.config.worldConfig.spawnLocation.clone().subtract(20.0, 0.0, 20.0).add(0.0, 30.0, 0.0))
|
||||
.locations
|
||||
.filterIndexed { index, _ -> index % 7 == 0 }
|
||||
.forEachIndexed { index, location ->
|
||||
@@ -239,8 +255,8 @@ object TNTLeagueGame {
|
||||
plugin.server.worlds.first().name,
|
||||
"TNTLeague",
|
||||
"",
|
||||
blueTeam.name.colorByTeam(blueTeam),
|
||||
redTeam.name.colorByTeam(redTeam),
|
||||
blueTeam.name.message.colorByTeam(blueTeam),
|
||||
redTeam.name.message.colorByTeam(redTeam),
|
||||
state.lobbyName,
|
||||
TNTLeagueConfig.config.gameTime - gameTimeRemaining,
|
||||
blueTeam.leader?.let { SteamwarUser.get(it.uniqueId).id } ?: 0,
|
||||
|
||||
Reference in New Issue
Block a user