ledmon 0.1.3 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f21693c2c076399ef05501077615eeb624f9888202b131c3a1b19dc0b0d231fe
4
- data.tar.gz: 452693d925de81c17b7fa29a895939b30f0d18e1e2ad1ac679528d5eaad4e3c1
3
+ metadata.gz: f486209c9291a52c22d5ac6259658baf6f8f2b77e7609e7099580e8eb0004e80
4
+ data.tar.gz: dad85796e2f2cad916be6aee797ec476f511fdb903e6e5900261ef0a32af8692
5
5
  SHA512:
6
- metadata.gz: cf93fddaa169169c2093021f1fb0232b1194ac193ce95582c3e841fda1190f5bc643da5d988b0385aaa37db62133af5c04e5268dd9656e2742867f0746c9c1a9
7
- data.tar.gz: 779225ceb84e6bc9f5af58ad572f827cdb32c7319a1dd9bddb5e53dd1afa3429a055a4edf149ac2891eeb4dc7bb06850e85291cca49809d5d23c025abb1582b4
6
+ metadata.gz: 5023ce4213973a097829916d135a60d12f6f961eb21b350f8b4599c903b7713045d6c64225f84bf464a40091ac30b77af7ae931985bc6ead6790fb726a512d87
7
+ data.tar.gz: 3c9b8c78c402634ff1c6d7e5349317bef2d9a8210d4255906f0dd44810ff0ef1b2f47df96e0c847981c8a55f7028aeb0fe6cca388df3535c2c1179b0aa5a2334
data/Rakefile CHANGED
@@ -5,8 +5,4 @@ require "rspec/core/rake_task"
5
5
 
6
6
  RSpec::Core::RakeTask.new(:spec)
7
7
 
8
- require "rubocop/rake_task"
9
-
10
- RuboCop::RakeTask.new
11
-
12
- task default: %i[spec rubocop]
8
+ task default: %i[spec]
@@ -25,5 +25,14 @@ module Ledmon::CLI
25
25
  config_value :auth
26
26
  config_value :mode
27
27
  config_value :log_level
28
+
29
+ desc "show", "Show current configuration"
30
+
31
+ def show
32
+ %i[host grpc_port http_port http_proto auth mode log_level].each do |name|
33
+ value = Ledmon::Config.public_send(name)
34
+ puts "#{name}: #{value}"
35
+ end
36
+ end
28
37
  end
29
38
  end
@@ -40,7 +40,7 @@ module Ledmon::Monster
40
40
  return true, last_challenge_response.challenge_id, last_challenge_response.challenge_input, last_challenge_algo_output
41
41
  elsif response.action == :FAILURE
42
42
  logger.debug("Challenge failed!")
43
- return false, last_challenge_response.challenge_id, last_challenge_response.challenge_input, last_challenge_algo_output
43
+ return false, last_challenge_response&.challenge_id, last_challenge_response&.challenge_input, last_challenge_algo_output
44
44
  end
45
45
  end
46
46
  end
@@ -53,6 +53,10 @@ module Ledmon::Monster
53
53
  client.research(Ledmon::ItemInfo.new(item:))
54
54
  end
55
55
 
56
+ def scrap(item)
57
+ client.scrap(Ledmon::ItemInfo.new(item:))
58
+ end
59
+
56
60
  def equip_item(item, slot)
57
61
  client.equip_item(Ledmon::EquipInfo.new(item:, slot:))
58
62
  end
@@ -74,7 +78,17 @@ module Ledmon::Monster
74
78
  end
75
79
 
76
80
  def look
77
- client.look(Ledmon::Empty.new).entities
81
+ look_data = client.look(Ledmon::Empty.new)
82
+ tiles = []
83
+ for y in -look_data.distance..look_data.distance
84
+ tile_col = []
85
+ for x in -look_data.distance..look_data.distance
86
+ tile_col << look_data.tiles[(x+look_data.distance)+(y+look_data.distance)*(look_data.distance*2+1)]
87
+ end
88
+ tiles << tile_col
89
+ end
90
+
91
+ tiles
78
92
  end
79
93
  end
80
94
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Ledmon
4
- VERSION = "0.1.3"
4
+ VERSION = "0.1.5"
5
5
  end
