Giter Site home page Giter Site logo

megamek / mekhq Goto Github PK

View Code? Open in Web Editor NEW
128.0 128.0 165.0 1.29 GB

MekHQ is a java helper program for the MegaMek game that allows users to load a list of entities from an XML file, perform repairs and customizations, and then save the new entities to another XML file that can be loaded into MegaMek.

Home Page: http://megamek.org

HTML 0.10% Module Management System 0.62% XSLT 0.03% Shell 0.01% Batchfile 0.02% Java 99.08% Scheme 0.15%

mekhq's Introduction

MegaMek - TableTop BattleTech on your computer

INTRODUCTION

MegaMek is a Java version of BattleTech that you can play with your friends over the internet. All rules from Total Warfare are implemented. Rules from Tactical Operations and Strategic Operations are constantly in the works, and many of those rules and weapons are already implemented.

Players can create their own units, maps, and scenarios for use with MegaMek. MegaMek supports all unit types, from infantry, BattleMechs, and vehicles, to Aerospace fighters, DropShips, and warships. Ground battles as well as space battles can be played.

If you would like information about how to play the game, see the "PLAYING THE GAME" section, below. If you're having trouble getting MegaMek started, see the next section, "RUNNING MEGAMEK".

For complete game rules, consult the Classic BattleTech rule books published by Catalyst Game Labs. These books include Total Warfare, Tactical Operations: Advanced Rules, Tactical Operations: Advanced Units & Equipment, and Strategic Operations.

RUNNING MEGAMEK

Java programs run in their own environment, called a Virtual Machine or VM for short. These Java VMs are available on most systems from a variety of sources. Most modern systems have one installed by default.

Windows users: To start MegaMek, run the MegaMek.exe file. If this fails to start MegaMek, see the "INSTALLING OR UPDATING YOUR JAVA RUNTIME" section, below.

Other graphical OSes: Many other graphical OSes, such as MacOS and OSX, will allow you to double-click the .jar file to run it. If this does not work, try running MegaMek from the command line.

Running MegaMek from the command line: To do this using Sun Java, or most other implementations, navigate to the directory containing the .jar file and run: java -jar MegaMek.jar.

If none of the above options work for you, see the "INSTALLING OR UPDATING YOUR JAVA RUNTIME" section, below.

INSTALLING OR UPDATING YOUR JAVA RUNTIME

Of the versions available, we now require Java 17 LTS as the bare minimal version. Newer versions should work but are not currently supported.

Adoptium (Windows)

For Windows, follow the instructions here to ensure Java is installed correctly for the most seamless experience.

Adoptium (Mac)

