From 8092c4a221a4b212634534ac27f1dadb8b6af9a3 Mon Sep 17 00:00:00 2001 From: "Ryan P. McKinnon" <15917743+mrhoribu@users.noreply.github.com> Date: Tue, 22 Jul 2025 21:01:35 -0400 Subject: [PATCH 01/11] fix(bigshot.lic): v5.9.5 various updates --- scripts/bigshot.lic | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/scripts/bigshot.lic b/scripts/bigshot.lic index e60c8ffce..2cb4c62e8 100644 --- a/scripts/bigshot.lic +++ b/scripts/bigshot.lic @@ -8,7 +8,7 @@ contributors: SpiffyJr, Tillmen, Kalros, Hazado, Tysong, Athias, Falicor, Deysh, Nisugi game: Gemstone tags: hunting, bigshot, combat - version: 5.9.4 + version: 5.9.5 required: Lich >= 5.12.1 Setup Instructions: https://gswiki.play.net/Script_Bigshot @@ -17,6 +17,8 @@ Version Control: Major_change.feature_addition.bugfix + v5.9.5 (2025-07-22) + - remove companion_check calls as no longer needed with migration to GameObj.targets for valid creatures v5.9.4 (2025-07-08) - bugfix for leader final loot to only work if claim is true v5.9.3 (2025-07-02) @@ -5197,7 +5199,7 @@ class Bigshot debug_msg(@DEBUG_STATUS, "lead | called by #{caller[0]}") monitor_interaction() - companion_check() + # companion_check() # commented out 7/22/2025, no longer needed with move to GameObj.targets for valid creatures npc_room_check() @followers = my_group || Group.new() if !checkpcs.nil? @@ -7256,7 +7258,7 @@ elsif (Script.current.vars[1] =~ /tail|follow|link/i) bs = Bigshot.new(Script.current.vars) group.add_member(bs) - bs.companion_check() + # bs.companion_check() # commented out 7/22/2025, no longer needed with move to GameObj.targets for valid creatures bs.npc_room_check() end end From 5837340eabedde7aeb0fe370b274f4ab6d3a84fa Mon Sep 17 00:00:00 2001 From: "Ryan P. McKinnon" <15917743+mrhoribu@users.noreply.github.com> Date: Fri, 1 Aug 2025 17:19:08 -0700 Subject: [PATCH 02/11] fix: check claim for attack_break and need_to_loot --- scripts/bigshot.lic | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/scripts/bigshot.lic b/scripts/bigshot.lic index 2cb4c62e8..741adcdbf 100644 --- a/scripts/bigshot.lic +++ b/scripts/bigshot.lic @@ -19,6 +19,8 @@ Major_change.feature_addition.bugfix v5.9.5 (2025-07-22) - remove companion_check calls as no longer needed with migration to GameObj.targets for valid creatures + - add check_disks param to bigclaim? method + - add claim check to attack_break and need_to_loot (ignoring disk check) v5.9.4 (2025-07-08) - bugfix for leader final loot to only work if claim is true v5.9.3 (2025-07-02) @@ -5144,11 +5146,11 @@ class Bigshot debug_msg(@DEBUG_STATUS, "groupcheck | Group.members.map(&:noun): #{Lich::Gemstone::Group.members.map(&:noun)} | called by #{caller[0]}") end - def bigclaim? + def bigclaim?(check_disks: true) debug_msg(@DEBUG_STATUS, "bigclaim? | $bigshot_quick: #{$bigshot_quick} | Claim.mine?: #{Lich::Gemstone::Claim.mine?} | Disks: #{(Lich::Gemstone::Disk.all - Lich::Gemstone::Group.disks)} | called by #{caller[0]}") return true if $bigshot_quick return false unless Lich::Gemstone::Claim.mine? - return false unless @IGNORE_DISKS || (Lich::Gemstone::Disk.all - Lich::Gemstone::Group.disks).empty? + return false unless @IGNORE_DISKS || (check_disks && (Lich::Gemstone::Disk.all - Lich::Gemstone::Group.disks).empty?) return true end @@ -5731,6 +5733,7 @@ class Bigshot def attack_break(target) break_conditions = { + "No Claim". => !bigclaim?(check_disks: false), "Invalid target" => !valid_target?(target), "Should Rest" => $bigshot_should_rest, "Ambusher present" => $ambusher_here, @@ -5784,6 +5787,7 @@ class Bigshot end def need_to_loot?(final_loot = false) + return unless bigclaim?(check_disks: false) return unless leading? return unless checkroom("Duskruin Arena, Dueling Sands").nil? return if should_flee? @@ -7480,3 +7484,4 @@ elsif (Script.current.vars[1] =~ /tail|follow|link/i) end end end + From 70d8f48111f144fc8df4f2e8d7447899439e5c43 Mon Sep 17 00:00:00 2001 From: "Ryan P. McKinnon" <15917743+mrhoribu@users.noreply.github.com> Date: Fri, 1 Aug 2025 17:20:28 -0700 Subject: [PATCH 03/11] fix: typo extra period --- scripts/bigshot.lic | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/bigshot.lic b/scripts/bigshot.lic index 741adcdbf..7c4587cf8 100644 --- a/scripts/bigshot.lic +++ b/scripts/bigshot.lic @@ -5733,7 +5733,7 @@ class Bigshot def attack_break(target) break_conditions = { - "No Claim". => !bigclaim?(check_disks: false), + "No Claim" => !bigclaim?(check_disks: false), "Invalid target" => !valid_target?(target), "Should Rest" => $bigshot_should_rest, "Ambusher present" => $ambusher_here, @@ -7485,3 +7485,4 @@ elsif (Script.current.vars[1] =~ /tail|follow|link/i) end end + From 605c76469a3113363d11f0b613cdda3d27cddcea Mon Sep 17 00:00:00 2001 From: "Ryan P. McKinnon" <15917743+mrhoribu@users.noreply.github.com> Date: Fri, 1 Aug 2025 17:20:58 -0700 Subject: [PATCH 04/11] fix: rubocop --- scripts/bigshot.lic | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/bigshot.lic b/scripts/bigshot.lic index 7c4587cf8..a0fae8116 100644 --- a/scripts/bigshot.lic +++ b/scripts/bigshot.lic @@ -7485,4 +7485,3 @@ elsif (Script.current.vars[1] =~ /tail|follow|link/i) end end - From f490dfaa9244d1aae3436e120d49baf77a36dc2d Mon Sep 17 00:00:00 2001 From: "Ryan P. McKinnon" <15917743+mrhoribu@users.noreply.github.com> Date: Fri, 1 Aug 2025 17:22:27 -0700 Subject: [PATCH 05/11] fix: rubocop --- scripts/bigshot.lic | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/bigshot.lic b/scripts/bigshot.lic index a0fae8116..8c4cfc7d6 100644 --- a/scripts/bigshot.lic +++ b/scripts/bigshot.lic @@ -7484,4 +7484,3 @@ elsif (Script.current.vars[1] =~ /tail|follow|link/i) end end end - From 9a9598dfd9cc77de26f509f4ca40cd1a8625d2b3 Mon Sep 17 00:00:00 2001 From: "Ryan P. McKinnon" <15917743+mrhoribu@users.noreply.github.com> Date: Sat, 2 Aug 2025 16:28:45 -0700 Subject: [PATCH 06/11] Update scripts/bigshot.lic Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> --- scripts/bigshot.lic | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/bigshot.lic b/scripts/bigshot.lic index 8c4cfc7d6..d22e8f6df 100644 --- a/scripts/bigshot.lic +++ b/scripts/bigshot.lic @@ -5150,7 +5150,7 @@ class Bigshot debug_msg(@DEBUG_STATUS, "bigclaim? | $bigshot_quick: #{$bigshot_quick} | Claim.mine?: #{Lich::Gemstone::Claim.mine?} | Disks: #{(Lich::Gemstone::Disk.all - Lich::Gemstone::Group.disks)} | called by #{caller[0]}") return true if $bigshot_quick return false unless Lich::Gemstone::Claim.mine? - return false unless @IGNORE_DISKS || (check_disks && (Lich::Gemstone::Disk.all - Lich::Gemstone::Group.disks).empty?) + return false unless @IGNORE_DISKS || (!check_disks || (Lich::Gemstone::Disk.all - Lich::Gemstone::Group.disks).empty?) return true end From 69dad6468e15ed34886ca04fdab3368995dbed5a Mon Sep 17 00:00:00 2001 From: "Ryan P. McKinnon" <15917743+mrhoribu@users.noreply.github.com> Date: Sat, 23 Aug 2025 11:09:39 -0400 Subject: [PATCH 07/11] fix: add coupdegrace buff/command check --- scripts/bigshot.lic | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/scripts/bigshot.lic b/scripts/bigshot.lic index d22e8f6df..2c7fc59d6 100644 --- a/scripts/bigshot.lic +++ b/scripts/bigshot.lic @@ -21,6 +21,7 @@ - remove companion_check calls as no longer needed with migration to GameObj.targets for valid creatures - add check_disks param to bigclaim? method - add claim check to attack_break and need_to_loot (ignoring disk check) + - add coupdegrace buff check and command check v5.9.4 (2025-07-08) - bugfix for leader final loot to only work if claim is true v5.9.3 (2025-07-02) @@ -3015,7 +3016,7 @@ class Bigshot # check mana/stamina/health(percentage)/encumbrance/unarmed tiering/mobs in room/target not prone/target undead # ! means the inverse/opposite effect original_command = command - if (command =~ /(.*)\((.*?(?:!?506|!?ancient|!?animate|!?barrage|!?bearhug|buff|!?burst|!?celerity|censer|!?disease|!?e|!?frozen|!?flurry|!?flying|!?fury|!?garrote|!?h|!?hidden|!?holler|!?justice|!?k|!?m|!?mob|!?momentum|!?noncorporeal|once|!?outside|!?pcs|!?poison|!?prone|!?pummel|!?rapid|!?rebuke|!?reflex|room|!?rooted|!?s|!?scourge|!?shout|!?surge|!?tailwind|!?tier|!?tier1|!?tier2|!?tier3|!?thrash|!?undead|!?v|!?vigor|!?voidweaver|!?yowlp).*?)\)$/i) + if (command =~ /(.*)\((.*?(?:!?506|!?ancient|!?animate|!?barrage|!?bearhug|buff|!?burst|!?celerity|censer|!?coupdegrace|!?disease|!?e|!?frozen|!?flurry|!?flying|!?fury|!?garrote|!?h|!?hidden|!?holler|!?justice|!?k|!?m|!?mob|!?momentum|!?noncorporeal|once|!?outside|!?pcs|!?poison|!?prone|!?pummel|!?rapid|!?rebuke|!?reflex|room|!?rooted|!?s|!?scourge|!?shout|!?surge|!?tailwind|!?tier|!?tier1|!?tier2|!?tier3|!?thrash|!?undead|!?v|!?vigor|!?voidweaver|!?yowlp).*?)\)$/i) command = $1.strip $2.split(" ").each { |s| @@ -3049,24 +3050,25 @@ class Bigshot if s =~ /((?:buff))(\d+)/i amount = $2.to_i buff_check = { - 'barrage' => lambda { !(Effects::Buffs.time_left("Enh. Dexterity (+10)") <= (amount / 60.to_f)) }, - 'bearhug' => lambda { !(Effects::Buffs.time_left("Enh. Strength (+10)") <= (amount / 60.to_f)) }, - 'flurry' => lambda { !(Effects::Buffs.time_left("Slashing Strikes") <= (amount / 60.to_f)) }, - 'fury' => lambda { !(Effects::Buffs.time_left("Enh. Constitution (+10)") <= (amount / 60.to_f)) }, - 'garrote' => lambda { !(Effects::Buffs.time_left("Enh. Agility (+10)") <= (amount / 60.to_f)) }, - 'kweed' => lambda { !(Effects::Buffs.time_left("Tangleweed Vigor") <= (amount / 60.to_f)) }, - 'pummel' => lambda { !(Effects::Buffs.time_left("Concussive Blows") <= (amount / 60.to_f)) }, - 'shout' => lambda { !(Effects::Buffs.time_left("Empowered (+20)") <= (amount / 60.to_f)) }, - 'thrash' => lambda { !(Effects::Buffs.time_left("Forceful Blows") <= (amount / 60.to_f)) }, - 'weed' => lambda { !(Effects::Buffs.time_left("Tangleweed Vigor") <= (amount / 60.to_f)) }, - 'yowlp' => lambda { !(Effects::Buffs.time_left("Yertie's Yowlp") <= (amount / 60.to_f)) }, + 'barrage' => lambda { !(Effects::Buffs.time_left("Enh. Dexterity (+10)") <= (amount / 60.to_f)) }, + 'bearhug' => lambda { !(Effects::Buffs.time_left("Enh. Strength (+10)") <= (amount / 60.to_f)) }, + 'coupdegrace' => lambda { !(Effects::Buffs.time_left(/Empowered \(\+\d+\)/) <= (amount / 60.to_f)) }, + 'flurry' => lambda { !(Effects::Buffs.time_left("Slashing Strikes") <= (amount / 60.to_f)) }, + 'fury' => lambda { !(Effects::Buffs.time_left("Enh. Constitution (+10)") <= (amount / 60.to_f)) }, + 'garrote' => lambda { !(Effects::Buffs.time_left("Enh. Agility (+10)") <= (amount / 60.to_f)) }, + 'kweed' => lambda { !(Effects::Buffs.time_left("Tangleweed Vigor") <= (amount / 60.to_f)) }, + 'pummel' => lambda { !(Effects::Buffs.time_left("Concussive Blows") <= (amount / 60.to_f)) }, + 'shout' => lambda { !(Effects::Buffs.time_left("Empowered (+20)") <= (amount / 60.to_f)) }, + 'thrash' => lambda { !(Effects::Buffs.time_left("Forceful Blows") <= (amount / 60.to_f)) }, + 'weed' => lambda { !(Effects::Buffs.time_left("Tangleweed Vigor") <= (amount / 60.to_f)) }, + 'yowlp' => lambda { !(Effects::Buffs.time_left("Yertie's Yowlp") <= (amount / 60.to_f)) }, } debug_msg(@DEBUG_COMMANDS, "command_check section 2 | s: #{s} | command: #{command} | buff_check[command]: #{result = buff_check[command].call} | called by #{caller[0]}") return result if result end - if s =~ /((?:!?506|!?ancient|!?animate|!?barrage|!?bearhug|!?burst|!?celerity|censer|!?disease|!?flurry|!?flying|!?frozen|!?fury|!?garrote|!?hidden|!?holler|!?justice|!?momentum|!?noncorporeal|once|!?outside|!?pcs|!?poison|!?prone|!?pummel|!?rapid|!?rebuke|!?reflex|room|!?rooted|!?scourge|!?shout|!?surge|!?tailwind|!?thrash|!?tier1|!?tier2|!?tier3|!?undead|!?vigor|!?voidweaver|!?yowlp))/i + if s =~ /((?:!?506|!?ancient|!?animate|!?barrage|!?bearhug|!?burst|!?celerity|censer|!?coupdegrace|!?disease|!?flurry|!?flying|!?frozen|!?fury|!?garrote|!?hidden|!?holler|!?justice|!?momentum|!?noncorporeal|once|!?outside|!?pcs|!?poison|!?prone|!?pummel|!?rapid|!?rebuke|!?reflex|room|!?rooted|!?scourge|!?shout|!?surge|!?tailwind|!?thrash|!?tier1|!?tier2|!?tier3|!?undead|!?vigor|!?voidweaver|!?yowlp))/i item = $1.strip other_checks = { '506' => lambda { (!Spell[506].active?) }, @@ -3083,6 +3085,8 @@ class Bigshot '!burst' => lambda { Effects::Cooldowns.active?("Burst of Swiftness") }, 'celerity' => lambda { (!Spell[506].active?) }, '!celerity' => lambda { (Spell[506].active? && Spell[506].timeleft <= 0.05) }, + 'coupdegrace' => lambda { !Effects::Buffs.active?(/Empowered \(\+\d+\)/) }, + '!coupdegrace' => lambda { Effects::Buffs.active?(/Empowered \(\+\d+\)/) }, 'disease' => lambda { !checkdisease }, '!disease' => lambda { checkdisease }, 'flurry' => lambda { !Effects::Buffs.active?("Slashing Strikes") }, @@ -7484,3 +7488,4 @@ elsif (Script.current.vars[1] =~ /tail|follow|link/i) end end end + From 4770d1aed2427f44a20f7cd8d37608cfc27e4b6b Mon Sep 17 00:00:00 2001 From: "Ryan P. McKinnon" <15917743+mrhoribu@users.noreply.github.com> Date: Sat, 23 Aug 2025 11:10:47 -0400 Subject: [PATCH 08/11] fix: rubocop --- scripts/bigshot.lic | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/bigshot.lic b/scripts/bigshot.lic index 2c7fc59d6..0284fb255 100644 --- a/scripts/bigshot.lic +++ b/scripts/bigshot.lic @@ -7488,4 +7488,3 @@ elsif (Script.current.vars[1] =~ /tail|follow|link/i) end end end - From 6f21c8c1c509292af10129318f96b12d1dcb1100 Mon Sep 17 00:00:00 2001 From: "Ryan P. McKinnon" <15917743+mrhoribu@users.noreply.github.com> Date: Tue, 2 Sep 2025 10:31:42 -0400 Subject: [PATCH 09/11] fix: increase bs_move timeout from 2 to 5 --- scripts/bigshot.lic | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/bigshot.lic b/scripts/bigshot.lic index 0284fb255..cf825dd3b 100644 --- a/scripts/bigshot.lic +++ b/scripts/bigshot.lic @@ -22,6 +22,7 @@ - add check_disks param to bigclaim? method - add claim check to attack_break and need_to_loot (ignoring disk check) - add coupdegrace buff check and command check + - increase bs_move timeout from 2 to 5 v5.9.4 (2025-07-08) - bugfix for leader final loot to only work if claim is true v5.9.3 (2025-07-02) @@ -6707,7 +6708,7 @@ class Bigshot $wander_rooms.push(next_room) way = room.wayto[next_room] if way.is_a?(String) - move(way, 2) # attempts to move WAY with timeout of 2 seconds + move(way, 5) # attempts to move WAY with timeout of 2 seconds else way.call end @@ -7488,3 +7489,4 @@ elsif (Script.current.vars[1] =~ /tail|follow|link/i) end end end + From 138c5645369b585087831d30de673e4fa31af023 Mon Sep 17 00:00:00 2001 From: "Ryan P. McKinnon" <15917743+mrhoribu@users.noreply.github.com> Date: Sat, 6 Sep 2025 10:02:49 -0400 Subject: [PATCH 10/11] fix: rubocop --- scripts/bigshot.lic | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/bigshot.lic b/scripts/bigshot.lic index cf825dd3b..6046c4915 100644 --- a/scripts/bigshot.lic +++ b/scripts/bigshot.lic @@ -7489,4 +7489,3 @@ elsif (Script.current.vars[1] =~ /tail|follow|link/i) end end end - From 7957091eeb241498a246b08c75a9b8659aecdb01 Mon Sep 17 00:00:00 2001 From: "Ryan P. McKinnon" <15917743+mrhoribu@users.noreply.github.com> Date: Sat, 6 Sep 2025 11:51:02 -0400 Subject: [PATCH 11/11] fix: ellipsis comments suggestions Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> --- scripts/bigshot.lic | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/bigshot.lic b/scripts/bigshot.lic index 6046c4915..f5dd088f0 100644 --- a/scripts/bigshot.lic +++ b/scripts/bigshot.lic @@ -6708,7 +6708,7 @@ class Bigshot $wander_rooms.push(next_room) way = room.wayto[next_room] if way.is_a?(String) - move(way, 5) # attempts to move WAY with timeout of 2 seconds + move(way, 5) # attempts to move WAY with timeout of 5 seconds else way.call end