@@ -5,13 +5,14 @@
5
5
  require 'google/protobuf'
6
6
 
7
7
 
8
- descriptor_data = "\n\x0bworld.proto\x12\x06ledmon\"\x07\n\x05\x45mpty\"\'\n\tEquipInfo\x12\x0c\n\x04item\x18\x01 \x01(\t\x12\x0c\n\x04slot\x18\x02 \x01(\t\"\x1b\n\x0bUnequipInfo\x12\x0c\n\x04slot\x18\x01 \x01(\t\"\x1c\n\tPingReply\x12\x0f\n\x07message\x18\x01 \x01(\t\"/\n\x0eSessionRequest\x12\r\n\x05token\x18\x01 \x01(\t\x12\x0e\n\x06\x61vatar\x18\x02 \x01(\t\"C\n\x0cSessionReply\x12%\n\x06status\x18\x01 \x01(\x0e\x32\x15.ledmon.SessionStatus\x12\x0c\n\x04name\x18\x02 \x01(\t\"F\n\nStateReply\x12\x12\n\x05state\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04\x64iff\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_stateB\x07\n\x05_diff\" \n\x08Position\x12\t\n\x01x\x18\x01 \x01(\x05\x12\t\n\x01y\x18\x02 \x01(\x05\"\x84\x01\n\x10MovementResponse\x12&\n\x06result\x18\x01 \x01(\x0e\x32\x16.ledmon.MovementResult\x12\'\n\x08position\x18\x02 \x01(\x0b\x32\x10.ledmon.PositionH\x00\x88\x01\x01\x12\x12\n\nsleep_time\x18\x03 \x01(\x02\x42\x0b\n\t_position\"~\n\x12InteractionRequest\x12\x30\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32 .ledmon.InteractionRequestAction\x12\x1f\n\x12\x63hallenge_response\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x15\n\x13_challenge_response\"\xa6\x01\n\x13InteractionResponse\x12\x31\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32!.ledmon.InteractionResponseAction\x12\x19\n\x0c\x63hallenge_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0f\x63hallenge_input\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x0f\n\r_challenge_idB\x12\n\x10_challenge_input\"\x89\x01\n\rInventoryData\x12\r\n\x05items\x18\x01 \x03(\t\x12\x37\n\tequipment\x18\x02 \x03(\x0b\x32$.ledmon.InventoryData.EquipmentEntry\x1a\x30\n\x0e\x45quipmentEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x1b\n\tCraftData\x12\x0e\n\x06recipe\x18\x01 \x01(\t\"\x18\n\x08ItemInfo\x12\x0c\n\x04item\x18\x01 \x01(\t\"\x1d\n\x0bHealthCount\x12\x0e\n\x06health\x18\x01 \x01(\x02\"J\n\x0e\x41\x63tionResponse\x12$\n\x06result\x18\x01 \x01(\x0e\x32\x14.ledmon.ActionResult\x12\x12\n\nsleep_time\x18\x02 \x01(\x02\"H\n\x0cLookResponse\x12$\n\x08\x65ntities\x18\x01 \x03(\x0b\x32\x12.ledmon.LookEntity\x12\x12\n\nsleep_time\x18\x02 \x01(\x02\"O\n\nLookEntity\x12\n\n\x02id\x18\x01 \x01(\t\x12\"\n\x08position\x18\x02 \x01(\x0b\x32\x10.ledmon.Position\x12\x11\n\tequipment\x18\x03 \x03(\t\"G\n\x13StorageTransferData\x12\x0c\n\x04item\x18\x01 \x01(\t\x12\"\n\x04mode\x18\x02 \x01(\x0e\x32\x14.ledmon.TransferMode\"\x1c\n\x0bStorageData\x12\r\n\x05items\x18\x01 \x03(\t\"}\n\x10ResearchProgress\x12\x38\n\x08progress\x18\x01 \x03(\x0b\x32&.ledmon.ResearchProgress.ProgressEntry\x1a/\n\rProgressEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\"\x94\x01\n\x0eTradeOfferList\x12\x32\n\x06offers\x18\x01 \x03(\x0b\x32\".ledmon.TradeOfferList.OffersEntry\x12\x0b\n\x03own\x18\x02 \x03(\t\x1a\x41\n\x0bOffersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.ledmon.TradeOffer:\x02\x38\x01\"@\n\nTradeOffer\x12\x0e\n\x06inputs\x18\x01 \x03(\t\x12\x0f\n\x07outputs\x18\x02 \x03(\t\x12\x11\n\tremaining\x18\x03 \x01(\x05\"\x1a\n\x0cTradeOfferId\x12\n\n\x02id\x18\x01 \x01(\t\"\"\n\x12\x43onsumableDuration\x12\x0c\n\x04time\x18\x01 \x01(\x02*=\n\rSessionStatus\x12\x0b\n\x07STARTED\x10\x00\x12\x0c\n\x08\x46INISHED\x10\x01\x12\x11\n\rINVALID_TOKEN\x10\x02*%\n\x0eMovementResult\x12\x06\n\x02OK\x10\x00\x12\x0b\n\x07\x42LOCKED\x10\x01*;\n\x18InteractionRequestAction\x12\t\n\x05START\x10\x00\x12\x14\n\x10SUBMIT_CHALLENGE\x10\x01*D\n\x19InteractionResponseAction\x12\x0b\n\x07SUCCESS\x10\x00\x12\x0b\n\x07\x46\x41ILURE\x10\x01\x12\r\n\tCHALLENGE\x10\x02**\n\x0c\x41\x63tionResult\x12\x0e\n\nSUCCESSFUL\x10\x00\x12\n\n\x06\x46\x41ILED\x10\x01*%\n\x0cTransferMode\x12\x08\n\x04TAKE\x10\x00\x12\x0b\n\x07\x44\x45POSIT\x10\x01\x32\xd9\r\n\x05World\x12*\n\x04Ping\x12\r.ledmon.Empty\x1a\x11.ledmon.PingReply\"\x00\x12\x32\n\nPingStream\x12\r.ledmon.Empty\x1a\x11.ledmon.PingReply\"\x00\x30\x01\x12;\n\x07Session\x12\x16.ledmon.SessionRequest\x1a\x14.ledmon.SessionReply\"\x00\x30\x01\x12+\n\tKeepAlive\x12\r.ledmon.Empty\x1a\r.ledmon.Empty\"\x00\x12/\n\x08GetState\x12\r.ledmon.Empty\x1a\x12.ledmon.StateReply\"\x00\x12\x37\n\x0eGetStateStream\x12\r.ledmon.Empty\x1a\x12.ledmon.StateReply\"\x00\x30\x01\x12\x38\n\x0bMoveForward\x12\r.ledmon.Empty\x1a\x18.ledmon.MovementResponse\"\x00\x12\x39\n\x0cMoveBackward\x12\r.ledmon.Empty\x1a\x18.ledmon.MovementResponse\"\x00\x12\x35\n\x08TurnLeft\x12\r.ledmon.Empty\x1a\x18.ledmon.MovementResponse\"\x00\x12\x36\n\tTurnRight\x12\r.ledmon.Empty\x1a\x18.ledmon.MovementResponse\"\x00\x12\x37\n\nTurnAround\x12\r.ledmon.Empty\x1a\x18.ledmon.MovementResponse\"\x00\x12I\n\x08Interact\x12\x1a.ledmon.InteractionRequest\x1a\x1b.ledmon.InteractionResponse\"\x00(\x01\x30\x01\x12\x34\n\x05\x43raft\x12\x11.ledmon.CraftData\x1a\x16.ledmon.ActionResponse\"\x00\x12H\n\x0fStorageTransfer\x12\x1b.ledmon.StorageTransferData\x1a\x16.ledmon.ActionResponse\"\x00\x12\x33\n\x0bStorageList\x12\r.ledmon.Empty\x1a\x13.ledmon.StorageData\"\x00\x12\x36\n\x08Research\x12\x10.ledmon.ItemInfo\x1a\x16.ledmon.ActionResponse\"\x00\x12;\n\rScrapResearch\x12\x10.ledmon.ItemInfo\x1a\x16.ledmon.ActionResponse\"\x00\x12@\n\x13GetResearchProgress\x12\r.ledmon.Empty\x1a\x18.ledmon.ResearchProgress\"\x00\x12:\n\x0fListTradeOffers\x12\r.ledmon.Empty\x1a\x16.ledmon.TradeOfferList\"\x00\x12>\n\x10\x43reateTradeOffer\x12\x12.ledmon.TradeOffer\x1a\x14.ledmon.TradeOfferId\"\x00\x12\x42\n\x10\x41\x63\x63\x65ptTradeOffer\x12\x14.ledmon.TradeOfferId\x1a\x16.ledmon.ActionResponse\"\x00\x12\x39\n\x10\x43\x61ncelTradeOffer\x12\x14.ledmon.TradeOfferId\x1a\r.ledmon.Empty\"\x00\x12\x36\n\x0cGetInventory\x12\r.ledmon.Empty\x1a\x15.ledmon.InventoryData\"\x00\x12\x38\n\tEquipItem\x12\x11.ledmon.EquipInfo\x1a\x16.ledmon.ActionResponse\"\x00\x12<\n\x0bUnequipItem\x12\x13.ledmon.UnequipInfo\x1a\x16.ledmon.ActionResponse\"\x00\x12\x31\n\tGetHealth\x12\r.ledmon.Empty\x1a\x13.ledmon.HealthCount\"\x00\x12\x31\n\x06\x41ttack\x12\r.ledmon.Empty\x1a\x16.ledmon.ActionResponse\"\x00\x12\x39\n\x0b\x43onsumeItem\x12\x10.ledmon.ItemInfo\x1a\x16.ledmon.ActionResponse\"\x00\x12M\n\x1eGetRemainingConsumableDuration\x12\r.ledmon.Empty\x1a\x1a.ledmon.ConsumableDuration\"\x00\x12-\n\x04Look\x12\r.ledmon.Empty\x1a\x14.ledmon.LookResponse\"\x00\x62\x06proto3"
8
+ descriptor_data = "\n\x0bworld.proto\x12\x06ledmon\"\x07\n\x05\x45mpty\"\x84\x01\n\x07MapInfo\x12\r\n\x05width\x18\x01 \x01(\x05\x12\x0e\n\x06height\x18\x02 \x01(\x05\x12\x10\n\x08tilesize\x18\x03 \x01(\x05\x12\x0f\n\x07spawn_x\x18\x04 \x01(\x05\x12\x0f\n\x07spawn_y\x18\x05 \x01(\x05\x12\x13\n\x0b\x66og_enabled\x18\x06 \x01(\x08\x12\x11\n\tmap_image\x18\x07 \x01(\t\"\'\n\tEquipInfo\x12\x0c\n\x04item\x18\x01 \x01(\t\x12\x0c\n\x04slot\x18\x02 \x01(\t\"\x1b\n\x0bUnequipInfo\x12\x0c\n\x04slot\x18\x01 \x01(\t\"\x1c\n\tPingReply\x12\x0f\n\x07message\x18\x01 \x01(\t\"/\n\x0eSessionRequest\x12\r\n\x05token\x18\x01 \x01(\t\x12\x0e\n\x06\x61vatar\x18\x02 \x01(\t\"C\n\x0cSessionReply\x12%\n\x06status\x18\x01 \x01(\x0e\x32\x15.ledmon.SessionStatus\x12\x0c\n\x04name\x18\x02 \x01(\t\"F\n\nStateReply\x12\x12\n\x05state\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04\x64iff\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_stateB\x07\n\x05_diff\" \n\x08Position\x12\t\n\x01x\x18\x01 \x01(\x05\x12\t\n\x01y\x18\x02 \x01(\x05\"\x84\x01\n\x10MovementResponse\x12&\n\x06result\x18\x01 \x01(\x0e\x32\x16.ledmon.MovementResult\x12\'\n\x08position\x18\x02 \x01(\x0b\x32\x10.ledmon.PositionH\x00\x88\x01\x01\x12\x12\n\nsleep_time\x18\x03 \x01(\x02\x42\x0b\n\t_position\"~\n\x12InteractionRequest\x12\x30\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32 .ledmon.InteractionRequestAction\x12\x1f\n\x12\x63hallenge_response\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x15\n\x13_challenge_response\"\xa6\x01\n\x13InteractionResponse\x12\x31\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32!.ledmon.InteractionResponseAction\x12\x19\n\x0c\x63hallenge_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0f\x63hallenge_input\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x0f\n\r_challenge_idB\x12\n\x10_challenge_input\"\x89\x01\n\rInventoryData\x12\r\n\x05items\x18\x01 \x03(\t\x12\x37\n\tequipment\x18\x02 \x03(\x0b\x32$.ledmon.InventoryData.EquipmentEntry\x1a\x30\n\x0e\x45quipmentEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x1b\n\tCraftData\x12\x0e\n\x06recipe\x18\x01 \x01(\t\"\x18\n\x08ItemInfo\x12\x0c\n\x04item\x18\x01 \x01(\t\"\x1d\n\x0bHealthCount\x12\x0e\n\x06health\x18\x01 \x01(\x02\"J\n\x0e\x41\x63tionResponse\x12$\n\x06result\x18\x01 \x01(\x0e\x32\x14.ledmon.ActionResult\x12\x12\n\nsleep_time\x18\x02 \x01(\x02\"U\n\x0cLookResponse\x12\x1f\n\x05tiles\x18\x01 \x03(\x0b\x32\x10.ledmon.LookTile\x12\x10\n\x08\x64istance\x18\x02 \x01(\x05\x12\x12\n\nsleep_time\x18\x03 \x01(\x02\"\x80\x01\n\x08LookTile\x12\x10\n\x08walkable\x18\x01 \x01(\x08\x12\x14\n\x07station\x18\x02 \x01(\tH\x00\x88\x01\x01\x12$\n\x08\x65ntities\x18\x03 \x03(\x0b\x32\x12.ledmon.LookEntity\x12\x11\n\x04zone\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\n\n\x08_stationB\x07\n\x05_zone\"O\n\nLookEntity\x12\n\n\x02id\x18\x01 \x01(\t\x12\"\n\x08position\x18\x02 \x01(\x0b\x32\x10.ledmon.Position\x12\x11\n\tequipment\x18\x03 \x03(\t\"G\n\x13StorageTransferData\x12\x0c\n\x04item\x18\x01 \x01(\t\x12\"\n\x04mode\x18\x02 \x01(\x0e\x32\x14.ledmon.TransferMode\"\x1c\n\x0bStorageData\x12\r\n\x05items\x18\x01 \x03(\t\"}\n\x10ResearchProgress\x12\x38\n\x08progress\x18\x01 \x03(\x0b\x32&.ledmon.ResearchProgress.ProgressEntry\x1a/\n\rProgressEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\"\x94\x01\n\x0eTradeOfferList\x12\x32\n\x06offers\x18\x01 \x03(\x0b\x32\".ledmon.TradeOfferList.OffersEntry\x12\x0b\n\x03own\x18\x02 \x03(\t\x1a\x41\n\x0bOffersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.ledmon.TradeOffer:\x02\x38\x01\"@\n\nTradeOffer\x12\x0e\n\x06inputs\x18\x01 \x03(\t\x12\x0f\n\x07outputs\x18\x02 \x03(\t\x12\x11\n\tremaining\x18\x03 \x01(\x05\"\x1a\n\x0cTradeOfferId\x12\n\n\x02id\x18\x01 \x01(\t\"\"\n\x12\x43onsumableDuration\x12\x0c\n\x04time\x18\x01 \x01(\x02\"\x1e\n\x0eScoreboardData\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\t*=\n\rSessionStatus\x12\x0b\n\x07STARTED\x10\x00\x12\x0c\n\x08\x46INISHED\x10\x01\x12\x11\n\rINVALID_TOKEN\x10\x02*%\n\x0eMovementResult\x12\x06\n\x02OK\x10\x00\x12\x0b\n\x07\x42LOCKED\x10\x01*;\n\x18InteractionRequestAction\x12\t\n\x05START\x10\x00\x12\x14\n\x10SUBMIT_CHALLENGE\x10\x01*D\n\x19InteractionResponseAction\x12\x0b\n\x07SUCCESS\x10\x00\x12\x0b\n\x07\x46\x41ILURE\x10\x01\x12\r\n\tCHALLENGE\x10\x02**\n\x0c\x41\x63tionResult\x12\x0e\n\nSUCCESSFUL\x10\x00\x12\n\n\x06\x46\x41ILED\x10\x01*%\n\x0cTransferMode\x12\x08\n\x04TAKE\x10\x00\x12\x0b\n\x07\x44\x45POSIT\x10\x01\x32\xbb\x0e\n\x05World\x12*\n\x04Ping\x12\r.ledmon.Empty\x1a\x11.ledmon.PingReply\"\x00\x12\x32\n\nPingStream\x12\r.ledmon.Empty\x1a\x11.ledmon.PingReply\"\x00\x30\x01\x12.\n\nGetMapInfo\x12\r.ledmon.Empty\x1a\x0f.ledmon.MapInfo\"\x00\x12;\n\x07Session\x12\x16.ledmon.SessionRequest\x1a\x14.ledmon.SessionReply\"\x00\x30\x01\x12+\n\tKeepAlive\x12\r.ledmon.Empty\x1a\r.ledmon.Empty\"\x00\x12/\n\x08GetState\x12\r.ledmon.Empty\x1a\x12.ledmon.StateReply\"\x00\x12\x37\n\x0eGetStateStream\x12\r.ledmon.Empty\x1a\x12.ledmon.StateReply\"\x00\x30\x01\x12\x38\n\rGetScoreboard\x12\r.ledmon.Empty\x1a\x16.ledmon.ScoreboardData\"\x00\x12\x38\n\x0bMoveForward\x12\r.ledmon.Empty\x1a\x18.ledmon.MovementResponse\"\x00\x12\x39\n\x0cMoveBackward\x12\r.ledmon.Empty\x1a\x18.ledmon.MovementResponse\"\x00\x12\x35\n\x08TurnLeft\x12\r.ledmon.Empty\x1a\x18.ledmon.MovementResponse\"\x00\x12\x36\n\tTurnRight\x12\r.ledmon.Empty\x1a\x18.ledmon.MovementResponse\"\x00\x12\x37\n\nTurnAround\x12\r.ledmon.Empty\x1a\x18.ledmon.MovementResponse\"\x00\x12I\n\x08Interact\x12\x1a.ledmon.InteractionRequest\x1a\x1b.ledmon.InteractionResponse\"\x00(\x01\x30\x01\x12\x34\n\x05\x43raft\x12\x11.ledmon.CraftData\x1a\x16.ledmon.ActionResponse\"\x00\x12H\n\x0fStorageTransfer\x12\x1b.ledmon.StorageTransferData\x1a\x16.ledmon.ActionResponse\"\x00\x12\x33\n\x0bStorageList\x12\r.ledmon.Empty\x1a\x13.ledmon.StorageData\"\x00\x12\x36\n\x08Research\x12\x10.ledmon.ItemInfo\x1a\x16.ledmon.ActionResponse\"\x00\x12\x33\n\x05Scrap\x12\x10.ledmon.ItemInfo\x1a\x16.ledmon.ActionResponse\"\x00\x12@\n\x13GetResearchProgress\x12\r.ledmon.Empty\x1a\x18.ledmon.ResearchProgress\"\x00\x12:\n\x0fListTradeOffers\x12\r.ledmon.Empty\x1a\x16.ledmon.TradeOfferList\"\x00\x12>\n\x10\x43reateTradeOffer\x12\x12.ledmon.TradeOffer\x1a\x14.ledmon.TradeOfferId\"\x00\x12\x42\n\x10\x41\x63\x63\x65ptTradeOffer\x12\x14.ledmon.TradeOfferId\x1a\x16.ledmon.ActionResponse\"\x00\x12\x39\n\x10\x43\x61ncelTradeOffer\x12\x14.ledmon.TradeOfferId\x1a\r.ledmon.Empty\"\x00\x12\x36\n\x0cGetInventory\x12\r.ledmon.Empty\x1a\x15.ledmon.InventoryData\"\x00\x12\x38\n\tEquipItem\x12\x11.ledmon.EquipInfo\x1a\x16.ledmon.ActionResponse\"\x00\x12<\n\x0bUnequipItem\x12\x13.ledmon.UnequipInfo\x1a\x16.ledmon.ActionResponse\"\x00\x12\x31\n\tGetHealth\x12\r.ledmon.Empty\x1a\x13.ledmon.HealthCount\"\x00\x12\x31\n\x06\x41ttack\x12\r.ledmon.Empty\x1a\x16.ledmon.ActionResponse\"\x00\x12\x39\n\x0b\x43onsumeItem\x12\x10.ledmon.ItemInfo\x1a\x16.ledmon.ActionResponse\"\x00\x12M\n\x1eGetRemainingConsumableDuration\x12\r.ledmon.Empty\x1a\x1a.ledmon.ConsumableDuration\"\x00\x12-\n\x04Look\x12\r.ledmon.Empty\x1a\x14.ledmon.LookResponse\"\x00\x62\x06proto3"
9
9
 