For Mac, download the installer from Adoptium directly for your version of macOS and underling platform (AARCH64 is for M-Series Mac's).

Linux

For Linux, your distribution should have a version of Java available via your package manager.

CONNECTING

MegaMek is a network game. One player hosts a game and the rest of the players connect. The connecting players can connect from anywhere with a TCP/IP connection to the host, including the same computer (see hot seat, below.)

To host a game, press the "Host a New Game..." button in the main menu. Fill in your name and click "Okay". The password field allows you to specify a password for certain server commands (Type /help in the chat line to get a list of server commands.) If you don't specify a password, anybody is allowed to reset the server or kick players, so be careful.

Once the lobby screen comes up, other players can connect and the game can begin. The other players will need to know the IP address of the host computer. There are several ways to determine your IP address. If you are on Windows 9x/ME, you can use the Run command on the start menu and enter winipcfg. On Windows 2000/NT/XP/Vista/7/8/10, you will need to open a command prompt and type ipconfig. As a last resort, there are some web pages, such as WhatIsMyIP that will try to detect your IP address, but if your internet service uses a proxy or firewall, these pages cannot accurately detect it.

To connect to a game, press the connect button on the main menu and fill in your player name and the host's IP address.

To play in a hot seat fashion, you can run the host and any number of other players on the same computer. First, launch and host a game. Then, launch another copy of the game for each connecting player, and in the "Server Address" field of the connect dialog, type localhost. Each player will need to switch to his/her copy of the game to play their turn.

To start a dedicated server, use the -dedicated command line switch. A dedicated server just runs the server, in the console, without a "host" player in the game. People, including yourself, can join it like a game with a host. The dedicated server reads the password and port options from the clientsettings.xml file, or uses the default (no password and port 2346.) If you want the dedicated server to load a saved game, supply the filename at the end of -dedicated args, like this: -dedicated savedgame.sav or -dedicated -port 2346 savedgame.sav. To stop the server, you will need to tell the Java machine to halt execution, which is CTRL + C on most platforms.

PLAYING THE GAME

Pre-game Lobby

Here you can chat, specify what units you wish to use, select map settings, declare starting positions, and change your player's color. When everybody has at least one unit, you may all hit "ready" to start the game. Most changes to the game parameters will cancel your ready status, so you should wait for everybody to finish choosing their units and positions. Note: If you wish to use custom unit designs, please see the section below entitled "CUSTOM UNITS".

You can enter the map selector by clicking on the "Select Map" tab at the top of the lobby. You can change the dimensions of the map boards (in hexes) or the dimensions of the whole map (in boards). All maps are loaded off the server. Most of the map boards that MegaMek comes with are 16x17.

Below the map size inputs is a not-to-scale representation of how the boards are laid out relative to each other. The middle column lists the current maps and the rightmost column lists the available maps. To change a current map, select it in the middle column, select the map you want in the right column, and press the "<<" button between the two columns. You may also select a map by clicking on its number in the map layout grid. When you select a map, (other than [SURPRISE] or [RANDOM]) you have the choice or rotating it 180 degrees (North becomes South, East becomes West, and vice versa) by clicking on the "Rotate Board" checkbox; the fact that the map is rotated will be shown in the middle column.

  • [SURPRISE] means that the Server will pick a random map and not tell you what it has picked until the game starts.
  • [RANDOM] means that the Server will pick a map as soon as you hit "Okay".
  • [GENERATED] means that the server will create random terrain for you to play on. You need to use the "generated map settings" button to select what kind of terrain you want.

There is a set of settings with drop down list of choices. For most settings, you can pick "none", "low", "medium" or "high". Except for cities, where you pick a type of city instead.

  • Theme - leave blank for the default theme, or enter a theme supported by your tileset. grass, jungle, lunar, mars, snow, and volcano are supported by the standard tileset
  • Elevation - how hilly you want the map
  • Cliffs - chance of 2+ level elevation changes, if you have enough elevation already
  • Woods - higher settings have more and larger tree patches and more heavy woods
  • Roughs - higher settings have more and larger rough patches
  • Lakes - works the same as woods, but deep water instead of heavy woods Swamps/Pavement/Ice/Rubble/Fortified all work like roughs. Fortified hexes are described in the MaxTech rulebook.
  • River - chance to have a river running across the map
  • Road - chance to have a single road running across the map
  • Craters - chance for craters, also the size and number. Good for a "moonscape" map
  • City:
    • HUB - roads wander out from the centre with plenty of twists and turns. A common pattern for older european cities.
    • GRID - vertical and horizontal roads divide the city into rectangular blocks. A pattern common in newer cities, especially in north america and asia.
    • METRO - a grid with roads forming a diagonal X from the centre as well.

Water and swamp will affect the city plan, as the builders will have to make bridges to cross it or just give up and stop the road at the edge. Mountain tops (4+ height) are expensive to build on, so they will only build in the valleys. Other terrain will just be bulldozed in the name of progress, though you may find a few hexes left between buildings.

There is also an "advanced" button, which lets you fine-tune the map to your liking. See the "advanced map settings" section near the end of this file

Initiative Report

Each player's initiative rolls and the corresponding turn order will be shown here.

Movement Phase

The buttons at the bottom of the screen let you change between different modes of movement, switch to another unit, or commit to your current path. You do not have to move the first selected unit first.

Left-click on the map to specify a hex to move to. A path should appear on the board, showing your unit's path to the target hex. The numbers in the center represent how many movement points you will have to use to reach each hex. Cyan indicates walking, yellow running, and red jump movement. Dark grey sections of the path indicate where you have exceeded your movement capacity, or other illegal moves. You can drag the mouse to see movement options for several different hexes. Please note that you can change the colors used to display the movement points by editing clientsettings.xml; you may specify a color in RGB notation (e.g. 255 255 255 for white) or with any of the following text values: black, blue, cyan, darkgray, gray, green, lightgray, magenta, orange, pink, red, white, or yellow.

Units can also be moved by using "waypoints." By clicking each hex between the unit's current location and destination, you can delineate the exact path to be taken.

Holding the Shift key while clicking on the map allows you to change the unit's facing without moving. Since you automatically change facing while moving, this is best done at the end of any movement.

To move backwards, click the "Back Up" button before clicking a hex in the arc behind the unit. To jump, click the "Jump" button before the destination hex. Facing changes during jumps are free.

Prone units can change facing without getting up at the normal cost. To get up, click the "Get Up" button, then the desired destination hex and/or facing. Facing changes performed immediately after getting up are free. To get up and back up, click "Get Up," then "Back Up," then the destination hex and/or facing. You cannot get up and jump in the same turn.

Charging and death from above attacks are also declared during the movement phase. Click the "Charge" or "D.F.A." button and then click on the mech you wish to target. If the attack is valid, it will be sent to the server immediately (but resolve during the physical attack phase.) If the program is not using the path you want for your attack, you may plot a path near the target using the appropriate type of movement and then use the charge or dfa button to complete the attack.

If a vehicle or Mek that has sufficient empty space starts a turn in the same hex as a friendly infantry unit, it can Load the unit as its first move of the turn. A vehicle or Mek that is already carrying an infantry unit can unload the unit as its last movement of the turn.

If an Anti-Mek infantry platoon or Battle Armor squad has succeeded in mounting a Mek with a Swarm attack, the Mek can attempt to dislodge the squad during the movement phase in one of three ways:

  1. jumping (requires a Pilot Skill Roll, with a +4 modifier),
  2. walking into (and perhaps through) a Level 2 or deeper water hex, or
  3. ending its turn in a hex that is on fire (this will not work against Battle Armor squads).

Swarming infantry automatically die if they are dislodged into a Level 1 or deeper water hex. Infantry dislodged in the Movement Phase can not move or fire for the rest of the turn. Swarming units can not move off of their target Mek until they use the Stop Swarm action in the Weapons Fire Phase.

VTOLs and VTOL BA use the "go up" and "go down" buttons to change elevation (flight level).

Movement around structures (buildings/bridges) is a little more complicated, because of the different floors a unit can occupy. The "climb mode" button sets your current preference. "Go thru" means you prefer to go under bridges or through the walls of buildings, if there is a choice. "Climb up" means you prefer to climb on top of structures when possible. You can change mode multiple times during your movement, for example a StormCrow Prime could use "climb up" to go over a heavy building to save MP, then change to "go thru" to pass a light building that won't support its weight.

Infantry can move up and down inside buildings using the stairs. This is accomplished by using the "go up" and "go down" buttons. Also, infantry that jump into a building can use the "go up" and "go down" buttons to choose which floor to jump through the window of. Click the building hex you want to jump into first, and the game will pick the highest floor you can reach (or the roof). Then use the "go down" button to select a lower floor if you want to.

The Esc key clears all current movement.

Movement Report

If any units needed piloting skill rolls during their movement, a report showing the results of these rolls will be shown.

Weapons Fire Phase

If you need to check the range and line of sight (LoS) between two hexes, there are two tools available for you to use; the LoS tool and the ruler tool. To use the LoS tool, hold CTRL and click on the two hexes you want to check. The ruler tool works like the LoS tool, but uses the ALT key instead of the CTRL key. The ruler tool can also be used by middle-clicking the two hexes with a three-button mouse. Both tools will pop up a window that tells you what terrain is intervening and whether one or both hexes has partial cover. The ruler tool also draws the line of sight on the board so that you can see which hexes LoS passes through.

You can switch between 'Mech line of sight and non-'Mech line of sight in the "LoS Setting" panel, located under the "View" menu at the top of the screen. 'Mech line of sight and non-'Mech line of sight differ in that 'Mechs are assumed to be "looking" from one elevation level above that of the hex they are in, whereas infantry and vehicles only take up the elevation level of their hex.

The buttons at the bottom of the screen allow you to fire your weapons, switch to another unit, or commit to your currently declared fire. Again, you do not need to declare fire for your first selected unit first.

To target another unit, click on it on the board. Targeting information for your current weapon should appear in the mech display window. To fire your current weapon at the target, press the "Fire" button at the bottom of the screen. To switch to another weapon, click on its name at the top of the mech display window. Spread your fire among multiple targets by repeating these steps using unassigned weapons. When all desired weapons have been assigned to a target, press the "Done" button at the bottom of the screen.

Note that fire is resolved in the order that it is declared, so if you feel that it is a good idea to fire weapons in a different order than they are listed, go ahead.

Secondary facing changes (torso twists) are accomplished by holding Shift and clicking on the board. Your unit will attempt to change its secondary facing in the direction specified. If you assign a weapon to a target and then attempt a facing change, the weapons fire will be canceled.

You can not switch to another unit after declaring some weapons fire. To switch to another unit, first cancel all current fire by hitting the Esc key. When you hit the fire button for your last available weapon, all declared fire will be committed.

An Anti-Mek trained infantry platoon or Battle Armor squad that is in the same hex as a Mek can conduct a Leg Attack or a Swarm Mek attack. The base to-hit number varies with the number of men in the unit. A Swarm Mek attack against a Mek that is prone and/or immobile gains a -4 modifier to its to-hit roll. A successful Leg Attack may cause critical damage to one of the Meks legs; if no critical is rolled, the leg will take 4 points of damage (which may damage the leg's internal structure, and cause another critical roll). A successful Swarm Mek attack does no damage in the turn it hits, but it means that the unit has attached itself to the Mek, and can begin to cause significant damage on subsequent turns. Starting the turn after the unit starts a Swarming a Mek, all attacks by that unit automatically hit, use a location chart that is more dangerous than normally, and automatically roll for a Thru-Armor Critical. A unit that is Swarming a Mek can also choose to Stop Swarming in any weapons phase. The Leg Attack, Swarm Mek, and Stop Swarm actions are all "solo" actions: the unit can take no other action in the Weapons Fire Phase. Attempts to do so will cancel the "solo" action. Swarming infantry can not be targeted by any attacks other than a "Brush Off" attack (see Physical Attacks Phase).

Weapons Fire Report

If there were any weapon attacks, the server will resolve them all at the end of the phase in the order they were declared. The results will be shown in a report.

Physical Attacks Phase

To declare a physical attack, select your target on the board and click the button corresponding to the attack you want to make. If a physical attack type is unavailable (or isn't programmed yet) the button will be greyed out.

Units ineligible to make physical attacks due to being out of range, having made weapons attacks, or for any other reason, will be skipped. If all units are ineligible, the entire phase will be skipped.

Prone Meks that are in the same hex as a vehicle can punch the vehicle, if they have both arms. Prone Meks that are in a Clear or Pavement hex as an infantry platoon or Battle Armor squad can "thrash" at the unit if they have at least one arm or leg. Be warned, that "thrashing" causes a Pilot Skill Roll that, if failed, causes the Mek to suffer damage as if it has fallen 1 level.

Meks that are not prone that have been Swarmed by an infantry platoon or Battle Armor squad can attempt to "Brush Off" the squad with either or both arms. Any "Brush Off" attack that fails to hit the infantry will inflict punch damage on the Mek. Any successful "Brush Off" attack ends a Swarm Mek attack.

End of Turn Report

If there were any physical attacks, the results will be shown. The results of the Heat and End phases will be shown.

After this phase, it's time for initiative again! Hurrah!

CUSTOM UNITS

All units (mechs, vehicles, infantry, etc.) are located in the data/mechfiles directory. They may be individual files or zipped up into archives (".zip"), and you may also create subdirectories if you like.

We recommend creating a folder called Customs in the data/mechfiles directory. Then using this folder to store all custom units.

As of 0.49.13 We've removed the unsupported and unofficial folders. Over the years the unsupported units dropped to only a couple. The unofficial folder is available from the Extras repository.

Over the years the number of custom mech builders that support MegaMek has shrunk. For best compatibility we recommend using MegaMekLab. Any issues from the use of other programs should be directed to their developers for support.

Note of file types

MegaMek uses two file types for units. Files with the extension MTF are mechs, and all other unit types are BLK files. Both our editable with a quality text editor, but we recommend not hand editing files as it can break the programs.

ADVANCED MAP SETTINGS

Tip: Use the basic settings, then select advanced, and the boxes will be filled in with the values from the basic settings.

  • Board Size - set the size of the map sheet generated. When using generated maps, it is better to generate one large play area than to try and combine multiple map sheets.
  • Theme - leave blank, or enter a theme supported by the tileset. Grass, Lunar, Mars, Snow are themes supported by the standard tileset.
  • Elevation settings:
    • Amount of elevation - changes the "roughness" of the map, a low number will have less elevation changes than a high number Elevation range: height difference between the lowest and highest hex on the map. Level 0 is set to the most common height.
    • Probability of inverting - % chance to make a sinkhole instead of a mountain.
    • Algorithm - 0 generates rolling hills, 1 generates spiky terrain, 2 combines both generators. 0 is likely to have less LOS blocking terrain.
    • Cliffs - % chance to change a steep slope into a cliff. For example, if a group of level 1 hexes have level 0 and level 2 hexes adjacent, they will all be moved to level 0, giving a cliff for mechs to hide behind. The effect is quite subtle unless you have quite a high elevation range to begin with.
  • Patch terrain settings (woods, roughs, swamps, lakes, pavements, rubble, fortified, ice): Each of these work the same way, but place a different type of terrain.
    • Number of XXX - the number of patches which would be present on a 16x17 map. scales up if you have a bigger map.
    • XXX size in hexes - the size of each patch of terrain
    • Probability for heavy woods/deep water - % chance to place instead of light.
    • River/road settings - Probability is a % chance to have one on the map. If a road crosses water, you'll get a bridge.
  • Crater settings:
    • Probability for craters: - % chance that craters are present Number of craters: as for number of woods, the number that would be present on a 16x17 map, scaled up for larger maps.
    • Crater radius - size range for each crater.
  • Special effects settings: Each probability is a % chance. FX modifier changes the amount of effect each one has. Values should be small, e.g -3 to +3
    • Fires - woods hexes will be set on fire or already burned down to rough at the start of the game. + modifier increases number of burned down hexes, - modifier increases number of unscathed woods.
    • Frozen water - water hexes are ice-covered. +modifier decreases the water depth, so for example with a modifier of 1, shallow water hexes are frozen solid and deep water hexes are converted to ice covered shallow water.
    • Flooded map: - hexes with negative elevations are converted to water hexes, while level 0 hexes are converted to swamps. Ideal for hovercraft and naval units. modifier changes the "sea level"
    • Drought - water hexes are dried up, to shallower water, swamp or rough. Modifier changes the severity of the drought.
    • Special effects can be combined - e.g. flood + drought = rocky shore, flood + frozen + high modifier = glacier
  • City Settings: City type is the same as for the basic settings.
    • City Blocks (0-) [16 default] - higher numbers mean more roads on the map. Scales with map size.
    • CF min/max (1-150) [10-100 default] - CF range for generated buildings. The CF determines the building type from the table in BMR.
    • Floors min/max (1-50) [1-6 default] - height range for generated buildings
    • Density (1-100) [75 default] - % chance of a building in each hex where a building is possible. Also chance to try and build multi-hex buildings.

DIFFERENCES BETWEEN THE BOARD GAME AND MEGAMEK

Although MegaMek tries to be faithful to the original board game rules, in some cases, due to technical or design limitations, this is not possible. These differences are not considered "bugs." If you spot any more discrepancies, please contact the author (see "CONTACT" below.)

  • If the line of fire lies along the edge of two hexes, in the board game, the defender chooses which hex to use. Instead, MegaMek chooses the hex that most favors the defender.
  • When punching, you automatically punch with both arms, if possible. This means you can not punch two different targets in the same round.
  • When kicking, you automatically use the leg with the better chance to hit.
  • There are several situations, notably death from above, where a unit is displaced out of a hex, and that unit's owner may pick the hex to move to. MegaMek currently picks the hex for you, choosing high elevations over low ones, to avoid falling damage.

CONTACT & FURTHER INFORMATION

For more information, and to get the latest version of MegaMek, visit the website.

For more information about the BattleTech board game, visit it's website.

To submit a bug report, suggestion, or feature request please visit our issue tracker

To discuss all things MegaMek, please visit our Discord

COPYRIGHT & LICENSE INFORMATION

MegaMek - Copyright (C) 2002 Ben Mazur

Copyright (c) 2024 - The MegaMek Team. All Rights Reserved.

This file is part of MegaMek.

MegaMek is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

MegaMek is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with MegaMek. If not, see http://www.gnu.org/licenses/.

MechWarrior, BattleMech, ‘Mech and AeroTech are registered trademarks of The Topps Company, Inc. Original BattleTech material Copyright by Catalyst Game Labs All Rights Reserved. Used without permission.

mekhq's People

Contributors

aarongullickson avatar akjosch avatar algebro7 avatar arlith avatar bandildo avatar bonepart avatar bullseyesmith avatar dericpage avatar dylan-m avatar firefly2442 avatar fmoody avatar giorgiga avatar hammergs avatar illianicbt avatar jayof9s avatar kuronekochomusuke avatar mkerensky avatar neoancient avatar nickaragua avatar pheonixstorm avatar qwertronix avatar rexpearce avatar rjhancock avatar sixlettervariables avatar sjuliez avatar slater-jay avatar sleet01 avatar taharqa avatar vicentecartas avatar windchild292 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mekhq's Issues

Space Stations show in the hangar as unit type Jumpship

0.3.23

When viewing units in the hangar (All Units) the type column shows as Jumpship rather than Space Station.

When using the drop down menu space stations show up in the Jumpship unit type instead of the Space Station type.

Scenario does not resolve - NPE in scenario resolution isCommander()

As I posted in the release thread at the BT forum, all of a sudden scenarios won´t resolve, two times out of the three most recent ones I played. I can´t think of anything that was different in the two scenarios that wouldn´t resolve compared to the one in between that did, or to the dozens before in the same campaign that worked flawlessly.

The log contains error messages from, firstly, an attempt at automatic resolution, and secondly from an attempt at manual resolution.

mekhqlog resolve bug.txt
Hellfire Division30671221a.zip
ResolveBug.sav.gz
customs.zip

Coolant failures not reset between missions

When using the MM Tac Ops coolant failure rule, the failed HS is not reset between scenarios. A save/reload will correct the issue.

I have only seen this happen so it may have just been a fluke but will attempt to reproduce.

Automated Skill Purchases

How it would work...
Probably a Menu command under Manage Campaign... Brings up a new Window with the following GUI elements

Design
1 ) Drop Down Menu for Personnel Type
2 ) Drop Down Menu for Skill Level (Green, etc)
3 ) Drop Down Menu for a Skill
4 ) Drop Down Menu for a Skill Rank*
5 ) Small Text Area for reporting results
6 ) A Check or Search Button
7 ) An OK or Execute Button
8 ) A Cancel Button
9 ) A Progress Bar

