Thank you for completing your S.P.E.C.I.A.L. profile. Feel free
- to go back and edit your profile at any time. Click below to
- confirm once you are satisfied.
+ to go back and edit your profile at any time.
👍
Confirm your profile
@@ -1235,7 +1275,7 @@
+ value="&{template:foskill} {{name=@{character_name}}} {{attr=Strength}} {{attr_num=@{strength_total}}} {{skill=Athletics}} {{skill_num=@{athletics_total}}} {{target=[[@{strength_total}+@{athletics_total}]]}} {{dice_num=?{Number of dice|2}}} {{difficulty=?{Difficulty|1}}} {{result=[[?{Number of dice|22}d20<[[@{strength_total}+@{athletics_total}]]sacs<@{athletics_cs}cf>20 ]]}}">
Athletics [STR]
+ value="&{template:foskill} {{name=@{character_name}}} {{attr=Charisma}} {{attr_num=@{charisma_total}}} {{skill=Barter}} {{skill_num=@{barter_total}}} {{target=[[@{charisma_total}+@{barter_total}]]}} {{dice_num=?{Number of dice|2}}} {{difficulty=?{Difficulty|1}}} {{result=[[?{Number of dice|22}d20<[[@{charisma_total}+@{barter_total}]]sacs<@{barter_cs}cf>20 ]]}}">
Barter [CHA]
+ value="&{template:foskill} {{name=@{character_name}}} {{attr=Endurance}} {{attr_num=@{endurance_total}}} {{skill=Big Guns}} {{skill_num=@{big_guns_total}}} {{target=[[@{endurance_total}+@{big_guns_total}]]}} {{dice_num=?{Number of dice|2}}} {{difficulty=?{Difficulty|1}}} {{result=[[?{Number of dice|22}d20<[[@{endurance_total}+@{big_guns_total}]]sacs<@{big_guns_cs}cf>20 ]]}}">
Big Guns [END]
+ value="&{template:foskill} {{name=@{character_name}}} {{attr=Perception}} {{attr_num=@{perception_total}}} {{skill=Energy Weapons}} {{skill_num=@{energy_weapons_total}}} {{target=[[@{perception_total}+@{energy_weapons_total}]]}} {{dice_num=?{Number of dice|2}}} {{difficulty=?{Difficulty|1}}} {{result=[[?{Number of dice|22}d20<[[@{perception_total}+@{energy_weapons_total}]]sacs<@{energy_weapons_cs}cf>20 ]]}}">
Energy Weapons [PER]
+ value="&{template:foskill} {{name=@{character_name}}} {{attr=Perception}} {{attr_num=@{perception_total}}} {{skill=Explosives}} {{skill_num=@{explosives_total}}} {{target=[[@{perception_total}+@{explosives_total}]]}} {{dice_num=?{Number of dice|2}}} {{difficulty=?{Difficulty|1}}} {{result=[[?{Number of dice|22}d20<[[@{perception_total}+@{explosives_total}]]sacs<@{explosives_cs}cf>20 ]]}}">
Explosives [PER]
+ value="&{template:foskill} {{name=@{character_name}}} {{attr=Perception}} {{attr_num=@{perception_total}}} {{skill=Lockpick}} {{skill_num=@{lockpick_total}}} {{target=[[@{perception_total}+@{lockpick_total}]]}} {{dice_num=?{Number of dice|2}}} {{difficulty=?{Difficulty|1}}} {{result=[[?{Number of dice|22}d20<[[@{perception_total}+@{lockpick_total}]]sacs<@{lockpick_cs}cf>20 ]]}}">
Lockpick [PER]
+ value="&{template:foskill} {{name=@{character_name}}} {{attr=Intelligence}} {{attr_num=@{intelligence_total}}} {{skill=Medicine}} {{skill_num=@{medicine_total}}} {{target=[[@{intelligence_total}+@{medicine_total}]]}} {{dice_num=?{Number of dice|2}}} {{difficulty=?{Difficulty|1}}} {{result=[[?{Number of dice|22}d20<[[@{intelligence_total}+@{medicine_total}]]sacs<@{medicine_cs}cf>20 ]]}}">
Medicine [INT]
+ value="&{template:foskill} {{name=@{character_name}}} {{attr=Strength}} {{attr_num=@{strength_total}}} {{skill=Melee Weapons}} {{skill_num=@{melee_weapons_total}}} {{target=[[@{strength_total}+@{melee_weapons_total}]]}} {{dice_num=?{Number of dice|2}}} {{difficulty=?{Difficulty|1}}} {{result=[[?{Number of dice|22}d20<[[@{strength_total}+@{melee_weapons_total}]]sacs<@{melee_weapons_cs}cf>20 ]]}}">
Melee Weapons [STR]
+ value="&{template:foskill} {{name=@{character_name}}} {{attr=Perception}} {{attr_num=@{perception_total}}} {{skill=Pilot}} {{skill_num=@{pilot_total}}} {{target=[[@{perception_total}+@{pilot_total}]]}} {{dice_num=?{Number of dice|2}}} {{difficulty=?{Difficulty|1}}} {{result=[[?{Number of dice|22}d20<[[@{perception_total}+@{pilot_total}]]sacs<@{pilot_cs}cf>20 ]]}}">
Pilot [PER]
+ value="&{template:foskill} {{name=@{character_name}}} {{attr=Intelligence}} {{attr_num=@{intelligence_total}}} {{skill=Repair}} {{skill_num=@{repair_total}}} {{target=[[@{intelligence_total}+@{repair_total}]]}} {{dice_num=?{Number of dice|2}}} {{difficulty=?{Difficulty|1}}} {{result=[[?{Number of dice|22}d20<[[@{intelligence_total}+@{repair_total}]]sacs<@{repair_cs}cf>20 ]]}}">
Repair [INT]
+ value="&{template:foskill} {{name=@{character_name}}} {{attr=Intelligence}} {{attr_num=@{intelligence_total}}} {{skill=Science}} {{skill_num=@{science_total}}} {{target=[[@{intelligence_total}+@{science_total}]]}} {{dice_num=?{Number of dice|2}}} {{difficulty=?{Difficulty|1}}} {{result=[[?{Number of dice|22}d20<[[@{intelligence_total}+@{science_total}]]sacs<@{science_cs}cf>20 ]]}}">
Science [INT]
+ value="&{template:foskill} {{name=@{character_name}}} {{attr=Agility}} {{attr_num=@{agility_total}}} {{skill=Small Guns}} {{skill_num=@{small_guns_total}}} {{target=[[@{agility_total}+@{small_guns_total}]]}} {{dice_num=?{Number of dice|2}}} {{difficulty=?{Difficulty|1}}} {{result=[[?{Number of dice|22}d20<[[@{agility_total}+@{small_guns_total}]]sacs<@{small_guns_cs}cf>20 ]]}}">
Small Guns [AGI]
+ value="&{template:foskill} {{name=@{character_name}}} {{attr=Agility}} {{attr_num=@{agility_total}}} {{skill=Sneak}} {{skill_num=@{sneak_total}}} {{target=[[@{agility_total}+@{sneak_total}]]}} {{dice_num=?{Number of dice|2}}} {{difficulty=?{Difficulty|1}}} {{result=[[?{Number of dice|22}d20<[[@{agility_total}+@{sneak_total}]]sacs<@{sneak_cs}cf>20 ]]}}">
Sneak [AGI]
+ value="&{template:foskill} {{name=@{character_name}}} {{attr=Charisma}} {{attr_num=@{charisma_total}}} {{skill=Speech}} {{skill_num=@{speech_total}}} {{target=[[@{charisma_total}+@{speech_total}]]}} {{dice_num=?{Number of dice|2}}} {{difficulty=?{Difficulty|1}}} {{result=[[?{Number of dice|22}d20<[[@{charisma_total}+@{speech_total}]]sacs<@{speech_cs}cf>20 ]]}}">
Speech [CHA]
+ value="&{template:foskill} {{name=@{character_name}}} {{attr=Endurance}} {{attr_num=@{endurance_total}}} {{skill=Survival}} {{skill_num=@{survival_total}}} {{target=[[@{endurance_total}+@{survival_total}]]}} {{dice_num=?{Number of dice|2}}} {{difficulty=?{Difficulty|1}}} {{result=[[?{Number of dice|22}d20<[[@{endurance_total}+@{survival_total}]]sacs<@{survival_cs}cf>20 ]]}}">
Survival [END]
+ value="&{template:foskill} {{name=@{character_name}}} {{attr=Agility}} {{attr_num=@{agility_total}}} {{skill=Throwing}} {{skill_num=@{throwing_total}}} {{target=[[@{agility_total}+@{throwing_total}]]}} {{dice_num=?{Number of dice|2}}} {{difficulty=?{Difficulty|1}}} {{result=[[?{Number of dice|22}d20<[[@{agility_total}+@{throwing_total}]]sacs<@{throwing_cs}cf>20 ]]}}">
Throwing [AGI]
+ value="&{template:foskill} {{name=@{character_name}}} {{attr=Strength}} {{attr_num=@{strength_total}}} {{skill=Unarmed}} {{skill_num=@{unarmed_total}}} {{target=[[@{strength_total}+@{unarmed_total}]]}} {{dice_num=?{Number of dice|2}}} {{difficulty=?{Difficulty|1}}} {{result=[[?{Number of dice|22}d20<[[@{strength_total}+@{unarmed_total}]]sacs<@{unarmed_cs}cf>20 ]]}}">
Unarmed [STR]
Character Sheet Settings
-
Release Notes
-
Alpha 0.12
-
- Combat Dice use the symbol where possible.
- Elsewhere they are abbreviated as CD .
- 2d20 rolls and Combat Dice are implemented in a simple fashion that
- uses the built in dice roller in chat. Click on any skill on the
- character sheet to roll a number of d20s. Critical successes and
- complications must be counted manually from the chat results.
- Clicking on combat dice under melee damage or weapons will roll
- a single combat die and display the results.
- I am exploring other options for a future release.
-
-
-
Style
-
-
Vault Girl
-
-
-
-
+
+
Release Notes
+
Alpha 0.13
+
+ Fixed bug/typos in skill rolls to use correct stats and critical range on tag.
+ Added option for additional tag skills on the Skills tab under
+ SPECIAL.
+ Fixed delete button on the perks list.
+ Added modifier for HP on the Derived Stats tab under SPECIAL.
+ Added modifier for SPECIAL points on the Attributes tab under
+ SPECIAL.
+ Added modifier for skill points on the Skills tab under
+ SPECIAL.
+ Disabled Confirm/copy button after first use.
+
+
Alpha 0.12
+
+ Combat Dice use the symbol where possible.
+ Elsewhere they are abbreviated as CD .
+ 2d20 rolls and Combat Dice are implemented in a simple fashion that
+ uses the built in dice roller in chat. Click on any skill on the
+ character sheet to roll a number of d20s. Critical successes and
+ complications must be counted manually from the chat results.
+ Clicking on combat dice under melee damage or weapons will roll
+ a single combat die and display the results.
+ I am exploring other options for a future release.
+
+
+
@@ -1937,6 +1996,7 @@ const skillList = ["ATHLETICS","BARTER","BIG_GUNS",
"ENERGY_WEAPONS","EXPLOSIVES","LOCKPICK","MEDICINE","MELEE_WEAPONS",
"PILOT","REPAIR","SCIENCE","SMALL_GUNS","SNEAK","SPEECH","SURVIVAL",
"THROWING","UNARMED"];
+const skillTagModList = skillList.map(i => i + "_TAG_MOD");
const originTagList = ["ORIGIN","BROTHERHOOD_TAG","SURVIVOR_CHOICE",
"SURVIVOR_TRAIT1","SURVIVOR_TRAIT2","SURVIVOR_PERK","SURVIVOR_TAG",
"VAULT_TAG"];
@@ -1950,10 +2010,11 @@ const confirmList = ["ORIGIN","BROTHERHOOD_PACKAGE","MUTANT_PACKAGE",
"SURVIVOR_TRAIT2","SURVIVOR_PERK"];
const triggerList =
addList.concat(attributelist).concat(skillList).concat(originTagList)
- .concat(survivorAttrList).concat(tagSkillList);
+ .concat(survivorAttrList).concat(tagSkillList).concat(skillTagModList);
const valueList =
addList.concat(attributelist).concat(totalAttributelist).concat(skillList)
- .concat(originTagList).concat(survivorAttrList).concat(tagSkillList);
+ .concat(originTagList).concat(survivorAttrList).concat(tagSkillList)
+ .concat(skillTagModList);
const originsDictionary = {
"brotherhood": {"name": "Brotherhood of Steel"},
"ghoul": {"name": "Ghoul"},
@@ -2684,6 +2745,7 @@ on("clicked:copyspecial", function() {
["itemname"], [origin_tag_package]);
}
+ update["finalized"] = 1;
update["tab"] = "character";
setAttrs(update);
@@ -2705,6 +2767,7 @@ attributelist.forEach(attribute => {
triggerList.forEach(trigger => {
on(`change:${trigger}`, function(eventInfo) {
getAttrs(valueList, function(values) {
+ console.log(values);
let update = {};
let attributes = {};
@@ -2742,9 +2805,12 @@ triggerList.forEach(trigger => {
let cost = parseInt(values[skill])||0;
let name = skill.toLowerCase();
let points = parseInt(values[skill])||0;
- update[`${name}_tag`] = 0;
- update[`${name}_cs`] = 1;
- update[`${name}_total`] = Math.min(points, 6);
+ let tag_mod = parseInt(values[`${skill}_TAG_MOD`])||0;
+ update[`${name}_tag`] = tag_mod ? 1 : 0;
+ update[`${name}_cs`] = tag_mod ? Math.min(points + 2, 6) : 1;
+ update[`${name}_total`] = tag_mod ?
+ Math.min(points + 2, 6) :
+ Math.min(points, 6);
skill_buy += cost;
});
update["origin_tag_name"] = "";
@@ -2850,9 +2916,7 @@ triggerList.forEach(trigger => {
update["defense"] = attributes["agility"] > 8 ? 2 : 1;
update["initiative"] = attributes["perception"] +
attributes["agility"];
- update["hp"] = attributes["endurance"] + attributes["luck"]
- + (level - 1);
- update["hp_max"] = attributes["endurance"] + attributes["luck"]
+ update["hp_derived"] = attributes["endurance"] + attributes["luck"]
+ (level - 1);
update["hp_ratio"] = 100;
update["melee_damage"] =
@@ -2915,7 +2979,8 @@ on("change:carry_weight_weapons change:carry_weight_gear", function() {
});
});
-const combatList = ["MELEE_DAMAGE","DEFENSE","INITIATIVE"];
+const combatList = ["ATTRIBUTE_POINTS","SKILL_POINTS","MELEE_DAMAGE",
+ "DEFENSE","INITIATIVE"];
combatList.forEach(stat => {
let statLower = stat.toLowerCase();
on(`change:${statLower} change:${statLower}_mod`, function(eventInfo) {
@@ -2930,6 +2995,18 @@ combatList.forEach(stat => {
});
});
+on(`change:hp_derived change:hp_mod`, function(eventInfo) {
+ getAttrs(['HP_DERIVED', 'HP_MOD'], function(values) {
+ let update = {};
+ let base = parseInt(values.HP_DERIVED)||0;
+ let mod = parseInt(values.HP_MOD)||0;
+ let total = base + mod;
+ update['hp'] = total;
+ update['hp_max'] = total;
+ setAttrs(update);
+ });
+});
+
const typeList = ["PHYSICAL","ENERGY","RAD","POISON"];
typeList.forEach(type => {
let typeLower = type.toLowerCase();