Housekeeping

This commit is contained in:
KeepBotting
2019-03-26 14:05:40 -04:00
parent a0c78ced90
commit 739c331860
135 changed files with 4 additions and 4 deletions
+17
View File
@@ -0,0 +1,17 @@
<?xml version="1.0"?>
<plugin>
<id>combat</id>
<version>1</version>
<name>Combat</name>
<description>Manages combat between game characters.</description>
<authors>
<author>Ryley</author>
</authors>
<scripts>
<script>wilderness.rb</script>
</scripts>
<dependencies>
<dependency>attributes</dependency>
<dependency>areas</dependency>
</dependencies>
</plugin>
+66
View File
@@ -0,0 +1,66 @@
require 'java'
java_import 'org.apollo.game.model.entity.Player'
java_import 'org.apollo.game.message.impl.SetWidgetTextMessage'
java_import 'org.apollo.game.message.impl.OpenOverlayMessage'
declare_attribute(:wilderness_level, 0, :transient)
# Constants constants related to the wilderness
module WildernessConstants
# The wilderness level overlay interface id
OVERLAY_INTERFACE_ID = 197
# The wilderness level string id
LEVEL_STRING_ID = 199
end
# Determines the wilderness level for the specified position
def wilderness_level(position)
((position.y - 3520) / 8).ceil + 1
end
area_action :wilderness_level do
on_entry do |player, position|
player.wilderness_level = wilderness_level(position)
player.interface_set.open_overlay(WildernessConstants::OVERLAY_INTERFACE_ID)
id = WildernessConstants::LEVEL_STRING_ID
player.send(SetWidgetTextMessage.new(id, "Level: #{player.wilderness_level}"))
show_action(player, ATTACK_ACTION)
end
while_in do |player, position|
current = player.wilderness_level
updated = wilderness_level(position)
if current != updated
player.wilderness_level = updated
id = WildernessConstants::LEVEL_STRING_ID
player.send(SetWidgetTextMessage.new(id, "Level: #{player.wilderness_level}"))
end
end
on_exit do |player, position|
player.wilderness_level = 0
player.interface_set.close
player.send(OpenOverlayMessage.new(-1))
hide_action(player, ATTACK_ACTION)
end
end
# Monkey patch the existing player class to add method of checking whether or not a player is
# within the wilderness
class Player
def in_wilderness
wilderness_level > 0
end
end
area name: :wilderness, coordinates: [2945, 3522, 3390, 3972, 0], actions: :wilderness_level