sc2ai 0.1.0 → 0.2.0

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.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/data/sc2ai/protocol/common.proto +1 -1
  3. data/data/sc2ai/protocol/data.proto +4 -1
  4. data/data/sc2ai/protocol/debug.proto +5 -1
  5. data/data/sc2ai/protocol/error.proto +2 -1
  6. data/data/sc2ai/protocol/query.proto +1 -1
  7. data/data/sc2ai/protocol/raw.proto +8 -6
  8. data/data/sc2ai/protocol/sc2api.proto +21 -7
  9. data/data/sc2ai/protocol/score.proto +2 -1
  10. data/data/sc2ai/protocol/spatial.proto +2 -1
  11. data/data/sc2ai/protocol/ui.proto +4 -1
  12. data/lib/docker_build/Dockerfile.ruby +4 -2
  13. data/lib/sc2ai/api/ability_id.rb +6 -1
  14. data/lib/sc2ai/api/data.rb +15 -0
  15. data/lib/sc2ai/api/tech_tree.rb +1 -1
  16. data/lib/sc2ai/api/tech_tree_data.rb +54 -3
  17. data/lib/sc2ai/connection.rb +0 -1
  18. data/lib/sc2ai/overrides/async/process/child.rb +1 -1
  19. data/lib/sc2ai/player/debug.rb +36 -2
  20. data/lib/sc2ai/player/geo.rb +2 -2
  21. data/lib/sc2ai/player/units.rb +25 -1
  22. data/lib/sc2ai/player.rb +2 -7
  23. data/lib/sc2ai/ports.rb +0 -1
  24. data/lib/sc2ai/protocol/_meta_documentation.rb +249 -4
  25. data/lib/sc2ai/protocol/common_pb.rb +2 -23
  26. data/lib/sc2ai/protocol/data_pb.rb +2 -23
  27. data/lib/sc2ai/protocol/debug_pb.rb +2 -24
  28. data/lib/sc2ai/protocol/error_pb.rb +2 -23
  29. data/lib/sc2ai/protocol/extensions/point_2_d.rb +4 -0
  30. data/lib/sc2ai/protocol/extensions/position.rb +1 -1
  31. data/lib/sc2ai/protocol/extensions/unit.rb +44 -3
  32. data/lib/sc2ai/protocol/extensions/unit_type_data.rb +8 -0
  33. data/lib/sc2ai/protocol/query_pb.rb +2 -24
  34. data/lib/sc2ai/protocol/raw_pb.rb +2 -24
  35. data/lib/sc2ai/protocol/sc2api_pb.rb +2 -31
  36. data/lib/sc2ai/protocol/score_pb.rb +2 -23
  37. data/lib/sc2ai/protocol/spatial_pb.rb +2 -24
  38. data/lib/sc2ai/protocol/ui_pb.rb +2 -23
  39. data/lib/sc2ai/unit_group/filter_ext.rb +16 -1
  40. data/lib/sc2ai/version.rb +1 -1
  41. data/lib/templates/new/.ladderignore +15 -5
  42. data/lib/templates/new/my_bot.rb.tt +1 -1
  43. data/sig/minaswan.rbs +10323 -0
  44. data/sig/sc2ai.rbs +376 -34
  45. metadata +12 -12
  46. data/lib/sc2ai/protocol/extensions/unit_type.rb +0 -9
data/sig/sc2ai.rbs CHANGED
@@ -377,28 +377,8 @@ module Sc2
377
377
  # _@see_ `#join_game` — for options
378
378
  attr_accessor interface_options: ::Hash[untyped, untyped]
379
379
 
