private void SynHandleRoomCommand(string[] number, int startIndex, int count) { int msgType = int.Parse(number[startIndex++]); int player = int.Parse(number[startIndex++]); count++; if (msgType == 0) { RoomMenuLogic._instance.ReceiveNewIncomer(player); } else if (msgType == 1) { RoomMenuLogic._instance.SetPlayerReady(player); } else if (msgType == 2) { int character = int.Parse(number[startIndex++]); RoomMenuLogic._instance.SetPlayerCharacter(player, character); } else if (msgType == 3) { int map = int.Parse(number[startIndex++]); RoomMenuLogic._instance.SetMap(map); } else if (msgType == 4) { RoomMenuLogic._instance.SetPlayerQuit(player); } else if (msgType == 5) { RoomMenuLogic._instance.SetPlayerNoReady(player); } else if (msgType == 6) { Vector2 positionToSet = new Vector2(float.Parse(number[startIndex++]), float.Parse(number[startIndex++])); int dirCount = int.Parse(number[startIndex++]); switch (player) { case 1: pm1.SetNextPosition(positionToSet); pm1.SetDirection(dirCount); break; case 2: pm2.SetNextPosition(positionToSet); pm2.SetDirection(dirCount); break; case 3: pm3.SetNextPosition(positionToSet); pm3.SetDirection(dirCount); break; } } else if (msgType == 7) { Vector2 positionToSet = new Vector2(float.Parse(number[startIndex++]), float.Parse(number[startIndex++])); switch (player) { case 1: pa1.SetFireCommand(positionToSet); break; case 2: pa2.SetFireCommand(positionToSet); break; case 3: pa3.SetFireCommand(positionToSet); break; } } else if (msgType == 8) { float hpChange = float.Parse(number[startIndex++]); switch (player) { case 1: ps1.hpChange = hpChange; break; case 2: ps2.hpChange = hpChange; break; case 3: ps3.hpChange = hpChange; break; } } else if (msgType == 9) { PlayerStatusControl_Level3._instance.playerReady[player - 1] = true; } else if (msgType == 10) { switch (PlayerStatusControl_Level3._instance.playerIdentity) { case 1: pm1.starTeleport = true; pm1.starRemain = 6f; break; case 2: pm2.starTeleport = true; pm2.starRemain = 6f; break; case 3: pm3.starTeleport = true; pm3.starRemain = 6f; break; } } /* * else if(msgType == 11) * { * Vector2 positionToSet = new Vector2(float.Parse(number[startIndex++]),float.Parse(number[startIndex++])); * int dirCount = int.Parse(number[startIndex++]); * int fire = int.Parse(number[startIndex++]); * Vector2 firePositionToSet = new Vector2(float.Parse(number[startIndex++]),float.Parse(number[startIndex++])); * float hp = float.Parse(number[startIndex++]); * int teleport = int.Parse(number[startIndex]); * switch(player) * { * case 1: * pm1.SetNextPosition(positionToSet); * pm1.SetDirection(dirCount); * break; * case 2: * pm2.SetNextPosition(positionToSet); * pm2.SetDirection(dirCount); * break; * case 3: * pm3.SetNextPosition(positionToSet); * pm3.SetDirection(dirCount); * break; * } * if(fire > 0) * { * switch(player) * { * case 1: * pa1.SetFireCommand(firePositionToSet); * break; * case 2: * pa2.SetFireCommand(firePositionToSet); * break; * case 3: * pa3.SetFireCommand(firePositionToSet); * break; * } * } * switch(player) * { * case 1: * ps1.UpdateHp(hp); * break; * case 2: * ps2.UpdateHp(hp); * break; * case 3: * ps3.UpdateHp(hp); * break; * } * if(teleport > 0) * { * switch(PlayerStatusControl_Level3._instance.playerIdentity) * { * case 1: * pm1.starTeleport = true; * pm1.starRemain = 6f; * break; * case 2: * pm2.starTeleport = true; * pm2.starRemain = 6f; * break; * case 3: * pm3.starTeleport = true; * pm3.starRemain = 6f; * break; * } * } * * } */ else if (msgType == 999) { RoomMenuLogic._instance.gameStart = true; } if (startIndex < number.Length && count < 3) { SynHandleRoomCommand(number, startIndex, count); } }
void HandleSynMessage(string[] number, int startIndex) { int msgType = int.Parse(number[startIndex++]); int player = int.Parse(number[startIndex++]); if (msgType == 0) { Vector2 positionToSet = new Vector2(float.Parse(number[startIndex++]), float.Parse(number[startIndex++])); int dirCount = int.Parse(number[startIndex++]); switch (player) { case 1: if (PlayerStatusControl_Level3._instance.playerIdentity != 1) { pm1.SetNextPosition(positionToSet); pm1.SetDirection(dirCount); } break; case 2: if (PlayerStatusControl_Level3._instance.playerIdentity != 2) { pm2.SetNextPosition(positionToSet); pm2.SetDirection(dirCount); } break; case 3: if (PlayerStatusControl_Level3._instance.playerIdentity != 3) { pm3.SetNextPosition(positionToSet); pm3.SetDirection(dirCount); } break; } if (number.Length > startIndex) { HandleSynMessage(number, startIndex); } } else if (msgType == 1) { Vector2 positionToSet = new Vector2(float.Parse(number[startIndex++]), float.Parse(number[startIndex++])); switch (player) { case 1: pa1.SetFireCommand(positionToSet); break; case 2: pa2.SetFireCommand(positionToSet); break; case 3: pa3.SetFireCommand(positionToSet); break; } if (number.Length > startIndex) { HandleSynMessage(number, startIndex); } } else if (msgType == 2) { float hpChange = float.Parse(number[startIndex++]); switch (player) { case 1: ps1.hpChange = hpChange; break; case 2: ps2.hpChange = hpChange; break; case 3: ps3.hpChange = hpChange; break; } if (number.Length > startIndex) { HandleSynMessage(number, startIndex); } } }