Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
5099971
Update coliseum random to handle percentage
kielbasiago Feb 27, 2022
6a7ef15
Remove deprecated -cor and -crr flags
kielbasiago Feb 27, 2022
fa84fbb
readd cor and crr flags
kielbasiago Feb 27, 2022
51636fc
Remove removed shuffle options from options
kielbasiago Feb 27, 2022
aa2bc0a
Added as misc. options to have NPC dialog replaced with general game …
frajen Jul 25, 2022
42cb7e7
Adding Auto Life 3 and Auto Dog Block objective results (#36)
asilverthorn Dec 18, 2022
c2d1f2b
Stray Flash mod (#33)
asilverthorn Dec 18, 2022
8836319
Adding Osteoclave's bugfix (#29)
asilverthorn Dec 18, 2022
7eb5948
Adding expensive rods and super balls flags (#27)
asilverthorn Dec 18, 2022
32f824a
Bugfix: Fix weapon special abilities with Capture and Multi-steals on…
asilverthorn Dec 18, 2022
45d3c4d
Feature: Flashes: Moving flashes to Graphics; Slowing scrolling backg…
asilverthorn Dec 18, 2022
cb16371
Feature: Adding flags to improve Sketch/Control (#19)
asilverthorn Dec 18, 2022
116a1fe
Feature: Kielbasiago's Adding flag for giving starting Espers (#18)
asilverthorn Dec 18, 2022
bc3b19a
Feature: Kielbasiago's Update ability to shuffle/mix both dragons and…
asilverthorn Dec 18, 2022
995cc33
Feature: Magic MP Randomization (#15)
asilverthorn Dec 18, 2022
f6a6fd4
Adding --starting-level flag (#14)
asilverthorn Dec 18, 2022
ccc66f4
QoL: Adding Rage Move descriptions to rage menu (#13)
asilverthorn Dec 18, 2022
a134980
Feature: Add Remove learnable spells flag + Submenus (#12)
asilverthorn Dec 18, 2022
1f5509d
Removing excluded non-S tier items from tiered or scaled chests (#11)
asilverthorn Dec 18, 2022
72e91b3
Ensuring that Gau can use Magic in FT (#10)
asilverthorn Dec 18, 2022
a277906
Feature: Adding random-encounters-chupon flag (#8)
asilverthorn Dec 18, 2022
0875363
Feature: Kielbasiago's add --start-junk flag (#7)
asilverthorn Dec 18, 2022
55355a7
QoL: Setting default config options to most commonly used values (#6)
asilverthorn Dec 18, 2022
6d76ecf
Making Party warp to Arvis house following K@N (#4)
asilverthorn Dec 18, 2022
2662a91
Feature: Adding -llr flag to randomize L.x lore levels (#3)
asilverthorn Dec 18, 2022
84cc4ba
QoL: Adding clarification of quantity of objective conditions require…
asilverthorn Dec 18, 2022
fda3380
Update version.py
ff6wc Dec 18, 2022
0bfde9d
Update flags.py
ff6wc Dec 19, 2022
5e87370
Update spells.py
ff6wc Dec 19, 2022
a018e84
Feature: Making Top 4 Magitek commands an objective result (#21)
asilverthorn Dec 19, 2022
766f299
Feature: Adding warp-all flag for 0 cost starting Warp (#9)
asilverthorn Dec 19, 2022
a10b2d8
Adding -hf flag to hide flags for fun mystery seeds (#2)
asilverthorn Dec 19, 2022
b8515ed
Feature: Add movement options, b-dash, sprint shoe options (#16)
asilverthorn Dec 19, 2022
00421df
Showing MP in menus if character knows Lore
asilverthorn Dec 22, 2022
6851b40
feature: Add filtering of low value items from shops and chests. flag…
gwnoseworthy Feb 4, 2023
5d5bd0b
chore: Add gold and iron armor to trash
gwnoseworthy Feb 4, 2023
b974b52
fix: when removing trash if item has no sell value asign chest empty.
gwnoseworthy Feb 4, 2023
1fb7edd
feat: split trash filtering on shops and chests via -nts and -ntc
gwnoseworthy Feb 5, 2023
9287fa0
fix: place filter trash args to relevant parsers
gwnoseworthy Feb 5, 2023
5554c26
fix: add new flags to options
gwnoseworthy Feb 5, 2023
a2aeb80
feature: trash item price is based on vendor sell price flag
gwnoseworthy Feb 5, 2023
65ba717
Removing clear of wound bit for coliseum in permadeath
asilverthorn Feb 19, 2023
a657aee
Fixing bug with b-dash in which player can catch up to Vargas, soft-l…
asilverthorn Mar 19, 2023
bb16d42
Loot (-loot) and Chests-All-MIAB (-cam)
HansGR Mar 22, 2023
360158d
No Random Encounters (-nre)
HansGR Mar 22, 2023
83a7956
bufgix - now no random encounters in dungeons
HansGR Mar 23, 2023
01f6491
Add Moogle Curse
HansGR Mar 23, 2023
5dc664f
Exclude buggy encounters
HansGR Mar 23, 2023
7d2346a
Make each MiaB unique; take over unused event_battle_groups
HansGR Mar 23, 2023
96d3862
fixing small issues, as identified by Franklin and HoxNorf
asilverthorn Mar 26, 2023
10e155b
Add boss% to -chests-all-monsters
HansGR Mar 30, 2023
6d49e07
Merge remote-tracking branch 'remotes/kielbasiago/feature/coliseum-op…
asilverthorn Apr 2, 2023
434d8c7
allowing 0 argument -cor
asilverthorn Apr 2, 2023
0dbbb5c
address asilverthorn's comments
HansGR Apr 2, 2023
4b91c08
Small Aesthetic Additions
HoxNorf Apr 3, 2023
010887c
Change -loot to -ssd <random%>
HansGR Apr 4, 2023
5cbb56c
menu bugfix
HansGR Apr 4, 2023
136e9d9
Fix menu bug 2
HansGR Apr 5, 2023
967c762
Sprite Additions and "Restorations"
HoxNorf Apr 6, 2023
2e6e1ea
fix: Trash list update from feedback
gwnoseworthy Apr 8, 2023
40980b2
Merge branch 'feature/coliseum-random' into dev
asilverthorn Apr 8, 2023
d38f8c7
Merge remote-tracking branch 'DoctorDT/treasure_all_miab' into dev
asilverthorn Apr 8, 2023
0185c21
Merge branch 'small_text_changes' into dev
asilverthorn Apr 8, 2023
53da297
Merge branch 'vargas_bdash_bugfix' into dev
asilverthorn Apr 8, 2023
6bc0af2
fixing merge conflicts
asilverthorn Apr 8, 2023
07e0650
fixing merge conflicts with lore_mp
asilverthorn Apr 8, 2023
1fd611d
fixing merge conflicts with latest npc_tips
asilverthorn Apr 8, 2023
1fb6a48
fixing duplicate -npctips arg from merging
asilverthorn Apr 8, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions args/challenges.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ def parse(parser):
help = "Life spells cannot be learned. Fenix Downs unavailable (except from starting items). Buckets/inns/tents/events do not revive characters. Phoenix casts Life 3 on party instead of Life")
challenges.add_argument("-rls", "--remove-learnable-spells", type = str,
help = "Remove spells from learnable sources: Items, Espers, Natural Magic, and Objectives")
challenges.add_argument("-nre", "--no-random-encounters", action = "store_true",
help="Turn off random encounters")

def process(args):
from constants.spells import black_magic_ids, white_magic_ids, gray_magic_ids, spell_id
Expand Down Expand Up @@ -86,6 +88,8 @@ def flags(args):
flags += " -pd"
if args.remove_learnable_spells:
flags += f" -rls {args.remove_learnable_spells}"
if args.no_random_encounters:
flags += " -nre"

return flags

Expand All @@ -106,6 +110,7 @@ def options(args):
("Permadeath", args.permadeath),
("Ultima", ultima),
("Remove Learnable Spells", args.remove_learnable_spell_ids),
("No Random Encounters", args.no_random_encounters),
]

return opts
Expand All @@ -116,6 +121,13 @@ def _format_spells_log_entries(spell_ids):
spell_entries.append(("", id_spell[spell_id]))
return spell_entries

def _format_spells_log_entries(spell_ids):
from constants.spells import id_spell
spell_entries = []
for spell_id in spell_ids:
spell_entries.append(("", id_spell[spell_id]))
return spell_entries

def menu(args):
from menus.flags_remove_learnable_spells import FlagsRemoveLearnableSpells

Expand Down
31 changes: 29 additions & 2 deletions args/chests.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,27 @@ def parse(parser):
help = "Chest contents randomized by tier. Probability of higher tiers begins low and increases as more chests are opened")
chests_contents.add_argument("-cce", "--chest-contents-empty", action = "store_true",
help = "Chest contents empty")
chests_contents.add_argument("-cam", "--chest-all-monsters", default = None, type = int,
metavar = "PERCENT", choices = range(101),
help="Chest contents all monster-in-a-boxes and given percent bosses")

chests.add_argument("-cms", "--chest-monsters-shuffle", action = "store_true",
help = "Monsters-in-a-box shuffled but locations unchanged")

chests.add_argument("-ntc", "--no-trash-chests", action = "store_true",
help="Replace Low Tier Items with gold in chests")




def process(args):
if args.chest_contents_shuffle_random is not None:
args.chest_contents_shuffle_random_percent = args.chest_contents_shuffle_random
args.chest_contents_shuffle_random = True
if args.chest_all_monsters is not None:
args.chest_all_monsters_boss_percent = args.chest_all_monsters
args.chest_all_monsters = True
args.chest_mosters_shuffle = False # Chest_all_monsters supercedes chest_monsters_shuffle

def flags(args):
flags = ""
Expand All @@ -34,9 +47,13 @@ def flags(args):
flags += " -ccrs"
elif args.chest_contents_empty:
flags += " -cce"
elif args.chest_all_monsters:
flags += f" -cam {args.chest_all_monsters_boss_percent}"

if args.chest_monsters_shuffle:
flags += " -cms"
if args.no_trash_chests:
flags += " -ntc"

return flags

Expand All @@ -52,11 +69,21 @@ def options(args):
contents_value = "Random Scaled"
elif args.chest_contents_empty:
contents_value = "Empty"
elif args.chest_all_monsters:
contents_value = "All MiaB"

result.append(("Contents", contents_value))
if args.chest_contents_shuffle_random:
result.append(("Random Percent", f"{args.chest_contents_shuffle_random_percent}%"))
result.append(("Monsters-In-A-Box Shuffled", args.chest_monsters_shuffle))
elif args.chest_all_monsters:
result.append(("Boss Percent", f"{args.chest_all_monsters_boss_percent}%"))

if not args.chest_all_monsters:
result.append(("MIAB Shuffled", args.chest_monsters_shuffle))

if args.no_trash_chests:
result.append(("No Trash Chests", args.no_trash_chests))


return result

Expand All @@ -68,7 +95,7 @@ def menu(args):
del entries[1] # delete random percent line
else:
entries[0] = (entries[0][1], "")
entries[1] = ("MIAB Shuffled", entries[1][1])

return (name(), entries)

def log(args):
Expand Down
45 changes: 22 additions & 23 deletions args/coliseum.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,20 @@ def parse(parser):
coliseum = parser.add_argument_group("Coliseum")

coliseum_opponents = coliseum.add_mutually_exclusive_group()
coliseum_opponents.add_argument("-cos", "--coliseum-opponents-shuffle", action = "store_true",
help = "Coliseum opponents shuffled")
coliseum_opponents.add_argument("-cor", "--coliseum-opponents-random", action = "store_true",
help = "Coliseum opponents randomized")
coliseum_opponents.add_argument("-cor", "--coliseum-opponents-random", nargs='?', const=100, default = None, type = int,
metavar = "PERCENT", choices = range(101),
help = "Coliseum opponents original with a given percent randomized")
coliseum_opponents.add_argument("-cosr", "--coliseum-opponents-shuffle-random", default = None, type = int,
metavar = "PERCENT", choices = range(101),
help = "Coliseum opponents shuffled and then given percent randomized")

coliseum_rewards = coliseum.add_mutually_exclusive_group()
coliseum_rewards.add_argument("-crs", "--coliseum-rewards-shuffle", action = "store_true",
help = "Coliseum rewards shuffled")
coliseum_rewards.add_argument("-crr", "--coliseum-rewards-random", action = "store_true",
help = "Coliseum rewards randomized")
coliseum_rewards.add_argument("-crr", "--coliseum-rewards-random", default = None, type = int,
metavar = "PERCENT", choices = range(101),
help = "Coliseum rewards original with a given percent randomized")
coliseum_rewards.add_argument("-crsr", "--coliseum-rewards-shuffle-random", default = None, type = int,
metavar = "PERCENT", choices = range(101),
help = "Coliseum rewards shuffled and then a given percent randomized")

coliseum.add_argument("-crvr", "--coliseum-rewards-visible-random", default = None, type = int,
nargs = 2, metavar = ("MIN", "MAX"), choices = range(ITEM_COUNT),
Expand All @@ -34,16 +38,15 @@ def process(args):

def flags(args):
flags = ""
if args.coliseum_opponents_random:
flags += f" -cor {args.coliseum_opponents_random}"
elif args.coliseum_opponents_shuffle_random:
flags += f" -cor {args.coliseum_opponents_shuffle_random}"

if args.coliseum_opponents_shuffle:
flags += " -cos"
elif args.coliseum_opponents_random:
flags += " -cor"

if args.coliseum_rewards_shuffle:
flags += " -crs"
elif args.coliseum_rewards_random:
flags += " -crr"
if args.coliseum_rewards_random:
flags += f" -crr {args.coliseum_rewards_random}"
elif args.coliseum_rewards_shuffle_random:
flags += f" -crr {args.coliseum_rewards_shuffle_random}"

if args.coliseum_rewards_visible_random:
flags += f" -crvr {args.coliseum_rewards_visible_random_min} {args.coliseum_rewards_visible_random_max}"
Expand All @@ -62,15 +65,11 @@ def options(args):
result = []

opponents = "Original"
if args.coliseum_opponents_shuffle:
opponents = "Shuffle"
elif args.coliseum_opponents_random:
if args.coliseum_opponents_random:
opponents = "Random"

rewards = "Original"
if args.coliseum_rewards_shuffle:
rewards = "Shuffle"
elif args.coliseum_rewards_random:
if args.coliseum_rewards_random:
rewards = "Random"

rewards_visible = "Original"
Expand Down
3 changes: 3 additions & 0 deletions args/items.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ def parse(parser):
items.add_argument("-saw", "--stronger-atma-weapon", action = "store_true",
help = "Atma Weapon moved to higher tier and divisor reduced from 64 to 32")



def process(args):
args._process_min_max("item_equipable_random")
if args.item_equipable_balanced_random is not None:
Expand Down Expand Up @@ -108,6 +110,7 @@ def flags(args):
if args.stronger_atma_weapon:
flags += " -saw"


return flags

def options(args):
Expand Down
4 changes: 3 additions & 1 deletion args/misc.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ def parse(parser):
help = "All enemies scannable. All characters start with scan learned. Scan costs 0 MP. Useful for testing/debugging")
misc.add_argument("-warp", "--warp-all", action = "store_true",
help = "All characters start with Warp learned. Warp costs 0 MP. Useful for seeds that limit Warp Stone access")

misc.add_argument("-npctips", "--npc-dialog-tips", action = "store_true",
help = "NPC provide general game tips")

Expand Down Expand Up @@ -82,7 +81,10 @@ def flags(args):
flags += " -scan"
if args.warp_all:
flags += " -warp"
if args.npc_dialog_tips:
flags += " -npctips"

### NPC tips
if args.npc_dialog_tips:
flags += " -npctips"

Expand Down
7 changes: 7 additions & 0 deletions args/shops.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,9 @@ def parse(parser):
shops.add_argument("-snil", "--shops-no-illuminas", action = "store_true",
help = "Illuminas not sold in shops")

shops.add_argument("-nts", "--no-trash-shops", action = "store_true",
help="Omit Low tier items in shops")

def process(args):
if args.shop_inventory_shuffle_random is not None:
args.shop_inventory_shuffle_random_percent = args.shop_inventory_shuffle_random
Expand Down Expand Up @@ -106,6 +109,9 @@ def flags(args):
if args.shops_no_illuminas:
flags += " -snil"

if args.no_trash_shops:
flags += " -nts"

return flags

def options(args):
Expand Down Expand Up @@ -159,6 +165,7 @@ def options(args):
("Expensive Balls", args.shops_expensive_super_balls),
("No Exp. Eggs", args.shops_no_exp_eggs),
("No Illuminas", args.shops_no_illuminas),
("No Trash Shops", args.no_trash_shops)
])
return result

Expand Down
1 change: 1 addition & 0 deletions args/starting_gold_items.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ def options(args):
("Start Warp Stones", args.start_warp_stones),
("Start Fenix Downs", args.start_fenix_downs),
("Start Tools", args.start_tools),
("Start Junk", args.start_junk),
]

if args.start_junk != 0:
Expand Down
21 changes: 18 additions & 3 deletions args/steal.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,14 @@ def parse(parser):
steal_chances.add_argument("-sca", "--steal-chances-always", action = "store_true",
help = "Steal will always succeed if enemy has an item")

steal.add_argument("-ssd", "--shuffle-steals-drops", default = None, type = int,
metavar = "PERCENT", choices = range(101),
help="Shuffle items stolen and dropped with randomized percent")

def process(args):
if args.shuffle_steals_drops is not None:
args.shuffle_steals_drops_random_percent = args.shuffle_steals_drops
args.shuffle_steals_drops = True
pass

def flags(args):
Expand All @@ -20,19 +27,27 @@ def flags(args):
flags += " -sch"
if args.steal_chances_always:
flags += " -sca"
if args.shuffle_steals_drops:
flags += f" -ssd {args.shuffle_steals_drops_random_percent}"

return flags

def options(args):
result = []

steal_chances = "Original"
if args.steal_chances_higher:
steal_chances = "Higher"
if args.steal_chances_always:
steal_chances = "Always"

return [
("Chances", steal_chances),
]
result.append(("Chances", steal_chances))

result.append(("Shuffle steals & drops", args.shuffle_steals_drops))
if args.shuffle_steals_drops:
result.append(("Random Percent:", f"{args.shuffle_steals_drops_random_percent}%"))

return result

def menu(args):
return (name(), options(args))
Expand Down
22 changes: 22 additions & 0 deletions constants/items.py
Original file line number Diff line number Diff line change
Expand Up @@ -295,3 +295,25 @@
"Marvel Shoes",
"Exp. Egg",
]

## TRASH LIST https://docs.google.com/spreadsheets/d/1Cit5Xl_TCBPFI4q1NEVQhSYGH1wKY9st_1yee3lzCP8/edit#gid=0

TRASH_WEAPONS = [
"Dirk", "MithrilKnife", "Guardian", "MithrilBlade", "RegalCutlass", "Crystal", "Mithril Pike",
"Stout Spear", "Imperial", "Kodachi", "Hardened", "Ashura", "Kotetsu", "Forged",
"Aura", "Strato", "Punisher", "MetalKnuckle", "Mithril Claw", "Kaiser",
"Flail", "Morning Star", "Full Moon", "Boomerang", "Rising Sun", "Cards", "Darts", "Chocobo Brsh",
]

TRASH_ARMOR = ["Buckler", "Mithril Shld", "Heavy Shld", "Gold Shld", "Leather Hat", "Plumed Hat", "Bandana",
"Iron Helmet", "Mithril Helm", "Gold Helmet", "LeatherArmor", "Kung Fu Suit", "Mithril Vest",
"Diamond Vest", "Cotton Robe", "Silk Robe", "Iron Armor",
"DiamondArmor", "Crystal Mail", "Gold Armor",
"Mithril Mail"
]
TRASH_RElICS = ["Charm Bangle", "Coin Toss", "FakeMustache"]


TRASH_ITEMS = TRASH_WEAPONS + TRASH_ARMOR + TRASH_RElICS

TRASH_IDS = [name_id.get(value) for value in TRASH_ITEMS]
8 changes: 4 additions & 4 deletions data/character.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ def __init__(self, id, init_data, name_data):
self.init_magic_evasion = init_data[14]
self.init_right_hand = init_data[15]
self.init_left_hand = init_data[16]
self.init_body = init_data[17]
self.init_head = init_data[18]
self.init_body = init_data[18] # https://discord.com/channels/666661907628949504/931737764205047858/1069220818300698675
self.init_head = init_data[17]
self.init_relic1 = init_data[19]
self.init_relic2 = init_data[20]
self._init_run_success = init_data[21] & 0x03
Expand All @@ -51,8 +51,8 @@ def init_data(self):
init_data[14] = self.init_magic_evasion
init_data[15] = self.init_right_hand
init_data[16] = self.init_left_hand
init_data[17] = self.init_body
init_data[18] = self.init_head
init_data[18] = self.init_body
init_data[17] = self.init_head
init_data[19] = self.init_relic1
init_data[20] = self.init_relic2
init_data[21] = self._init_run_success
Expand Down
Loading