Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: MegaMek/megamek-extras
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.2
Choose a base ref
...
head repository: MegaMek/megamek-extras
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Loading
Showing 3,286 changed files with 1,857 additions and 7 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
108 changes: 108 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
name: "Report an Issue"
description: >
Please make sure you're opening the issue on the correct repo;
you've checked to make sure this isn't a duplicate, and checked
on the Discord that there is an issue and not working as intended.
title: "[Issue]"
labels:
- bug

body:
- type: textarea
id: brief-description
attributes:
label: "Brief Description *"
description: |
Please describe the issue in detail.
For more detailed instructions, check out
[our wiki](https://github.com/MegaMek/megamek/wiki/Creating-an-Issue-(Bug-Report%2C-Request-for-Enhancement%2C-Errata)).
1. Provide in-game screenshots if possible.
2. If it's a rules-related issue:
- Specify the rulebook edition
- Include the page number
- Quote the relevant text
placeholder: "Describe the issue here..."
validations:
required: true

- type: textarea
id: steps-to-reproduce
attributes:
label: "3. Steps to Reproduce"
description: "Provide a detailed numbered list of steps."
placeholder: "1. Step one\n2. Step two\n3. Step three"

- type: textarea
id: attached-files
attributes:
label: "Attach Files"
description: "Please provide all the logs from the logs folder (zipped) and any other relevant files."
placeholder: "Drag and drop or click to upload relevant files."

- type: dropdown
id: severity
attributes:
label: "Severity *"
description: "Choose the severity of the bug."
options:
- "Critical (Game-breaking/Crash): The game crashes or a core feature (like saving, loading, or network connection) is completely unusable."
- "High (Major Disruption): A major feature is broken or incorrect, but a workaround exists."
- "Medium (Gameplay Limitation): Non-core functionality is impaired, providing a suboptimal but playable experience."
- "Low (Minor/Nuisance): Minor glitches or cosmetic issues that don't affect gameplay and occur rarely."
validations:
required: true

- type: markdown
attributes:
value: |
## User Environment
For the next sections, go to the "logs" folder. Find the MegaMek.log file and open it with a text editor. The information in the header will be needed.
- type: markdown
attributes:
value: |
![Alt text](https://i.imgur.com/KD8cnvf.png)
- type: input
id: custom-megamek-version
attributes:
label: "MegaMek Suite Version *"
description: "Enter your MegaMek version here"
placeholder: "Example: 0.50.02"
validations:
required: true

- type: input
id: operating-system
attributes:
label: "Operating System *"
description: "Select your operating system"
placeholder: "Please be specific with the OS, e.g. Windows 11, macOS 15 Sequoia, Linux (Ubuntu)"
validations:
required: true

- type: input
id: java-version
attributes:
label: "Java Version *"
description: "Enter the Java version from the .log file"
placeholder: "Example: Java Vendor: Eclipse Adoptium Java Version: 17.0.11"
validations:
required: true

- type: checkboxes
id: final-checks
attributes:
label: "Final Verification"
description: "Please confirm the following before submitting"
options:
- label: "I confirm this is a single, unique issue that hasn't been reported before"
required: true
- label: "I have included all necessary information and files to help reproduce this issue"
required: true
- label: "I have asked on MegaMek Discord about this issue"
required: true
- label: "I have confirmed this issue is being opened on the correct repository: MegaMek, MegaMekLab, or MekHQ"
required: true
14 changes: 14 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
blank_issues_enabled: false

contact_links:
- name: Questions
url: https://discord.gg/megamek
about: If you have questions about the above please ask on the Discord before selecting

- name: MegaMek Wiki
url: https://github.com/MegaMek/megamek/wiki
about: Before opening a new issue, please check the MegaMek Wiki for information.

- name: BattleTech Forums
url: https://bg.battletech.com/forums/index.php?board=29.0
about: Join the discussions and find more information on the official BattleTech Forums.
74 changes: 74 additions & 0 deletions .github/ISSUE_TEMPLATE/request_for_enhancement.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
name: "Request for Enhancement"
description: >
Request an enhancement for MegaMek. Be sure you've confirmed it's not a duplicate
and that you've checked on the Discord if your request is already known.
title: "[RFE]"
labels:
- (RFE) Enhancement

body:
- type: dropdown
id: enhancement-type
attributes:
label: "Enhancement Type *"
description: "Select the category of enhancement you are requesting."
options:
- "New Feature"
- "Improvement to Existing Feature"
- "Implementation of Missing Official Rule"
- "Implementation of Errata"
validations:
required: true

- type: textarea
id: brief-description
attributes:
label: "Brief Description of Enhancement *"
description: |
Please describe the feature or improvement you’d like to see.
If it's based on any official rules or errata, mention that here.
placeholder: "Describe your enhancement here..."
validations:
required: true

- type: textarea
id: proposed-use-cases
attributes:
label: "Use Cases or Rationale"
description: |
Elaborate on why this enhancement is needed or valuable:
- What problem does it solve?
- How does it improve gameplay or user experience?
- Are there any related rulebook references or official errata?
placeholder: "1. ...\n2. ...\n3. ..."

- type: textarea
id: attached-files
attributes:
label: "Attach Files"
description: |
Provide any relevant files, images, or logs that illustrate your idea or
help explain how it should work.
placeholder: "Drag and drop or click to upload relevant files."

- type: input
id: custom-megamek-version
attributes:
label: "MegaMek Suite Version *"
description: "Which version of MegaMek (or related tool) are you currently using?"
placeholder: "Example 0.50.02"
validations:
required: true

- type: checkboxes
id: final-checks
attributes:
label: "Final Verification"
description: "Before submitting, please confirm the following:"
options:
- label: "I confirm this request hasn't already been submitted (checked the tracker)"
required: true
- label: "I've discussed or asked about this enhancement on MegaMek Discord"
required: true
- label: "I’m opening this on the correct repo (MegaMek, MegaMekLab, or MekHQ)"
required: true
63 changes: 63 additions & 0 deletions .github/workflows/auto-label-issues.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Auto-label issues based on severity

on:
issues:
types: [opened, edited]

jobs:
label-issues:
runs-on: ubuntu-latest
permissions:
issues: write

steps:
- name: Checkout repository
uses: actions/checkout@v2

- name: Install GitHub CLI
run: |
type -p curl >/dev/null || (sudo apt update && sudo apt install curl -y)
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \
&& sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
&& sudo apt update \
&& sudo apt install gh -y
- name: Determine severity and apply labels
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
echo "Checking issue body for severity..."
issue_body=$(jq -r '.issue.body' "$GITHUB_EVENT_PATH")
echo "::debug::Issue Body: $issue_body"
# Extract the severity from the dropdown selection
severity=$(echo "$issue_body" | sed -n 's/.*### Severity \*\s*\n\n\(.*\)/\1/p' | sed 's/^- //')
echo "::debug::Detected Severity: $severity"
case "$severity" in
"Critical (Game-breaking/Crash): The game crashes or a core feature (like saving, loading, or network connection) is completely unusable.")
labels="Severity: Critical,blocker"
;;
"High (Major Disruption): A major feature is broken or incorrect, but a workaround exists.")
labels="Severity: High"
;;
"Medium (Gameplay Limitation): Non-core functionality is impaired, providing a suboptimal but playable experience.")
labels="Severity: Medium"
;;
"Low (Minor/Nuisance): Minor glitches or cosmetic issues that don't affect gameplay and occur rarely.")
labels="Severity: Low"
;;
*)
labels=""
;;
esac
if [[ -n "$labels" ]]; then
echo "::debug::Applying labels: $labels"
if gh issue edit ${{ github.event.issue.number }} --add-label "$labels"; then
echo "Labels applied successfully"
else
echo "::error::Failed to apply labels"
exit 1
fi
else
echo "::debug::No severity label found or unrecognized severity."
fi
49 changes: 49 additions & 0 deletions PULL_REQUEST_TEMPLATE/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
## Description

