Exemple #1
0
 def cast(self):
     if (self.cooldown_timer >= self.cooldown):
         self.cooldown_timer = 0
         skill = Skill(self)
         return skill
     else:
         return False
    def closest_skill(self):
        closest = Skill('attack')
        closest_xp_tnl = float('inf')
        for skill in self.skills.values():
            if skill.xp_tnl() < closest_xp_tnl:
                closest_xp_tnl, closest = skill.xp_tnl(), skill

        return closest
    def max_skill(self, method='xp'):
        ninf = -float('inf')
        max_skill = Skill('attack', xp=ninf, rank=ninf)
        for skill in self.skills.values():
            if getattr(skill, method) > getattr(max_skill, method):
                max_skill = skill

        return max_skill
    def min_skill(self, method='xp'):
        inf = float('inf')
        min_skill = Skill('attack', xp=inf, rank=inf)
        for skill in self.skills.values():
            if getattr(skill, method) < getattr(min_skill, method):
                min_skill = skill

        return min_skill
Exemple #5
0
    def max_skill(self, method="xp"):
        ninf = -float("inf")
        max_skill = Skill("attack", xp=ninf, rank=ninf)
        for skill in self.skills.values():
            if getattr(skill, method) > getattr(max_skill, method):
                max_skill = skill

        return max_skill
Exemple #6
0
    def min_skill(self, method="xp"):
        inf = float("inf")
        min_skill = Skill("attack", xp=inf, rank=inf)
        for skill in self.skills.values():
            if getattr(skill, method) < getattr(min_skill, method):
                min_skill = skill

        return min_skill
Exemple #7
0
def main():
    # print ("start")
    pygame.init()
    # print("start init")
    pygame.display.set_caption(Constant.GAME_NAME)
    # print("start caption")
    font = pygame.font.Font(Constant.FONT_NAME, Constant.FONT_SIZE)
    # print("start font")
    screen = pygame.display.set_mode(
        (Constant.SCREEN_WIDTH, Constant.SCREEN_HEIGHT))
    screen.fill(Constant.WHITE)
    villager_images = []

    # load all skill images group them with image name and image object
    skill_images = {(image_file_name.split("/")[-1]).split(".")[0]:
                    pygame.image.load(image_file_name)
                    for image_file_name in Constant.SKILL_IMAGES}
    # print(skill_images.items())
    skills = {}
    debug_print(str(skill_images))
    # load all villager's image, girl and boy
    for image in Constant.VILLAGER_IMAGES:
        villager_images.append(pygame.image.load(image))
    # load player's image
    player_image = pygame.image.load(Constant.PLAYER_IMAGE)
    # load monster's image
    monster_image = pygame.image.load(Constant.MONSTER_IMAGE)
    # set the clock in pygame, so later on we could adjust the Frame Rate Per Second
    clock = pygame.time.Clock()
    # each villager is is a thread to consuming their own JSON data
    villager_connections = []
    # start visualization listening socket
    listener = ConnectionListener(villager_connections)
    listener.daemon = True
    listener.start()
    index = 0
    for skill_name, skill_image in skill_images.items():
        # discard the suffix
        skills[skill_name.split(".")[0]] = Skill(
            skill_name.split(".")[0],
            skill_image,
            Constant.SCREEN_WIDTH -
            (((skill_image.get_rect().size)[0] * Constant.SKILL_IMAGE_SCALE) /
             2),
            50 + index *
            ((skill_image.get_rect().size)[0] * Constant.SKILL_IMAGE_SCALE),
            Constant.SKILL_IMAGE_SCALE,
            applied=False,
            greyed=False)
        index += 1
    player = Player(player_image, Constant.SAGE_POSITION[0],
                    Constant.SAGE_POSITION[1])
    surface = pygame.Surface((Constant.SCREEN_WIDTH, Constant.SCREEN_HEIGHT))
    start_game(screen, font, villager_images, monster_image, skills,
               skill_images, clock, villager_connections, player, surface)
    listener.close_socket()
