-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
27 changed files
with
1,234 additions
and
46 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
3 changes: 3 additions & 0 deletions
3
game-server/src/main/kotlin/work/fking/pangya/game/model/Coord.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
package work.fking.pangya.game.model | ||
|
||
data class Coord(val x: Float, val z: Float) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
15 changes: 15 additions & 0 deletions
15
...tlin/work/fking/pangya/game/packet/handler/match/MatchFinishPlayerPreviewPacketHandler.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
package work.fking.pangya.game.packet.handler.match | ||
|
||
import io.netty.buffer.ByteBuf | ||
import work.fking.pangya.game.GameServer | ||
import work.fking.pangya.game.net.ClientPacketHandler | ||
import work.fking.pangya.game.player.Player | ||
import work.fking.pangya.game.room.match.PlayerFinishedPreviewEvent | ||
|
||
class MatchFinishPlayerPreviewPacketHandler : ClientPacketHandler { | ||
override fun handle(server: GameServer, player: Player, packet: ByteBuf) { | ||
val room = player.currentRoom ?: throw IllegalStateException("Player ${player.nickname} started a hole but is not in a room") | ||
val roomPlayer = room.findSelf(player) | ||
room.handleMatchEvent(PlayerFinishedPreviewEvent(roomPlayer)) | ||
} | ||
} |
39 changes: 39 additions & 0 deletions
39
...rc/main/kotlin/work/fking/pangya/game/packet/handler/match/MatchHoleStartPacketHandler.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
package work.fking.pangya.game.packet.handler.match | ||
|
||
import io.netty.buffer.ByteBuf | ||
import work.fking.pangya.game.GameServer | ||
import work.fking.pangya.game.model.Coord | ||
import work.fking.pangya.game.net.ClientPacketHandler | ||
import work.fking.pangya.game.player.Player | ||
import work.fking.pangya.game.room.match.PlayerHoleStartEvent | ||
|
||
class MatchHoleStartPacketHandler : ClientPacketHandler { | ||
override fun handle(server: GameServer, player: Player, packet: ByteBuf) { | ||
val room = player.currentRoom ?: throw IllegalStateException("Player ${player.nickname} started a hole but is not in a room") | ||
val roomPlayer = room.findSelf(player) | ||
|
||
val hole = packet.readUnsignedByte() | ||
val unknown1 = packet.readIntLE() | ||
val unknown2 = packet.readIntLE() | ||
val par = packet.readByte() | ||
val teeCoord = Coord(packet.readFloatLE(), packet.readFloatLE()) | ||
val holeCoord = Coord(packet.readFloatLE(), packet.readFloatLE()) | ||
|
||
|
||
room.handleMatchEvent(PlayerHoleStartEvent( | ||
player = roomPlayer, | ||
hole = hole.toInt(), | ||
par = par.toInt(), | ||
teeCoord = teeCoord, | ||
holeCoord = holeCoord | ||
)) | ||
// roomPlayer.finishedHole = false | ||
// println("${player.nickname} hole start") | ||
// | ||
// player.write(MatchReplies.gameHoleWeather()) | ||
// player.write(MatchReplies.gameHoleWind()) | ||
// player.write(MatchReplies.gamePlayerStartHole(player)) | ||
// player.flush() | ||
} | ||
} | ||
|
15 changes: 15 additions & 0 deletions
15
.../kotlin/work/fking/pangya/game/packet/handler/match/MatchPlayerHoleFinishPacketHandler.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
package work.fking.pangya.game.packet.handler.match | ||
|
||
import io.netty.buffer.ByteBuf | ||
import work.fking.pangya.game.GameServer | ||
import work.fking.pangya.game.net.ClientPacketHandler | ||
import work.fking.pangya.game.player.Player | ||
import work.fking.pangya.game.room.match.PlayerHoleFinishEvent | ||
|
||
class MatchPlayerHoleFinishPacketHandler : ClientPacketHandler { | ||
override fun handle(server: GameServer, player: Player, packet: ByteBuf) { | ||
val room = player.currentRoom ?: throw IllegalStateException("Player ${player.nickname} finished a hole but is not in a room") | ||
val roomPlayer = room.findSelf(player) | ||
room.handleMatchEvent(PlayerHoleFinishEvent(roomPlayer)) | ||
} | ||
} |
16 changes: 16 additions & 0 deletions
16
...n/kotlin/work/fking/pangya/game/packet/handler/match/MatchPlayerRotateAimPacketHandler.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
package work.fking.pangya.game.packet.handler.match | ||
|
||
import io.netty.buffer.ByteBuf | ||
import work.fking.pangya.game.GameServer | ||
import work.fking.pangya.game.net.ClientPacketHandler | ||
import work.fking.pangya.game.player.Player | ||
import work.fking.pangya.game.room.match.PlayerRotateEvent | ||
|
||
class MatchPlayerRotateAimPacketHandler : ClientPacketHandler { | ||
override fun handle(server: GameServer, player: Player, packet: ByteBuf) { | ||
val room = player.currentRoom ?: throw IllegalStateException("Player ${player.nickname} finished a hole but is not in a room") | ||
val roomPlayer = room.findSelf(player) | ||
val rotation = packet.readFloatLE() | ||
room.handleMatchEvent(PlayerRotateEvent(roomPlayer, rotation)) | ||
} | ||
} |
43 changes: 43 additions & 0 deletions
43
.../kotlin/work/fking/pangya/game/packet/handler/match/MatchPlayerShotCommitPacketHandler.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
package work.fking.pangya.game.packet.handler.match | ||
|
||
import io.netty.buffer.ByteBuf | ||
import work.fking.pangya.game.GameServer | ||
import work.fking.pangya.game.net.ClientPacketHandler | ||
import work.fking.pangya.game.player.Player | ||
import work.fking.pangya.game.room.match.PlayerShotCommitEvent | ||
import work.fking.pangya.game.room.match.ShotData | ||
|
||
class MatchPlayerShotCommitPacketHandler : ClientPacketHandler { | ||
override fun handle(server: GameServer, player: Player, packet: ByteBuf) { | ||
val room = player.currentRoom ?: throw IllegalStateException("Player ${player.nickname} finished a hole but is not in a room") | ||
val roomPlayer = room.findSelf(player) | ||
|
||
val shotType = packet.readShortLE().toInt() | ||
|
||
if (shotType == 1) { // ?? | ||
val bytes = ByteArray(9) | ||
packet.readBytes(bytes) | ||
println(bytes.contentToString()) | ||
} | ||
val shotData = ShotData( | ||
maxClick = packet.readFloatLE(), | ||
minClick = packet.readFloatLE(), | ||
curve = packet.readFloatLE(), | ||
spin = packet.readFloatLE(), | ||
accuracy = packet.readUnsignedByte().toInt(), | ||
special = packet.readIntLE(), | ||
frame = packet.readIntLE(), | ||
shotAngle = packet.readFloatLE(), | ||
shotTime = packet.readIntLE(), | ||
center = packet.readFloatLE(), | ||
clubIndex = packet.readUnsignedByte().toInt(), | ||
randomPower = packet.readFloatLE(), | ||
randomAngle = packet.readFloatLE(), | ||
impactWidth = packet.readFloatLE(), | ||
windPower = packet.readFloatLE(), | ||
windDirection = packet.readFloatLE() | ||
) | ||
room.handleMatchEvent(PlayerShotCommitEvent(roomPlayer, shotData)) | ||
} | ||
} | ||
|
18 changes: 18 additions & 0 deletions
18
...n/kotlin/work/fking/pangya/game/packet/handler/match/MatchPlayerShotStartPacketHandler.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
package work.fking.pangya.game.packet.handler.match | ||
|
||
import io.netty.buffer.ByteBuf | ||
import work.fking.pangya.game.GameServer | ||
import work.fking.pangya.game.net.ClientPacketHandler | ||
import work.fking.pangya.game.player.Player | ||
import work.fking.pangya.game.room.match.PlayerShotStartEvent | ||
|
||
class MatchPlayerShotStartPacketHandler : ClientPacketHandler { | ||
override fun handle(server: GameServer, player: Player, packet: ByteBuf) { | ||
val room = player.currentRoom ?: throw IllegalStateException("Player ${player.nickname} finished a hole but is not in a room") | ||
val roomPlayer = room.findSelf(player) | ||
// 0 = idle, 1 = going up, 2 = going down | ||
val state = packet.readUnsignedByte() | ||
val click = packet.readFloatLE() | ||
room.handleMatchEvent(PlayerShotStartEvent(roomPlayer)) | ||
} | ||
} |
17 changes: 17 additions & 0 deletions
17
...ain/kotlin/work/fking/pangya/game/packet/handler/match/MatchPlayerTurnEndPacketHandler.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
package work.fking.pangya.game.packet.handler.match | ||
|
||
import io.netty.buffer.ByteBuf | ||
import work.fking.pangya.game.GameServer | ||
import work.fking.pangya.game.net.ClientPacketHandler | ||
import work.fking.pangya.game.player.Player | ||
import work.fking.pangya.game.room.match.PlayerTurnEndEvent | ||
|
||
class MatchPlayerTurnEndPacketHandler : ClientPacketHandler { | ||
override fun handle(server: GameServer, player: Player, packet: ByteBuf) { | ||
val room = player.currentRoom ?: throw IllegalStateException("Player ${player.nickname} finished it's turn but is not in a room") | ||
val roomPlayer = room.findSelf(player) | ||
|
||
room.handleMatchEvent(PlayerTurnEndEvent(roomPlayer)) | ||
|
||
} | ||
} |
13 changes: 13 additions & 0 deletions
13
...ver/src/main/kotlin/work/fking/pangya/game/packet/handler/match/StartGamePacketHandler.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
package work.fking.pangya.game.packet.handler.match | ||
|
||
import io.netty.buffer.ByteBuf | ||
import work.fking.pangya.game.GameServer | ||
import work.fking.pangya.game.net.ClientPacketHandler | ||
import work.fking.pangya.game.player.Player | ||
|
||
class StartGamePacketHandler : ClientPacketHandler { | ||
override fun handle(server: GameServer, player: Player, packet: ByteBuf) { | ||
val room = player.currentRoom ?: throw IllegalStateException("Player ${player.nickname} tried to start a game without being in a room") | ||
room.startGame() | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.