Adeptus Titanicus Mission Generator
About this app
Generate missions for Adeptus Titanicus using faction and battle value selections.
Adeptus Titanicus Mission Generator Adeptus Titanicus Mission Generator Select Faction: Loyalists Traitors Select Battle Value: 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500 6000 Generate Mission
Related apps
Put this on your site
Source
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Adeptus Titanicus Mission Generator</title>
<meta name="description" content="Generate missions for Adeptus Titanicus using faction and battle value selections.">
<meta name="keywords" content="Adeptus Titanicus, Mission Generator, Wargaming, Board Games, Warhammer 40k">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.min.js" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.6.0/css/fontawesome.min.css" crossorigin="anonymous">
<script type="text/javascript">
try {
function generateMission() {
const faction = document.getElementById('faction').value;
const bv = parseInt(document.getElementById('bv').value);
const selectedTitans = getEnemyTitans();
const attackerMission = getAttackerMission(bv, selectedTitans);
const defenderMission = getDefenderMission(bv, selectedTitans);
document.getElementById('result').innerHTML = `
<h3>${faction} Mission</h3>
<h4>Enemy Titans: ${selectedTitans.join(', ')}</h4>
<h4>Attacker Mission:</h4>
<p><strong>${attackerMission.title}</strong>: ${attackerMission.majorVictory} (Major Victory), ${attackerMission.minorVictory} (Minor Victory).</p>
<h4>Defender Mission:</h4>
<p><strong>${defenderMission.title}</strong>: ${defenderMission.majorVictory} (Major Victory), ${defenderMission.minorVictory} (Minor Victory).</p>
`;
}
function getEnemyTitans() {
const numberOfTitans = Math.floor(Math.random() * 6) + 1; // Generate random between 1 and 6
const selectedTitans = [];
for (let i = 0; i < numberOfTitans; i++) {
selectedTitans.push(getRandomTitan());
}
return selectedTitans;
}
function getRandomTitan() {
const titanTypes = [
{ name: "Warlord Death Bringer", BR: [840, 630, 930] },
{ name: "Warlord Eclipse", BR: [630, 720, 660, 360] },
{ name: "Warlord Nightgaunt", BR: [360, 300] },
{ name: "Warlord Nemesis", BR: [1170, 1140, 1440] },
];
const selectedTitan = titanTypes[Math.floor(Math.random() * titanTypes.length)];
const selectedBR = selectedTitan.BR[Math.floor(Math.random() * selectedTitan.BR.length)];
return `${selectedTitan.name} (BR: ${selectedBR})`;
}
function getAttackerMission(bv, enemyTitans) {
const missions = [
{ title: 'Engage & Destroy', majorVictory: `Disable or destroy the entire opposing force (${enemyTitans.join(', ')}).`, minorVictory: 'Score more Victory Points than your opponent.' },
{ title: 'Propaganda Wars', majorVictory: `Disable or destroy one opposing Titan (${enemyTitans.join(', ')}) without your opponent scoring any Victory Points.`, minorVictory: 'End the game without having any of your Titans disabled or destroyed, and score more Victory Points.' },
{ title: 'War of Attrition', majorVictory: 'Score twice as many Victory Points as your opponent.', minorVictory: 'Score more Victory Points than your opponent.' },
{ title: 'Blitzkrieg', majorVictory: 'Score more Victory Points than your opponent and exit half the points value of your force over the opposing player’s table edge.', minorVictory: 'Exit half the points value of your force over the opposing player’s table edge.' },
{ title: 'Convoy', majorVictory: `Exit the Titan carrying the cargo over the opposing player’s table edge.`, minorVictory: 'Exit carrying cargo and score more Victory Points than your opponent.' },
{ title: 'Rescue Mission', majorVictory: 'Exit the Titan carrying the spy from your own table edge.', minorVictory: 'Pick up the spy and score more Victory Points than your opponent.' },
{ title: 'Spoiling Attack', majorVictory: `Disable or destroy one opposing Titan (${enemyTitans.join(', ')}) and score more Victory Points than your opponent.`, minorVictory: 'Score more Victory Points than your opponent.' },
{ title: 'Break-Out', majorVictory: 'Exit more than half the points value of your force over the opposing player’s table edge.', minorVictory: 'Score more Victory Points than your opponent.' }
];
return missions[Math.floor(Math.random() * missions.length)];
}
function getDefenderMission(bv, enemyTitans) {
const missions = [
{ title: 'Engage & Destroy', majorVictory: `Destroy or disable the entire enemy force including ${enemyTitans.join(', ')}.`, minorVictory: 'Score more Victory Points than your opponent.' },
{ title: 'Tripwire Defence', majorVictory: 'Stop your opponent achieving any Major Victory condition and score more Victory Points.', minorVictory: 'Score more Victory Points than your opponent.' },
{ title: 'The Trap', majorVictory: `Destroy or disable the entire opposing force including ${enemyTitans.join(', ')}.`, minorVictory: 'Score more Victory Points than your opponent.' },
{ title: 'Defensive Line', majorVictory: 'Stop your opponent achieving any Major Victory conditions and score more Victory Points.', minorVictory: 'Score more Victory Points than your opponent.' },
{ title: 'Covering Force', majorVictory: 'Exit more than half your force from your own table edge.', minorVictory: 'Score more Victory Points than your opponent.' },
{ title: 'Holding Action', majorVictory: 'Score more Victory Points than your opponent and exit at least half your force’s points from your own table edge.', minorVictory: 'Score more Victory Points than your opponent.' },
{ title: 'No Retreat', majorVictory: `Disable or destroy at least one opposing Titan (${enemyTitans.join(', ')}) and score more Victory Points.`, minorVictory: 'Score more Victory Points than your opponent.' }
];
return missions[Math.floor(Math.random() * missions.length)];
}
document.addEventListener("DOMContentLoaded", function() {
document.getElementById('generate').addEventListener('click', generateMission);
});
} catch (error) {
throw error;
}
</script>
<style>
body {
background: linear-gradient(135deg, #4caf50, #8bc34a);
color: white;
font-family: 'Arial', sans-serif;
}
#main-container {
max-width: 600px;
margin: 50px auto;
padding: 20px;
border-radius: 10px;
box-shadow: 0 0 15px rgba(0, 0, 0, 0.5);
background: rgba(255, 255, 255, 0.2);
}
h1, h3 {
text-align: center;
}
label {
font-weight: bold;
}
button {
width: 100%;
margin-top: 20px;
}
</style>
</head>
<body>
<div id="main-container" class="container">
<h1>Adeptus Titanicus Mission Generator</h1>
<div class="mb-3">
<label for="faction" class="form-label">Select Faction:</label>
<select id="faction" class="form-select">
<option value="Loyalists">Loyalists</option>
<option value="Traitors">Traitors</option>
</select>
</div>
<div class="mb-3">
<label for="bv" class="form-label">Select Battle Value:</label>
<select id="bv" class="form-select">
<option value="1000">1000</option>
<option value="1500">1500</option>
<option value="2000">2000</option>
<option value="2500">2500</option>
<option value="3000">3000</option>
<option value="3500">3500</option>
<option value="4000">4000</option>
<option value="4500">4500</option>
<option value="5000">5000</option>
<option value="5500">5500</option>
<option value="6000">6000</option>
</select>
</div>
<button id="generate" class="btn btn-primary">Generate Mission</button>
<div id="result" class="mt-4"></div>
</div>
</body>
</html>
NEW APPS
These are apps made by the community!