Skip to content

Repository files navigation

Distrain

In the context of this game, distrain carries not the traditional definition of the word, but rather is meant to be my own word, built by adding the dis- prefix to 'train.' This refers to the concept in the game that as you train and level up, you're applying stats to the enemy as well, which is sort of the opposite of training.

This name reflects on some old game ideas that fell out of use here.

The full git repository is available on GitHub, if you care to view development history.

SpeedHack Rules

Unfortunately, some plans I was assuming would be canceled for Sunday ended up working out (weather cleared up). This left me with a fair chunk less time than anticipated, which prevented me from finishing the entry.

In its current state, the main player can be customized, and there is a minimal map to run around in. Not much to actually do though.

Genre Requirements

Traveling Salesman

The idea here evolved to exploring the map, looking for and gathering keys. This idea is not fully fleshed out nor fully implemented.

Technical Requirements

Character Development

The idea here was to have the player gain experience/stat points by battling enemies, giving the player more power and special abilities. Again, this idea is not fully fleshed out nor implemented.

Easter Egg

There was no idea in place for this yet therefore not implemented.

Artistic Requirements

Player Customization

The skin for the main character can be fully customized. This is fully implemented.

Soviet Russia

The idea here was to have enemies in the game, and the relationship with the player flipped around. Enemies begin killing themselves when they're within a certain range of the player. The player must heal the enemy before it dies in order to gain experience points. This idea is not implemented.

Bonus Rules

Act of Efficiency

I was considering invoking this act to remove various rules at various stages of developing the game idea. I'm not invoking it at the present time.

Building

Makefile

Just run make. I haven't tested this makefile extensively at all; it's largely the one included in the SpeedHack 2011 template.

Visual Studio Project

Some configuration is necessary for the Visual Studio project file. Be sure to add a user macro to point at the Allegro install folder. e.g., View -> Other Windows -> Property Manager, double click Microsoft.Cpp.Win32.User, and add macro AllegroDir pointing at c:\some\path\to\allegro-5.0.10-msvc-11.0.

You may also need to edit the project properties. In Configuration Properties -> Debugging, set Environment to PATH=$(AllegroDir)\bin;%PATH%

Credits

About

My (incomplete) SpeedHack 2014 entry

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - baffles/distrain: My (incomplete) SpeedHack 2014 entry · GitHub
Skip to content

Repository files navigation

Distrain

In the context of this game, distrain carries not the traditional definition of the word, but rather is meant to be my own word, built by adding the dis- prefix to 'train.' This refers to the concept in the game that as you train and level up, you're applying stats to the enemy as well, which is sort of the opposite of training.

This name reflects on some old game ideas that fell out of use here.

The full git repository is available on GitHub, if you care to view development history.

SpeedHack Rules

Unfortunately, some plans I was assuming would be canceled for Sunday ended up working out (weather cleared up). This left me with a fair chunk less time than anticipated, which prevented me from finishing the entry.

In its current state, the main player can be customized, and there is a minimal map to run around in. Not much to actually do though.

Genre Requirements

Traveling Salesman

The idea here evolved to exploring the map, looking for and gathering keys. This idea is not fully fleshed out nor fully implemented.

Technical Requirements

Character Development

The idea here was to have the player gain experience/stat points by battling enemies, giving the player more power and special abilities. Again, this idea is not fully fleshed out nor implemented.

Easter Egg

There was no idea in place for this yet therefore not implemented.

Artistic Requirements

Player Customization

The skin for the main character can be fully customized. This is fully implemented.

Soviet Russia

The idea here was to have enemies in the game, and the relationship with the player flipped around. Enemies begin killing themselves when they're within a certain range of the player. The player must heal the enemy before it dies in order to gain experience points. This idea is not implemented.

Bonus Rules

Act of Efficiency

I was considering invoking this act to remove various rules at various stages of developing the game idea. I'm not invoking it at the present time.

Building

Makefile

Just run make. I haven't tested this makefile extensively at all; it's largely the one included in the SpeedHack 2011 template.

Visual Studio Project

Some configuration is necessary for the Visual Studio project file. Be sure to add a user macro to point at the Allegro install folder. e.g., View -> Other Windows -> Property Manager, double click Microsoft.Cpp.Win32.User, and add macro AllegroDir pointing at c:\some\path\to\allegro-5.0.10-msvc-11.0.

You may also need to edit the project properties. In Configuration Properties -> Debugging, set Environment to PATH=$(AllegroDir)\bin;%PATH%

Credits

About

My (incomplete) SpeedHack 2014 entry

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - baffles/distrain: My (incomplete) SpeedHack 2014 entry · GitHub
Skip to content