Please provide a summary of the changes, including related issues (e.g., Fixes #), the type of change (Bug Fix, New Feature, Refactoring), and the scope of the changes. Make sure to explain the impact of the change and any relevant context.

## Type of Change

Please select the type of change this PR introduces:
- [ ] **Bug Fix**: A code change that fixes an issue.
- Fixes # (issue) <!-- Provide the issue number this PR fixes to automatically close it when merged -->
- [ ] **New Feature**: A code change that adds functionality.
- Addresses RFE # (issue) <!-- Provide the issue number this PR fixes to automatically close it when merged -->
- [ ] **Refactoring**: A code change that improves the structure, quality, or performance of the code without altering functionality.

## Checklist

### General Requirements
- [ ] **No use of the Trademarked terms "MechWarrior", "BattleMech", "'Mech", or "AeroTech". in the code or comments**
- Use "MekWarrior", "BattleMek", "'Mek", and "AeroTek" instead.
- [ ] **Are you using descriptive variable, class, and function names? Human Readable code**
- [ ] Ensure names like `mechBA` are replaced with descriptive alternatives such as `mechanizedBattleArmor`.
- [ ] **Ensure you have documented your code using JavaDoc.**
- [ ] **Follow coding standards** including formatting, naming conventions, and avoiding deprecated or disallowed terms.

### For Bug Fixes
- [ ] The bug has been identified, and I have provided details about its cause.
- [ ] The fix resolves the issue without introducing new bugs or breaking existing functionality.
- [ ] I have added tests that verify the fix, including tests with both valid and invalid inputs.
- [ ] I have reviewed related code to ensure the fix does not impact other areas of the codebase.
- [ ] **Have you added or verified tests** for related sections of the codebase, even if they weren’t directly changed in this PR?

### For New Features
- [ ] I have written comprehensive **tests** for the new feature, including tests with good and bad values.
- [ ] I have ensured that this new feature does not break existing functionality.
- [ ] I have updated relevant **documentation** to reflect the new feature, including user guides or developer docs.
- [ ] **Have you added or verified tests** for related sections of the codebase, even if they weren’t directly changed in this PR?

### For Refactoring
- [ ] I have ensured that **no functionality** has changed during refactoring.
- [ ] I have written **tests** to ensure refactored code works as expected.
- [ ] I have improved code readability, performance, or maintainability with the refactor.
- [ ] **Have you added or verified tests** for related sections of the codebase, even if they weren’t directly changed in this PR?

### Forward Compatibility
- [ ] **If changing existing behavior** saved to preferences or files, provide a **forward-facing conversion path** until the next Milestone release.
- [ ] **Have you ensured to document and prepare the removal of the conversion** after the next Milestone?

## Additional Notes

Please include any additional comments or notes for the reviewer here.
17 changes: 10 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
# MegaMek Extras

This repository contains additional resources for [MegaMek, MekHQ, and MegaMekLab](https://megamek.org), such as camos and character portraits.
This repository contains additional resources for [MegaMek, MekHQ, and MegaMekLab](https://megamek.org), such as camouflage and character portraits. It is meant to be a drag and drop setup, unless specified below.

Currently, the pack contains:

* Camos - a variety of camo-packs from various contributors over the years.
* Portraits
* Ink Effects - Color and Black and White images with an ink effect applied to them by Feenix74. More information is available [here](https://forum.megamek.org/showthread.php?tid=555).
* Old Sprites - Many of the old sprites and unshaded sprites Deadborder makes have been added here.
* Unused Sprites - Many of the old sprites and unshaded sprites Deadborder has made have been added here. This is not a complete history, but rather just images added when expec6t
* Camo - a variety of camo-packs from various contributors over the years.
* Portraits - a copy/paste-able setup for portraits. Currently only contains ink effect portraits, as done by Feenix74 and explained [here](https://forum.megamek.org/showthread.php?tid=555).
* Female:
* BW: Contains Black and White Ink Effect Portraits
* Colour: Contains Coloured Ink Effect Portraits
* Male:
* BW: Contains Black and White Ink Effect Portraits
* Colour: Contains Coloured Ink Effect Portraits

The repository has the same directory structure as for the main programs so releases can be directly extracted into the main application directory.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading