# -*- encoding: utf-8 -*- from ai2.runtime.agent import * from ai2.runtime.mode import is_complete if not is_complete(): ETABLE_NAME = "__exported__" def enable_register4export(): import inspect local = inspect.currentframe().f_back.f_locals local[ETABLE_NAME] = exported = [] def register4export(stuff): exported.append(stuff) return stuff local["register4export"] = register4export class RegisterMeta(type): def __new__(cls, name, bases, dct): del dct["register4export"] for b in bases: blist = getattr(b, ETABLE_NAME, []) dct[ETABLE_NAME] += blist return type.__new__(cls, name, bases, dct) else: def enable_register4export(): import inspect local = inspect.currentframe().f_back.f_locals def register4export(stuff):
import functools import math import random import logging from ai2.runtime.action_agent import \ ActionAgent, enable_register4export from ai2.runtime.mode import is_complete if is_complete(): from PyQt5.QtCore import QPointF import game class FakeTarget(object): def __init__(self, position): if isinstance(position, tuple): self.position = QPointF(position[0], position[1]) * game.UNIT else: self.position = position class NodeState(object): pass enable_register4export() @register4export class TankAgent(ActionAgent):
# -*- encoding: utf-8 -*- from ai2.runtime.agent import * from ai2.runtime.mode import is_complete if not is_complete(): ETABLE_NAME = "__exported__" def enable_register4export(): import inspect local = inspect.currentframe().f_back.f_locals local[ETABLE_NAME] = exported = [] def register4export(stuff): exported.append(stuff) return stuff local["register4export"] = register4export class RegisterMeta(type): def __new__(cls, name, bases, dct): del dct["register4export"] for b in bases: blist = getattr(b, ETABLE_NAME, []) dct[ETABLE_NAME] += blist return type.__new__(cls, name, bases, dct) else: def enable_register4export(): import inspect local = inspect.currentframe().f_back.f_locals
import functools import math import random import logging from ai2.runtime.action_agent import ActionAgent, enable_register4export from ai2.runtime.mode import is_complete if is_complete(): from PyQt5.QtCore import QPointF import game class FakeTarget(object): def __init__(self, position): if isinstance(position, tuple): self.position = QPointF(position[0], position[1]) * game.UNIT else: self.position = position class NodeState(object): pass enable_register4export() @register4export class TankAgent(ActionAgent): logger = logging.getLogger("TankAgent")