Ejemplo n.º 1
0
    def read(self, df):
        """ Given a file descriptor, read in the tilecontent. """

        # We throw an exception because there seems to be an arbitrary
        # number of tilecontents at the end of the map file, and no
        # 'tilecontent count' anywhere.  So we have to just keep loading
        # tilecontents until EOF,
        if (df.eof()):
            raise FirstItemLoadException('Reached EOF')

        # I'd just like to say "wtf" at this coordinate-storing system
        intcoords = df.readint()
        self.x = (intcoords % 100)
        self.y = int(intcoords / 100)

        # ... everything else
        self.description = df.readstr()
        self.extratext = df.readstr()
        self.cur_condition = df.readint()
        self.max_condition = df.readint()
        self.on_empty = df.readuchar()
        self.lock = df.readuchar()
        self.trap = df.readuchar()
        self.slider_loot = df.readshort()
        self.state = df.readuchar()
        self.script = df.readstr()

        # Items
        for num in range(8):
            self.items.append(Item.new(self.book))
            if (self.savegame):
                self.items[num].read(df)
            else:
                self.items[num].item_name = df.readstr()
Ejemplo n.º 2
0
    def read(self, df):
        """ Given a file descriptor, read in the tilecontent. """

        # We throw an exception because there seems to be an arbitrary
        # number of tilecontents at the end of the map file, and no
        # 'tilecontent count' anywhere.  So we have to just keep loading
        # tilecontents until EOF,
        if (df.eof()):
            raise FirstItemLoadException('Reached EOF')

        # I'd just like to say "wtf" at this coordinate-storing system
        intcoords = df.readint()
        self.x = (intcoords % 100)
        self.y = int(intcoords / 100)

        # ... everything else
        self.description = df.readstr().decode('UTF-8')
        self.extratext = df.readstr().decode('UTF-8')
        self.cur_condition = df.readint()
        self.max_condition = df.readint()
        self.on_empty = df.readuchar()
        self.lock = df.readuchar()
        self.trap = df.readuchar()
        self.slider_loot = df.readshort()
        self.state = df.readuchar()
        self.script = df.readstr().decode('UTF-8')

        # Items
        for num in range(8):
            self.items.append(Item.new(self.book))
            if (self.savegame):
                self.items[num].read(df)
            else:
                self.items[num].item_name = df.readstr().decode('UTF-8')
Ejemplo n.º 3
0
    def __init__(self, df):
        self.set_inv_size(10, 7, 2, 4)
        super(B1Character, self).__init__(df)

        # Book 1 specific vars
        self.origin = ""
        self.axiom = ""
        self.classname = ""
        self.weap_alt = Item.new(1)
        self.disease = -1
        self.unknown = B1Unknowns()
Ejemplo n.º 4
0
    def __init__(self, df):
        self.set_inv_size(10, 7, 2, 4)
        super(B1Character, self).__init__(df)

        # Book 1 specific vars
        self.origin = ''
        self.axiom = ''
        self.classname = ''
        self.weap_alt = Item.new(1)
        self.disease = -1
        self.unknown = B1Unknowns()
Ejemplo n.º 5
0
    def tozero(self, x, y):
        """ Zeroes out the object. """
        self.x = x
        self.y = y
        self.description = ''
        self.extratext = ''
        self.lock = 0
        self.trap = 0
        self.state = 0
        self.script = ''

        # Populate Items as well
        for num in range(8):
            self.items.append(Item.new(c.book))
            self.items[num].tozero()

        # Call out to superclass zeroing
        self._sub_tozero()
Ejemplo n.º 6
0
    def read(self, df):
        """ Read our data. """

        df.open_r()
        self.day_stocked = df.readint()
        item_count = df.readint()
        self.gold = df.readint()

        for i in range(item_count):
            item = Item.new(c.book)
            item.read(df)
            self.items.append(item)

        extradata = df.read()
        if len(extradata) > 0:
            raise LoadException('Extra data at end of merchant file')

        df.close()
Ejemplo n.º 7
0
    def tozero(self, x, y):
        """ Zeroes out the object. """
        self.x = x
        self.y = y
        self.description = ''
        self.extratext = ''
        self.lock = 0
        self.trap = 0
        self.state = 0
        self.script = ''

        # Populate Items as well
        for num in range(8):
            self.items.append(Item.new(c.book))
            self.items[num].tozero()

        # Call out to superclass zeroing
        self._sub_tozero()
