Skip to content

Commit f6a6fd4

Browse files
authored
Adding --starting-level flag (#14)
1 parent 995cc33 commit f6a6fd4

3 files changed

Lines changed: 14 additions & 4 deletions

File tree

args/characters.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ def parse(parser):
66

77
characters.add_argument("-sal", "--start-average-level", action = "store_true",
88
help = "Recruited characters start at the average character level")
9+
characters.add_argument("-stl", "--start-level", default = 3, type = int, choices = range(3, 100), metavar = "COUNT",
10+
help = "Start game at level %(metavar)s.")
911
characters.add_argument("-sn", "--start-naked", action = "store_true",
1012
help = "Recruited characters start with no equipment")
1113
characters.add_argument("-eu", "--equipable-umaro", action = "store_true",
@@ -22,6 +24,8 @@ def flags(args):
2224

2325
if args.start_average_level:
2426
flags += " -sal"
27+
if args.start_level != 3:
28+
flags += f" -stl {args.start_level}"
2529
if args.start_naked:
2630
flags += " -sn"
2731
if args.equipable_umaro:
@@ -36,6 +40,7 @@ def options(args):
3640

3741
return [
3842
("Start Average Level", args.start_average_level),
43+
("Start Level", args.start_level),
3944
("Start Naked", args.start_naked),
4045
("Equipable Umaro", args.equipable_umaro),
4146
("Character Stats", character_stats),

data/characters.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,11 @@ def get_character_path(self, character):
7878
return self.character_paths[character]
7979

8080
def mod_init_levels(self):
81-
if self.args.start_average_level:
82-
# characters recruited at average level, set everyone's initial level to 3
83-
for character in self.characters:
84-
character.init_level_factor = 0
81+
# remove all variation in leveling, since we're controlling level directly
82+
for character in self.characters:
83+
character.init_level_factor = 0
84+
85+
characters_asm.set_starting_level(self.args.start_level)
8586

8687
def stats_random_percent(self):
8788
import random

data/characters_asm.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ def equipable_umaro(character_count):
77

88
space = Reserve(0x39ef4, 0x39ef7, "Reequip Umaro if genji glove/gauntlet/merit award equipped/removed", asm.NOP())
99

10+
def set_starting_level(start_level):
11+
space = Reserve(0x09fc6, 0x09fc6, "Starting level")
12+
space.write(start_level.to_bytes(1, 'little'))
13+
1014
def update_morph_character(characters):
1115
from constants.commands import id_name
1216

0 commit comments

Comments
 (0)