Initial commit

This commit is contained in:
CajunAvenger
2021-07-09 02:07:58 -05:00
parent 44a72dbc6f
commit eda330eee8
22968 changed files with 376881 additions and 0 deletions

View File

@@ -0,0 +1,200 @@
mse version: 0.3.8
short name: PlaneSculptors
full name: PlaneSculptors Export 1.4
position hint: 006
version: 2018-06-24
installer group: magic/Export/planesculptors
create directory: true
depends on:
package: magic.mse-game
version: 2020-04-01
game: magic
file type: *.txt|*.txt|*.*|*.*
# By caeonosphere
# Written by modifying thequinn's IsochronDrafter exporter ()
# Namecheck by cajun
option field:
type: choice
name: export images
choice: no
choice: .jpg
choice: .png
choice: .full.jpg
choice: .full.png
description: Export images
script:
symbol_font := "magic-mana-small"
symbol_font_size := 12
escape_linebreaks := replace@(match: "\n", replace: "///br///")
remove_linebreaks := replace@(match: "\n", replace: "")
remove_brackets := replace@(match: "]", replace: "", in_context: "\\[(\\+|-)?[0-9]+<match>: ")+
replace@(match: "\\[", replace: "", in_context: "<match>(\\+|-)?[0-9]+: ")
exporter_name_filter := filter_text@(match:"!exporte?r?name [^\n]+")
exporter_name_grabber := replace@(match:"!exporte?r?name ", replace:"")
card_name := { replace(if exporter_name_grabber(exporter_name_filter(card.notes)) != "" then exporter_name_grabber(exporter_name_filter(card.notes)) else card.name, match:" $", replace:"") }
compare_card_name := { if exporter_name_grabber(exporter_name_filter(input.notes)) != "" then exporter_name_grabber(exporter_name_filter(input.notes)) else input.name }
determine_shape := {
if (contains(card.shape, match:"normal") or contains(card.shape, match:"planeswalker") or card.loyalty_2 != "") and card.name_2 != "" then "double"
else if contains(card.shape, match:"double") then "double"
else if contains(card.shape, match:"plane card") then "plane"
else if contains(card.shape, match:"leveler") then "normal"
else if contains(card.shape, match:"saga") then "normal"
else if contains(card.shape, match:"adventure") then "vsplit"
else if contains(card.shape, match:"aftermath") then "vsplit"
else if contains(card.shape, match:"planeswalker") then "normal"
else if contains(card.shape, match:"shifted") then "normal"
else replace(card.shape, match:" faced", replace:"")
}
paragraph_count := replace@(match:"\n", replace:"<22>")+
filter_text@(match:"<22>")
write_leveler := {
#Check for Mainframe special text first
(if card.special_text or else "" != "" then remove_brackets(card.special_text) else
card.rule_text
+"\nLEVEL "+card.level_1+" | "
+(if card.pt_2 !="" then card.pt_2+" | ")
+card.rule_text_2
+"\n"+(if card.level_2 !="" then "LEVEL "+card.level_2+" | ")
+(if card.pt_3 !="" then card.pt_3+" | ")
+card.rule_text_3)
}
write_plane := {
card.rule_text
+ (if card.rule_text_2 != "" then "\n" + card.rule_text_2)
}
write_walker := {
#Check for Mainframe special text first
(if card.special_text or else "" != "" then remove_brackets(card.special_text) else
# The First Ability
card.loyalty_cost_1
+(if card.loyalty_cost_1 !="" then ": ")
+split_text(match:"\n", card.rule_text).0
# The Second Ability
+(if contains(paragraph_count(card.rule_text), match:"<22>") then "\n")
+card.loyalty_cost_2
+(if card.loyalty_cost_2 !="" then ": ")
+(if contains(paragraph_count(card.rule_text), match:"<22>") then split_text(match:"\n", card.rule_text).1)
# The Third Ability
+(if contains(paragraph_count(card.rule_text), match:"<22><>") then "\n")
+card.loyalty_cost_3
+(if card.loyalty_cost_3 !="" then ": ")
+(if contains(paragraph_count(card.rule_text), match:"<22><>") then split_text(match:"\n", card.rule_text).2)
# The Fourth Ability
+(if contains(paragraph_count(card.rule_text), match:"<22><><EFBFBD>") then "\n")
+(if card.loyalty_2 == "" then card.loyalty_cost_4)
+(if card.loyalty_cost_4 !="" and card.loyalty_2 == "" then ": ")
+(if contains(paragraph_count(card.rule_text), match:"<22><><EFBFBD>") then split_text(match:"\n", card.rule_text).3))
+"\n"
+"Starting loyalty: "+card.loyalty
}
write_walker_2 := {
#Check for Mainframe special text first
(if card.special_text_2 or else "" != "" then remove_brackets(card.special_text_2) else
# The First Ability
card.loyalty_cost_4
+(if card.loyalty_cost_4 !="" then ": ")
+split_text(match:"\n", card.rule_text_2).0
# The Second Ability
+(if contains(paragraph_count(card.rule_text), match:"<22>") then "\n")
+card.loyalty_cost_5
+(if card.loyalty_cost_5 !="" then ": ")
+(if contains(paragraph_count(card.rule_text_2), match:"<22>") then split_text(match:"\n", card.rule_text_2).1)
# The Third Ability
+(if contains(paragraph_count(card.rule_text), match:"<22><>") then "\n")
+card.loyalty_cost_6
+(if card.loyalty_cost_6 !="" then ": ")
+(if contains(paragraph_count(card.rule_text_2), match:"<22><>") then split_text(match:"\n", card.rule_text_2).2)
# The Fourth Ability
+(if contains(paragraph_count(card.rule_text), match:"<22><><EFBFBD>") then "\n")
+card.loyalty_cost_7
+(if card.loyalty_cost_7 !="" then ": ")
+(if contains(paragraph_count(card.rule_text_2), match:"<22><><EFBFBD>") then split_text(match:"\n", card.rule_text_2).3))
+(if card.loyalty_2 != "" then "\n"+"Starting loyalty: "+card.loyalty_2)
}
write_sparker := {
#Check for Mainframe special text first
(if card.special_text_2 or else "" != "" then remove_brackets(card.special_text_2) else
# The First Ability
card.loyalty_cost_5
+(if card.loyalty_cost_5 !="" then ": ")
+split_text(match:"\n", card.rule_text_2).0
# The Second Ability
+(if contains(paragraph_count(card.rule_text_2), match:"<22>") then "\n")
+card.loyalty_cost_6
+(if card.loyalty_cost_6 !="" then ": ")
+(if contains(paragraph_count(card.rule_text_2), match:"<22>") then split_text(match:"\n", card.rule_text_2).1)
# The Third Ability
+(if contains(paragraph_count(card.rule_text_2), match:"<22><>") then "\n")
+card.loyalty_cost_7
+(if card.loyalty_cost_7 !="" then ": ")
+(if contains(paragraph_count(card.rule_text_2), match:"<22><>") then split_text(match:"\n", card.rule_text_2).2)
# The Fourth Ability
+(if contains(paragraph_count(card.rule_text_2), match:"<22><><EFBFBD>") then "\n")
+card.loyalty_cost_8
+(if card.loyalty_cost_8 !="" then ": ")
+(if contains(paragraph_count(card.rule_text_2), match:"<22><><EFBFBD>") then split_text(match:"\n", card.rule_text_2).3))
+(if card.loyalty_2 != "" then "\n"+"Starting loyalty: "+card.loyalty_2)
}
write_rules := {
if card.loyalty != "" then escape_linebreaks(to_html(write_walker()))
else if contains(card.shape, match:"leveler") then escape_linebreaks(to_html(write_leveler()))
else if contains(card.shape, match:"saga") then escape_linebreaks(to_html(card.special_text))
else if contains(card.shape, match:"plane card") then escape_linebreaks(to_html(write_plane()))
else if card.special_text != "" then escape_linebreaks(to_html(card.special_text))
else escape_linebreaks(to_html(card.rule_text))
}
write_rules_2 := {
if contains(card.shape, match:"planeswalker") and card.power != "" then escape_linebreaks(to_html(write_sparker()))
else if card.loyalty != "" or card.loyalty_2 != "" then escape_linebreaks(to_html(write_walker_2()))
else if card.special_text_2 != "" then escape_linebreaks(to_html(card.special_text_2))
else escape_linebreaks(to_html(card.rule_text_2))
}
write_card := {
"\n"+determine_shape()
+"\n"+card.card_number
+"\n"+remove_linebreaks(cmc(card.casting_cost))
+"\n"+(if card.rarity == "masterpiece" then "special" else card.rarity)
+"\n"+remove_linebreaks(card_name())
+"\n"+card.card_color
+"\n"+symbols_to_html(card.casting_cost)
+"\n"+remove_linebreaks(to_text(card.type))
+"\n"+remove_linebreaks(to_text(card.power))
+"\n"+remove_linebreaks(to_text(card.toughness))
+"\n"+write_rules()
+"\n"+escape_linebreaks(to_html(card.flavor_text))
+"\n"+to_html(remove_linebreaks(card.illustrator))
+"\n"+remove_linebreaks(card.name_2)
+"\n"+card.card_color_2
+"\n"+symbols_to_html(card.casting_cost_2)
+"\n"+remove_linebreaks(to_text(card.type_2))
+"\n"+remove_linebreaks(to_text(card.power_2))
+"\n"+remove_linebreaks(to_text(card.toughness_2))
+"\n"+write_rules_2()
+"\n"+escape_linebreaks(to_html(card.flavor_text_2))
+"\n"+to_html(remove_linebreaks(card.illustrator_2))
+"\n==========="
}
##run the name check
check_unique := { count := 0
for x from 0 to length(input)-1 do if compare_card_name(input[x]) == name then count := count + 1
count
}
write_images := if options.export_images == "no" then "" else for each card in cards do write_image_file(card, file:card_name()+options.export_images)
for each card in cards do if check_unique(cards, name:card_name()) > 1 then trace("Warning: Repeated name: " + card.name)
write_cards := for each card in cards do write_card()
to_string(
set.title+"\n"
+"1.0\n"
+write_cards)