Пример #1
0
    def __init__(self, uid, pos, name):
        # Unique ID associated with character
        self.uid = uid
        self.pos = pos
        self.name = name

        self.player = None
        self.game = None

        self.health = maxHealth

        self.vel = [0.0, 0.0]
        # Velocity delta
        self.velDel = [1.5, 1.5]
        self.velMax = [10, 10]
        # How much the velocity retains per frame
        self.velRed = [0.8, 0.8]

        self.width = width
        self.height = height
        self.setRect()

        self.mainAbility = Ability(0.5)
        self.reallySmallNumber = 0.0001
        self.inputManager = InputManager()
Пример #2
0
    def init_abilities(self):
        self.abilities = []

        # Fleche
        self.abilities.append(
            Ability.Ability({
                "name": "Fleche",
                "potency": 440,
                "recast": 2500,
                "weave_cost": 1,
            }))

        # Contre Sixte
        self.abilities.append(
            Ability.Ability({
                "name": "Contre Sixte",
                "potency": 400,
                "recast": 3500,
                "weave_cost": 1,
            }))

        # Corps-a-corps
        self.abilities.append(
            Ability.Ability({
                "name": "Corps-a-corps",
                "potency": 130,
                "recast": 4000,
                "weave_cost": 1,
            }))

        # Engagement
        self.abilities.append(
            Ability.Ability({
                "name": "Engagement",
                "potency": 150,
                "recast": 3500,
                "weave_cost": 1,
            }))

        # Displacement
        self.abilities.append(
            Ability.Ability({
                "name": "Displacement",
                "potency": 200,
                "recast": 3500,
                "weave_cost": 2,
            }))
Пример #3
0
	def __init__(self):
		yaml_path = 'config/airplane_1_alpha.yaml'
		self.rooms = {}
		self.abilities = []
		self.ability_dict = {}
		self.enemies = {}
		room_data = yaml.load_all( open(yaml_path, 'r') )
	
		### Load map data
		print "Loading map file..."
		for d in room_data:
			newroom = Room()
			newroom.setDescription(d['description'])
			directional_descs = [d['look_north'], d['look_south'], d['look_east'], d['look_west']]
			newroom.setDirectionalDescriptions(directional_descs)
			## Check for alt descriptions
			if 'look_alt_north' in d.keys():
				newroom.setAltDesc('north', d['look_alt_north'])	
				newroom.setAltDescBool('north', False)
			if 'look_alt_south' in d.keys():
				newroom.setAltDesc('south', d['look_alt_south'])	
				newroom.setAltDescBool('south', False)	
			if 'look_alt_east' in d.keys():
				newroom.setAltDesc('east', d['look_alt_east'])	
				newroom.setAltDescBool('east', False)	
			if 'look_alt_west' in d.keys():
				newroom.setAltDesc('west', d['look_alt_west'])	
				newroom.setAltDescBool('west', False)
			moves = [d['north'], d['south'], d['east'], d['west']]
			newroom.setDirectionalMoves(moves)
			self.rooms[(d['x'],d['y'])] = newroom
			room_items = []
			for item in d['items']:
				new_obj = InteractiveObject()
				new_obj.setName(item['name'])
				new_obj.setItems(item['item_list'])
				new_obj.setUnlockItems(item['unlock_item'])
				if len(new_obj.getUnlockItems()) > 0:
					new_obj.setUnlockText(item['unlock_text'])
				new_obj.setKeywords(item['keyword'])
				new_obj.setDirectionToChange(item['map_side_to_change'])
				new_obj.setExamineText(item['examine_text'])
				new_obj.setEquippable(item['equippable'])
				if new_obj.getEquippable():
					new_obj.setStrength(item['strength'])
					new_obj.setIntellect(item['intellect'])
				# Alt text to change
				if 'alt_text_dir' in item.keys():
					new_obj.setAltDescDirection(item['alt_text_dir'])	
				## Droppable items, if any
				d_items = []
				for d_item in item['droppable_items']:
					d_obj = InteractiveObject()
					d_obj.setName(d_item['name'])
					d_obj.setItems(d_item['item_list'])
					d_obj.setUnlockItems(d_item['unlock_item'])
					if len(d_obj.getUnlockItems()) > 0:
						d_obj.setUnlockText(d_item['unlock_text'])
					d_obj.setKeywords(d_item['keyword'])
					d_obj.setDirectionToChange(d_item['map_side_to_change'])
					d_obj.setExamineText(d_item['examine_text'])
					d_obj.setEquippable(d_item['equippable'])
					if d_obj.getEquippable():
						d_obj.setStrength(d_item['strength'])
						d_obj.setIntellect(d_item['intellect'])
					d_items.append(d_obj)
				new_obj.setDroppableItems(d_items)
				room_items.append(new_obj)		
			newroom.setItems(room_items)
			newroom.setEnemies(d['enemies'])
		print "Map file loaded!"
	
		### Load ability data	
		ability_yaml_path = 'config/ability_bank.yaml'
		ability_data = yaml.load_all( open(ability_yaml_path, 'r') )
		for a in ability_data:
			new_a = Ability()
			new_a.setName(a['name'])
			new_a.setLevelReq(a['level_req'])
			new_a.setDamage(a['damage'])
			new_a.setForPlayer(a['for_player'])
			self.ability_dict[a['id']] = new_a
			#self.abilities.append(new_a)

		### Load enemy data
		enemy_yaml = 'config/enemies.yaml'
		enemy_data = yaml.load_all( open(enemy_yaml, 'r') )
		for e in enemy_data:
			new_e = Enemy()
			id = e['id']
			#new_e.setPos((e['x'], e['y']))
			new_e.setName(e['name'])
			new_e.setHP(e['hp'])	
			new_e.setMP(e['mp'])
			new_e.setXP(e['xp'])
			for a_id in e['abilities']:
				new_e.addAbility(self.ability_dict[a_id])
			self.enemies[id] = new_e