10
- pool = Google::Protobuf::DescriptorPool.generated_pool
10
+ pool = ::Google::Protobuf::DescriptorPool.generated_pool
11
11
  pool.add_serialized_file(descriptor_data)
12
12
 
13
13
  module Ledmon
14
14
  Empty = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ledmon.Empty").msgclass
15
+ MapInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ledmon.MapInfo").msgclass
15
16
  EquipInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ledmon.EquipInfo").msgclass
16
17
  UnequipInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ledmon.UnequipInfo").msgclass
17
18
  PingReply = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ledmon.PingReply").msgclass
@@ -28,6 +29,7 @@ module Ledmon
28
29
  HealthCount = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ledmon.HealthCount").msgclass
29
30
  ActionResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ledmon.ActionResponse").msgclass
30
31
  LookResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ledmon.LookResponse").msgclass
32
+ LookTile = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ledmon.LookTile").msgclass
31
33
  LookEntity = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ledmon.LookEntity").msgclass
32
34
  StorageTransferData = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ledmon.StorageTransferData").msgclass
33
35
  StorageData = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ledmon.StorageData").msgclass
@@ -36,6 +38,7 @@ module Ledmon
36
38
  TradeOffer = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ledmon.TradeOffer").msgclass
37
39
  TradeOfferId = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ledmon.TradeOfferId").msgclass
