#' A CHARACTER SHEET CREATOR FUNCTION
#'
#' FUNCTION WHICH CREATES THE CHARACTER AND THEN GENERATES A CHARACTER SHEET
#' @param char.Species SPECIES THE CHARACTER IS (-1 MEANS YET TO BE DECIDED)
#' @param char.Sex THE SEX OF THE CHARACTER (-1 MEANS YET TO BE DECIDED)
#' @param char.Society WHAT KIND OF SOCIETY ARE THEY FROM? (-1 MEANS YET TO BE DECIDED)
#' @param char.Class CHARACTER'S CLASS (-1 MEANS YET TO BE DECIDED)
#' @param char.Level LEVEL OF THE CHARACTER (-1 MEANS YET TO BE DECIDED)
#' @param stat.Mat MATRIX OF TEMPORARY AND POTENTIAL STATS (-1 MEANS YET TO BE DECIDED)
#' @param char.Realm CHARACTER'S SPELLCASTING REALM (-1 MEANS YET TO BE DECIDED)
#' @param background.No_of_Children DATAFRAME CONTAINING THE WAYS TO CALCULATE THE NUMBER OF CHILDREN FOR EACH SPECIES
#' @param background.Sibling_Rank DATAFRAME CONTAINING THE WAYS TO CALCULATE THE NUMBER CHILD THE PLAYER WAS
#' @param background.Family_Status DATAFRAME CONTAINING THE DIFFERENT POSSIBLE STATUSES FOR A FAMILY FOR EACH SPECIES, e.g., OFFSPRING, ADOPTED, etc.
#' @param background.Environment.Raised DATAFRAME CONTAINING THE DIFFERENT POSSIBLE FAMILY ENVIRONMENTS FOR EACH SPECIES, e.g., BASTARD, STILL TOGETHER, etc.
#' @param background.Clanhead.Relation DATAFRAME CONTAINING THE DIFFERENT POSSIBLE RELATIONSHIPS BETWEEN THE CHARACTER AND THE CLANHEAD
#' @param background.Clan.Status DATAFRAME CONTAINING THE DIFFERENT POSSIBLE STATUSES THE CHARACTER CAN HAVE IN THE CLAN
#' @param background.Social_Class DATAFRAME CONTAINING THE DIFFERENT POSSIBLE SOCIAL CLASSES OF THE FAMILY A CHARACTER IS RAISED IN
#' @param background.Occupation DATAFRAME CONTAINING THE DIFFERENT POSSIBLE OCCUPATIONS OF THE FAMILY A CHARACTER IS RAISED IN
#' @param char.Age = -1 CHARACTER'S CURRENT AGE
#' @param char.Height NUMERIC CHARACTER'S HEIGHT
#' @param char.Weight NUMERIC CHARACTER'S WEIGHT
#' @param char.Name NAME OF THE CHARACTER (-1 MEANS YET TO BE DECIDED)
#' @param char.Player NAME OF THE PLAYER (-1 MEANS YET TO BE DECIDED)
#' @param contact.Info = -1 DATAFRAME CONTAINING THE DIFFERENT POSSIBLE OCCUPATIONS OF THE FAMILY A CHARACTER IS RAISED IN
#' @param background_Options.Benefits.ROLLING LIST CONTAINING ALL BACKGROUND OPTION BENEFITS A PLAYER HAS TAKEN
#' @param background_Options.Benefits.NO.ROLLING LIST CONTAINING ALL BACKGROUND OPTION BENEFITS A PLAYER HAS TAKEN
#' @param tp.Choice EITHER A LIST CONTAINING ALL TP RESULTS OR -1
#' @param level_0_Skills.Increase.Record.List LIST CONTAINING ALL THE level_0 INFORMATION IF THAT HAS BEEN PREGENERATED
#' @param level_1_Skills.Increase.Record.List RESULT OF LEVELING UP AT LEVEL 1
#' @param char.Age.List LIST CONTAINING THE CHARACTER'S AGE AT EACH LEVEL
#' @param skills.Each.Level.List LIST CONTAINING DATAFRAMES FOR THE SKILLS LEVELED UP EACH LEVEL
#' @param level_Up.Result.List EITHER A LIST CONTAINING ALL RESULTS FOR LEVELING UP FOR ***STATS*** WHICH HAVE BEEN PREGENERATED OR -1
#' @param level_Up.Repeated.Result.List = -1 EITHER A LIST CONTAINING ALL RESULTS FOR LEVELING UP FOR ***SKILLS*** WHICH HAVE BEEN PREGENERATED OR -1
#' @param img.Size STRING CONTAINING THE SIZE - "BIG" "MED" - OF THE IMAGE DESIRED.
#' @param EXAMPLE BOOLEAN VARIABLE. IF IT'S AN EXAMPLE, IT RETURNS -1 SO THAT THE PACKAGE CAN BE CHECKED.
#' @concept output pdf img png character input
#' @export
#' @examples
#' character_CREATE( EXAMPLE = TRUE)
character_CREATE <-
function( char.Species = -1, char.Name = -1, char.Player = -1, char.Sex = -1, char.Society = -1, char.Class = -1, char.Level = -1, stat.Mat = -1,
char.Realm = -1,
background.No_of_Children = -1, background.Sibling_Rank = -1, background.Family_Status = -1, background.Environment.Raised = -1,
background.Clanhead.Relation = -1, background.Clan.Status = -1, background.Social_Class = -1, background.Occupation = -1,
char.Age = -1, char.Height = -1, char.Weight = -1,
contact.Info = -1,
background_Options.Benefits.ROLLING = -1, background_Options.Benefits.NO.ROLLING = -1, tp.Choice = -1,
level_0_Skills.Increase.Record.List = -1, level_1_Skills.Increase.Record.List = -1, char.Age.List = -1,
skills.Each.Level.List = -1, level_Up.Result.List = -1, level_Up.Repeated.Result.List = -1,
img.Size = "MED", EXAMPLE = FALSE
){
#returns NULL
if( EXAMPLE == TRUE ) return(-1)
#########################################################################################################
# FOR NOW, img.Size = "MED" IS ENFORCED, STRICTLY AND WITHOUT MERCY #
#########################################################################################################
img.Size = "MED"
#########################################################################################################
# FOR NOW, img.Size = "MED" IS ENFORCED, STRICTLY AND WITHOUT MERCY #
#########################################################################################################
stat.Bonus = NULL;stat.Tmp <- NULL; stat.Pot <- NULL; stat.Dev <- NULL;
char.Flaws <- NULL
dev_Points.Level_1 <- NULL
char.Alive <- TRUE; age_Crisis.Middle_Aged <- FALSE; age_Crisis.Old <- FALSE; age_Crisis.Venerable <- FALSE
recreate.Command <- list()
stats = stat_Name_DF[,1]
classes <- classesDF[,2]
skills_Groups = skills_GroupsDF[,2]
background_Special_Tables_List <- list(background_Special_Items, background_Special_Wealth, background_Special_Status, background_Special_Family_Ties, background_Special_Curses, background_Special_Abilities)
char.Basics <- char_Basic_Info( char.Species, char.Name, char.Player, char.Sex, char.Society, char.Level, char_Social_Class, species_Description_DF )
char.Species <- char.Basics[[1]][1]
char.Name <- char.Basics[[1]][2]
char.Player <- char.Basics[[1]][3]
char.Sex <- char.Basics[[1]][4]
char.Society <- char.Basics[[1]][5]
char.Species.Raised <- char.Basics[[1]][6]
species.Middle_Aged <- char.Basics[[2]][1]
species.Old <- char.Basics[[2]][2]
species.Venerable <- char.Basics[[2]][3]
background.Option.Points <- char.Basics[[2]][4]
char.Level <- char.Basics[[2]][5]
recreate.Command[[1]] <- c( char.Species, char.Name, char.Player, char.Sex, char.Society )
recreate.Command[[2]] <- char.Level
#ASSIGN BACKGROUND OPTION POINTS
background_Options.Benefits.ROLLING <- background_Options_Assignment_ROLLING( background_Options.Benefits.ROLLING, background.Option.Points, background_Options,
background_Special_Tables_List, flaws_Table )
#CHECK IF ANY BACKGROUND OPTIONS AFFECT HOW A PLAYER INTERACTS WITH A REALM OF MAGIC
realms = c("Essence","Channeling","Mentalism")
realms.Stats = c("Empathy","Intuition","Presence")
realms.Stats.Short = c("Em","In","Pr")
realm.Relations <- char_Realm_Relations( background_Options.Benefits.ROLLING, realms)
resist.Realm = realm.Relations[1]
adept.Realm = realm.Relations[2]
#CHOOSE THE PLAYER'S PROFESSION AND ASSOCIATED VARIABLES
class.And.Stats <- char_Class_Decisions_Stat_Assignment( char.Class, resist.Realm, adept.Realm, realms, realms.Stats, realms.Stats.Short, classes, stat.Mat, char.Realm )
char.Class <- class.And.Stats[[1]][1]
char.Class.FullName <- class.And.Stats[[1]][2]
stats.Tmp.Pot <- class.And.Stats[[2]]
char.Realm <- class.And.Stats[[3]]
char.Realm.Name <- class.And.Stats[[4]]
recreate.Command[[3]] <- stats.Tmp.Pot
recreate.Command[[4]] <- c( char.Class, char.Realm )
#CREATES THE DATA FRAMES FOR THE SKILLS. RETURNS A LIST CONTAINING ALL OF THEM.
skill.Data.Frames.List <- create_Skill_Data_Frames(char.Class, char.Class.FullName, char.Realm.Name, char.Realm, background_Options.Benefits.ROLLING)
skills.Increase.Record.DF <- skill.Data.Frames.List[[1]]
background.Skills.Increase.Record.DF <- skill.Data.Frames.List[[2]]
skills.Primary.DF <- skill.Data.Frames.List[[3]]
skills.Primary.Stats <- skill.Data.Frames.List[[4]]
skills.Secondary.DF <- skill.Data.Frames.List[[5]]
skills.Secondary.Stats <- skill.Data.Frames.List[[6]]
#USER DECIDES ON HOW TO SPEND BACKGROUND OPTION POINTS
background_Options.Benefits.NO.ROLLING <- background_Options_Assignment_NO_ROLLING( background_Options.Benefits.ROLLING, background_Options.Benefits.NO.ROLLING,
background.Option.Points,stats.Tmp.Pot, stats, background_Options,
skills.Primary.DF, skills.Secondary.DF,
skills.Increase.Record.DF,background_Special_Tables_List,flaws_Table,
background.Skills.Increase.Record.DF )
recreate.Command[[5]] <- background_Options.Benefits.ROLLING
recreate.Command[[6]] <- background_Options.Benefits.NO.ROLLING
background_Options.Benefits <- background_Options_Choices_Combine( background_Options.Benefits.ROLLING, background_Options.Benefits.NO.ROLLING) #COMBINE THE BACKGROUND OPTION BENEFIT LISTS
char.Flaws <- background_Options.Benefits[[2]]
#WORK OUT A CHARACTER'S BACKGROUND - FAMILY STUFF, HEIGHT/WEIGHT, ALL THAT JAZZ.
background.Stuff <- generate_Background( background_Options.Benefits,
background.No_of_Children, background.Sibling_Rank, background.Family_Status, background.Environment.Raised,
background.Clanhead.Relation, background.Clan.Status, background.Social_Class, background.Occupation, contact.Info,
char.Age, char.Species, char.Species.Raised, char.Sex, char.Height, char.Weight, char.Society, char.Class,
skills.Increase.Record.DF, background.Skills.Increase.Record.DF, level_0_Skills.Increase.Record.List )
background.Stuff[[1]][[7]] = paste0( char.Society, " - ", background.Stuff[[1]][[7]] )
recreate.Command[7:17] = background.Stuff[[1]]
char.Age = background.Stuff[[1]][[9]]
char.Age_Die = background.Stuff[[2]]
char.Height = background.Stuff[[3]]
char.Weight = background.Stuff[[4]]
char.Move_Mod = background.Stuff[[5]]
level_0_Skills.Increase.Record.List = background.Stuff[[6]]
skills.Increase.Record.DF.Level_1 = background.Stuff[[7]]
if(unlist(background_Options.Benefits.NO.ROLLING)[1] == -1){
stat.Tmp <- stats.Tmp.Pot[,1]
stat.Pot <- stats.Tmp.Pot[,2]
} else{
stat.Tmp <- background_Options.Benefits.NO.ROLLING[[3]]
stat.Pot <- background_Options.Benefits.NO.ROLLING[[4]]
level_0_Skills.Increase.Record.List[[1]][,"NumTimesIncreased"] <- level_0_Skills.Increase.Record.List[[1]][,"NumTimesIncreased"] + background_Options.Benefits.NO.ROLLING[[5]][,"NumTimesIncreased"]
level_0_Skills.Increase.Record.List[[1]][,"TotalRanks"] <- level_0_Skills.Increase.Record.List[[1]][,"NumTimesIncreased"]
skills.Increase.Record.DF.Level_1[,"TotalRanks"] <- level_0_Skills.Increase.Record.List[[1]][,"TotalRanks"]
}
char.Age.List <- list( char.Age )
recreate.Command[[18]] <- level_0_Skills.Increase.Record.List[[1]]
#SEE IF THE PLAYER WANTS TO USE A TRAINING PACKAGE
tp.Choice <- tp_Choice_Maker(tp.Choice, training_Packages_Cost_DF, training_Packages_Gains, char.Class, stat.Tmp, stat.Pot, char.Realm)
tp.Skills.ANY <- tp.Choice[[1]][[1]]
tp.Skills.Normal <- tp.Choice[[1]][[2]]
tp.Skills.Other_Gains <- tp.Choice[[1]][[3]]
tp.Skills.Stat_Increases <- tp.Choice[[1]][[4]]
tp.Name <- tp.Choice[[1]][[6]]
stat.Tmp <- tp.Choice[[2]][,1]
stat.Pot <- tp.Choice[[2]][,2]
stat.Bonus <- tp.Choice[[3]]
stat.Dev <- tp.Choice[[4]]
dev_Points.Total <- tp.Choice[[5]]
dev_Points.Level_1 <- tp.Choice[[6]]
recreate.Command[[19]] <- tp.Choice[[1]]
#ASSIGN SKILLS FOR LEVEL 1 AND LEVEL UP
level_1_Skills.Increase.Record.List <- level_1_Skills(skills.Increase.Record.DF.Level_1, dev_Points.Total, char.Class, background_Options.Benefits, tp.Skills.Normal, tp.Skills.ANY, TRUE,
level_1_Skills.Increase.Record.List)
level_1_Skills.Increase.Record.DF <- level_1_Skills.Increase.Record.List[[1]]
level_1_Skills.Increase.Record.DP_Spent <- dev_Points.Total - level_1_Skills.Increase.Record.List[[2]]
recreate.Command[[20]] <- level_1_Skills.Increase.Record.List
#ASSIGN SKILLS FOR THE OTHER LEVELS AND LEVEL UP
levelUp_Skills_Stats.Results <- levelUp_Skills_Stats(char.Level, level_Up.Result.List, stat.Tmp, stat.Pot, char.Age, char.Age_Die, char.Age.List, char.Alive, char.Class,
species.Middle_Aged, species.Old, species.Venerable, age_Crisis.Middle_Aged, age_Crisis.Old, age_Crisis.Venerable,
skills.Increase.Record.DF, background_Options.Benefits,
dev_Points.Level_1, level_1_Skills.Increase.Record.DF, level_1_Skills.Increase.Record.List, level_1_Skills.Increase.Record.DP_Spent,
level_Up.Repeated.Result.List, skills.Each.Level.List
)
skills.Each.Level.Fully.Assigned <- levelUp_Skills_Stats.Results[[1]]
stat.List <- levelUp_Skills_Stats.Results[[2]]
stats.End <- stat.List[[length(stat.List)]] #THE CHARACTER'S STATS AT THE END OF LEVELING UP
char.Age.List <- levelUp_Skills_Stats.Results[[5]]
recreate.Command[22:25] <- levelUp_Skills_Stats.Results[1:4]
#CREATE THE JSON CONTAINING ALL THE DETAILS ABOUT THE CHARACTER.
recreate_Command_Generator(recreate.Command, char.Name)
#GENERATES THE PDF.
character_Sheet_Create(species_Description_DF, char.Species, stats.End, char.Realm, char.Class, char.Class.FullName, char.Level, char.Height, char.Weight, char.Move_Mod,
char.Name, char.Player, resist.Realm, adept.Realm, background_Options.Benefits,
skills.Each.Level.Fully.Assigned[[length(skills.Each.Level.Fully.Assigned)]][[1]], class_Costs_And_Info, char_Profession_Bonus,
skills.Primary.Stats, skills.Secondary.Stats,
tp.Skills.Other_Gains, as.character(tp.Name),
background_Options, char.Flaws,
background.Stuff[[1]], char.Age.List,
img.Size, deleteImages = TRUE )
print("Success!")
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.