Пример #1
0
    def unset_skill(self, skill):
        skills = convert(self.learned_skills)
        skillset = convert(self.skillset)

        skillset.pop(skillset.index(skill.skill_id))
        self.skillset = str(skillset)
        self.save()
Пример #2
0
    def set_skill(self, skill):
        skills = convert(self.learned_skills)
        skillset = convert(self.skillset)

        skillset.append(skill.skill_id)
        self.skillset = str(skillset)
        self.save()
Пример #3
0
    def lv_up(self):
        """
        Levels up a member, if possible.
        """
        while self.messages >= self.next_lv and self.lv < config.MAXIMUM_LV:
            self.lv += 1
            self.next_lv = next_lv(self.lv)

            self.max_hp += randint(10, 50)
            self.max_mp += randint(5, 25)
            self.strength += randint(0, 2)
            self.defense += randint(0, 2)
            self.magic += randint(0, 2)
            self.skill_points += 2

            #pply  maximum restrictions
            if self.max_hp > config.MAXIMUM_HP:
                self.max_hp = config.MAXIMUM_HP

            if self.max_mp > config.MAXIMUM_MP:
                self.max_mp = config.MAXIMUM_MP

            if self.strength > config.MAXIMUM_STATS:
                self.strength = config.MAXIMUM_STATS

            if self.magic > config.MAXIMUM_STATS:
                self.magic = config.MAXIMUM_STATS

            if self.defense > config.MAXIMUM_STATS:
                self.defense = config.MAXIMUM_STATS

            # 50% chance learning a skill on level up

            if choice([True, False]):
                skills_data = read_query(
                    create_db_connection(),
                    DBQueries.select_skill(
                        condition('skill_rank', self.get_skill_rank())))
                new_skill = choice([s[0] for s in skills_data])
                skills = convert(self.learned_skills)

                # skip if member already knows this skill
                if new_skill not in skills:
                    skills.append(new_skill)
                    self.learned_skills = str(skills)

        self.save()
        return self
Пример #4
0
    def reset(self):
        """
        Resets a player to initial stats, keeping only the skill points earned
        before.
        """
        # resets is a list of the last lv(s) player has reseted
        resets = convert(self.resets)
        resets.append(self.lv)

        # calculates the amount skill points to start
        total_sp = sum([lv * 2 for lv in resets])
        self.skill_points = total_sp
        self.resets = str(resets)

        # resets stats and skills
        player = set_base_stats(self)

        return player
Пример #5
0
 def get_resets(self):
     return len(convert(self.resets))
Пример #6
0
 def get_skillset(self):
     """
     Returns a <dict> of <Skill> this player setted for combat.
     """
     skills = [Skill(i) for i in convert(self.skillset)]
     return {skill.name: skill for skill in skills}
Пример #7
0
 def get_skills(self):
     """
     Returns a <dict> of <Skill> this player has learned keyed by skill name.
     """
     skills = [Skill(i) for i in convert(self.learned_skills)]
     return {skill.name: skill for skill in skills}