private static void AddObstacleInfo(RawMessage message, Arena arena) { int obstacleCount = arena.obstacles.Count; int[] obstacleTypeIds = new int[obstacleCount]; int[] obstacleIds = new int[obstacleCount]; Vector3[] obstaclePositions = new Vector3[obstacleCount]; float[] obstacleHealths = new float[obstacleCount]; float[] obstacleRadiuses = new float[obstacleCount]; int[] obstacleSkinIds = new int[obstacleCount]; for (int i = 0; i < obstacleCount; i++) { Obstacle o = arena.obstacles[i]; obstacleTypeIds[i] = TypeIdGenerator.idsOfObstacles[o.GetType()]; obstacleIds[i] = o.id; obstaclePositions[i] = o.position; obstacleHealths[i] = o.health; obstacleRadiuses[i] = o.radius; obstacleSkinIds[i] = o.skinId; } message.putIntArray("obsTypes", obstacleTypeIds); message.putIntArray("obsIds", obstacleIds); message.PutVector3Array("obsPositions", obstaclePositions); message.putFloatArray("obsHealths", obstacleHealths); message.putFloatArray("obsRadiuses", obstacleRadiuses); message.putIntArray("obsSkins", obstacleSkinIds); }
public static void sendMessage(ICollection <Player> receiverPlayers, MutantEightLeggedMinion parentMinion, ICollection <MutantEightLeggedSpawningMinion> spawnedMinions, ICollection <Minion> deadMinions) { RawMessage msg = new RawMessage(); msg.putInt("id", TypeIdGenerator.getMessageId(typeof(GMinion_MutantEightLegged_spawn))); if (receiverPlayers != null && receiverPlayers.Count != 0) { msg.putInt("iid", parentMinion.instanceId); msg.putInt("c", spawnedMinions.Count); int[] sid = new int[spawnedMinions.Count]; for (int i = 0; i < spawnedMinions.Count; i++) { sid[i] = spawnedMinions.ElementAt(i).instanceId; } msg.putIntArray("sid", sid); int[] did = new int[deadMinions.Count]; for (int i = 0; i < deadMinions.Count; i++) { did[i] = deadMinions.ElementAt(i).instanceId; } msg.putIntArray("did", did); foreach (var receiverPlayer in receiverPlayers) { receiverPlayer.user.session.client.SendMessage(msg); } } }
public static void SendMessage(Arena arena) { RawMessage message = PrepareMessageFor(typeof(OM_RoundOver)); int[] deathOrder = new int[arena.roundStats.deathOrder.Count]; int[] finalScores = arena.roundStats.finalGolds; List <Player> deathOrderList = arena.roundStats.deathOrder; for (int i = 0; i < arena.roundStats.deathOrder.Count; i++) { deathOrder[i] = deathOrderList[i].id; } message.putInt("winnerCount", arena.roundStats.winnerCount); message.putIntArray("deathOrder", deathOrder); message.putIntArray("finals", finalScores); message.putIntArray("kills", arena.roundStats.kills); message.putIntArray("hits", arena.roundStats.hits); foreach (var p in arena.players) { p.user.client.SendMessage(message); } }
public static void SendMessage(Arena arena) { RawMessage message = PrepareMessageFor(typeof(OM_LoadingNextRoundStarted)); AddLandInfo(message, arena); AddObstacleInfo(message, arena); List <RawMessage> playerInfos = new List <RawMessage>(arena.players.Count); foreach (var p in arena.players) { RawMessage pMes = new RawMessage(); pMes.putInt("pId", p.id); pMes.PutVector3("pos", p.position); int[] skillTypeIds = new int[p.skills.Count]; for (int i = 0; i < skillTypeIds.Length; i++) { skillTypeIds[i] = TypeIdGenerator.idsOfSkills[p.skills[i].GetType()]; } pMes.putIntArray("skillTypeIds", skillTypeIds); playerInfos.Add(pMes); } message.putRawMessageArray("playerInfos", playerInfos.ToArray()); foreach (var player in arena.players) { player.user.client.SendMessage(message); } }
public static void sendMessage(ICollection <Player> receiverPlayers, Tower tower, ICollection <Minion> minionsToTeleport) { if (receiverPlayers != null && receiverPlayers.Count != 0) { RawMessage msg = new RawMessage(); msg.putInt("id", TypeIdGenerator.getMessageId(typeof(GTower_BlackHole_teleport))); msg.putInt("iid", tower.instanceId); int[] ids = new int[minionsToTeleport.Count]; int index = 0; foreach (var minion in minionsToTeleport) { ids[index++] = minion.instanceId; } msg.putIntArray("miid", ids); foreach (var receiverPlayer in receiverPlayers) { receiverPlayer.user.session.client.SendMessage(msg); } } }
public static void sendMessage(ICollection <Player> receiverPlayers, Minion minion, ICollection <Minion> otherMinions) { RawMessage msg = new RawMessage(); msg.putInt("id", TypeIdGenerator.getMessageId(typeof(GMinion_QuantumSoldier_teleport))); if (receiverPlayers != null && receiverPlayers.Count != 0) { msg.putInt("iid", minion.instanceId); msg.putFloat("ds", 1.3f); int [] minionInstanceIDs = new int[otherMinions.Count]; int index = 0; foreach (var minionTarget in otherMinions) { minionInstanceIDs[index++] = minionTarget.instanceId; } msg.putIntArray("mids", minionInstanceIDs); foreach (var receiverPlayer in receiverPlayers) { receiverPlayer.user.session.client.SendMessage(msg); } } }
private static void AddLandInfo(RawMessage message, Arena arena) { int height = arena.land.blocks.GetLength(0), width = arena.land.blocks.GetLength(1); int[] blockIds = new int[width * height]; int[] blockSkinIds = new int[width * height]; for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { blockIds[i * width + j] = (arena.land.blocks[i, j] == null ? -1 : TypeIdGenerator.idsOfBlocks[arena.land.blocks[i, j].GetType()]); blockSkinIds[i * width + j] = (arena.land.blocks[i, j] == null ? 0 : arena.land.blocks[i, j].skinId); } } message.putFloat("landWidth", arena.land.width); message.putFloat("landHeight", arena.land.height); message.putFloat("blockSize", arena.land.blockSize); message.putIntArray("blockTypeIds", blockIds); message.putIntArray("blockSkinIds", blockSkinIds); }
public static void sendMessage(ICollection <Player> recievers, StatTracker statTracker) { RawMessage bigMsg = new RawMessage(); bigMsg.putInt("id", TypeIdGenerator.getMessageId(typeof(GEndGameStatisticsResult))); bigMsg.putInt("c", statTracker.playerStatsList.Count); int[] playerIDs = new int[statTracker.playerStatsList.Count]; int [] minionsKilled = new int[statTracker.playerStatsList.Count]; int[] minionsSend = new int[statTracker.playerStatsList.Count]; int[] towersBuilt = new int[statTracker.playerStatsList.Count]; int[] missilesFired = new int[statTracker.playerStatsList.Count]; int[] minionsPassed = new int[statTracker.playerStatsList.Count]; float[] moneyEarned = new float[statTracker.playerStatsList.Count]; float[] moneySpend = new float[statTracker.playerStatsList.Count]; int[] cashs = new int[statTracker.playerStatsList.Count]; int[] incomes = new int[statTracker.playerStatsList.Count]; for (int i = 0; i < statTracker.playerStatsList.Count; i++) { playerIDs[i] = statTracker.playerStatsList[i].ownerPlayer.id; minionsKilled[i] = statTracker.playerStatsList[i].minionsKilled; minionsSend[i] = statTracker.playerStatsList[i].minionsSend; towersBuilt[i] = statTracker.playerStatsList[i].towersBuilt; missilesFired[i] = statTracker.playerStatsList[i].missilesFired; minionsPassed[i] = statTracker.playerStatsList[i].minionsPassed; moneyEarned[i] = statTracker.playerStatsList[i].moneyEarned; moneySpend[i] = statTracker.playerStatsList[i].moneySpend; cashs[i] = statTracker.playerStatsList[i].cash; incomes[i] = statTracker.playerStatsList[i].income; } bigMsg.putIntArray("pids", playerIDs); bigMsg.putIntArray("mk", minionsKilled); bigMsg.putIntArray("ms", minionsSend); bigMsg.putIntArray("tb", towersBuilt); bigMsg.putIntArray("mf", missilesFired); bigMsg.putIntArray("mp", minionsPassed); bigMsg.putFloatArray("mme", moneyEarned); bigMsg.putFloatArray("mms", moneySpend); bigMsg.putIntArray("cs", cashs); bigMsg.putIntArray("inc", incomes); foreach (Player p in recievers) { p.user.session.client.SendMessage(bigMsg); } }
public static void sendMessage(ICollection<Player> recievers , StatTracker statTracker) { RawMessage bigMsg = new RawMessage(); bigMsg.putInt("id", TypeIdGenerator.getMessageId(typeof(GEndGameStatisticsResult))); bigMsg.putInt("c",statTracker.playerStatsList.Count); int[] playerIDs = new int[statTracker.playerStatsList.Count]; int [] minionsKilled = new int[statTracker.playerStatsList.Count]; int[] minionsSend = new int[statTracker.playerStatsList.Count]; int[] towersBuilt = new int[statTracker.playerStatsList.Count]; int[] missilesFired = new int[statTracker.playerStatsList.Count]; int[] minionsPassed = new int[statTracker.playerStatsList.Count]; float[] moneyEarned = new float[statTracker.playerStatsList.Count]; float[] moneySpend = new float[statTracker.playerStatsList.Count]; int[] cashs = new int[statTracker.playerStatsList.Count]; int[] incomes = new int[statTracker.playerStatsList.Count]; for(int i = 0; i < statTracker.playerStatsList.Count; i++) { playerIDs[i] = statTracker.playerStatsList[i].ownerPlayer.id; minionsKilled[i] = statTracker.playerStatsList[i].minionsKilled; minionsSend[i] = statTracker.playerStatsList[i].minionsSend; towersBuilt[i] = statTracker.playerStatsList[i].towersBuilt; missilesFired[i] = statTracker.playerStatsList[i].missilesFired; minionsPassed[i] = statTracker.playerStatsList[i].minionsPassed; moneyEarned[i] = statTracker.playerStatsList[i].moneyEarned; moneySpend[i] = statTracker.playerStatsList[i].moneySpend; cashs[i] = statTracker.playerStatsList[i].cash; incomes[i] = statTracker.playerStatsList[i].income; } bigMsg.putIntArray("pids", playerIDs); bigMsg.putIntArray("mk",minionsKilled); bigMsg.putIntArray("ms", minionsSend); bigMsg.putIntArray("tb", towersBuilt); bigMsg.putIntArray("mf", missilesFired); bigMsg.putIntArray("mp", minionsPassed); bigMsg.putFloatArray("mme", moneyEarned); bigMsg.putFloatArray("mms", moneySpend); bigMsg.putIntArray("cs", cashs); bigMsg.putIntArray("inc",incomes); foreach (Player p in recievers) { p.user.session.client.SendMessage(bigMsg); } }
public static void sendMessage(ICollection<Player> receiverPlayers, MutantEightLeggedMinion parentMinion, ICollection<MutantEightLeggedSpawningMinion> spawnedMinions, ICollection<Minion> deadMinions ) { RawMessage msg = new RawMessage(); msg.putInt("id", TypeIdGenerator.getMessageId(typeof(GMinion_MutantEightLegged_spawn))); if (receiverPlayers != null && receiverPlayers.Count != 0) { msg.putInt("iid", parentMinion.instanceId); msg.putInt("c", spawnedMinions.Count); int[] sid = new int[spawnedMinions.Count]; for(int i=0; i< spawnedMinions.Count; i++) sid[i] = spawnedMinions.ElementAt(i).instanceId; msg.putIntArray("sid", sid); int[] did = new int[deadMinions.Count]; for (int i = 0; i < deadMinions.Count; i++) did[i] = deadMinions.ElementAt(i).instanceId; msg.putIntArray("did",did); foreach (var receiverPlayer in receiverPlayers) receiverPlayer.user.session.client.SendMessage(msg); } }
public static void sendMessage(ICollection<Player> receiverPlayers,Tower tower, ICollection<Minion> minionsToTeleport) { if (receiverPlayers != null && receiverPlayers.Count != 0) { RawMessage msg = new RawMessage(); msg.putInt("id", TypeIdGenerator.getMessageId(typeof(GTower_BlackHole_teleport))); msg.putInt("iid", tower.instanceId); int[] ids = new int[minionsToTeleport.Count]; int index = 0; foreach(var minion in minionsToTeleport) ids[index++] = minion.instanceId; msg.putIntArray("miid", ids); foreach (var receiverPlayer in receiverPlayers) receiverPlayer.user.session.client.SendMessage(msg); } }
public static void sendMessage(ICollection<Player> receiverPlayers, Minion minion, ICollection<Minion> otherMinions) { RawMessage msg = new RawMessage(); msg.putInt("id", TypeIdGenerator.getMessageId(typeof(GMinion_QuantumSoldier_teleport))); if (receiverPlayers != null && receiverPlayers.Count != 0) { msg.putInt("iid", minion.instanceId); msg.putFloat("ds", 1.3f); int [] minionInstanceIDs = new int[otherMinions.Count]; int index = 0; foreach (var minionTarget in otherMinions) { minionInstanceIDs[index++] = minionTarget.instanceId; } msg.putIntArray("mids", minionInstanceIDs); foreach (var receiverPlayer in receiverPlayers) receiverPlayer.user.session.client.SendMessage(msg); } }
public static void SendMessage(Arena arena) { RawMessage message = PrepareMessageFor(typeof(OM_LoadingStateStarted)); int[] userIds = new int[arena.players.Count]; string[] usernames = new string[userIds.Length]; int[] playerIds = new int[userIds.Length]; Vector3[] positions = new Vector3[playerIds.Length]; for (int i = 0; i < arena.players.Count; i++) { userIds[i] = arena.players[i].user.id; usernames[i] = arena.players[i].user.username; playerIds[i] = arena.players[i].id; positions[i] = arena.players[i].position; } int height = arena.land.blocks.GetLength(0), width = arena.land.blocks.GetLength(1); int[] blockIds = new int[width * height]; int[] blockSkinIds = new int[width * height]; for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { blockIds[i * width + j] = (arena.land.blocks[i, j] == null?-1:TypeIdGenerator.idsOfBlocks[arena.land.blocks[i, j].GetType()]); blockSkinIds[i * width + j] = (arena.land.blocks[i, j] == null?0:arena.land.blocks[i, j].skinId); } } int obstacleCount = arena.obstacles.Count; int[] obstacleTypeIds = new int[obstacleCount]; int[] obstacleIds = new int[obstacleCount]; Vector3[] obstaclePositions = new Vector3[obstacleCount]; float[] obstacleHealths = new float[obstacleCount]; float[] obstacleRadiuses = new float[obstacleCount]; int[] obstacleSkinIds = new int[obstacleCount]; for (int i = 0; i < obstacleCount; i++) { Obstacle o = arena.obstacles[i]; obstacleTypeIds[i] = TypeIdGenerator.idsOfObstacles[o.GetType()]; obstacleIds[i] = o.id; obstaclePositions[i] = o.position; obstacleHealths[i] = o.health; obstacleRadiuses[i] = o.radius; obstacleSkinIds[i] = o.skinId; } message.putIntArray("userIds", userIds); message.putUTF8StringArray("usernames", usernames); message.putIntArray("playerIds", playerIds); message.PutVector3Array("positions", positions); message.putFloat("landWidth", arena.land.width); message.putFloat("landHeight", arena.land.height); message.putFloat("blockSize", arena.land.blockSize); message.putIntArray("blockTypeIds", blockIds); message.putIntArray("blockSkinIds", blockSkinIds); message.putIntArray("obsTypes", obstacleTypeIds); message.putIntArray("obsIds", obstacleIds); message.PutVector3Array("obsPositions", obstaclePositions); message.putFloatArray("obsHealths", obstacleHealths); message.putFloatArray("obsRadiuses", obstacleRadiuses); message.putIntArray("obsSkins", obstacleSkinIds); foreach (var p in arena.players) { p.user.client.SendMessage(message); } }