*It should use the values available in Skill Tab of Campaign Options. Including skipping certain ranks and the XP costs.

Example of Operation
1 ) Set Personnel Type to Administrators
2 ) Set Skill Level to Green
3 ) Set Skill to Small Arms
4 ) Set Skill Rank to 4

Click Check Button > In a small reporting area "N Personnel can Train"
Click Execute Button > In a small reporting area "N Personnel have trained" could also echo to Daily Log. Short version though... just the number of people who have trained skill (Name)

In the above example every Green Administrator who doesn't have Small Arms 4 will expend all available XP trying to get to 4.

Examples of the short text reports so that Daily Log isn't over-run.

Although not really necessary, I the Skill Level filter might be very useful in preventing horrifically long times to update.

RFE: Administrators are gaining too much XP

Tried to find an old ticket in SF but couldn't.

MHQ > Campaign Options > Experience > XP Awarded to each administrator every Monday for the work of the previous week...

Currently, the value is an integer. Can it become a float, like 0.25? Or can the Option be renamed and have a 2nd Field or every N Mondays?

Feature: Hi-Res Backgrounds

I am opening this issue on the suggestion of the thread [url]http://megamek.info/forums/index.php?topic=2350.15[/url].

Currently it requires a considerable amount of editing of the tileset file to use a high-resolution image for the map board, and having the ability to set a map-wide background would massively improve the process (along with an invisible tile set).

