Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var nobody_cares = {'Author':'X-idor', 'License':'public domain'};
- Skills = {
- 'Amulettkunde':{'t_base':130, 'Lmax':100},
- 'Angriffsenergie':{'t_base':466, 'Lmax':10},
- 'Auftragsbeziehungen':{'t_base':466, 'Lmax':40},
- 'Auftragsplanung':{'t_base':39, 'Lmax':70},
- 'Ausgrabungswissen':{'t_base':175, 'Lmax':70},
- 'Bankwesen':{'t_base':163, 'Lmax':80},
- 'Bauwesen':{'t_base':145, 'Lmax':90},
- 'Blutwissen':{'t_base':151, 'Lmax':50},
- 'Chaosmagie':{'t_base':145, 'Lmax':90},
- 'Diebstahlschutzwissen':{'t_base':163, 'Lmax':50},
- 'Getreideverarbeitung':{'t_base':93, 'Lmax':30},
- 'Gewebeforschung':{'t_base':67, 'Lmax':50},
- 'Glück':{'t_base':93, 'Lmax':15},
- 'Gold-Inspiration':{'t_base':150, 'Lmax':100},
- 'Goldabbau':{'t_base':276, 'Lmax':30},
- 'Goldraub':{'t_base':100, 'Lmax':100},
- 'Gruppenheilung':{'t_base':42, 'Lmax':120},
- 'Handwerkskunst':{'t_base':1166, 'Lmax':20},
- 'Innere Macht':{'t_base':210, 'Lmax':50},
- 'Inspiration':{'t_base':157, 'Lmax':90},
- 'Jagd':{'t_base':135, 'Lmax':50},
- 'Kochkunst':{'t_base':128, 'Lmax':80},
- 'Labortechnik':{'t_base':700, 'Lmax':32},
- 'Lagerlogistik':{'t_base':145, 'Lmax':90},
- 'Lebensenergie':{'t_base':151, 'Lmax':30},
- 'Lebenstraining':{'t_base':198, 'Lmax':50},
- 'Lerntechnik':{'t_base':583, 'Lmax':50},
- 'Magieverlängerung':{'t_base':280, 'Lmax':30},
- 'Marktwirtschaft':{'t_base':58, 'Lmax':50},
- 'Pflanzenkunde':{'t_base':233, 'Lmax':80},
- 'Phasenenergieeffizienz':{'t_base':134, 'Lmax':70},
- 'Phasenenergiemaximierung':{'t_base':145, 'Lmax':80},
- 'Phasenverständnis':{'t_base':58, 'Lmax':70},
- 'Plünderung':{'t_base':217, 'Lmax':30},
- 'Rache':{'t_base':58, 'Lmax':80},
- 'Reparaturwissen':{'t_base':70, 'Lmax':30},
- 'Schusswaffen':{'t_base':373, 'Lmax':17},
- 'Seelenverbindung':{'t_base':350, 'Lmax':60},
- 'Selbstheilung':{'t_base':186, 'Lmax':60},
- 'Stärketraining':{'t_base':175, 'Lmax':50},
- 'Verjagen':{'t_base':133, 'Lmax':100},
- 'Waffenkunst':{'t_base':151, 'Lmax':30},
- 'Wissens-Inspiration':{'t_base':25, 'Lmax':100},
- 'Zauberkunst':{'t_base':1400, 'Lmax':8},
- 'Zaubertruhenwissen':{'t_base':583, 'Lmax':40},
- 'Zeit-Inspiration':{'t_base':50, 'Lmax':100},
- 'Ölverwaltung':{'t_base':151, 'Lmax':60},
- 'Überzeugungskraft':{'t_base':198, 'Lmax':50}
- }
- range = function(a,b,step){
- var A = [];
- A[0] = a;
- step = step||1;
- while(a+step<=b){
- A[A.length]=a+=step;
- }
- return A
- };
- time_to_now = function(skillname, Lnow, Lboost){ /*the array.reduce(blah..) is apparently the easiest way to sum the elements */
- return Skills[skillname]['t_base'] * Math.pow(0.99,Lboost) * range(0,Lnow,1).reduce(function(a, b){return a + b;},0);};
- time_to_max = function(skillname, Lnow, Lboost){
- return Skills[skillname]['t_base'] * Math.pow(0.99,Lboost) * range(Lnow, Skills[skillname]['Lmax'],1).reduce(function(a, b){return a + b;},0);};
- parseselection = function(s){
- /*Strg+A, Strg+C, Strg+V the skillframe into a textfield*/
- s=s.split('higkeit\tStufe\tMax\n')[1].split('\n\n\n')[0]; /*not sure how umlauts work, better avoid them*/
- strain=s.split('\n\n')[0].split(/\n|\t/);
- smaxed=s.split('higkeit\tStufe\n')[1].split(/\n|\t/);
- var skills={};
- for(var i=0;i<strain.length;i++){skills[strain[i++]]=+strain[i++];}; /*str, int, junk, str, int, junk*/
- for(var i=0;i<smaxed.length;i++){skills[smaxed[i]]=+smaxed[++i];}; /*str, int, str, int*/
- return skills;
- }
- /*this shit right here is one of 5+ different approaches which work everywhere except FW
- var paste = document.getSelection();
- var skills = parseselection(paste);
- */
- time_spent = function(skills){ /*takes a dictionary of {'skillname': current_level} pairs as returned by parseselection */
- /*total time spent so far on all availlable skills*/
- if (!skills['Lerntechnik']) skills['Lerntechnik']=0;
- var Lboost = skills['Lerntechnik']; /*assumes LT was skilled first*/
- var tspent = [time_to_now(s, skills[s],Lboost) for (s in skills)].reduce(function(a, b){return a + b;},0);
- /*LT is unaffected by itself*/
- tspent = tspent - time_to_now('Lerntechnik', skills['Lerntechnik'],Lboost) + time_to_now('Lerntechnik', skills['Lerntechnik'],0);
- return tspent;
- }
- time_left = function(skills){ /*takes a dictionary of {'skillname': current_level} pairs as returned by parseselection */
- /*time required so max all availlable skills*/
- var Lboost = skills['Lerntechnik']||0
- var tspent = [time_to_max(s, skills[s],Lboost) for (s in skills)].reduce(function(a, b){return a + b;},0);
- /*if LT available but not maxed, assume it will be learned last*/
- return tspent;
- }
- /*
- alert(time_spent(parseselection(copypasta))/60/24 );
- or or some other kind of output
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement