#include "nw_i0_plot" void CreateAnObject(string sResource, object oPC, int iStackSize); void GetNextStackedItem(object oPC, string sItemTag, int iCount, int iMode, string sStackResRef); void GetNextItemPossessedBy(object oPC, string sItemTag); string GetComponent(int iWoodType); string GetComponentName(int iWoodType); string CraftLookup(string sResRef, int iWoodType); void main() { object oSelf = OBJECT_SELF; object oItem = GetInventoryDisturbItem(); object oPC = GetLastDisturbed(); string sTag = GetTag(oItem); string sSuccess = ""; string sFail = ""; string sItemResRef = ""; string sItemResRefPoor = ""; string sItemResRefExceptional = ""; int iRandom = 0; int iSuccess = 0; int iSkillGain = 0; int iComponent1 = 1; int iComponent2 = 0; int iComponent3 = 0; int iComponent1Stackable = 1; int iComponent2Stackable = 0; int iComponent3Stackable = 0; int iStackSize = 0; int iWoodType = GetLocalInt(oPC,"iUseThisWood"); // Credit to Lau3 for reporting this spacing error "iUseThis Wood". int iPenalty = iWoodType*10; int iDifficulty = 0; string sComponent1 = ""; string sComponent2 = ""; string sComponent3 = ""; string sComponent1Name = ""; string sComponent2Name = ""; string sComponent3Name = ""; string sComponentResRef = ""; object oTemp = OBJECT_INVALID; if (GetInventoryDisturbType()== INVENTORY_DISTURB_TYPE_ADDED) { // The following 3 lines are to ensure compatability with UOAbigal's Persistent Token System. // You can replace them with whatever 'no-drop' code you have or comment them out. string sNoDropFlag = (GetStringLeft(GetTag(oItem),6)); if (sNoDropFlag == "NoDrop" || sNoDropFlag == "TOKEN_"||sNoDropFlag=="_TBOX_") return; if (GetBaseItemType(oItem)==BASE_ITEM_LARGEBOX) { DestroyObject(oItem); SendMessageToPC(oPC,"To avoid possible dupe exploits, the container placed in this bag may be destroyed."); return; } // End of compatability portion. CopyItem(oItem,oPC,TRUE); DestroyObject(oItem); FloatingTextStringOnCreature("You can only craft by removing pattern tokens from this station.",oPC,FALSE); } if (GetStringLeft(GetResRef(oItem),10)=="flagswitch") { if (sTag == "SWITCH_WOOD1") SetLocalInt(oPC,"iUseThisWood",0); if (sTag == "SWITCH_WOOD2") SetLocalInt(oPC,"iUseThisWood",1); if (sTag == "SWITCH_WOOD3") SetLocalInt(oPC,"iUseThisWood",2); if (sTag == "SWITCH_WOOD4") SetLocalInt(oPC,"iUseThisWood",3); if (sTag == "SWITCH_WOOD5") SetLocalInt(oPC,"iUseThisWood",4); if (sTag == "SWITCH_WOOD6") SetLocalInt(oPC,"iUseThisWood",5); if (sTag == "SWITCH_WOOD7") SetLocalInt(oPC,"iUseThisWood",6); if (sTag == "SWITCH_WOOD8") SetLocalInt(oPC,"iUseThisWood",7); if (sTag == "SWITCH_WOOD9") SetLocalInt(oPC,"iUseThisWood",8); if (sTag == "SWITCH_WOOD10") SetLocalInt(oPC,"iUseThisWood",9); if (sTag == "SWITCH_WOOD11") SetLocalInt(oPC,"iUseThisWood",10); if (sTag == "SWITCH_WOOD12") SetLocalInt(oPC,"iUseThisWood",11); if (sTag == "SWITCH_WOOD13") SetLocalInt(oPC,"iUseThisWood",12); if (sTag == "SWITCH_WOOD14") SetLocalInt(oPC,"iUseThisWood",13); if (sTag == "SWITCH_WOOD15") SetLocalInt(oPC,"iUseThisWood",14); if (sTag == "SWITCH_WOOD16") SetLocalInt(oPC,"iUseThisWood",15); if (sTag == "SWITCH_WOOD17") SetLocalInt(oPC,"iUseThisWood",16); if (sTag == "SWITCH_WOOD18") SetLocalInt(oPC,"iUseThisWood",17); if (sTag == "SWITCH_WOOD19") SetLocalInt(oPC,"iUseThisWood",18); string sWoodMessage = "Switching wood types. now set to "+GetStringLowerCase(GetName(oItem))+"."; FloatingTextStringOnCreature(sWoodMessage,oPC,FALSE); DestroyObject(oItem); string sTagSelf = GetTag(oSelf); AssignCommand(oPC,DoPlaceableObjectAction(oSelf,PLACEABLE_ACTION_USE)); AssignCommand(oPC,DelayCommand(1.5,DoPlaceableObjectAction(GetNearestObjectByTag(sTagSelf,oPC,1),PLACEABLE_ACTION_USE))); return; } if (GetStringLeft(GetResRef(oItem),7)!="pattern") return; CopyObject(oItem,GetLocation(oPC),OBJECT_SELF,GetTag(oItem)); DestroyObject(oItem); if (GetItemPossessedBy(oPC,"Carpenters_Tools")==OBJECT_INVALID) { SendMessageToPC(oPC,"You must have carpenters tools in order to create anything here."); return; } if (GetLocalInt(OBJECT_SELF,"iAmInUse") != 0) { SendMessageToPC(oPC,"You must wait till the current club, quarterstaff, or torch is completed before starting another."); return; } int iCarpentrySkill = GetCampaignInt("UOACraft","iCarpentrySkill",oPC); int iCarpentryChance = iCarpentrySkill; if (GetItemPossessedBy(oPC,"NoDrop_SkillLogBook")==OBJECT_INVALID) { CreateItemOnObject("skilllogbook",oPC,1); } if (iCarpentryChance < 350) { iCarpentryChance = GetAbilityScore(oPC,ABILITY_STRENGTH)*5; iCarpentryChance = iCarpentryChance+(GetAbilityScore(oPC,ABILITY_DEXTERITY)*3); iCarpentryChance = iCarpentryChance+(GetAbilityScore(oPC,ABILITY_CONSTITUTION)*2); iCarpentryChance = iCarpentryChance*3; if (iCarpentryChance>350)iCarpentryChance=350; if (iCarpentrySkill > iCarpentryChance) iCarpentryChance=iCarpentrySkill; } iCarpentryChance = iCarpentryChance - iPenalty; if (sTag == "pattern103") //club { iPenalty=200; sSuccess = "You successfully form and shape the wood into a club."; sFail = "You are unable to shape and form the wood properly, and the club is ruined."; sItemResRefPoor = CraftLookup("wblcl002",iWoodType); sItemResRef = CraftLookup("nw_wblcl001",iWoodType); sItemResRefExceptional = CraftLookup("wblcl003",iWoodType); sComponent1 = GetComponent(iWoodType); iComponent1 = 2; } if (sTag == "pattern104") //quarterstaff { iPenalty = 300; sSuccess = "You successfully form and shape the wood into a quarterstaff."; sFail = "You are unable to shape and form the wood properly, and the quarterstaff is ruined."; sItemResRefPoor = CraftLookup("wdbqs002",iWoodType); sItemResRef = CraftLookup("nw_wdbqs001",iWoodType); sItemResRefExceptional = CraftLookup("wdbqs003",iWoodType); sComponent1 = GetComponent(iWoodType); iComponent1 = 3; } if (sTag == "pattern109") //torches { iDifficulty = -50; //bonus of 5.0 skill to make torches sSuccess = "You successfully form and shape the wood, combining the straw and tar into torches."; sFail = "You are unable to create the torches, instead causing a sticky mess."; sItemResRef = "nw_it_torch001"; sComponent1 = "WOOD_NORMAL"; //Normal Wood iComponent1 = 1; sComponent2 = "ITEM_STRAW"; //Bundle of Straw iComponent2 = 1; sComponent3 = "_UOA_BOTTLE_TAR"; //Bottle of Tar iComponent3 = 1; iComponent3Stackable=1; sComponent1Name="normal wood"; sComponent2Name="bundles of straw"; sComponent3Name="bottles of tar"; } if (sTag == "pattern117") //Wine Cask { iDifficulty = 400; sSuccess = "You successfully form and shape the wood into an empty wine cask."; sFail = "The wood warps, rendering the wine cask unuseable."; sItemResRef = "item_cask_001"; //empty wine cask sItemResRefPoor = sItemResRef; sItemResRefExceptional = sItemResRef; sComponent1 = "WOOD_NORMAL"; //Normal Wood iComponent1 = 8; sComponent1Name="normal wood"; } if (sTag == "pattern118") //Beer barrel { iDifficulty = 450; sSuccess = "You successfully form and shape the wood into an empty beer barrel."; sFail = "The wood warps, rendering the beer barrel unuseable."; sItemResRef = "item_cask_002"; //empty wine cask sItemResRefPoor = sItemResRef; sItemResRefExceptional = sItemResRef; sComponent1 = "WOOD_NORMAL"; //Normal Wood iComponent1 = 8; sComponent1Name="normal wood"; } if (sTag == "pattern119") //Mead barrel { iDifficulty = 400; sSuccess = "You successfully form and shape the wood into an empty mead barrel."; sFail = "The wood warps, rendering the mead barrel unuseable."; sItemResRef = "item_cask_003"; //empty wine cask sItemResRefPoor = sItemResRef; sItemResRefExceptional = sItemResRef; sComponent1 = "WOOD_MAPLE"; //Maple Wood iComponent1 = 8; sComponent1Name="maple wood"; } if (sTag == "pattern120") //Whiskey barrel { iDifficulty = 200; sSuccess = "You successfully form and shape the wood into an empty whiskey barrel."; sFail = "The wood warps, rendering the whiskey barrel unuseable."; sItemResRef = "item_cask_004"; //empty wine cask sItemResRefPoor = sItemResRef; sItemResRefExceptional = sItemResRef; sComponent1 = "WOOD_OAK"; //Maple Wood iComponent1 = 8; sComponent1Name="oak wood"; } if (sTag == "pattern121") //Rum barrel { iDifficulty = 300; sSuccess = "You successfully form and shape the wood into an empty rum barrel."; sFail = "The wood warps, rendering the rum barrel unuseable."; sItemResRef = "item_cask_005"; //empty wine cask sItemResRefPoor = sItemResRef; sItemResRefExceptional = sItemResRef; sComponent1 = "WOOD_OAK"; //Maple Wood iComponent1 = 8; sComponent2 = "_UOA_BOTTLE_TAR"; //Bottle of Tar iComponent2 = 1; iComponent2Stackable=1; sComponent1Name="oak wood"; sComponent2Name="bottles of tar"; } if (sTag=="pattern103")sComponent1Name = GetComponentName(iWoodType); if (sTag=="pattern104")sComponent1Name = GetComponentName(iWoodType); // check for components if (GetNumItems(oPC,sComponent1) < iComponent1) { FloatingTextStringOnCreature("You do not have enough "+sComponent1Name+" to do this.",oPC,FALSE); return; } if (iComponent2 > 0) { if (GetNumItems(oPC,sComponent2) < iComponent2) { FloatingTextStringOnCreature("You do not have enough "+sComponent2Name+" to do this.",oPC,FALSE); return; } } if (iComponent3 > 0) { if (GetNumItems(oPC,sComponent3) < iComponent3) { FloatingTextStringOnCreature("You do not have enough "+sComponent3Name+" to do this.",oPC,FALSE); return; } } // Remove all components if (iComponent1Stackable != 0) { oTemp = GetItemPossessedBy(oPC,sComponent1); sComponentResRef = GetResRef(oTemp); iStackSize = GetNumStackedItems(oTemp); DestroyObject(oTemp); if (iStackSize < iComponent1) { iComponent1 = iComponent1 - iStackSize; DelayCommand(2.0,GetNextStackedItem(oPC,sComponent1,iComponent1,1,sComponentResRef)); } else { if (iStackSize > iComponent1) { iStackSize = iStackSize - iComponent1; DelayCommand(1.0,CreateAnObject(sComponentResRef,oPC,iStackSize)); } } } else { for (iComponent1; iComponent1>0; iComponent1--) { GetNextItemPossessedBy(oPC,sComponent1); } } if (sComponent2 != "") { if (iComponent2Stackable != 0) { oTemp = GetItemPossessedBy(oPC,sComponent2); sComponentResRef = GetResRef(oTemp); iStackSize = GetNumStackedItems(oTemp); DestroyObject(oTemp); if (iStackSize < iComponent2) { iComponent2 = iComponent2 - iStackSize; DelayCommand(2.0,GetNextStackedItem(oPC,sComponent2,iComponent2,1, sComponentResRef)); } else { if (iStackSize > iComponent2) { iStackSize = iStackSize - iComponent2; DelayCommand(1.0,CreateAnObject(sComponentResRef,oPC,iStackSize)); } } } else { for (iComponent2; iComponent2>0; iComponent2--) { GetNextItemPossessedBy(oPC,sComponent2); } } } if (sComponent3 != "") { if (iComponent3Stackable != 0) { oTemp = GetItemPossessedBy(oPC,sComponent3); sComponentResRef = GetResRef(oTemp); iStackSize = GetNumStackedItems(oTemp); DestroyObject(oTemp); if (iStackSize < iComponent3) { iComponent3 = iComponent3 - iStackSize; DelayCommand(2.0,GetNextStackedItem(oPC,sComponent3,iComponent3,1, sComponentResRef)); } else { if (iStackSize > iComponent3) { iStackSize = iStackSize - iComponent3; DelayCommand(1.0,CreateAnObject(sComponentResRef,oPC,iStackSize)); } } } else { for (iComponent3; iComponent3>0; iComponent3--) { GetNextItemPossessedBy(oPC,sComponent3); } } } iCarpentryChance = iCarpentryChance - iDifficulty; if (iCarpentryChance <1) iCarpentryChance = 1; PlaySound("as_cv_sawing1"); DelayCommand(3.0,PlaySound("as_cv_sawing1")); DelayCommand(6.0,PlaySound("as_cv_sawing2")); DelayCommand(9.0,PlaySound("as_cv_hammering1")); AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_GET_MID,1.0,13.0)); SetLocalInt(OBJECT_SELF,"iAmInUse",99); DelayCommand(13.1,SetLocalInt(OBJECT_SELF,"iAmInUse",0)); iRandom = Random(1000); if (iRandom <= iCarpentryChance) { iSuccess = 1; int iSuccess2 = 1; if (sTag!="pattern109") // non-torches { iCarpentryChance = iCarpentryChance - 50; if (Random(1000) <= iCarpentryChance) iSuccess2 = iSuccess2+1; iCarpentryChance = iCarpentryChance-100; if (Random(1000) <= iCarpentryChance) iSuccess2 = iSuccess2+1; iCarpentryChance = iCarpentryChance + 150; if (iSuccess2 == 1)AssignCommand(oPC,DelayCommand(12.0,CreateAnObject(sItemResRefPoor,oPC,1))); if (iSuccess2 == 2)AssignCommand(oPC,DelayCommand(12.0,CreateAnObject(sItemResRef,oPC,1))); if (iSuccess2 == 3)AssignCommand(oPC,DelayCommand(12.0,CreateAnObject(sItemResRefExceptional,oPC,1))); } if (sTag=="pattern109") //torches { AssignCommand(oPC,DelayCommand(12.0,CreateAnObject(sItemResRef,oPC,1))); AssignCommand(oPC,DelayCommand(12.1,CreateAnObject(sItemResRef,oPC,1))); AssignCommand(oPC,DelayCommand(12.2,CreateAnObject(sItemResRef,oPC,1))); AssignCommand(oPC,DelayCommand(12.3,CreateAnObject(sItemResRef,oPC,1))); AssignCommand(oPC,DelayCommand(12.4,CreateAnObject(sItemResRef,oPC,1))); } AssignCommand(oPC,DelayCommand(12.0,FloatingTextStringOnCreature(sSuccess,oPC,FALSE))); if (Random(1000) >= iCarpentrySkill) { if (d10(1)+1 >= iCarpentryChance/100) iSkillGain = 1; } } else { AssignCommand(oPC,DelayCommand(12.0,FloatingTextStringOnCreature(sFail,oPC,FALSE))); return; } //Ensure no more than 1 skill gain every 10 seconds to avoid token droppage. if (iSkillGain ==1) { if (GetLocalInt(oPC,"iSkillGain")!= 0) { iSkillGain = 0; } else { SetLocalInt(oPC,"iSkillGain",99); DelayCommand(10.0,SetLocalInt(oPC,"iSkillGain",0)); } } if (iSkillGain ==1) { string sOldSkill = ""; string sOldSkill2 = ""; iCarpentrySkill++; sOldSkill2 = IntToString(iCarpentrySkill); sOldSkill = "."+GetStringRight(sOldSkill2,1); if (iCarpentrySkill > 9) { sOldSkill = GetStringLeft(sOldSkill2,GetStringLength(sOldSkill2)-1)+sOldSkill; } else { sOldSkill = "0"+sOldSkill; } if (iCarpentrySkill <= 1000) { DelayCommand(13.0,SetCampaignInt("UOACraft","iCarpentrySkill",iCarpentrySkill,oPC)); DelayCommand(13.0,SendMessageToPC(oPC,"===================================")); DelayCommand(13.0,SendMessageToPC(oPC,"Your skill in carpentry has gone up!")); DelayCommand(13.0,SendMessageToPC(oPC,"Current carpentry skill : "+ sOldSkill+"%")); DelayCommand(13.0,SendMessageToPC(oPC,"===================================")); if (GetLocalInt(GetModule(),"_UOACraft_XP")!=0) DelayCommand(12.9,GiveXPToCreature(oPC,GetLocalInt(GetModule(),"_UOACraft_XP"))); } } //ensure at least 1 respawn 10 minutes after used... //this is to prevent a broken placeable that is used, with a 'in use' delay //which would cancel the respawn if (GetLocalInt(OBJECT_SELF,"iAmSetToRespawn")!=99) { SetLocalInt(OBJECT_SELF,"iAmSetToRespawn",99); DelayCommand(600.0,ExecuteScript("_onclose_clear",OBJECT_SELF)); } } void CreateAnObject(string sResource, object oPC, int iStackSize) { CreateItemOnObject(sResource,oPC,iStackSize); return; } void GetNextStackedItem(object oPC, string sItemTag, int iCount, int iMode, string sStackResRef) { object oTemp = GetItemPossessedBy(oPC,sItemTag); int iStackCount = GetNumStackedItems(oTemp); int iTemp = iCount - iStackCount; iStackCount = iStackCount-iCount; DestroyObject(oTemp); if (iStackCount > 0) { SendMessageToPC(oPC,"You should get back "+IntToString(iStackCount)); DelayCommand(1.0,CreateAnObject(sStackResRef,oPC,iStackCount)); } // this next line *should* recursively call this function if the number of // stacked items does not meet the required number of items to be destroyed. if (iTemp > 0) DelayCommand(1.0,GetNextStackedItem(oPC,sItemTag,iTemp, iMode, sStackResRef)); return; } void GetNextItemPossessedBy(object oPC, string sItemTag) { object oTemp = GetItemPossessedBy(oPC,sItemTag); DestroyObject(oTemp); return; } string GetComponent(int iWoodType) { switch (iWoodType) { case 1:{return "WOOD_OLIVE"; break;} case 2:{return "WOOD_WILLOW"; break;} case 3:{return "WOOD_PINE"; break;} case 4:{return "WOOD_FIR"; break;} case 5:{return "WOOD_MANGROVE"; break;} case 6:{return "WOOD_CHERRY"; break;} case 7:{return "WOOD_MAPLE"; break;} case 8:{return "WOOD_ALMOND"; break;} case 9:{return "WOOD_HICKORY"; break;} case 10:{return "WOOD_BIRCH"; break;} case 11:{return "WOOD_ELDER"; break;} case 12:{return "WOOD_WALNUT"; break;} case 13:{return "WOOD_ELM"; break;} case 14:{return "WOOD_MAHOGANY"; break;} case 15:{return "WOOD_OAK"; break;} case 16:{return "WOOD_YEW"; break;} case 17:{return "WOOD_REDWOOD"; break;} case 18:{return "WOOD_IRONWOOD"; break;} default:{return "WOOD_NORMAL"; break;} } return "WOOD_NORMAL"; } string GetComponentName(int iWoodType) { switch (iWoodType) { case 1:{return "olive branches"; break;} case 2:{return "willow branches"; break;} case 3:{return "pine logs"; break;} case 4:{return "fir logs"; break;} case 5:{return "mangrove logs"; break;} case 6:{return "cherry logs"; break;} case 7:{return "maple logs"; break;} case 8:{return "almond logs"; break;} case 9:{return "hickory logs"; break;} case 10:{return "birch logs"; break;} case 11:{return "elder logs"; break;} case 12:{return "walnut logs"; break;} case 13:{return "elm logs"; break;} case 14:{return "mahogany logs"; break;} case 15:{return "oak logs"; break;} case 16:{return "yew branches"; break;} case 17:{return "redwood"; break;} case 18:{return "ironwood"; break;} default:{return "normal logs"; break;} } return "normal logs"; } string CraftLookup(string sResRef, int iWoodType) { if (GetStringLeft(sResRef,9)=="item_cask") return sResRef; switch (iWoodType) { case 0: { return sResRef; break; } case 1: { // Olive Club if (sResRef=="wblcl002") return "wblcl005"; if (sResRef=="nw_wblcl001") return "wblcl004"; if (sResRef=="wblcl003") return "wblcl006"; // Olive Quarterstaff if (sResRef=="wdbqs002") return "wdbqs005"; if (sResRef=="nw_wdbqs001") return "wdbqs004"; if (sResRef=="wdbqs003") return "wdbqs006"; break; } case 2: { // Willow Club if (sResRef=="wblcl002") return "wblcl008"; if (sResRef=="nw_wblcl001") return "wblcl007"; if (sResRef=="wblcl003") return "wblcl009"; // Willow Quarterstaff if (sResRef=="wdbqs002") return "wdbqs008"; if (sResRef=="nw_wdbqs001") return "wdbqs007"; if (sResRef=="wdbqs003") return "wdbqs009"; break; } case 3: { // Pine Club if (sResRef=="wblcl002") return "wblcl011"; if (sResRef=="nw_wblcl001") return "wblcl010"; if (sResRef=="wblcl003") return "wblcl012"; // Pine Quarterstaff if (sResRef=="wdbqs002") return "wdbqs011"; if (sResRef=="nw_wdbqs001") return "wdbqs010"; if (sResRef=="wdbqs003") return "wdbqs012"; break; } case 4: { // Fir Club if (sResRef=="wblcl002") return "wblcl014"; if (sResRef=="nw_wblcl001") return "wblcl013"; if (sResRef=="wblcl003") return "wblcl015"; // Fir Quarterstaff if (sResRef=="wdbqs002") return "wdbqs014"; if (sResRef=="nw_wdbqs001") return "wdbqs013"; if (sResRef=="wdbqs003") return "wdbqs015"; break; } case 5: { // Mangrove Club if (sResRef=="wblcl002") return "wblcl017"; if (sResRef=="nw_wblcl001") return "wblcl016"; if (sResRef=="wblcl003") return "wblcl018"; // Mangrove Quarterstaff if (sResRef=="wdbqs002") return "wdbqs017"; if (sResRef=="nw_wdbqs001") return "wdbqs016"; if (sResRef=="wdbqs003") return "wdbqs018"; break; } case 6: { // Cherry Club if (sResRef=="wblcl002") return "wblcl020"; if (sResRef=="nw_wblcl001") return "wblcl019"; if (sResRef=="wblcl003") return "wblcl021"; // Cherry Quarterstaff if (sResRef=="wdbqs002") return "wdbqs020"; if (sResRef=="nw_wdbqs001") return "wdbqs019"; if (sResRef=="wdbqs003") return "wdbqs021"; break; } case 7: { // Maple Club if (sResRef=="wblcl002") return "wblcl023"; if (sResRef=="nw_wblcl001") return "wblcl022"; if (sResRef=="wblcl003") return "wblcl024"; // Maple Quarterstaff if (sResRef=="wdbqs002") return "wdbqs023"; if (sResRef=="nw_wdbqs001") return "wdbqs022"; if (sResRef=="wdbqs003") return "wdbqs024"; break; } case 8: { // Almond Club if (sResRef=="wblcl002") return "wblcl026"; if (sResRef=="nw_wblcl001") return "wblcl025"; if (sResRef=="wblcl003") return "wblcl027"; // Almond Quarterstaff if (sResRef=="wdbqs002") return "wdbqs026"; if (sResRef=="nw_wdbqs001") return "wdbqs025"; if (sResRef=="wdbqs003") return "wdbqs027"; break; } case 9: { // Hickory Club if (sResRef=="wblcl002") return "wblcl029"; if (sResRef=="nw_wblcl001") return "wblcl028"; if (sResRef=="wblcl003") return "wblcl030"; // Hickory Quarterstaff if (sResRef=="wdbqs002") return "wdbqs029"; if (sResRef=="nw_wdbqs001") return "wdbqs028"; if (sResRef=="wdbqs003") return "wdbqs030"; break; } case 10: { // Birch Club if (sResRef=="wblcl002") return "wblcl032"; if (sResRef=="nw_wblcl001") return "wblcl031"; if (sResRef=="wblcl003") return "wblcl033"; // Birch Quarterstaff if (sResRef=="wdbqs002") return "wdbqs032"; if (sResRef=="nw_wdbqs001") return "wdbqs031"; if (sResRef=="wdbqs003") return "wdbqs033"; break; } case 11: { // Elder Club if (sResRef=="wblcl002") return "wblcl035"; if (sResRef=="nw_wblcl001") return "wblcl034"; if (sResRef=="wblcl003") return "wblcl036"; // Elder Quarterstaff if (sResRef=="wdbqs002") return "wdbqs035"; if (sResRef=="nw_wdbqs001") return "wdbqs034"; if (sResRef=="wdbqs003") return "wdbqs036"; break; } case 12: { // Walnut Club if (sResRef=="wblcl002") return "wblcl038"; if (sResRef=="nw_wblcl001") return "wblcl037"; if (sResRef=="wblcl003") return "wblcl039"; // Walnut Quarterstaff if (sResRef=="wdbqs002") return "wdbqs038"; if (sResRef=="nw_wdbqs001") return "wdbqs037"; if (sResRef=="wdbqs003") return "wdbqs039"; break; } case 13: { // Elm Club if (sResRef=="wblcl002") return "wblcl041"; if (sResRef=="nw_wblcl001") return "wblcl040"; if (sResRef=="wblcl003") return "wblcl042"; // Elm Quarterstaff if (sResRef=="wdbqs002") return "wdbqs041"; if (sResRef=="nw_wdbqs001") return "wdbqs040"; if (sResRef=="wdbqs003") return "wdbqs042"; break; } case 14: { // Mahogany Club if (sResRef=="wblcl002") return "wblcl044"; if (sResRef=="nw_wblcl001") return "wblcl043"; if (sResRef=="wblcl003") return "wblcl045"; // Mahogany Quarterstaff if (sResRef=="wdbqs002") return "wdbqs044"; if (sResRef=="nw_wdbqs001") return "wdbqs043"; if (sResRef=="wdbqs003") return "wdbqs045"; break; } case 15: { // Oak Club if (sResRef=="wblcl002") return "wblcl047"; if (sResRef=="nw_wblcl001") return "wblcl046"; if (sResRef=="wblcl003") return "wblcl048"; // Oak Quarterstaff if (sResRef=="wdbqs002") return "wdbqs047"; if (sResRef=="nw_wdbqs001") return "wdbqs046"; if (sResRef=="wdbqs003") return "wdbqs048"; break; } case 16: { // Yew Club if (sResRef=="wblcl002") return "wblcl050"; if (sResRef=="nw_wblcl001") return "wblcl049"; if (sResRef=="wblcl003") return "wblcl051"; // Yew Quarterstaff if (sResRef=="wdbqs002") return "wdbqs050"; if (sResRef=="nw_wdbqs001") return "wdbqs049"; if (sResRef=="wdbqs003") return "wdbqs051"; break; } case 17: { // Redwood Club if (sResRef=="wblcl002") return "wblcl053"; if (sResRef=="nw_wblcl001") return "wblcl052"; if (sResRef=="wblcl003") return "wblcl054"; // Redwood Quarterstaff if (sResRef=="wdbqs002") return "wdbqs053"; if (sResRef=="nw_wdbqs001") return "wdbqs052"; if (sResRef=="wdbqs003") return "wdbqs054"; break; } case 18: { // Ironwood Club if (sResRef=="wblcl002") return "wblcl056"; if (sResRef=="nw_wblcl001") return "wblcl055"; if (sResRef=="wblcl003") return "wblcl057"; // Ironwood Quarterstaff if (sResRef=="wdbqs002") return "wdbqs056"; if (sResRef=="nw_wdbqs001") return "wdbqs055"; if (sResRef=="wdbqs003") return "wdbqs057"; break; } default: { return sResRef; break; } } return sResRef; }