I can provide any info needed here or a sample map of the current method if needed, just let me know.

Dragoons rating tab transportation calculation issue

The transportation section is not including any ASF bays or Mech bays on warships in the calculations.
It only counts any ASF bays as 1 bay.

Same issue occurs with jumpships, any number of ASF bays counts as just 1.

Version 0.3.25

[Feature Request] Set variable for admins gain "X" xp every "Y" weeks

Didn't find anything about this on SF but, was brought up on the bg.battetech forums that even 1 xp every week for admins causes them to level a little bit too quickly. The ability to set how many weeks it takes to gain that 1 xp for admins I think would be useful. Just like with how every person can gain X xp every Y months on a roll of Z or higher

Conflicting rules on Rubble unit restrictions (awaiting ruling from CGL)

After following along Weirdos happiness over another fringe ruling I brought up the fact that TacOps does not show wheeled units being restricted from Rubble hexes even though they ARE restricted from entering based on the Total Warfare rules. There is a pending question in the rules forum to get this straightened out here http://bg.battletech.com/forums/index.php?topic=51221.0

Based on how rough terrain is handled (no wheeled lvl1, no vees lvl 2) I would guess Rubble should be the same but...

Logging Maintenance Rolls Option

Logging Maintenance Rolls Option: If it is turned ON any unit that must make a maintenance roll during Advance Day will have the Maintenance History entries in the CPNX. Turning the logging option OFF doesn't remove the Maintenance History entry. Wasting a few KB (5kb) of space for every unit in the Campaign.

I would suggest that turning the Maintenance Logging Off should clear all the maintenance entries in the next save.

Attached is Customs, starting point for campaign and same campaign 40 or 50 days later.
Maintenance Bug.zip

3.25 : NPE when advancing a day

Last thing i did was start repairing damaged equipment in the warheouse (a lot of them) before advancing a day, and i got a NPE.

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

Save game is attached.
#battletech.zip

Personnel Log does not display full injury report

Prior to the change in the way the personnel log is displayed the injury report would show on multiple lines, now it (and presumably everything else) only shows on a single line. This makes reading the log difficult as the only way to pull up a full entry to to edit the log.

Show Unit ID in MM results in bad names in MHQ

If you turn on the option to Show Unit IDs in MM Options...

All units in MHQ have the Unit ID appended to their name.

Like this one showing from Hangar...
Scorpion SCP-1N ID:179 Mek Medium Mothballed - -

Perhaps Unit ID in MM should be separate column???

And MHQ should definitely ignore it!

unitids in mhq

Mechs hot-loading LRMs during battle.

Scjazz informed me that this is a bug when I told him about it and according to TacOps a mech should not be able to turn hot-loading on while in battle when it was set to off in the lobby. Running the mekHQ 0.3.21 bundle of programs and I can turn hot-loading on when enemy mech get too close and turn it back off when the armor in that area where the ammo is stored gets too thin. I actually like the bug and find it usefull but, I guess those aren't the rules. Will attach game log and the rest of the files zipped up when I get home from work today. Was supposed to do this last night but, ran out of time.

