import dict from weaponGeneration import generateWeapon from armorGeneration import generateArmor from enemyGeneration import generateEnemy from npcGeneration import generateNPC from random import randint import sys arg = sys.argv # arg1<map> arg2<level> arg3<?> #generate enemy party foe = generateEnemy(0, 2, arg[1], 3, int(arg[2])) #generate npc self = generateNPC(arg[2]) #check npc stats, decide Role. #? #Generate Weapon, Aegis. self['armor'] = generateArmor(level) self['weapon'] = generateWeapon(level) #check agility scores, set up turn order #begin turn sequence #pseudocode, there isn't actually hp while(npc['hp']!=0 and foe['hp']!=0):
def generateEnemy(low, high, map, enemyAmount, level): for x in range(0,enemyAmount): foe = randint(low,high) mod = randint(0,10) #statements for setting enemy code from map options in the dictionary chosenMap = list(dict.enemyMaps[map]) foeCode = list(chosenMap[foe]) #Generate stats dist = [] for x in range(0,9): dist.append(foeCode[x + 1]) foeCode[x+1] = 0 #For each strength level for j in range(1,level+1): #For each stat for i in range(0,9): if(randint(0,100) <= dist[i]): if(1+i<6): foeCode[1 + i] += 1 else: foeCode[1 + i] += 2 #statements for adjusting enemy code based on temperment. 1/str 2/fin 3/vit 4/agi 5/awr if(enemyAmount > 1): if(mod == 1): #Manic foeCode[0] = 'Manic ' + foeCode[0] foeCode[1] += math.floor(randint(1,3)*0.1*level) foeCode[4] += math.floor(randint(1,3)*0.1*level) foeCode[3] -= math.floor(randint(1,3)*0.1*level) if(mod == 2): #Deadly foeCode[0] = 'Deadly ' + foeCode[0] foeCode[1] += math.floor(randint(1,3)*0.1*level) foeCode[2] += math.floor(randint(1,3)*0.1*level) foeCode[5] -= math.floor(randint(1,3)*0.1*level) if(mod == 3): #Stitched foeCode[0] = 'Stitched ' + foeCode[0] foeCode[3] += math.floor(randint(1,3)*0.1*level) foeCode[2] += math.floor(randint(1,3)*0.1*level) if(mod == 4): #Trembling foeCode[0] = 'Trembling ' + foeCode[0] foeCode[2] += math.floor(randint(1,3)*0.1*level) foeCode[4] += math.floor(randint(1,3)*0.1*level) foeCode[1] -= math.floor(randint(1,3)*0.1*level) if(mod == 5): #Lidless foeCode[0] = 'Lidless ' + foeCode[0] foeCode[2] += math.floor(randint(1,3)*0.1*level) foeCode[5] += math.floor(randint(1,3)*0.1*level) foeCode[3] -= math.floor(randint(1,3)*0.1*level) if(mod == 6): #Broken foeCode[0] = 'Broken ' + foeCode[0] foeCode[3] -= math.floor(randint(1,3)*0.1*level) if(mod == 7): #TwoFaced foeCode[0] = 'TwoFaced ' + foeCode[0] foeCode[4] += math.floor(randint(1,3)*0.1*level) foeCode[5] += math.floor(randint(1,3)*0.1*level) foeCode[2] -= math.floor(randint(1,3)*0.1*level) #Check minimum and maximum requirements and adjust accordingly for x in range(0,5): min = math.floor((dist[x]/100.0) * level) max = level+1 if(foeCode[x+1] < min): foeCode[x+1] = math.floor(min) if(foeCode[x+1] > max): foeCode[x+1] = max print print 'Name: ' + foeCode[0] print 'Str: ' + str(int(foeCode[1])) print 'Fin: ' + str(int(foeCode[2])) print 'Vit: ' + str(int(foeCode[3])) print 'Agi: ' + str(int(foeCode[4])) print 'Awr: ' + str(int(foeCode[5])) print 'Sunder: ' + str(int(foeCode[6])) + ' Crush: ' + str(int(foeCode[7])) + ' Pierce: ' + str(int(foeCode[8])) + ' Flesh: ' + str(int(foeCode[9])) print print foeCode[11] print generateWeapon(1,level,foeCode[10], False) return foeCode
import dict from mapGeneration import generateMap #Python imports from random import randint import sys #argument declaration for clarity arg = sys.argv #break it up into if's if(arg[1] == 'loot'): type = randint(0,7) if(type<4): generateWeapon() elif(type<9): generateArmor() elif(type<10): print("Card") else: print("Whisper Bottle") if(arg[1] == 'options'): print 'npc / map / weapon / armor / encounter / multifoe / foe' if(arg[1] == 'help'): if(arg[2] == 'encounter'): print '<Map> <level>' if(arg[2] == 'foe'): print '<id> <map> <level>'