Skip to content

Support for CloackedAllied #310

@mboedigh

Description

@mboedigh

all_tests fails because observation implementation cannot convert all cloacked states
I don't know how to make pull request but in sc2_unit.h add new enum CloackedAllied

    //! Unit cloak state.
    enum CloakState {
        //! Cloaked, invisible to enemies until detected.
        Cloaked = 1,
        //! Cloaked enemy, but detected.
        CloakedDetected = 2,
        //! No cloaking.
        NotCloaked = 3,
        //! Cloacked ally, but detected, as always 
        CloackedAllied = 5,
        //! Could not determine cloaking state.
        Unknown = 5,
    };

And in sc2_proto_to_pods.cc add case statement to switch statement and convert the raw observation

bool Convert(const SC2APIProtocol::CloakState& cloak_proto, Unit::CloakState& cloak) {
    switch (cloak_proto) {
        case SC2APIProtocol::CloakState::Cloaked:         cloak = Unit::Cloaked; return true;
        case SC2APIProtocol::CloakState::CloakedDetected: cloak = Unit::CloakedDetected; return true;
        case SC2APIProtocol::CloakState::NotCloaked:      cloak = Unit::NotCloaked; return true;
        case SC2APIProtocol::CloakState::CloakedAllied:   cloak = Unit::CloackedAllied; return true;
        case SC2APIProtocol::CloakState::CloakedUnknown:  cloak = Unit::Unknown; return true;
    }
    return false;
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions