mse version: 0.3.4
game: magic
short name: Future
full name: Futureshift
icon: card-sample.png
position hint: 050

card width: 375
card height: 523
card dpi: 150

#By: Pichoro
#Images by Spiderboy4, Buttock1234, and Artfreakwiu
############################################################## Extra scripts

init script:
	mask_hybrid_with_land := { styling.grey_hybrid_name }
	
	template_suffix := [card: "card.png", pt: "pt.png", textbox: "textbox.png", typeline: "typeline.png"]
	template := { input + template_suffix[type] }
	land_template := { (if input == "a" then "c" else input) + "l" + template_suffix[type] }
	color_combination := {
		# The base hybrid, without the outer frame blended over it
		base := base_hybrid[shape][color_count]()
		
		# Put a frame around it?
		if land and not colored_lands then
			masked_blend(
				mask:  "multicolor_blend_{type}.png",
				dark:  land_template("c"),
				light: base,
			)
		else if multi then 
			masked_blend(
				mask:  "multicolor_blend_{type}.png",
				dark:  template("m"),
				light: base,
			)
		else if artifact then 
			masked_blend(
				mask:  "artifact_blend_{type}.png",
				dark:  template("a"),
				light: base,
			)
		else if color_count > 1 and mask_hybrid_with_land() then
			masked_blend(
				mask:  "hybrid_blend_{type}.png",
				dark:  land_template("c"),
				light: base,
			)
		else base
	}
	
	# Use the normal tap symbol
	mana_t := {
		if      styling.tap_symbol == "old"        then "old"
		else if styling.tap_symbol == "diagonal T" then "older"
		else                                            "new"
	}
	
	# Use guild mana symbols?
	guild_mana := { styling.use_guild_mana_symbols }
	
	colorless_color := {
		if card.card_color=="white" then "w"
		else if card.card_color=="blue" then "u"
		else if card.card_color=="black" then "b"
		else if card.card_color=="red" then "r"
		else if card.card_color=="green" then "g"
		else "c"
	}
	
	font_colors_white := { input == "b" or input == "bl" or input == "u" or input == "ul" or input == "r" or input == "rl" or input == "g" or input == "gl" }
	
	font_white := {
		hybrid   := chosen(choice:"hybrid")
		artifact := chosen(choice:"artifact")
		colors := sort_text( order: "(wubrg)"
			           , (if chosen(choice:"white") then "w")
			           + (if chosen(choice:"blue")  then "u")
			           + (if chosen(choice:"black") then "b")
			           + (if chosen(choice:"red")   then "r")
			           + (if chosen(choice:"green") then "g"))
			           + (if artifact               then "a")
		font_colors_white(
			if chosen(choice:"land") and chosen(choice:"white") then "wl"
			else if chosen(choice:"land") and chosen(choice:"blue") then "ul"
			else if chosen(choice:"land") and chosen(choice:"black") then "bl"
			else if chosen(choice:"land") and chosen(choice:"red") then "rl"
			else if chosen(choice:"land") and chosen(choice:"green") then "gl"
			else if chosen(choice:"land") then "l"
			else if input == "artifact, multicolor" then "a"
			else if chosen(choice:"multicolor")     then "m"
			else if artifact and not hybrid         then "a"
			else if colors == ""                    then "c"
			else colors[
				font_color_positions
				[	if      chosen(choice:"horizontal") then "horizontal"
					else if chosen(choice:"vertical")   then "vertical"
					else if chosen(choice:"overlay")    then "overlay"
					else                                     "radial"
				][number_of_items(in: colors)]
			]
		)
	}
	
	paintbrush_color:= { if contains(card.card_color, match:"land") then "white"
		else if contains(card.card_color, match:"artifact") or contains(card.card_color, match:"multicolor") or contains(card.card_color, match:"white") then "black"
		else "white"
	}
	
	typesymbol_color:= { if contains(card.card_color, match:"artifact") then "black"
		else if card.card_color == "multicolor" then "black"
		else if card.card_color == "white" then "black"
		else if card.card_color == "land" then (
			if contains(card.card_color, match:"black") or
			   contains(card.card_color, match:"blue") or
			   contains(card.card_color, match:"red") or
			   contains(card.card_color, match:"green") then "white"
			else "black"
		) else "white"
	}
	
	#Use of "Enchant" rather than "Enchantment" below is intentional, to allow functionality for users who wish to use "Enchant Creature" and the like.
	typesymbol_type:= { if contains(card.type, match:"Instant") then "instant"
		else if contains(card.type, match:"Sorcery") then "sorcery"
		else if contains(card.type, match:"Tribal") then "multitype"
		else if contains(card.type, match:"Planeswalker") then "multitype"
		else if contains(card.type, match:"Creature") and
		   not contains(card.type, match:"Land") and
		   not contains(card.type, match:"Artifact") and
		   not contains(card.type, match:"Enchant") then "creature"
		else if contains(card.type, match:"Artifact") and
		   not contains(card.type, match:"Land") and
		   not contains(card.type, match:"Creature") and
		   not contains(card.type, match:"Enchant") then "artifact"
		else if contains(card.type, match:"Land") and
		   not contains(card.type, match:"Creature") and
		   not contains(card.type, match:"Artifact") and
		   not contains(card.type, match:"Enchant") then "land"
		else if contains(card.type, match:"Enchant") and
		   not contains(card.type, match:"Land") and
		   not contains(card.type, match:"Artifact") and
		   not contains(card.type, match:"Creature") then "enchantment"
		else "multitype"
		}
	
	card_shape := { "shifted" }

############################################################## Set info fields
set info style:
	symbol:
		variation:
			name: invertedcommon
			border radius: 0.10
			fill type: solid
			fill color:   rgb(255,255,255)
			border color: rgb(0,0,0)

############################################################## Extra style options

styling field:
	type: boolean
	name: grey hybrid name
	description: Use a grey background for the name and type line on hybrid cards. This is done on real cards.
styling field:
	type: boolean
	name: use guild mana symbols
	description: Use the Ravnica guild symbols instead of the official half/half circles for hybrid mana.
	initial: no
styling field:
	type: choice
	name: tap symbol
	description: What tap symbol should be used on cards?
	initial: modern
	choice: modern
	choice: old
	choice: diagonal T
styling field:
	type: boolean
	name: futuristic mana symbols
	description: Use the symbols of the casting cost line inside the text box as well
	initial: no
styling field:
	type: choice
	name: center text
	description: When to center text (short text only means only on one-line cards with no flavor text)
	choice: always
	choice: short text only
	choice: never
	initial: never
styling field:
	type: boolean
	name: inverted common symbol
	description: Should the common rarity symbol be inverted, like in Coldsnap?
	initial: no

styling style:
	use guild mana symbols:
		choice images:
			yes: /magic-mana-small.mse-symbol-font/mana_guild_rg.png
			no:  /magic-mana-small.mse-symbol-font/mana_rg.png
	futuristic mana symbols:
		choice images:
			yes: /magic-mana-future.mse-symbol-font/mana_w.png
			no:  /magic-mana-small.mse-symbol-font/mana_w.png
	tap symbol:
		render style: both
		choice images:
			modern:     /magic-mana-large.mse-symbol-font/mana_t.png
			old:        /magic-mana-large.mse-symbol-font/mana_t_old.png
			diagonal T: /magic-mana-large.mse-symbol-font/mana_t_older.png

############################################################## Card fields
card style:
	############################# Background stuff
	border color:
		left: 0
		top : 0
		width:	375
		height:	523
		radius: 18
		left width:   17
		right width:  17
		top width:    17
		bottom width: 18
		mask: bordermask.png
		z index: 2
	card color:
		left:	0
		top:	0
		width:	375
		height:	523
		z index: -2
		render style: image
		popup style: in place
		image: { card_background() }

	############################# Name line
	name:
		left: { if card.card_symbol=="none" then 73 else 88 }
		top : 30
		width: { if card.card_symbol=="none" then 269 else 254 }
		height: 26
		alignment: middle shrink-overflow
		padding bottom: 0
		z index: 4
		font:
			name: Matrix
			size: 18
			color:
				script:
					if styling.grey_hybrid_name and contains(card.card_color, match:"land") and
					   contains(card.card_color, match:"horizontal") or
					   contains(card.card_color, match:"radial") or
					   contains(card.card_color, match:"vertical") and
					   not contains(card.card_color, match:"multicolor") then rgb(0,0,0)
					else if contains(card.card_color, match:"land") and
					   contains(card.card_color, match:"multicolor") then rgb(0,0,0)
					else if styling.grey_hybrid_name and contains(card.card_color, match:"hybrid") then rgb(0,0,0)
					else if contains(card.card_color, match:"artifact") then (
						if contains(card.card_color, match:"blue") or
						   contains(card.card_color, match:"black") or
						   contains(card.card_color, match:"red") or
						   contains(card.card_color, match:"green") then rgb(255,255,255)
						else rgb(0,0,0)
					) else font_color(card.card_color)
	casting cost:
		left: 4
		top: 39
		height: 254
		width: 82
		alignment: top left
		direction: vertical
		symbol font:
			name: magic-mana-future
			size: 22
			scale down to: 22
			alignment: bottom right
		always symbol: true
		z index: 3
		padding top: 0
		mask: costmask.png
	card symbol:
		left: {if card.card_symbol=="none" then 50 else 67}
		top : 31
		height: 20
		width: 14
		z index: 4
		render style: image
		choice images:
			tombstone: tombstone.png

	############################# Image
	image:
		left: 32
		top: 44
		width: 327
		height: 310
		z index: 0
		mask: mask_image.png

	############################# Card type
	type:
		left: 49
		top : 300
		width: { 300 - max(21,card_style.rarity.content_width) }
		height: 20
		alignment: middle shrink-overflow
		z index: 3
		padding top: 2
		font:
			name: Matrix
			size: 14
			color:
				script:
					if styling.grey_hybrid_name and contains(card.card_color, match:"land") and
					   contains(card.card_color, match:"horizontal") or
					   contains(card.card_color, match:"radial") or
					   contains(card.card_color, match:"vertical") and
					   not contains(card.card_color, match:"multicolor") then rgb(0,0,0)
					else if contains(card.card_color, match:"land") and
					   contains(card.card_color, match:"multicolor") then rgb(0,0,0)
					else if styling.grey_hybrid_name and contains(card.card_color, match:"hybrid") then rgb(0,0,0)
					else if contains(card.card_color, match:"artifact") then (
						if contains(card.card_color, match:"blue") or
						   contains(card.card_color, match:"black") or
						   contains(card.card_color, match:"red") or
						   contains(card.card_color, match:"green") then rgb(255,255,255)
						else rgb(0,0,0)
					) else font_color(card.card_color)
			separator color: rgb(128,128,128)
	rarity:
		right: 353
		top : 302
		width: 22
		height: 22
		z index: 3
		alignment: middle right
		render style: image
		choice images:
			# Images based on the set symbol
			basic land:
				script:
					if styling.inverted_common_symbol then symbol_variation(symbol: set.symbol, variation: "invertedcommon")
					else symbol_variation(symbol: set.symbol, variation: "common")
			common:
				script:
					if styling.inverted_common_symbol then symbol_variation(symbol: set.symbol, variation: "invertedcommon")
					else symbol_variation(symbol: set.symbol, variation: "common")
			uncommon:   script: symbol_variation(symbol: set.symbol, variation: "uncommon")
			rare:       script: symbol_variation(symbol: set.symbol, variation: "rare")
			special:    script: symbol_variation(symbol: set.symbol, variation: "special")

	############################# Text box
	text:
		left: 36
		top : 330
		width: 301
		height: 138
		font:
			name: MPlantin
			italic name: MPlantin-Italic
			size: 15
			scale down to: 6
			color:
				script:
					if not contains(card.card_color, match:"land") then rgb(0,0,0)
					else font_color(card.card_color)
		symbol font:
			name:
				{ if styling.futuristic_mana_symbols then "magic-mana-future"
				else "magic-mana-small" }
			size: 15
		alignment:
			script:
				if (styling.center_text == "short text only" and
				   not contains(match:"\n", card.rule_text) and
				   card.flavor_text == "<i-flavor></i-flavor>" and
				   card_style.text.content_lines <= 2) or
				   styling.center_text == "always"
				then "middle center"
				else "middle left"
		z index: 3
		padding left:   6
		padding top:    2
		padding right:  4
		padding bottom: 2
		line height hard: 1.2
		line height soft: 0.9
		line height line: 1.5
	watermark:
		left: 117
		top : 321
		width: 152
		height: 152
		z index: 2
		render style: image
		alignment: middle center
		include file: magic-watermarks.mse-include/watermarks

	############################# PT
	pt:
		z index: 4
		left:	287
		top:	470
		width:	60
		height:	28
		alignment: center middle
		font:
			name: Mplantin
			size: 17
			weight: bold
			color:
				script:
					if styling.grey_hybrid_name and contains(card.card_color, match:"land") and
					   contains(card.card_color, match:"horizontal") or
					   contains(card.card_color, match:"radial") or
					   contains(card.card_color, match:"vertical") and
					   not contains(card.card_color, match:"multicolor") then rgb(0,0,0)
					else if contains(card.card_color, match:"land") and
					   contains(card.card_color, match:"multicolor") then rgb(0,0,0)
					else if styling.grey_hybrid_name and contains(card.card_color, match:"hybrid") then rgb(0,0,0)
					else if contains(card.card_color, match:"artifact") then (
						if contains(card.card_color, match:"blue") or
						   contains(card.card_color, match:"black") or
						   contains(card.card_color, match:"red") or
						   contains(card.card_color, match:"green") then rgb(255,255,255)
						else rgb(0,0,0)
					) else font_color(card.card_color)
			separator color: rgb(200,0,0)
	############################# Card sorting / numbering
	############################# Copyright stuff

	illustrator:
		right: { if card.pt != "" then 275 else 338 }
		top : 475
		left: 30
		height: 16
		z index: 2
		alignment: middle right
		font:
			name: Matrix
			size: 10
			color:
				script:
					if contains(card.card_color, match:"land") then rgb(255,255,255)
					else if contains(card.card_color, match:"artifact") or
					contains(card.card_color, match:"multicolor") or
					contains(card.card_color, match:"white") then rgb(0,0,0)
					else rgb(255,255,255)

	copyright line:
		left: 30
		top : 488
		right: { if card.pt != "" then 275 else 338 }
		height: 12
		z index: 2
		alignment: bottom right
		font:
			name: MPlantin
			size: 7
			color:
				script:
					if contains(card.card_color, match:"land") then rgb(255,255,255)
					else if contains(card.card_color, match:"artifact") or
					contains(card.card_color, match:"multicolor") or
					contains(card.card_color, match:"white") then rgb(0,0,0)
					else rgb(255,255,255)