Eclipse reporting method getInstance is undefined for type MapSettings

Description Resource Path Location Type

The method getInstance() is undefined for the type MapSettings AtBGameThread.java /MekHQ/src/mekhq line 111 Java Problem

The method getInstance(File) is undefined for the type EntityVerifier MekLabPanel.java /MekHQ/src/mekhq/gui line 107 Java Problem

The method getInstance(FileInputStream) is undefined for the type MapSettings AtBGameThread.java /MekHQ/src/mekhq line 120 Java Problem

3.27, ATB : RATs are not used correctly

According to the ATB options, RATs at the top are supposed to be checked first. At the moment I have Era report 3053-3062 at the top and the game year is 3058...but the clan steel viper OPFOR is NOT using the 3053-3062 RAT...its using some other RAT.

I tested this by removing the Nova prime variant from the 3053-3062 clan steel viper RAT and the opfor would still keep generating Nova prime variants. There's nothing wrong with the RAT itself, generating units using the RAT in Megamek works fine, but ATB is using the incorrect RAT somehow.

#battletech.zip

Also the unit market is always flooded with succession war variants even if you have late era RATs at the top and have the campaign year set to 3067 or later.

Program cannot save game correctly

I recently tried to save my AtB campaign in MechHQ and was greeted with a little popup saying the game couldn't be saved correctly and to report it as a bug here. So I am. Log file is attached.

