123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- import sys
- import os
- import argparse
- import math
- parser = argparse.ArgumentParser()
- parser.add_argument('-dir', '--directory', '--game-directory', dest='game_dir',
- help='set path of GAME_DIR', required=True)
- print("Type arguments and tap enter. If there are not any arguments tap enter with empty string")
- print("Use -h or --help to get list of arguments")
- args = parser.parse_args(input().split())
- path_to_game = args.game_dir
- def get_lvl(path):
- lvl = 0
- for file in os.listdir(path=path):
- if file == 'unitname.txt':
- cur_file = open(path + '\\' + file, 'r')
- # print(cur_file)
- name = cur_file.read()
- if 'IV' in name:
- lvl = 4
- elif 'III' in name:
- lvl = 3
- elif 'II' in name:
- lvl = 2
- elif 'I' in name:
- lvl = 1
- cur_file.close()
- return lvl
- def get_baseclass(path):
- for file in os.listdir(path=path):
- if file == 'baseclass.txt':
- cur_file = open(path + '\\' + file, 'r')
- name = cur_file.read()
- cur_file.close()
- return name
- def print_traits(file, lvl, baseclass):
- file.write('lvl=')
- file.write(str(lvl) + '\n')
- file.write('cost=')
- file.write(str(125 + 150 * (lvl - 1)) + '\n')
- file.write('starting_ap=')
- file.write(str(max(2, lvl ** 2 - 2 * lvl - 2 * lvl // 4)) + '\n')
- if baseclass == 'Warrior\n' or baseclass == 'Rider\n':
- file.write('strength=')
- file.write(str(lvl + 1) + '\n')
- file.write('agility=')
- stat = max(lvl - 1, 0)
- file.write(str(stat) + '\n')
- file.write('intelligence=')
- stat = max(lvl - 2, 0)
- file.write(str(stat) + '\n')
- elif baseclass == 'Archer\n' or baseclass == 'Rogue\n':
- stat = max(lvl - 2, 0)
- file.write('strength=')
- file.write(str(stat) + '\n')
- file.write('agility=')
- stat = max(lvl, 0)
- file.write(str(lvl + 1) + '\n')
- file.write('intelligence=')
- stat = max(lvl - 2, 0)
- file.write(str(stat) + '\n')
- else:
- stat = max(lvl - 2, 0)
- file.write('strength=')
- file.write(str(stat) + '\n')
- file.write('agility=')
- stat = max(lvl - 2, 0)
- file.write(str(stat) + '\n')
- file.write('intelligence=')
- file.write(str(lvl + 1) + '\n')
- file.write('initiative=')
- if baseclass == 'Rider\n' or 'Rogue\n':
- file.write(str(math.ceil(lvl * 2.5)) + '\n')
- elif baseclass == 'Archer\n' or 'Warrior\n':
- file.write(str(math.ceil(lvl * 2)) + '\n')
- elif baseclass == 'Mage\n':
- file.write(str(math.ceil(lvl * 1.5)) + '\n')
- if baseclass == 'Rogue\n':
- file.write('magic_def=' + str(math.ceil(lvl * 1.5)) + '\n')
- file.write('physic_def=' + str(math.ceil(lvl)) + '\n')
- elif baseclass == 'Rider\n':
- file.write('magic_def=' + str(max(1, int(math.ceil(lvl * 0.75)))) + '\n')
- file.write('physic_def=' + str(math.ceil(lvl * 1.5)) + '\n')
- elif baseclass == 'Warrior\n':
- file.write('magic_def=' + str(max(1, int(math.ceil(lvl * 0.75)))) + '\n')
- file.write('physic_def=' + str(math.ceil(lvl * 2)) + '\n')
- elif baseclass == 'Mage\n':
- file.write('magic_def=' + str(math.ceil(lvl * 2)) + '\n')
- file.write('physic_def=' + str(max(1, int(math.ceil(lvl * 0.75)))) + '\n')
- elif baseclass == 'Archer\n':
- file.write('magic_def=' + str(math.ceil(lvl)) + '\n')
- file.write('physic_def=' + str(max(1, int(math.ceil(lvl * 0.75)))) + '\n')
- # -d D:\Honourihed\repo
- def race_traits_fill(racename):
- path_to_race = path_to_game + '\\assets\\units\\' + racename
- for class_dir in os.listdir(path=path_to_race):
- if '.' not in class_dir:
- for file in os.listdir(path=path_to_race + '\\' + class_dir):
- if file.startswith('traits'):
- path = path_to_race + '\\' + class_dir + '\\' + file
- try:
- lvl = get_lvl(path_to_race + '\\' + class_dir)
- baseclass = get_baseclass(path_to_race + '\\' + class_dir)
- os.rename(path, path_to_race + '\\' + class_dir + '\\' + 'traits.ini')
- path = path_to_race + '\\' + class_dir + '\\' + 'traits.ini';
- cur_file = open(path, 'w')
- print_traits(cur_file, lvl, baseclass)
- cur_file.close()
- print(path + ' - OK!')
- except OSError:
- print(path + ' - FAILED!')
- def main():
- race_traits_fill('undead')
- race_traits_fill('human')
- if __name__ == '__main__':
- main()
|