380
- # sord warn - Api::Race::NoRace wasn't able to be resolved to a constant in this project
381
- # sord warn - Api::Race::Terran wasn't able to be resolved to a constant in this project
382
- # sord warn - Api::Race::Zerg wasn't able to be resolved to a constant in this project
383
- # sord warn - Api::Race::Protoss wasn't able to be resolved to a constant in this project
384
- # sord warn - Api::Race::Random wasn't able to be resolved to a constant in this project
385
- # sord warn - Api::Race::NoRace wasn't able to be resolved to a constant in this project
386
- # sord warn - Api::Race::Terran wasn't able to be resolved to a constant in this project
387
- # sord warn - Api::Race::Zerg wasn't able to be resolved to a constant in this project
388
- # sord warn - Api::Race::Protoss wasn't able to be resolved to a constant in this project
389
- # sord warn - Api::Race::Random wasn't able to be resolved to a constant in this project
390
- # _@return_ — if Observer
391
- #
392
- # _@return_ — if is_a? Bot, Human, BotProcess
393
- #
394
- # _@return_ — if is_a? Bot, Human, BotProcess
395
- #
396
- # _@return_ — if is_a? Bot, Human, BotProcess
397
- #
398
- # _@return_ — if specified random and in-game race hasn't been scouted yet
399
- #
400
- # _@return_ — if is_a? forgetful person
401
- attr_accessor race: (Api::Race::NoRace | Api::Race::Terran | Api::Race::Zerg | Api::Race::Protoss | Api::Race::Random)?
380
+ # _@return_ Api::Race enum
381
+ attr_accessor race: Integer
402
382
 
403
383
  # _@return_ — in-game name
404
384
  attr_accessor name: String
@@ -690,6 +670,35 @@ module Sc2
690
670
  # _@param_ `color` — default white
691
671
  def debug_draw_sphere: (point: Api::Point, ?radius: Float, ?color: Api::Color?) -> void
692
672
 
673
+ # sord warn - Api::Position wasn't able to be resolved to a constant in this project
674
+ # sord omit - no YARD return type given, using untyped
675
+ # Renders a block on the floor, drawn by 4 lines
676
+ # Pass in either a pos (Position/Unit) or exact x * y coordinates
677
+ # Optional indentation adds padding on borders inward
678
+ #
679
+ # _@param_ `pos`
680
+ #
681
+ # _@param_ `x`
682
+ #
683
+ # _@param_ `y`
684
+ #
685
+ # _@param_ `color`
686
+ #
687
+ # _@param_ `indent` — default 0.05. should be lower than < 1.0
688
+ #
689
+ # ```ruby
690
+ # debug_tile(x: 12.3, y: 4.56, color: Api::Color.new(r: 255, g: 0, b: 0))
691
+ # debug_tile(some_unit)
692
+ # debug_tile(some_unit.pos)
693
+ # ```
694
+ def debug_tile: (
695
+ ?(Api::Unit | Api::Position)? pos,
696
+ ?x: (Float | Integer)?,
697
+ ?y: (Float | Integer)?,
698
+ ?color: Api::Color?,
699
+ ?indent: Float
700
+ ) -> untyped
701
+
693
702
  # Possible values:
694
703
  # Api::DebugGameState::Show_map
695
704
  # Api::DebugGameState::Control_enemy
@@ -1733,6 +1742,35 @@ module Sc2
1733
1742
  # _@param_ `color` — default white
1734
1743
  def debug_draw_sphere: (point: Api::Point, ?radius: Float, ?color: Api::Color?) -> void
1735
1744
 
1745
+ # sord warn - Api::Position wasn't able to be resolved to a constant in this project
1746
+ # sord omit - no YARD return type given, using untyped
1747
+ # Renders a block on the floor, drawn by 4 lines
1748
+ # Pass in either a pos (Position/Unit) or exact x * y coordinates
1749
+ # Optional indentation adds padding on borders inward
1750
+ #
1751
+ # _@param_ `pos`
1752
+ #
1753
+ # _@param_ `x`
1754
+ #
1755
+ # _@param_ `y`
1756
+ #
1757
+ # _@param_ `color`
1758
+ #
1759
+ # _@param_ `indent` — default 0.05. should be lower than < 1.0
1760
+ #
1761
+ # ```ruby
1762
+ # debug_tile(x: 12.3, y: 4.56, color: Api::Color.new(r: 255, g: 0, b: 0))
1763
+ # debug_tile(some_unit)
1764
+ # debug_tile(some_unit.pos)
1765
+ # ```
1766
+ def debug_tile: (
1767
+ ?(Api::Unit | Api::Position)? pos,
1768
+ ?x: (Float | Integer)?,
1769
+ ?y: (Float | Integer)?,
1770
+ ?color: Api::Color?,
1771
+ ?indent: Float
1772
+ ) -> untyped
1773
+
1736
1774
  # Possible values:
