Skip to content

Commit

Permalink
Inline symbols like '{e}' match surrounding text color
Browse files Browse the repository at this point in the history
  • Loading branch information
joshbirnholz committed Jun 1, 2024
1 parent 5c687f0 commit b8c500e
Showing 1 changed file with 26 additions and 7 deletions.
33 changes: 26 additions & 7 deletions js/creator-23.js
Original file line number Diff line number Diff line change
Expand Up @@ -318,19 +318,27 @@ const setSymbolAliases = new Map([
["pmei", "sld"],
]);
//Mana Symbols
const mana = new Map();""
const mana = new Map();
// var manaSymbols = [];
loadManaSymbols(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20',
'w', 'u', 'b', 'r', 'g', 'c', 'x', 'y', 'z', 't', 'untap', 'e', 's', 'oldtap', 'originaltap', 'purple', "a", "inf", "alchemy"]);
'w', 'u', 'b', 'r', 'g', 'c', 'x', 'y', 'z', 't', 'untap', 's', 'oldtap', 'originaltap', 'purple', "inf", "alchemy"]);
loadManaSymbols(true, ['e', 'a']);
loadManaSymbols(['wu', 'wb', 'ub', 'ur', 'br', 'bg', 'rg', 'rw', 'gw', 'gu', '2w', '2u', '2b', '2r', '2g', 'wp', 'up', 'bp', 'rp', 'gp', 'p',
'wup', 'wbp', 'ubp', 'urp', 'brp', 'bgp', 'rgp', 'rwp', 'gwp', 'gup', 'purplew', 'purpleu', 'purpleb', 'purpler', 'purpleg',
'2purple', 'purplep'], [1.2, 1.2]);
loadManaSymbols(['bar.png', 'whitebar.png']);
loadManaSymbols(['chaos'], [1.2, 1]);
loadManaSymbols(['tk'], [0.8, 1]);
loadManaSymbols(['planeswalker'], [0.6, 1.2]);
loadManaSymbols(['+1', '+2', '+3', '+4', '+5', '+6', '+7', '+8', '+9', '-1', '-2', '-3', '-4', '-5', '-6', '-7', '-8', '-9', '+0'], [1.6, 1]);
function loadManaSymbols(manaSymbolPaths, size = [1, 1]) {
loadManaSymbols(true, ['chaos'], [1.2, 1]);
loadManaSymbols(true, ['tk'], [0.8, 1]);
loadManaSymbols(true, ['planeswalker'], [0.6, 1.2]);
loadManaSymbols(true, ['+1', '+2', '+3', '+4', '+5', '+6', '+7', '+8', '+9', '-1', '-2', '-3', '-4', '-5', '-6', '-7', '-8', '-9', '+0'], [1.6, 1]);
function loadManaSymbols(matchColor, manaSymbolPaths, size = [1, 1]) {
if (typeof matchColor === 'object') {
// Hacky way to add a default argument for matchColor without breaking the function call from other places
size = manaSymbolPaths || [1,1];
manaSymbolPaths = matchColor;
matchColor = false;
}

manaSymbolPaths.forEach(item => {
var manaSymbol = {};
if (typeof item == 'string') {
Expand All @@ -351,6 +359,9 @@ function loadManaSymbols(manaSymbolPaths, size = [1, 1]) {
loadManaSymbols([manaSymbol.path.replace(manaSymbol.name, 'back' + i + item[1])])
}
}

manaSymbol.matchColor = matchColor;

manaSymbol.width = size[0];
manaSymbol.height = size[1];
manaSymbol.image = new Image();
Expand Down Expand Up @@ -3724,6 +3735,12 @@ function writeText(textObject, targetContext) {
} else {
manaSymbol = getManaSymbol(possibleCode) || getManaSymbol(possibleCode.split('').reverse().join(''));
}

var origManaSymbolColor = manaSymbolColor;
if (manaSymbol.matchColor && manaSymbolColor !== undefined) {
manaSymbolColor = textColor;
}

var manaSymbolSpacing = textSize * 0.04 + textManaSpacing;
var manaSymbolWidth = manaSymbol.width * textSize * 0.78;
var manaSymbolHeight = manaSymbol.height * textSize * 0.78;
Expand Down Expand Up @@ -3784,6 +3801,8 @@ function writeText(textObject, targetContext) {
lineContext.drawImage(fakeShadow, 0, 0);
//fake shadow ends (thanks, safari)
currentX += manaSymbolWidth + manaSymbolSpacing * 2;

manaSymbolColor = origManaSymbolColor;
} else {
wordToWrite = word;
}
Expand Down

0 comments on commit b8c500e

Please sign in to comment.