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 +4 -4
- data/Rakefile +1 -5
- data/lib/ledmon/cli/config.rb +9 -0
- data/lib/ledmon/monster/interaction.rb +16 -2
- data/lib/ledmon/version.rb +1 -1
- data/lib/ledmon/world_pb.rb +5 -2
- data/lib/ledmon/world_services_pb.rb +3 -1
- data/monster.rb.sample +14 -6
- data/protos/world.proto +27 -3
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f486209c9291a52c22d5ac6259658baf6f8f2b77e7609e7099580e8eb0004e80
|
4
|
+
data.tar.gz: dad85796e2f2cad916be6aee797ec476f511fdb903e6e5900261ef0a32af8692
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5023ce4213973a097829916d135a60d12f6f961eb21b350f8b4599c903b7713045d6c64225f84bf464a40091ac30b77af7ae931985bc6ead6790fb726a512d87
|
7
|
+
data.tar.gz: 3c9b8c78c402634ff1c6d7e5349317bef2d9a8210d4255906f0dd44810ff0ef1b2f47df96e0c847981c8a55f7028aeb0fe6cca388df3535c2c1179b0aa5a2334
|
data/Rakefile
CHANGED
data/lib/ledmon/cli/config.rb
CHANGED
@@ -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
|
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)
|
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
|
data/lib/ledmon/version.rb
CHANGED
data/lib/ledmon/world_pb.rb
CHANGED
@@ -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\"
|
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 :
|
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
|
-
|
46
|
-
|
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
|
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
|
150
|
-
|
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
|
+
}
|