mekhqlog.txt

Campaign file cannot be loaded (ArrayIndexOutOfBounds)

I have a feeling this is related to several refits that I had running at the time...

java.lang.ArrayIndexOutOfBoundsException: -1
at mekhq.campaign.unit.Unit.initializeParts(Unit.java:1771)
at mekhq.campaign.Campaign.createCampaignFromXMLFileInputStream(Campaign.java:3969)
at mekhq.gui.dialog.DataLoadingDialog$Task.doInBackground(DataLoadingDialog.java:184)
at mekhq.gui.dialog.DataLoadingDialog$Task.doInBackground(DataLoadingDialog.java:113)
at javax.swing.SwingWorker$1.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at javax.swing.SwingWorker.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

#battletech.zip

Bug (Possible): [ATB] OpFor Generated Wrongly?

MekHQ 0.3.27

Possible bug during OpFor generation in ATB, but I'm using customized RATs, I might've setup wrongly

Current Mission: LC vs FWL year 2468
ATB RAT selected: 1. 2463-2468 Long March Offensive, 2. 2455 Geralk Marik's Lyran Campaign
Unit Ratio: 1 mech, 0 mix, 0 armor

During OpFor generation, for some reason, LC (ally) managed to generate using LC 2468 RAT in 2463-2468 Long March Offensive. But FWL (OpFor) kept on generating using FWL 2455 Geralk Marik's Lyran Campaign.

To see the behavior, try this.

  1. Select 2463-2468 Long March Offensive then 2455 Geralk Marik's Lyran Campaign RATs in ATB setup.
  2. Skip to Monday with new scenario.
  3. Look at FWL OpFor generated, it is using my custom RAT, but you might no be able to tell which RAT it is using
  4. Now remove ATB RAT 2455 Geralk Marik's Lyran Campaign
  5. Skip to Monday with new scenario
  6. Look at FWL OpFor generated, it is using the default RAT.

No 6 shows that the moment I remove the 2455 Geralk Marik's Lyran Campaign RAT, the OpFor will not be able to generate even when 2463-2468 Long March Offensive RATs are selected and the year is 2468.

Attached campaign file, RATs and ratinfo.xml

OpFor Generated Wrongly.rar.txt

Comstar Interdiction does not lift when contract is completed

HQ rolled an Interdict for me on the last month of an objective raid, once I completed the mission on the end date the interdict never stopped until I jumped all the way home and created/accepted a new contract.

image

Obviously I can get around this by creating and accepting a new pre-deployment training mission back on the homeworld of Ziliang but, I would think the interdict should cease once the current contract is marked completed. If a new contract is accepted and then deleted the interdict returns and cannot purchase parts due to unit rating and my admin's skill.

Interdiction.zip

Also, when I mothball my mechs for the ride home to keep maint costs down is it supposed to count as my unit not having any mechs for the unit rating? With mechs active I have a C(60) mercs:revised rating but, mothballed goes down to D(45). I still have my mechs and would think it should still count whether mothballed or not but, I have not bought IO or Mercs:rev yet to check.

The 30260727 save is the end date for the current contract and it is marked as complete.
The 30261015 is when I had jumped all the way back home with the interdict still in effect.
Included my force and portrait images just because.

Units that finish refitting are often missing ammo and components

I have noticed that after completing a refit, the unit frequently will be missing ammo or components.

Here's an example : I refitted SRM carriers to a fuel cell variant. The 2nd SRM carrier ended up with 2 empty ammo bins and a missing fuel cell engine. If you right click it and go to customize in mek lab, It says that the vehicle needs a 180 fuel cell engine.

