diff --git a/AltSystem.toc b/AltSystem.toc index e541ac4..0b03820 100644 --- a/AltSystem.toc +++ b/AltSystem.toc @@ -2,7 +2,7 @@ ## Title: AltSystem ## Notes: Enhances RP gameplay with a custom rolling system ## Author: Rukira -## Version: 1.1 +## Version: 1.0 ## Dependencies: totalRP3, totalRP3_Extended ## SavedVariables: AltSystemDB diff --git a/Core.lua b/Core.lua index a3d1ab9..68c41ac 100644 --- a/Core.lua +++ b/Core.lua @@ -4,7 +4,6 @@ AltSystem = AltSystem or {} AltSystem.State = { selectedSkillIndex = 1, - selectedSkillName = nil, -- skill name used to restore selection across sessions selectedItemIndex = 1, -- 1 = No item selectedDefenseIndex = 1, -- 1 = Base armor shieldEnabled = false, @@ -44,18 +43,6 @@ function AltSystem:Init() if AltSystemDB.petSummonEnabled ~= nil then AltSystem.State.petSummonEnabled = AltSystemDB.petSummonEnabled end - if AltSystemDB.shieldEnabled ~= nil then - AltSystem.State.shieldEnabled = AltSystemDB.shieldEnabled - end - if AltSystemDB.selectedItemIndex then - AltSystem.State.selectedItemIndex = AltSystemDB.selectedItemIndex - end - if AltSystemDB.selectedDefenseIndex then - AltSystem.State.selectedDefenseIndex = AltSystemDB.selectedDefenseIndex - end - if AltSystemDB.selectedSkillName then - AltSystem.State.selectedSkillName = AltSystemDB.selectedSkillName - end -- Register slash command /altsystem SLASH_ALTSYSTEM1 = "/altsystem" @@ -71,15 +58,8 @@ function AltSystem:Init() AltSystemDB.announceEnabled = AltSystem.State.announceEnabled AltSystemDB.announceChannelIndex = AltSystem.State.announceChannelIndex AltSystemDB.petSummonEnabled = AltSystem.State.petSummonEnabled - AltSystemDB.shieldEnabled = AltSystem.State.shieldEnabled - AltSystemDB.selectedItemIndex = AltSystem.State.selectedItemIndex - AltSystemDB.selectedDefenseIndex = AltSystem.State.selectedDefenseIndex - AltSystemDB.selectedSkillName = AltSystem.State.selectedSkillName end) - -- Build the main frame now that saved variables are loaded - AltSystem:CreateMainFrame() - print("|cff00ccffAltSystem|r loaded. Type /altsystem to open.") end diff --git a/Data.lua b/Data.lua index e46d887..19d5ca9 100644 --- a/Data.lua +++ b/Data.lua @@ -14,18 +14,15 @@ AltSystem.Data.SkillLevels = { } -- The "Base roll" entry is always the first (default) skill -local BASE_ROLL_ENTRY = { name = "Base roll", level = "Base", modifier = 0 } --- The "Unskilled" entry is always the last skill -local UNSKILLED_ENTRY = { name = "Unskilled", level = "Unskilled", modifier = -4 } +local BASE_ROLL_ENTRY = { name = "Base roll", level = "Base", modifier = 0 } -- Default/fallback skill list used when no TRP3 profile skills are found local DEFAULT_SKILLS = { { name = "Base roll", level = "Base", modifier = 0 }, - { name = "Novice Skill", level = "Novice", modifier = -2 }, - { name = "Adept Skill", level = "Adept", modifier = 0 }, + { name = "Novice Skill", level = "Novice", modifier = -2 }, + { name = "Adept Skill", level = "Adept", modifier = 0 }, { name = "Expert Skill", level = "Expert", modifier = 2 }, { name = "Master Skill", level = "Master", modifier = 4 }, - { name = "Unskilled", level = "Unskilled", modifier = -4 }, } -- Valid skill level keywords that must appear in the trait's right field (RT) @@ -127,9 +124,6 @@ function AltSystem.Data:RefreshSkills() end end - -- Always add Unskilled as the last entry - table.insert(skills, { name = UNSKILLED_ENTRY.name, level = UNSKILLED_ENTRY.level, modifier = UNSKILLED_ENTRY.modifier }) - AltSystem.Data.Skills = skills return skills end diff --git a/Roll.lua b/Roll.lua index a37ca8b..1e98b0c 100644 --- a/Roll.lua +++ b/Roll.lua @@ -78,9 +78,8 @@ rollListener:RegisterEvent("CHAT_MSG_SYSTEM") rollListener:SetScript("OnEvent", function(self, event, message) -- Phase 2: waiting for pet/summon roll result (1-5) if pendingPetRoll then - local petRoller, petRoll = message:match("(.+) rolls (%d+) %(1%-5%)") + local petRoll = message:match("rolls (%d+) %(1%-5%)") if not petRoll then return end - if petRoller ~= UnitName("player") then return end local petValue = tonumber(petRoll) local info = pendingPetRoll @@ -94,9 +93,8 @@ rollListener:SetScript("OnEvent", function(self, event, message) if not pendingRollType then return end -- Match the roll result pattern: "PlayerName rolls X (1-20)" - local roller, roll = message:match("(.+) rolls (%d+) %(1%-20%)") + local roll = message:match("rolls (%d+) %(1%-20%)") if not roll then return end - if roller ~= UnitName("player") then return end local rollValue = tonumber(roll) local rollType = pendingRollType diff --git a/UI.lua b/UI.lua index 5162da2..c425d9d 100644 --- a/UI.lua +++ b/UI.lua @@ -90,7 +90,6 @@ function AltSystem:CreateMainFrame() AltSystem.State.selectedSkillIndex, function(index) AltSystem.State.selectedSkillIndex = index - AltSystem.State.selectedSkillName = AltSystem.Data.Skills[index] and AltSystem.Data.Skills[index].name or nil UpdateSkillWarning(index) end) @@ -315,24 +314,13 @@ end function AltSystem:RefreshSkillDropdown() AltSystem.Data:RefreshSkills() - -- Try to restore the previously selected skill by name; fall back to 1 (Base roll) - local newIndex = 1 - local savedName = AltSystem.State.selectedSkillName - if savedName then - for i, skill in ipairs(AltSystem.Data.Skills) do - if skill.name == savedName then - newIndex = i - break - end - end - end - AltSystem.State.selectedSkillIndex = newIndex - AltSystem.State.selectedSkillName = AltSystem.Data.Skills[newIndex] and AltSystem.Data.Skills[newIndex].name or nil + -- Reset selection to 1 (Base roll) since the skill list may have changed + AltSystem.State.selectedSkillIndex = 1 if AltSystem.SetSkillIndex then - AltSystem.SetSkillIndex(newIndex) + AltSystem.SetSkillIndex(1) end if AltSystem.UpdateSkillWarning then - AltSystem.UpdateSkillWarning(newIndex) + AltSystem.UpdateSkillWarning(1) end -- Rebuild the dropdown menu with the new skill list @@ -345,7 +333,6 @@ function AltSystem:RefreshSkillDropdown() function(data) return data == AltSystem.State.selectedSkillIndex end, function(data) AltSystem.State.selectedSkillIndex = data - AltSystem.State.selectedSkillName = AltSystem.Data.Skills[data] and AltSystem.Data.Skills[data].name or nil if AltSystem.SetSkillIndex then AltSystem.SetSkillIndex(data) end @@ -360,4 +347,5 @@ function AltSystem:RefreshSkillDropdown() end end --- Frame is created by AltSystem:Init() in Core.lua, after saved variables are loaded +-- Create the frame on file load so it's ready when Init runs +AltSystem:CreateMainFrame() diff --git a/docs/Changelog.md b/docs/Changelog.md deleted file mode 100644 index dd05c6a..0000000 --- a/docs/Changelog.md +++ /dev/null @@ -1,3 +0,0 @@ -- Adding default 'Unskilled (-4)' option -- The roll window now remembers all user selections (skill, item, armor type, shield, pet, announce and channel) across sessions -- Fixed an issue where the wrong rolls were displayed when in a large enough group \ No newline at end of file