[Shadowrun5thA] fix import of skill with multiple specs

This commit is contained in:
Stexinator
2021-12-03 12:25:04 +01:00
parent b4888bda15
commit 342eba4e25
+54 -138
View File
@@ -12059,7 +12059,7 @@ on("change:chummercheckbox", async function(){
try{
if(chummerfile.characters.character.initiategrade != null && chummerfile.characters.character.initiategrade != 0) {
console.log("Importing initiategrade and metamagic");
attributes.initiationgrade=chummerfile.characters.character.initiategrade;
attributes.initiationgrade = chummerfile.characters.character.initiategrade;
if(chummerfile.characters.character.metamagics != null){
if(chummerfile.characters.character.metamagics.metamagic.length>1){
for(var i=0;i<chummerfile.characters.character.metamagics.metamagic.length;i++){
@@ -12451,123 +12451,38 @@ on("change:chummercheckbox", async function(){
var ritual=0;
try{
console.log("Importing Skills");
if(chummerfile.characters.character.skills.skill[0].name_english !== undefined) {
for(var i=0;i<chummerfile.characters.character.skills.skill.length;i++){
if(chummerfile.characters.character.skills.skill[i].name_english=="Alchemy"){
alchemy=i;
}
if(chummerfile.characters.character.skills.skill[i].name_english=="Spellcasting"){
spellcasting=i;
}
if(chummerfile.characters.character.skills.skill[i].name_english=="Ritual Spellcasting"){
ritual=i;
}
if(chummerfile.characters.character.skills.skill[i].knowledge=="True"){
var newrowid=generateRowID();
attributes["repeating_knowledge_"+newrowid+"_knowledgename"]=chummerfile.characters.character.skills.skill[i].name;
if(chummerfile.characters.character.skills.skill[i].skillcategory_english!=null){
attributes["repeating_knowledge_"+newrowid+"_knowledgeattr"]="@{"+chummerfile.characters.character.skills.skill[i].skillcategory_english.toLowerCase();
}
if(chummerfile.characters.character.skills.skill[i].rating>0){
attributes["repeating_knowledge_"+newrowid+"_knowledgerating"]=chummerfile.characters.character.skills.skill[i].rating;
attributes["repeating_knowledge_"+newrowid+"_knowledgebonus"]=chummerfile.characters.character.skills.skill[i].total-chummerfile.characters.character.skills.skill[i].rating-chummerfile.characters.character.skills.skill[i].attributemod;
}else{
attributes["repeating_knowledge_"+newrowid+"_knowledgerating"]="-1";
attributes["repeating_knowledge_"+newrowid+"_knowledgebonus"]=chummerfile.characters.character.skills.skill[i].total-chummerfile.characters.character.skills.skill[i].rating-chummerfile.characters.character.skills.skill[i].attributemod+1;
}
if(chummerfile.characters.character.skills.skill[i].skillspecializations!=null) {
attributes["repeating_knowledge_"+newrowid+"_knowledgespec"]=chummerfile.characters.character.skills.skill[i].skillspecializations.skillspecialization.name;
}
else
attributes["repeating_knowledge_"+newrowid+"_knowledgespec"]="none";
}
if(chummerfile.characters.character.skills.skill[i].exotic=="True"){
attributes["skillname"+exotics]=chummerfile.characters.character.skills.skill[i].name_english;
if(chummerfile.characters.character.skills.skill[i].rating>0){
attributes["skillbonus"+exotics]=chummerfile.characters.character.skills.skill[i].total-chummerfile.characters.character.skills.skill[i].rating-chummerfile.characters.character.skills.skill[i].attributemod;
attributes["skillrating"+exotics]=chummerfile.characters.character.skills.skill[i].rating;
}else{
attributes["skillrating"+exotics]="-1";
attributes["skillbonus"+exotics]=chummerfile.characters.character.skills.skill[i].total-chummerfile.characters.character.skills.skill[i].rating-chummerfile.characters.character.skills.skill[i].attributemod+1;
}
attributes["skillattr"+exotics]="@{"+chummerfile.characters.character.skills.skill[i].attribute.toLowerCase();
if(chummerfile.characters.character.skills.skill[i].skillspecializations!=null)
attributes["skillspec"+exotics]=chummerfile.characters.character.skills.skill[i].skillspecializations.skillspecialization.name;
else
attributes["skillspec"+exotics]="none";
exotics++;
}
for(var j=1;j<73;j++){
var compname='skillname'+j;
if((names[compname]==chummerfile.characters.character.skills.skill[i].name_english)||(chummerfile.characters.character.skills.skill[i].name_english=="Locksmith"&&j==29)||(chummerfile.characters.character.skills.skill[i].name_english=="Pilot Ground Craft"&&j==55)){
attributes["skillattr"+j]="@{"+chummerfile.characters.character.skills.skill[i].attribute.toLowerCase();
if(chummerfile.characters.character.skills.skill[i].rating>0){
attributes["skillrating"+j]=chummerfile.characters.character.skills.skill[i].rating;
attributes["skillbonus"+j]=chummerfile.characters.character.skills.skill[i].total-chummerfile.characters.character.skills.skill[i].rating-chummerfile.characters.character.skills.skill[i].attributemod;
}else{
attributes["skillrating"+j]="-1";
attributes["skillbonus"+j]=chummerfile.characters.character.skills.skill[i].total-chummerfile.characters.character.skills.skill[i].rating-chummerfile.characters.character.skills.skill[i].attributemod+1;
}
if(chummerfile.characters.character.skills.skill[i].skillspecializations != null && chummerfile.characters.character.skills.skill[i].skillspecializations.skillspecialization.name != null)
attributes["skillspec"+j]=chummerfile.characters.character.skills.skill[i].skillspecializations.skillspecialization.name;
else
attributes["skillspec"+j]="none";
if(chummerfile.characters.character.weapons!=null){
if(chummerfile.characters.character.weapons.weapon.length>1){
for(var h=1;h<chummerfile.characters.character.weapons.weapon.length+1&&h<9;h++){
if(chummerfile.characters.character.weapons.weapon[h-1].category!="Gear"){
if(names[compname] == chummerfile.characters.character.weapons.weapon[h-1].skill){
attributes["weaponcategory"+h]="@{skilldicepool"+j+"}";
attributes["weaponbonus"+h]=chummerfile.characters.character.weapons.weapon[h-1].dicepool-chummerfile.characters.character.skills.skill[i].total;
}
}
}
}else{
if(chummerfile.characters.character.weapons.weapon.category!="Gear"){
if(names[compname] == chummerfile.characters.character.weapons.weapon.skill){
attributes["weaponcategory1"]="@{skilldicepool"+j+"}";
attributes["weaponbonus1"]=chummerfile.characters.character.weapons.weapon.dicepool-chummerfile.characters.character.skills.skill[i].total;
}
}
}
}
}
}
}
}
else {
for(var i=0;i<chummerfile.characters.character.skills.skill.length;i++){
if(chummerfile.characters.character.skills.skill[i].name=="Alchemy"){
for(var i=0;i<chummerfile.characters.character.skills.skill.length;i++){
if(chummerfile.characters.character.skills.skill[i].name_english=="Alchemy"){
alchemy=i;
}
if(chummerfile.characters.character.skills.skill[i].name=="Spellcasting"){
if(chummerfile.characters.character.skills.skill[i].name_english=="Spellcasting"){
spellcasting=i;
}
if(chummerfile.characters.character.skills.skill[i].name=="Ritual Spellcasting"){
if(chummerfile.characters.character.skills.skill[i].name_english=="Ritual Spellcasting"){
ritual=i;
}
if(chummerfile.characters.character.skills.skill[i].knowledge=="True"){
var newrowid=generateRowID();
attributes["repeating_knowledge_"+newrowid+"_knowledgename"]=chummerfile.characters.character.skills.skill[i].name;
if(chummerfile.characters.character.skills.skill[i].skillcategory_english!=null)
attributes["repeating_knowledge_"+newrowid+"_knowledgeattr"]="@{"+chummerfile.characters.character.skills.skill[i].skillcategory_english.toLowerCase();
if(chummerfile.characters.character.skills.skill[i].rating>0){
attributes["repeating_knowledge_"+newrowid+"_knowledgerating"]=chummerfile.characters.character.skills.skill[i].rating;
attributes["repeating_knowledge_"+newrowid+"_knowledgebonus"]=chummerfile.characters.character.skills.skill[i].total-chummerfile.characters.character.skills.skill[i].rating-chummerfile.characters.character.skills.skill[i].attributemod;
if(chummerfile.characters.character.skills.skill[i].skillcategory_english!=null){
attributes["repeating_knowledge_"+newrowid+"_knowledgeattr"]="@{"+chummerfile.characters.character.skills.skill[i].skillcategory_english.toLowerCase();
}
if(chummerfile.characters.character.skills.skill[i].rating > 0){
attributes["repeating_knowledge_"+newrowid+"_knowledgerating"] = chummerfile.characters.character.skills.skill[i].rating;
attributes["repeating_knowledge_"+newrowid+"_knowledgebonus"] = chummerfile.characters.character.skills.skill[i].total-chummerfile.characters.character.skills.skill[i].rating-chummerfile.characters.character.skills.skill[i].attributemod;
}else{
attributes["repeating_knowledge_"+newrowid+"_knowledgerating"]="-1";
attributes["repeating_knowledge_"+newrowid+"_knowledgebonus"]=chummerfile.characters.character.skills.skill[i].total-chummerfile.characters.character.skills.skill[i].rating-chummerfile.characters.character.skills.skill[i].attributemod+1;
attributes["repeating_knowledge_"+newrowid+"_knowledgerating"] = "-1";
attributes["repeating_knowledge_"+newrowid+"_knowledgebonus"] = chummerfile.characters.character.skills.skill[i].total-chummerfile.characters.character.skills.skill[i].rating-chummerfile.characters.character.skills.skill[i].attributemod+1;
}
if(chummerfile.characters.character.skills.skill[i].spec != null) {
attributes["repeating_knowledge_"+newrowid+"_knowledgespec"] = chummerfile.characters.character.skills.skill[i].spec;
}
if(chummerfile.characters.character.skills.skill[i].skillspecializations!=null)
attributes["repeating_knowledge_"+newrowid+"_knowledgespec"]=chummerfile.characters.character.skills.skill[i].skillspecializations.skillspecialization.name;
else
attributes["repeating_knowledge_"+newrowid+"_knowledgespec"]="none";
attributes["repeating_knowledge_"+newrowid+"_knowledgespec"] = "none";
}
if(chummerfile.characters.character.skills.skill[i].exotic=="True"){
attributes["skillname"+exotics]=chummerfile.characters.character.skills.skill[i].name;
attributes["skillname"+exotics]=chummerfile.characters.character.skills.skill[i].name_english;
if(chummerfile.characters.character.skills.skill[i].rating>0){
attributes["skillbonus"+exotics]=chummerfile.characters.character.skills.skill[i].total-chummerfile.characters.character.skills.skill[i].rating-chummerfile.characters.character.skills.skill[i].attributemod;
attributes["skillrating"+exotics]=chummerfile.characters.character.skills.skill[i].rating;
@@ -12576,15 +12491,17 @@ on("change:chummercheckbox", async function(){
attributes["skillbonus"+exotics]=chummerfile.characters.character.skills.skill[i].total-chummerfile.characters.character.skills.skill[i].rating-chummerfile.characters.character.skills.skill[i].attributemod+1;
}
attributes["skillattr"+exotics]="@{"+chummerfile.characters.character.skills.skill[i].attribute.toLowerCase();
if(chummerfile.characters.character.skills.skill[i].skillspecializations!=null)
attributes["skillspec"+exotics]=chummerfile.characters.character.skills.skill[i].skillspecializations.skillspecialization.name;
if(chummerfile.characters.character.skills.skill[i].spec != null)
attributes["skillspec"+exotics] = chummerfile.characters.character.skills.skill[i].spec;
else
attributes["skillspec"+exotics]="none";
exotics++;
}
for(var j=1;j<73;j++){
var compname='skillname'+j;
if((names[compname]==chummerfile.characters.character.skills.skill[i].name)||(chummerfile.characters.character.skills.skill[i].name=="Locksmith"&&j==29)||(chummerfile.characters.character.skills.skill[i].name=="Pilot Ground Craft"&&j==55)){
if((names[compname]==chummerfile.characters.character.skills.skill[i].name_english)||(chummerfile.characters.character.skills.skill[i].name_english=="Locksmith"&&j==29)||(chummerfile.characters.character.skills.skill[i].name_english=="Pilot Ground Craft"&&j==55)){
attributes["skillattr"+j]="@{"+chummerfile.characters.character.skills.skill[i].attribute.toLowerCase();
if(chummerfile.characters.character.skills.skill[i].rating>0){
attributes["skillrating"+j]=chummerfile.characters.character.skills.skill[i].rating;
@@ -12593,15 +12510,18 @@ on("change:chummercheckbox", async function(){
attributes["skillrating"+j]="-1";
attributes["skillbonus"+j]=chummerfile.characters.character.skills.skill[i].total-chummerfile.characters.character.skills.skill[i].rating-chummerfile.characters.character.skills.skill[i].attributemod+1;
}
if(chummerfile.characters.character.skills.skill[i].skillspecializations != null && chummerfile.characters.character.skills.skill[i].skillspecializations.skillspecialization.name != null)
attributes["skillspec"+j]=chummerfile.characters.character.skills.skill[i].skillspecializations.skillspecialization.name;
if(chummerfile.characters.character.skills.skill[i].spec != null) {
attributes["skillspec"+j] = chummerfile.characters.character.skills.skill[i].spec;
}
else
attributes["skillspec"+j]="none";
if(chummerfile.characters.character.weapons!=null){
if(chummerfile.characters.character.weapons.weapon.length>1){
for(var h=1;h<chummerfile.characters.character.weapons.weapon.length+1&&h<=6;h++){
for(var h=1;h<chummerfile.characters.character.weapons.weapon.length+1&&h<9;h++){
if(chummerfile.characters.character.weapons.weapon[h-1].category!="Gear"){
if(names[compname]==chummerfile.characters.character.weapons.weapon[h-1].skill){
if(names[compname] == chummerfile.characters.character.weapons.weapon[h-1].skill){
attributes["weaponcategory"+h]="@{skilldicepool"+j+"}";
attributes["weaponbonus"+h]=chummerfile.characters.character.weapons.weapon[h-1].dicepool-chummerfile.characters.character.skills.skill[i].total;
}
@@ -12609,7 +12529,7 @@ on("change:chummercheckbox", async function(){
}
}else{
if(chummerfile.characters.character.weapons.weapon.category!="Gear"){
if(names[compname]==chummerfile.characters.character.weapons.weapon.skill){
if(names[compname] == chummerfile.characters.character.weapons.weapon.skill){
attributes["weaponcategory1"]="@{skilldicepool"+j+"}";
attributes["weaponbonus1"]=chummerfile.characters.character.weapons.weapon.dicepool-chummerfile.characters.character.skills.skill[i].total;
}
@@ -12619,11 +12539,11 @@ on("change:chummercheckbox", async function(){
}
}
}
}
}catch(err){
}catch(err){
goodcode=false;
error= error + "\n" + "Error with Skills: "+ err;
}
try{
if(chummerfile.characters.character.spells != null){
console.log("Importing spells");
@@ -13137,33 +13057,29 @@ const importSingleVehicleMod = (mod, newrowid, attributes, weaponnumber) => {
}
const importSingleVehicleWeapon = (weapon, newrowid, attributes, weaponnumber) => {
if(weapon.category != "Gear"){
attributes["repeating_vehicles_"+newrowid+"_vehicleweaponname" + weaponnumber] = weapon.name;
attributes["repeating_vehicles_"+newrowid+"_vehicleweaponaccuracy"+ weaponnumber] = weapon.accuracy.match(/\d+/g).pop();
if(weapon.type == "Ranged")
attributes["repeating_vehicles_"+newrowid+"_vehicleweaponrc"+ weaponnumber] = weapon.rc.match(/\d+/g).pop();
if(Number(weapon.ap) != "NaN"){
attributes["repeating_vehicles_"+newrowid+"_vehicleweaponap"+ weaponnumber] = weapon.ap;
}else{
attributes["repeating_vehicles_"+newrowid+"_vehicleweaponap"+ weaponnumber] = 0;
}
attributes["repeating_vehicles_"+newrowid+"_vehicleweapondv"+ weaponnumber] = weapon.damage_english.match(/\d*/);
attributes["repeating_vehicles_"+newrowid+"_vehicleweapondmgtype"+ weaponnumber] = weapon.damage_english.match(/^\d*/);
attributes["repeating_vehicles_"+newrowid+"_vehicleweaponnotes"+ weaponnumber] = "";
if(typeof weapon.accessories != "undefined"){
if(weapon.accessories.accessory.length > 1){
for(var h = 0; h < weapon.accessories.accessory.length; h++){
attributes["repeating_vehicles_"+newrowid+"_vehicleweaponnotes"+ weaponnumber] += weapon.accessories.accessory[h].name+"\n";
}
}else{
attributes["repeating_vehicles_"+newrowid+"_vehicleweaponnotes"+ weaponnumber] += weapon.accessories.accessory.name+"\n";
console.log(weapon);
attributes["repeating_vehicles_"+newrowid+"_vehicleweaponname" + weaponnumber] = weapon.name;
attributes["repeating_vehicles_"+newrowid+"_vehicleweaponaccuracy"+ weaponnumber] = weapon.accuracy.match(/\d+/g).pop();
if(weapon.type == "Ranged")
attributes["repeating_vehicles_"+newrowid+"_vehicleweaponrc"+ weaponnumber] = weapon.rc.match(/\d+/g).pop();
if(Number(weapon.ap) != "NaN"){
attributes["repeating_vehicles_"+newrowid+"_vehicleweaponap"+ weaponnumber] = weapon.ap;
}else{
attributes["repeating_vehicles_"+newrowid+"_vehicleweaponap"+ weaponnumber] = 0;
}
attributes["repeating_vehicles_"+newrowid+"_vehicleweapondv"+ weaponnumber] = weapon.damage_english.match(/\d*/);
attributes["repeating_vehicles_"+newrowid+"_vehicleweapondmgtype"+ weaponnumber] = weapon.damage_english.match(/^\d*/);
attributes["repeating_vehicles_"+newrowid+"_vehicleweaponnotes"+ weaponnumber] = "";
if(typeof weapon.accessories != "undefined"){
if(weapon.accessories.accessory.length > 1){
for(var h = 0; h < weapon.accessories.accessory.length; h++){
attributes["repeating_vehicles_"+newrowid+"_vehicleweaponnotes"+ weaponnumber] += weapon.accessories.accessory[h].name+"\n";
}
}else{
attributes["repeating_vehicles_"+newrowid+"_vehicleweaponnotes"+ weaponnumber] += weapon.accessories.accessory.name+"\n";
}
return weaponnumber +1;
}
else {
return weaponnumber;
}
return weaponnumber +1;
}
function importSingleDrone(drone, attributes) {