I then refitted a vulture prime, and it also ended up with 2 empty ammo bins. Customize in mek lab shows that it is missing a head component.

I can re-produce this pretty accurately even with simple refits like re-podding a Vulture prime to any other vulture variant. The ammo frequently stays in the warehouse instead of being used for the refit. Refits that modify engines, internal structure or armor frequently has the components sit in the warehouse instead of being used in the refit as well.

#battletech.zip

Megamek crashing on Loading Save after removing Gyro in order to replace.

This is the end result of trying to replace a gyro and a cockpit. If I can figure out what actually went wrong code wise, I'll add more commentary.

But now with hot crash on load action.

Starting load of AtB configuration data from XML...
Starting load of news data for 3041 from XML...
loaded 0 days of news items for 3041
Load of campaign file complete!


Starting load of faction hint data from XML...
RAT files loaded
The unit Truck (AC Conversion) could not be found in the CivilianUnits RAT (data\rat\Against The Bot\CivilianUnits.txt)
The unit Truck (SRM Conversion) could not be found in the CivilianUnits RAT (data\rat\Against The Bot\CivilianUnits.txt)
The unit Truck (AC Conversion) could not be found in the CivilianUnits_CivVeh RAT (data\rat\Against The Bot\CivilianUnits_CivVeh.txt)
The unit Truck (SRM Conversion) could not be found in the CivilianUnits_CivVeh RAT (data\rat\Against The Bot\CivilianUnits_CivVeh.txt)
Loaded Rats in: 5000ms.
Staring MegaMekLab version: 0.1.49-git
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at mekhq.campaign.parts.MissingMekGyro.getNewPart(MissingMekGyro.java:162)
    at mekhq.campaign.parts.MissingPart.getDetails(MissingPart.java:187)
    at mekhq.campaign.Campaign.getPartsInUse(Campaign.java:1129)
    at mekhq.gui.CampaignGUI.refreshOverviewPartsInUse(CampaignGUI.java:4770)
    at mekhq.gui.CampaignGUI.refreshOverview(CampaignGUI.java:4754)
    at mekhq.gui.CampaignGUI.initComponents(CampaignGUI.java:752)
    at mekhq.gui.CampaignGUI.<init>(CampaignGUI.java:553)
    at mekhq.MekHQ.showNewView(MekHQ.java:166)
    at mekhq.gui.dialog.DataLoadingDialog$Task.done(DataLoadingDialog.java:278)
    at javax.swing.SwingWorker$5.run(Unknown Source)
    at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(Unknown Source)
    at sun.swing.AccumulativeRunnable.run(Unknown Source)
    at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(Unknown Source)
    at javax.swing.Timer.fireActionPerformed(Unknown Source)
    at javax.swing.Timer$DoPostEvent.run(Unknown Source)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$400(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

Purple Legion30411011.zip

Unable to edit mission - error about duplicate mission name.

Created a new contract but forgot to add some additional fluff text. Clicked Edit Mission and added said text then tried to click OK. An error box pops up saying There is already a mission with the name XXX.

Pretty sure this used to work but now it doesn't in 0.3.28-git. Possibly caused by commit b65477d Bug: contracts not being checked for duplicate names

After eject will not deploy unit in Megamek

I believe this is a MekHQ issue. Shadow Hawk took a large laser to the face and reduce internal structure to 1 so, ejected pilot. Completed the scenario, repaired the mech, deployed the SH with the lance on the next scenario. Mech shows up in the megamek lobby with no "invalid unit" or anything to indicate something is wrong. But once in the game during the deployment phase the Shadow Hawk is missing and am able to deploy only five out of six units. Remove pilot from the mech then reassigned him to it again, removed the unit from the lance and reassigned, changed pilot status to MIA then back to active, deleted the salvage file in the logs folder, and deleted the entity status file all with the same concern still present. Finally allowed me to deploy the SH after deleting the unit.cache and mekhq log (to the recycle bin). Almost was a campaign breaker for me.
mekhqlog.txt
entitystatus.txt

*Does not allow attachment of the campaign file or unit cache
"Unfortunately, we don’t support that file type. Choose Files Try again with a PNG, GIF, JPG, DOCX, PPTX, XLSX, TXT, PDF, or ZIP."

Crashing on loading save // MissingMekGyro.java(162)

I'm running the latest MqkHQ (0.3.24-git from the Releases page) and am getting odd behavior and crashes after salvaging post-scenario. After salvaging, the UI stops updating. If I save and reload MekHQ, the GUI crashes but the Java Runtime stays running in the background forever (or at least to ~3hr).

I haven't been able to find anything related to this with the Google, so I'm reporting it here.

Campaign file (renamed cpnx -> txt)
Riker's Raiders30250909-2-BROKEN.txt

mekhqlog.txt
mekhqlog-PostEndTask.txt

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.