Repository files navigation

Distrain

In the context of this game, distrain carries not the traditional definition of the word, but rather is meant to be my own word, built by adding the dis- prefix to 'train.' This refers to the concept in the game that as you train and level up, you're applying stats to the enemy as well, which is sort of the opposite of training.

This name reflects on some old game ideas that fell out of use here.

The full git repository is available on GitHub, if you care to view development history.

SpeedHack Rules

Unfortunately, some plans I was assuming would be canceled for Sunday ended up working out (weather cleared up). This left me with a fair chunk less time than anticipated, which prevented me from finishing the entry.

In its current state, the main player can be customized, and there is a minimal map to run around in. Not much to actually do though.

Genre Requirements

Traveling Salesman

The idea here evolved to exploring the map, looking for and gathering keys. This idea is not fully fleshed out nor fully implemented.

Technical Requirements

Character Development

The idea here was to have the player gain experience/stat points by battling enemies, giving the player more power and special abilities. Again, this idea is not fully fleshed out nor implemented.

Easter Egg

There was no idea in place for this yet therefore not implemented.

Artistic Requirements

Player Customization

The skin for the main character can be fully customized. This is fully implemented.

Soviet Russia

The idea here was to have enemies in the game, and the relationship with the player flipped around. Enemies begin killing themselves when they're within a certain range of the player. The player must heal the enemy before it dies in order to gain experience points. This idea is not implemented.

Bonus Rules

Act of Efficiency

I was considering invoking this act to remove various rules at various stages of developing the game idea. I'm not invoking it at the present time.

Building

Makefile

Just run make. I haven't tested this makefile extensively at all; it's largely the one included in the SpeedHack 2011 template.

Visual Studio Project

Some configuration is necessary for the Visual Studio project file. Be sure to add a user macro to point at the Allegro install folder. e.g., View -> Other Windows -> Property Manager, double click Microsoft.Cpp.Win32.User, and add macro AllegroDir pointing at c:\some\path\to\allegro-5.0.10-msvc-11.0.

You may also need to edit the project properties. In Configuration Properties -> Debugging, set Environment to PATH=$(AllegroDir)\bin;%PATH%

Credits

About

My (incomplete) SpeedHack 2014 entry

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - baffles/distrain: My (incomplete) SpeedHack 2014 entry · GitHub
Skip to content

Repository files navigation

Distrain

In the context of this game, distrain carries not the traditional definition of the word, but rather is meant to be my own word, built by adding the dis- prefix to 'train.' This refers to the concept in the game that as you train and level up, you're applying stats to the enemy as well, which is sort of the opposite of training.

This name reflects on some old game ideas that fell out of use here.

The full git repository is available on GitHub, if you care to view development history.

SpeedHack Rules

Unfortunately, some plans I was assuming would be canceled for Sunday ended up working out (weather cleared up). This left me with a fair chunk less time than anticipated, which prevented me from finishing the entry.

In its current state, the main player can be customized, and there is a minimal map to run around in. Not much to actually do though.

Genre Requirements

Traveling Salesman

The idea here evolved to exploring the map, looking for and gathering keys. This idea is not fully fleshed out nor fully implemented.

Technical Requirements

Character Development

The idea here was to have the player gain experience/stat points by battling enemies, giving the player more power and special abilities. Again, this idea is not fully fleshed out nor implemented.

Easter Egg

There was no idea in place for this yet therefore not implemented.

Artistic Requirements

Player Customization

The skin for the main character can be fully customized. This is fully implemented.

Soviet Russia

The idea here was to have enemies in the game, and the relationship with the player flipped around. Enemies begin killing themselves when they're within a certain range of the player. The player must heal the enemy before it dies in order to gain experience points. This idea is not implemented.

Bonus Rules

Act of Efficiency

I was considering invoking this act to remove various rules at various stages of developing the game idea. I'm not invoking it at the present time.

Building

Makefile

Just run make. I haven't tested this makefile extensively at all; it's largely the one included in the SpeedHack 2011 template.

Visual Studio Project

Some configuration is necessary for the Visual Studio project file. Be sure to add a user macro to point at the Allegro install folder. e.g., View -> Other Windows -> Property Manager, double click Microsoft.Cpp.Win32.User, and add macro AllegroDir pointing at c:\some\path\to\allegro-5.0.10-msvc-11.0.

You may also need to edit the project properties. In Configuration Properties -> Debugging, set Environment to PATH=$(AllegroDir)\bin;%PATH%

Credits

About

My (incomplete) SpeedHack 2014 entry

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - baffles/distrain: My (incomplete) SpeedHack 2014 entry · GitHub
Skip to content

