on("sheet:opened change:json",function(){ console.log("json changed"); setAttrs({jsonerg: " "}); }); on("clicked:jsonimport",function(){ console.log("Importjson"); ; getAttrs(["json"], function (v) { importerror = false; let data; try{ data = JSON.parse(v.json); } catch(err){ importerror = true; } if (!importerror && v.jsonimport != "") { // clearSheet(); try{ writeToSheet(data); setAttrs({jsonerg: "import erfolgreich!"}); } catch(err){ setAttrs({json: "Fehler beim importieren: " + err}); setAttrs({jsonerg: ""}) } } else { setAttrs({json: "Fehler beim Parsen des JSON-Strings!"}); setAttrs({jsonerg: ""}) } }); }); function writeToSheet (data) { let c = {}; //c["character_name"]=data["streetName"]||""; c["metatyp"]=data["metaType"]||""; c["gender"]=data["gender"]||""; c["age"]=data["age"]||""; //c["heat"]=data["heat"]||"0"; c["karma"]=data["freeKarma"]||"0"; c["name"]=data["name"]||""; c["magictype"]=data["metamagic"]||""; c["size"]=data["size"]||""; c["weigth"]=data["weigth"]||""; //c["essenz"]=data["essenz"]||""; //c["reputation"]=data["reputation"]||""; c["karmatotal"]=data["karma"]||"0"; console.log("Body Base= " + data["attributes"][0]["points"]); c["body_base"]=parseInt(data["attributes"][0]["points"])||0; c["body_modifier"]=(parseInt(data["attributes"][0]["modifiedValue"])||0)-c["body_base"]; c["agility_base"]=parseInt(data["attributes"][1]["points"])||0; c["agility_modifier"]=(parseInt(data["attributes"][1]["modifiedValue"])||0)-c["agility_base"]; c["reaction_base"]=parseInt(data["attributes"][2]["points"])||0; c["reaction_modifier"]=(parseInt(data["attributes"][2]["modifiedValue"])||0)-c["reaction_base"]; c["strength_base"]=parseInt(data["attributes"][3]["points"])||0; c["strength_modifier"]=(parseInt(data["attributes"][3]["modifiedValue"])||0)-c["strength_base"]; c["willpower_base"]=parseInt(data["attributes"][4]["points"])||0; c["willpower_modifier"]=(parseInt(data["attributes"][4]["modifiedValue"])||0)-c["willpower_base"]; c["logic_base"]=parseInt(data["attributes"][5]["points"])||0; c["logic_modifier"]=(parseInt(data["attributes"][5]["modifiedValue"])||0)-c["logic_base"]; c["intuition_base"]=parseInt(data["attributes"][6]["points"])||0; c["intuition_modifier"]=(parseInt(data["attributes"][6]["modifiedValue"])||0)-c["intuition_base"]; c["charisma_base"]=parseInt(data["attributes"][7]["points"])||0; c["charisma_modifier"]=(parseInt(data["attributes"][7]["modifiedValue"])||0)-c["charisma_base"]; c["edge_base"]=parseInt(data["attributes"][8]["points"])||0; c["edge_modifier"]=(parseInt(data["attributes"][8]["modifiedValue"])||0)-c["edge_base"]; c["magic_base"]=parseInt(data["attributes"][9]["modifiedValue"])||0; c["display_inigrade"]=parseInt(data["initiation"])||0; c["display_resonance"]=parseInt(data["attributes"][10]["modifiedValue"])||0; c["display_powerpoints"]=parseInt(data["attributes"][11]["modifiedValue"])||0; let attrtranslate={}; attrtranslate["Geschicklichkeit"]="agility"; attrtranslate["Charisma"]="agility"; attrtranslate["Logik"]="logic"; attrtranslate["Intuition"]="intuition"; attrtranslate["Willenskraft"]="willpower"; attrtranslate["Stärke"]="strength"; attrtranslate["Reaktion"]="reaction"; attrtranslate["Magie"]="magic"; attrtranslate["Resonanze"]="resonance"; getSectionIDs("repeating_language", function(idarray) { for(var i=0; i < idarray.length; i++) { removeRepeatingRow("repeating_language_" + idarray[i]); } }); getSectionIDs("repeating_knowledge", function(idarray) { for(var i=0; i < idarray.length; i++) { removeRepeatingRow("repeating_knowledge_" + idarray[i]); } }); console.log("Skills"); for (var i = 0; i < data["skills"].length; i++) { console.log("Skill= " + data["skills"][i].name); if(data["skills"][i].id=="knowledge"){ console.log("Know= " + data["skills"][i].name); newrowid = generateRowID(); c["repeating_knowledge_" + newrowid + "_knowledge_name"]=data["skills"][i].name||""; //c["repeating_knowledge_" + newrowid + "_knowledge_desc"]=data["knowledge_desc"]; } if(data["skills"][i].id=="language"){ console.log("Lang= " + data["skills"][i].name); newrowid = generateRowID(); c["repeating_language_" + newrowid + "_language_name"]=data["skills"][i].name; c["repeating_language_" + newrowid + "_language_level"]=data["skills"][i].rating; if (c["repeating_language_" + newrowid + "_language_level"]==4) c["repeating_language_" + newrowid + "_language_level"]=99; } if(data["skills"][i].id!="language" && data["skills"][i].id!="knowledge"){ if(data["skills"][i].id=="close_combat") data["skills"][i].id="melee"; console.log("set skill_" + data["skills"][i].id + "_base=" + data["skills"][i].rating.toString()); c["skill_" + data["skills"][i].id + "_base"]=data["skills"][i].rating; c["skill_" + data["skills"][i].id + "_attribute"]="display_" +attrtranslate[data["skills"][i].attribute]; if (data["skills"][i].specializations.length>0) { c["skill_" + data["skills"][i].id + "_spec"]=data["skills"][i].specializations[0].name; if (data["skills"][i].specializations[0].expertise) c["skill_" + data["skills"][i].id + "_exp"]=data["skills"][i].specializations[0].name; } } } getSectionIDs("repeating_sins", function(idarray) { for(var i=0; i < idarray.length; i++) { removeRepeatingRow("repeating_sins_" + idarray[i]); } }); getSectionIDs("repeating_perks", function(idarray) { for(var i=0; i < idarray.length; i++) { removeRepeatingRow("repeating_perks_" + idarray[i]); } }); getSectionIDs("repeating_contacts", function(idarray) { for(var i=0; i < idarray.length; i++) { removeRepeatingRow("repeating_contacts_" + idarray[i]); } }); getSectionIDs("repeating_armor", function(idarray) { for(var i=0; i < idarray.length; i++) { removeRepeatingRow("repeating_armor_" + idarray[i]); } }); getSectionIDs("repeating_cyberware", function(idarray) { for(var i=0; i < idarray.length; i++) { removeRepeatingRow("repeating_cyberware_" + idarray[i]); } }); getSectionIDs("repeating_gear", function(idarray) { for(var i=0; i < idarray.length; i++) { removeRepeatingRow("repeating_gear_" + idarray[i]); } }); getSectionIDs("repeating_spells", function(idarray) { for(var i=0; i < idarray.length; i++) { removeRepeatingRow("repeating_spells_" + idarray[i]); } }); getSectionIDs("repeating_vehicle", function(idarray) { for(var i=0; i < idarray.length; i++) { removeRepeatingRow("repeating_vehicle_" + idarray[i]); } }); getSectionIDs("repeating_adeptpowers", function(idarray) { for(var i=0; i < idarray.length; i++) { removeRepeatingRow("repeating_adeptpowers_" + idarray[i]); } }); console.log("Adeptenkräfte"); data["adeptPowers"].sort(function(a,b) { if (a.name < b.name) { return -1; } if (a.name > b.name) { return 1; } // Namen müssen gleich sein return 0; }); for (var i = 0; i < data["adeptPowers"].length; i++) { console.log(data["adeptPowers"][i].name||""); let rw="repeating_adeptpowers_"; newrowid = generateRowID(); c[rw + newrowid + "_" + "adept_power_name"]= data["adeptPowers"][i].name||""; c[rw + newrowid + "_" + "adept_power_level"]= parseInt(data["adeptPowers"][i].name[data["adeptPowers"][i].name.length-1])||0; c[rw + newrowid + "_" + "adept_power_cost"]= data["adeptPowers"][i].cost||"0"; c[rw + newrowid + "_" + "adept_power_rules"]= data["adeptPowers"][i].page||""; if (c[rw + newrowid + "_" + "adept_power_level"]>0) c[rw + newrowid + "_" + "adept_power_name"]=c[rw + newrowid + "_" + "adept_power_name"].substring(0,c[rw + newrowid + "_" + "adept_power_name"].length-1) console.log("NAME: " + c[rw + newrowid + "_" + "adept_power_name"]); } console.log("Dronen"); data["drones"].sort(function(a,b) { if (a.name < b.name) { return -1; } if (a.name > b.name) { return 1; } // Namen müssen gleich sein return 0; }); for (var i = 0; i < data["drones"].length; i++) { console.log(data["drones"][i].name||""); let rw="repeating_vehicle_"; newrowid = generateRowID(); c[rw + newrowid + "_" + "vehicle_name"]= data["drones"][i].name||""; c[rw + newrowid + "_" + "vehicle_art"]= "Drone"; c[rw + newrowid + "_" + "vehicle_hand"]= data["drones"][i].handling[0]||""; c[rw + newrowid + "_" + "vehicle_vel"]= data["drones"][i].acceleration||"0"; c[rw + newrowid + "_" + "vehicle_interv"]= data["drones"][i].speed.split("/")[1] c[rw + newrowid + "_" + "vehicle_speedmax"]= data["drones"][i].speed.split("/")[0]||"0"; c[rw + newrowid + "_" + "vehicle_pilot"]= data["drones"][i].pilot||"0"; c[rw + newrowid + "_" + "vehicle_body"]= data["drones"][i].body||"0"; c[rw + newrowid + "_" + "vehicle_sensor"]= data["drones"][i].sensor||"0"; c[rw + newrowid + "_" + "vehicle_armor"]= data["drones"][i].armor||"0"; c[rw + newrowid + "_" + "vehicle_desc"]= data["drones"][i].page||""; c[rw + newrowid + "_" + "vehicle_desc"]+="\r\nHandling: " + data["vehicles"][i].handling||""; } console.log("Zauber"); data["spells"].sort(function(a,b) { if (a.name < b.name) { return -1; } if (a.name > b.name) { return 1; } // Namen müssen gleich sein return 0; }); for (var i = 0; i < data["spells"].length; i++) { console.log(data["spells"][i].name||""); let rw="repeating_spells_"; newrowid = generateRowID(); c[rw + newrowid + "_" + "spell_name"]= data["spells"][i].name||""; c[rw + newrowid + "_" + "spell_drain_base"]= data["spells"][i].drain||"0"; c[rw + newrowid + "_" + "spells_rules"]= data["spells"][i].page||""; if(data["spells"][i].range.includes("Blickfeld")) c[rw + newrowid + "_" + "spellsrange"]="spells_range_bf"; if(data["spells"][i].range.includes("Fläche")) c[rw + newrowid + "_" + "spellsrange"]="spells_range_bff"; if(data["spells"][i].range.includes("Berührung")) c[rw + newrowid + "_" + "spellsrange"]="spells_range_b"; if(data["spells"][i].category.includes("Kampfzauber")) c[rw + newrowid + "_" + "spellscategory"]="spells_combat_direct"; if(data["spells"][i].category.includes("Wahrnehmungszauber")) c[rw + newrowid + "_" + "spellscategory"]="spells_detection"; if(data["spells"][i].category.includes("Heilzauber")) c[rw + newrowid + "_" + "spellscategory"]="spells_health"; if(data["spells"][i].category.includes("Illusionszauber")) c[rw + newrowid + "_" + "spellscategory"]="spells_illusion"; if(data["spells"][i].category.includes("Manipulationszauber")) c[rw + newrowid + "_" + "spellscategory"]="spells_manipulation"; if(data["spells"][i].duration.includes("Aufrechterhalten")) c[rw + newrowid + "_" + "spellsduration"]="spells_duration_s"; if(data["spells"][i].duration.includes("Permanent")) c[rw + newrowid + "_" + "spellsduration"]="spells_duration_p"; if(data["spells"][i].duration.includes("Sofort")) c[rw + newrowid + "_" + "spellsduration"]="spells_duration_i"; if(data["spells"][i].type.includes("Physisch")) c[rw + newrowid + "_" + "spellstype"]="spells_type_p"; if(data["spells"][i].type.includes("Mana")) c[rw + newrowid + "_" + "spellstype"]="spells_type_m"; } console.log("Ausrüstung"); for (var i = 0; i < data["items"].length; i++) { console.log(data["items"][i].name||""); let rw="repeating_gear_"; newrowid = generateRowID(); c[rw + newrowid + "_" + "gear_name"]= data["items"][i].name||""; c[rw + newrowid + "_" + "gear_count"]= data["items"][i].count||"0"; c[rw + newrowid + "_" + "gear_ref"]= data["items"][i].page||""; //c[rw + newrowid + "_" + "gear_desc"]= data["items"][i].page||""; } console.log("Cyberware/bioware"); for (var i = 0; i < data["augmentations"].length; i++) { console.log(data["augmentations"][i].name||""); let rw="repeating_cyberware_"; newrowid = generateRowID(); c[rw + newrowid + "_" + "cyberware_name"]= data["augmentations"][i].name||""; c[rw + newrowid + "_" + "cyberware_level"]= data["augmentations"][i].level||"0"; c[rw + newrowid + "_" + "cyberware_ess"]= data["augmentations"][i].essence||"0"; c[rw + newrowid + "_" + "cyberware_desc"]= data["augmentations"][i].page||""; } console.log("Rüstung"); for (var i = 0; i < data["armors"].length; i++) { console.log(data["armors"][i].name||""); let rw="repeating_armor_"; newrowid = generateRowID(); c[rw + newrowid + "_" + "armor_name"]= data["armors"][i].name||""; c[rw + newrowid + "_" + "armor_prot"]= data["armors"][i].rating||"0"; // c[rw + newrowid + "_" + "armor_sozial"]= data["armors"][i].type||""; c[rw + newrowid + "_" + "armor_desc"]= ""; for(var j=0;j