1737
1775
  # Api::DebugGameState::Show_map
1738
1776
  # Api::DebugGameState::Control_enemy
@@ -2482,6 +2520,10 @@ module Sc2
2482
2520
  # Fixes mineral_cost_sum, vespene_cost_sum
2483
2521
  def correct_unit_type_sum: () -> untyped
2484
2522
 
2523
+ # sord omit - no YARD return type given, using untyped
2524
+ # Adds placement_length to units if applicable
2525
+ def decorate_unit_type_placement_length: () -> untyped
2526
+
2485
2527
  # sord warn - Api::AbilityData wasn't able to be resolved to a constant in this project
2486
2528
  # _@return_ — AbilityId => AbilityData
2487
2529
  attr_accessor abilities: (::Hash[Integer, Api::AbilityData] | untyped)
@@ -3592,6 +3634,12 @@ module Sc2
3592
3634
  # ```
3593
3635
  def reject_attribute: ((Integer | ::Array[Integer]) attributes) -> UnitGroup
3594
3636
 
3637
+ # Selects units you own
3638
+ # i.e. @bot.all_units.owned # => Units you own
3639
+ #
3640
+ # _@return_ — workers
3641
+ def owned: () -> Sc2::UnitGroup
3642
+
3595
3643
  # Selects worker units
3596
3644
  #
3597
3645
  # _@return_ — workers
@@ -3653,7 +3701,7 @@ module Sc2
3653
3701
  # Selects only units which do not have orders
3654
3702
  def idle: () -> untyped
3655
3703
 
3656
- # Selects units which have this ability available\
3704
+ # Selects units which have this ability available
3657
3705
  # Queries API if necessary
3658
3706
  #
3659
3707
  # _@param_ `ability_id`
@@ -3661,6 +3709,11 @@ module Sc2
3661
3709
  # _@return_ — units which have the ability available
3662
3710
  def ability_available?: (Integer ability_id) -> UnitGroup
3663
3711
 
3712
+ # Checks whether any unit's first order matches these abilities
3713
+ #
3714
+ # _@param_ `ability_ids` — accepts one or an array of Api::AbilityId
3715
+ def is_performing_ability?: ((Integer | ::Array[Integer]) ability_ids) -> bool
3716
+
3664
3717
  # Selects mineral fields
3665
3718
  #
3666
3719
  # _@return_ — mineral fields
@@ -8462,6 +8515,17 @@ module Api
8462
8515
  # _@return_ — this unit from the previous frame or nil if it wasn't present
8463
8516
  def previous: () -> Api::Unit?
8464
8517
 
8518
+ # Returns whether a unit is alive or not
8519
+ # Useful for cached Unit objects to see if they are still relevant.
8520
+ #
8521
+ # _@return_ — alive
8522
+ def is_alive?: () -> bool
8523
+
8524
+ # Replaces protobuf values with latest from game
8525
+ #
8526
+ # _@return_ — true if refreshed or false unchanged
8527
+ def refresh!: () -> bool
8528
+
8465
8529
  # sord warn - Api::Attribute wasn't able to be resolved to a constant in this project
8466
8530
  # Returns static [Api::UnitTypeData] for a unit
8467
8531
  def attributes: () -> ::Array[Api::Attribute]
@@ -8668,7 +8732,12 @@ module Api
8668
8732
  # _@param_ `target` — optionally check if unit is engaged with specific target
8669
8733
  def is_repairing?: (?target: (Api::Unit | Integer)?) -> bool
8670
8734
 
8671
- # Checks whether the unit has
8735
+ # Checks whether a unit is gathering or returning gathered minerals/gas
8736
+ #
8737
+ # _@return_ — true if either gathering or returning, false otherwise
8738
+ def is_harvesting?: () -> bool
8739
+
8740
+ # Checks whether a unit's first order for ability
8672
8741
  #
8673
8742
  # _@param_ `ability_ids` — accepts one or an array of Api::AbilityId
8674
8743
  def is_performing_ability?: ((Integer | ::Array[Integer]) ability_ids) -> bool
@@ -8772,6 +8841,9 @@ module Api
8772
8841
  # For Terran builds a tech lab add-on on the current structure
8773
8842
  def build_tech_lab: (?queue_command: untyped) -> void
8774
8843
 
8844
+ # sord omit - no YARD return type given, using untyped
8845
+ def target_for_addon_placement: () -> untyped
8846
+
8775
8847
  # sord omit - no YARD return type given, using untyped
8776
8848
  # Warps in unit type at target (location or pylon)
8777
8849
  # Only works if the source is a Warp Gate
@@ -9070,6 +9142,9 @@ module Api
9070
9142
  # sord omit - no YARD type given for "other", using untyped
9071
9143
  def eql?: (untyped other) -> bool
9072
9144
 
9145
+ # Returns self
9146
+ def to_p2d: () -> self
9147
+
9073
9148
  # sord omit - no YARD type given for "z:", using untyped
9074
9149
  # Create a new 3d Point, by adding a y axis.
9075
9150
  def to_3d: (?z: untyped) -> Api::Point
@@ -9663,6 +9738,17 @@ module Api
9663
9738
  # _@return_ — this unit from the previous frame or nil if it wasn't present
9664
9739
  def previous: () -> Api::Unit?
9665
9740
 
9741
+ # Returns whether a unit is alive or not
9742
+ # Useful for cached Unit objects to see if they are still relevant.
9743
+ #
9744
+ # _@return_ — alive
9745
+ def is_alive?: () -> bool
9746
+
9747
+ # Replaces protobuf values with latest from game
9748
+ #
9749
+ # _@return_ — true if refreshed or false unchanged
9750
+ def refresh!: () -> bool
9751
+
9666
9752
  # sord warn - Api::Attribute wasn't able to be resolved to a constant in this project
9667
9753
  # Returns static [Api::UnitTypeData] for a unit
9668
9754
  def attributes: () -> ::Array[Api::Attribute]
@@ -9869,7 +9955,12 @@ module Api
9869
9955
  # _@param_ `target` — optionally check if unit is engaged with specific target
9870
9956
  def is_repairing?: (?target: (Api::Unit | Integer)?) -> bool
9871
9957
 
9872
- # Checks whether the unit has
9958
+ # Checks whether a unit is gathering or returning gathered minerals/gas
9959
+ #
9960
+ # _@return_ — true if either gathering or returning, false otherwise
9961
+ def is_harvesting?: () -> bool
9962
+
9963
+ # Checks whether a unit's first order for ability
9873
9964
  #
9874
9965
  # _@param_ `ability_ids` — accepts one or an array of Api::AbilityId
9875
9966
  def is_performing_ability?: ((Integer | ::Array[Integer]) ability_ids) -> bool
@@ -9973,6 +10064,9 @@ module Api
9973
10064
  # For Terran builds a tech lab add-on on the current structure
9974
10065
  def build_tech_lab: (?queue_command: untyped) -> void
9975
10066
 
10067
+ # sord omit - no YARD return type given, using untyped
10068
+ def target_for_addon_placement: () -> untyped
10069
+
9976
10070
  # sord omit - no YARD return type given, using untyped
9977
10071
  # Warps in unit type at target (location or pylon)
9978
10072
  # Only works if the source is a Warp Gate
@@ -9997,7 +10091,6 @@ module Api
9997
10091
 
9998
10092
  # Protobuf virtual class.
9999
10093
  class UnitTypeData < Google::Protobuf::AbstractMessage
10000
- include Api::UnitTypeExtension
10001
10094
  include Api::UnitTypeDataExtension
10002
10095
  end
10003
10096
 
@@ -10074,19 +10167,261 @@ module Api
10074
10167
  end
10075
10168
 
10076
10169
  # Protobuf virtual enum.
10077
- class Race < Google::Protobuf::AbstractMessage
10170
+ module Race
10171
+ NoRace: untyped
10172
+ Terran: untyped
10173
+ Zerg: untyped
10174
+ Protoss: untyped
10175
+ Random: untyped
10078
10176
  end
10079
10177
 
10080
10178
  # Protobuf virtual enum.
10081
- class PlayerType < Google::Protobuf::AbstractMessage
10179
+ module PlayerType
10180
+ Participant: untyped
10181
+ Computer: untyped
10182
+ Observer: untyped
10082
10183
  end
10083
10184
 
10084
10185
  # Protobuf virtual enum.
10085
- class Difficulty < Google::Protobuf::AbstractMessage
10186
+ module Difficulty
10187
+ VeryEasy: untyped
10188
+ Easy: untyped
10189
+ Medium: untyped
10190
+ MediumHard: untyped
10191
+ Hard: untyped
10192
+ Harder: untyped
10193
+ VeryHard: untyped
10194
+ CheatVision: untyped
10195
+ CheatMoney: untyped
10196
+ CheatInsane: untyped
10086
10197
  end
10087
10198
 
10088
10199
  # Protobuf virtual enum.
10089
- class AIBuild < Google::Protobuf::AbstractMessage
10200
+ module AIBuild
10201
+ RandomBuild: untyped
10202
+ Rush: untyped
10203
+ Timing: untyped
10204
+ Power: untyped
10205
+ Macro: untyped
10206
+ Air: untyped
10207
+ end
10208
+
10209
+ # Protobuf virtual enum.
10210
+ module ActionResult
10211
+ Success: untyped
10212
+ NotSupported: untyped
10213
+ Error: untyped
10214
+ CantQueueThatOrder: untyped
10215
+ Retry: untyped
10216
+ Cooldown: untyped
10217
+ QueueIsFull: untyped
10218
+ RallyQueueIsFull: untyped
10219
+ NotEnoughMinerals: untyped
10220
+ NotEnoughVespene: untyped
10221
+ NotEnoughTerrazine: untyped
10222
+ NotEnoughCustom: untyped
10223
+ NotEnoughFood: untyped
10224
+ FoodUsageImpossible: untyped
10225
+ NotEnoughLife: untyped
10226
+ NotEnoughShields: untyped
10227
+ NotEnoughEnergy: untyped
10228
+ LifeSuppressed: untyped
10229
+ ShieldsSuppressed: untyped
10230
+ EnergySuppressed: untyped
10231
+ NotEnoughCharges: untyped
10232
+ CantAddMoreCharges: untyped
10233
+ TooMuchMinerals: untyped
10234
+ TooMuchVespene: untyped
10235
+ TooMuchTerrazine: untyped
10236
+ TooMuchCustom: untyped
10237
+ TooMuchFood: untyped
10238
+ TooMuchLife: untyped
10239
+ TooMuchShields: untyped
10240
+ TooMuchEnergy: untyped
10241
+ MustTargetUnitWithLife: untyped
10242
+ MustTargetUnitWithShields: untyped
10243
+ MustTargetUnitWithEnergy: untyped
10244
+ CantTrade: untyped
10245
+ CantSpend: untyped
10246
+ CantTargetThatUnit: untyped
10247
+ CouldntAllocateUnit: untyped
10248
+ UnitCantMove: untyped
10249
+ TransportIsHoldingPosition: untyped
10250
+ BuildTechRequirementsNotMet: untyped
10251
+ CantFindPlacementLocation: untyped
10252
+ CantBuildOnThat: untyped
10253
+ CantBuildTooCloseToDropOff: untyped
10254
+ CantBuildLocationInvalid: untyped
10255
+ CantSeeBuildLocation: untyped
10256
+ CantBuildTooCloseToCreepSource: untyped
10257
+ CantBuildTooCloseToResources: untyped
10258
+ CantBuildTooFarFromWater: untyped
10259
+ CantBuildTooFarFromCreepSource: untyped
10260
+ CantBuildTooFarFromBuildPowerSource: untyped
10261
+ CantBuildOnDenseTerrain: untyped
10262
+ CantTrainTooFarFromTrainPowerSource: untyped
10263
+ CantLandLocationInvalid: untyped
10264
+ CantSeeLandLocation: untyped
10265
+ CantLandTooCloseToCreepSource: untyped
10266
+ CantLandTooCloseToResources: untyped
10267
+ CantLandTooFarFromWater: untyped
10268
+ CantLandTooFarFromCreepSource: untyped
10269
+ CantLandTooFarFromBuildPowerSource: untyped
10270
+ CantLandTooFarFromTrainPowerSource: untyped
10271
+ CantLandOnDenseTerrain: untyped
10272
+ AddOnTooFarFromBuilding: untyped
10273
+ MustBuildRefineryFirst: untyped
10274
+ BuildingIsUnderConstruction: untyped
10275
+ CantFindDropOff: untyped
10276
+ CantLoadOtherPlayersUnits: untyped
10277
+ NotEnoughRoomToLoadUnit: untyped
10278
+ CantUnloadUnitsThere: untyped
10279
+ CantWarpInUnitsThere: untyped
10280
+ CantLoadImmobileUnits: untyped
10281
+ CantRechargeImmobileUnits: untyped
10282
+ CantRechargeUnderConstructionUnits: untyped
10283
+ CantLoadThatUnit: untyped
10284
+ NoCargoToUnload: untyped
10285
+ LoadAllNoTargetsFound: untyped
10286
+ NotWhileOccupied: untyped
10287
+ CantAttackWithoutAmmo: untyped
10288
+ CantHoldAnyMoreAmmo: untyped
10289
+ TechRequirementsNotMet: untyped
10290
+ MustLockdownUnitFirst: untyped
10291
+ MustTargetUnit: untyped
10292
+ MustTargetInventory: untyped
10293
+ MustTargetVisibleUnit: untyped
10294
+ MustTargetVisibleLocation: untyped
10295
+ MustTargetWalkableLocation: untyped
10296
+ MustTargetPawnableUnit: untyped
10297
+ YouCantControlThatUnit: untyped
10298
+ YouCantIssueCommandsToThatUnit: untyped
10299
+ MustTargetResources: untyped
10300
+ RequiresHealTarget: untyped
10301
+ RequiresRepairTarget: untyped
10302
+ NoItemsToDrop: untyped
10303
+ CantHoldAnyMoreItems: untyped
10304
+ CantHoldThat: untyped
10305
+ TargetHasNoInventory: untyped
10306
+ CantDropThisItem: untyped
10307
+ CantMoveThisItem: untyped
10308
+ CantPawnThisUnit: untyped
10309
+ MustTargetCaster: untyped
10310
+ CantTargetCaster: untyped
10311
+ MustTargetOuter: untyped
10312
+ CantTargetOuter: untyped
10313
+ MustTargetYourOwnUnits: untyped
10314
+ CantTargetYourOwnUnits: untyped
10315
+ MustTargetFriendlyUnits: untyped
10316
+ CantTargetFriendlyUnits: untyped
10317
+ MustTargetNeutralUnits: untyped
10318
+ CantTargetNeutralUnits: untyped
10319
+ MustTargetEnemyUnits: untyped
10320
+ CantTargetEnemyUnits: untyped
10321
+ MustTargetAirUnits: untyped
10322
+ CantTargetAirUnits: untyped
10323
+ MustTargetGroundUnits: untyped
10324
+ CantTargetGroundUnits: untyped
10325
+ MustTargetStructures: untyped
10326
+ CantTargetStructures: untyped
10327
+ MustTargetLightUnits: untyped
10328
+ CantTargetLightUnits: untyped
10329
+ MustTargetArmoredUnits: untyped
10330
+ CantTargetArmoredUnits: untyped
10331
+ MustTargetBiologicalUnits: untyped
10332
+ CantTargetBiologicalUnits: untyped
10333
+ MustTargetHeroicUnits: untyped
10334
+ CantTargetHeroicUnits: untyped
10335
+ MustTargetRoboticUnits: untyped
10336
+ CantTargetRoboticUnits: untyped
10337
+ MustTargetMechanicalUnits: untyped
10338
+ CantTargetMechanicalUnits: untyped
10339
+ MustTargetPsionicUnits: untyped
10340
+ CantTargetPsionicUnits: untyped
10341
+ MustTargetMassiveUnits: untyped
10342
+ CantTargetMassiveUnits: untyped
10343
+ MustTargetMissile: untyped
10344
+ CantTargetMissile: untyped
10345
+ MustTargetWorkerUnits: untyped
10346
+ CantTargetWorkerUnits: untyped
10347
+ MustTargetEnergyCapableUnits: untyped
10348
+ CantTargetEnergyCapableUnits: untyped
10349
+ MustTargetShieldCapableUnits: untyped
10350
+ CantTargetShieldCapableUnits: untyped
10351
+ MustTargetFlyers: untyped
10352
+ CantTargetFlyers: untyped
10353
+ MustTargetBuriedUnits: untyped
10354
+ CantTargetBuriedUnits: untyped
10355
+ MustTargetCloakedUnits: untyped
10356
+ CantTargetCloakedUnits: untyped
10357
+ MustTargetUnitsInAStasisField: untyped
10358
+ CantTargetUnitsInAStasisField: untyped
10359
+ MustTargetUnderConstructionUnits: untyped
10360
+ CantTargetUnderConstructionUnits: untyped
10361
+ MustTargetDeadUnits: untyped
10362
+ CantTargetDeadUnits: untyped
10363
+ MustTargetRevivableUnits: untyped
10364
+ CantTargetRevivableUnits: untyped
10365
+ MustTargetHiddenUnits: untyped
10366
+ CantTargetHiddenUnits: untyped
10367
+ CantRechargeOtherPlayersUnits: untyped
10368
+ MustTargetHallucinations: untyped
10369
+ CantTargetHallucinations: untyped
10370
+ MustTargetInvulnerableUnits: untyped
10371
+ CantTargetInvulnerableUnits: untyped
10372
+ MustTargetDetectedUnits: untyped
10373
+ CantTargetDetectedUnits: untyped
10374
+ CantTargetUnitWithEnergy: untyped
10375
+ CantTargetUnitWithShields: untyped
10376
+ MustTargetUncommandableUnits: untyped
10377
+ CantTargetUncommandableUnits: untyped
10378
+ MustTargetPreventDefeatUnits: untyped
10379
+ CantTargetPreventDefeatUnits: untyped
10380
+ MustTargetPreventRevealUnits: untyped
10381
+ CantTargetPreventRevealUnits: untyped
10382
+ MustTargetPassiveUnits: untyped
10383
+ CantTargetPassiveUnits: untyped
10384
+ MustTargetStunnedUnits: untyped
10385
+ CantTargetStunnedUnits: untyped
10386
+ MustTargetSummonedUnits: untyped
10387
+ CantTargetSummonedUnits: untyped
10388
+ MustTargetUser1: untyped
10389
+ CantTargetUser1: untyped
10390
+ MustTargetUnstoppableUnits: untyped
10391
+ CantTargetUnstoppableUnits: untyped
10392
+ MustTargetResistantUnits: untyped
10393
+ CantTargetResistantUnits: untyped
10394
+ MustTargetDazedUnits: untyped
10395
+ CantTargetDazedUnits: untyped
10396
+ CantLockdown: untyped
10397
+ CantMindControl: untyped
10398
+ MustTargetDestructibles: untyped
10399
+ CantTargetDestructibles: untyped
10400
+ MustTargetItems: untyped
10401
+ CantTargetItems: untyped
10402
+ NoCalldownAvailable: untyped
10403
+ WaypointListFull: untyped
10404
+ MustTargetRace: untyped
10405
+ CantTargetRace: untyped
10406
+ MustTargetSimilarUnits: untyped
10407
+ CantTargetSimilarUnits: untyped
10408
+ CantFindEnoughTargets: untyped
10409
+ AlreadySpawningLarva: untyped
10410
+ CantTargetExhaustedResources: untyped
10411
+ CantUseMinimap: untyped
10412
+ CantUseInfoPanel: untyped
10413
+ OrderQueueIsFull: untyped
10414
+ CantHarvestThatResource: untyped
10415
+ HarvestersNotRequired: untyped
10416
+ AlreadyTargeted: untyped
10417
+ CantAttackWeaponsDisabled: untyped
10418
+ CouldntReachTarget: untyped
10419
+ TargetIsOutOfRange: untyped
10420
+ TargetIsTooClose: untyped
10421
+ TargetIsOutOfArc: untyped
10422
+ CantFindTeleportLocation: untyped
10423
+ InvalidItemClass: untyped
10424
+ CantFindCancelOrder: untyped
10090
10425
  end
10091
10426
 
10092
10427
  # Adds additional functionality to message object Api::Point2D
@@ -10097,6 +10432,9 @@ module Api
10097
10432
  # sord omit - no YARD type given for "other", using untyped
10098
10433
  def eql?: (untyped other) -> bool
10099
10434
 
10435
+ # Returns self
10436
+ def to_p2d: () -> self
10437
+
10100
10438
  # sord omit - no YARD type given for "z:", using untyped
10101
10439
  # Create a new 3d Point, by adding a y axis.
10102
10440
  def to_3d: (?z: untyped) -> Api::Point
@@ -10114,10 +10452,6 @@ module Api
10114
10452
  end
10115
10453
  end
10116
10454
 
10117
- # Adds additional functionality to message object Api::Unit
10118
- module UnitTypeExtension
10119
- end
10120
-
10121
10455
  # Adds additional functionality to message object Api::PowerSource
10122
10456
  module PowerSourceExtension
10123
10457
  include Sc2::Position
@@ -10288,6 +10622,14 @@ module Api
10288
10622
  #
10289
10623
  # _@return_ — sum of vespene gas costs
10290
10624
  attr_accessor vespene_cost_sum: (Integer | untyped)
10625
+
10626
+ # Length of tiles to build.
10627
+ # i.e. 5 for any Base-type (5x5)
10628
+ # i.e. 3 for Barracks (3x3)
10629
+ # i.e. 2 for Supply Depot (2x2)
10630
+ #
10631
+ # _@return_ — side-length for placement
10632
+ attr_accessor placement_length: (Integer | untyped)
10291
10633
  end
