Esempio n. 1
0
def buildEquipmentFromFile(file, location):

	print file

	if str(file).endswith('~'):
		print "\n"
		return

	path = location + file
	with open(path, 'r') as f:
		fileData = f.readlines()


	newWeapon = None
	newArmor = None
	equipmentType = None
	slot = None
	durability = None
	maxDurability = None
	worth = None
	description = None
	longDescription = None
	hp = None
	pp = None
	offense = None
	defense = None
	speed = None
	guts = None
	luck = None
	vitality = None
	IQ = None
	battleCommands = None
	statusEffect = None
	onUse = None
	isVisible = None
	spawnContainer = None
	isCarryable = None
	respawns = None
	itemGrabHandler = None
	objectSpawner = None
	notDroppable = None
	container = None
	spawnOdds = None
	time = None
	active = None
	repeat = None
	cycles = None


	for Data in fileData:
		if Data.startswith('type='):
			equipmentType = Data[5:-1]
		if Data.startswith('ID='):
			ID = Data[3:-1]
		if Data.startswith('name='):
			name = Data[5:-1]
		if Data.startswith('slot='):
			slot = Data[5:-1]
		if Data.startswith('durability='):
			durability = Data[11:-1]
		if Data.startswith('maxDurability='):
			maxDurability = Data[14:-1]
		if Data.startswith('worth='):
			worth = Data[6:-1]
		if Data.startswith('description='):
			description = Data[12:-1]
		if Data.startswith('longDescription='):
			longDescription = Data[16:-1]
		if Data.startswith('hp='):
			hp = int(Data[3:-1])
		if Data.startswith('pp='):
			pp = int(Data[3:-1])
		if Data.startswith('offense='):
			offense = int(Data[8:-1])
		if Data.startswith('defense='):
			defense = int(Data[8:-1])
		if Data.startswith('speed='):
			speed = int(Data[6:-1])
		if Data.startswith('guts='):
			guts = int(Data[5:-1])
		if Data.startswith('luck='):
			luck = int(Data[5:-1])
		if Data.startswith('vitality='):
			vitality = int(Data[9:-1])
		if Data.startswith('IQ='):
			IQ = int(Data[3:-1])
		if Data.startswith('battleCommands='):
			battleCommands = Data[15:-1]
			battleCommands = battleCommands.split(",")
		if Data.startswith('statusEffect='):
			statusEffect = Data[13:-1]
		if Data.startswith('onUse='):
			onUse = Data[6:-1]
		if Data.startswith('isVisible='):
			isVisible = Data[10:-1]
			if isVisible == 'True':
				isVisible = True
			elif isVisible == 'False':
				isVisible = False
		if Data.startswith('kind.isCarryable='):
			isCarryable = Data[17:-1]
			if isCarryable == "True":
				isCarryable = True
			elif isCarryable == "False":
				isCarryable = False
		if Data.startswith('kind.respawns='):
			respawns = Data[14:-1]
			if respawns == "True":
				respawns = True
			elif respawns == "False":
				respawns = False
		if Data.startswith('kind.itemGrabHandler='):
			itemGrabHandler = Data[21:-1]
			if itemGrabHandler == "True":
				itemGrabHandler = True
			elif itemGrabHandler == "False":
				itemGrabHandler = False
		if Data.startswith('kind.itemGrabHandler.notDroppable='):
			notDroppable = Data[34:-1]
			if notDroppable == "True":
				notDroppable = True
			elif notDroppable == "False":
				notDroppable = False
		if Data.startswith('kind.objectSpawner='):
			objectSpawner = Data[19:-1]
			if objectSpawner == 'True':
				objectSpawner = True
			elif objectSpawner == 'False':
				objectSpawner = False
		if Data.startswith('kind.objectSpawner.time='):
			time = int(Data[24:-1])
		if Data.startswith('kind.objectSpawner.spawnOdds='):
			text = Data[29:-1]
			oddsList = text.split(',')
			#print "oddsList:" + str(oddsList)
			nestedOddsList = []
			for odds in oddsList:
				nestedOddsList.append(odds.split(':'))
			for oddsEntry in nestedOddsList:
				oddsEntry[1] = int(oddsEntry[1])
				if oddsEntry[0] == 'True':
					oddsEntry[0] = True
				elif oddsEntry[0] == 'False':
					oddsEntry[0] = False
			#print nestedOddsList
			spawnOdds = nestedOddsList
		if Data.startswith('kind.objectSpawner.container='):
			text = Data[29:-1]
			if text == 'None':
				container = None
			else:
				container = text[1:-1]		# this should be a reference to another object
				container = container.split(', ')
		if Data.startswith('kind.objectSpawner.cycles='):
			cycles = int(Data[26:-1])
		if Data.startswith('kind.objectSpawner.repeat='):
			text = Data[26:-1]
			if text == 'True':
				repeat = True
			elif text == 'False':
				repeat = False
		if Data.startswith('kind.objectSpawner.active='):
			text = Data[26:-1]
			#print "***active:" + text
			if text == 'True':
				active = True
			elif text == 'False':
				active = False


	if equipmentType == 'weapon':
		newWeapon = World.weapon()
	elif equipmentType == 'armor':
		newArmor = World.armor()

	if itemGrabHandler == True:
		newItemGrabHandler = World.itemGrabHandler(notDroppable=notDroppable)
	else:
		newItemGrabHandler = None
	if objectSpawner == True:
		newObjectSpawner = World.objectSpawner(owner=None, TIMERS=Globals.TIMERS, time=time, obj=None, oddsList=oddsList, container=container, cycles=cycles, repeat=repeat, active=active)
	else:
		newObjectSpawner = None


	newEquipment = World.equipment(owner=None, weapon=newWeapon, armor=newArmor, slot=slot, durability=durability, maxDurability=maxDurability, worth=worth, hp=hp, pp=pp, offense=offense, defense=defense, speed=speed, guts=guts, luck=luck, vitality=vitality, IQ=IQ, battleCommands=battleCommands, statusEffect=statusEffect, onUse=onUse)
	newItem = World.item(isCarryable=isCarryable, respawns=respawns, itemGrabHandler=newItemGrabHandler, objectSpawner=newObjectSpawner, equipment=newEquipment, onUse=onUse)
	if newItem.itemGrabHandler:
		newItem.itemGrabHandler.owner = newItem
	if newItem.objectSpawner:
		newItem.objectSpawner.owner = newItem
	newEquipment.owner = newItem
	newObject = World.Object(name=name, description=description, isVisible=isVisible, spawnContainer=spawnContainer, longDescription=longDescription, kind=newItem)
	if newObject.kind.objectSpawner:
		newObject.kind.objectSpawner.obj = newObject
	newObject.ID = ID
	newItem.owner = newObject


	equipmentFromFile.append(newObject)

	print "\n"
	print "name:" + str(newObject.name)
	print "description:" + str(newObject.description)
	print "currentRoom:" + str(newObject.currentRoom)
	print "isVisible:" + str(newObject.isVisible)
	print "spawnContainer:" + str(newObject.spawnContainer)
	print "longDescription:" + str(newObject.longDescription)
	print "kind:" + str(newObject.kind)
	#print "TIMERS:" + str(newObject.TIMERS)
	if newObject.kind is not None:
		print "kind.owner:" + str(newObject.kind.owner)
		print "kind.equipment:" + str(newObject.kind.equipment)
		print "kind.equipment.owner" + str(newObject.kind.equipment.owner)
		if hasattr(newObject.kind.equipment, 'weapon'):
			if newObject.kind.equipment.weapon is not None:
				print "weapon:" + str(newObject.kind.equipment.weapon)
		if hasattr(newObject.kind.equipment, 'armor'):
			if newObject.kind.equipment.armor is not None:
				print "armor:" + str(newObject.kind.equipment.armor)
		print "slot:" + str(newObject.kind.equipment.slot)
		print "durability:" + str(newObject.kind.equipment.durability)
		print "maxDurability:" + str(newObject.kind.equipment.maxDurability)
		print "worth:" + str(newObject.kind.equipment.worth)
		if newObject.kind.equipment.hp != 0:
			print "hp:" + str(newObject.kind.equipment.hp)
		if newObject.kind.equipment.pp != 0:
			print "pp:" + str(newObject.kind.equipment.pp)
		if newObject.kind.equipment.offense != 0:
			print "offense:" + str(newObject.kind.equipment.offense)
		if newObject.kind.equipment.defense != 0:
			print "defense:" + str(newObject.kind.equipment.defense)
		if newObject.kind.equipment.speed != 0:
			print "speed:" + str(newObject.kind.equipment.speed)
		if newObject.kind.equipment.guts != 0:
			print "guts:" + str(newObject.kind.equipment.guts)
		if newObject.kind.equipment.luck != 0:
			print "luck:" + str(newObject.kind.equipment.luck)
		if newObject.kind.equipment.vitality != 0:
			print "vitality:" + str(newObject.kind.equipment.vitality)
		if newObject.kind.equipment.IQ != 0:
			print "IQ:" + str(newObject.kind.equipment.IQ)
		if newObject.kind.equipment.statusEffect is not None:
			if newObject.kind.equipment.statusEffect != '':
				print "statusEffect:" + str(newObject.kind.equipment.statusEffect)
		if newObject.kind.equipment.battleCommands is not None:
			if newObject.kind.equipment.battleCommands != ['']:
				print "battleCommands:" + str(newObject.kind.equipment.battleCommands)
		if newObject.kind.equipment.onUse is not None:
			if newObject.kind.equipment.onUse != '':
				print "onUse:" + str(newObject.kind.equipment.onUse)

		if newObject.kind.itemGrabHandler is not None:
			print "kind.itemGrabHandler:" + str(newObject.kind.itemGrabHandler)
			print "kind.itemGrabHandler.notDroppable:" + str(newObject.kind.itemGrabHandler.notDroppable)
		if newObject.kind.objectSpawner is not None:
			print "kind.objectSpawner:" + str(newObject.kind.objectSpawner)
			print "kind.objectSpawner.owner:" + str(newObject.kind.objectSpawner.owner)
			print "kind.objectSpawner.TIMERS:" + str(newObject.kind.objectSpawner.TIMERS)
			print "kind.objectSpawner.time:" + str(newObject.kind.objectSpawner.time)
			print "kind.objectSpawner.obj:" + str(newObject.kind.objectSpawner.obj)
			print "kind.objectSpawner.oddsList:" + str(newObject.kind.objectSpawner.oddsList)
			print "kind.objectSpawner.container:" + str(newObject.kind.objectSpawner.container)
			print "kind.objectSpanwer.cycles:" + str(newObject.kind.objectSpawner.cycles)
			print "kind.objectSpawner.repeat:" + str(newObject.kind.objectSpawner.repeat)
			print "kind.objectSpawner.active:" + str(newObject.kind.objectSpawner.active)
			print "kind.objectSpawner.timer:" + str(newObject.kind.objectSpawner.timer)
			print "kind.objectSpawner.startingLocation:" + str(newObject.kind.objectSpawner.startingLocation)
	
	print "\n"


	return newObject