public void execute(GameSession gameSession, IByteBuffer buffer) { var request = new HellstormSelectRocketRequest(); request.readCommand(buffer); var ammo = AmmoConverter.AmmoTypeToString(request.rocketType.type); gameSession.Player.RocketLauncher?.ChangeLoad(ammo); }
public void execute(GameSession gameSession, IByteBuffer buffer) { if (gameSession.Player.UsingNewClient) { var cmd = new commands.new_client.requests.ItemSelectionRequest(); cmd.readCommand(buffer); gameSession.Player.Controller.Miscs.UseItem(cmd.itemId); } else { var selectCmd = new commands.old_client.requests.SelectRocketRequest(); selectCmd.readCommand(buffer); var type = selectCmd.type; gameSession.Player.Controller.Miscs.UseItem(AmmoConverter.AmmoTypeToString(type)); } }
public void RewardPlayer(Player player, RewardType type, Item item, int amount) { switch (type) { case RewardType.AMMO: // BAT / ROK if (item.LootId.StartsWith("ammunition_laser")) { amount = RewardMultiplyer(type, amount, player); player.Information.Ammunitions[item.LootId].Add(amount); Packet.Builder.LegacyModule(World.StorageManager.GetGameSession(player.Id), "0|LM|ST|BAT|" + AmmoConverter.GetLootAmmoId(item.LootId) + "|" + amount); } else if (item.LootId.StartsWith("ammunition_rocket")) { amount = RewardMultiplyer(type, amount, player); player.Information.Ammunitions[item.LootId].Add(amount); Packet.Builder.LegacyModule(World.StorageManager.GetGameSession(player.Id), "0|LM|ST|ROK|" + AmmoConverter.GetLootAmmoId(item.LootId) + "|" + amount); } break; case RewardType.ITEM: switch (item.Category) { //case EquippedItemCategories.BOOSTER: // World.DatabaseManager.AddBooster(player, item); // Packet.Builder.LegacyModule(World.StorageManager.GetGameSession(player.Id), "0|LM|ST|LOT|" + item.LootId + "|" + amount); // break; default: World.DatabaseManager.AddEquipmentItem(player, item); Packet.Builder.LegacyModule(World.StorageManager.GetGameSession(player.Id), "0|LM|ST|LOT|" + item.LootId + "|" + amount); break; } break; } }
public void LaunchRocketLauncher() { var enemy = Character.Selected; if (Character.RocketLauncher == null || !AssembleEnemy(enemy)) { return; } var player = Character as Player; int damage = 0; int absDamage = 0; int rocketId = 0; Damage.Types dmgTypes = Damage.Types.ROCKET; var loadedRockets = Character.RocketLauncher.LoadedRockets; switch (Character.RocketLauncher.LoadLootId) { case "ammunition_rocketlauncher_eco-10": damage = RandomizeDamage(2000 * loadedRockets); break; case "ammunition_rocketlauncher_hstrm-01": damage = RandomizeDamage(4000 * loadedRockets); break; case "ammunition_rocketlauncher_ubr-100": var baseDamage = 4000; if (enemy is Npc) { baseDamage = 7500; } damage = RandomizeDamage(baseDamage * loadedRockets); break; case "ammunition_rocketlauncher_sar-01": absDamage = RandomizeDamage(1200 * loadedRockets); dmgTypes = Damage.Types.SHIELD_ABSORBER_ROCKET_CREDITS; break; case "ammunition_rocketlauncher_sar-02": absDamage = RandomizeDamage(5000 * loadedRockets); dmgTypes = Damage.Types.SHIELD_ABSORBER_ROCKET_URIDIUM; break; } GameClient.SendToPlayerView(Character, netty.commands.old_client.HellstormAttackCommand.write(Character.Id, enemy.Id, damage != 0, loadedRockets, AmmoConverter.ToAmmoType(Character.RocketLauncher.LoadLootId)), true); //GameClient.SendToPlayerView(Character, netty.commands.new_client.LegacyModule.write("0|RL|A|" + Character.Id + "|" + enemy.Id + "|" + loadedRockets + "|" + rocketId), true); Character.RocketLauncher.Shoot(loadedRockets); Controller.Damage?.Rocket(enemy, damage, absDamage, dmgTypes); if (player != null && enemy is Character) { Packet.Builder.HellstormStatusCommand(World.StorageManager.GetGameSession(player.Id)); UpdateAttacker(enemy as Character, player); } if (player != null && player.State.LoginProtection) { player.State.EndLoginProtection(); } }