Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions src/controllers/mod_manager_controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -512,5 +512,6 @@ def set_browndustx_version(self) -> None:

def _update_view_mods(self) -> None:
logger.info("Updating view with all mods from model.")
self.model.mod_update_conflicts()
mods = self.model.get_mods()
self.view.set_mods(mods, self.config_model.include_mod_relative_path)
48 changes: 29 additions & 19 deletions src/data/characters.csv
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
id,character,costume,is_collab
000101,Lathel,Medicinal Herb Tracker,false
000101,Lathel,Herb Tracker,false
000102,Lathel,Lonely Survivor,false
000103,Lathel,Homunculus,false
000104,Lathel,Dark Knight,false
Expand Down Expand Up @@ -32,12 +32,16 @@ id,character,costume,is_collab
000801,Rubia,Thorn of the Desert,false
000804,Rubia,The Empress of the Ocean,false
000806,Rubia,Maid Name C,false
000807,Rubia,Maid Bikini,false
000807,Rubia,Bikini Agent,false
001001,Sylvia,Desert Flower,false
001002,Sylvia,The Sword Queen,false
001004,Sylvia,Admiral,false
001006,Sylvia,Bikini Agent,false
001101,Teresse,Angel of Destruction,false
001106,Teresse,Medical Club,false
001107,Teresse,Beachside Angel,false
001197,Teresse,Milky Bikini,false
001201,Liatris,Rodev's Star,false
001206,Liatris,Neon Stalker,false
001207,Liatris,Maid Name R,false
Expand All @@ -55,10 +59,24 @@ id,character,costume,is_collab
003402,Morpeah,Daydream Bunny,false
003403,Morpeah,Apostle,false
003501,Sacred Justia,Reclaimed Destiny,false
003601,Olivier,Faithful Wings,false
003601,Olivier,White Witch,false
003602,Olivier,Apostle (Kelian),false
003602,Olivier,Apostle,false
003603,Olivier,Fallen Wings,false
003701,Blade,Apostle,false
003702,Blade,Onsen Swordfighter,false
003703,Blade,Young Lady,false
003801,Liberta,Dark Saintess,false
003802,Liberta,Onsen Manager,false
003892,Liberta,Hedonist,false
003901,Sonya,Shadowed Dream,false
003901,Sonya,Shadow Dream,false
003902,Sonya,Little Pumpkin Girl,false
004001,Darian,Prophetic Dream,false
004002,Darian,Bittersweet Bunny,false
004101,Tyr,Starlight Guardian,false
004102,Tyr,Innocent Bunny,false
020001,Eris,Esteemed Adventurer,true
020002,Eris,Your Very Own Cat,true
020101,Roxy,Respected Master,true
Expand All @@ -75,8 +93,8 @@ id,character,costume,is_collab
060302,Alec,Sword Breaker,false
060402,Celia,Descendant of the Great Witch,false
060403,Celia,Masquerade Bunny,false
060501,Anatasia,Gentle Maid,false
060502,Anatasia,Fire Graffiti,false
060501,Anastasia,Gentle Maid,false
060502,Anastasia,Fire Graffiti,false
060601,Lecliss,Killer Doll,false
060602,Lecliss,Android Queen,false
060701,Rafina,Steel Engine,false
Expand All @@ -88,10 +106,12 @@ id,character,costume,is_collab
061002,Helena,B-Rank Idol,false
061101,Eleaneer,Piercing Magic Bow,false
061102,Eleaneer,B-Rank Idol,false
061103,Eleaneer,Shadow Bunny,false
061302,Dalvi,Bright Moon,false
061305,Dalvi,Summer Vacation,false
061402,Zenith,Robin Hood,false
061404,Zenith,Poolside Guardian,false
061492,Zenith,Stranger Bunny,false
062001,Andrew,Loyal Butler,false
062002,Andrew,Specialist,false
063001,Ingrid,Kardis' Bullet,false
Expand All @@ -113,6 +133,7 @@ id,character,costume,is_collab
067004,Ventana,Onsen Practitioner,false
067101,Granhildr,The Void,false
067102,Granhildr,Comeback Idol,false
067103,Granhildr,Boo Ghost,false
067201,Venaka,DJ,false
067202,Venaka,Wind Dancer,false
067301,Levia,Track and Field Captain,false
Expand All @@ -125,6 +146,9 @@ id,character,costume,is_collab
067503,Luvencia,Wild Dog,false
067601,Wilhelmina,Iron Monarch,false
067603,Wilhelmina,Water Park Queen,false
067604,Wilhelmina,Frozen Queen,false
067701,Granadair,Shrine Maiden of Purification,false
067702,Granadair,Queen of Gluttis,false
100101,Gynt,Lugo Hunter,false
100201,Fred,Lugo Defense Force,false
100301,Lisianne,Wandering Priest,false
Expand All @@ -136,6 +160,7 @@ id,character,costume,is_collab
101101,Seir,Demon's Daughter,false
101102,Seir,B-Rank Idol,false
101103,Seir,New Hire,false
101201,Jayden,Beautiful Girl Devotee,false
101201,Jayden,Beautiful Gird Devotee,false
101202,Jayden,Manga Research Club,false
101301,Emma,Haggard Delinquent,false
Expand All @@ -150,19 +175,4 @@ id,character,costume,is_collab
103401,Rigenette,Little Hunter,false
103501,Beatrice,The Mighty Warrior of the Tribe,false
103601,Maria,Archmage,false
103701,Arines,Priest of Vitality,false
003601,Olivier,White Witch,false
003602,Olivier,Apostle,false
003603,Olivier,Fallen Wings,false
001006,Sylvia,Bikini Agent,false
001197,Teresse,Milky Bikini,false
000807,Rubia,Bikini Agent,false
003901,Sonya,Shadow Dream,false,
004001,Darian,Prophetic Dream,false,
004101,Tyr,Starlight Guardian,false
003902,Sonya,Little Pumpkin Girl,false
067103,Granhildr,Boo Ghost,false
004002,Darian,Bittersweet Bunny,false
061103,Eleaneer,Shadow Bunny,false
067604,Wilhelmina,Frozen Queen,false,
061492,Zenith,Stranger Bunny,false
103701,Arines,Priest of Vitality,false
7 changes: 6 additions & 1 deletion src/data/datings.csv
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,9 @@ id,character_id
6,067603
7,000296
8,001006
9,001197
9,001197
10,066403
11,000706
12,061492
13,004102
14,003892
4 changes: 3 additions & 1 deletion src/data/npcs.csv
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
id,name,character_id
300501,,003201
300501,,003201
000005,Eleanor,
0033,Nebris,003301
38 changes: 38 additions & 0 deletions src/models/mod_manager_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -435,6 +435,42 @@ def get_characters_mod_status(self) -> dict:
)

