diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..f13931b --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "randomtools"] + path = randomtools + url = https://github.com/abyssonym/randomtools.git diff --git a/randomizer.py b/randomizer.py new file mode 100644 index 0000000..87789de --- /dev/null +++ b/randomizer.py @@ -0,0 +1,60 @@ +from randomtools.tablereader import ( + TableObject, get_global_label, tblpath, addresses) +from randomtools.utils import ( + classproperty, mutate_normal, shuffle_bits, get_snes_palette_transformer, + write_multi, utilrandom as random) +from randomtools.interface import ( + get_outfile, get_seed, get_flags, run_interface, rewrite_snes_meta, + clean_and_write, finish_interface) +from collections import defaultdict +from os import path +from time import time +from collections import Counter +import string + + +VERSION = 1 +ALL_OBJECTS = None +DEBUG_MODE = False +RESEED_COUNTER = 0 + + +def reseed(): + global RESEED_COUNTER + RESEED_COUNTER += 1 + seed = get_seed() + random.seed(seed + (RESEED_COUNTER**2)) + + +class MonsterObject(TableObject): + flag = "s" + flag_description = "enemy souls" + intershuffle_attributes = [("soul_type", "soul")] + + +class TreasureObject(TableObject): pass + + +if __name__ == "__main__": + try: + print ('You are using the Castlevania: Aria of Sorrow ' + 'randomizer version %s.' % VERSION) + print + + ALL_OBJECTS = [g for g in globals().values() + if isinstance(g, type) and issubclass(g, TableObject) + and g not in [TableObject]] + run_interface(ALL_OBJECTS, snes=True) + hexify = lambda x: "{0:0>2}".format("%x" % x) + numify = lambda x: "{0: >3}".format(x) + minmax = lambda x: (min(x), max(x)) + + if DEBUG_MODE: + pass + + import pdb; pdb.set_trace() + clean_and_write(ALL_OBJECTS) + finish_interface() + except Exception, e: + print "ERROR: %s" % e + raw_input("Press Enter to close this program.") diff --git a/randomtools b/randomtools new file mode 160000 index 0000000..acf8b35 --- /dev/null +++ b/randomtools @@ -0,0 +1 @@ +Subproject commit acf8b3538eb2894b87bacabf052afe73340bcdd6 diff --git a/tables/master.txt b/tables/master.txt new file mode 100644 index 0000000..6cb70c3 --- /dev/null +++ b/tables/master.txt @@ -0,0 +1 @@ +AOS_NA e7470df4d241f73060d14437011b90ce tables_list.txt diff --git a/tables/monster_table.txt b/tables/monster_table.txt new file mode 100644 index 0000000..d4abe5c --- /dev/null +++ b/tables/monster_table.txt @@ -0,0 +1,15 @@ +unk1,8 +common_drop,2 +rare_drop,2 +hp,2 +mp,2 +xp,2 +unk2,2 +atk,1 +def,1 +unk3,1 +soul_type,1 +soul,1 +zero,1 +weak,2 +unk4,8 diff --git a/tables/tables_list.txt b/tables/tables_list.txt new file mode 100644 index 0000000..7ecd5c7 --- /dev/null +++ b/tables/tables_list.txt @@ -0,0 +1,3 @@ +# objname tablefile address count grouped +MonsterObject monster_table.txt e9644 112 +TreasureObject treasure_table.txt treasure_pointers.txt diff --git a/tables/treasure_pointers.txt b/tables/treasure_pointers.txt new file mode 100644 index 0000000..3e3bfe3 --- /dev/null +++ b/tables/treasure_pointers.txt @@ -0,0 +1,112 @@ +5109dd 04 04 00 47 00 26 00 +510af1 04 03 00 21 00 10 00 +510afd 04 03 00 2e 00 32 00 +510bf9 04 03 00 11 00 03 00 +510c11 04 04 00 40 00 19 00 +510c1d 04 08 00 01 00 01 00 +510dd9 04 03 00 12 00 2d 00 +510ed5 04 02 00 5f 00 05 00 +51103d 04 04 00 32 00 09 00 +511145 04 06 00 02 00 01 00 +5114c9 04 03 00 27 00 20 00 +511565 04 02 00 51 00 1d 00 +511619 04 04 00 3e 00 15 00 +51163d 04 02 00 5d 00 00 00 +511715 04 04 00 33 00 0a 00 +511739 04 04 00 44 00 1e 00 +#511769 04 01 00 9d 00 04 00 +51250d 04 02 00 83 00 08 00 +5125cd 04 02 00 69 00 06 00 +#5125d9 04 01 00 8d 00 03 00 +512609 04 03 00 25 00 1b 00 +512615 04 02 00 64 00 01 00 +512669 04 02 00 60 00 05 00 +51271d 04 01 00 8f 00 03 00 +5127a1 04 03 00 2a 00 25 00 +5128f1 04 03 00 14 00 28 00 +512939 04 01 00 8c 00 05 00 +5129c9 04 01 00 8e 00 03 00 +512a05 04 04 00 3a 00 11 00 +513875 04 02 00 85 00 14 00 +5138f9 04 01 00 90 00 03 00 +513911 04 02 00 84 00 09 00 +513af1 04 08 00 03 00 03 00 +513be1 04 03 00 29 00 22 00 +513bf9 04 04 00 43 00 1d 00 +513c59 04 03 00 13 00 12 00 +513c71 04 03 00 16 00 05 00 +513d0d 04 02 00 4e 00 1a 00 +513dfd 04 01 00 91 00 03 00 +513ebd 04 03 00 17 00 04 00 +51515d 04 04 00 39 00 10 00 +5151a5 04 01 00 92 00 03 00 +5152ad 04 03 00 15 00 2a 00 +5153f1 04 02 00 73 00 07 00 +5154a5 04 02 00 65 00 01 00 +51554d 04 08 00 04 00 02 00 +5155d1 04 01 00 93 00 03 00 +515781 04 04 00 4a 00 2a 00 +516829 04 03 00 22 00 17 00 +516835 04 02 00 4f 00 1b 00 +51696d 04 02 00 6a 00 06 00 +516abd 04 02 00 66 00 01 00 +516c9d 04 04 00 34 00 04 00 +516d09 04 03 00 1a 00 09 00 +516d15 04 07 00 06 00 01 00 +51714d 04 02 00 61 00 05 00 +517d91 04 02 00 52 00 1f 00 +517e2d 04 01 00 9b 00 05 00 +517f1d 04 01 00 9c 00 05 00 +518175 04 01 00 98 00 04 00 +518235 04 01 00 99 00 04 00 +518301 04 01 00 9a 00 04 00 +5199d1 04 04 00 35 00 06 00 +519cad 04 03 00 1f 00 0e 00 +519f7d 04 07 00 07 00 02 00 +51a0fd 04 01 00 97 00 06 00 +51a3cd 04 03 00 1e 00 0a 00 +51cbf5 04 04 00 42 00 1c 00 +51cd39 04 02 00 82 00 04 00 +51cd5d 04 04 00 3b 00 12 00 +51ce05 04 03 00 1b 00 0b 00 +51d015 04 02 00 6b 00 06 00 +51d051 04 02 00 86 00 12 00 +51d1e9 04 02 00 76 00 07 00 +51d32d 04 02 00 6f 00 02 00 +51d405 04 02 00 6e 00 02 00 +51d56d 04 03 00 19 00 08 00 +51d801 04 04 00 3d 00 16 00 +51d825 04 08 00 09 00 06 00 +51d8e5 04 03 00 2d 00 31 00 +51d981 04 01 00 94 00 05 00 +51d999 04 03 00 30 00 37 00 +51da7d 04 02 00 50 00 1c 00 +51dad1 04 01 00 95 00 06 00 +51dc2d 04 04 00 49 00 29 00 +51dc75 04 03 00 26 00 1d 00 +51dced 04 02 00 71 00 02 00 +51dd29 04 04 00 38 00 0f 00 +51dd7d 04 01 00 96 00 06 00 +51e25d 04 02 00 68 00 01 00 +51e329 04 04 00 4b 00 2b 00 +51f1d1 04 06 00 08 00 02 00 +51f285 04 03 00 1d 00 0d 00 +51f5fd 04 04 00 41 00 1b 00 +51f8b5 04 04 00 36 00 07 00 +51f8e5 04 03 00 18 00 11 00 +51f909 04 04 00 48 00 27 00 +51f945 04 02 00 67 00 01 00 +520bb1 04 04 00 37 00 08 00 +520bbd 04 06 00 0a 00 03 00 +520bd5 04 02 00 74 00 07 00 +520c35 04 03 00 2c 00 30 00 +520d6d 04 08 00 05 00 05 00 +520e09 04 04 00 45 00 24 00 +5211ed 04 02 00 75 00 07 00 +521361 04 02 00 70 00 02 00 +521385 04 03 00 20 00 0f 00 +521c5d 04 03 00 23 00 19 00 +521d05 04 03 00 24 00 16 00 +523cc1 04 02 00 72 00 02 00 +523d99 04 02 00 6c 00 06 00 +523dbd 04 02 00 77 00 07 00 diff --git a/tables/treasure_table.txt b/tables/treasure_table.txt new file mode 100644 index 0000000..820f812 --- /dev/null +++ b/tables/treasure_table.txt @@ -0,0 +1,7 @@ +difficulty,1 +item_type,1 +zero1,1 +unknown,1 +zero2,1 +item_index,1 +zero3,1