Mercurial > fife-parpg
comparison demos/rpg/scripts/actors/player.py @ 550:d0282579668c
Added QuestManager. The player can now move from map to map and the state of the quests remains persistent. Both quests the NPC gives you are now completable. Still have to clean up the quest loading code.
Started adding more comments.
author | prock@33b003aa-7bff-0310-803a-e67f0ece8222 |
---|---|
date | Tue, 15 Jun 2010 17:53:20 +0000 |
parents | 8fee2d2286e9 |
children | 3b933753cba8 |
comparison
equal
deleted
inserted
replaced
549:c9113e23b004 | 550:d0282579668c |
---|---|
42 class Player(Actor): | 42 class Player(Actor): |
43 def __init__(self, gamecontroller, layer, playermodelname): | 43 def __init__(self, gamecontroller, layer, playermodelname): |
44 super(Player, self).__init__(gamecontroller, layer, "Player", "player", playermodelname, "player", True) | 44 super(Player, self).__init__(gamecontroller, layer, "Player", "player", playermodelname, "player", True) |
45 self._type = GameObjectTypes["PLAYER"] | 45 self._type = GameObjectTypes["PLAYER"] |
46 | 46 |
47 self._playermodelname = playermodelname | |
48 | |
49 self._actionlistener = PlayerActionListener(self._gamecontroller, self) | 47 self._actionlistener = PlayerActionListener(self._gamecontroller, self) |
50 self._actionlistener.attachActionListener() | 48 self._actionlistener.attachActionListener() |
49 | |
50 self._quests = [] | |
51 | |
52 def serialize(self): | |
53 lvars = super(Player, self).serialize() | |
54 | |
55 activequests = "" | |
56 | |
57 for quest in self._gamecontroller.questmanager.activequests: | |
58 if activequests == "": | |
59 activequests = quest.id | |
60 else: | |
61 activequests = activequests + "," + quest.id | |
62 | |
63 lvars['activequests'] = activequests | |
64 | |
65 completedquests = "" | |
66 | |
67 for quest in self._gamecontroller.questmanager.completedquests: | |
68 if completedquests == "": | |
69 completedquests = quest.id | |
70 else: | |
71 completedquests = completedquests + "," + quest.id | |
72 | |
73 lvars['completedquests'] = completedquests | |
74 | |
75 return lvars | |
76 | |
77 def deserialize(self, valuedict): | |
78 super(Player, self).deserialize(valuedict) | |
79 | |
80 activequests = valuedict['activequests'].split(",") | |
81 | |
82 for questid in activequests: | |
83 self._gamecontroller.questmanager.activateQuestById(questid) | |
84 print "loaded active quest: " + questid | |
85 | |
86 completedquests = valuedict['completedquests'].split(",") | |
87 | |
88 for questid in completedquests: | |
89 self._gamecontroller.questmanager.completeQuestById(questid) | |
90 print "loaded completed quest: " + questid |