formula
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| formula [2023/05/04 23:51] – admin | formula [2023/05/19 13:04] (current) – removed admin | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | < | ||
| - | <script type=" | ||
| - | //<!-- hide from older browsers | ||
| - | // | ||
| - | function CBoom() { //Generate OOC` Date // version 0.1_2010 | ||
| - | with (document.CapBoom) { | ||
| - | Hours = input_Hours.value; | ||
| - | Wis = input_Wis.value; | ||
| - | Level = input_Level.value; | ||
| - | | ||
| - | // Set the start time for cap boom | ||
| - | if (Old.checked) | ||
| - | { | ||
| - | BooomStart = 175; | ||
| - | if (select_Race.value == " | ||
| - | if (select_Race.value == " | ||
| - | if (select_Race.value == " | ||
| - | if (select_Race.value == " | ||
| - | if (select_Race.value == " | ||
| - | if (select_Race.value == " | ||
| - | if (select_Race.value == " | ||
| - | if (select_Race.value == " | ||
| - | if (select_Race.value == " | ||
| - | if (select_Race.value == " | ||
| - | if (select_Race.value == " | ||
| - | if (select_Race.value == " | ||
| - | if (select_Race.value == " | ||
| - | if (select_Race.value == " | ||
| - | if (select_Race.value == " | ||
| - | if (select_Race.value == " | ||
| - | } | ||
| - | else BoomStart = 75; | ||
| - | | ||
| - | // Set Racial Multiplier | ||
| - | RaceMult = 11; | ||
| - | if (select_Race.value == " | ||
| - | if (select_Race.value == " | ||
| - | | ||
| - | // Calculate BoomTime Multiplier and find the next BoomTime | ||
| - | // Basically, subtract boomtime from hours, then divy it up and see when the next 250 lands. | ||
| - | if (Hours*1 < BoomStart*1) | ||
| - | { | ||
| - | HoursMult = 0; | ||
| - | output_Hours.value = BoomStart; | ||
| - | } | ||
| - | else | ||
| - | { | ||
| - | BoomTime = Hours*1 - BoomStart*1; | ||
| - | HoursMult = Math.floor(BoomTime*1 / 250) + 1; | ||
| - | output_Hours.value = BoomStart*1 + HoursMult * 250; | ||
| - | } | ||
| - | | ||
| - | // Figure out the value of the Cap Multiplier | ||
| - | if (Old.checked) | ||
| - | { | ||
| - | OldMult = 2; | ||
| - | if (select_Race.value == " | ||
| - | if (select_Race.value == " | ||
| - | } | ||
| - | else OldMult = 0; | ||
| - | if (Eidetic.checked) EidMult = 10; | ||
| - | else EidMult = 0; | ||
| - | if (Master.checked) MasterMult = 2; | ||
| - | else MasterMult = 0; | ||
| - | if (SpecAll.checked) AllMult = 10; | ||
| - | else AllMult = 0; | ||
| - | CapMult = (Level*1 + RaceMult*1 + HoursMult*1 + OldMult*1 + EidMult*1 + MasterMult*1 + AllMult*1); | ||
| - | output_CapMult.value = CapMult; | ||
| - | output_Cap.value = (Wis * 5 + 30) * CapMult*1; | ||
| - | |||
| - | // Output | ||
| - | output_Boom.value = Wis * 5 + 30; | ||
| - | | ||
| - | // But clear the outputs if relevant inputs aren't done. | ||
| - | if (input_Wis.value == "" | ||
| - | { | ||
| - | output_Boom.value = ""; | ||
| - | output_Cap.value = ""; | ||
| - | output_Hours.value = ""; | ||
| - | } | ||
| - | if (input_Level.value == "" | ||
| - | { | ||
| - | output_Cap.value = ""; | ||
| - | } | ||
| - | if (input_Hours.value == "" | ||
| - | { | ||
| - | output_Cap.value = ""; | ||
| - | output_Hours.value = ""; | ||
| - | } | ||
| - | } | ||
| - | } | ||
| - | |||
| - | function ClearCap() { //Generate OOC` Date // version 0.1_2010 | ||
| - | with (document.CapBoom) { | ||
| - | input_Wis.value = ""; | ||
| - | select_Race.value = " | ||
| - | input_Level.value = ""; | ||
| - | input_Hours.value = ""; | ||
| - | output_Boom.value = ""; | ||
| - | output_Hours.value = ""; | ||
| - | Old.checked = false; | ||
| - | Eidetic.checked = false; | ||
| - | Master.checked = false; | ||
| - | output_Boom.value = ""; | ||
| - | output_Cap.value = ""; | ||
| - | output_CapMult.value = ""; | ||
| - | } | ||
| - | } | ||
| - | |||
| - | function HousePrice() { | ||
| - | with (document.HouseCost) { | ||
| - | NumRooms = input_NumRooms.value; | ||
| - | | ||
| - | // Tackle the platinum first, to keep it simple | ||
| - | if (NumRooms < 6) | ||
| - | { | ||
| - | Price = 1000; | ||
| - | PriceTotal = NumRooms * 1000; | ||
| - | } | ||
| - | else | ||
| - | { | ||
| - | Price = 1000 * (NumRooms*1 - 4); | ||
| - | NumTemp = NumRooms*1 - 4; | ||
| - | PriceTotal = 4000; | ||
| - | for (i=0; | ||
| - | { | ||
| - | PriceTotal = PriceTotal*1 + NumTemp * 1000; | ||
| - | } | ||
| - | } | ||
| - | |||
| - | // RP Points required | ||
| - | if (NumRooms < 4) RP = 0; | ||
| - | else | ||
| - | { | ||
| - | if (NumRooms < 5) RP = 3; | ||
| - | else | ||
| - | { | ||
| - | if (NumRooms < 6) RP = 6; | ||
| - | else RP = (NumRooms*1 - 5) * 10; | ||
| - | } | ||
| - | } | ||
| - | |||
| - | output_RP.value = RP; | ||
| - | output_Price.value = Price; | ||
| - | output_PriceTotal.value = PriceTotal; | ||
| - | } | ||
| - | } | ||
| - | function AgeCalc() { | ||
| - | with (document.AgeForm) { | ||
| - | if (mchild.checked) output_age.value = 7 + input_hours.value/ | ||
| - | else output_age.value = 17 + input_hours.value/ | ||
| - | } | ||
| - | } | ||
| - | |||
| - | function MaxHpMana() { // | ||
| - | with (document.MaxHpMana_form) { | ||
| - | // Input values from form | ||
| - | var Level = input_Level.value; | ||
| - | var HeroLevel = input_HeroLevel.value; | ||
| - | var Con = input_Con.value; | ||
| - | var Int = input_Int.value; | ||
| - | var CurrentHp = input_CurrentHp.value; | ||
| - | var CurrentMana = input_CurrentMana.value; | ||
| - | var HpTrains = 0; | ||
| - | var ManaTrains = 0; | ||
| - | |||
| - | // Establish base numbers that will be increased from race and advantages | ||
| - | var HpBonus = 16; | ||
| - | var ManaBonus = 24; | ||
| - | if (tough.checked) HpBonus += 1 * 1; | ||
| - | if (magic_apt.checked) ManaBonus += 1 * 1; | ||
| - | | ||
| - | // HpBonus += parseInt((tough.checked)? | ||
| - | // ManaBonus += parseInt((magic_apt.checked)? | ||
| - | | ||
| - | switch (select_Race.value) | ||
| - | { | ||
| - | case " | ||
| - | HpBonus += 1; | ||
| - | break; | ||
| - | case " | ||
| - | HpBonus += 2; | ||
| - | break; | ||
| - | case " | ||
| - | HpBonus += 3.5; | ||
| - | ManaBonus += 1; | ||
| - | break; | ||
| - | case " | ||
| - | HpBonus += 1; | ||
| - | ManaBonus += 1; | ||
| - | break; | ||
| - | case " | ||
| - | ManaBonus += 7; | ||
| - | break; | ||
| - | case " | ||
| - | HpBonus += 2; | ||
| - | break; | ||
| - | case " | ||
| - | HpBonus += 3; | ||
| - | break; | ||
| - | } | ||
| - | | ||
| - | // Calculate Max Hp. If Int/Con are odd, give Level/2 bonus | ||
| - | var HpMult = (Math.floor(Con/ | ||
| - | if (Con%2) | ||
| - | { | ||
| - | var MaxHp = Level*1 * HpMult *1 + Math.floor(Level/ | ||
| - | } | ||
| - | else var MaxHp = Level*1 * HpMult *1 + HeroLevel*200 + Con*HeroLevel; | ||
| - | var ManaMult = (Math.floor(Int/ | ||
| - | if (Int%2) | ||
| - | { | ||
| - | var MaxMana = 200*1 + Level*1 * ManaMult + Math.floor(Level/ | ||
| - | } | ||
| - | else var MaxMana = 200*1 + Level*1 * ManaMult + HeroLevel*200 + Int*HeroLevel; | ||
| - | |||
| - | // Calculate Trains Needed | ||
| - | if (CurrentHp != 0) var HpTrains = (MaxHp - CurrentHp) / 5; | ||
| - | if (CurrentMana != 0) var ManaTrains = (MaxMana - CurrentMana) / 10; | ||
| - | | ||
| - | // Output appropriate values | ||
| - | if (input_Con.value == 0) | ||
| - | { | ||
| - | output_MaxHp.value = ""; | ||
| - | output_HpTrains.value = ""; | ||
| - | output_HpMult.value = ""; | ||
| - | } | ||
| - | else | ||
| - | { | ||
| - | output_MaxHp.value = MaxHp; | ||
| - | output_HpTrains.value = Math.floor(HpTrains); | ||
| - | output_HpMult.value = HpMult; | ||
| - | } | ||
| - | | ||
| - | if (input_Int.value == 0) | ||
| - | { | ||
| - | output_MaxMana.value = ""; | ||
| - | output_ManaTrains.value = ""; | ||
| - | output_ManaMult.value = ""; | ||
| - | } | ||
| - | else | ||
| - | { | ||
| - | output_MaxMana.value = MaxMana; | ||
| - | output_ManaTrains.value = Math.floor(ManaTrains); | ||
| - | output_ManaMult.value = ManaMult; | ||
| - | } | ||
| - | } | ||
| - | } | ||
| - | // Max Hits = Level * [(Base Con/2) + 15 + (1 for toughness) + (3 for troll) + (2 for dragons) + (1 for ents) + (1 for rebirth)] | ||
| - | // Max Mana = 200 + Level * [(Base Int/2) + 23 + (1 for magic apt) + (7.125 for liches) + (1 for rebirth)] | ||
| - | // Note: The "/ | ||
| - | // Note: 1 Train = Hp+5 or Mana+10 | ||
| - | |||
| - | |||
| - | function CalcTime( form ) { // Time Conversions | ||
| - | var TimeUnit = form.select_HoursMenu.value; | ||
| - | switch (form.select_ICRLMenu.value) | ||
| - | { | ||
| - | case " | ||
| - | var RLvalue = form.input_TimeValue.value; | ||
| - | switch (form.select_HoursMenu.value) | ||
| - | { | ||
| - | case " | ||
| - | RLmins = RLvalue; | ||
| - | break; | ||
| - | case " | ||
| - | RLmins = RLvalue * 60; | ||
| - | break; | ||
| - | case " | ||
| - | RLmins = RLvalue * 60 * 24; | ||
| - | break; | ||
| - | case " | ||
| - | RLmins = RLvalue * 60 * 24 * 7; | ||
| - | break; | ||
| - | case " | ||
| - | RLmins = " | ||
| - | var TimeValue = " | ||
| - | break; | ||
| - | case " | ||
| - | RLmins = RLvalue * 60 * 24 * 365; | ||
| - | break; | ||
| - | } | ||
| - | if (RLmins != " | ||
| - | { | ||
| - | var TimeCont = 0; // Continuation bit. 0 indicates this is the first date that fits. | ||
| - | var ICyears = Math.floor(RLmins/ | ||
| - | var RLmins = RLmins - (ICyears * 8760); | ||
| - | var ICmonths = Math.floor(RLmins/ | ||
| - | var RLmins = RLmins - (ICmonths * 840); | ||
| - | var ICweeks = Math.floor(RLmins/ | ||
| - | var RLmins = RLmins - (ICweeks * 168); | ||
| - | var ICdays = Math.floor(RLmins/ | ||
| - | var RLmins = RLmins - (ICdays*24); | ||
| - | var IChours = RLmins/2; | ||
| - | if (ICyears != 0) | ||
| - | { | ||
| - | var TimeCont = 1; | ||
| - | var TimeValue = RLvalue + " RL "; | ||
| - | var TimeValue = TimeValue + TimeUnit; | ||
| - | var TimeValue = TimeValue + " in IC time is " + ICyears + " years"; | ||
| - | } | ||
| - | if (ICmonths != 0) | ||
| - | { | ||
| - | var TimeCont = 1; | ||
| - | var TimeValue = RLvalue + " RL "; | ||
| - | var TimeValue = TimeValue + TimeUnit; | ||
| - | var TimeValue = TimeValue + " in IC time is " + ICmonths + " months"; | ||
| - | } | ||
| - | if (ICweeks != 0) | ||
| - | { | ||
| - | if (TimeCont != 1) | ||
| - | { | ||
| - | var TimeCont = 1; | ||
| - | var TimeValue = RLvalue + " RL "; | ||
| - | var TimeValue = TimeValue + TimeUnit; | ||
| - | var TimeValue = TimeValue + " in IC time is " + ICweeks + " weeks"; | ||
| - | } | ||
| - | else | ||
| - | { | ||
| - | var TimeValue = TimeValue + ", " + ICweeks + " weeks"; | ||
| - | } | ||
| - | } | ||
| - | if (ICdays != 0) | ||
| - | { | ||
| - | if (TimeCont != 1) | ||
| - | { | ||
| - | var TimeValue = RLvalue + " RL "; | ||
| - | var TimeValue = TimeValue + TimeUnit; | ||
| - | var TimeValue = TimeValue + " in IC time is " + ICdays + " days"; | ||
| - | var TimeCont = 1; | ||
| - | } | ||
| - | else | ||
| - | { | ||
| - | var TimeValue = TimeValue + ", " + ICdays + " days"; | ||
| - | } | ||
| - | } | ||
| - | if (IChours != 0) | ||
| - | { | ||
| - | if (TimeCont != 1) | ||
| - | { | ||
| - | var TimeValue = RLvalue + " RL "; | ||
| - | var TimeValue = TimeValue + TimeUnit; | ||
| - | var TimeValue = TimeValue + " in IC time is " + IChours + " hours"; | ||
| - | } | ||
| - | else | ||
| - | { | ||
| - | var TimeValue = TimeValue + ", " + IChours + " hours"; | ||
| - | } | ||
| - | } | ||
| - | var TimeValue = TimeValue + " | ||
| - | } | ||
| - | break; | ||
| - | | ||
| - | case " | ||
| - | var ICvalue = form.input_TimeValue.value; | ||
| - | switch (form.select_HoursMenu.value) | ||
| - | { | ||
| - | case " | ||
| - | IChours = ICvalue / 60; | ||
| - | break; | ||
| - | case " | ||
| - | IChours = ICvalue; | ||
| - | break; | ||
| - | case " | ||
| - | IChours = ICvalue * 24; | ||
| - | break; | ||
| - | case " | ||
| - | IChours = ICvalue * 24 * 7; | ||
| - | break; | ||
| - | case " | ||
| - | IChours = ICvalue * 24 * 7 * 5; | ||
| - | break; | ||
| - | case " | ||
| - | IChours = ICvalue * 24 * 7 * 5 * 17; | ||
| - | break; | ||
| - | } | ||
| - | if (IChours != " | ||
| - | { | ||
| - | var TimeCont = 0; | ||
| - | var RLyears = Math.floor(IChours/ | ||
| - | var IChours = IChours * 1 - (RLyears * 262080); | ||
| - | var RLweeks = Math.floor(IChours/ | ||
| - | var IChours = IChours * 1 - (RLweeks * 5040); | ||
| - | var RLdays = Math.floor(IChours/ | ||
| - | var IChours = IChours * 1 - (RLdays * 720); | ||
| - | var RLhours = Math.floor(IChours/ | ||
| - | var IChours = IChours * 1 - (RLhours * 30); | ||
| - | var RLmins = IChours * 2; | ||
| - | // #math RLweeks @IChours/ | ||
| - | if (RLyears != 0) | ||
| - | { | ||
| - | | ||
| - | var TimeValue = ICvalue + " IC "; | ||
| - | var TimeValue = TimeValue + TimeUnit; | ||
| - | var TimeValue = TimeValue + " in RL time is " + RLyears + " years"; | ||
| - | } | ||
| - | if (RLweeks != 0) | ||
| - | { | ||
| - | | ||
| - | var TimeValue = ICvalue + " IC "; | ||
| - | var TimeValue = TimeValue + TimeUnit; | ||
| - | var TimeValue = TimeValue + " in RL time is " + RLweeks + " weeks"; | ||
| - | } | ||
| - | if (RLdays != 0) | ||
| - | { | ||
| - | if (TimeCont != 1) | ||
| - | { | ||
| - | var TimeCont = 1; | ||
| - | var TimeValue = ICvalue + " IC "; | ||
| - | var TimeValue = TimeValue + TimeUnit; | ||
| - | var TimeValue = TimeValue + " in RL time is " + RLdays + " days"; | ||
| - | } | ||
| - | else | ||
| - | { | ||
| - | var TimeValue = TimeValue + ", " + RLdays + " days"; | ||
| - | } | ||
| - | } | ||
| - | if (RLhours != 0) | ||
| - | { | ||
| - | if (TimeCont != 1) | ||
| - | { | ||
| - | var TimeCont = 1; | ||
| - | var TimeValue = ICvalue + " IC "; | ||
| - | var TimeValue = TimeValue + TimeUnit; | ||
| - | var TimeValue = TimeValue + " in RL time is " + RLhours + " hours"; | ||
| - | } | ||
| - | else | ||
| - | { | ||
| - | var TimeValue = TimeValue + ", " + RLhours + " hours"; | ||
| - | } | ||
| - | } | ||
| - | if (RLmins != 0) | ||
| - | { | ||
| - | if (TimeCont != 1) | ||
| - | { | ||
| - | var TimeCont = 1; | ||
| - | var TimeValue = ICvalue + " IC "; | ||
| - | var TimeValue = TimeValue + TimeUnit; | ||
| - | var TimeValue = TimeValue + " in RL time is " + RLmins + " minutes"; | ||
| - | } | ||
| - | else | ||
| - | { | ||
| - | var TimeValue = TimeValue + ", " + RLmins + " minutes"; | ||
| - | } | ||
| - | } | ||
| - | var TimeValue = TimeValue + " | ||
| - | } | ||
| - | break; | ||
| - | } | ||
| - | return TimeValue; | ||
| - | } | ||
| - | |||
| - | function AdvTrains( form ) { // | ||
| - | var AdvExp = form.input_AdvExp.value; | ||
| - | var AdvDiff = form.input_AdvDiff.value; | ||
| - | if (AdvDiff < -1000) { | ||
| - | var AdvDiff = -1000; | ||
| - | } | ||
| - | var AdvTrains = 1 + ((AdvExp * 1 - AdvDiff * 1 - 1000) / 4500); | ||
| - | if (AdvTrains > 3) { | ||
| - | var AdvTrains = 3; | ||
| - | } | ||
| - | return AdvTrains; | ||
| - | } | ||
| - | |||
| - | function TeachMax( form ) { // version 2_20090428 | ||
| - | var TeachSkill = 0; | ||
| - | var TeachLevel = 0; | ||
| - | var TeachMax = 0; | ||
| - | var TeachSkill = form.input_TeachSkill.value; | ||
| - | var TeachLevel = form.input_TeachLevel.value; | ||
| - | var TeachMax = TeachLevel * TeachSkill / 100; | ||
| - | var TeachMax = Math.floor(TeachMax); | ||
| - | return TeachMax; | ||
| - | } | ||
| - | |||
| - | function TeachLevel( form ) { // version 2_20090428 | ||
| - | var TeachSkill = 0; | ||
| - | var TeachLevel = 0; | ||
| - | var TeachMax = 0; | ||
| - | var TeachSkill = form.input_TeachSkill.value; | ||
| - | var TeachMax = form.input_TeachMax.value; | ||
| - | var TeachSkill = TeachMax / TeachSkill * 100; | ||
| - | var TeachSkill = Math.floor(TeachSkill); | ||
| - | return TeachSkill; | ||
| - | } | ||
| - | |||
| - | function UnitCombiner( form ) { // Combining two materials | ||
| - | var Mat1u = form.input_Mat1u.value; | ||
| - | var Mat2u = form.input_Mat2u.value; | ||
| - | MatRu = Mat1u * 1 + Mat2u * 1; | ||
| - | return MatRu; | ||
| - | } | ||
| - | | ||
| - | function QualCombiner( form ) { | ||
| - | var Mat1p = form.input_Mat1p.value; | ||
| - | var Mat2p = form.input_Mat2p.value; | ||
| - | var Mat1u = form.input_Mat1u.value; | ||
| - | var Mat2u = form.input_Mat2u.value; | ||
| - | MatRp = ((Mat1u * Mat1p) + (Mat2u * Mat2p) * 1)/(Mat1u * 1 + Mat2u * 1) | ||
| - | var MatRp = Math.floor(MatRp); | ||
| - | return MatRp; | ||
| - | } | ||
| - | | ||
| - | | ||
| - | // end hiding --> | ||
| - | </ | ||
| - | < | ||
| - | <script type=" | ||
| - | __wm.bt(700, | ||
| - | __wm.rw(1); | ||
| - | // | ||
| - | <!-- END WAYBACK TOOLBAR INSERT --> | ||
| - | | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | < | ||
| - | </ | ||
| - | < | ||
| - | </ | ||
| - | <tr align=" | ||
| - | <select name=" | ||
| - | <tr align=" | ||
| - | <tr align=" | ||
| - | <tr align=" | ||
| - | </ | ||
| - | < | ||
| - | values differ from these, please let me know your real values, along | ||
| - | with anything that you may have checked off on these boxes. | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | < | ||
| - | Teach Skill | ||
| - | <input size=" | ||
| - | Teacher' | ||
| - | Max Teachable Level | ||
| - | <input size=" | ||
| - | </ | ||
| - | |||
| - | |||
| - | < | ||
| - | < | ||
| - | <select name=" | ||
| - | <input size=" | ||
| - | <select name=" | ||
| - | <input size=" | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | < | ||
| - | <select name=" | ||
| - | Eidetic <input name=" | ||
| - | Old <input name=" | ||
| - | Master <input name=" | ||
| - | Spec All <input name=" | ||
| - | < | ||
| - | |||
| - | < | ||
| - | < | ||
| - | |||
| - | </ | ||
| - | |||
| - | |||
| - | < | ||
| - | < | ||
| - | Exp/ | ||
| - | <input size=" | ||
| - | Advantages - Disadvantages | ||
| - | <input size=" | ||
| - | Trains/ | ||
| - | <input size=" | ||
| - | |||
| - | |||
| - | < | ||
| - | < | ||
| - | <table border=" | ||
| - | < | ||
| - | <tr align=" | ||
| - | < | ||
| - | < | ||
| - | <tr align=" | ||
| - | < | ||
| - | < | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | < | ||
| - | Number of Rooms <input size=" | ||
| - | Plat for this room <input size=" | ||
| - | Total Plat <input size=" | ||
| - | RP Needed <input size=" | ||
| - | </ | ||
| - | |||
| - | </ | ||
formula.1683258677.txt.gz · Last modified: 2023/05/04 23:51 by admin
