Esempio n. 1
0
    def __init__(self, Game):
        self.Game = Game
        self.level = Game.char.level
	self.hp = 120 + 10 * self.level
        self.name = rand_name()
        self.defense = 5 * self.level
        self.damage = 6  * self.level
        self.target = None
        self.weapon = items.weapon('club', 'wood')
Esempio n. 2
0
 def generate_stock(self):
     self.gold = self.maxgold
     for i in range(random.randrange(5, 15)):
         item = random.randint(0, 1)
         if item == 0:
             weapon = random.choice(items.weapons.keys())
             material = random.choice(items.materials.keys())
             self.inventory.append(items.weapon(weapon, material))
         elif item == 1:
             self.inventory.append(items.health('potion', random.choice(items.potencies.keys())))
Esempio n. 3
0
 def __init__(self, Game):
     self.Game = Game
     self.level = 1
     self.max_hp = 100 + 10 * self.level
     self.hp = self.max_hp
     self.name = None
     self.defense = 10 * self.level
     self.damage = 10 * self.level
     self.target = None
     self.inventory = [items.health('potion', 'weak')]
     self.spells = [spells.fireball('fireball')]
     self.xp = 0
     self.gold = 50
     self.weapon = items.weapon('dagger', 'bronze')
Esempio n. 4
0
def load_items(path):
    item_list = []
    f = open(path+"/items.txt","r")
    data = f.read()
    data = data.split(";")
    if data[len(data)-1] == "\n" or data[len(data)-1] == "\n\n" or data[len(data)-1] == "":
        del data[len(data)-1]
    loaded_items = []
    for item in data:
        item = item.split(":")
        item_list.append(item[1].lower().replace(" ","_").replace("\n",""))
        if item[0].strip("\n") == "consumable":
            vars()[item[1]] = items.consumable(item[1],item[2],item[3],item[4],item[5],item[6])
            loaded_items.append(vars()[item[1]])
        elif item[0].strip("\n") == "weapon":
            vars()[item[1]] = items.weapon(item[1],item[2],item[3],item[4],item[5],item[6])
            loaded_items.append(vars()[item[1]])
        elif item[0].strip("\n") == "quest_item":
            vars()[item[1]] = items.quest_item(item[1],item[2])
            loaded_items.append(vars()[item[1]])
        else:
            print("Error Item:"+item[1]+" not loaded correctly")
    return loaded_items,item_list
Esempio n. 5
0
    def __init__(self, image, position, screen, console):
        self.screen = screen
        src_image = pygame.image.load(image)
        # self.image = src_image.convert()
        self.image = src_image
        self.position = position
        self.health = 100
        self.poisoned = 0
        self.hunger = 100
        self.thirst = 100
        self.alive = True
        self.max_damage = 6
        self.min_damage = 2
        self.actions = 5
        self.weapon = weapon("Bare Hands", dmg=0)
        self.remaining_actions = self.actions
        self.food = []
        self.drink = []
        self.medicine = []
        self.antidote = 0
        self.turn_survd = 1
        self.console = console

        self.position = position
Esempio n. 6
0
    def __init__(self):
        CopperArmor = armor()
        CopperArmor.copperArmor()

        CopperSword = weapon()
        CopperSword.copperSword()

        HealthPotion = buffs()
        HealthPotion.healthPotion()

        self.bareFists = weapon()
        self.bareFists.bareFists()

        self.naked = armor()
        self.naked.naked()

        #Info stats
        self.name = "Jack"
        self.icon = 'CREATE Task Folder\Image Assets\Player_Images\Commoner.png'

        #equip stats
        self.weapon = CopperSword
        self.armor = CopperArmor

        #class stats
        self.profession = "Commoner"

        #hp stats
        self.maxhp = 100
        self.hp = 100

        #attack stats
        self.physical_attack = 5
        self.magic_attack = 5
        self.speed = 5

        #consume stats
        self.stamina = 100
        self.stamina_max = 100
        self.mana = 100
        self.mana_max = 100

        #defense stats
        self.physical_defense = 5
        self.magic_defense = 5

        #resistance stats
        self.fire_resist = 2
        self.poison_resist = 2
        self.water_resist = 2
        self.earth_resist = 2
        self.wind_resist = 2

        #level stats
        self.level = 0
        self.exp = 0
        self.exp_cap = 15

        #chance stats
        self.accuracy = 75
        self.evasion = 15
        self.crit_chance = 10
        self.crit_mult = 1.5
        self.luck = 10

        #skills stats
        self.equipped_skills = []
        self.skills = []

        #ally stats
        self.equipped_allies = []
        self.allies = []

        #misc stats
        self.total_inventory = 0

        self.weapons = [CopperSword.name, CopperSword.name]
        self.weapon_inventory = [CopperSword, CopperSword]

        self.armors = [CopperArmor.name]
        self.armor_inventory = [CopperArmor]

        self.buffs = [HealthPotion.name, HealthPotion.name]
        self.buff_inventory = [HealthPotion, HealthPotion]

        self.miscs = []
        self.misc_inventory = []

        self.quest_items = []
        self.quest_inventory = []
        self.gold = 10

        #flags
        self.bagCap = False
        self.combat = False
Esempio n. 7
0
 def setUp(self):
     self.w1 = weapon("abc", "weapon", 500, 25)
Esempio n. 8
0
def load_config_files(flush=False):
	_f = open(os.path.join('data','config_files.txt'),'r')
	_flist = _f.readlines()
	_f.close()
	
	try:
		_f = open(os.path.join('data','hashes.txt'),'r')
	except:
		_f = open(os.path.join('data','hashes.txt'),'w')
		_f.write('')
		_f.close()
		_f = open(os.path.join('data','hashes.txt'),'r')
	
	_fhashes = _f.readlines()
	_f.close()
	
	_newhashes = []
	for file in _flist:
		
		file = file[:len(file)-1]+'.xml'
		_t = open(os.path.join('data',file),'r')
		_newhashes.append((file,hashlib.md5(_t.read()).hexdigest()))
		_t.close()
	
	_hashes = []
	for hash in _fhashes:
		if flush:
			_h = hash[:len(hash)-1]+'derp'
		else:
			_h = hash[:len(hash)-1]
		_hashes.append(tuple(_h.split(',')))
	
	aa = set(_newhashes)
	bb = set(_hashes)
	
	if aa.difference(bb):
		if var.debug: print 'CONVERTAN'
		for file in aa.difference(bb):
			_ret = xml2json.parse(os.path.join('data',file[0]),debug=True)
			
			for i in range(0,len(_hashes)):
				if _hashes[i][0] == file[0]:
					_hashes[i] = file
		
		_f = open(os.path.join('data','hashes.txt'),'w')
		for file in _hashes:
			_f.write('%s,%s\n' % (file[0],file[1]))
		_f.close()
	
	for file in _flist:
		file = file[:len(file)-1]
		if var.debug: print 'Loading '+file
		try:
			_f = open(os.path.join('data',file+'.json'))
		except:
			print 'ERROR: Some of your .JSON files are broken.\n'
			print 'This could happen if you haven\'t compiled your .XML files yet.'
			print 'Run: ./main.py recompile'
			sys.exit()
		
		
		for line in _f.readlines():
			_j = json.loads(line)
			
			for _key in _j.iterkeys():
				key = _key
				break

			if file == 'descriptions':
				if key.count('interior'):
					global interior_descriptions
					interior_descriptions.append({'type':key[len('interior-'):],'desc':_j[key]})
				elif key.count('outside'):
					global outside_descriptions
					outside_descriptions.append({'type':key[len('outside-'):],'desc':_j[key]})
			
			elif file == 'phrases':
				global phrases
				phrases.append({'type':key,'text':_j[key]})
			
			elif file == 'names':
				if key == 'male':
					global human_male_fnames
					human_male_fnames = _j[key].split(',')
				elif key == 'female':
					global human_female_fnames
					human_female_fnames = _j[key].split(',')
				elif key == 'last':
					global human_lnames
					human_lnames = _j[key].split(',')
			
			elif file == 'jobs':
				_i = jobs.job(_j['name'])
				_i.strength_needed = int(_j['strength'])
				_i.dexterity_needed = int(_j['dexterity'])
				_i.intelligence_needed = int(_j['intelligence'])
			
			elif file == 'items':
				if _j['type'] == 'light':
					_i = items.light()
					_i.icon = _j['icon']
				elif _j['type'] == 'table':
					_i = items.table()
					_i.icon = _j['icon']
				elif _j['type'] == 'foliage':
					_i = items.foliage()
					_i.icon = 'b'
				elif _j['type'] == 'window':
					_i = items.window()
					_i.icon = ':'
				elif _j['type'] == 'weapon':
					_i = items.weapon()
					_i.category = _j['category']
					_i.attack = int(_j['attack'])
					_i.icon = 'S'	
				elif _j['type'] == 'clothing':
					_i = items.clothing()
					_i.slot = _j['slot']
					_i.defense = int(_j['defense'])
				elif _j['type'] == 'potion':
					_i = items.potion()
					_i.effect = _j['effect']
					_i.amount = int(_j['amount'])
					_i.icon = '!'
					
				_i.name = _j['ref']
				_i.action = _j['action']
				_i.room_description = _j['room_desc']
				_i.description = _j['desc']
				_i.weight = int(_j['weight'])
				_i.stat['price'] = int(_j['price'])
		
		_f.close()
Esempio n. 9
0
    def goblin(self):
        CopperOre = misc()
        CopperOre.copper()

        CopperSword = weapon()
        CopperSword.copperSword()

        CopperArmor = armor()
        CopperArmor.copperArmor()

        self.name = random.choice(["Goblin Miner", "Goblin Footman"])

        if self.name == "Goblin Miner":
            self.image = "CREATE Task Folder\Image Assets\Enemy_images\Goblin Miner+.png"
            self.icon = "CREATE Task Folder\Image Assets\Enemy_images\Goblin Miner.png"

            self.maxhp = 35
            self.hp = 35

            self.physical_attack = 8
            self.speed = 7

            self.stamina = 30
            self.stamina_max = 30

            self.physical_defense = 2
            self.magic_defense = 2

            self.fire_resist = 1
            self.earth_resist = 1
            self.wind_resist = 1

            self.accuracy = 75
            self.evasion = 5
            self.crit_chance = 2.5
            self.crit_mult = 1.25
            self.luck = 10
            self.exp = 10

            self.gold = 5
            self.tierIILoot = [CopperOre, CopperOre]
            self.tierIIILoot = [CopperOre, CopperOre, CopperOre, CopperOre]

        elif self.name == "Goblin Footman":
            self.image = "CREATE Task Folder\Image Assets\Enemy_images\Goblin Footman+.png"
            self.icon = "CREATE Task Folder\Image Assets\Enemy_images\Goblin Footman.png"

            self.maxhp = 40
            self.hp = 40

            self.physical_attack = 10
            self.speed = 10

            self.stamina = 65
            self.stamina_max = 65

            self.physical_defense = 4
            self.magic_defense = 3

            self.poison_resist = 1
            self.water_resist = 2
            self.earth_resist = 2
            self.wind_resist = 2

            self.accuracy = 85
            self.evasion = 12
            self.crit_chance = 8
            self.crit_mult = 1.5
            self.luck = 5
            self.intelligence = "Medium"

            self.exp = 20
            self.gold = 3
            self.tierIILoot = [CopperSword]
            self.tierIIILoot = [CopperArmor]

        self.tierILoot = [CopperOre]