38
40
  ConsumableDuration = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ledmon.ConsumableDuration").msgclass
41
+ ScoreboardData = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ledmon.ScoreboardData").msgclass
39
42
  SessionStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ledmon.SessionStatus").enummodule
40
43
  MovementResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ledmon.MovementResult").enummodule
41
44
  InteractionRequestAction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ledmon.InteractionRequestAction").enummodule
@@ -16,10 +16,12 @@ module Ledmon
16
16
 
17
17
  rpc :Ping, ::Ledmon::Empty, ::Ledmon::PingReply
18
18
  rpc :PingStream, ::Ledmon::Empty, stream(::Ledmon::PingReply)
19
+ rpc :GetMapInfo, ::Ledmon::Empty, ::Ledmon::MapInfo
19
20
  rpc :Session, ::Ledmon::SessionRequest, stream(::Ledmon::SessionReply)
20
21
  rpc :KeepAlive, ::Ledmon::Empty, ::Ledmon::Empty
21
22
  rpc :GetState, ::Ledmon::Empty, ::Ledmon::StateReply
22
23
  rpc :GetStateStream, ::Ledmon::Empty, stream(::Ledmon::StateReply)
24
+ rpc :GetScoreboard, ::Ledmon::Empty, ::Ledmon::ScoreboardData
23
25
  rpc :MoveForward, ::Ledmon::Empty, ::Ledmon::MovementResponse
24
26
  rpc :MoveBackward, ::Ledmon::Empty, ::Ledmon::MovementResponse
25
27
  rpc :TurnLeft, ::Ledmon::Empty, ::Ledmon::MovementResponse
@@ -30,7 +32,7 @@ module Ledmon
30
32
  rpc :StorageTransfer, ::Ledmon::StorageTransferData, ::Ledmon::ActionResponse
31
33
  rpc :StorageList, ::Ledmon::Empty, ::Ledmon::StorageData
32
34
  rpc :Research, ::Ledmon::ItemInfo, ::Ledmon::ActionResponse
33
- rpc :ScrapResearch, ::Ledmon::ItemInfo, ::Ledmon::ActionResponse
35
+ rpc :Scrap, ::Ledmon::ItemInfo, ::Ledmon::ActionResponse
34
36
  rpc :GetResearchProgress, ::Ledmon::Empty, ::Ledmon::ResearchProgress
35
37
  rpc :ListTradeOffers, ::Ledmon::Empty, ::Ledmon::TradeOfferList
36
38
  rpc :CreateTradeOffer, ::Ledmon::TradeOffer, ::Ledmon::TradeOfferId
data/monster.rb.sample CHANGED
@@ -1,7 +1,3 @@
1
- def name
2
- 'ahmed'
3
- end
4
-
5
1
  def avatar
