mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-07-05 16:49:04 +00:00
Fix, format and rebase wilderness and player-action plugins.
This commit is contained in:
@@ -1,35 +1,35 @@
|
|||||||
require 'java'
|
require 'java'
|
||||||
|
|
||||||
java_import 'org.apollo.game.model.entity.Player'
|
java_import 'org.apollo.game.model.entity.Player'
|
||||||
java_import 'org.apollo.game.message.impl.OpenOverlayMessage'
|
|
||||||
java_import 'org.apollo.game.message.impl.SetWidgetTextMessage'
|
java_import 'org.apollo.game.message.impl.SetWidgetTextMessage'
|
||||||
|
java_import 'org.apollo.game.message.impl.OpenOverlayMessage'
|
||||||
|
|
||||||
|
|
||||||
|
# Constants constants related to the wilderness
|
||||||
|
module WildernessConstants
|
||||||
|
|
||||||
private
|
# The wilderness level overlay interface id
|
||||||
|
OVERLAY_INTERFACE_ID = 197
|
||||||
|
|
||||||
MIN_X = 2945
|
# The wilderness level string id
|
||||||
MIN_Y = 3522
|
LEVEL_STRING_ID = 199
|
||||||
MAX_X = 3390
|
|
||||||
MAX_Y = 3972
|
|
||||||
|
|
||||||
OVERLAY_INTERFACE_ID = 197
|
end
|
||||||
LEVEL_STRING_ID = 199
|
|
||||||
|
|
||||||
declare_attribute(:wilderness_level, 0, :transient)
|
declare_attribute(:wilderness_level, 0, :transient)
|
||||||
|
|
||||||
# Determines the wilderness level for the specified player's position
|
# Determines the wilderness level for the specified player's position
|
||||||
def wilderness_level(player)
|
def wilderness_level(player)
|
||||||
return (player.position.y - (MIN_Y - 1) / 8).ceil
|
return ((player.position.y - 3520) / 8).ceil
|
||||||
end
|
end
|
||||||
|
|
||||||
area_action :wilderness_level do
|
area_action :wilderness_level do
|
||||||
|
|
||||||
on_entry do |player|
|
on_entry do |player|
|
||||||
player.wilderness_level = wilderness_level(player)
|
player.wilderness_level = wilderness_level(player)
|
||||||
player.interface_set.open_overlay(OVERLAY_INTERFACE_ID)
|
player.interface_set.open_overlay(WildernessConstants::OVERLAY_INTERFACE_ID)
|
||||||
player.send(SetWidgetTextMessage.new(LEVEL_STRING_ID, "Level: #{player.wilderness_level}"))
|
player.send(SetWidgetTextMessage.new(WildernessConstants::LEVEL_STRING_ID, "Level: #{player.wilderness_level}"))
|
||||||
show_action(ATTACK_ACTION)
|
show_action(player, ATTACK_ACTION)
|
||||||
end
|
end
|
||||||
|
|
||||||
while_in do |player|
|
while_in do |player|
|
||||||
@@ -37,16 +37,17 @@ area_action :wilderness_level do
|
|||||||
updated = wilderness_level(player)
|
updated = wilderness_level(player)
|
||||||
if (current != updated)
|
if (current != updated)
|
||||||
player.wilderness_level = updated
|
player.wilderness_level = updated
|
||||||
player.send(SetWidgetTextMessage.new(LEVEL_STRING_ID, "Level: #{player.wilderness_level}"))
|
player.send(SetWidgetTextMessage.new(WildernessConstants::LEVEL_STRING_ID, "Level: #{player.wilderness_level}"))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
on_exit do |player|
|
on_exit do |player|
|
||||||
player.wilderness_level = 0
|
player.wilderness_level = 0
|
||||||
player.interface_set.close() # TODO: Will this cause issues with other potentially open interfaces?
|
player.interface_set.close()
|
||||||
hide_action(ATTACK_ACTION)
|
player.send(OpenOverlayMessage.new(-1))
|
||||||
|
hide_action(player, ATTACK_ACTION)
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
area :name => :wilderness, :coordinates => [ MIN_X, MIN_Y, MAX_X, MAX_Y, 0 ], :actions => :wilderness_level
|
area :name => :wilderness, :coordinates => [ 2945, 3522, 3390, 3972, 0 ], :actions => :wilderness_level
|
||||||
@@ -3,6 +3,8 @@ require 'java'
|
|||||||
java_import 'org.apollo.game.message.impl.SetPlayerActionMessage'
|
java_import 'org.apollo.game.message.impl.SetPlayerActionMessage'
|
||||||
java_import 'org.apollo.game.model.entity.Player'
|
java_import 'org.apollo.game.model.entity.Player'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class PlayerAction
|
class PlayerAction
|
||||||
attr_reader :slot, :primary, :name
|
attr_reader :slot, :primary, :name
|
||||||
|
|
||||||
@@ -24,7 +26,7 @@ FOLLOW_ACTION = PlayerAction.new(:fifth, true, 'Follow')
|
|||||||
|
|
||||||
# Shows multiple context menu action for the specified player
|
# Shows multiple context menu action for the specified player
|
||||||
def show_actions(player, *actions)
|
def show_actions(player, *actions)
|
||||||
raise 'Must specify at least one action to show' if actions.nil?
|
raise 'Must specify at least one action' if actions.nil?
|
||||||
|
|
||||||
actions.each do |action|
|
actions.each do |action|
|
||||||
player.add_action(action)
|
player.add_action(action)
|
||||||
@@ -39,7 +41,7 @@ end
|
|||||||
|
|
||||||
# Hides a context menu action for the specified player
|
# Hides a context menu action for the specified player
|
||||||
def hide_action(player, action)
|
def hide_action(player, action)
|
||||||
show_action(player, PlayerAction.new('null', action.slot, action.primary))
|
show_action(player, PlayerAction.new(action.slot, action.primary, 'null'))
|
||||||
end
|
end
|
||||||
|
|
||||||
class Player
|
class Player
|
||||||
|
|||||||
Reference in New Issue
Block a user