Exemple #8
0
def set_skills_to_hero(hero, db):
    t = pypika.Table('skills_on_chars')
    q = pypika.Query.from_(t).select('*').where(t.char_ == hero.id).get_sql()
    q = '''SELECT s.id, s.name, s.cost, s.dmg, s.on_self, s.lvl_impr, s.type, s.duration, s.asset FROM skills as s JOIN skills_on_chars as skc on s.id = skc.skill WHERE skc.char_=''' + str(
        hero.id)
    res = db.select(q)

    for r in res:
        hero.skills.append(
            Skill(r[0], r[1], r[2], r[3], r[4], r[5], r[6], r[7],
                  make_pygame_image(r[8])))
Exemple #9
0
 def load(self) -> LoadedSkills:
     skills = list(
         map(
             lambda skill: Skill(
                 skill["id"], skill["name"],
                 list(
                     map(
                         lambda skill_rank: SkillRank(
                             skill_rank["id"], skill_rank["skill"],
                             skill_rank["skillName"], skill_rank["level"]),
                         skill["ranks"]))), self.raw_json))
     return LoadedSkills({skill.id: skill for skill in skills})
Exemple #10
0
 def use_skill(self, index):
     skill_ID = self.skills[index]
     if database(skill_ID, "Name") == "诅咒":
         if "幽灵" in self.系:
             channel = 0
         else:
             channel = 1
     else:
         channel = 0
         self._parent_game.enemy_of(self)
     skill = Skill(self._parent_game, skill_ID, self, channel)
     self._parent_game.send_skill(self, skill)