Repository files navigation

Distrain

In the context of this game, distrain carries not the traditional definition of the word, but rather is meant to be my own word, built by adding the dis- prefix to 'train.' This refers to the concept in the game that as you train and level up, you're applying stats to the enemy as well, which is sort of the opposite of training.

This name reflects on some old game ideas that fell out of use here.

The full git repository is available on GitHub, if you care to view development history.

SpeedHack Rules

Unfortunately, some plans I was assuming would be canceled for Sunday ended up working out (weather cleared up). This left me with a fair chunk less time than anticipated, which prevented me from finishing the entry.

In its current state, the main player can be customized, and there is a minimal map to run around in. Not much to actually do though.

Genre Requirements

Traveling Salesman

The idea here evolved to exploring the map, looking for and gathering keys. This idea is not fully fleshed out nor fully implemented.

Technical Requirements

Character Development

The idea here was to have the player gain experience/stat points by battling enemies, giving the player more power and special abilities. Again, this idea is not fully fleshed out nor implemented.

Easter Egg

There was no idea in place for this yet therefore not implemented.

Artistic Requirements

Player Customization

The skin for the main character can be fully customized. This is fully implemented.

Soviet Russia

The idea here was to have enemies in the game, and the relationship with the player flipped around. Enemies begin killing themselves when they're within a certain range of the player. The player must heal the enemy before it dies in order to gain experience points. This idea is not implemented.

Bonus Rules

Act of Efficiency

I was considering invoking this act to remove various rules at various stages of developing the game idea. I'm not invoking it at the present time.

Building

Makefile

Just run make. I haven't tested this makefile extensively at all; it's largely the one included in the SpeedHack 2011 template.

Visual Studio Project

Some configuration is necessary for the Visual Studio project file. Be sure to add a user macro to point at the Allegro install folder. e.g., View -> Other Windows -> Property Manager, double click Microsoft.Cpp.Win32.User, and add macro AllegroDir pointing at c:\some\path\to\allegro-5.0.10-msvc-11.0.

You may also need to edit the project properties. In Configuration Properties -> Debugging, set Environment to PATH=$(AllegroDir)\bin;%PATH%

Credits

About

My (incomplete) SpeedHack 2014 entry

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - baffles/distrain: My (incomplete) SpeedHack 2014 entry · GitHub
Skip to content

Repository files navigation

Distrain

In the context of this game, distrain carries not the traditional definition of the word, but rather is meant to be my own word, built by adding the dis- prefix to 'train.' This refers to the concept in the game that as you train and level up, you're applying stats to the enemy as well, which is sort of the opposite of training.

This name reflects on some old game ideas that fell out of use here.

The full git repository is available on GitHub, if you care to view development history.

SpeedHack Rules

Unfortunately, some plans I was assuming would be canceled for Sunday ended up working out (weather cleared up). This left me with a fair chunk less time than anticipated, which prevented me from finishing the entry.

In its current state, the main player can be customized, and there is a minimal map to run around in. Not much to actually do though.

Genre Requirements

Traveling Salesman

The idea here evolved to exploring the map, looking for and gathering keys. This idea is not fully fleshed out nor fully implemented.

Technical Requirements

Character Development

The idea here was to have the player gain experience/stat points by battling enemies, giving the player more power and special abilities. Again, this idea is not fully fleshed out nor implemented.

Easter Egg

There was no idea in place for this yet therefore not implemented.

Artistic Requirements

Player Customization

The skin for the main character can be fully customized. This is fully implemented.

Soviet Russia

The idea here was to have enemies in the game, and the relationship with the player flipped around. Enemies begin killing themselves when they're within a certain range of the player. The player must heal the enemy before it dies in order to gain experience points. This idea is not implemented.

Bonus Rules

Act of Efficiency

I was considering invoking this act to remove various rules at various stages of developing the game idea. I'm not invoking it at the present time.

Building

Makefile

Just run make. I haven't tested this makefile extensively at all; it's largely the one included in the SpeedHack 2011 template.

Visual Studio Project

Some configuration is necessary for the Visual Studio project file. Be sure to add a user macro to point at the Allegro install folder. e.g., View -> Other Windows -> Property Manager, double click Microsoft.Cpp.Win32.User, and add macro AllegroDir pointing at c:\some\path\to\allegro-5.0.10-msvc-11.0.

You may also need to edit the project properties. In Configuration Properties -> Debugging, set Environment to PATH=$(AllegroDir)\bin;%PATH%

Credits

About

My (incomplete) SpeedHack 2014 entry

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - baffles/distrain: My (incomplete) SpeedHack 2014 entry · GitHub
Skip to content

