Top

sc2.power_source module

from .position import Point2

class PowerSource:
    @classmethod
    def from_proto(cls, proto):
        return cls(
            Point2.from_proto(proto.pos),
            proto.radius,
            proto.tag
        )

    def __init__(self, position, radius, unit_tag):
        assert isinstance(position, Point2)
        assert radius > 0
        self.position = position
        self.radius = radius
        self.unit_tag = unit_tag

    def covers(self, position):
        return self.position.distance_to(position) <= self.radius

    def __repr__(self):
        return f"PowerSource({self.position}, {self.radius})"

class PsionicMatrix:
    @classmethod
    def from_proto(cls, proto):
        return cls([PowerSource.from_proto(p) for p in proto])

    def __init__(self, sources):
        self.sources = sources

    def covers(self, position):
        return any(source.covers(position) for source in self.sources)

Classes

class PowerSource

class PowerSource:
    @classmethod
    def from_proto(cls, proto):
        return cls(
            Point2.from_proto(proto.pos),
            proto.radius,
            proto.tag
        )

    def __init__(self, position, radius, unit_tag):
        assert isinstance(position, Point2)
        assert radius > 0
        self.position = position
        self.radius = radius
        self.unit_tag = unit_tag

    def covers(self, position):
        return self.position.distance_to(position) <= self.radius

    def __repr__(self):
        return f"PowerSource({self.position}, {self.radius})"

Ancestors (in MRO)

Static methods

def __init__(

self, position, radius, unit_tag)

Initialize self. See help(type(self)) for accurate signature.

def __init__(self, position, radius, unit_tag):
    assert isinstance(position, Point2)
    assert radius > 0
    self.position = position
    self.radius = radius
    self.unit_tag = unit_tag

def covers(

self, position)

def covers(self, position):
    return self.position.distance_to(position) <= self.radius

Instance variables

var position

var radius

var unit_tag

Methods

def from_proto(

cls, proto)

@classmethod
def from_proto(cls, proto):
    return cls(
        Point2.from_proto(proto.pos),
        proto.radius,
        proto.tag
    )

class PsionicMatrix

class PsionicMatrix:
    @classmethod
    def from_proto(cls, proto):
        return cls([PowerSource.from_proto(p) for p in proto])

    def __init__(self, sources):
        self.sources = sources

    def covers(self, position):
        return any(source.covers(position) for source in self.sources)

Ancestors (in MRO)

Static methods

def __init__(

self, sources)

Initialize self. See help(type(self)) for accurate signature.

def __init__(self, sources):
    self.sources = sources

def covers(

self, position)

def covers(self, position):
    return any(source.covers(position) for source in self.sources)

Instance variables

var sources

Methods

def from_proto(

cls, proto)

@classmethod
def from_proto(cls, proto):
    return cls([PowerSource.from_proto(p) for p in proto])