forked from GithubMirrors/cardconjurer
		
	mana symbol improvements
This commit is contained in:
		| @@ -569,6 +569,7 @@ function writeText(textObject, targetContext) { | |||||||
| 		var textShadowOffsetY = scaleHeight(textObject.shadowY) || 0; | 		var textShadowOffsetY = scaleHeight(textObject.shadowY) || 0; | ||||||
| 		var textShadowBlur = scaleHeight(textObject.shadowBlur) || 0; | 		var textShadowBlur = scaleHeight(textObject.shadowBlur) || 0; | ||||||
| 		var textArcRadius = scaleHeight(textObject.arcRadius) || 0; | 		var textArcRadius = scaleHeight(textObject.arcRadius) || 0; | ||||||
|  | 		var manaSymbolColor = textObject.manaSymbolColor || null; | ||||||
| 		if (textArcRadius > 0) { | 		if (textArcRadius > 0) { | ||||||
| 			//Buffers the canvases accordingly | 			//Buffers the canvases accordingly | ||||||
| 			var canvasMargin = 300 + textArcRadius; | 			var canvasMargin = 300 + textArcRadius; | ||||||
| @@ -725,6 +726,8 @@ function writeText(textObject, targetContext) { | |||||||
| 					textArcRadius = parseInt(possibleCode.replace('arcradius', '')) || 0; | 					textArcRadius = parseInt(possibleCode.replace('arcradius', '')) || 0; | ||||||
| 				} else if (possibleCode.includes('arcstart')) { | 				} else if (possibleCode.includes('arcstart')) { | ||||||
| 					textArcStart = parseFloat(possibleCode.replace('arcstart', '')) || 0; | 					textArcStart = parseFloat(possibleCode.replace('arcstart', '')) || 0; | ||||||
|  | 				} else if (possibleCode.includes('manacolor')) { | ||||||
|  | 					manaSymbolColor = possibleCode.replace('manacolor', '') || 'white'; | ||||||
| 				} else if (possibleCode.includes('fixtextalign')) { | 				} else if (possibleCode.includes('fixtextalign')) { | ||||||
| 					textAlign = realTextAlign; | 					textAlign = realTextAlign; | ||||||
| 				} else if (findManaSymbolIndex(possibleCode.replace('/', '')) > -1 || findManaSymbolIndex(possibleCode.replace('/', '').split('').reverse().join('')) > -1) { | 				} else if (findManaSymbolIndex(possibleCode.replace('/', '')) > -1 || findManaSymbolIndex(possibleCode.replace('/', '').split('').reverse().join('')) > -1) { | ||||||
| @@ -784,6 +787,8 @@ function writeText(textObject, targetContext) { | |||||||
| 							fakeShadowContext.drawImageArc(backImage, manaSymbolX, manaSymbolY, manaSymbolWidth, manaSymbolHeight, textArcRadius, textArcStart, currentX); | 							fakeShadowContext.drawImageArc(backImage, manaSymbolX, manaSymbolY, manaSymbolWidth, manaSymbolHeight, textArcRadius, textArcStart, currentX); | ||||||
| 						} | 						} | ||||||
| 						fakeShadowContext.drawImageArc(manaSymbol.image, manaSymbolX, manaSymbolY, manaSymbolWidth, manaSymbolHeight, textArcRadius, textArcStart, currentX); | 						fakeShadowContext.drawImageArc(manaSymbol.image, manaSymbolX, manaSymbolY, manaSymbolWidth, manaSymbolHeight, textArcRadius, textArcStart, currentX); | ||||||
|  | 					} else if (manaSymbolColor) { | ||||||
|  | 						fakeShadowContext.fillImage(manaSymbol.image, manaSymbolX, manaSymbolY, manaSymbolWidth, manaSymbolHeight, manaSymbolColor); | ||||||
| 					} else { | 					} else { | ||||||
| 						if (manaSymbol.backs) { | 						if (manaSymbol.backs) { | ||||||
| 							fakeShadowContext.drawImage(backImage, manaSymbolX, manaSymbolY, manaSymbolWidth, manaSymbolHeight); | 							fakeShadowContext.drawImage(backImage, manaSymbolX, manaSymbolY, manaSymbolWidth, manaSymbolHeight); | ||||||
| @@ -869,12 +874,26 @@ CanvasRenderingContext2D.prototype.drawImageArc = function(image, x, y, width, h | |||||||
| 	this.drawImage(image, 0, -radius, width, height); | 	this.drawImage(image, 0, -radius, width, height); | ||||||
| 	this.restore(); | 	this.restore(); | ||||||
| } | } | ||||||
|  | CanvasRenderingContext2D.prototype.fillImage = function(image, x, y, width, height, color = 'white', margin = 10) { | ||||||
|  | 	var canvas = document.createElement('canvas'); | ||||||
|  | 	canvas.width = width + margin * 2; | ||||||
|  | 	canvas.height = height + margin * 2; | ||||||
|  | 	var context = canvas.getContext('2d'); | ||||||
|  | 	context.drawImage(image, margin, margin, width, height); | ||||||
|  | 	context.globalCompositeOperation = 'source-in'; | ||||||
|  | 	context.fillStyle = pinlineColors(color); | ||||||
|  | 	context.fillRect(0, 0, width + margin * 2, height + margin * 2); | ||||||
|  | 	this.drawImage(canvas, x - margin, y - margin, width + margin * 2, height + margin * 2); | ||||||
|  | } | ||||||
| function widthToAngle(width, radius) { | function widthToAngle(width, radius) { | ||||||
| 	return width / radius; | 	return width / radius; | ||||||
| } | } | ||||||
| function curlyQuotes(input) { | function curlyQuotes(input) { | ||||||
| 	return input.replace(/ '/g, ' ‘').replace(/^'/, '‘').replace(/' /g, '’ ').replace(/'$/, '’').replace(/ "/g, ' “').replace(/^"/, '“').replace(/" /g, '” ').replace(/\."/, '”').replace(/"$/, '”'); | 	return input.replace(/ '/g, ' ‘').replace(/^'/, '‘').replace(/' /g, '’ ').replace(/'$/, '’').replace(/ "/g, ' “').replace(/^"/, '“').replace(/" /g, '” ').replace(/\."/, '”').replace(/"$/, '”'); | ||||||
| } | } | ||||||
|  | function pinlineColors(color) { | ||||||
|  | 	return color.replace('white', '#fcfeff').replace('blue', '#0075be').replace('black', '#272624').replace('red', '#ef3827').replace('green', '#007b43') | ||||||
|  | } | ||||||
| //ART TAB | //ART TAB | ||||||
| function uploadArt(imageSource, otherParams) { | function uploadArt(imageSource, otherParams) { | ||||||
| 	art.src = imageSource; | 	art.src = imageSource; | ||||||
|   | |||||||
							
								
								
									
										12
									
								
								js/frames/manaSymbolsOutline.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								js/frames/manaSymbolsOutline.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | |||||||
|  | //checks to see if it needs to run | ||||||
|  | if (!card.manaSymbols.includes('/js/frames/manaSymbolsOutline.js')) { | ||||||
|  | 	card.manaSymbols.push('/js/frames/manaSymbolsOutline.js'); | ||||||
|  | } | ||||||
|  | if (findManaSymbolIndex('cw') == -1) { | ||||||
|  | 	loadManaSymbols([ | ||||||
|  | 		'outline/outlinew', 'outline/outlineu', 'outline/outlineb', 'outline/outliner', 'outline/outlineg', | ||||||
|  | 		'outline/outlinec', 'outline/outlines', 'outline/outlinex', 'outline/outline0', 'outline/outline1', | ||||||
|  | 		'outline/outline2', 'outline/outline3', 'outline/outline4', 'outline/outline5', 'outline/outline6', | ||||||
|  | 		'outline/outline7', 'outline/outline8', 'outline/outline9' | ||||||
|  | 	]); | ||||||
|  | } | ||||||
							
								
								
									
										47
									
								
								js/frames/packMysticalArchive.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								js/frames/packMysticalArchive.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,47 @@ | |||||||
|  | //Create objects for common properties across available frames | ||||||
|  | var masks = [{src:'/img/frames/m15/regular/m15MaskPinline.png', name:'Pinline'}, {src:'/img/frames/m15/regular/m15MaskTitle.png', name:'Title'}, {src:'/img/frames/m15/regular/m15MaskType.png', name:'Type'}, {src:'/img/frames/m15/regular/m15MaskRules.png', name:'Rules'}, {src:'/img/frames/m15/regular/m15MaskFrame.png', name:'Frame'}, {src:'/img/frames/m15/regular/m15MaskBorder.png', name:'Border'}]; | ||||||
|  | var bounds = {x:0.7573, y:0.8848, width:0.188, height:0.0733}; | ||||||
|  | //defines available frames | ||||||
|  | availableFrames = [ | ||||||
|  | 	{name:'White Frame', src:'/img/frames/m15/regular/m15FrameW.png', masks:masks}, | ||||||
|  | 	{name:'Blue Frame', src:'/img/frames/m15/regular/m15FrameU.png', masks:masks}, | ||||||
|  | 	{name:'Black Frame', src:'/img/frames/m15/regular/m15FrameB.png', masks:masks}, | ||||||
|  | 	{name:'Red Frame', src:'/img/frames/m15/regular/m15FrameR.png', masks:masks}, | ||||||
|  | 	{name:'Green Frame', src:'/img/frames/m15/regular/m15FrameG.png', masks:masks}, | ||||||
|  | 	{name:'Multicolored Frame', src:'/img/frames/m15/regular/m15FrameM.png', masks:masks}, | ||||||
|  | 	{name:'Artifact Frame', src:'/img/frames/m15/regular/m15FrameA.png', masks:masks}, | ||||||
|  | 	{name:'Land Frame', src:'/img/frames/m15/regular/m15FrameL.png', masks:masks} | ||||||
|  | ]; | ||||||
|  | //disables/enables the "Load Frame Version" button | ||||||
|  | document.querySelector('#loadFrameVersion').disabled = false; | ||||||
|  | //defines process for loading this version, if applicable | ||||||
|  | document.querySelector('#loadFrameVersion').onclick = async function() { | ||||||
|  | 	//resets things so that every frame doesn't have to | ||||||
|  | 	await resetCardIrregularities(); | ||||||
|  | 	//sets card version | ||||||
|  | 	card.version = 'mysticalArchive'; | ||||||
|  | 	loadScript('/js/frames/manaSymbolsOutline.js'); | ||||||
|  | 	//art bounds | ||||||
|  | 	card.artBounds = {x:0, y:0.1129, width:1, height:0.4429}; | ||||||
|  | 	autoFitArt(); | ||||||
|  | 	//set symbol bounds | ||||||
|  | 	card.setSymbolBounds = {x:0.9213, y:0.5910, width:0.12, height:0.0410, vertical:'center', horizontal: 'right'}; | ||||||
|  | 	resetSetSymbol(); | ||||||
|  | 	//watermark bounds | ||||||
|  | 	card.watermarkBounds = {x:0.5, y:0.7762, width:0.75, height:0.2305}; | ||||||
|  | 	resetWatermark(); | ||||||
|  | 	//text | ||||||
|  | 	loadTextOptions({ | ||||||
|  | 		mana: {name:'Mana Cost', text:'', y:0.0613, width:0.9292, height:71/2100, oneLine:true, size:71/1638, align:'right', manaCost:true, manaSpacing:0, manaPrefix:'outline', manaSymbolColor:'white'}, | ||||||
|  | 		title: {name:'Title', text:'', x:0.0854, y:0.0522, width:0.8292, height:0.0543, oneLine:true, font:'belerenb', size:0.0381}, | ||||||
|  | 		type: {name:'Type', text:'', x:0.0854, y:0.5664, width:0.8292, height:0.0543, oneLine:true, font:'belerenb', size:0.0324}, | ||||||
|  | 		rules: {name:'Rules Text', text:'', x:0.086, y:0.6303, width:0.828, height:0.2875, size:0.0362}, | ||||||
|  | 		pt: {name:'Power/Toughness', text:'', x:0.7928, y:0.902, width:0.1367, height:0.0372, size:0.0372, font:'belerenbsc', oneLine:true, align:'center'} | ||||||
|  | 	}); | ||||||
|  | } | ||||||
|  | //loads available frames | ||||||
|  | loadFramePack(); | ||||||
|  | //Only for the main version as the webpage loads: | ||||||
|  | if (!card.text) { | ||||||
|  | 	document.querySelector('#loadFrameVersion').click(); | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user
	 Kyle
					Kyle