Repository files navigation

Distrain

In the context of this game, distrain carries not the traditional definition of the word, but rather is meant to be my own word, built by adding the dis- prefix to 'train.' This refers to the concept in the game that as you train and level up, you're applying stats to the enemy as well, which is sort of the opposite of training.

This name reflects on some old game ideas that fell out of use here.

The full git repository is available on GitHub, if you care to view development history.

SpeedHack Rules

Unfortunately, some plans I was assuming would be canceled for Sunday ended up working out (weather cleared up). This left me with a fair chunk less time than anticipated, which prevented me from finishing the entry.

In its current state, the main player can be customized, and there is a minimal map to run around in. Not much to actually do though.

Genre Requirements

Traveling Salesman

The idea here evolved to exploring the map, looking for and gathering keys. This idea is not fully fleshed out nor fully implemented.

Technical Requirements

Character Development

The idea here was to have the player gain experience/stat points by battling enemies, giving the player more power and special abilities. Again, this idea is not fully fleshed out nor implemented.

Easter Egg

There was no idea in place for this yet therefore not implemented.

Artistic Requirements

Player Customization

The skin for the main character can be fully customized. This is fully implemented.

Soviet Russia

The idea here was to have enemies in the game, and the relationship with the player flipped around. Enemies begin killing themselves when they're within a certain range of the player. The player must heal the enemy before it dies in order to gain experience points. This idea is not implemented.

Bonus Rules

Act of Efficiency

I was considering invoking this act to remove various rules at various stages of developing the game idea. I'm not invoking it at the present time.

Building

Makefile

Just run make. I haven't tested this makefile extensively at all; it's largely the one included in the SpeedHack 2011 template.

Visual Studio Project

Some configuration is necessary for the Visual Studio project file. Be sure to add a user macro to point at the Allegro install folder. e.g., View -> Other Windows -> Property Manager, double click Microsoft.Cpp.Win32.User, and add macro AllegroDir pointing at c:\some\path\to\allegro-5.0.10-msvc-11.0.

You may also need to edit the project properties. In Configuration Properties -> Debugging, set Environment to PATH=$(AllegroDir)\bin;%PATH%

Credits

About

My (incomplete) SpeedHack 2014 entry

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - baffles/distrain: My (incomplete) SpeedHack 2014 entry · GitHub
Skip to content

Repository files navigation

Distrain

In the context of this game, distrain carries not the traditional definition of the word, but rather is meant to be my own word, built by adding the dis- prefix to 'train.' This refers to the concept in the game that as you train and level up, you're applying stats to the enemy as well, which is sort of the opposite of training.

This name reflects on some old game ideas that fell out of use here.

The full git repository is available on GitHub, if you care to view development history.

SpeedHack Rules

Unfortunately, some plans I was assuming would be canceled for Sunday ended up working out (weather cleared up). This left me with a fair chunk less time than anticipated, which prevented me from finishing the entry.

In its current state, the main player can be customized, and there is a minimal map to run around in. Not much to actually do though.

Genre Requirements

Traveling Salesman

The idea here evolved to exploring the map, looking for and gathering keys. This idea is not fully fleshed out nor fully implemented.

Technical Requirements

Character Development

The idea here was to have the player gain experience/stat points by battling enemies, giving the player more power and special abilities. Again, this idea is not fully fleshed out nor implemented.

Easter Egg

There was no idea in place for this yet therefore not implemented.

Artistic Requirements

Player Customization

The skin for the main character can be fully customized. This is fully implemented.

Soviet Russia

The idea here was to have enemies in the game, and the relationship with the player flipped around. Enemies begin killing themselves when they're within a certain range of the player. The player must heal the enemy before it dies in order to gain experience points. This idea is not implemented.

Bonus Rules

Act of Efficiency

I was considering invoking this act to remove various rules at various stages of developing the game idea. I'm not invoking it at the present time.

Building

Makefile

Just run make. I haven't tested this makefile extensively at all; it's largely the one included in the SpeedHack 2011 template.

Visual Studio Project

Some configuration is necessary for the Visual Studio project file. Be sure to add a user macro to point at the Allegro install folder. e.g., View -> Other Windows -> Property Manager, double click Microsoft.Cpp.Win32.User, and add macro AllegroDir pointing at c:\some\path\to\allegro-5.0.10-msvc-11.0.

You may also need to edit the project properties. In Configuration Properties -> Debugging, set Environment to PATH=$(AllegroDir)\bin;%PATH%

Credits

About

My (incomplete) SpeedHack 2014 entry

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages