private void Awake() { phaseType = "StartPhase"; pathfinding = GetComponent <PathFinding>(); grid = GetComponent <GridController>(); turretSpawn = GetComponent <TurretSpawn>(); enemySpawn = GetComponent <EnemySpawn>(); BPM = GetComponent <BPM>(); }
public void NotifyTurretSpawn(int userId, ILaneTurret turret) { var turretSpawn = new TurretSpawn(turret); _packetHandlerManager.SendPacket(userId, turretSpawn, Channel.CHL_S2C); }
public override bool HandlePacket(Peer peer, byte[] data) { var start = new StatePacket2(PacketCmd.PKT_S2C_StartSpawn); _game.PacketHandlerManager.sendPacket(peer, start, Channel.CHL_S2C); _logger.LogCoreInfo("Spawning map"); int playerId = 0; foreach (var p in _playerManager.GetPlayers()) { var spawn = new HeroSpawn(p.Item2, playerId++); _game.PacketHandlerManager.sendPacket(peer, spawn, Channel.CHL_S2C); var info = new AvatarInfo(p.Item2); _game.PacketHandlerManager.sendPacket(peer, info, Channel.CHL_S2C); } var peerInfo = _playerManager.GetPeerInfo(peer); var bluePill = _itemManager.GetItemType(_game.Map.MapGameScript.BluePillId); var itemInstance = peerInfo.Champion.getInventory().SetExtraItem(7, bluePill); var buyItem = new BuyItemResponse(peerInfo.Champion, itemInstance); _game.PacketHandlerManager.sendPacket(peer, buyItem, Channel.CHL_S2C); // Runes byte runeItemSlot = 14; foreach (var rune in peerInfo.Champion.RuneList._runes) { var runeItem = _itemManager.GetItemType(rune.Value); var newRune = peerInfo.Champion.getInventory().SetExtraItem(runeItemSlot, runeItem); _playerManager.GetPeerInfo(peer).Champion.GetStats().AddModifier(runeItem); runeItemSlot++; } // Not sure why both 7 and 14 skill slot, but it does not seem to work without it var skillUp = new SkillUpResponse(peerInfo.Champion.NetId, 7, 1, (byte)peerInfo.Champion.getSkillPoints()); _game.PacketHandlerManager.sendPacket(peer, skillUp, Channel.CHL_GAMEPLAY); skillUp = new SkillUpResponse(peerInfo.Champion.NetId, 14, 1, (byte)peerInfo.Champion.getSkillPoints()); _game.PacketHandlerManager.sendPacket(peer, skillUp, Channel.CHL_GAMEPLAY); peerInfo.Champion.GetStats().setSpellEnabled(7, true); peerInfo.Champion.GetStats().setSpellEnabled(14, true); peerInfo.Champion.GetStats().setSummonerSpellEnabled(0, true); peerInfo.Champion.GetStats().setSummonerSpellEnabled(1, true); var objects = _game.ObjectManager.GetObjects(); foreach (var kv in objects) { if (kv.Value is LaneTurret) { var turret = kv.Value as LaneTurret; var turretSpawn = new TurretSpawn(turret); _game.PacketHandlerManager.sendPacket(peer, turretSpawn, Channel.CHL_S2C); // Fog Of War var fogOfWarPacket = new FogUpdate2(turret, _networkIdManager); _game.PacketHandlerManager.broadcastPacketTeam(turret.Team, fogOfWarPacket, Channel.CHL_S2C); // To suppress game HP-related errors for enemy turrets out of vision var setHealthPacket = new SetHealth(turret); _game.PacketHandlerManager.sendPacket(peer, setHealthPacket, Channel.CHL_S2C); foreach (var item in turret.Inventory) { if (item == null) { continue; } _game.PacketNotifier.NotifyItemBought(turret, item as Item); } continue; } else if (kv.Value is LevelProp) { var levelProp = kv.Value as LevelProp; var levelPropSpawnPacket = new LevelPropSpawn(levelProp); _game.PacketHandlerManager.sendPacket(peer, levelPropSpawnPacket, Channel.CHL_S2C); continue; } else if (kv.Value is Champion) { var champion = kv.Value as Champion; if (champion.IsVisibleByTeam(peerInfo.Champion.Team)) { var enterVisionPacket = new EnterVisionAgain(champion); _game.PacketHandlerManager.sendPacket(peer, enterVisionPacket, Channel.CHL_S2C); } } else if (kv.Value is Inhibitor || kv.Value is Nexus) { var inhibtor = kv.Value as AttackableUnit; var minionSpawnPacket = new MinionSpawn2(inhibtor.NetId); _game.PacketHandlerManager.sendPacket(peer, minionSpawnPacket, Channel.CHL_S2C); var setHealthPacket = new SetHealth(inhibtor.NetId); _game.PacketHandlerManager.sendPacket(peer, setHealthPacket, Channel.CHL_S2C); continue; } else if (kv.Value is Projectile) { var projectile = kv.Value as Projectile; if (projectile.IsVisibleByTeam(peerInfo.Champion.Team)) { var spawnProjectilePacket = new SpawnProjectile(projectile); _game.PacketHandlerManager.sendPacket(peer, spawnProjectilePacket, Channel.CHL_S2C); } continue; } else { _logger.LogCoreWarning("Object of type: " + kv.Value.GetType() + " not handled in HandleSpawn."); } } // TODO shop map specific? // Level props are just models, we need button-object minions to allow the client to interact with it if (peerInfo != null && peerInfo.Team == TeamId.TEAM_BLUE) { // Shop (blue team) var minionSpawnPacket = new MinionSpawn2(0xff10c6db); _game.PacketHandlerManager.sendPacket(peer, minionSpawnPacket, Channel.CHL_S2C); var setHealthPacket = new SetHealth(0xff10c6db); _game.PacketHandlerManager.sendPacket(peer, setHealthPacket, Channel.CHL_S2C); } else if (peerInfo != null && peerInfo.Team == TeamId.TEAM_PURPLE) { // Shop (purple team) var minionSpawnPacket = new MinionSpawn2(0xffa6170e); _game.PacketHandlerManager.sendPacket(peer, minionSpawnPacket, Channel.CHL_S2C); var setHealthPacket = new SetHealth(0xffa6170e); _game.PacketHandlerManager.sendPacket(peer, setHealthPacket, Channel.CHL_S2C); } var endSpawnPacket = new StatePacket(PacketCmd.PKT_S2C_EndSpawn); return(_game.PacketHandlerManager.sendPacket(peer, endSpawnPacket, Channel.CHL_S2C)); }
public unsafe bool HandlePacket(ENetPeer *peer, byte[] data, Game game) { var start = new StatePacket2(PacketCmdS2C.PKT_S2C_StartSpawn); bool p1 = PacketHandlerManager.getInstace().sendPacket(peer, start, Channel.CHL_S2C); Logger.LogCoreInfo("Spawning map"); int playerId = 0; ClientInfo playerInfo = null; foreach (var p in game.getPlayers()) { if (p.Item2.getPeer() == peer) { playerInfo = p.Item2; } var spawn = new HeroSpawn(p.Item2, playerId++); PacketHandlerManager.getInstace().sendPacket(peer, spawn, Channel.CHL_S2C); var info = new PlayerInfo(p.Item2); PacketHandlerManager.getInstace().sendPacket(peer, info, Channel.CHL_S2C); p.Item2.getChampion().getStats().setSummonerSpellEnabled(0, true); p.Item2.getChampion().getStats().setSummonerSpellEnabled(1, true); // TODO: Recall slot } var objects = game.getMap().getObjects(); foreach (var kv in objects) { var t = kv.Value as Turret; if (t != null) { var turretSpawn = new TurretSpawn(t); PacketHandlerManager.getInstace().sendPacket(peer, turretSpawn, Channel.CHL_S2C); // To suppress game HP-related errors for enemy turrets out of vision var sh = new SetHealth(t); PacketHandlerManager.getInstace().sendPacket(peer, sh, Channel.CHL_S2C); continue; } var lp = kv.Value as LevelProp; if (lp != null) { var lpsPacket = new SpawnParticle.LevelPropSpawn(lp); PacketHandlerManager.getInstace().sendPacket(peer, lpsPacket, Channel.CHL_S2C); } } // Level props are just models, we need button-object minions to allow the client to interact with it //if (playerInfo != null && playerInfo.getTeam() == TeamId.TEAM_BLUE) { // Shop (blue team) var ms1 = new MinionSpawn2(0xff10c6db); PacketHandlerManager.getInstace().sendPacket(peer, ms1, Channel.CHL_S2C); var sh1 = new SetHealth2(0xff10c6db); PacketHandlerManager.getInstace().sendPacket(peer, sh1, Channel.CHL_S2C); // Vision for hardcoded objects // Top inhib var ms2 = new MinionSpawn2(0xffd23c3e); PacketHandlerManager.getInstace().sendPacket(peer, ms2, Channel.CHL_S2C); var sh2 = new SetHealth2(0xffd23c3e); PacketHandlerManager.getInstace().sendPacket(peer, sh2, Channel.CHL_S2C); // Mid inhib var ms3 = new MinionSpawn2(0xff4a20f1); PacketHandlerManager.getInstace().sendPacket(peer, ms3, Channel.CHL_S2C); var sh3 = new SetHealth2(0xff4a20f1); PacketHandlerManager.getInstace().sendPacket(peer, sh3, Channel.CHL_S2C); // Bottom inhib var ms4 = new MinionSpawn2(0xff9303e1); PacketHandlerManager.getInstace().sendPacket(peer, ms4, Channel.CHL_S2C); var sh4 = new SetHealth2(0xff9303e1); PacketHandlerManager.getInstace().sendPacket(peer, sh4, Channel.CHL_S2C); // Nexus var ms5 = new MinionSpawn2(0xfff97db5); PacketHandlerManager.getInstace().sendPacket(peer, ms5, Channel.CHL_S2C); var sh5 = new SetHealth2(0xfff97db5); PacketHandlerManager.getInstace().sendPacket(peer, sh5, Channel.CHL_S2C); } // else if (playerInfo != null && playerInfo.getTeam() == TeamId.TEAM_PURPLE) { // Shop (purple team) var ms1 = new MinionSpawn2(0xffa6170e); PacketHandlerManager.getInstace().sendPacket(peer, ms1, Channel.CHL_S2C); var sh1 = new SetHealth2(0xffa6170e); PacketHandlerManager.getInstace().sendPacket(peer, sh1, Channel.CHL_S2C); // Vision for hardcoded objects // Top inhib var ms2 = new MinionSpawn2(0xff6793d0); PacketHandlerManager.getInstace().sendPacket(peer, ms2, Channel.CHL_S2C); var sh2 = new SetHealth2(0xff6793d0); PacketHandlerManager.getInstace().sendPacket(peer, sh2, Channel.CHL_S2C); // Mid inhib var ms3 = new MinionSpawn2(0xffff8f1f); PacketHandlerManager.getInstace().sendPacket(peer, ms3, Channel.CHL_S2C); var sh3 = new SetHealth2(0xffff8f1f); PacketHandlerManager.getInstace().sendPacket(peer, sh3, Channel.CHL_S2C); // Bottom inhib var ms4 = new MinionSpawn2(0xff26ac0f); PacketHandlerManager.getInstace().sendPacket(peer, ms4, Channel.CHL_S2C); var sh4 = new SetHealth2(0xff26ac0f); PacketHandlerManager.getInstace().sendPacket(peer, sh4, Channel.CHL_S2C); // Nexus var ms5 = new MinionSpawn2(0xfff02c0f); PacketHandlerManager.getInstace().sendPacket(peer, ms5, Channel.CHL_S2C); var sh5 = new SetHealth2(0xfff02c0f); PacketHandlerManager.getInstace().sendPacket(peer, sh5, Channel.CHL_S2C); } var end = new StatePacket(PacketCmdS2C.PKT_S2C_EndSpawn); bool p2 = PacketHandlerManager.getInstace().sendPacket(peer, end, Channel.CHL_S2C); return(p1 && p2); }
public bool HandlePacket(Peer peer, byte[] data) { var start = new StatePacket2(PacketCmdS2C.PKT_S2C_StartSpawn); _game.PacketHandlerManager.sendPacket(peer, start, Channel.CHL_S2C); _logger.LogCoreInfo("Spawning map"); int playerId = 0; foreach (var p in _playerManager.GetPlayers()) { var spawn = new HeroSpawn(p.Item2, playerId++); _game.PacketHandlerManager.sendPacket(peer, spawn, Channel.CHL_S2C); var info = new PlayerInfo(p.Item2); _game.PacketHandlerManager.sendPacket(peer, info, Channel.CHL_S2C); } var peerInfo = _playerManager.GetPeerInfo(peer); var bluePill = _itemManager.GetItemType(_game.Map.GetBluePillId()); var itemInstance = peerInfo.Champion.getInventory().SetExtraItem(7, bluePill); var buyItem = new BuyItemAns(peerInfo.Champion, itemInstance); _game.PacketHandlerManager.sendPacket(peer, buyItem, Channel.CHL_S2C); // Runes byte runeItemSlot = 14; foreach (var rune in peerInfo.Champion.RuneList._runes) { var runeItem = _itemManager.GetItemType(rune.Value); var newRune = peerInfo.Champion.getInventory().SetExtraItem(runeItemSlot, runeItem); _playerManager.GetPeerInfo(peer).Champion.GetStats().AddBuff(runeItem); runeItemSlot++; } // Not sure why both 7 and 14 skill slot, but it does not seem to work without it var skillUp = new SkillUpPacket(peerInfo.Champion.NetId, 7, 1, (byte)peerInfo.Champion.getSkillPoints()); _game.PacketHandlerManager.sendPacket(peer, skillUp, Channel.CHL_GAMEPLAY); skillUp = new SkillUpPacket(peerInfo.Champion.NetId, 14, 1, (byte)peerInfo.Champion.getSkillPoints()); _game.PacketHandlerManager.sendPacket(peer, skillUp, Channel.CHL_GAMEPLAY); peerInfo.Champion.GetStats().setSpellEnabled(7, true); peerInfo.Champion.GetStats().setSpellEnabled(14, true); peerInfo.Champion.GetStats().setSummonerSpellEnabled(0, true); peerInfo.Champion.GetStats().setSummonerSpellEnabled(1, true); var objects = _game.Map.GetObjects(); foreach (var kv in objects) { if (kv.Value is LaneTurret) { var t = kv.Value as LaneTurret; var turretSpawn = new TurretSpawn(t); _game.PacketHandlerManager.sendPacket(peer, turretSpawn, Channel.CHL_S2C); // Fog Of War var fow = new FogUpdate2(t); _game.PacketHandlerManager.broadcastPacketTeam(t.Team, fow, Channel.CHL_S2C); // To suppress game HP-related errors for enemy turrets out of vision var sh = new SetHealth(t); _game.PacketHandlerManager.sendPacket(peer, sh, Channel.CHL_S2C); foreach (var item in t.Inventory) { if (item == null) { continue; } _game.PacketNotifier.notifyItemBought(t, item as Item); } continue; } else if (kv.Value is LevelProp) { var lp = kv.Value as LevelProp; var lpsPacket = new LevelPropSpawn(lp); _game.PacketHandlerManager.sendPacket(peer, lpsPacket, Channel.CHL_S2C); } else if (kv.Value is Inhibitor || kv.Value is Nexus) { var inhib = kv.Value as Unit; var ms = new MinionSpawn2(inhib.NetId); _game.PacketHandlerManager.sendPacket(peer, ms, Channel.CHL_S2C); var sh = new SetHealth(inhib.NetId); _game.PacketHandlerManager.sendPacket(peer, sh, Channel.CHL_S2C); } } // TODO shop map specific? // Level props are just models, we need button-object minions to allow the client to interact with it if (peerInfo != null && peerInfo.Team == TeamId.TEAM_BLUE) { // Shop (blue team) var ms1 = new MinionSpawn2(0xff10c6db); _game.PacketHandlerManager.sendPacket(peer, ms1, Channel.CHL_S2C); var sh1 = new SetHealth(0xff10c6db); _game.PacketHandlerManager.sendPacket(peer, sh1, Channel.CHL_S2C); } else if (peerInfo != null && peerInfo.Team == TeamId.TEAM_PURPLE) { // Shop (purple team) var ms1 = new MinionSpawn2(0xffa6170e); _game.PacketHandlerManager.sendPacket(peer, ms1, Channel.CHL_S2C); var sh1 = new SetHealth(0xffa6170e); _game.PacketHandlerManager.sendPacket(peer, sh1, Channel.CHL_S2C); } var end = new StatePacket(PacketCmdS2C.PKT_S2C_EndSpawn); return(_game.PacketHandlerManager.sendPacket(peer, end, Channel.CHL_S2C)); }
public bool HandlePacket(Peer peer, byte[] data, Game game) { var start = new StatePacket2(PacketCmdS2C.PKT_S2C_StartSpawn); game.PacketHandlerManager.sendPacket(peer, start, Channel.CHL_S2C); Logger.LogCoreInfo("Spawning map"); int playerId = 0; foreach (var p in game.GetPlayers()) { var spawn = new HeroSpawn(p.Item2, playerId++); game.PacketHandlerManager.sendPacket(peer, spawn, Channel.CHL_S2C); var info = new PlayerInfo(p.Item2); game.PacketHandlerManager.sendPacket(peer, info, Channel.CHL_S2C); } var peerInfo = game.GetPeerInfo(peer); var bluePill = game.ItemManager.GetItemType(game.GetMap().GetBluePillId()); var itemInstance = peerInfo.GetChampion().Inventory.SetExtraItem(7, bluePill); var buyItem = new BuyItemAns(peerInfo.GetChampion(), itemInstance); game.PacketHandlerManager.sendPacket(peer, buyItem, Channel.CHL_S2C); // Not sure why both 7 and 14 skill slot, but it does not seem to work without it var skillUp = new SkillUpPacket(peerInfo.GetChampion().getNetId(), 7, 1, (byte)peerInfo.GetChampion().getSkillPoints()); game.PacketHandlerManager.sendPacket(peer, skillUp, Channel.CHL_GAMEPLAY); skillUp = new SkillUpPacket(peerInfo.GetChampion().getNetId(), 14, 1, (byte)peerInfo.GetChampion().getSkillPoints()); game.PacketHandlerManager.sendPacket(peer, skillUp, Channel.CHL_GAMEPLAY); peerInfo.GetChampion().GetStats().setSpellEnabled(7, true); peerInfo.GetChampion().GetStats().setSpellEnabled(14, true); peerInfo.GetChampion().GetStats().setSummonerSpellEnabled(0, true); peerInfo.GetChampion().GetStats().setSummonerSpellEnabled(1, true); var objects = game.GetMap().GetObjects(); foreach (var kv in objects) { if (kv.Value is Turret) { var t = kv.Value as Turret; var turretSpawn = new TurretSpawn(t); game.PacketHandlerManager.sendPacket(peer, turretSpawn, Channel.CHL_S2C); // To suppress game HP-related errors for enemy turrets out of vision var sh = new SetHealth(t); game.PacketHandlerManager.sendPacket(peer, sh, Channel.CHL_S2C); continue; } else if (kv.Value is LevelProp) { var lp = kv.Value as LevelProp; var lpsPacket = new LevelPropSpawn(lp); game.PacketHandlerManager.sendPacket(peer, lpsPacket, Channel.CHL_S2C); } else if (kv.Value is Inhibitor || kv.Value is Nexus) { var inhib = kv.Value as Unit; var ms = new MinionSpawn2(inhib.getNetId()); game.PacketHandlerManager.sendPacket(peer, ms, Channel.CHL_S2C); var sh = new SetHealth(inhib.getNetId()); game.PacketHandlerManager.sendPacket(peer, sh, Channel.CHL_S2C); } } // TODO shop map specific? // Level props are just models, we need button-object minions to allow the client to interact with it if (peerInfo != null && peerInfo.GetTeam() == TeamId.TEAM_BLUE) { // Shop (blue team) var ms1 = new MinionSpawn2(0xff10c6db); game.PacketHandlerManager.sendPacket(peer, ms1, Channel.CHL_S2C); var sh1 = new SetHealth(0xff10c6db); game.PacketHandlerManager.sendPacket(peer, sh1, Channel.CHL_S2C); } else if (peerInfo != null && peerInfo.GetTeam() == TeamId.TEAM_PURPLE) { // Shop (purple team) var ms1 = new MinionSpawn2(0xffa6170e); game.PacketHandlerManager.sendPacket(peer, ms1, Channel.CHL_S2C); var sh1 = new SetHealth(0xffa6170e); game.PacketHandlerManager.sendPacket(peer, sh1, Channel.CHL_S2C); } var end = new StatePacket(PacketCmdS2C.PKT_S2C_EndSpawn); return(game.PacketHandlerManager.sendPacket(peer, end, Channel.CHL_S2C)); }