Ejemplo n.º 8
0
    def read(self, df):
        """ Given a file descriptor, read in the tilecontent. """

        # We throw an exception because there seems to be an arbitrary
        # number of tilecontents at the end of the map file, and no
        # 'tilecontent count' anywhere.  So we have to just keep loading
        # tilecontents until EOF,
        if df.eof():
            raise FirstItemLoadException("Reached EOF")

        # I'd just like to say "wtf" at this coordinate-storing system
        intcoords = df.readint()
        self.x = intcoords % 100
        self.y = int(intcoords / 100)

        # ... everything else
        self.description = df.readstr()
        self.extratext = df.readstr()
        self.zeroi1 = df.readint()
        self.zeroh1 = df.readshort()
        self.sturdiness = df.readuchar()
        self.flags = df.readuchar()
        self.zeroi2 = df.readint()
        self.zeroi3 = df.readint()
        self.lock = df.readuchar()
        self.trap = df.readuchar()
        self.other = df.readuchar()
        self.state = df.readuchar()
        self.unknownh3 = df.readshort()
        self.script = df.readstr()

        # Items
        for num in range(8):
            self.items.append(Item.new(c.book))
            if self.savegame:
                self.items[num].read(df)
            else:
                self.items[num].item_name = df.readstr()
Ejemplo n.º 9
0
    def __init__(self, df):
        """ A fresh object. """

        # self.book = c.book
        self.name = ""
        self.strength = -1
        self.dexterity = -1
        self.endurance = -1
        self.speed = -1
        self.intelligence = -1
        self.wisdom = -1
        self.perception = -1
        self.concentration = -1
        self.skills = {}
        self.maxhp = -1
        self.maxmana = -1
        self.curhp = -1
        self.curmana = -1
        self.experience = -1
        self.level = -1
        self.gold = -1
        self.torches = -1
        self.torchused = -1
        self.readyslots = []
        self.inventory = []
        for i in range(self.inv_rows):
            self.inventory.append([])
            for j in range(self.inv_cols):
                self.inventory[i].append(Item.new(c.book))
        self.readyitems = []
        for i in range(self.ready_rows * self.ready_cols):
            self.readyitems.append(Item.new(c.book))
        self.curinvcol = 0
        self.curinvrow = 0
        self.quiver = Item.new(c.book)
        self.helm = Item.new(c.book)
        self.cloak = Item.new(c.book)
        self.amulet = Item.new(c.book)
        self.torso = Item.new(c.book)
        self.weap_prim = Item.new(c.book)
        self.belt = Item.new(c.book)
        self.gauntlet = Item.new(c.book)
        self.legs = Item.new(c.book)
        self.ring1 = Item.new(c.book)
        self.ring2 = Item.new(c.book)
        self.shield = Item.new(c.book)
        self.feet = Item.new(c.book)
        self.spells = []
        self.orientation = -1
        self.xpos = -1
        self.ypos = -1
        self.fxblock = []
        self.picid = -1
        self.statuses = []
        self.extra_att_points = -1
        self.extra_skill_points = -1
        self.df = df
Ejemplo n.º 10
0
    def __init__(self, df):
        """ A fresh object. """

        #self.book = c.book
        self.name = ''
        self.strength = -1
        self.dexterity = -1
        self.endurance = -1
        self.speed = -1
        self.intelligence = -1
        self.wisdom = -1
        self.perception = -1
        self.concentration = -1
        self.skills = {}
        self.maxhp = -1
        self.maxmana = -1
        self.curhp = -1
        self.curmana = -1
        self.experience = -1
        self.level = -1
        self.gold = -1
        self.torches = -1
        self.torchused = -1
        self.readyslots = []
        self.inventory = []
        for i in range(self.inv_rows):
            self.inventory.append([])
            for j in range(self.inv_cols):
                self.inventory[i].append(Item.new(c.book))
        self.readyitems = []
        for i in range(self.ready_rows * self.ready_cols):
            self.readyitems.append(Item.new(c.book))
        self.curinvcol = 0
        self.curinvrow = 0
        self.quiver = Item.new(c.book)
        self.helm = Item.new(c.book)
        self.cloak = Item.new(c.book)
        self.amulet = Item.new(c.book)
        self.torso = Item.new(c.book)
        self.weap_prim = Item.new(c.book)
        self.belt = Item.new(c.book)
        self.gauntlet = Item.new(c.book)
        self.legs = Item.new(c.book)
        self.ring1 = Item.new(c.book)
        self.ring2 = Item.new(c.book)
        self.shield = Item.new(c.book)
        self.feet = Item.new(c.book)
        self.spells = []
        self.orientation = -1
        self.xpos = -1
        self.ypos = -1
        self.fxblock = []
        self.picid = -1
        self.statuses = []
        self.extra_att_points = -1
        self.extra_skill_points = -1
        self.df = df