ah_sce_unpacked/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model_Bag Call of the Plaguebearer 613b64/Custom_Token Call of the Plaguebearer eda22b.ttslua
2021-07-03 14:00:44 -04:00

564 lines
17 KiB
Plaintext

--[[ Character Sheet Template by: MrStump
You can set up your own character sheet if you follow these steps.
Step 1) Change the character sheet image
-Right click on the character sheet, click Custom
-Replace the image URL with one for your character sheet
-Click import, make sure your sheet loads
-SAVE THE GAME (the table setup)
-LOAD FROM THAT SAVE YOU JUST MADE
Step 2) Edit script to fit your character sheet
-Below you will see some general options, and then the big data table
-The data table is what determines how many of which buttons are made
-Checkboxes
-Counters
-Textboxes
-By default, there are 3 of each. You can add more or remove entries
-If you intend to add/remove, be sure only to add/remove ENTRIES
-This is what an entry looks like:
{
pos = {-0.977,0.1,-0.589},
size = 800,
state = false
},
-Deleting the whole thing would remove that specific item on the sheet
-Copy and pasting it after another entry would create another
-Each entry type has unique data points (pos, size, state, etc)
-Do not try to add in your own data points or remove them individually
-There is a summary of what each point does at the top of its category
Step 3) Save and check script changes
-Hit Save & Apply in the script window to save your code
-You can edit your code as needed and Save+Apply as often as needed
-When you are finished, make disableSave = false below then Save+apply
-This enables saving, so your sheet will remember whats on it.
Bonus) Finding/Editing Positions for elements
I have included a tool to get positions for buttons in {x,y,z} form
Place it where you want the center of your element to be
Then copy the table from the notes (lower right of screen)
You can highlight it and CTRL+C
Paste it into the data table where needed (pos=)
If you want to manually tweek the values:
{0,0,0} is the center of the character sheet
{1,0,0} is right, {-1,0,0} is left
{0,0,-1} is up, {0,0,1} is down
0.1 for Y is the height off of the page.
If it was 0, it would be down inside the model of the sheet
Begin editing below: ]]
--Set this to true while editing and false when you have finished
disableSave = false
--Remember to set this to false once you are done making changes
--Then, after you save & apply it, save your game too
--Color information for button text (r,g,b, values of 0-1)
buttonFontColor = {0,0,0}
--Color information for button background
buttonColor = {1,1,1}
--Change scale of button (Avoid changing if possible)
buttonScale = {0.1,0.1,0.1}
--This is the button placement information
defaultButtonData = {
--Add checkboxes
checkbox = {
--[[
pos = the position (pasted from the helper tool)
size = height/width/font_size for checkbox
state = default starting value for checkbox (true=checked, false=not)
]]
--First checkbox
--{
-- pos = {-0.977,0.1,-0.589},
--size = 800,
--state = false
--},
--End of checkboxes
},
--Add counters that have a + and - button
counter = {
--[[
pos = the position (pasted from the helper tool)
size = height/width/font_size for counter
value = default starting value for counter
hideBG = if background of counter is hidden (true=hidden, false=not)
]]
--First counter
{
pos = {-0.984,0.05,-1.02},
size = 800,
value = 0,
hideBG = true
},
{
pos = {-0.16,0.05,-1.02},
size = 800,
value = 0,
hideBG = true
},
{
pos = {.67,0.05,-1.01},
size = 800,
value = 0,
hideBG = true
},
{
pos = {1.5,0.05,-1.01},
size = 800,
value = 0,
hideBG = true
},
{
pos = {-1.257,0.05,-0.852},
size = 600,
value = 0,
hideBG = true
},
{
pos = {-0.953,0.05,-0.852},
size = 600,
value = 0,
hideBG = true
},
{
pos = {-0.427,0.05,-0.852},
size = 600,
value = 0,
hideBG = true
},
{
pos = {-0.127,0.05,-0.852},
size = 600,
value = 0,
hideBG = true
},
{
pos = {0.395,0.05,-0.85},
size = 600,
value = 0,
hideBG = true
},
{
pos = {0.695,0.05,-0.85},
size = 600,
value = 0,
hideBG = true
},
{
pos = {1.216,0.05,-0.842},
size = 600,
value = 0,
hideBG = true
},
{
pos = {1.516,0.05,-0.842},
size = 600,
value = 0,
hideBG = true
},
--End of counters
},
--Add editable text boxes
textbox = {
--[[
pos = the position (pasted from the helper tool)
rows = how many lines of text you want for this box
width = how wide the text box is
font_size = size of text. This and "rows" effect overall height
label = what is shown when there is no text. "" = nothing
value = text entered into box. "" = nothing
alignment = Number to indicate how you want text aligned
(1=Automatic, 2=Left, 3=Center, 4=Right, 5=Justified)
]]
--First textbox
{
pos = {-1.27,0.05,-1.326},
rows = 1,
width = 3000,
font_size = 300,
label = "Joshua",
value = "",
alignment = 2
},
{
pos = {-0.435,0.05,-1.326},
rows = 1,
width = 3000,
font_size = 300,
label = "Miriam",
value = "",
alignment = 2
},
{
pos = {.385,0.05,-1.326},
rows = 1,
width = 3000,
font_size = 300,
label = "Abner",
value = "",
alignment = 2
},
{
pos = {1.21,0.05,-1.326},
rows = 1,
width = 3000,
font_size = 300,
label = "Sara",
value = "",
alignment = 2
},
{
pos = {-1.27,0.05,-1.18},
rows = 1,
width = 3000,
font_size = 300,
label = "Tommy Muldoon",
value = "",
alignment = 2
},
{
pos = {-0.435,0.05,-1.18},
rows = 1,
width = 3000,
font_size = 300,
label = "Daisy Walker",
value = "",
alignment = 2
},
{
pos = {.385,0.05,-1.17},
rows = 1,
width = 3000,
font_size = 300,
label = "Finn Edwards",
value = "",
alignment = 2
},
{
pos = {1.21,0.05,-1.17},
rows = 1,
width = 3000,
font_size = 300,
label = "Agnes Baker",
value = "",
alignment = 2
},
{
pos = {-1.202,0.05,-0.468},
rows = 7,
width = 3500,
font_size = 300,
label = "",
value = "",
alignment = 2
},
{
pos = {-0.373,0.05,-0.468},
rows = 7,
width = 3500,
font_size = 300,
label = "",
value = "",
alignment = 2
},
{
pos = {0.455,0.05,-0.468},
rows = 7,
width = 3500,
font_size = 300,
label = "",
value = "",
alignment = 2
},
{
pos = {1.284,0.05,-0.468},
rows = 7,
width = 3500,
font_size = 300,
label = "",
value = "",
alignment = 2
},
--Third textbox
{
pos = {-0.981,0.05,0.692},
rows = 16,
width = 6000,
font_size = 300,
label = "HEED THE CALL",
value = "",
alignment = 2
},
{
pos = {0.619,0.05,0.312},
rows = 14,
width = 6000,
font_size = 300,
label = "SERVE MY CAUSE",
value = "",
alignment = 2
},
{
pos = {-1.038,0.05,1.553},
rows = 6,
width = 5000,
font_size = 300,
label = "Confirm max brain death period - H",
value = "",
alignment = 2
},
{
pos = {0.261,0.05,1.124},
rows = 3,
width = 3000,
font_size = 200,
label = "",
value = "",
alignment = 2
},
{
pos = {0.261,0.05,1.333},
rows = 3,
width = 3000,
font_size = 200,
label = "",
value = "",
alignment = 2
},
{
pos = {0.261,0.05,1.535},
rows = 3,
width = 3000,
font_size = 200,
label = "",
value = "",
alignment = 2
},
{
pos = {0.261,0.05,1.772},
rows = 3,
width = 3000,
font_size = 200,
label = "",
value = "",
alignment = 2
},
{
pos = {1.012,0.05,1.1},
rows = 3,
width = 3000,
font_size = 200,
label = "",
value = "",
alignment = 2
},
{
pos = {1.012,0.05,1.3},
rows = 3,
width = 3000,
font_size = 200,
label = "",
value = "",
alignment = 2
},
{
pos = {1.012,0.05,1.52},
rows = 3,
width = 3000,
font_size = 200,
label = "",
value = "",
alignment = 2
},
{
pos = {1.012,0.05,1.72},
rows = 3,
width = 3000,
font_size = 200,
label = "",
value = "",
alignment = 2
},
--End of textboxes
}
}
--Lua beyond this point, I recommend doing something more fun with your life
--Save function
function updateSave()
saved_data = JSON.encode(ref_buttonData)
if disableSave==true then saved_data="" end
self.script_state = saved_data
end
--Startup procedure
function onload(saved_data)
if disableSave==true then saved_data="" end
if saved_data ~= "" then
local loaded_data = JSON.decode(saved_data)
ref_buttonData = loaded_data
else
ref_buttonData = defaultButtonData
end
spawnedButtonCount = 0
createCheckbox()
createCounter()
createTextbox()
end
--Click functions for buttons
--Checks or unchecks the given box
function click_checkbox(tableIndex, buttonIndex)
if ref_buttonData.checkbox[tableIndex].state == true then
ref_buttonData.checkbox[tableIndex].state = false
self.editButton({index=buttonIndex, label=""})
else
ref_buttonData.checkbox[tableIndex].state = true
self.editButton({index=buttonIndex, label=string.char(10008)})
end
updateSave()
end
--Applies value to given counter display
function click_counter(tableIndex, buttonIndex, amount)
ref_buttonData.counter[tableIndex].value = ref_buttonData.counter[tableIndex].value + amount
self.editButton({index=buttonIndex, label=ref_buttonData.counter[tableIndex].value})
updateSave()
end
--Updates saved value for given text box
function click_textbox(i, value, selected)
if selected == false then
ref_buttonData.textbox[i].value = value
updateSave()
end
end
--Dud function for if you have a background on a counter
function click_none() end
--Button creation
--Makes checkboxes
function createCheckbox()
for i, data in ipairs(ref_buttonData.checkbox) do
--Sets up reference function
local buttonNumber = spawnedButtonCount
local funcName = "checkbox"..i
local func = function() click_checkbox(i, buttonNumber) end
self.setVar(funcName, func)
--Sets up label
local label = ""
if data.state==true then label=string.char(10008) end
--Creates button and counts it
self.createButton({
label=label, click_function=funcName, function_owner=self,
position=data.pos, height=data.size, width=data.size,
font_size=data.size, scale=buttonScale,
color=buttonColor, font_color=buttonFontColor
})
spawnedButtonCount = spawnedButtonCount + 1
end
end
--Makes counters
function createCounter()
for i, data in ipairs(ref_buttonData.counter) do
--Sets up display
local displayNumber = spawnedButtonCount
--Sets up label
local label = data.value
--Sets height/width for display
local size = data.size
if data.hideBG == true then size = 0 end
--Creates button and counts it
self.createButton({
label=label, click_function="click_none", function_owner=self,
position=data.pos, height=size, width=size,
font_size=data.size, scale=buttonScale,
color=buttonColor, font_color=buttonFontColor
})
spawnedButtonCount = spawnedButtonCount + 1
--Sets up add 1
local funcName = "counterAdd"..i
local func = function() click_counter(i, displayNumber, 1) end
self.setVar(funcName, func)
--Sets up label
local label = "+"
--Sets up position
local offsetDistance = (data.size/2 + data.size/4) * (buttonScale[1] * 0.002)
local pos = {data.pos[1] + offsetDistance, data.pos[2], data.pos[3]}
--Sets up size
local size = data.size / 2
--Creates button and counts it
self.createButton({
label=label, click_function=funcName, function_owner=self,
position=pos, height=size, width=size,
font_size=size, scale=buttonScale,
color=buttonColor, font_color=buttonFontColor
})
spawnedButtonCount = spawnedButtonCount + 1
--Sets up subtract 1
local funcName = "counterSub"..i
local func = function() click_counter(i, displayNumber, -1) end
self.setVar(funcName, func)
--Sets up label
local label = "-"
--Set up position
local pos = {data.pos[1] - offsetDistance, data.pos[2], data.pos[3]}
--Creates button and counts it
self.createButton({
label=label, click_function=funcName, function_owner=self,
position=pos, height=size, width=size,
font_size=size, scale=buttonScale,
color=buttonColor, font_color=buttonFontColor
})
spawnedButtonCount = spawnedButtonCount + 1
end
end
function createTextbox()
for i, data in ipairs(ref_buttonData.textbox) do
--Sets up reference function
local funcName = "textbox"..i
local func = function(_,_,val,sel) click_textbox(i,val,sel) end
self.setVar(funcName, func)
self.createInput({
input_function = funcName,
function_owner = self,
label = data.label,
alignment = data.alignment,
position = data.pos,
scale = buttonScale,
width = data.width,
height = (data.font_size*data.rows)+24,
font_size = data.font_size,
color = buttonColor,
font_color = buttonFontColor,
value = data.value,
})
end
end