campaignTrail_temp.achievements = {
"The New Right Rises" : {
"image" : "https://i.imgur.com/KbIKrxv.png",
"description" : "Appease all 4 factions",
"cannotBeCheated" : true
},
"Neocon" : {
"image" : "https://i.imgur.com/bViXu8z.png",
"description" : "Win without satisfying any of the 4 factions",
"cannotBeCheated" : true
},
"A Movement Broken" : {
"image" : "https://i.imgur.com/Kx2Bjy6.png",
"description" : "Lose it all.",
"cannotBeCheated" : true
},
"God's Country" : {
"image" : "https://i.imgur.com/7A6ue9Y.png",
"description" : "Give it away to the Christians.",
"cannotBeCheated" : true
},
"Capitalist Cathedral" : {
"image" : "https://i.imgur.com/PcQK4L1.png",
"description" : "Give it away to the Technocapitalists.",
"cannotBeCheated" : true
},
"Armstrong's Vision" : {
"image" : "https://i.imgur.com/cqBcrvm.png",
"description" : "Give it away to the Darwinists.",
"cannotBeCheated" : true
},
"Patriotic and Happy" : {
"image" : "https://i.imgur.com/m3FqJth.png",
"description" : "Give it away to the Populists.",
"cannotBeCheated" : true
},
"Party Switch" : {
"image" : "https://i.imgur.com/bWLMW0p.png",
"description" : "Win New York and California.",
"cannotBeCheated" : true
},
"The Final Countdown" : {
"image" : "https://i.imgur.com/Zv78uwl.png",
"description" : "Achieve the Canon Ending.",
"cannotBeCheated" : true
},
}
campaignTrail_temp.election_json = [
{
"model": "campaign_trail.election",
"pk": 21,
"fields": {
"year": 2032,
"display_year": "2032SwanSong",
"summary": "A specter is haunting America.
On one side, the Movement, an alliance of ordinary people from all walks of life, united in one goal, opposition to the Regime, and the liberation of the human soul. From the Tea Party, to Ron Paul, the MAGA movement, and now its final culmination in the New Right. Led under the banner of President Vance, they have seized many of the keys to power, and now their final victory is in sight.
On the other, the Regime. The aging progressive technocracy whose creativity has long been exhausted. The forces of the rusting machine that has been in retreat to the forces of the New Right for decades now. Once, they controlled everything. Now, they are on the verge of losing everything. Its institutions are old and frail, and even its supporters know the Regime is drawing its final breaths. Its only hope is that the Movement might divide itself, and it stay in power just a little bit longer.",
"image_url": "https://i.imgur.com/CZPCxxR.png",
"winning_electoral_vote_number": 270,
"advisor_url": "123",
"recommended_reading": `
This Campaign Trail mod was created by the Movement’s Youth Media Outreach Committee and the Movement Historical Society, in collaboration with Naimina OS studios. This dramatized recreation of the historical 2032 election is done for the purpose of entertainment only. All rights are reserved to Naimina OS studios under the 2052 Copyright Act.
This mod has taken inspiration from “The Regime”, a mod created by BLQCK KNIGHT K studios."
Further Reading:
Help our friends in the IDF with the pacification of Judea and Samaria https://www.fidf.org/
`,
"has_visits": 1,
"no_electoral_majority_image": "../static/images/2012-no-majority.jpg"
}
}
]
campaignTrail_temp.modBoxTheme = {
"header_color": "rgb(74, 105, 120)",
"header_text_color": "#ffffff",
"description_text_color": "#000000",
"description_background_color": "#F8F8F8",
"main_color": "#aec8d5",
"secondary_color": "rgb(74, 105, 120)",
"ui_text_color": "#ffffff"
}
RecReading=true;
campaignTrail_temp.temp_election_list = [
{
"id": 21,
"year": 2032,
"is_premium": 0,
"display_year": "2032SwanSong"
}
]
campaignTrail_temp.credits = `Naimina OS, check out Further Reading for additional background.`;
campaignTrail_temp.global_parameter_json = [
{
"model": "campaign_trail.global_parameter",
"pk": 1,
"fields": {
"vote_variable": 1.125,
"max_swing": 0.12,
"start_point": 0.94,
"candidate_issue_weight": 10,
"running_mate_issue_weight": 3,
"issue_stance_1_max": -0.71,
"issue_stance_2_max": -0.3,
"issue_stance_3_max": -0.125,
"issue_stance_4_max": 0.125,
"issue_stance_5_max": 0.3,
"issue_stance_6_max": 0.71,
"global_variance": 0.01,
"state_variance": 0.005,
"question_count": 35,
"default_map_color_hex": "#C9C9C9",
"no_state_map_color_hex": "#999999"
}
}
]
campaignTrail_temp.candidate_json = [
{
"model": "campaign_trail.candidate",
"pk": 300,
"fields": {
"first_name": "",
"last_name": "The Movement",
"election": 21,
"party": "Republican Party (America First)",
"state": "The American Heartland",
"priority": 1,
"description": "Can you hear it? You can hear it roaring from the hilltops, sung out from the countryside, even rumbling from the ground below. It is anger of good, righteous men, an alliance of people determined to topple the Regime, and defenders of the human soul. Once outcast as relics from a bygone past, they have now become harbingers of America's future.
Yet below the surface, tensions are bubbling. From the outside, the Movement looks to be united and whole, but upon closer inspection, it is revealed that several factions make up the alliance. There are Populists, Christians, Darwinists, and Techno-Capitalists, each with their own leaders. Though JD Vance became the heir apparent after the second presidency of Trump, infighting between the Populists and Technocapitalists nearly cost them in 2028 election. If the Movement is to bring President Vance his second term, and truly guide America to a new era, the Movement will have to satisfy all of its 4 factions, and make sure they all turn out to vote.",
"color_hex": "#8e3030",
"secondary_color_hex": null,
"is_active": 1,
"image_url": "https://i.imgur.com/I3FfjPK.png",
"electoral_victory_message": "This guy wins!",
"electoral_loss_message": "This guy loses!",
"no_electoral_majority_message": "We all win?",
"description_as_running_mate": null,
"candidate_score": 1,
"running_mate": false
}
},
{
"model": "campaign_trail.candidate",
"pk": 302,
"fields": {
"first_name": "JD",
"last_name": "Vance",
"election": 21,
"party": "Republican Party (Populist Faction)",
"state": "Ohio",
"priority": 1,
"description": "
Put description here
",
"color_hex": "#0000FF",
"secondary_color_hex": null,
"is_active": 0,
"image_url": "https://i.imgur.com/l58Tcby.png",
"electoral_victory_message": "This guy wins!",
"electoral_loss_message": "This guy loses!",
"no_electoral_majority_message": "We all win?",
"description_as_running_mate": "The heir apparent to the MAGA movement, acolyte of both Thiel and Yarvin, and student of the Dark Enlightenment. Coming off a first term most defined by a successful reindustrialization strategy, Vance finds himself the head of an increasingly fragmentary movement. The populists, whom he has the firmest grip on, are his base who holds the party together. Yet it is the only faction he has fully satisfied.
The Christians, who have the most votes, whisper quietly of his Hindu wife, and are growing discontent with the rate of conservative social change. The Darwinists, those straggers on the great frontier are at odds with moralistic social policy. Finally, the Technocapitalists, whose resources keep the entire Movement afloat, want more room to push their radical social experiments. Their infighting with the Populists nearly cost Vance the 2028 election.
If Vance wishes to receive his second term, he will need to balance between all of these 4 factions, and ensure they all turn out come election day.",
"candidate_score": 1,
"running_mate": true
}
},
{
"model": "campaign_trail.candidate",
"pk": 301,
"fields": {
"first_name": "",
"last_name": "The Regime",
"election": 21,
"party": "Democratic Party (Globalists)",
"state": "Around the Globe",
"priority": 1,
"description": "(Not playable) The regime of America present, but one with no part in America future. A stagnating bureaucracy of the old and decrepit. They have lost their grip on the culture, they have lost their grip on the institutions. Their last hope is to hold onto what they have, and hope that the Movement falls apart from its own internal contradictions. They have elected Gavin Newsom as their last Hail Mary. One last stand for the preservation of power.
There once was a dream, the dream of modernity. Of interchangeable blank slates, that all men were truly created equal. The dream of the Machine. They were like them once, the Regime had fought their own hard battle to get where they are today. Liberty, equality, fraternity, that was their rallying cry against their own Regime. One of calcified traditions and rigid hierarchies. They would bring about the end of history. Atop the mighty mountain, they have become the establishment they once sought to destroy. And the tradition they thought they had stamped out has come back to haunt them, resurrected in the Movement that has come to take its throne.",
"color_hex": "#313159",
"secondary_color_hex": null,
"is_active": 1,
"image_url": "https://i.imgur.com/8PkCWxu.png",
"electoral_victory_message": "This guy wins!",
"electoral_loss_message": "This guy loses!",
"no_electoral_majority_message": "We all win?",
"description_as_running_mate": null,
"candidate_score": 1,
"running_mate": false
}
},
{
"model": "campaign_trail.candidate",
"pk": 303,
"fields": {
"first_name": "Gavin",
"last_name": "Newsom",
"election": 21,
"party": "Democratic Party (Neoliberal Faction)",
"state": "California",
"priority": 1,
"description": "
Put description here
",
"color_hex": "#0000FF",
"secondary_color_hex": null,
"is_active": 0,
"image_url": "https://i.imgur.com/sHxRtqz.png",
"electoral_victory_message": "This guy wins!",
"electoral_loss_message": "This guy loses!",
"no_electoral_majority_message": "We all win?",
"description_as_running_mate": "There is an idea of Gavin Newsom, some kind of abstraction. But there is no true him, only an puppet, a vassal of the Regime that manipulates his movements and puppets his strings. He regurgitates the same words and same talking points as every single one of them, like machines of a vast, uncaring hivemind. He keeps repeating the same things, less people listening with each try, hoping someone is still listening. He has to, the safety of the Regime depends on it.
But the people of America have stopped listening long ago. He is part of a dying class, one of media pundits, great budgets, and big Hollywood starpower, slowly sinking into the ground like the state he ran into the ground. He is the last gasp of a dying era, one last Hail Mary to stay in power. If this is honestly the best of what the Regime has left to offer... Then that says everything about the depths which the Regime has fallen to.",
"candidate_score": 1,
"running_mate": true
}
}
]
vpTableHistorical = {
"JD Vance" : "Vivek Ramaswamy",
"Gavin Newsom" : "Gretchen Whitmer",
}
HistHexcolour=["#8e3030","#313159"];
HistName=[" The Movement"," The Regime"];
HistEV=[340,198];
HistPV=["82,326,616","75,094,320"];
HistPVP=["52.3%","47.7%"];
campaignTrail_temp.running_mate_json = [
{
"model": "campaign_trail.running_mate",
"pk": 109261,
"fields": {
"candidate": 300,
"running_mate": 302
}
},
{
"model": "campaign_trail.running_mate",
"pk": 109269,
"fields": {
"candidate": 301,
"running_mate": 303
}
},
]
campaignTrail_temp.opponents_default_json = [
{
"election": 21,
"candidates": [
300,
301
]
}
]
campaignTrail_temp.opponents_weighted_json = [
{
"election": 21,
"candidates": [
300,
301,
]
}
]
//#startcode
nct_stuff.themes[nct_stuff.selectedTheme].coloring_title = "#4a6978";
nct_stuff.themes[nct_stuff.selectedTheme].coloring_window = "#8aa3b2";
document.getElementsByClassName("game_header")[0].style.backgroundColor = nct_stuff.themes[nct_stuff.selectedTheme].coloring_title;
$("#game_window")[0].style.backgroundColor = nct_stuff.themes[nct_stuff.selectedTheme].coloring_window;
$(".container")[0].style.backgroundColor = "#374d48";
document.head.innerHTML += `";
//#endcode
// Initialise custom music
$("#music_player")[0].children[0].style.display="none"
$("#music_player")[0].children[1].style.display="none"
document.getElementById("modLoadReveal").style.display="none"
document.getElementById("modloaddiv").style.display="none"
musicBox = document.getElementById("music_player")
musicBox.style.display=""
var trackSel;
e = campaignTrail_temp
e.selectedSoundtrack = 0
toTime = (seconds) => {
var date = new Date(null);
date.setSeconds(seconds);
return date.toISOString().substr(11, 8);
}
generateTime = () => {
// Get the audio element
var audio = document.getElementById("campaigntrailmusic");
timeTracker = document.createElement("div");
timeTracker.style = `
text-align:left;
border-style:solid;
border-width:3px;
height:150px;
width:200px;
background-color:#999999;
float:right;
padding: 10px;
`
$("#trackSelParent")[0].prepend(timeTracker);
$("#trackSelParent")[0].prepend(document.createElement("br"));
// Create a new element to display the current position of the audio
var positionDisplay = document.createElement("gg");
positionDisplay.id = "position-display";
// Create a new slider element to change the time
var timeSlider = document.createElement("input");
timeSlider.type = "range";
timeSlider.min = 0;
timeSlider.max = 1;
timeSlider.step = 0.001;
timeSlider.value = 0;
timeSlider.style.width = "200px";
timeSlider.id = "time-slider";
var pausePlay = document.createElement("button");
pausePlay.id = "position-display";
pausePlay.innerHTML = "Pause"
pausePlay.style.width = "100%";
pausePlay.addEventListener("click", event => {
event.preventDefault();
updatePositionDisplay();
let audio = document.getElementById("campaigntrailmusic");
if (audio.paused) {
audio.play();
event.target.innerHTML = "Pause";
return;
}
audio.pause();
event.target.innerHTML = "Play";
return;
})
var volumeLabel = document.createElement("gg");
volumeLabel.id = "volume-label";
volumeLabel.innerHTML = " Volume: "
var volumeSlider = document.createElement("input");
volumeSlider.type = "range";
volumeSlider.min = 0;
volumeSlider.max = 1;
volumeSlider.step = 0.001;
volumeSlider.value = 0;
volumeSlider.style.width = "200px";
volumeSlider.id = "volume-slider";
volumeSlider.value = audio.volume;
timeTracker.appendChild(pausePlay);
timeTracker.appendChild(document.createElement("br"));
timeTracker.appendChild(document.createElement("br"));
timeTracker.appendChild(positionDisplay);
timeTracker.appendChild(timeSlider);
timeTracker.appendChild(volumeLabel);
timeTracker.appendChild(volumeSlider);
updatePositionDisplay();
//for (let i = 0; i < 10; i++)
//timeTracker.append(document.createElement("br"));
// Function to update the position display
function updatePositionDisplay() {
positionDisplay.innerHTML = "Time: " + toTime(audio.currentTime) + " ";
timeSlider.value = audio.duration ? audio.currentTime / audio.duration : 0;
}
// Function to change the time of the audio
function changeTime() {
positionDisplay.innerHTML = "Time: " + toTime(audio.currentTime) + " ";
audio.currentTime = timeSlider.value * audio.duration;
}
updateVolume = event => {
audio.volume = event.target.value;
}
// Update the position display and slider every second
setInterval(updatePositionDisplay, 1000);
// Listen for changes to the time slider and change the time of the audio
timeSlider.addEventListener("input", changeTime);
volumeSlider.addEventListener("input", updateVolume)
}
function newMusicPlayer() {
trackSel = document.createElement("div");
trackSel.id = "trackSelParent"
let z = `
`
z += `
`
//
for (i in soundtracks[e.selectedSoundtrack].tracklist) {
let a = soundtracks[e.selectedSoundtrack].tracklist[i]
let b = ` `
z += b
}
z += "
"
trackSel.innerHTML = z
// select correct song
musicBox.appendChild(trackSel);
Array.from(document.getElementById("trackSel").children).filter(f=>{
return f.tagName == "LABEL"
}).map(f=>f.children[0])[0].checked = true
// set soundtrack changer
soundtrackSelector = document.getElementById("selectSoundtrack")
soundtrackSelector.onchange = function() {
for (i in soundtracks) {
if (soundtracks[i].name == soundtrackSelector.value) {
e.selectedSoundtrack = i
break
}
}
document.getElementById("trackSelParent").remove()
newMusicPlayer()
}
var matches = document.querySelectorAll('.trackSelector');
for (match in matches) {
matches[match].onchange = function() {
audio = $("#campaigntrailmusic")[0];
audio.src = soundtracks[e.selectedSoundtrack].tracklist[this.value].url
audio.currentTime = 0
}
}
musicBox.children[2].loop = false
musicBox.children[2].src = soundtracks[e.selectedSoundtrack].tracklist[0].url
musicBox.children[2].onended = function() {
console.log("next track")
let selected = Number(document.querySelector('input[name="trackSelector"]:checked').value);
let newSel = clamp(selected+1, soundtracks[e.selectedSoundtrack].tracklist.length-1, 0)
let buttons = Array.from(document.getElementById("trackSel").children).filter(f=>{
return f.tagName == "LABEL"
}).map(f=>f.children[0])
//let selectedIndex = buttons.map(f=>f.children[0]).map(f=>f.checked)
buttons[newSel].click()
}
for (let counter = 0; counter < 7; counter++) {
document.getElementById("trackSelParent").appendChild(document.createElement("br"))
}
generateTime();
}
clamp = function(a, max, min, overflow=true) {
if (overflow) {
return a > max ? min : a < min ? max : a;
}
return a > max ? max : a < min ? min : a;
}
// Track list
soundtracks = {
0: {
name: "Can You Hear the Voices of the People?",
tracklist: [
{
"name": "Dystopia | Starset",
"url": 'https://audio.jukehost.co.uk/8APUld9DyaoQDIFcOVACdC8xR42WpSsj'
},
{
"name": "Awake and Alive | Skillet",
"url": 'https://audio.jukehost.co.uk/IJNE74oZburNU9WtzBAv0u1hbPH8JXkd'
},
{
"name": "Genocide | Tim Pool",
"url": 'https://audio.jukehost.co.uk/PeTKd92xTcSKyeI4ZM8AoPQ0BtwWLsmS'
},
{
"name": "Rich Men North of Richmond | Oliver Anthony",
"url": 'https://audio.jukehost.co.uk/la9HH82Sca9rj2wRNf7QoVlUlRnidbir'
},
{
"name": "ECHO | Starset",
"url": 'https://audio.jukehost.co.uk/0xr2nSMJebSrr7hCOPAwlTj2AhHBpou5'
},
{
"name": "Hero | Skillet",
"url": 'https://audio.jukehost.co.uk/QbPFqrvxOHJV4GmhZtdWOR3oHSVXprdP'
},
{
"name": "Kali Yuga | Anthrazit",
"url": 'https://audio.jukehost.co.uk/06eZUhai17difIsAFZ6KjFUXJRVkjxMg'
},
{
"name": "Don't Tread on Me | Granger Smith",
"url": 'https://audio.jukehost.co.uk/Q9bUrEHew5g8w7j9nOEWts6w0PyoG9O0'
},
{
"name": "Antigravity | Starset",
"url": 'https://audio.jukehost.co.uk/GDFju6DUzjwzG9EstSP0EPfCPhAwaiJJ'
},
{
"name": "Rise/Centuries | Skillet/Fallout Boy",
"url": 'https://audio.jukehost.co.uk/8zhNWun8r2mEauFwORkB0RJXTgg7BQCe'
},
{
"name": "Will of the People | Tim Pool",
"url": 'https://audio.jukehost.co.uk/Vs7GINqug8wLAmckwQDMqD1suU7jVsmn'
},
{
"name": "Keep Your Rifle By Your Side | Far Cry 5",
"url": 'https://audio.jukehost.co.uk/xvNIHnzmQd6cCkjn8MnMLS8mHrpD63iR'
},
{
"name": "Passerine | The Oh Hellos",
"url": 'https://audio.jukehost.co.uk/xNSQPCuCKkLB6HcgRX8tZ3UZJfkpOGHf'
},
{
"name": "Eustache Scrubb | Sarah Sparks",
"url": 'https://audio.jukehost.co.uk/oyIxhQRvyWq6Mz3NG8V3P1NG0mEbPJLz'
},
],
},
1: {
name: "Technocapitalist Synth",
tracklist: [
{
"name": "Dystopia | Starset",
"url": 'https://audio.jukehost.co.uk/8APUld9DyaoQDIFcOVACdC8xR42WpSsj'
},
{
"name": "ECHO | Starset",
"url": 'https://audio.jukehost.co.uk/0xr2nSMJebSrr7hCOPAwlTj2AhHBpou5'
},
{
"name": "Antigravity | Starset",
"url": 'https://audio.jukehost.co.uk/GDFju6DUzjwzG9EstSP0EPfCPhAwaiJJ'
},
],
},
2: {
name: "Christo-Utopian Chorus",
tracklist: [
{
"name": "Awake and Alive | Skillet",
"url": 'https://audio.jukehost.co.uk/IJNE74oZburNU9WtzBAv0u1hbPH8JXkd'
},
{
"name": "Hero | Skillet",
"url": 'https://audio.jukehost.co.uk/QbPFqrvxOHJV4GmhZtdWOR3oHSVXprdP'
},
{
"name": "Rise/Centuries | Skillet/Fallout Boy",
"url": 'https://audio.jukehost.co.uk/8zhNWun8r2mEauFwORkB0RJXTgg7BQCe'
},
{
"name": "Passerine | The Oh Hellos",
"url": 'https://audio.jukehost.co.uk/xNSQPCuCKkLB6HcgRX8tZ3UZJfkpOGHf'
},
{
"name": "Eustache Scrubb | Sarah Sparks",
"url": 'https://audio.jukehost.co.uk/oyIxhQRvyWq6Mz3NG8V3P1NG0mEbPJLz'
},
],
},
3: {
name: "Battlehymns of the Populace",
tracklist: [
{
"name": "Genocide | Tim Pool",
"url": 'https://audio.jukehost.co.uk/PeTKd92xTcSKyeI4ZM8AoPQ0BtwWLsmS'
},
{
"name": "Kali Yuga | Anthrazit",
"url": 'https://audio.jukehost.co.uk/06eZUhai17difIsAFZ6KjFUXJRVkjxMg'
},
{
"name": "Will of the People | Tim Pool",
"url": 'https://audio.jukehost.co.uk/Vs7GINqug8wLAmckwQDMqD1suU7jVsmn'
},
],
},
4: {
name: "Leave my Country Alone",
tracklist: [
{
"name": "Rich Men North of Richmond | Oliver Anthony",
"url": 'https://audio.jukehost.co.uk/la9HH82Sca9rj2wRNf7QoVlUlRnidbir'
},
{
"name": "Don't Tread on Me | Granger Smith",
"url": 'https://audio.jukehost.co.uk/Q9bUrEHew5g8w7j9nOEWts6w0PyoG9O0'
},
{
"name": "Keep Your Rifle By Your Side | Far Cry 5",
"url": 'https://audio.jukehost.co.uk/xvNIHnzmQd6cCkjn8MnMLS8mHrpD63iR'
},
],
},
}
// Set up new music player
newMusicPlayer()