mirror of
https://github.com/rr-/pq-cli.git
synced 2026-09-28 22:33:59 -06:00
ui/curses: highlight changed and added items
This commit is contained in:
@@ -16,7 +16,7 @@ class EquipmentWindow(Focusable, WindowWrapper):
|
||||
)
|
||||
|
||||
self._player = player
|
||||
self._player.equipment.connect("change", self.sync_equipment_change)
|
||||
self._player.equipment.connect("change", self._sync_equipment_change)
|
||||
|
||||
self.sync()
|
||||
|
||||
@@ -24,7 +24,9 @@ class EquipmentWindow(Focusable, WindowWrapper):
|
||||
super().stop()
|
||||
self._data_table.stop()
|
||||
|
||||
self._player.equipment.disconnect("change", self.sync_equipment_change)
|
||||
self._player.equipment.disconnect(
|
||||
"change", self._sync_equipment_change
|
||||
)
|
||||
|
||||
def sync(self) -> None:
|
||||
self._data_table.clear()
|
||||
@@ -33,12 +35,14 @@ class EquipmentWindow(Focusable, WindowWrapper):
|
||||
equipment_type.value.ljust(15),
|
||||
self._player.equipment[equipment_type] or "",
|
||||
)
|
||||
self._data_table.select(None)
|
||||
self._render()
|
||||
|
||||
def sync_equipment_change(
|
||||
def _sync_equipment_change(
|
||||
self, equipment_type: EquipmentType, item_name: T.Optional[str]
|
||||
) -> None:
|
||||
self._data_table.set(equipment_type.value, item_name or "")
|
||||
self._data_table.select(equipment_type.value)
|
||||
self._render()
|
||||
|
||||
def _render(self) -> None:
|
||||
|
||||
@@ -78,6 +78,7 @@ class InventoryWindow(Focusable, DataTableProgressBarWindow):
|
||||
|
||||
def _sync_gold(self) -> None:
|
||||
self._data_table.set("Gold", str(self._player.inventory.gold))
|
||||
self._data_table.select("Gold")
|
||||
self._render_data_table()
|
||||
|
||||
def _sync_items(self) -> None:
|
||||
@@ -86,18 +87,22 @@ class InventoryWindow(Focusable, DataTableProgressBarWindow):
|
||||
for item in self._player.inventory:
|
||||
self._data_table.add(item.name, str(item.quantity))
|
||||
self._data_table.scroll_to_item(0)
|
||||
self._data_table.select(None)
|
||||
self._render_data_table()
|
||||
|
||||
def _sync_item_add(self, item: InventoryItem) -> None:
|
||||
self._data_table.add(item.name, str(item.quantity))
|
||||
self._data_table.select(item.name)
|
||||
self._render_data_table()
|
||||
|
||||
def _sync_item_del(self, item: InventoryItem) -> None:
|
||||
self._data_table.delete(item.name)
|
||||
self._data_table.select(None)
|
||||
self._render_data_table()
|
||||
|
||||
def _sync_item_change(self, item: InventoryItem) -> None:
|
||||
self._data_table.set(item.name, str(item.quantity))
|
||||
self._data_table.select(item.name)
|
||||
self._render_data_table()
|
||||
|
||||
def _on_new_task(self) -> None:
|
||||
|
||||
@@ -60,6 +60,7 @@ class PlotWindow(Focusable, ListBoxProgressBarWindow):
|
||||
if prev is not None:
|
||||
self._list_box.set(-1, "[X] " + prev[4:])
|
||||
self._list_box.add("[ ] " + act_name(act_number))
|
||||
self._list_box.select(-1)
|
||||
self._render_list_box()
|
||||
|
||||
def _sync_position(self) -> None:
|
||||
|
||||
@@ -48,6 +48,7 @@ class QuestBookWindow(Focusable, ListBoxProgressBarWindow):
|
||||
self._list_box.clear()
|
||||
for quest_name in self._player.quest_book.quests[-self.cutoff :]:
|
||||
self._sync_quest_add(quest_name)
|
||||
self._list_box.select(-1)
|
||||
self._render_list_box()
|
||||
|
||||
def _sync_quest_add(self, quest_name: str) -> None:
|
||||
@@ -56,6 +57,7 @@ class QuestBookWindow(Focusable, ListBoxProgressBarWindow):
|
||||
if prev is not None:
|
||||
self._list_box.set(-1, "[X] " + prev[4:])
|
||||
self._list_box.add("[ ] " + quest_name)
|
||||
self._list_box.select(-1)
|
||||
self._render_list_box()
|
||||
|
||||
def _sync_position(self) -> None:
|
||||
|
||||
@@ -41,14 +41,17 @@ class SpellBookWindow(Focusable, WindowWrapper):
|
||||
self._data_table.clear()
|
||||
for spell in self._player.spell_book:
|
||||
self._data_table.add(spell.name, to_roman(spell.level))
|
||||
self._data_table.select(None)
|
||||
self._render()
|
||||
|
||||
def _sync_spell_add(self, spell: Spell) -> None:
|
||||
self._data_table.add(spell.name, to_roman(spell.level))
|
||||
self._data_table.select(spell.name)
|
||||
self._render()
|
||||
|
||||
def _sync_spell_change(self, spell: Spell) -> None:
|
||||
self._data_table.set(spell.name, to_roman(spell.level))
|
||||
self._data_table.select(spell.name)
|
||||
self._render()
|
||||
|
||||
def _render(self) -> None:
|
||||
|
||||
Reference in New Issue
Block a user