Exemplo n.º 1
0
 def take_order(self,
                o,
                forget_previous=True,
                imperative=False,
                order_id=None):
     # an imperative "go" order on a unit is an "attack" order
     # note: this could be done by the user interface
     if imperative and o[0] == "go":
         target = self.player.get_object_by_id(o[1])
         if getattr(target, "player", None) is not None:
             o[0] = "attack"
     if self.is_inside:
         self.place.notify("order_impossible")
         return
     cls = ORDERS_DICT.get(o[0])
     if cls is None:
         warning("unknown order: %s", o)
         return
     if not cls.is_allowed(self, *o[1:]):
         self.notify("order_impossible")
         debug("wrong order to %s: %s", self.type_name, o)
         return
     if forget_previous and not cls.never_forget_previous:
         self.cancel_all_orders()
     order = cls(self, o[1:])
     order.id = order_id
     if imperative:
         order.is_imperative = imperative
     order.immediate_action()
Exemplo n.º 2
0
 def take_order(self, o, forget_previous=True, imperative=False, order_id=None):
     if self.is_inside:
         self.place.notify("order_impossible")
         return
     cls = ORDERS_DICT.get(o[0])
     if cls is None:
         warning("unknown order: %s", o)
         return
     if not cls.is_allowed(self, *o[1:]):
         self.notify("order_impossible")
         debug("wrong order to %s: %s", self.type_name, o)
         return
     if forget_previous and not cls.never_forget_previous:
         self.cancel_all_orders()
     order = cls(self, o[1:])
     order.id = order_id
     if imperative:
         order.is_imperative = imperative
     order.immediate_action()
Exemplo n.º 3
0
 def take_order(self, o, forget_previous=True, imperative=False, order_id=None):
     if self.is_inside:
         self.place.notify("order_impossible")
         return
     cls = ORDERS_DICT.get(o[0])
     if cls is None:
         warning("unknown order: %s", o)
         return
     if not cls.is_allowed(self, *o[1:]):
         self.notify("order_impossible")
         debug("wrong order to %s: %s", self.type_name, o)
         return
     if forget_previous and not cls.never_forget_previous:
         self.cancel_all_orders()
     order = cls(self, o[1:])
     order.id = order_id
     if imperative:
         order.is_imperative = imperative
     order.immediate_action()
Exemplo n.º 4
0
from worldorders import ORDERS_DICT
from worldplayerbase import Player

orders = sorted(ORDERS_DICT.keys())  # sort to avoid desync
orders.remove("enter")  # later
orders.remove("stop")
orders.remove("attack")
orders.remove("patrol")
orders.remove("wait")
orders.remove("auto_explore")
orders.remove("auto_attack")
orders.remove("block")
orders.remove("join_group")
orders.remove("cancel_building")
orders.remove("cancel_training")
orders.remove("cancel_upgrading")
orders.remove("rallying_point")


def _id(x):
    return x.id


class Computer2(Player):

    name = ["ai2"]

    def __init__(self, *args, **kargs):
        Player.__init__(self, *args)

    def __repr__(self):
Exemplo n.º 5
0
from worldorders import ORDERS_DICT
from worldplayerbase import Player


orders = sorted(ORDERS_DICT.keys()) # sort to avoid desync
orders.remove("enter") # later
orders.remove("stop")
orders.remove("attack")
orders.remove("patrol")
orders.remove("wait")
orders.remove("auto_explore")
orders.remove("auto_attack")
orders.remove("block")
orders.remove("join_group")
orders.remove("cancel_building")
orders.remove("cancel_training")
orders.remove("cancel_upgrading")
orders.remove("rallying_point")

def _id(x):
    return x.id


class Computer2(Player):

    name = ["ai2"]

    def __init__(self, *args, **kargs):
        Player.__init__(self, *args)

    def __repr__(self):
Exemplo n.º 6
0
def update_orders_list():
    global _orders_list
    # this sorted list of order classes is used when generating the menu
    _orders_list = sorted([_x for _x in ORDERS_DICT.values()
                          if _has_ord_index(_x.keyword)],
                         key=lambda x:_ord_index(x.keyword))
Exemplo n.º 7
0
def update_orders_list():
    global _orders_list
    # this sorted list of order classes is used when generating the menu
    _orders_list = sorted(
        [_x for _x in ORDERS_DICT.values() if _has_ord_index(_x.keyword)],
        key=lambda x: _ord_index(x.keyword))