Mercurial > fujo
changeset 77:64c1e6599e37
items are now things
| author | Radomir Dopieralski <sheep-devel@sheep.art.pl> |
|---|---|
| date | Sat, 04 Jan 2014 14:26:31 +0100 |
| parents | ee5acbf5df18 |
| children | 3378cbc5b79c |
| files | fujo/items.py fujo/level.py fujo/things.py |
| diffstat | 3 files changed, 36 insertions(+), 57 deletions(-) [+] |
line wrap: on
line diff
--- a/fujo/items.py Sat Jan 04 13:59:00 2014 +0100 +++ b/fujo/items.py Sat Jan 04 14:26:31 2014 +0100 @@ -4,13 +4,28 @@ import random from . import window -from . import saves +from . import things -class Item(saves.Saveable): +class Item(things.Thing): action = "Use" looks = 1 - kinds = {} + is_item = True + + def __init__(self): + super(Item, self).__init__() + self.picked_up = False + self.dy = 0 + + def update(self, display): + if self.picked_up: + if self.dy == 0: + self.image = self.image.copy() + self.dy -= 1 + self.rect.move_ip(0, self.dy) + self.image.set_alpha(255 + 50 * self.dy) + if self.dy < -4: + self.kill() def get_name(self): return self.name
--- a/fujo/level.py Sat Jan 04 13:59:00 2014 +0100 +++ b/fujo/level.py Sat Jan 04 14:26:31 2014 +0100 @@ -118,7 +118,7 @@ mob.item_picked(self, thing) del self.things[thing.pos] thing.picked_up = True - return thing.item() + return thing def populate(self): self.empty = [] @@ -135,26 +135,26 @@ boss = mobs.Boss() self.place_mob(boss, self.empty.pop()) for i in xrange(2): - kind = random.choice(items.FOOD) - self.place_thing(things.Item(kind), self.empty.pop()) + item = random.choice(items.FOOD)() + self.place_thing(item, self.empty.pop()) for i in xrange(4): - kind = random.choice(items.WEAPONS) - self.place_thing(things.Item(kind), self.empty.pop()) + item = random.choice(items.WEAPONS)() + self.place_thing(item, self.empty.pop()) for i in xrange(2): - kind = random.choice(items.ARMOR) - self.place_thing(things.Item(kind), self.empty.pop()) + item = random.choice(items.ARMOR)() + self.place_thing(item, self.empty.pop()) else: self.place_thing(things.Ladder(), self.empty.pop()) for i in xrange(3 + 5 * self.depth): Monster = random.choice(monsters) self.place_mob(Monster(), self.empty.pop()) for i in xrange(10 - 2 * self.depth): - kind = random.choice(items.ITEMS) - self.place_thing(things.Item(kind), self.empty.pop()) + item = random.choice(items.ITEMS)() + self.place_thing(item, self.empty.pop()) for i in xrange(2): # Guaranteed food. - kind = random.choice(items.FOOD) - self.place_thing(things.Item(kind), self.empty.pop()) + item = random.choice(items.FOOD)() + self.place_thing(item, self.empty.pop()) for i in xrange(12): self.place_thing(random.choice(things.DEBRIS)(), self.empty.pop())
--- a/fujo/things.py Sat Jan 04 13:59:00 2014 +0100 +++ b/fujo/things.py Sat Jan 04 14:26:31 2014 +0100 @@ -7,7 +7,6 @@ from .resources import RES from . import saves -from . import items class Shadow(pygame.sprite.Sprite): @@ -36,7 +35,7 @@ def __init__(self): super(Thing, self).__init__() - self.image = RES.things[self.frame] + self.image = RES.things[self.looks] self.rect = self.image.get_rect() self.pos = None @@ -58,68 +57,33 @@ @Thing.register -class Item(Thing): - frame = 1 - is_item = True - - def __init__(self, item=None): - if item is not None: - self.item = item - self.frame = item.looks - self.picked_up = False - self.dy = 0 - super(Item, self).__init__() - - def update(self, display): - if self.picked_up: - if self.dy == 0: - self.image = self.image.copy() - self.dy -= 1 - self.rect.move_ip(0, self.dy) - self.image.set_alpha(255 + 50 * self.dy) - if self.dy < -4: - self.kill() - - def save(self): - data = super(Item, self).save() - data['item'] = self.item.__name__ - return data - - def load(self, data): - super(Item, self).load(data) - self.item = items.Item.kinds[data['item']] - self.frame = self.item.looks - self.image = RES.things[self.frame] - - -@Thing.register class Ladder(Thing): - frame = 2 + looks = 2 is_exit = True @Thing.register class Hole(Thing): - frame = 3 + looks = 3 @Thing.register class SmallBush(Thing): - frame = 4 + looks = 4 @Thing.register class Bush(Thing): - frame = 5 + looks = 5 @Thing.register class Rocks(Thing): - frame = 6 + looks = 6 @Thing.register class Stones(Thing): - frame = 7 + looks = 7 DEBRIS = [Bush, SmallBush, Rocks, Stones]