10292
10634
 
10293
10635
  # This module make sure that a read from method ability_id always returns the proper source id
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sc2ai
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dyson Returns
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-09-27 00:00:00.000000000 Z
11
+ date: 2024-11-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: async
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 2.17.0
19
+ version: '2.20'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 2.17.0
26
+ version: '2.20'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: async-websocket
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.3'
61
+ version: '1.4'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.3'
68
+ version: '1.4'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: thor
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -86,28 +86,28 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 0.9.2.1
89
+ version: '0.9'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 0.9.2.1
96
+ version: '0.9'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: numo-linalg
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 0.1.7
103
+ version: '0.1'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 0.1.7
110
+ version: '0.1'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rumale
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -379,7 +379,6 @@ files:
379
379
  - lib/sc2ai/protocol/extensions/position.rb
380
380
  - lib/sc2ai/protocol/extensions/power_source.rb
381
381
  - lib/sc2ai/protocol/extensions/unit.rb
382
- - lib/sc2ai/protocol/extensions/unit_type.rb
383
382
  - lib/sc2ai/protocol/extensions/unit_type_data.rb
384
383
  - lib/sc2ai/protocol/query_pb.rb
385
384
  - lib/sc2ai/protocol/raw_pb.rb
@@ -408,6 +407,7 @@ files:
408
407
  - lib/templates/new/boot.rb.tt
409
408
  - lib/templates/new/my_bot.rb.tt
410
409
  - lib/templates/new/run_example_match.rb.tt
410
+ - sig/minaswan.rbs
411
411
  - sig/sc2ai.rbs
412
412
  homepage: https://sc2ai.pages.dev/
413
413
  licenses:
@@ -425,7 +425,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
425
425
  requirements:
426
426
  - - ">="
427
427
  - !ruby/object:Gem::Version
428
- version: 3.2.5
428
+ version: 3.2.6
429
429
  required_rubygems_version: !ruby/object:Gem::Requirement
430
430
  requirements:
431
431
  - - ">="
@@ -1,9 +0,0 @@
1
- module Api
2
- # Adds additional functionality to message object Api::Unit
3
- module UnitTypeExtension
4
- # def mood
5
- # "Crafty"
6
- # end
7
- end
8
- end
9
- Api::UnitTypeData.prepend Api::UnitTypeExtension