return mods_status

def mod_update_conflicts(self) -> list[BD2ModEntry]:
mod_list = tuple(filter(lambda entry: entry.enabled, self.get_mods()))
changed_list = []
mod_ids = []

for mod in list(filter(lambda entry: not entry.enabled, self.get_mods())):
mod.has_conflict = False

for mod in mod_list:
if mod.mod.character_id != None:
id = mod.mod.character_id + mod.mod.type.display_name
elif mod.mod.scene_id != None:
id = mod.mod.scene_id + mod.mod.type.display_name
elif mod.mod.npc_id != None:
id = mod.mod.npc_id + mod.mod.type.display_name
elif mod.mod.dating_id != None:
id = mod.mod.dating_id + mod.mod.type.display_name
else:
for file in os.listdir(mod.mod.path):
if file.endswith(".modfile"):
id = file
break

if mod_ids.__contains__(id) and mod != mod_list[mod_ids.index(id)]:
mod.has_conflict = True
mod_list[mod_ids.index(id)].has_conflict = True
changed_list.append(mod.name)
changed_list.append(mod_list[mod_ids.index(id)].name)
elif mod.has_conflict:
mod.has_conflict = False
changed_list.append(mod.name)

mod_ids.append(id)

return changed_list

def enable_mod(self, mod_name: str) -> None:
mod = self.get_mod_by_name(mod_name)
Expand Down Expand Up @@ -1074,6 +1110,8 @@ def _set_bulk_mod_state(self, mod_names: list[str], state: bool, trigger_event:

mod_info.enabled = state

mod_names.extend(self.mod_update_conflicts())

if profile:
self._profile_manager.save_profile(profile)

Expand Down
Binary file added src/resources/assets/characters/004102.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 11 additions & 0 deletions src/resources/characters.qrc
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
<file alias="000801">assets/characters/000801.png</file>
<file alias="000804">assets/characters/000804.png</file>
<file alias="000806">assets/characters/000806.png</file>
<file alias="000807">assets/characters/000807.png</file>
<file alias="001001">assets/characters/001001.png</file>
<file alias="001002">assets/characters/001002.png</file>
<file alias="001004">assets/characters/001004.png</file>
Expand Down Expand Up @@ -65,6 +66,12 @@
<file alias="003703">assets/characters/003703.png</file>
<file alias="003801">assets/characters/003801.png</file>
<file alias="003802">assets/characters/003802.png</file>
<file alias="003901">assets/characters/003901.png</file>
<file alias="003902">assets/characters/003902.png</file>
<file alias="004001">assets/characters/004001.png</file>
<file alias="004002">assets/characters/004002.png</file>
<file alias="004101">assets/characters/004101.png</file>
<file alias="004102">assets/characters/004102.png</file>
<file alias="020001">assets/characters/020001.png</file>
<file alias="020002">assets/characters/020002.png</file>
<file alias="020101">assets/characters/020101.png</file>
Expand Down Expand Up @@ -97,10 +104,12 @@
<file alias="061002">assets/characters/061002.png</file>
<file alias="061101">assets/characters/061101.png</file>
<file alias="061102">assets/characters/061102.png</file>
<file alias="061103">assets/characters/061103.png</file>
<file alias="061302">assets/characters/061302.png</file>
<file alias="061305">assets/characters/061305.png</file>
<file alias="061402">assets/characters/061402.png</file>
<file alias="061404">assets/characters/061404.png</file>
<file alias="061492">assets/characters/061492.png</file>
<file alias="062001">assets/characters/062001.png</file>
<file alias="062002">assets/characters/062002.png</file>
<file alias="063001">assets/characters/063001.png</file>
Expand All @@ -122,6 +131,7 @@
<file alias="067004">assets/characters/067004.png</file>
<file alias="067101">assets/characters/067101.png</file>
<file alias="067102">assets/characters/067102.png</file>
<file alias="067103">assets/characters/067103.png</file>
<file alias="067201">assets/characters/067201.png</file>
<file alias="067202">assets/characters/067202.png</file>
<file alias="067301">assets/characters/067301.png</file>
Expand All @@ -134,6 +144,7 @@
<file alias="067503">assets/characters/067503.png</file>
<file alias="067601">assets/characters/067601.png</file>
<file alias="067603">assets/characters/067603.png</file>
<file alias="067604">assets/characters/067604.png</file>
<file alias="100101">assets/characters/100101.png</file>
<file alias="100201">assets/characters/100201.png</file>
<file alias="100301">assets/characters/100301.png</file>
Expand Down
Loading