Exemple #11
0
def create_world():
    global player, tile, background, bullets, portal, mushes, skill, mushskills, restart
    restart = Restart()
    mushes = [Mush() for i in range(5)]
    mushskills = Mushskill()
    skill = Skill()
    portal = Portal()
    player = Player()
    player.life = temp.player_life
    tile = Tile()
    background = Background()
    bullets = list()
    player.x, player.y = 50, 210
 def init_map(self):
     '''Creates members of each species, with 
        random attributes characteristic to each species.
         Places members and resources on the map.'''
     for i in range(self.num_members):
         #Creates members of species user is rooting for.
         skill= Skill(strength=self.user_strength, speed=self.user_speed)
         m = Member(
             draw_fn=self.draw,
             map_obj=self.map_obj,
             skill=skill,
             species_id=0,
             reproduction_chance=BASE_CHANCE//10)
         pos = choice(list(self.pos_set))
         self.pos_set.remove(pos)
         self.map_obj.add(m, pos)
     for i in range(1, self.num_species):
         for j in range(self.num_members):
             skill=Skill(strength=uniform(0,10), speed=uniform(0,3))
             m = Member(
                 draw_fn=self.draw,
                 map_obj=self.map_obj,
                 skill=skill,
                 species_id=i,
                 reproduction_chance=BASE_CHANCE//10)
             pos = choice(list(self.pos_set))
             self.pos_set.remove(pos)
             self.map_obj.add(m, pos)
     for _ in range(self.num_resources):
         r = Resource(
             strength=1+random.random(),
             speed=1+random.random())
         #Add extra types of skills to the resource at random
         if random.random() > 0.75:
             r.add_to_bag()
         pos = choice(list(self.pos_set))
         self.pos_set.remove(pos)
         self.map_obj.add(r, pos)
Exemple #13
0
 def __init__(self):
     # Public properties
     self.name = input('Enter your character name: ')
     self.attack_damage = random.randint(8, 12)
     self.heal_amount = random.randint(8, 12)
     self.max_health = 100
     self.health = self.max_health
     self.max_mana = 50
     self.mana = self.max_mana
     self.level = 1
     self.experience_point = 0
     self.max_experience_point = 100
     self.inventory = Inventory()
     self.skill = Skill(self)
 def __init__(
     self,
     sp_name: str,
     sp_ele_type: str,
     wpn_type: str,
     skills: Sequence[dict],
 ):
     self.sp_name = sp_name
     self.sp_ele_type = sp_ele_type
     self.wpn_type = wpn_type
     self.skills = list(map(lambda skill: Skill(**skill), skills))
     # assert sp_name
     assert (self.wpn_type in ('left', 'right'))
     assert (self.sp_ele_type
             in ('light', 'shadow', 'fire', 'water', 'no-element'))
    def _set_data(self):
        offset = 3  # first three are rank, total level, and total xp

        self.rank, self.total_level, self.total_xp = [
            self._api_response[i] for i in range(offset)
        ]

        self.skills = {}
        for i in range(1, const.SKILLS_AMT + 1):
            index = offset * i
            skill, rank, level, xp = (const.SKILLS[i - 1],
                                      self._api_response[index],
                                      self._api_response[index + 1],
                                      self._api_response[index + 2])

            self.skills[skill] = Skill(skill, rank, level, xp)
Exemple #16
0
    def add_agent(self, idx, agent, verbose=False):
        skills = [
            Skill(_id=skill['id'], exp=skill['exp'], mot=skill['mot'])
            for skill in agent['skillset']
        ]

        mbti = agent['mbti'] if 'mbti' in agent else None
        initial_frustration = agent[
            'initial_frustration'] if 'initial_frustration' in agent else None

        self.agents.append(
            Agent(_id=idx,
                  mbti=mbti,
                  initial_frustration=initial_frustration,
                  skillset=skills,
                  verbose=verbose))
Exemple #17
0
    def add_skill(self, skill_name):
        """
        
        Add skill Object to player's skill list
        
        :param skill_name: str 
         
        """
        skill_num = len(self.skills)
        image = self.skill_images[skill_name]

        # each row render four skill, then go up
        one_skill = Skill(
            skill_name, image, self.x - self.width / 2 -
            ((image.get_rect().size)[0] * Constant.SKILL_IMAGE_SCALE_VILLAGER)
            / 2, (self.y + self.height / 2) - (int(skill_num) * int(
                (image.get_rect().size)[1] *
                Constant.SKILL_IMAGE_SCALE_VILLAGER)),
            Constant.SKILL_IMAGE_SCALE_VILLAGER, False)
        self.skills.append(one_skill)
Exemple #18
0
        print(" --- Result:\n" +
              "\n".join(str(i) for i in self.result.items()))

    def get_winner(self):
        winners = [a for a in self.agents if a.health > 0]

        if len(winners) != 1:
            return None

        return winners[0]

    def print_agents(self):
        s = " --- ".join((str(a) for a in self.agents))
        print(s + (len(s) // 4) * " " + "\r", end="")

    def print_winner(self):
        print("\n\033[31mWinner\033[00m: " + self.get_winner().colored("name"))


if __name__ == "__main__":
    print("Start")

    arena = Arena([
        Agent("Melee", [Skill(damage=100, range=0, cooldown=5, cast_time=1)]),
        Agent("Ranged", [Skill(damage=86, range=100, cooldown=5, cast_time=1)])
    ])

    arena.fight(50)

    print("Done")
Exemple #19
0
 def skills(self):
     my_skills = Skill(self)
     my_skills.show_skills()
Exemple #20
0
    for i, (score, person) in enumerate(role.get_top_applicants()):
        decision = "Deny"
        if i < open:
            decision = "Accept"
            role.accept(person)
        else:
            role.deny(person)
        print("{} {} {} for {}".format(decision, score, person, role))

    print('\n')


projects: List[Project] = []

julius_caesar = Person("Julius", "Caesar")
julius_caesar.update_acquired_skill(Skill(Skills.Leadership.name, 6))
julius_caesar.update_acquired_skill(Skill(Skills.Martial.name, 6))
julius_caesar.update_acquired_skill(Skill(Skills.Charisma.name, 7))

julius_caesar.update_desired_skill(Skill(Skills.Administration.name, 5))
julius_caesar.update_desired_skill(Skill(Skills.Financial.name, 5))
julius_caesar.update_desired_skill(Skill(Skills.Martial.name, 8))
julius_caesar.print_profile()

markus_crassus = Person("Markus", "Crassus")
markus_crassus.update_acquired_skill(Skill(Skills.Leadership.name, 6))
markus_crassus.update_acquired_skill(Skill(Skills.Financial.name, 8))
markus_crassus.update_acquired_skill(Skill(Skills.Administration.name, 8))

markus_crassus.update_desired_skill(Skill(Skills.Martial.name, 6))
markus_crassus.update_desired_skill(Skill(Skills.Charisma.name, 6))
Exemple #21
0
def _parse_skills(skill_1_name, skill_1_level, skill_2_name, skill_2_level):
    skills = [Skill(skill_1_name, int(skill_1_level))]
    if skill_2_name != "":
        skills.append(Skill(skill_2_name, int(skill_2_level)))
    return skills