Пример #4
0
	def __init__(self):
		self.abilities = []
		self.inventory = []
		self.equipped = []
		self.strength = 0
		self.intellect = 0
		self.hp = 100
		self.mp = 100
		self.pos = (0,0)
		self.xp = 0
		self.next_level_xp = 100
		self.level = 1

		### Load player abilities
		### Load ability data   
		ability_yaml_path = 'config/player_abilities.yaml'
		ability_data = yaml.load_all( open(ability_yaml_path, 'r') )
		for a in ability_data:
			new_a = Ability()
			new_a.setName(a['name'])
			new_a.setDescription(a['description'])
			new_a.setLevelReq(a['level_req'])
			new_a.setDamage(a['damage'])
			new_a.setForPlayer(a['for_player'])
			self.abilities.append(new_a)
Пример #5
0
class ServerCharacter:
    def __init__(self, uid, pos, name):
        # Unique ID associated with character
        self.uid = uid
        self.pos = pos
        self.name = name

        self.player = None
        self.game = None

        self.health = maxHealth

        self.vel = [0.0, 0.0]
        # Velocity delta
        self.velDel = [1.5, 1.5]
        self.velMax = [10, 10]
        # How much the velocity retains per frame
        self.velRed = [0.8, 0.8]

        self.width = width
        self.height = height
        self.setRect()

        self.mainAbility = Ability(0.5)
        self.reallySmallNumber = 0.0001
        self.inputManager = InputManager()

    def update(self):
        self.vel[0] *= self.velRed[0]
        self.vel[1] *= self.velRed[1]

        if self.inputManager.moveUp:
            self.vel[1] -= self.velDel[1]
        if self.inputManager.moveLeft:
            self.vel[0] -= self.velDel[0]
        if self.inputManager.moveDown:
            self.vel[1] += self.velDel[1]
        if self.inputManager.moveRight:
            self.vel[0] += self.velDel[0]

        if abs(self.vel[0]) > self.velMax[0]:
            if self.vel[0] < 0:
                self.vel[0] = -self.velMax[0]
            else:
                self.vel[0] = self.velMax[0]
        if abs(self.vel[1]) > self.velMax[1]:
            if self.vel[1] < 0:
                self.vel[1] = -self.velMax[1]
            else:
                self.vel[1] = self.velMax[1]

        self.pos[0] += self.vel[0]
        self.pos[1] += self.vel[1]

        if self.inputManager.mainAbility:
            if self.mainAbility.ready():
                self.game.spawnProjectile(self, self.inputManager.mousePos)

        self.inputManager.clear()

    def applyDamage(self, damage):
        self.health -= damage

    def setRect(self):
        self.rect = pygame.Rect(self.pos[0] - self.width / 2.0,
                                self.pos[1] - self.height / 2.0, self.width,
                                self.height)