Skip to content

Commit

Permalink
fixed rewards
Browse files Browse the repository at this point in the history
  • Loading branch information
nmarkro committed Apr 18, 2020
1 parent 1a31f28 commit a617622
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 13 deletions.
17 changes: 11 additions & 6 deletions logic.py
Expand Up @@ -326,22 +326,23 @@ def randomize_world(world, logger, attempts=100):
no_reward_boss_pool = [b for b in shuffled_bosses if b.reward == None and b.check.flag_rewards == []]
if no_reward_boss_pool != []:
chosen_boss = random.choice(no_reward_boss_pool)
if chosen_boss == None:
else:
for b in shuffled_bosses:
if b.can_add_reward(chosen_reward):
chosen_boss = b
break
if chosen_boss == None:
print('Error generating world, trying again')
return None
else:
print('Error generating world, trying again')
return None
logger.info("Adding " + chosen_reward.name + " to boss " + chosen_boss.name + " at check " + chosen_boss.check.name + "\n")
chosen_boss.add_reward(chosen_reward)
reward_pool.remove(chosen_reward)

logger.info("Placing unused rewards")
# reverse to add rewards to bosses from the beginning of the game
bosses_progressed.reverse()
for reward in reward_pool:
while reward_pool:
reward = reward_pool.pop()
chosen_boss = None
# try to give the chosen reward to a boss with no magatama or flag reward
no_reward_boss_pool = [b for b in bosses_progressed if b.check.area.name != 'ToK' and b.reward == None and b.check.flag_rewards == []]
Expand All @@ -352,9 +353,11 @@ def randomize_world(world, logger, attempts=100):
if b.check.area.name != 'ToK' and b.can_add_reward(reward):
chosen_boss = b
break
else:
print('Error generating world, trying again')
return None
logger.info("Adding " + reward.name + " to boss " + chosen_boss.name + " at check " + chosen_boss.check.name)
chosen_boss.add_reward(reward)
reward_pool.remove(reward)

logger.info("Complete spoiler:")
for check in world.get_checks():
Expand All @@ -369,6 +372,8 @@ def randomize_world(world, logger, attempts=100):

if __name__ == '__main__':
logger = logging.getLogger('')
with open('logs/spoiler.log', 'w') as f:
f.write('')
logging.basicConfig(filename='logs/spoiler.log', level=logging.INFO)

world = None
Expand Down
11 changes: 6 additions & 5 deletions nocturne.py
Expand Up @@ -326,8 +326,8 @@ def write_magatamas(rom, new_magatams):
rom.write_halfword(skill['level'])
rom.write_halfword(skill['skill_id'])

reward_tbl_offset = 0x001FEE00
reward_tbl = []
# reward_tbl_offset = 0x001FEE00
# reward_tbl = []

def write_battles(rom, new_battles, preserve_boss_arenas=False):
for b in new_battles:
Expand All @@ -337,9 +337,10 @@ def write_battles(rom, new_battles, preserve_boss_arenas=False):
rom.write_halfword(b.reward_index + 1, b.offset + 0x02)
reward_tbl.append(b.reward)
else:
rom.write_halfword(0x00, b.offset + 0x02)'''
rom.write_halfword(0x00, b.offset + 0x02)
if 345 >= b.reward >= 320:
rom.write_halfword(b.reward, b.offset + 0x02)
rom.write_halfword(b.reward, b.offset + 0x02)'''
rom.write_halfword(b.reward, b.offset + 0x02)
rom.write_halfword(b.phase_value, b.offset + 0x04)
rom.seek(b.offset + 0x06)
for e in b.enemies:
Expand Down Expand Up @@ -534,7 +535,7 @@ def write_seed_strings(rom, seed):
rom.write('Take double damage.'.encode(), 0x43EE88)
seed_msg = "Seed: {}".format(seed)
if len(seed_msg) > 17:
seed_msg = seed_msg[14:] + "..."
seed_msg = seed_msg[:14] + "..."
rom.write(seed_msg.encode(), 0x43EE50)
rom.write(seed_msg.encode(), 0x43EEA8)

Expand Down
1 change: 0 additions & 1 deletion randomizer.py
Expand Up @@ -2,7 +2,6 @@
import random
import copy
import logging
import shutil
import hashlib
import string
import sys
Expand Down
2 changes: 1 addition & 1 deletion version.txt
@@ -1 +1 @@
0.1.8
0.1.9

0 comments on commit a617622

Please sign in to comment.