6
2
  "@@@@@
7
3
  @)))@
@@ -42,8 +38,20 @@ def brain
42
38
  when 'j' then
43
39
  attack
44
40
  when 'l' then
45
- entities = look
46
- say "look: #{entities.inspect}"
41
+ tiles = look
42
+
43
+ for col in tiles
44
+ for tile in col
45
+ if tile.entities.size > 0 then
46
+ print "E "
47
+ elsif tile.walkable
48
+ print "_ "
49
+ else
50
+ print "O "
51
+ end
52
+ end
53
+ puts ""
54
+ end
47
55
  else
48
56
  nil
49
57
  end
data/protos/world.proto CHANGED
@@ -6,12 +6,16 @@ service World {
6
6
  rpc Ping (Empty) returns (PingReply) {}
7
7
  rpc PingStream (Empty) returns (stream PingReply) {}
8
8
 
9
+ rpc GetMapInfo (Empty) returns (MapInfo) {}
10
+
9
11
  rpc Session (SessionRequest) returns (stream SessionReply) {}
10
12
  rpc KeepAlive (Empty) returns (Empty) {}
11
13
 
12
14
  rpc GetState (Empty) returns (StateReply) {}
13
15
  rpc GetStateStream (Empty) returns (stream StateReply) {}
14
16
 
17
+ rpc GetScoreboard (Empty) returns (ScoreboardData) {}
18
+
15
19
  rpc MoveForward (Empty) returns (MovementResponse) {}
16
20
  rpc MoveBackward (Empty) returns (MovementResponse) {}
17
21
  rpc TurnLeft (Empty) returns (MovementResponse) {}
@@ -23,7 +27,7 @@ service World {
23
27
  rpc StorageTransfer (StorageTransferData) returns (ActionResponse) {}
24
28
  rpc StorageList (Empty) returns (StorageData) {}
25
29
  rpc Research (ItemInfo) returns (ActionResponse) {}
26
- rpc ScrapResearch (ItemInfo) returns (ActionResponse) {}
30
+ rpc Scrap (ItemInfo) returns (ActionResponse) {}
27
31
  rpc GetResearchProgress (Empty) returns (ResearchProgress) {}
28
32
  rpc ListTradeOffers (Empty) returns (TradeOfferList) {}
29
33
  rpc CreateTradeOffer (TradeOffer) returns (TradeOfferId) {}
@@ -46,6 +50,16 @@ message Empty {
46
50
 
47
51
  }
48
52
 
53
+ message MapInfo {
54
+ int32 width = 1;
55
+ int32 height = 2;
56
+ int32 tilesize = 3;
57
+ int32 spawn_x = 4;
58
+ int32 spawn_y = 5;
59
+ bool fog_enabled = 6;
60
+ string map_image = 7;
61
+ }
62
+
49
63
  message EquipInfo{
50
64
  string item = 1;
51
65
  string slot = 2;
@@ -146,8 +160,15 @@ message ActionResponse {
146
160
  }
147
161
 
148
162
  message LookResponse{
149
- repeated LookEntity entities = 1;
150
- float sleep_time = 2;
163
+ repeated LookTile tiles = 1;
164
+ int32 distance = 2;
165
+ float sleep_time = 3;
166
+ }
167
+ message LookTile{
168
+ bool walkable = 1;
169
+ optional string station = 2;
170
+ repeated LookEntity entities = 3;
171
+ optional string zone = 4;
151
172
  }
152
173
  message LookEntity{
153
174
  string id = 1;
@@ -183,3 +204,6 @@ message TradeOfferId{
183
204
  message ConsumableDuration{
184
205
  float time = 1;
185
206
  }
207
+ message ScoreboardData{
208
+ string data = 1;
209
+ }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ledmon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ahmed Al Hafoudh