############################################################## Extra card fields
extra card field:
	type: choice
	name: textbox
	script: card.card_color
	editable: false
	save value: false
extra card field:
	type: choice
	name: typeline
	script: card.card_color
	editable: false
	save value: false
extra card field:
	type: choice
	name: pt box
	script: card.card_color
	editable: false
	save value: false
extra card field:
	type: choice
	name: type symbol
	choice:
		name: white
		choice: artifact
		choice: creature
		choice: enchantment
		choice: instant
		choice: land
		choice: multitype
		choice: sorcery
	choice:
		name: black
		choice: artifact
		choice: creature
		choice: enchantment
		choice: instant
		choice: land
		choice: multitype
		choice: sorcery
extra card field:
	type: choice
	name: paintbrush
	script: paintbrush_color(value)
	editable: false
	choice: black
	choice: white

extra card style:
	textbox:
		left: 23
		top: 320
		width: 335
		height: 152
		render style: image
		popup style: in place
		image: { card_textbox() }
		z index: 1
	typeline:
		left: 18
		top: 17
		width: 339
		height: 464
		render style: image
		popup style: in place
		image: { card_typeline() }
		z index: 2
	pt box:
		left: 285
		top: 452
		width: 70
		height: 52
		z index: 3
		visible: { card.pt != "" }
		render style: image
		image: { card_ptbox() }
	type symbol:
		left: 24
		top: 24
		width: 21
		height: 20
		z index: 4
		render style: image
		choice images:
			white artifact:    /magic-future-common.mse-include/artifact_white.png
			black artifact:    /magic-future-common.mse-include/artifact_black.png
			white creature:    /magic-future-common.mse-include/creature_white.png
			black creature:    /magic-future-common.mse-include/creature_black.png
			white enchantment: /magic-future-common.mse-include/enchantment_white.png
			black enchantment: /magic-future-common.mse-include/enchantment_black.png
			white instant:     /magic-future-common.mse-include/instant_white.png
			black instant:     /magic-future-common.mse-include/instant_black.png
			white land:        /magic-future-common.mse-include/land_white.png
			black land:        /magic-future-common.mse-include/land_black.png
			white multitype:   /magic-future-common.mse-include/multitype_white.png
			black multitype:   /magic-future-common.mse-include/multitype_black.png
			white sorcery:     /magic-future-common.mse-include/sorcery_white.png
			black sorcery:     /magic-future-common.mse-include/sorcery_black.png
	paintbrush
		right: { ( if card.pt != "" then 275 else 338 ) - card_style.illustrator.content_width }
		top : 476
		width: 40
		height: 15
		z index: 2
		render style: image
		visible: { card.illustrator != "" }
		choice images:
			black: /magic-future-common.mse-include/paintbrush_black.png
			white: /magic-future-common.mse-include/paintbrush_white.png
