├── .gitignore
├── LICENSE
├── README.md
├── mod
├── assets
│ ├── advisor_bubble.dds
│ ├── advisor_icon.dds
│ ├── bg_note_turn.dds
│ ├── button_resource.dds
│ ├── button_unit.dds
│ ├── icon_no.dds
│ ├── icon_ready.dds
│ ├── icon_yes.dds
│ ├── production_branch.dds
│ ├── production_wrench.dds
│ └── screenshot.dds
├── config
│ ├── cui_config.sql
│ └── cui_config.xml
├── cui.modinfo
├── lib
│ ├── cui_settings.lua
│ ├── cui_update.lua
│ └── cui_utils.lua
├── localization
│ ├── cui_de_de.sql
│ ├── cui_en_us.sql
│ ├── cui_es_es.sql
│ ├── cui_fr_fr.sql
│ ├── cui_it_it.sql
│ ├── cui_ja_jp.sql
│ ├── cui_ko_kr.sql
│ ├── cui_pl_pl.sql
│ ├── cui_pt_br.sql
│ ├── cui_ru_ru.sql
│ ├── cui_zh_cn.sql
│ └── cui_zh_hk.sql
└── modules
│ ├── _log
│ └── additions
│ │ ├── cui_gameinfo.lua
│ │ ├── cui_log.lua
│ │ └── cui_log.xml
│ ├── _options
│ ├── additions
│ │ ├── cui_options_button.lua
│ │ ├── cui_options_button.xml
│ │ ├── cui_options_menu.lua
│ │ └── cui_options_menu.xml
│ └── base
│ │ └── options.lua
│ ├── city_panel
│ ├── base
│ │ ├── citypanel.lua
│ │ └── citypanel.xml
│ └── expansion1
│ │ └── citypanel_expansion1.lua
│ ├── city_states
│ ├── base
│ │ ├── citystates.lua
│ │ └── citystates.xml
│ └── expansion1
│ │ └── citystates.xml
│ ├── deal_panel
│ ├── base
│ │ ├── diplomacydealview.lua
│ │ └── diplomacydealview.xml
│ ├── expansion2
│ │ ├── diplomacydealview.lua
│ │ └── diplomacydealview_expansion2.lua
│ └── support
│ │ └── cui_deal_support.lua
│ ├── great_work
│ ├── base
│ │ ├── greatworksoverview.lua
│ │ └── greatworksoverview.xml
│ └── expansion2
│ │ └── greatworksoverview_expansion2.lua
│ ├── leader_icons
│ ├── additions
│ │ ├── cui_leader_icon_tt.lua
│ │ └── cui_leader_icon_tt.xml
│ ├── base
│ │ ├── diplomacyactionview.lua
│ │ ├── diplomacyribbon.lua
│ │ └── leadericon.xml
│ ├── expansion1
│ │ └── diplomacyribbon_expansion1.lua
│ ├── expansion2
│ │ ├── diplomacyactionview.xml
│ │ └── worldcongresspopup.lua
│ └── support
│ │ └── cui_leader_icon_support.lua
│ ├── map_options
│ ├── additions
│ │ ├── cui_map_options.lua
│ │ └── cui_map_options.xml
│ └── base
│ │ ├── selectedunit.lua
│ │ ├── unitflagmanager.lua
│ │ └── worldviewiconsmanager.lua
│ ├── map_tacks
│ └── base
│ │ ├── mappinlistpanel.lua
│ │ ├── mappinlistpanel.xml
│ │ ├── mappinpopup.lua
│ │ └── mappinpopup.xml
│ ├── notes
│ └── additions
│ │ ├── cui_note_button.lua
│ │ ├── cui_note_button.xml
│ │ ├── cui_note_screen.lua
│ │ └── cui_note_screen.xml
│ ├── popup_and_remind
│ ├── additions
│ │ ├── cui_remind_panel.lua
│ │ └── cui_remind_panel.xml
│ ├── base
│ │ ├── civicschooser.lua
│ │ ├── greatworkshowcase.lua
│ │ ├── researchchooser.lua
│ │ └── techciviccompletedpopup.lua
│ ├── expansion1
│ │ └── historicmoments.lua
│ ├── expansion2
│ │ └── historicmoments.lua
│ └── support
│ │ └── cui_tech_civic_support.lua
│ ├── production_panel
│ ├── base
│ │ ├── productionpanel.lua
│ │ └── productionpanel.xml
│ └── support
│ │ ├── cui_production_data.lua
│ │ ├── cui_production_support.lua
│ │ └── cui_production_ui.lua
│ ├── screenshot
│ └── additions
│ │ ├── cui_screenshot.lua
│ │ └── cui_screenshot.xml
│ ├── spy_info
│ └── additions
│ │ ├── cui_spy_info.lua
│ │ └── cui_spy_info.xml
│ ├── unit_list
│ └── additions
│ │ ├── cui_unitlist_button.lua
│ │ ├── cui_unitlist_button.xml
│ │ ├── cui_unitlist_screen.lua
│ │ └── cui_unitlist_screen.xml
│ ├── victory_tracking
│ ├── additions
│ │ ├── cui_victory_tracking.lua
│ │ └── cui_victory_tracking.xml
│ └── support
│ │ └── cui_victory_support.lua
│ └── world_tracker
│ ├── additions
│ ├── cui_city_status.lua
│ └── cui_city_status.xml
│ ├── base
│ ├── statusmessagepanel.lua
│ ├── worldtracker.lua
│ └── worldtracker.xml
│ └── support
│ └── cui_tracker_support.lua
└── scripts
├── build.py
└── test.py
/.gitignore:
--------------------------------------------------------------------------------
1 | .vscode
2 |
3 | # Byte-compiled / optimized / DLL files
4 | __pycache__/
5 | *.py[cod]
6 | *$py.class
7 |
8 | steam_related/
9 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2019 JLMin
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in all
11 | copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19 | SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 
2 | [](https://steamcommunity.com/sharedfiles/filedetails/?id=1671978687)
3 | [](https://github.com/JLMin/ConciseUI/blob/master/LICENSE)
4 |
5 | # Concise UI
6 |
7 | Concise UI greatly improves the game experience by modifying the vanilla UI and adding new UI elements to the game.
8 |
9 | > Supported game versions: _1.0.5.11 (516180)_
10 |
11 | ## How to Install
12 |
13 | The easiest way is to subscribe on [Steam Workshop](https://steamcommunity.com/sharedfiles/filedetails/?id=1671978687).
14 |
15 | Or you can [download](https://github.com/JLMin/ConciseUI/releases) the latest version, and install this mod manually.
16 |
17 | ## Contribution
18 | Since I have uninstalled the game, I am unable to update the mod functionality,
19 | If anyone would like to continue to maintain the mod, I am more than willing to accept PRs.
20 | If you need help in the maintenance process, please feel free to contact me.
21 |
22 | ## License
23 |
24 | This project is licensed under the MIT License - see the LICENSE file for details
25 |
--------------------------------------------------------------------------------
/mod/assets/advisor_bubble.dds:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JLMin/ConciseUI/c8271aed5b72bcfb00f2a8ea678db87b0ea76e9a/mod/assets/advisor_bubble.dds
--------------------------------------------------------------------------------
/mod/assets/advisor_icon.dds:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JLMin/ConciseUI/c8271aed5b72bcfb00f2a8ea678db87b0ea76e9a/mod/assets/advisor_icon.dds
--------------------------------------------------------------------------------
/mod/assets/bg_note_turn.dds:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JLMin/ConciseUI/c8271aed5b72bcfb00f2a8ea678db87b0ea76e9a/mod/assets/bg_note_turn.dds
--------------------------------------------------------------------------------
/mod/assets/button_resource.dds:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JLMin/ConciseUI/c8271aed5b72bcfb00f2a8ea678db87b0ea76e9a/mod/assets/button_resource.dds
--------------------------------------------------------------------------------
/mod/assets/button_unit.dds:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JLMin/ConciseUI/c8271aed5b72bcfb00f2a8ea678db87b0ea76e9a/mod/assets/button_unit.dds
--------------------------------------------------------------------------------
/mod/assets/icon_no.dds:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JLMin/ConciseUI/c8271aed5b72bcfb00f2a8ea678db87b0ea76e9a/mod/assets/icon_no.dds
--------------------------------------------------------------------------------
/mod/assets/icon_ready.dds:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JLMin/ConciseUI/c8271aed5b72bcfb00f2a8ea678db87b0ea76e9a/mod/assets/icon_ready.dds
--------------------------------------------------------------------------------
/mod/assets/icon_yes.dds:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JLMin/ConciseUI/c8271aed5b72bcfb00f2a8ea678db87b0ea76e9a/mod/assets/icon_yes.dds
--------------------------------------------------------------------------------
/mod/assets/production_branch.dds:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JLMin/ConciseUI/c8271aed5b72bcfb00f2a8ea678db87b0ea76e9a/mod/assets/production_branch.dds
--------------------------------------------------------------------------------
/mod/assets/production_wrench.dds:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JLMin/ConciseUI/c8271aed5b72bcfb00f2a8ea678db87b0ea76e9a/mod/assets/production_wrench.dds
--------------------------------------------------------------------------------
/mod/assets/screenshot.dds:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JLMin/ConciseUI/c8271aed5b72bcfb00f2a8ea678db87b0ea76e9a/mod/assets/screenshot.dds
--------------------------------------------------------------------------------
/mod/config/cui_config.sql:
--------------------------------------------------------------------------------
1 | -- ===========================================================================
2 | -- CUI Config Text File
3 | -- ===========================================================================
4 |
5 | INSERT OR REPLACE INTO LocalizedText (Tag, Language, Text) VALUES
6 |
7 | -- ===========================================================================
8 | -- [Deutsch] by [Titule]
9 | -- ===========================================================================
10 | ("LOC_CUI_CONFIG_CATEGORY", "de_DE", "Concise UI"),
11 | ("LOC_CUI_CONFIG_PLACE_MAP_PIN", "de_DE", "Kartennadel hinzufügen"),
12 | ("LOC_CUI_CONFIG_TOGGLE_IMPROVED", "de_DE", "Strategische Resourcen ein/aus"),
13 | ("LOC_CUI_CONFIG_TOGGLE_UNIT_FLAGS", "de_DE", "Einheitenflaggen ein/aus"),
14 | ("LOC_CUI_CONFIG_TOGGLE_TRADERS", "de_DE", "Händler ein/aus"),
15 | ("LOC_CUI_CONFIG_TOGGLE_RELIGIONS", "de_DE", "Religionseinheiten ein/aus"),
16 | ("LOC_CUI_CONFIG_TOGGLE_CITY_BANNERS", "de_DE", "Städtebanner ein/aus"),
17 | ("LOC_CUI_CONFIG_OPEN_UNIT_LIST", "de_DE", "Einheitenliste öffnen"),
18 | ("LOC_CUI_CONFIG_OPEN_NOTES", "de_DE", "Notizen öffnen"),
19 |
20 | -- ===========================================================================
21 | -- [English] by [eudaimonia]
22 | -- ===========================================================================
23 | ("LOC_CUI_CONFIG_CATEGORY", "en_US", "Concise UI"),
24 | ("LOC_CUI_CONFIG_PLACE_MAP_PIN", "en_US", "Add Map Tack"),
25 | ("LOC_CUI_CONFIG_TOGGLE_IMPROVED", "en_US", "Toggle Improved Resource"),
26 | ("LOC_CUI_CONFIG_TOGGLE_UNIT_FLAGS", "en_US", "Toggle Unit Flags"),
27 | ("LOC_CUI_CONFIG_TOGGLE_TRADERS", "en_US", "Toggle Trader Icons"),
28 | ("LOC_CUI_CONFIG_TOGGLE_RELIGIONS", "en_US", "Toggle Religion Icons"),
29 | ("LOC_CUI_CONFIG_TOGGLE_CITY_BANNERS", "en_US", "Toggle City Banners"),
30 | ("LOC_CUI_CONFIG_OPEN_UNIT_LIST", "en_US", "Open Unit List"),
31 | ("LOC_CUI_CONFIG_OPEN_NOTES", "en_US", "Open Notes"),
32 |
33 | -- ===========================================================================
34 | -- [Spanish] by [MinuZzzZz] 4/26/2019
35 | -- ===========================================================================
36 | ("LOC_CUI_CONFIG_CATEGORY", "es_ES", "Concise UI"),
37 | ("LOC_CUI_CONFIG_PLACE_MAP_PIN", "es_ES", "Añadir Marcador de mapa"),
38 | ("LOC_CUI_CONFIG_TOGGLE_IMPROVED", "es_ES", "Alternar Recursos Mejorados"),
39 | ("LOC_CUI_CONFIG_TOGGLE_UNIT_FLAGS", "es_ES", "Alternar Banderas de unidad"),
40 | ("LOC_CUI_CONFIG_TOGGLE_TRADERS", "es_ES", "Alternar Iconos de comerciante"),
41 | ("LOC_CUI_CONFIG_TOGGLE_RELIGIONS", "es_ES", "Toggle Religion Icons"),
42 | ("LOC_CUI_CONFIG_TOGGLE_CITY_BANNERS", "es_ES", "Alternar Estandartes de ciudad"),
43 | ("LOC_CUI_CONFIG_OPEN_UNIT_LIST", "es_ES", "Abrir lista de unidades"),
44 | ("LOC_CUI_CONFIG_OPEN_NOTES", "es_ES", "Open Notes"),
45 |
46 | -- ===========================================================================
47 | -- [French] by [G.] 3/1/2019
48 | -- ===========================================================================
49 | ("LOC_CUI_CONFIG_CATEGORY", "fr_FR", "Concise UI"),
50 | ("LOC_CUI_CONFIG_PLACE_MAP_PIN", "fr_FR", "Ajouter un marqueur"),
51 | ("LOC_CUI_CONFIG_TOGGLE_IMPROVED", "fr_FR", "Afficher les ressources aménagées"),
52 | ("LOC_CUI_CONFIG_TOGGLE_UNIT_FLAGS", "fr_FR", "Afficher les icônes des unités"),
53 | ("LOC_CUI_CONFIG_TOGGLE_TRADERS", "fr_FR", "Afficher les icônes des Négociants"),
54 | ("LOC_CUI_CONFIG_TOGGLE_RELIGIONS", "fr_FR", "Toggle Religion Icons"),
55 | ("LOC_CUI_CONFIG_TOGGLE_CITY_BANNERS", "fr_FR", "Afficher les bannières (noms) des villes"),
56 | ("LOC_CUI_CONFIG_OPEN_UNIT_LIST", "fr_FR", "Ouvrir la liste des unités"),
57 | ("LOC_CUI_CONFIG_OPEN_NOTES", "fr_FR", "Open Notes"),
58 |
59 | -- ===========================================================================
60 | -- [Italiano] by [Diaz Ex Machina] 2/18/2019
61 | -- ===========================================================================
62 | ("LOC_CUI_CONFIG_CATEGORY", "it_IT", "Concise UI"),
63 | ("LOC_CUI_CONFIG_PLACE_MAP_PIN", "it_IT", "Aggiungi spillo"),
64 | ("LOC_CUI_CONFIG_TOGGLE_IMPROVED", "it_IT", "Mostra/nascondi risorse migliorate"),
65 | ("LOC_CUI_CONFIG_TOGGLE_UNIT_FLAGS", "it_IT", "Mostra/nascondi segnaposto unità"),
66 | ("LOC_CUI_CONFIG_TOGGLE_TRADERS", "it_IT", "Mostra/nascondi icone commerciante"),
67 | ("LOC_CUI_CONFIG_TOGGLE_RELIGIONS", "it_IT", "Toggle Religion Icons"),
68 | ("LOC_CUI_CONFIG_TOGGLE_CITY_BANNERS", "it_IT", "Mostra/nascondi banner città"),
69 | ("LOC_CUI_CONFIG_OPEN_UNIT_LIST", "it_IT", "Aprire l'elenco delle unità"),
70 | ("LOC_CUI_CONFIG_OPEN_NOTES", "it_IT", "Open Notes"),
71 |
72 | -- ===========================================================================
73 | -- [Japanese] by [J4A] 2/17/2019
74 | -- ===========================================================================
75 | ("LOC_CUI_CONFIG_CATEGORY", "ja_JP", "Concise UI"),
76 | ("LOC_CUI_CONFIG_PLACE_MAP_PIN", "ja_JP", "ピンの追加"),
77 | ("LOC_CUI_CONFIG_TOGGLE_IMPROVED", "ja_JP", "改善済み資源の表示"),
78 | ("LOC_CUI_CONFIG_TOGGLE_UNIT_FLAGS", "ja_JP", "ユニットアイコンの表示"),
79 | ("LOC_CUI_CONFIG_TOGGLE_TRADERS", "ja_JP", "交易商アイコンの表示"),
80 | ("LOC_CUI_CONFIG_TOGGLE_RELIGIONS", "ja_JP", "宗教アイコンの表示"),
81 | ("LOC_CUI_CONFIG_TOGGLE_CITY_BANNERS", "ja_JP", "都市バナーの表示"),
82 | ("LOC_CUI_CONFIG_OPEN_UNIT_LIST", "ja_JP", "ユニット一覧を開く"),
83 | ("LOC_CUI_CONFIG_OPEN_NOTES", "ja_JP", "ノートを開く"),
84 |
85 | -- ===========================================================================
86 | -- [Korean] by [firefanda] 10/22/2019
87 | -- ===========================================================================
88 | ("LOC_CUI_CONFIG_CATEGORY", "ko_KR", "Concise UI"),
89 | ("LOC_CUI_CONFIG_PLACE_MAP_PIN", "ko_KR", "맵 트래커 추가"),
90 | ("LOC_CUI_CONFIG_TOGGLE_IMPROVED", "ko_KR", "향상된 자원 토글"),
91 | ("LOC_CUI_CONFIG_TOGGLE_UNIT_FLAGS", "ko_KR", "유닛 플래그 토글"),
92 | ("LOC_CUI_CONFIG_TOGGLE_TRADERS", "ko_KR", "교역로 아이콘 토글"),
93 | ("LOC_CUI_CONFIG_TOGGLE_RELIGIONS", "ko_KR", "종교 아이콘 토글"),
94 | ("LOC_CUI_CONFIG_TOGGLE_CITY_BANNERS", "ko_KR", "도시 배너 토글"),
95 | ("LOC_CUI_CONFIG_OPEN_UNIT_LIST", "ko_KR", "유닛 목록 열기"),
96 | ("LOC_CUI_CONFIG_OPEN_NOTES", "ko_KR", "노트 열기"),
97 |
98 | -- ===========================================================================
99 | -- untranslated
100 | -- ===========================================================================
101 | ("LOC_CUI_CONFIG_CATEGORY", "pl_PL", "Concise UI"),
102 | ("LOC_CUI_CONFIG_PLACE_MAP_PIN", "pl_PL", "Add Map Tack"),
103 | ("LOC_CUI_CONFIG_TOGGLE_IMPROVED", "pl_PL", "Toggle Improved Resource"),
104 | ("LOC_CUI_CONFIG_TOGGLE_UNIT_FLAGS", "pl_PL", "Toggle Unit Flags"),
105 | ("LOC_CUI_CONFIG_TOGGLE_TRADERS", "pl_PL", "Toggle Trader Icons"),
106 | ("LOC_CUI_CONFIG_TOGGLE_RELIGIONS", "pl_PL", "Toggle Religion Icons"),
107 | ("LOC_CUI_CONFIG_TOGGLE_CITY_BANNERS", "pl_PL", "Toggle City Banners"),
108 | ("LOC_CUI_CONFIG_OPEN_UNIT_LIST", "pl_PL", "Open Unit List"),
109 | ("LOC_CUI_CONFIG_OPEN_NOTES", "pl_PL", "Open Notes"),
110 |
111 | -- ===========================================================================
112 | -- untranslated
113 | -- ===========================================================================
114 | ("LOC_CUI_CONFIG_CATEGORY", "pt_BR", "Concise UI"),
115 | ("LOC_CUI_CONFIG_PLACE_MAP_PIN", "pt_BR", "Add Map Tack"),
116 | ("LOC_CUI_CONFIG_TOGGLE_IMPROVED", "pt_BR", "Toggle Improved Resource"),
117 | ("LOC_CUI_CONFIG_TOGGLE_UNIT_FLAGS", "pt_BR", "Toggle Unit Flags"),
118 | ("LOC_CUI_CONFIG_TOGGLE_TRADERS", "pt_BR", "Toggle Trader Icons"),
119 | ("LOC_CUI_CONFIG_TOGGLE_RELIGIONS", "pt_BR", "Toggle Religion Icons"),
120 | ("LOC_CUI_CONFIG_TOGGLE_CITY_BANNERS", "pt_BR", "Toggle City Banners"),
121 | ("LOC_CUI_CONFIG_OPEN_UNIT_LIST", "pt_BR", "Open Unit List"),
122 | ("LOC_CUI_CONFIG_OPEN_NOTES", "pt_BR", "Open Notes"),
123 |
124 | -- ===========================================================================
125 | -- [Russian] by [iMiAMi] 11/21/2019
126 | -- ===========================================================================
127 | ("LOC_CUI_CONFIG_CATEGORY", "ru_RU", "Concise UI"),
128 | ("LOC_CUI_CONFIG_PLACE_MAP_PIN", "ru_RU", "Добавить метку"),
129 | ("LOC_CUI_CONFIG_TOGGLE_IMPROVED", "ru_RU", "Переключить улучшения ресурсов"),
130 | ("LOC_CUI_CONFIG_TOGGLE_UNIT_FLAGS", "ru_RU", "Переключить значки юнитов"),
131 | ("LOC_CUI_CONFIG_TOGGLE_TRADERS", "ru_RU", "Переключить значки торговцев"),
132 | ("LOC_CUI_CONFIG_TOGGLE_RELIGIONS", "ru_RU", "Переключить значки религий"),
133 | ("LOC_CUI_CONFIG_TOGGLE_CITY_BANNERS", "ru_RU", "Переключить баннеры городов"),
134 | ("LOC_CUI_CONFIG_OPEN_UNIT_LIST", "ru_RU", "Открыть список юнитов"),
135 | ("LOC_CUI_CONFIG_OPEN_NOTES", "ru_RU", "Открыть заметки"),
136 |
137 | -- ===========================================================================
138 | -- [Simplified Chinese] by [eudaimonia]
139 | -- ===========================================================================
140 | ("LOC_CUI_CONFIG_CATEGORY", "zh_Hans_CN", "Concise UI"),
141 | ("LOC_CUI_CONFIG_PLACE_MAP_PIN", "zh_Hans_CN", "添加地图钉"),
142 | ("LOC_CUI_CONFIG_TOGGLE_IMPROVED", "zh_Hans_CN", "开启/关闭已改良资源图标"),
143 | ("LOC_CUI_CONFIG_TOGGLE_UNIT_FLAGS", "zh_Hans_CN", "开启/关闭单位图标"),
144 | ("LOC_CUI_CONFIG_TOGGLE_TRADERS", "zh_Hans_CN", "开启/关闭商人图标"),
145 | ("LOC_CUI_CONFIG_TOGGLE_RELIGIONS", "zh_Hans_CN", "开启/关闭宗教单位图标"),
146 | ("LOC_CUI_CONFIG_TOGGLE_CITY_BANNERS", "zh_Hans_CN", "开启/关闭城市横幅"),
147 | ("LOC_CUI_CONFIG_OPEN_UNIT_LIST", "zh_Hans_CN", "打开单位列表"),
148 | ("LOC_CUI_CONFIG_OPEN_NOTES", "zh_Hans_CN", "打开备忘录"),
149 |
150 | -- ===========================================================================
151 | -- untranslated
152 | -- ===========================================================================
153 | ("LOC_CUI_CONFIG_CATEGORY", "zh_Hant_HK", "Concise UI"),
154 | ("LOC_CUI_CONFIG_PLACE_MAP_PIN", "zh_Hant_HK", "添加地图钉"),
155 | ("LOC_CUI_CONFIG_TOGGLE_IMPROVED", "zh_Hant_HK", "开启/关闭已改良资源图标"),
156 | ("LOC_CUI_CONFIG_TOGGLE_UNIT_FLAGS", "zh_Hant_HK", "开启/关闭单位图标"),
157 | ("LOC_CUI_CONFIG_TOGGLE_TRADERS", "zh_Hant_HK", "开启/关闭商人图标"),
158 | ("LOC_CUI_CONFIG_TOGGLE_RELIGIONS", "zh_Hant_HK", "开启/关闭宗教单位图标"),
159 | ("LOC_CUI_CONFIG_TOGGLE_CITY_BANNERS", "zh_Hant_HK", "开启/关闭城市横幅"),
160 | ("LOC_CUI_CONFIG_OPEN_UNIT_LIST", "zh_Hant_HK", "打开单位列表"),
161 | ("LOC_CUI_CONFIG_OPEN_NOTES", "zh_Hant_HK", "打开备忘录");
162 |
163 | -- ===========================================================================
164 | -- EOF
165 |
--------------------------------------------------------------------------------
/mod/config/cui_config.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/mod/lib/cui_settings.lua:
--------------------------------------------------------------------------------
1 | -- ===========================================================================
2 | -- cui_settings.lua
3 | -- ===========================================================================
4 |
5 | local SETTING_PREFIX = "CUI_SETTING_"
6 |
7 | -- CUI -----------------------------------------------------------------------
8 | CuiSettings = {
9 | -- map options
10 | SHOW_IMPROVES = {field = "ShowImproveS", default = false},
11 | SHOW_UNITS = {field = "ShowUnits", default = true},
12 | SHOW_TRADERS = {field = "ShowTraders", default = true},
13 | SHOW_RELIGIONS = {field = "ShowReligions", default = true},
14 | SHOW_CITYS = {field = "ShowCitys", default = true},
15 | -- map pins
16 | SHOW_DISTRICTS = {field = "ShowDistricts", default = true},
17 | SHOW_WONDERS = {field = "ShowWonders", default = false},
18 | AUTO_NAMING = {field = "AutoNaming", default = true},
19 | -- world tracker
20 | WT_GOSSIP_LOG = {field = "TrackerGossipLog", default = false},
21 | WT_COMBAT_LOG = {field = "TrackerCombatLog", default = false},
22 | DF_GOSSIP_LOG = {field = "DefaultGossipLog", default = false},
23 | DF_COMBAT_LOG = {field = "DefaultCombatLog", default = false},
24 | GOSSIP_LOG_STATE = {field = "GossipLogState", default = 1},
25 | COMBAT_LOG_STATE = {field = "CombatLogState", default = 1},
26 | -- production panel
27 | QUEUE_BY_DEFAULT = {field = "QueueByDefault", default = false},
28 | -- great works
29 | SORT_BY_CITY = {field = "SortByCity", default = true},
30 | -- civ victory tracking
31 | SCIENCE = {field = "ScienceVictory", default = false},
32 | CULTURE = {field = "CultureVictory", default = false},
33 | DOMINATION = {field = "DominationVictory", default = false},
34 | RELIGION = {field = "ReligionVictory", default = false},
35 | DIPLOMATIC = {field = "DiplomaticVictory", default = false},
36 | -- popup manager
37 | POPUP_RESEARCH = {field = "PopupResearch", default = true},
38 | AUDIO_RESEARCH = {field = "PlayResearchAudio", default = true},
39 | POPUP_HISTORIC = {field = "PopupHistoric", default = false},
40 | POPUP_CREATWORK = {field = "PopupGreatWork", default = false},
41 | POPUP_RELIC = {field = "PopupRelic", default = true},
42 | -- remind
43 | REMIND_TECH = {field = "RemindTech", default = true},
44 | REMIND_CIVIC = {field = "RemindCivic", default = true},
45 | REMIND_GOVERNMENT = {field = "RemindGovernment", default = true},
46 | REMIND_GOVERNOR = {field = "RemindGovernor", default = true},
47 | -- quick combat & movement
48 | PLAYER_COMBAT = {field = "PlayerCombat", default = true},
49 | PLAYER_MOVEMENT = {field = "PlayerMovement", default = true},
50 | AI_COMBAT = {field = "AICombat", default = true},
51 | AI_MOVEMENT = {field = "AIMovement", default = true}
52 | }
53 | CuiSettings.__index = CuiSettings
54 |
55 | -- CUI -----------------------------------------------------------------------
56 | local function CuiCompleteKey(field)
57 | return SETTING_PREFIX .. tostring(field)
58 | end
59 |
60 | -- CUI -----------------------------------------------------------------------
61 | function CuiSettings:SetBoolean(k, b)
62 | local key = CuiCompleteKey(k.field)
63 | local value = b and "true" or "false"
64 | PlayerConfigurations[Game.GetLocalPlayer()]:SetValue(key, value)
65 | end
66 |
67 | -- CUI -----------------------------------------------------------------------
68 | function CuiSettings:GetBoolean(k)
69 | local key = CuiCompleteKey(k.field)
70 | local value = PlayerConfigurations[Game.GetLocalPlayer()]:GetValue(key)
71 | if value ~= nil then
72 | return value == "true"
73 | else
74 | return k.default
75 | end
76 | end
77 |
78 | -- CUI -----------------------------------------------------------------------
79 | function CuiSettings:ReverseAndGetBoolean(k)
80 | local v = CuiSettings:GetBoolean(k)
81 | local value = v == false
82 | CuiSettings:SetBoolean(k, value)
83 | return value
84 | end
85 |
86 | -- CUI -----------------------------------------------------------------------
87 | function CuiSettings:SetNumber(k, v)
88 | local key = CuiCompleteKey(k.field)
89 | local value = v
90 | PlayerConfigurations[Game.GetLocalPlayer()]:SetValue(key, value)
91 | end
92 |
93 | -- CUI -----------------------------------------------------------------------
94 | function CuiSettings:GetNumber(k)
95 | local key = CuiCompleteKey(k.field)
96 | local value = PlayerConfigurations[Game.GetLocalPlayer()]:GetValue(key)
97 | if value ~= nil then
98 | return value
99 | else
100 | return k.default
101 | end
102 | end
103 |
104 | -- CUI -----------------------------------------------------------------------
105 | function CuiSettings:SetString(k, s)
106 | local key = CuiCompleteKey(k.field)
107 | local value = tostring(s)
108 | PlayerConfigurations[Game.GetLocalPlayer()]:SetValue(key, value)
109 | end
110 |
111 | -- CUI -----------------------------------------------------------------------
112 | function CuiSettings:GetString(k)
113 | local key = CuiCompleteKey(k.field)
114 | local value = PlayerConfigurations[Game.GetLocalPlayer()]:GetValue(key)
115 | if value ~= nil then
116 | return value
117 | else
118 | return k.default
119 | end
120 | end
121 |
--------------------------------------------------------------------------------
/mod/lib/cui_update.lua:
--------------------------------------------------------------------------------
1 | CuiVersion = "1.6.2"
2 | LastUpdate = "2020-10-12"
3 | VersionDetail = "Concise UI - " .. CuiVersion .. "[NEWLINE]" .. "Last Update: " .. LastUpdate
4 |
--------------------------------------------------------------------------------
/mod/lib/cui_utils.lua:
--------------------------------------------------------------------------------
1 | -- ===========================================================================
2 | -- cui_utils.lua
3 | -- ===========================================================================
4 |
5 | isExpansion1 = Modding.IsModActive("1B28771A-C749-434B-9053-D1380C553DE9")
6 | isExpansion2 = Modding.IsModActive("4873eb62-8ccc-4574-b784-dda455e74e68")
7 |
8 | -- CUI -----------------------------------------------------------------------
9 | function printc(t, i)
10 | local n = i or ""
11 | if isNil(t) then
12 | print("Cui Print:", n, "nil")
13 | end
14 |
15 | if type(t) == "table" then
16 | local s = "-- Cui Print Table: " .. n .. " ================"
17 | print(s)
18 | for k, v in pairs(t) do
19 | print("-", k, v)
20 | end
21 | print("--")
22 | else
23 | print("Cui Print:", n, t)
24 | end
25 | end
26 |
27 | -- CUI -----------------------------------------------------------------------
28 | function isNil(v)
29 | if type(v) == "table" then
30 | return v == nil or next(v) == nil
31 | elseif type(v) == "string" then
32 | return v == nil or v == ""
33 | else
34 | return v == nil
35 | end
36 | end
37 |
38 | -- CUI -----------------------------------------------------------------------
39 | function SortedTable(t, f)
40 | local a = {}
41 |
42 | for n in pairs(t) do
43 | table.insert(a, n)
44 | end
45 |
46 | if f then
47 | table.sort(
48 | a,
49 | function(k1, k2)
50 | return f(t, k1, k2)
51 | end
52 | )
53 | else
54 | table.sort(a)
55 | end
56 |
57 | local i = 0
58 | local iter = function()
59 | i = i + 1
60 | if a[i] == nil then
61 | return nil
62 | else
63 | return a[i], t[a[i]]
64 | end
65 | end
66 | return iter
67 | end
68 |
69 | -- CUI -----------------------------------------------------------------------
70 | function CuiRegCallback(control, callbackLClick, callbackRClick, sound)
71 | if callbackLClick then
72 | control:RegisterCallback(Mouse.eLClick, callbackLClick)
73 | end
74 | if callbackRClick then
75 | if sound then
76 | control:RegisterCallback(
77 | Mouse.eRClick,
78 | function()
79 | callbackRClick()
80 | UI.PlaySound(sound)
81 | end
82 | )
83 | else
84 | control:RegisterCallback(
85 | Mouse.eRClick,
86 | function()
87 | callbackRClick()
88 | UI.PlaySound("Play_UI_Click")
89 | end
90 | )
91 | end
92 | end
93 | control:RegisterCallback(
94 | Mouse.eMouseEnter,
95 | function()
96 | UI.PlaySound("Main_Menu_Mouse_Over")
97 | end
98 | )
99 | end
100 |
101 | -- CUI -----------------------------------------------------------------------
102 | function CuiLeaderTexture(icon, size, shouldShow)
103 | local x, y, sheet
104 | x, y, sheet = IconManager:FindIconAtlas(icon, size)
105 | if (sheet == nil or sheet == "" or (not shouldShow)) then
106 | x, y, sheet = IconManager:FindIconAtlas("ICON_LEADER_DEFAULT", size)
107 | end
108 | return x, y, sheet
109 | end
110 |
111 | -- CUI -----------------------------------------------------------------------
112 | function CuiSetIconToSize(iconControl, iconName, iconSize)
113 | if iconSize == nil then
114 | iconSize = 36
115 | end
116 | local x, y, szIconName, iconSize = IconManager:FindIconAtlasNearestSize(iconName, iconSize, true)
117 | iconControl:SetTexture(x, y, szIconName)
118 | iconControl:SetSizeVal(iconSize, iconSize)
119 | end
120 |
121 | -- CUI -----------------------------------------------------------------------
122 | function CuiGetPlayerBasicData()
123 | local localPlayerID = Game.GetLocalPlayer()
124 | local localPlayer = Players[localPlayerID]
125 | local localDiplomacy = localPlayer:GetDiplomacy()
126 |
127 | local aliveMajors = PlayerManager.GetAliveMajors()
128 | table.sort(
129 | aliveMajors,
130 | function(a, b)
131 | return localDiplomacy:GetMetTurn(a:GetID()) < localDiplomacy:GetMetTurn(b:GetID())
132 | end
133 | )
134 |
135 | local playerData = {}
136 | local metPlayers, uniqueLeaders = GetMetPlayersAndUniqueLeaders()
137 |
138 | for _, pPlayer in ipairs(aliveMajors) do
139 | local playerID = pPlayer:GetID()
140 | local pPlayerConfig = PlayerConfigurations[playerID]
141 | playerData[playerID] = {
142 | playerID = playerID,
143 | isLocalPlayer = playerID == Game.GetLocalPlayer(),
144 | isHuman = GameConfiguration.IsAnyMultiplayer() and pPlayerConfig:IsHuman(),
145 | isMet = metPlayers[playerID],
146 | leaderName = pPlayerConfig:GetLeaderTypeName(),
147 | leaderIcon = "ICON_" .. pPlayerConfig:GetLeaderTypeName()
148 | }
149 | end
150 |
151 | return playerData
152 | end
153 |
--------------------------------------------------------------------------------
/mod/localization/cui_en_us.sql:
--------------------------------------------------------------------------------
1 | -- =============================================================================
2 | -- CUI Ingame Text - [English] by [eudaimonia]
3 | -- =============================================================================
4 |
5 | INSERT OR REPLACE INTO LocalizedText (Language, Tag, Text) VALUES
6 |
7 | -- =============================================================================
8 | -- City Panel
9 | ("en_US", "LOC_CUI_CP_MANAGE_CITIZENS_TILES", "Manage Citizens and Tiles"),
10 |
11 | -- =============================================================================
12 | -- City States Panel
13 | ("en_US", "LOC_CUI_CSP_ENVOYS_SUZERAIN", "Envoys Sent: {1_num}, Suzerain of: {2_num}"),
14 |
15 | -- =============================================================================
16 | -- Deal Panel
17 | ("en_US", "LOC_CUI_DP_GOLD_EDIT_TOOLTIP", "L-Click Add, R-Click Subtract"),
18 | ("en_US", "LOC_CUI_DP_THEY_HAVE_ITEM_TOOLTIP", "They already have"),
19 | ("en_US", "LOC_CUI_DP_WE_HAVE_ITEM_TOOLTIP", "We already have"),
20 | ("en_US", "LOC_CUI_DP_WE_HAVE_ONLY_ONE_TOOLTIP", "We only have one"),
21 |
22 | -- =============================================================================
23 | -- Diplomatic Banner
24 | ("en_US", "LOC_CUI_DB_CITY", "Cities: {1_num}"),
25 | ("en_US", "LOC_CUI_DB_RELIGION", "Religion: {1_name}"),
26 | ("en_US", "LOC_CUI_DB_NONE", "None"),
27 | ("en_US", "LOC_CUI_DB_PEACE_DEAL_AVAILABLE", "[Peace Deal is Available]"),
28 | ("en_US", "LOC_CUI_DB_PEACE_DEAL_NOT_AVAILABLE", "[Peace Deal: {1_Remaining}[ICON_TURN]]"),
29 | ("en_US", "LOC_CUI_DB_RELATIONSHIP", "Relationship: {1_Relationship}"),
30 | ("en_US", "LOC_CUI_DB_GRIEVANCES_NONE", "No Grievances"),
31 | ("en_US", "LOC_CUI_DB_GRIEVANCES", "Grievances: {1_Grievances}"),
32 | ("en_US", "LOC_CUI_DB_THEY_CAN_OFFER", "They can offer:"),
33 | ("en_US", "LOC_CUI_DB_WE_CAN_OFFER", "We can offer:"),
34 | ("en_US", "LOC_CUI_DB_GOLD", "Gold:"),
35 | ("en_US", "LOC_CUI_DB_GOLD_AND_FAVOR", "Gold and Diplomatic Favors:"),
36 | ("en_US", "LOC_CUI_DB_SCORE_AND_YIELDS", "Score and Yields:"),
37 | ("en_US", "LOC_CUI_DB_MARS_PROJECT", "Mars Colony: {1_progress} {2_progress} {3_progress}"),
38 | ("en_US", "LOC_CUI_DB_EXOPLANET_EXPEDITION", "Exoplanet Expedition: {1_progress}{2_progress}{3_progress}{4_progress}{5_progress}"),
39 | ("en_US", "LOC_CUI_DB_VISITING_TOURISTS", "Visiting Tourists: {1_num} / {2_total}"),
40 | ("en_US", "LOC_CUI_DB_CAPITALS_CAPTURED", "Capitals Captured: {1_num}"),
41 | ("en_US", "LOC_CUI_DB_CIVS_CONVERTED", "Civilizations Converted: {1_num} / {2_total}"),
42 | ("en_US", "LOC_CUI_DB_DIPLOMATIC_POINT", "Diplomatic Victory Point: {1_num} / {2_total}"),
43 |
44 | -- =============================================================================
45 | -- Minimap Panel
46 | ("en_US", "LOC_CUI_MP_SHOW_DISTRICTS_TOOLTIP", "Show Districts Icons"),
47 | ("en_US", "LOC_CUI_MP_SHOW_WONDERS_TOOLTIP", "Show Wonders Icons"),
48 | ("en_US", "LOC_CUI_MP_AUTONAMING", "Naming"),
49 | ("en_US", "LOC_CUI_MP_AUTONAMING_TOOLTIP", "Auto-naming pins"),
50 | ("en_US", "LOC_CUI_MO_SHOW_IMPROVED_RESOURCES", "Show Improved Resource Icons"),
51 | ("en_US", "LOC_CUI_MO_TOGGLE_IMPROVED_TOOLTIP", "Toggle Improved Resource Icons"),
52 | ("en_US", "LOC_CUI_MO_SHOW_UNIT_FLAGS", "Show Unit Flags"),
53 | ("en_US", "LOC_CUI_MP_TOGGLE_UNIT_FLAGS_TOOLTIP", "Toggle Unit Flags"),
54 | ("en_US", "LOC_CUI_MO_SHOW_CITY_BANNERS", "Show City Banners"),
55 | ("en_US", "LOC_CUI_MP_TOGGLE_CITY_BANNERS_TOOLTIP", "Toggle City Banners"),
56 | ("en_US", "LOC_CUI_MO_SHOW_TRADERS", "Show Traders"),
57 | ("en_US", "LOC_CUI_MP_TOGGLE_TRADERS_TOOLTIP", "Toggle Trader Flags"),
58 | ("en_US", "LOC_CUI_MO_SHOW_RELIGIONS", "Show Religion Units"),
59 | ("en_US", "LOC_CUI_MP_TOGGLE_RELIGIONS_TOOLTIP", "Toggle Religion Flags"),
60 |
61 | -- =============================================================================
62 | -- SpyInfo
63 | ("en_US", "LOC_CUI_SI_SPY_AVAILABLE", "{1_num} [ICON_Unit] {1_num : plural 1?Spy; other?Spies;} available"),
64 | ("en_US", "LOC_CUI_SI_SPY_CAPACITY", "{1_num} [ICON_Unit] {1_num : plural 1?Spy; other?Spies;} capacity"),
65 |
66 | -- =============================================================================
67 | -- World Tracker
68 | ("en_US", "LOC_CUI_WT_GOSSIP_LOG", "Gossip Log"),
69 | ("en_US", "LOC_CUI_WT_COMBAT_LOG", "Combat Log"),
70 |
71 | -- =============================================================================
72 | -- Production Panel
73 | ("en_US", "LOC_CUI_PP_QUEUE_DEFAULT", "Use Queue By Default"),
74 |
75 | -- =============================================================================
76 | -- Great Works
77 | ("en_US", "LOC_CUI_GW_SORT_BY_CITY", "Sort By City"),
78 | ("en_US", "LOC_CUI_GW_SORT_BY_BUILDING", "Sort By Building"),
79 | ("en_US", "LOC_CUI_GW_THEMING_HELPER", "Theming Helper"),
80 | ("en_US", "LOC_CUI_GW_THEMING_HELPER_TOOLTIP", "Pick three Great Works / Artifacts of the same color and different numbers to complete a theme."),
81 |
82 | -- =============================================================================
83 | -- Notes
84 | ("en_US", "LOC_CUI_NOTES", "Notes"),
85 | ("en_US", "LOC_CUI_NOTE_LAST_EDIT", "[ Turn: {1_num} ]"),
86 | ("en_US", "LOC_CUI_NOTE_EMPTY", "Empty Note"),
87 |
88 | -- =============================================================================
89 | -- Options
90 | ("en_US", "LOC_CUI_OPTIONS_TAB_VICTORY", "Victories"),
91 | ("en_US", "LOC_CUI_OPTIONS_TAB_LOG", "Logs"),
92 | ("en_US", "LOC_CUI_OPTIONS_TAB_POPUP", "Popups"),
93 | ("en_US", "LOC_CUI_OPTIONS_TAB_REMIND", "Remind"),
94 | --
95 | ("en_US", "LOC_CUI_OPTIONS_DESC_VICTORY", "Please select the victory you want to track."),
96 | ("en_US", "LOC_CUI_OPTIONS_DESC_LOG", "Please select where the logs will be displayed."),
97 | ("en_US", "LOC_CUI_OPTIONS_DESC_POPUP", "Please select the popups you want to enable."),
98 | ("en_US", "LOC_CUI_OPTIONS_DESC_REMIND", "Please select the reminders you want to use."),
99 | ("en_US", "LOC_CUI_OPTIONS_DESC_SPEED", "Please select quick combat & movement objects."),
100 | --
101 | ("en_US", "LOC_CUI_OPTIONS_LOG_SHOW_NONE", "Disable"),
102 | ("en_US", "LOC_CUI_OPTIONS_LOG_DEFAULT", "Default position"),
103 | ("en_US", "LOC_CUI_OPTIONS_LOG_WORLDTRACKER", "World Tracker"),
104 | ("en_US", "LOC_CUI_OPTIONS_LOG_BOTH", "Both"),
105 | --
106 | ("en_US", "LOC_CUI_OPTIONS_POPUP_RESEARCH", "Tech/Civic complete"),
107 | ("en_US", "LOC_CUI_OPTIONS_POPUP_AUDIO", "Tech/Civic audio"),
108 | ("en_US", "LOC_CUI_OPTIONS_POPUP_ERA_SCORE", "Gain era score"),
109 | ("en_US", "LOC_CUI_OPTIONS_POPUP_GREAT_WORK", "Create great works"),
110 | ("en_US", "LOC_CUI_OPTIONS_POPUP_RELIC", "Get relics"),
111 | --
112 | ("en_US", "LOC_CUI_OPTIONS_REMIND_TECH", "Tech complete by eureka"),
113 | ("en_US", "LOC_CUI_OPTIONS_REMIND_CIVIC", "Civic complete by inspire"),
114 | ("en_US", "LOC_CUI_OPTIONS_REMIND_GOVERNMENT", "Free government chance"),
115 | ("en_US", "LOC_CUI_OPTIONS_REMIND_GOVERNOR", "Governor titles available"),
116 | --
117 | ("en_US", "LOC_CUI_OPTIONS_QUICK_COMBAT", "Quick Combat"),
118 | ("en_US", "LOC_CUI_OPTIONS_QUICK_MOVEMENT", "Quick Movement"),
119 | ("en_US", "LOC_CUI_OPTIONS_SPEED_PLAYER_ONLY", "Player Only"),
120 | ("en_US", "LOC_CUI_OPTIONS_SPEED_AI_ONLY", "AI Only"),
121 |
122 | -- =============================================================================
123 | -- Screenshot
124 | ("en_US", "LOC_CUI_SCREENSHOT_TOOLTIP", "Enter Screenshot Mode[NEWLINE][NEWLINE]Screenshot Mode will hide most or all UI Elements, allows you to take clean screenshots.[NEWLINE][NEWLINE]Left-click hide all UI Elements[NEWLINE]Right-click hide all UI Elements except for City Banners[NEWLINE]Hold ALT to rotate the screen[NEWLINE]Press ESC to exit Screenshot Mode"),
125 |
126 | -- =============================================================================
127 | ("en_US", "LOC_CUI_COLON", ": ");
128 | -- EOF
129 |
--------------------------------------------------------------------------------
/mod/localization/cui_ja_jp.sql:
--------------------------------------------------------------------------------
1 | -- =============================================================================
2 | -- CUI Ingame Text - [Japanese] by [J4A] 2/17/2019
3 | -- =============================================================================
4 |
5 | INSERT OR REPLACE INTO LocalizedText (Language, Tag, Text) VALUES
6 |
7 | -- =============================================================================
8 | -- City Panel
9 | ("ja_JP", "LOC_CUI_CP_MANAGE_CITIZENS_TILES", "市民とタイルを管理"),
10 |
11 | -- =============================================================================
12 | -- City States Panel
13 | ("ja_JP", "LOC_CUI_CSP_ENVOYS_SUZERAIN", "代表団: {1_num} / 宗主国: {2_num}"),
14 |
15 | -- =============================================================================
16 | -- Deal Panel
17 | ("ja_JP", "LOC_CUI_DP_GOLD_EDIT_TOOLTIP", "左クリックで追加 / 右クリックで撤回"),
18 | ("ja_JP", "LOC_CUI_DP_THEY_HAVE_ITEM_TOOLTIP", "相手が所有している"),
19 | ("ja_JP", "LOC_CUI_DP_WE_HAVE_ITEM_TOOLTIP", "自分が所有している"),
20 | ("ja_JP", "LOC_CUI_DP_WE_HAVE_ONLY_ONE_TOOLTIP", "1つしか所有していない"),
21 |
22 | -- =============================================================================
23 | -- Diplomatic Banner
24 | ("ja_JP", "LOC_CUI_DB_CITY", "都市: {1_num}"),
25 | ("ja_JP", "LOC_CUI_DB_RELIGION", "宗教を創始: {1_name}"),
26 | ("ja_JP", "LOC_CUI_DB_NONE", "なし"),
27 | ("ja_JP", "LOC_CUI_DB_PEACE_DEAL_AVAILABLE", "[和平可能]"),
28 | ("ja_JP", "LOC_CUI_DB_PEACE_DEAL_NOT_AVAILABLE", "[和平可能: {1_Remaining}[ICON_TURN]]"),
29 | ("ja_JP", "LOC_CUI_DB_RELATIONSHIP", "関係: {1_Relationship}"),
30 | ("ja_JP", "LOC_CUI_DB_GRIEVANCES_NONE", "不平はありません"),
31 | ("ja_JP", "LOC_CUI_DB_GRIEVANCES", "不平: {1_Grievances}"),
32 | ("ja_JP", "LOC_CUI_DB_THEY_CAN_OFFER", "相手が提供できる品目: "),
33 | ("ja_JP", "LOC_CUI_DB_WE_CAN_OFFER", "自分が提供できる品目: "),
34 | ("ja_JP", "LOC_CUI_DB_GOLD", "ゴールド: "),
35 | ("ja_JP", "LOC_CUI_DB_GOLD_AND_FAVOR", "ゴールドと外交的支持: "),
36 | ("ja_JP", "LOC_CUI_DB_SCORE_AND_YIELDS", "スコアと産出量: "),
37 | ("ja_JP", "LOC_CUI_DB_MARS_PROJECT", "科学勝利: {1_progress} {2_progress} {3_progress}"),
38 | ("ja_JP", "LOC_CUI_DB_EXOPLANET_EXPEDITION", "科学勝利: {1_progress}{2_progress}{3_progress}{4_progress}{5_progress}"),
39 | ("ja_JP", "LOC_CUI_DB_VISITING_TOURISTS", "文化勝利: {1_num} / {2_total}"),
40 | ("ja_JP", "LOC_CUI_DB_CAPITALS_CAPTURED", "制覇勝利: {1_num}"),
41 | ("ja_JP", "LOC_CUI_DB_CIVS_CONVERTED", "宗教勝利: {1_num} / {2_total}"),
42 | ("ja_JP", "LOC_CUI_DB_DIPLOMATIC_POINT", "外交勝利: {1_num} / {2_total}"),
43 |
44 | -- =============================================================================
45 | -- Minimap Panel
46 | ("ja_JP", "LOC_CUI_MP_SHOW_DISTRICTS_TOOLTIP", "区域のアイコンを表示"),
47 | ("ja_JP", "LOC_CUI_MP_SHOW_WONDERS_TOOLTIP", "遺産のアイコンを表示"),
48 | ("ja_JP", "LOC_CUI_MP_AUTONAMING", "命名"),
49 | ("ja_JP", "LOC_CUI_MP_AUTONAMING_TOOLTIP", "ピンの名前を自動で追加する"),
50 | ("ja_JP", "LOC_CUI_MO_SHOW_IMPROVED_RESOURCES", "改善済み資源のアイコンを表示"),
51 | ("ja_JP", "LOC_CUI_MO_TOGGLE_IMPROVED_TOOLTIP", "改善済み資源アイコンの切り替え"),
52 | ("ja_JP", "LOC_CUI_MO_SHOW_UNIT_FLAGS", "ユニットアイコンを表示"),
53 | ("ja_JP", "LOC_CUI_MP_TOGGLE_UNIT_FLAGS_TOOLTIP", "ユニットアイコンの切り替え"),
54 | ("ja_JP", "LOC_CUI_MO_SHOW_CITY_BANNERS", "都市バナーを表示"),
55 | ("ja_JP", "LOC_CUI_MP_TOGGLE_CITY_BANNERS_TOOLTIP", "都市バナーの切り替え"),
56 | ("ja_JP", "LOC_CUI_MO_SHOW_TRADERS", "交易商アイコンを表示"),
57 | ("ja_JP", "LOC_CUI_MP_TOGGLE_TRADERS_TOOLTIP", "交易商アイコンの切り替え"),
58 | ("ja_JP", "LOC_CUI_MO_SHOW_RELIGIONS", "宗教ユニットを表示"),
59 | ("ja_JP", "LOC_CUI_MP_TOGGLE_RELIGIONS_TOOLTIP", "宗教表示の切り替え"),
60 |
61 | -- =============================================================================
62 | -- Top Panel
63 | ("ja_JP", "LOC_CUI_SI_SPY_AVAILABLE", "[ICON_Unit]スパイ待機中: {1_num}"),
64 | ("ja_JP", "LOC_CUI_SI_SPY_CAPACITY", "[ICON_Unit]スパイ保有枠: {1_num}"),
65 |
66 | -- =============================================================================
67 | -- World Tracker
68 | ("ja_JP", "LOC_CUI_WT_GOSSIP_LOG", "ゴシップログ"),
69 | ("ja_JP", "LOC_CUI_WT_COMBAT_LOG", "戦闘ログ"),
70 | ("ja_JP", "LOC_CUI_WT_PERSIST", "ログを保存"),
71 | ("ja_JP", "LOC_CUI_WT_PERSIST_TOOLTIP", "ターン間でゴシップログを消去しないでください。"),
72 | ("ja_JP", "LOC_CUI_WT_CLOG_PERSIST_TOOLTIP", "ターン間の戦闘ログをクリアしないでください。"),
73 |
74 | -- =============================================================================
75 | -- Production Panel
76 | ("ja_JP", "LOC_CUI_PP_QUEUE_DEFAULT", "デフォルトで生産キューを使用"),
77 |
78 | -- =============================================================================
79 | -- Great Works
80 | ("ja_JP", "LOC_CUI_GW_SORT_BY_CITY", "都市で並べ替え"),
81 | ("ja_JP", "LOC_CUI_GW_SORT_BY_BUILDING", "建造物で並べ替え"),
82 | ("ja_JP", "LOC_CUI_GW_THEMING_HELPER", "テーマ化のヒント"),
83 | ("ja_JP", "LOC_CUI_GW_THEMING_HELPER_TOOLTIP", "傑作を3つ選択 / 同じ色の遺物と異なる数字でテーマ化達成"),
84 |
85 | -- =============================================================================
86 | -- Notes
87 | ("ja_JP", "LOC_CUI_NOTES", "ノート"),
88 | ("ja_JP", "LOC_CUI_NOTE_LAST_EDIT", "[ ターン: {1_num} ]"),
89 | ("ja_JP", "LOC_CUI_NOTE_EMPTY", "空白"),
90 |
91 | -- =============================================================================
92 | -- Options
93 | ("ja_JP", "LOC_CUI_OPTIONS_TAB_VICTORY", "勝利"),
94 | ("ja_JP", "LOC_CUI_OPTIONS_TAB_LOG", "ログ"),
95 | ("ja_JP", "LOC_CUI_OPTIONS_TAB_POPUP", "ポップアップ"),
96 | ("ja_JP", "LOC_CUI_OPTIONS_TAB_REMIND", "リマインド"),
97 | --
98 | ("ja_JP", "LOC_CUI_OPTIONS_DESC_VICTORY", "確認したい勝利条件を選択"),
99 | ("ja_JP", "LOC_CUI_OPTIONS_DESC_LOG", "表示したいログを選択"),
100 | ("ja_JP", "LOC_CUI_OPTIONS_DESC_POPUP", "有効にしたいポップアップを選択"),
101 | ("ja_JP", "LOC_CUI_OPTIONS_DESC_REMIND", "利用したいリマインダーを選択"),
102 | ("ja_JP", "LOC_CUI_OPTIONS_DESC_SPEED", "クイック戦闘・移動の対象を選択"),
103 | --
104 | ("ja_JP", "LOC_CUI_OPTIONS_LOG_SHOW_NONE", "無効"),
105 | ("ja_JP", "LOC_CUI_OPTIONS_LOG_DEFAULT", "デフォルト"),
106 | ("ja_JP", "LOC_CUI_OPTIONS_LOG_WORLDTRACKER", "ワールドトラッカー"),
107 | ("ja_JP", "LOC_CUI_OPTIONS_LOG_BOTH", "両方"),
108 | --
109 | ("ja_JP", "LOC_CUI_OPTIONS_POPUP_RESEARCH", "技術/社会制度の取得"),
110 | ("ja_JP", "LOC_CUI_OPTIONS_POPUP_AUDIO", "技術/社会制度の音声"),
111 | ("ja_JP", "LOC_CUI_OPTIONS_POPUP_ERA_SCORE", "時代スコアの獲得"),
112 | ("ja_JP", "LOC_CUI_OPTIONS_POPUP_GREAT_WORK", "傑作の誕生"),
113 | ("ja_JP", "LOC_CUI_OPTIONS_POPUP_RELIC", "遺物の獲得"),
114 | --
115 | ("ja_JP", "LOC_CUI_OPTIONS_REMIND_TECH", "ひらめきで技術取得"),
116 | ("ja_JP", "LOC_CUI_OPTIONS_REMIND_CIVIC", "天啓で社会制度取得"),
117 | ("ja_JP", "LOC_CUI_OPTIONS_REMIND_GOVERNMENT", "政府が変更可能"),
118 | ("ja_JP", "LOC_CUI_OPTIONS_REMIND_GOVERNOR", "総督の称号が利用可能"),
119 | --
120 | ("ja_JP", "LOC_CUI_OPTIONS_QUICK_COMBAT", "クイック戦闘"),
121 | ("ja_JP", "LOC_CUI_OPTIONS_QUICK_MOVEMENT", "クイック移動"),
122 | ("ja_JP", "LOC_CUI_OPTIONS_SPEED_PLAYER_ONLY", "プレイヤーのみ"),
123 | ("ja_JP", "LOC_CUI_OPTIONS_SPEED_AI_ONLY", "AIのみ"),
124 |
125 | -- =============================================================================
126 | -- Screenshot
127 | ("ja_JP", "LOC_CUI_SCREENSHOT_TOOLTIP", "スクリーンショットモードに切り替え[NEWLINE][NEWLINE]ユーザーインターフェースの全部あるいは大半を隠す。[NEWLINE]障害物がないスクリーンショットの撮影に最適。[NEWLINE]このモードの間は回転したカメラの向きが固定される。[NEWLINE][NEWLINE]左クリック:ユーザーインターフェースを全て隠す。[NEWLINE]右クリック:都市バナー以外のユーザーインターフェースを隠す。[NEWLINE]ESC キー:スクリーンショットモードを終了する。"),
128 |
129 | -- =============================================================================
130 | ("ja_JP", "LOC_CUI_COLON", ": ");
131 | -- EOF
132 |
--------------------------------------------------------------------------------
/mod/localization/cui_ko_kr.sql:
--------------------------------------------------------------------------------
1 | -- =============================================================================
2 | -- CUI Ingame Text - [Korean] by [firefanda]
3 | -- =============================================================================
4 |
5 | INSERT OR REPLACE INTO LocalizedText (Language, Tag, Text) VALUES
6 |
7 | -- =============================================================================
8 | -- City Panel
9 | ("ko_KR", "LOC_CUI_CP_MANAGE_CITIZENS_TILES", "시민 및 타일 관리"),
10 |
11 | -- =============================================================================
12 | -- City States Panel
13 | ("ko_KR", "LOC_CUI_CSP_ENVOYS_SUZERAIN", "보낸 사절단: {1_num}명, 종주국: {2_num}"),
14 |
15 | -- =============================================================================
16 | -- Deal Panel
17 | ("ko_KR", "LOC_CUI_DP_GOLD_EDIT_TOOLTIP", "좌클릭으로 증가, 우클릭으로 감소"),
18 | ("ko_KR", "LOC_CUI_DP_THEY_HAVE_ITEM_TOOLTIP", "상대방이 이 물품을 이미 가지고 있습니다."),
19 | ("ko_KR", "LOC_CUI_DP_WE_HAVE_ITEM_TOOLTIP", "우리는 이 물품을 이미 가지고 있습니다."),
20 | ("ko_KR", "LOC_CUI_DP_WE_HAVE_ONLY_ONE_TOOLTIP", "하나만 가지고 있는 사치 자원입니다."),
21 |
22 | -- =============================================================================
23 | -- Diplomatic Banner
24 | ("ko_KR", "LOC_CUI_DB_CITY", "도시: {1_num}"),
25 | ("ko_KR", "LOC_CUI_DB_RELIGION", "종교: {1_name}"),
26 | ("ko_KR", "LOC_CUI_DB_NONE", "없음"),
27 | ("ko_KR", "LOC_CUI_DB_PEACE_DEAL_AVAILABLE", "[평화협상 가능]"),
28 | ("ko_KR", "LOC_CUI_DB_PEACE_DEAL_NOT_AVAILABLE", "[평화협상 까지 {1_Remaining}[ICON_TURN]턴 남음]"),
29 | ("ko_KR", "LOC_CUI_DB_RELATIONSHIP", "관계: {1_Relationship}"),
30 | ("ko_KR", "LOC_CUI_DB_GRIEVANCES_NONE", "적대감 없음"),
31 | ("ko_KR", "LOC_CUI_DB_GRIEVANCES", "적대감: {1_Grievances}"),
32 | ("ko_KR", "LOC_CUI_DB_THEY_CAN_OFFER", "거래요구 가능:"),
33 | ("ko_KR", "LOC_CUI_DB_WE_CAN_OFFER", "거래제안 가능:"),
34 | ("ko_KR", "LOC_CUI_DB_GOLD", "금:"),
35 | ("ko_KR", "LOC_CUI_DB_GOLD_AND_FAVOR", "화폐:"),
36 | ("ko_KR", "LOC_CUI_DB_SCORE_AND_YIELDS", "점수 및 생산량:"),
37 | ("ko_KR", "LOC_CUI_DB_MARS_PROJECT", "화성 이주지: {1_progress} {2_progress} {3_progress}"),
38 | ("ko_KR", "LOC_CUI_DB_EXOPLANET_EXPEDITION", "외계 행성 탐험대: {1_progress}{2_progress}{3_progress}{4_progress}{5_progress}"),
39 | ("ko_KR", "LOC_CUI_DB_VISITING_TOURISTS", "관광객 방문: {1_num} / {2_total}"),
40 | ("ko_KR", "LOC_CUI_DB_CAPITALS_CAPTURED", "점령한 수도: {1_num}"),
41 | ("ko_KR", "LOC_CUI_DB_CIVS_CONVERTED", "개종된 도시: {1_num} / {2_total}"),
42 | ("ko_KR", "LOC_CUI_DB_DIPLOMATIC_POINT", "외교 승리 점수: {1_num} / {2_total}"),
43 |
44 | -- =============================================================================
45 | -- Minimap Panel
46 | ("ko_KR", "LOC_CUI_MP_SHOW_DISTRICTS_TOOLTIP", "특수지구 아이콘 표시"),
47 | ("ko_KR", "LOC_CUI_MP_SHOW_WONDERS_TOOLTIP", "불가사의 아이콘 표시"),
48 | ("ko_KR", "LOC_CUI_MP_AUTONAMING", "이름"),
49 | ("ko_KR", "LOC_CUI_MP_AUTONAMING_TOOLTIP", "자동 이름 명명"),
50 | ("ko_KR", "LOC_CUI_MO_SHOW_IMPROVED_RESOURCES", "개선된 자원 아이콘 보기"),
51 | ("ko_KR", "LOC_CUI_MO_TOGGLE_IMPROVED_TOOLTIP", "개선된 자원 아이콘 전환"),
52 | ("ko_KR", "LOC_CUI_MO_SHOW_UNIT_FLAGS", "유닛 아이콘 보기"),
53 | ("ko_KR", "LOC_CUI_MP_TOGGLE_UNIT_FLAGS_TOOLTIP", "유닛 아이콘 전환"),
54 | ("ko_KR", "LOC_CUI_MO_SHOW_CITY_BANNERS", "도시 배너 보기"),
55 | ("ko_KR", "LOC_CUI_MP_TOGGLE_CITY_BANNERS_TOOLTIP", "도시 배너 전환"),
56 | ("ko_KR", "LOC_CUI_MO_SHOW_TRADERS", "상인 아이콘 보기"),
57 | ("ko_KR", "LOC_CUI_MP_TOGGLE_TRADERS_TOOLTIP", "상인 아이콘 보기"),
58 | ("ko_KR", "LOC_CUI_MO_SHOW_RELIGIONS", "종교 유닛 보기"),
59 | ("ko_KR", "LOC_CUI_MP_TOGGLE_RELIGIONS_TOOLTIP", "종교 아이콘 전환"),
60 |
61 | -- =============================================================================
62 | -- SpyInfo
63 | ("ko_KR", "LOC_CUI_SI_SPY_AVAILABLE", "현재 활동 중인 [ICON_Unit]스파이: {1_num}명"),
64 | ("ko_KR", "LOC_CUI_SI_SPY_CAPACITY", "활동 가능한 [ICON_Unit]스파이: {1_num}명"),
65 |
66 | -- =============================================================================
67 | -- World Tracker
68 | ("ko_KR", "LOC_CUI_WT_GOSSIP_LOG", "가십 로그"),
69 | ("ko_KR", "LOC_CUI_WT_COMBAT_LOG", "전투 로그"),
70 |
71 | -- =============================================================================
72 | -- Production Panel
73 | ("ko_KR", "LOC_CUI_PP_QUEUE_DEFAULT", "기본적으로 큐를 사용"),
74 |
75 | -- =============================================================================
76 | -- Great Works
77 | ("ko_KR", "LOC_CUI_GW_SORT_BY_CITY", "도시 순 정렬"),
78 | ("ko_KR", "LOC_CUI_GW_SORT_BY_BUILDING", "건물 순 정렬"),
79 | ("ko_KR", "LOC_CUI_GW_THEMING_HELPER", "테마 도우미"),
80 | ("ko_KR", "LOC_CUI_GW_THEMING_HELPER_TOOLTIP", "같은 색과 숫자가 다른 세가지의 걸작을 배치하여 테마를 완성하세요."),
81 |
82 | -- =============================================================================
83 | -- Notes
84 | ("ko_KR", "LOC_CUI_NOTES", "노트"),
85 | ("ko_KR", "LOC_CUI_NOTE_LAST_EDIT", "[ {1_num}턴에 수정됨 ]"),
86 | ("ko_KR", "LOC_CUI_NOTE_EMPTY", "비어있는 노트"),
87 |
88 | -- =============================================================================
89 | -- Options
90 | ("ko_KR", "LOC_CUI_OPTIONS_TAB_VICTORY", "승리"),
91 | ("ko_KR", "LOC_CUI_OPTIONS_TAB_LOG", "로그"),
92 | ("ko_KR", "LOC_CUI_OPTIONS_TAB_POPUP", "팝업"),
93 | ("ko_KR", "LOC_CUI_OPTIONS_TAB_REMIND", "리마인드"),
94 | --
95 | ("ko_KR", "LOC_CUI_OPTIONS_DESC_VICTORY", "추적할 승리 유형을 선택해주세요."),
96 | ("ko_KR", "LOC_CUI_OPTIONS_DESC_LOG", "표시할 로그를 선택해주세요."),
97 | ("ko_KR", "LOC_CUI_OPTIONS_DESC_POPUP", "표시할 팝업을 선택해주세요."),
98 | ("ko_KR", "LOC_CUI_OPTIONS_DESC_REMIND", "리마인드가 필요한 내용을 선택해주세요."),
99 | ("ko_KR", "LOC_CUI_OPTIONS_DESC_SPEED", "빠른전투 혹은 빠른 이동 대상을 선택해주세요."),
100 | --
101 | ("ko_KR", "LOC_CUI_OPTIONS_LOG_SHOW_NONE", "비활성화"),
102 | ("ko_KR", "LOC_CUI_OPTIONS_LOG_DEFAULT", "기본 위치"),
103 | ("ko_KR", "LOC_CUI_OPTIONS_LOG_WORLDTRACKER", "월드 트래커"),
104 | ("ko_KR", "LOC_CUI_OPTIONS_LOG_BOTH", "모두"),
105 | --
106 | ("ko_KR", "LOC_CUI_OPTIONS_POPUP_RESEARCH", "기술/사회정책 완료"),
107 | ("ko_KR", "LOC_CUI_OPTIONS_POPUP_AUDIO", "기술/사회정책 음성"),
108 | ("ko_KR", "LOC_CUI_OPTIONS_POPUP_ERA_SCORE", "시대 점수 획득"),
109 | ("ko_KR", "LOC_CUI_OPTIONS_POPUP_GREAT_WORK", "걸작 생성"),
110 | ("ko_KR", "LOC_CUI_OPTIONS_POPUP_RELIC", "성유물 획득"),
111 | --
112 | ("ko_KR", "LOC_CUI_OPTIONS_REMIND_TECH", "유레카로 기술연구 완료"),
113 | ("ko_KR", "LOC_CUI_OPTIONS_REMIND_CIVIC", "영감으로 사회정책연구 완료"),
114 | ("ko_KR", "LOC_CUI_OPTIONS_REMIND_GOVERNMENT", "무료 정부 변경"),
115 | ("ko_KR", "LOC_CUI_OPTIONS_REMIND_GOVERNOR", "총독 타이틀 획득"),
116 | --
117 | ("ko_KR", "LOC_CUI_OPTIONS_QUICK_COMBAT", "빠른 전투"),
118 | ("ko_KR", "LOC_CUI_OPTIONS_QUICK_MOVEMENT", "빠른 이동"),
119 | ("ko_KR", "LOC_CUI_OPTIONS_SPEED_PLAYER_ONLY", "플레이어 만"),
120 | ("ko_KR", "LOC_CUI_OPTIONS_SPEED_AI_ONLY", "AI 만"),
121 |
122 | -- =============================================================================
123 | -- Screenshot
124 | ("ko_KR", "LOC_CUI_SCREENSHOT_TOOLTIP", "스크린샷 모드 실행[NEWLINE][NEWLINE]스크린샷 모드는 대부분의 UI 요소를 숨겨 깔끔한 스크린샷을 찍을 수 있습니다.[NEWLINE][NEWLINE]왼클릭으로 모든 UI 숨기기[NEWLINE][NEWLINE]우클릭으로 도시 배너를 제외한 모든 UI 숨기기[NEWLINE]Alt키로 화면 회전[NEWLINE]ESC키로 스크린샷 모드를 종료하세요."),
125 |
126 | -- =============================================================================
127 | ("ko_KR", "LOC_CUI_COLON", ": ");
128 | -- EOF
129 |
--------------------------------------------------------------------------------
/mod/localization/cui_pt_br.sql:
--------------------------------------------------------------------------------
1 | -- =============================================================================
2 | -- CUI Ingame Text - [Português do Brasil] por [lucasjsoliveira]
3 | -- =============================================================================
4 |
5 | INSERT OR REPLACE INTO LocalizedText (Language, Tag, Text) VALUES
6 |
7 | -- =============================================================================
8 | -- City Panel
9 | ("pt_BR", "LOC_CUI_CP_MANAGE_CITIZENS_TILES", "Gerenciar cidadãos e painéis"),
10 |
11 | -- =============================================================================
12 | -- City States Panel
13 | ("pt_BR", "LOC_CUI_CSP_ENVOYS_SUZERAIN", "Emissários enviados: {1_num}, Suserano de: {2_num}"),
14 |
15 | -- =============================================================================
16 | -- Deal Panel
17 | ("pt_BR", "LOC_CUI_DP_GOLD_EDIT_TOOLTIP", "LMB Adiciona, RMB Subtrai"),
18 | ("pt_BR", "LOC_CUI_DP_THEY_HAVE_ITEM_TOOLTIP", "Eles possúem"),
19 | ("pt_BR", "LOC_CUI_DP_WE_HAVE_ITEM_TOOLTIP", "Nós possuímos"),
20 | ("pt_BR", "LOC_CUI_DP_WE_HAVE_ONLY_ONE_TOOLTIP", "Possuímos apenas um"),
21 |
22 | -- =============================================================================
23 | -- Diplomatic Banner
24 | ("pt_BR", "LOC_CUI_DB_CITY", "Cidades: {1_num}"),
25 | ("pt_BR", "LOC_CUI_DB_RELIGION", "Religião: {1_name}"),
26 | ("pt_BR", "LOC_CUI_DB_NONE", "Nenhum"),
27 | ("pt_BR", "LOC_CUI_DB_PEACE_DEAL_AVAILABLE", "[Tratado de paz disponível]"),
28 | ("pt_BR", "LOC_CUI_DB_PEACE_DEAL_NOT_AVAILABLE", "[Tratado de Paz: {1_Remaining}[ICON_TURN]]"),
29 | ("pt_BR", "LOC_CUI_DB_RELATIONSHIP", "Relação: {1_Relationship}"),
30 | ("pt_BR", "LOC_CUI_DB_GRIEVANCES_NONE", "Sem queixas"),
31 | ("pt_BR", "LOC_CUI_DB_GRIEVANCES", "Queixas: {1_Grievances}"),
32 | ("pt_BR", "LOC_CUI_DB_THEY_CAN_OFFER", "Ofertas deles:"),
33 | ("pt_BR", "LOC_CUI_DB_WE_CAN_OFFER", "Ofertas nossas:"),
34 | ("pt_BR", "LOC_CUI_DB_GOLD", "Ouro:"),
35 | ("pt_BR", "LOC_CUI_DB_GOLD_AND_FAVOR", "Ouro e Favores Diplomáticos:"),
36 | ("pt_BR", "LOC_CUI_DB_SCORE_AND_YIELDS", "Pontuação e recursos:"),
37 | ("pt_BR", "LOC_CUI_DB_MARS_PROJECT", "Colônia em Marte: {1_progress} {2_progress} {3_progress}"),
38 | ("pt_BR", "LOC_CUI_DB_EXOPLANET_EXPEDITION", "Expedição Extraplanetária: {1_progress}{2_progress}{3_progress}{4_progress}{5_progress}"),
39 | ("pt_BR", "LOC_CUI_DB_VISITING_TOURISTS", "Turista: {1_num} / {2_total}"),
40 | ("pt_BR", "LOC_CUI_DB_CAPITALS_CAPTURED", "Capitais Capturadas: {1_num}"),
41 | ("pt_BR", "LOC_CUI_DB_CIVS_CONVERTED", "Civilizações Convertidas: {1_num} / {2_total}"),
42 | ("pt_BR", "LOC_CUI_DB_DIPLOMATIC_POINT", "Pontos de vitória diplomática: {1_num} / {2_total}"),
43 |
44 | -- =============================================================================
45 | -- Minimap Panel
46 | ("pt_BR", "LOC_CUI_MP_SHOW_DISTRICTS_TOOLTIP", "Exibir ícones de distritos"),
47 | ("pt_BR", "LOC_CUI_MP_SHOW_WONDERS_TOOLTIP", "Exibir ícones de Maravilhas"),
48 | ("pt_BR", "LOC_CUI_MP_AUTONAMING", "Nomenclaturas"),
49 | ("pt_BR", "LOC_CUI_MP_AUTONAMING_TOOLTIP", "Auto-nomeação"),
50 | ("pt_BR", "LOC_CUI_MO_SHOW_IMPROVED_RESOURCES", "Exibir ícones de recurso aprimorados"),
51 | ("pt_BR", "LOC_CUI_MO_TOGGLE_IMPROVED_TOOLTIP", "Alternar ícones de recurso aprimorados"),
52 | ("pt_BR", "LOC_CUI_MO_SHOW_UNIT_FLAGS", "Exibir bandeiras de unidades"),
53 | ("pt_BR", "LOC_CUI_MP_TOGGLE_UNIT_FLAGS_TOOLTIP", "Alternar bandeiras de unidades"),
54 | ("pt_BR", "LOC_CUI_MO_SHOW_CITY_BANNERS", "Exibir bandeiras de cidades"),
55 | ("pt_BR", "LOC_CUI_MP_TOGGLE_CITY_BANNERS_TOOLTIP", "Alternar bandeiras de cidades"),
56 | ("pt_BR", "LOC_CUI_MO_SHOW_TRADERS", "Exibir comerciantes"),
57 | ("pt_BR", "LOC_CUI_MP_TOGGLE_TRADERS_TOOLTIP", "Alternar bandeiras de comerciantes"),
58 | ("pt_BR", "LOC_CUI_MO_SHOW_RELIGIONS", "Exibir unidades de religião"),
59 | ("pt_BR", "LOC_CUI_MP_TOGGLE_RELIGIONS_TOOLTIP", "Alternar bandeiras de religião"),
60 |
61 | -- =============================================================================
62 | -- SpyInfo
63 | ("pt_BR", "LOC_CUI_SI_SPY_AVAILABLE", "{1_num} [ICON_Unit] {1_num : plural 1?Espião disponíveis; other?Espiões disponíveis;}"),
64 | ("pt_BR", "LOC_CUI_SI_SPY_CAPACITY", "{1_num} [ICON_Unit] {1_num : plural 1?Espião; other?Espiões;} capacidade"),
65 |
66 | -- =============================================================================
67 | -- World Tracker
68 | ("pt_BR", "LOC_CUI_WT_GOSSIP_LOG", "Registro de rumores"),
69 | ("pt_BR", "LOC_CUI_WT_COMBAT_LOG", "Registro de combate"),
70 |
71 | -- =============================================================================
72 | -- Production Panel
73 | ("pt_BR", "LOC_CUI_PP_QUEUE_DEFAULT", "Usar fila por padrão"),
74 |
75 | -- =============================================================================
76 | -- Great Works
77 | ("pt_BR", "LOC_CUI_GW_SORT_BY_CITY", "Ordenar por Cidade"),
78 | ("pt_BR", "LOC_CUI_GW_SORT_BY_BUILDING", "Ordenar por construção"),
79 | ("pt_BR", "LOC_CUI_GW_THEMING_HELPER", "Auxílio de Tema"),
80 | ("pt_BR", "LOC_CUI_GW_THEMING_HELPER_TOOLTIP", "Escolha três Grande Obras / Artefatos da mesma cor e números diferentes para completar um Tema."),
81 |
82 | -- =============================================================================
83 | -- Notes
84 | ("pt_BR", "LOC_CUI_NOTES", "Notas"),
85 | ("pt_BR", "LOC_CUI_NOTE_LAST_EDIT", "[ Turn: {1_num} ]"),
86 | ("pt_BR", "LOC_CUI_NOTE_EMPTY", "Nota vazia"),
87 |
88 | -- =============================================================================
89 | -- Options
90 | ("pt_BR", "LOC_CUI_OPTIONS_TAB_VICTORY", "Vitórias"),
91 | ("pt_BR", "LOC_CUI_OPTIONS_TAB_LOG", "Registros"),
92 | ("pt_BR", "LOC_CUI_OPTIONS_TAB_POPUP", "Popups"),
93 | ("pt_BR", "LOC_CUI_OPTIONS_TAB_REMIND", "Lembrar"),
94 | --
95 | ("pt_BR", "LOC_CUI_OPTIONS_DESC_VICTORY", "Escolha a vitória que quer acompanhar."),
96 | ("pt_BR", "LOC_CUI_OPTIONS_DESC_LOG", "Escolha onde exibir os registros."),
97 | ("pt_BR", "LOC_CUI_OPTIONS_DESC_POPUP", "Escolha as popups a serem habilitadas."),
98 | ("pt_BR", "LOC_CUI_OPTIONS_DESC_REMIND", "Escolha os lembretes desejados."),
99 | ("pt_BR", "LOC_CUI_OPTIONS_DESC_SPEED", "Escolha combate rápido e objetos de movimento."),
100 | --
101 | ("pt_BR", "LOC_CUI_OPTIONS_LOG_SHOW_NONE", "Desabilitar"),
102 | ("pt_BR", "LOC_CUI_OPTIONS_LOG_DEFAULT", "Posição padrão"),
103 | ("pt_BR", "LOC_CUI_OPTIONS_LOG_WORLDTRACKER", "Acompanhamento Global"),
104 | ("pt_BR", "LOC_CUI_OPTIONS_LOG_BOTH", "Ambos"),
105 | --
106 | ("pt_BR", "LOC_CUI_OPTIONS_POPUP_RESEARCH", "Tecnologia/Cívico completo"),
107 | ("pt_BR", "LOC_CUI_OPTIONS_POPUP_AUDIO", "Som de Tecnologia/Cívico"),
108 | ("pt_BR", "LOC_CUI_OPTIONS_POPUP_ERA_SCORE", "Ganho de pontuação de era"),
109 | ("pt_BR", "LOC_CUI_OPTIONS_POPUP_GREAT_WORK", "Criação de Grandes Obras"),
110 | ("pt_BR", "LOC_CUI_OPTIONS_POPUP_RELIC", "Relíquias adquiridas"),
111 | --
112 | ("pt_BR", "LOC_CUI_OPTIONS_REMIND_TECH", "Tecnologia completa por M. de Eureca"),
113 | ("pt_BR", "LOC_CUI_OPTIONS_REMIND_CIVIC", "Cívico completo por M. de Inspiração"),
114 | ("pt_BR", "LOC_CUI_OPTIONS_REMIND_GOVERNMENT", "Mudança de governo gratuita"),
115 | ("pt_BR", "LOC_CUI_OPTIONS_REMIND_GOVERNOR", "Títulos de governador disponíveis"),
116 | --
117 | ("pt_BR", "LOC_CUI_OPTIONS_QUICK_COMBAT", "Combate rápido"),
118 | ("pt_BR", "LOC_CUI_OPTIONS_QUICK_MOVEMENT", "Movimento rápido"),
119 | ("pt_BR", "LOC_CUI_OPTIONS_SPEED_PLAYER_ONLY", "Apenas jogador"),
120 | ("pt_BR", "LOC_CUI_OPTIONS_SPEED_AI_ONLY", "Apenas IA"),
121 |
122 | -- =============================================================================
123 | -- Screenshot
124 | ("pt_BR", "LOC_CUI_SCREENSHOT_TOOLTIP", "Entrar em Modo de Captura de Tela[NEWLINE][NEWLINE]O Modo de Captura oculta boa parte da UI, possibilitando capturas limpas.[NEWLINE][NEWLINE]LMB oculta todos os elementos de UI[NEWLINE]RMB oculta todos os elementos menos as bandeiras de cidade[NEWLINE]Segure ALT para rotacionar a câmera[NEWLINE]Pressione ESC para sair do modo de captura"),
125 |
126 | -- =============================================================================
127 | ("pt_BR", "LOC_CUI_COLON", ": ");
128 | -- EOF
129 |
--------------------------------------------------------------------------------
/mod/localization/cui_zh_cn.sql:
--------------------------------------------------------------------------------
1 | -- =============================================================================
2 | -- CUI Ingame Text - [Simplified Chinese] by [eudaimonia]
3 | -- =============================================================================
4 |
5 | INSERT OR REPLACE INTO LocalizedText (Language, Tag, Text) VALUES
6 |
7 | -- =============================================================================
8 | -- City Panel
9 | ("zh_Hans_CN", "LOC_CUI_CP_MANAGE_CITIZENS_TILES", "市民与单元格管理"),
10 |
11 | -- =============================================================================
12 | -- City States Panel
13 | ("zh_Hans_CN", "LOC_CUI_CSP_ENVOYS_SUZERAIN", "派遣使者:{1_num},宗主国:{2_num}"),
14 |
15 | -- =============================================================================
16 | -- Deal Panel
17 | ("zh_Hans_CN", "LOC_CUI_DP_GOLD_EDIT_TOOLTIP", "左键增加,右键减少"),
18 | ("zh_Hans_CN", "LOC_CUI_DP_THEY_HAVE_ITEM_TOOLTIP", "他们已拥有"),
19 | ("zh_Hans_CN", "LOC_CUI_DP_WE_HAVE_ITEM_TOOLTIP", "我们已拥有"),
20 | ("zh_Hans_CN", "LOC_CUI_DP_WE_HAVE_ONLY_ONE_TOOLTIP", "我们仅有一份"),
21 |
22 | -- =============================================================================
23 | -- Diplomatic Banner
24 | ("zh_Hans_CN", "LOC_CUI_DB_CITY", "城市:{1_num}"),
25 | ("zh_Hans_CN", "LOC_CUI_DB_RELIGION", "宗教:{1_name}"),
26 | ("zh_Hans_CN", "LOC_CUI_DB_NONE", "无"),
27 | ("zh_Hans_CN", "LOC_CUI_DB_PEACE_DEAL_AVAILABLE", "[和平协议可用]"),
28 | ("zh_Hans_CN", "LOC_CUI_DB_PEACE_DEAL_NOT_AVAILABLE", "[和平协议:{1_Remaining}[ICON_TURN]]"),
29 | ("zh_Hans_CN", "LOC_CUI_DB_RELATIONSHIP", "关系:{1_Relationship}"),
30 | ("zh_Hans_CN", "LOC_CUI_DB_GRIEVANCES_NONE", "无不满"),
31 | ("zh_Hans_CN", "LOC_CUI_DB_GRIEVANCES", "不满:{1_Grievances}"),
32 | ("zh_Hans_CN", "LOC_CUI_DB_THEY_CAN_OFFER", "他们可以提供:"),
33 | ("zh_Hans_CN", "LOC_CUI_DB_WE_CAN_OFFER", "我们可以提供:"),
34 | ("zh_Hans_CN", "LOC_CUI_DB_GOLD", "金币:"),
35 | ("zh_Hans_CN", "LOC_CUI_DB_GOLD_AND_FAVOR", "金币及外交支持:"),
36 | ("zh_Hans_CN", "LOC_CUI_DB_SCORE_AND_YIELDS", "分数及收益:"),
37 | ("zh_Hans_CN", "LOC_CUI_DB_MARS_PROJECT", "火星殖民进度:{1_progress} {2_progress} {3_progress}"),
38 | ("zh_Hans_CN", "LOC_CUI_DB_EXOPLANET_EXPEDITION", "系外行星探索:{1_progress}{2_progress}{3_progress}{4_progress}{5_progress}"),
39 | ("zh_Hans_CN", "LOC_CUI_DB_VISITING_TOURISTS", "国际游客数量:{1_num} / {2_total}"),
40 | ("zh_Hans_CN", "LOC_CUI_DB_CAPITALS_CAPTURED", "已占领的首都:{1_num}"),
41 | ("zh_Hans_CN", "LOC_CUI_DB_CIVS_CONVERTED", "已转化的文明:{1_num} / {2_total}"),
42 | ("zh_Hans_CN", "LOC_CUI_DB_DIPLOMATIC_POINT", "外交胜利点数:{1_num} / {2_total}"),
43 |
44 | -- =============================================================================
45 | -- Minimap Panel
46 | ("zh_Hans_CN", "LOC_CUI_MP_SHOW_DISTRICTS_TOOLTIP", "显示区域图标"),
47 | ("zh_Hans_CN", "LOC_CUI_MP_SHOW_WONDERS_TOOLTIP", "显示奇观图标"),
48 | ("zh_Hans_CN", "LOC_CUI_MP_AUTONAMING", "自动命名"),
49 | ("zh_Hans_CN", "LOC_CUI_MP_AUTONAMING_TOOLTIP", "自动给地图导航命名"),
50 | ("zh_Hans_CN", "LOC_CUI_MO_SHOW_IMPROVED_RESOURCES", "显示已改良资源图标"),
51 | ("zh_Hans_CN", "LOC_CUI_MO_TOGGLE_IMPROVED_TOOLTIP", "开启/关闭已改良资源图标"),
52 | ("zh_Hans_CN", "LOC_CUI_MO_SHOW_UNIT_FLAGS", "显示单位图标"),
53 | ("zh_Hans_CN", "LOC_CUI_MP_TOGGLE_UNIT_FLAGS_TOOLTIP", "开启/关闭单位图标"),
54 | ("zh_Hans_CN", "LOC_CUI_MO_SHOW_CITY_BANNERS", "显示城市横幅"),
55 | ("zh_Hans_CN", "LOC_CUI_MP_TOGGLE_CITY_BANNERS_TOOLTIP", "开启/关闭城市横幅"),
56 | ("zh_Hans_CN", "LOC_CUI_MO_SHOW_TRADERS", "显示商人图标"),
57 | ("zh_Hans_CN", "LOC_CUI_MP_TOGGLE_TRADERS_TOOLTIP", "开启/关闭商人图标"),
58 | ("zh_Hans_CN", "LOC_CUI_MO_SHOW_RELIGIONS", "显示宗教单位图标"),
59 | ("zh_Hans_CN", "LOC_CUI_MP_TOGGLE_RELIGIONS_TOOLTIP", "开启/关闭宗教单位图标"),
60 |
61 | -- =============================================================================
62 | -- SpyInfo
63 | ("zh_Hans_CN", "LOC_CUI_SI_SPY_AVAILABLE", "{1_num}名 [ICON_Unit] 间谍可用"),
64 | ("zh_Hans_CN", "LOC_CUI_SI_SPY_CAPACITY", "{1_num}名 [ICON_Unit] 间谍上限"),
65 |
66 | -- =============================================================================
67 | -- World Tracker
68 | ("zh_Hans_CN", "LOC_CUI_WT_GOSSIP_LOG", "小道消息"),
69 | ("zh_Hans_CN", "LOC_CUI_WT_COMBAT_LOG", "战斗记录"),
70 |
71 | -- =============================================================================
72 | -- Production Panel
73 | ("zh_Hans_CN", "LOC_CUI_PP_QUEUE_DEFAULT", "默认使用队列"),
74 |
75 | -- =============================================================================
76 | -- Great Works
77 | ("zh_Hans_CN", "LOC_CUI_GW_SORT_BY_CITY", "按城市排序"),
78 | ("zh_Hans_CN", "LOC_CUI_GW_SORT_BY_BUILDING", "按建筑排序"),
79 | ("zh_Hans_CN", "LOC_CUI_GW_THEMING_HELPER", "主题化助手"),
80 | ("zh_Hans_CN", "LOC_CUI_GW_THEMING_HELPER_TOOLTIP", "选择同色不同数字的三个巨作/文物组成一个主题"),
81 |
82 | -- =============================================================================
83 | -- Notes
84 | ("zh_Hans_CN", "LOC_CUI_NOTES", "备忘录"),
85 | ("zh_Hans_CN", "LOC_CUI_NOTE_LAST_EDIT", "[ 回合:{1_num} ]"),
86 | ("zh_Hans_CN", "LOC_CUI_NOTE_EMPTY", "无记录"),
87 |
88 | -- =============================================================================
89 | -- Options
90 | ("zh_Hans_CN", "LOC_CUI_OPTIONS_TAB_VICTORY", "胜利进度"),
91 | ("zh_Hans_CN", "LOC_CUI_OPTIONS_TAB_LOG", "消息显示"),
92 | ("zh_Hans_CN", "LOC_CUI_OPTIONS_TAB_POPUP", "弹窗设置"),
93 | ("zh_Hans_CN", "LOC_CUI_OPTIONS_TAB_REMIND", "提示信息"),
94 | --
95 | ("zh_Hans_CN", "LOC_CUI_OPTIONS_DESC_VICTORY", "请选择需要追踪的胜利方式"),
96 | ("zh_Hans_CN", "LOC_CUI_OPTIONS_DESC_LOG", "请选择消息的显示位置"),
97 | ("zh_Hans_CN", "LOC_CUI_OPTIONS_DESC_POPUP", "请选择需要开启的弹窗"),
98 | ("zh_Hans_CN", "LOC_CUI_OPTIONS_DESC_REMIND", "请选择需要开启的提示"),
99 | ("zh_Hans_CN", "LOC_CUI_OPTIONS_DESC_SPEED", "请选择快速战斗和移动的对象"),
100 | --
101 | ("zh_Hans_CN", "LOC_CUI_OPTIONS_LOG_SHOW_NONE", "不显示"),
102 | ("zh_Hans_CN", "LOC_CUI_OPTIONS_LOG_DEFAULT", "默认位置"),
103 | ("zh_Hans_CN", "LOC_CUI_OPTIONS_LOG_WORLDTRACKER", "世界追踪"),
104 | ("zh_Hans_CN", "LOC_CUI_OPTIONS_LOG_BOTH", "同时显示"),
105 | --
106 | ("zh_Hans_CN", "LOC_CUI_OPTIONS_POPUP_RESEARCH", "科技/市政完成"),
107 | ("zh_Hans_CN", "LOC_CUI_OPTIONS_POPUP_AUDIO", "科技/市政语音"),
108 | ("zh_Hans_CN", "LOC_CUI_OPTIONS_POPUP_ERA_SCORE", "获得时代得分"),
109 | ("zh_Hans_CN", "LOC_CUI_OPTIONS_POPUP_GREAT_WORK", "获得巨作/文物"),
110 | ("zh_Hans_CN", "LOC_CUI_OPTIONS_POPUP_RELIC", "获得遗物"),
111 | --
112 | ("zh_Hans_CN", "LOC_CUI_OPTIONS_REMIND_TECH", "科技可靠尤里卡完成"),
113 | ("zh_Hans_CN", "LOC_CUI_OPTIONS_REMIND_CIVIC", "市政可靠鼓舞完成"),
114 | ("zh_Hans_CN", "LOC_CUI_OPTIONS_REMIND_GOVERNMENT", "免费更换市政"),
115 | ("zh_Hans_CN", "LOC_CUI_OPTIONS_REMIND_GOVERNOR", "有可用的总督头衔"),
116 | --
117 | ("zh_Hans_CN", "LOC_CUI_OPTIONS_QUICK_COMBAT", "快速战斗"),
118 | ("zh_Hans_CN", "LOC_CUI_OPTIONS_QUICK_MOVEMENT", "快速移动"),
119 | ("zh_Hans_CN", "LOC_CUI_OPTIONS_SPEED_PLAYER_ONLY", "仅玩家"),
120 | ("zh_Hans_CN", "LOC_CUI_OPTIONS_SPEED_AI_ONLY", "仅电脑"),
121 |
122 | -- =============================================================================
123 | -- Screenshot
124 | ("zh_Hans_CN", "LOC_CUI_SCREENSHOT_TOOLTIP", "进入截图模式[NEWLINE][NEWLINE]截图模式会隐藏大部分或所有的界面元素,可以让你获得清爽的截图。[NEWLINE][NEWLINE]左键点击隐藏所有界面[NEWLINE]右键点击保留城市横幅[NEWLINE]按住ALT键旋转屏幕[NEWLINE]按ESC键退出截图模式"),
125 |
126 | -- =============================================================================
127 | ("zh_Hans_CN", "LOC_CUI_COLON", ":");
128 | -- EOF
129 |
--------------------------------------------------------------------------------
/mod/localization/cui_zh_hk.sql:
--------------------------------------------------------------------------------
1 | -- =============================================================================
2 | -- CUI Ingame Text - [Simplified Chinese] by [eudaimonia]
3 | -- =============================================================================
4 |
5 | INSERT OR REPLACE INTO LocalizedText (Language, Tag, Text) VALUES
6 |
7 | -- =============================================================================
8 | -- City Panel
9 | ("zh_Hant_HK", "LOC_CUI_CP_MANAGE_CITIZENS_TILES", "市民與單元格管理"),
10 |
11 | -- =============================================================================
12 | -- City States Panel
13 | ("zh_Hant_HK", "LOC_CUI_CSP_ENVOYS_SUZERAIN", "派遣使者:{1_num},宗主國:{2_num}"),
14 |
15 | -- =============================================================================
16 | -- Deal Panel
17 | ("zh_Hant_HK", "LOC_CUI_DP_GOLD_EDIT_TOOLTIP", "左鍵增加,右鍵減少"),
18 | ("zh_Hant_HK", "LOC_CUI_DP_THEY_HAVE_ITEM_TOOLTIP", "他們已擁有"),
19 | ("zh_Hant_HK", "LOC_CUI_DP_WE_HAVE_ITEM_TOOLTIP", "我們已擁有"),
20 | ("zh_Hant_HK", "LOC_CUI_DP_WE_HAVE_ONLY_ONE_TOOLTIP", "我們僅有一份"),
21 |
22 | -- =============================================================================
23 | -- Diplomatic Banner
24 | ("zh_Hant_HK", "LOC_CUI_DB_CITY", "城市:{1_num}"),
25 | ("zh_Hant_HK", "LOC_CUI_DB_RELIGION", "宗教:{1_name}"),
26 | ("zh_Hant_HK", "LOC_CUI_DB_NONE", "無"),
27 | ("zh_Hant_HK", "LOC_CUI_DB_PEACE_DEAL_AVAILABLE", "[和平協議可用]"),
28 | ("zh_Hant_HK", "LOC_CUI_DB_PEACE_DEAL_NOT_AVAILABLE", "[和平協議:{1_Remaining}[ICON_TURN]]"),
29 | ("zh_Hant_HK", "LOC_CUI_DB_RELATIONSHIP", "關係:{1_Relationship}"),
30 | ("zh_Hant_HK", "LOC_CUI_DB_GRIEVANCES_NONE", "無不滿"),
31 | ("zh_Hant_HK", "LOC_CUI_DB_GRIEVANCES", "不滿:{1_Grievances}"),
32 | ("zh_Hant_HK", "LOC_CUI_DB_THEY_CAN_OFFER", "他們可以提供:"),
33 | ("zh_Hant_HK", "LOC_CUI_DB_WE_CAN_OFFER", "我們可以提供:"),
34 | ("zh_Hant_HK", "LOC_CUI_DB_GOLD", "金幣:"),
35 | ("zh_Hant_HK", "LOC_CUI_DB_GOLD_AND_FAVOR", "金幣及外交支持:"),
36 | ("zh_Hant_HK", "LOC_CUI_DB_SCORE_AND_YIELDS", "分數及收益:"),
37 | ("zh_Hant_HK", "LOC_CUI_DB_MARS_PROJECT", "火星殖民進度:{1_progress} {2_progress} {3_progress}"),
38 | ("zh_Hant_HK", "LOC_CUI_DB_EXOPLANET_EXPEDITION", "系外行星探索:{1_progress}{2_progress}{3_progress}{4_progress}{5_progress}"),
39 | ("zh_Hant_HK", "LOC_CUI_DB_VISITING_TOURISTS", "國際遊客數量:{1_num} / {2_total}"),
40 | ("zh_Hant_HK", "LOC_CUI_DB_CAPITALS_CAPTURED", "已佔領的首都:{1_num}"),
41 | ("zh_Hant_HK", "LOC_CUI_DB_CIVS_CONVERTED", "已轉化的文明:{1_num} / {2_total}"),
42 | ("zh_Hant_HK", "LOC_CUI_DB_DIPLOMATIC_POINT", "外交勝利點數:{1_num} / {2_total}"),
43 |
44 | -- =============================================================================
45 | -- Minimap Panel
46 | ("zh_Hant_HK", "LOC_CUI_MP_SHOW_DISTRICTS_TOOLTIP", "顯示區域圖標"),
47 | ("zh_Hant_HK", "LOC_CUI_MP_SHOW_WONDERS_TOOLTIP", "顯示奇觀圖標"),
48 | ("zh_Hant_HK", "LOC_CUI_MP_AUTONAMING", "自動命名"),
49 | ("zh_Hant_HK", "LOC_CUI_MP_AUTONAMING_TOOLTIP", "自動給地圖導航命名"),
50 | ("zh_Hant_HK", "LOC_CUI_MO_SHOW_IMPROVED_RESOURCES", "顯示已改良資源圖標"),
51 | ("zh_Hant_HK", "LOC_CUI_MO_TOGGLE_IMPROVED_TOOLTIP", "開啟/關閉已改良資源圖標"),
52 | ("zh_Hant_HK", "LOC_CUI_MO_SHOW_UNIT_FLAGS", "顯示單位圖標"),
53 | ("zh_Hant_HK", "LOC_CUI_MP_TOGGLE_UNIT_FLAGS_TOOLTIP", "開啟/關閉單位圖標"),
54 | ("zh_Hant_HK", "LOC_CUI_MO_SHOW_CITY_BANNERS", "顯示城市橫幅"),
55 | ("zh_Hant_HK", "LOC_CUI_MP_TOGGLE_CITY_BANNERS_TOOLTIP", "開啟/關閉城市橫幅"),
56 | ("zh_Hant_HK", "LOC_CUI_MO_SHOW_TRADERS", "顯示商人圖標"),
57 | ("zh_Hant_HK", "LOC_CUI_MP_TOGGLE_TRADERS_TOOLTIP", "開啟/關閉商人圖標"),
58 | ("zh_Hant_HK", "LOC_CUI_MO_SHOW_RELIGIONS", "顯示宗教單位圖標"),
59 | ("zh_Hant_HK", "LOC_CUI_MP_TOGGLE_RELIGIONS_TOOLTIP", "開啟/關閉宗教單位圖標"),
60 |
61 | -- =============================================================================
62 | -- SpyInfo
63 | ("zh_Hant_HK", "LOC_CUI_SI_SPY_AVAILABLE", "{1_num}名 [ICON_Unit] 間諜可用"),
64 | ("zh_Hant_HK", "LOC_CUI_SI_SPY_CAPACITY", "{1_num}名 [ICON_Unit] 間諜上限"),
65 |
66 | -- =============================================================================
67 | -- World Tracker
68 | ("zh_Hant_HK", "LOC_CUI_WT_GOSSIP_LOG", "小道消息"),
69 | ("zh_Hant_HK", "LOC_CUI_WT_COMBAT_LOG", "戰鬥記錄"),
70 |
71 | -- =============================================================================
72 | -- Production Panel
73 | ("zh_Hant_HK", "LOC_CUI_PP_QUEUE_DEFAULT", "默認使用隊列"),
74 |
75 | -- =============================================================================
76 | -- Great Works
77 | ("zh_Hant_HK", "LOC_CUI_GW_SORT_BY_CITY", "按城市排序"),
78 | ("zh_Hant_HK", "LOC_CUI_GW_SORT_BY_BUILDING", "按建築排序"),
79 | ("zh_Hant_HK", "LOC_CUI_GW_THEMING_HELPER", "主題化助手"),
80 | ("zh_Hant_HK", "LOC_CUI_GW_THEMING_HELPER_TOOLTIP", "選擇同色不同數字的三個鉅作/文物組成一個主題"),
81 |
82 | -- =============================================================================
83 | -- Notes
84 | ("zh_Hant_HK", "LOC_CUI_NOTES", "備忘錄"),
85 | ("zh_Hant_HK", "LOC_CUI_NOTE_LAST_EDIT", "[ 回合:{1_num} ]"),
86 | ("zh_Hant_HK", "LOC_CUI_NOTE_EMPTY", "無記錄"),
87 |
88 | -- =============================================================================
89 | -- Options
90 | ("zh_Hant_HK", "LOC_CUI_OPTIONS_TAB_VICTORY", "勝利進度"),
91 | ("zh_Hant_HK", "LOC_CUI_OPTIONS_TAB_LOG", "消息顯示"),
92 | ("zh_Hant_HK", "LOC_CUI_OPTIONS_TAB_POPUP", "彈窗設置"),
93 | ("zh_Hant_HK", "LOC_CUI_OPTIONS_TAB_REMIND", "提示信息"),
94 | --
95 | ("zh_Hant_HK", "LOC_CUI_OPTIONS_DESC_VICTORY", "請選擇需要追踪的勝利方式"),
96 | ("zh_Hant_HK", "LOC_CUI_OPTIONS_DESC_LOG", "請選擇消息的顯示位置"),
97 | ("zh_Hant_HK", "LOC_CUI_OPTIONS_DESC_POPUP", "請選擇需要開啟的彈窗"),
98 | ("zh_Hant_HK", "LOC_CUI_OPTIONS_DESC_REMIND", "請選擇需要開啟的提示"),
99 | ("zh_Hant_HK", "LOC_CUI_OPTIONS_DESC_SPEED", "請選擇快速戰鬥和移動的對象"),
100 | --
101 | ("zh_Hant_HK", "LOC_CUI_OPTIONS_LOG_SHOW_NONE", "不顯示"),
102 | ("zh_Hant_HK", "LOC_CUI_OPTIONS_LOG_DEFAULT", "默認位置"),
103 | ("zh_Hant_HK", "LOC_CUI_OPTIONS_LOG_WORLDTRACKER", "世界追踪"),
104 | ("zh_Hant_HK", "LOC_CUI_OPTIONS_LOG_BOTH", "同時顯示"),
105 | --
106 | ("zh_Hant_HK", "LOC_CUI_OPTIONS_POPUP_RESEARCH", "科技/市政完成"),
107 | ("zh_Hant_HK", "LOC_CUI_OPTIONS_POPUP_AUDIO", "科技/市政語音"),
108 | ("zh_Hant_HK", "LOC_CUI_OPTIONS_POPUP_ERA_SCORE", "獲得時代得分"),
109 | ("zh_Hant_HK", "LOC_CUI_OPTIONS_POPUP_GREAT_WORK", "獲得鉅作/文物"),
110 | ("zh_Hant_HK", "LOC_CUI_OPTIONS_POPUP_RELIC", "獲得遺物"),
111 | --
112 | ("zh_Hant_HK", "LOC_CUI_OPTIONS_REMIND_TECH", "科技可靠尤里卡完成"),
113 | ("zh_Hant_HK", "LOC_CUI_OPTIONS_REMIND_CIVIC", "市政可靠天啟完成"),
114 | ("zh_Hant_HK", "LOC_CUI_OPTIONS_REMIND_GOVERNMENT", "免費更換市政"),
115 | ("zh_Hant_HK", "LOC_CUI_OPTIONS_REMIND_GOVERNOR", "有可用的行政長官頭銜"),
116 | --
117 | ("zh_Hant_HK", "LOC_CUI_OPTIONS_QUICK_COMBAT", "快速戰鬥"),
118 | ("zh_Hant_HK", "LOC_CUI_OPTIONS_QUICK_MOVEMENT", "快速移動"),
119 | ("zh_Hant_HK", "LOC_CUI_OPTIONS_SPEED_PLAYER_ONLY", "僅玩家"),
120 | ("zh_Hant_HK", "LOC_CUI_OPTIONS_SPEED_AI_ONLY", "僅電腦"),
121 |
122 | -- =============================================================================
123 | -- Screenshot
124 | ("zh_Hant_HK", "LOC_CUI_SCREENSHOT_TOOLTIP", "進入截圖模式[NEWLINE][NEWLINE]截圖模式會隱藏大部分或所有的界面元素,可以讓你獲得清爽的截圖。[NEWLINE][NEWLINE]左鍵點擊隱藏所有界面[NEWLINE]右鍵點擊保留城市橫幅[NEWLINE]按住ALT鍵旋轉屏幕[NEWLINE]按ESC鍵退出截圖模式"),
125 |
126 | -- =============================================================================
127 | ("zh_Hant_HK", "LOC_CUI_COLON", ":");
128 | -- EOF
129 |
--------------------------------------------------------------------------------
/mod/modules/_log/additions/cui_gameinfo.lua:
--------------------------------------------------------------------------------
1 | -- ===========================================================================
2 | -- cui_gameinfo.lua
3 | -- ===========================================================================
4 |
5 | include("cui_utils")
6 |
7 | -- CUI -----------------------------------------------------------------------
8 | local RiseAndFall = "1B28771A-C749-434B-9053-D1380C553DE9"
9 | local GatheringStorm = "4873eb62-8ccc-4574-b784-dda455e74e68"
10 | local Tutorial = "17462E0F-1EE1-4819-AAAA-052B5896B02A"
11 |
12 | local CuiGameInfo = {}
13 |
14 | -- CUI -----------------------------------------------------------------------
15 | local function GenerateModName(mod)
16 | local modInfo = Modding.GetModInfo(mod.Handle)
17 | local subID = modInfo.SubscriptionId
18 | local modName = ""
19 |
20 | if subID then
21 | modName = Modding.GetSubscriptionDetails(subID).Name
22 | else
23 | modName = Locale.Lookup(mod.Name)
24 | modName = Locale.StripTags(modName)
25 | end
26 | return modName
27 | end
28 |
29 | -- CUI -----------------------------------------------------------------------
30 | local function GenerateModInfo(mod)
31 | local modInfo = {
32 | Id = mod.Id,
33 | Name = GenerateModName(mod),
34 | Active = false,
35 | Enabled = mod.Enabled,
36 | Official = mod.Official,
37 | SubID = mod.SubscriptionId,
38 | Update = "",
39 | Compatible = Modding.IsModCompatible(mod.Handle)
40 | }
41 | if not mod.Official and mod.SubscriptionId then
42 | local details = Modding.GetSubscriptionDetails(mod.SubscriptionId)
43 | if details and details.LastUpdated then
44 | modInfo.Update = Locale.Lookup("LOC_MODS_LAST_UPDATED", details.LastUpdated)
45 | end
46 | end
47 | return modInfo
48 | end
49 |
50 | -- CUI -----------------------------------------------------------------------
51 | local function LoadGameInfo()
52 | CuiGameInfo.IsMultiplayer = GameConfiguration.IsAnyMultiplayer()
53 | CuiGameInfo.IsHotseat = GameConfiguration.IsHotseat()
54 | CuiGameInfo.MapSeed = MapConfiguration.GetValue("RANDOM_SEED")
55 | CuiGameInfo.GameSeed = GameConfiguration.GetValue("GAME_SYNC_RANDOM_SEED")
56 | CuiGameInfo.GameSpeed = Locale.Lookup(GameInfo.GameSpeeds[GameConfiguration.GetGameSpeedType()].Name)
57 | CuiGameInfo.RuleSet = GameConfiguration.GetRuleSet()
58 | end
59 |
60 | -- ---------------------------------------------------------------------------
61 | local function LoadInstalledMods()
62 | local mods = Modding.GetInstalledMods()
63 | for _, mod in ipairs(mods) do
64 | if mod.Id ~= Tutorial and mod.Source == "Mod" then
65 | CuiGameInfo.InstalledAll = CuiGameInfo.InstalledAll + 1
66 | if mod.Official then
67 | CuiGameInfo.InstalledOff = CuiGameInfo.InstalledOff + 1
68 | else
69 | CuiGameInfo.InstalledCom = CuiGameInfo.InstalledCom + 1
70 | end
71 | if isNil(CuiGameInfo.Mods[mod.Id]) then
72 | CuiGameInfo.Mods[mod.Id] = {}
73 | end
74 | local modInfo = GenerateModInfo(mod)
75 | CuiGameInfo.Mods[mod.Id] = modInfo
76 | end
77 | end
78 | end
79 |
80 | -- CUI -----------------------------------------------------------------------
81 | local function LoadActiveMods()
82 | local mods = Modding.GetActiveMods()
83 | for _, mod in ipairs(mods) do
84 | if mod.Id == Tutorial then
85 | CuiGameInfo.IsTutorial = mod.Enabled
86 | end
87 | if mod.Id == RiseAndFall then
88 | CuiGameInfo.IsRiseAndFall = mod.Enabled
89 | end
90 | if mod.Id == GatheringStorm then
91 | CuiGameInfo.IsGatheringStorm = mod.Enabled
92 | end
93 | if mod.Id ~= Tutorial and mod.Source == "Mod" then
94 | CuiGameInfo.ActiveAll = CuiGameInfo.ActiveAll + 1
95 | if mod.Official then
96 | CuiGameInfo.ActiveOff = CuiGameInfo.ActiveOff + 1
97 | else
98 | CuiGameInfo.ActiveCom = CuiGameInfo.ActiveCom + 1
99 | end
100 | if isNil(CuiGameInfo.Mods[mod.Id]) then
101 | print("[Error] unexpected mod:", mod.Name, "ID:", mod.Id)
102 | else
103 | CuiGameInfo.Mods[mod.Id].Active = true
104 | end
105 | end
106 | end
107 | end
108 |
109 | -- CUI -----------------------------------------------------------------------
110 | local function SortMods(usMods)
111 | if isNil(usMods) then
112 | return nil
113 | end
114 |
115 | local mods = {}
116 | for _, mod in pairs(usMods) do
117 | table.insert(mods, mod)
118 | end
119 |
120 | table.sort(
121 | mods,
122 | function(a, b)
123 | local sortOverrides = {
124 | ["4873eb62-8ccc-4574-b784-dda455e74e68"] = -2,
125 | ["1B28771A-C749-434B-9053-D1380C553DE9"] = -1
126 | }
127 |
128 | local aSort = sortOverrides[a.Id] or 0
129 | local bSort = sortOverrides[b.Id] or 0
130 | if aSort ~= bSort then
131 | return aSort < bSort
132 | end
133 |
134 | if a.Official ~= b.Official then
135 | return a.Official
136 | end
137 |
138 | return Locale.Compare(a.Name, b.Name) == -1
139 | end
140 | )
141 |
142 | return mods
143 | end
144 |
145 | -- CUI -----------------------------------------------------------------------
146 | function GetCuiGameInfo()
147 | CuiGameInfo = {
148 | -- version
149 | Version = UI.GetAppVersion(),
150 | -- game
151 | IsRiseAndFall = false,
152 | IsGatheringStorm = false,
153 | IsTutorial = false,
154 | IsMultiplayer = false,
155 | IsHotseat = false,
156 | MapSeed = nil,
157 | GameSeed = nil,
158 | GameSpeed = -1,
159 | RuleSet = nil,
160 | -- mods
161 | InstalledAll = 0,
162 | InstalledOff = 0,
163 | InstalledCom = 0,
164 | ActiveAll = 0,
165 | ActiveOff = 0,
166 | ActiveCom = 0,
167 | Mods = {}
168 | }
169 |
170 | LoadGameInfo()
171 | LoadInstalledMods()
172 | LoadActiveMods()
173 | local mods = CuiGameInfo.Mods
174 | local sortedMods = SortMods(mods)
175 | CuiGameInfo.Mods = sortedMods
176 |
177 | return CuiGameInfo
178 | end
179 |
--------------------------------------------------------------------------------
/mod/modules/_log/additions/cui_log.lua:
--------------------------------------------------------------------------------
1 | -- ===========================================================================
2 | -- cui_log.lua
3 | -- ===========================================================================
4 |
5 | include("cui_utils")
6 | include("cui_gameinfo")
7 |
8 | -- CUI -----------------------------------------------------------------------
9 | local ShowModsList = true
10 | local ShowActiveOnly = true
11 | local ShowOfficial = false
12 |
13 | -- CUI -----------------------------------------------------------------------
14 | LogC = {}
15 | LogC.__index = LogC
16 |
17 | -- CUI -----------------------------------------------------------------------
18 | function LogC:createLog(sL, cL)
19 | o = o or {}
20 | setmetatable(o, self)
21 | self.sL = sL or 50
22 | self.cL = cL or 72
23 | return o
24 | end
25 |
26 | -- CUI -----------------------------------------------------------------------
27 | function LogC:line(l)
28 | if l == "=" or l == "-" then
29 | print(string.rep(l, self.cL))
30 | elseif isNil(l) then
31 | print("")
32 | else
33 | print(l)
34 | end
35 | end
36 |
37 | -- CUI -----------------------------------------------------------------------
38 | function LogC:property(p, v)
39 | if isNil(v) then
40 | v = "."
41 | end
42 | local pL = string.len(p)
43 | local mL = self.sL - pL
44 | local m = string.rep(".", mL)
45 | local line = p .. " " .. m .. " [ " .. tostring(v) .. " ]"
46 | print(line)
47 | end
48 |
49 | -- CUI -----------------------------------------------------------------------
50 | function LogC:value3(p, v1, v2, v3)
51 | local s1, s2, s3 = string.len(v1), string.len(v2), string.len(v3)
52 | local vL = math.max(s1, s2, s3)
53 | local t1 = "T:" .. string.rep(" ", vL - s1) .. v1
54 | local t2 = "O:" .. string.rep(" ", vL - s2) .. v2
55 | local t3 = "C:" .. string.rep(" ", vL - s3) .. v3
56 | local v = t1 .. " " .. t2 .. " " .. t3
57 | LogC:property(p, v)
58 | end
59 |
60 | -- CUI -----------------------------------------------------------------------
61 | function LogC:mod(mod)
62 | if ShowActiveOnly and not mod.Active then
63 | return
64 | end
65 | if mod.Official and not ShowOfficial then
66 | return
67 | end
68 |
69 | --[[
70 | Id = mod.Id,
71 | Name = GenerateModName(mod),
72 | Active = false,
73 | Enabled = mod.Enabled,
74 | Official = mod.Official,
75 | SubID = mod.SubscriptionId,
76 | Update = "";
77 | Compatible = Modding.IsModCompatible(mod.Handle)
78 | ]]
79 | -- title
80 | local mType = mod.Official and "[O]" or "[C]"
81 | local title = ""
82 | if ShowOfficial then
83 | title = mType .. " " .. mod.Name
84 | else
85 | title = mod.Name
86 | end
87 | LogC:line(title)
88 | -- update
89 | if not isNil(mod.Update) then
90 | LogC:line("[" .. mod.Update .. "]")
91 | end
92 | -- link
93 | if not mod.Official then
94 | if mod.SubID then
95 | print("https://steamcommunity.com/sharedfiles/filedetails/?id=" .. mod.SubID)
96 | else
97 | print("This is not a Steam Workshop Mod.")
98 | end
99 | end
100 | -- properties
101 | LogC:property("Enabled", mod.Enabled)
102 | if not ShowActiveOnly then
103 | LogC:property("Active", mod.Active)
104 | end
105 | if not mod.Official then
106 | LogC:property("Compatible", mod.Compatible)
107 | end
108 | LogC:line()
109 | end
110 |
111 | -- CUI -----------------------------------------------------------------------
112 | function LogGameInfo()
113 | local CuiGameInfo = GetCuiGameInfo()
114 | local Log = LogC:createLog()
115 |
116 | Log:line()
117 | Log:line("=")
118 | Log:line()
119 | Log:line("Game Information:")
120 | Log:line("Version: " .. CuiGameInfo.Version)
121 | Log:line("-")
122 |
123 | Log:property("Rise and Fall", CuiGameInfo.IsRiseAndFall)
124 | Log:property("Gathering Storm", CuiGameInfo.IsGatheringStorm)
125 | Log:property("Tutorial", CuiGameInfo.IsTutorial)
126 | Log:property("Multiplayer", CuiGameInfo.IsMultiplayer)
127 | Log:property("Hotseat", CuiGameInfo.IsHotseat)
128 | Log:property("Map Seed", CuiGameInfo.MapSeed)
129 | Log:property("Game Seed", CuiGameInfo.GameSeed)
130 | Log:property("Game Speed", CuiGameInfo.GameSpeed)
131 | -- Log:property("Rule Set", CuiGameInfo.RuleSet)
132 | local i1, i2, i3 = CuiGameInfo.InstalledAll, CuiGameInfo.InstalledOff, CuiGameInfo.InstalledCom
133 | Log:value3("Mods Installed", i1, i2, i3)
134 | local a1, a2, a3 = CuiGameInfo.ActiveAll, CuiGameInfo.ActiveOff, CuiGameInfo.ActiveCom
135 | Log:value3("Mods Active", a1, a2, a3)
136 |
137 | if ShowModsList then
138 | local mods = CuiGameInfo.Mods
139 | if isNil(mods) then
140 | return
141 | end
142 |
143 | Log:line()
144 | Log:line("Mods List:")
145 | Log:property("Active Mods Only", ShowActiveOnly)
146 | Log:property("Show Official Content", ShowOfficial)
147 | Log:line("-")
148 | for _, mod in ipairs(mods) do
149 | Log:mod(mod)
150 | end
151 | else
152 | Log:line()
153 | end
154 |
155 | Log:line("=")
156 | Log:line()
157 | end
158 |
159 | -- CUI -----------------------------------------------------------------------
160 | function Initialize()
161 | Events.LoadGameViewStateDone.Add(LogGameInfo)
162 | end
163 | Initialize()
164 |
--------------------------------------------------------------------------------
/mod/modules/_log/additions/cui_log.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/mod/modules/_options/additions/cui_options_button.lua:
--------------------------------------------------------------------------------
1 | -- ===========================================================================
2 | -- cui_options_button.lua
3 | -- ===========================================================================
4 |
5 | include("cui_utils")
6 | include("cui_settings")
7 | include("cui_update")
8 |
9 | -- CUI -----------------------------------------------------------------------
10 | local isAttached = false
11 |
12 | -- CUI -----------------------------------------------------------------------
13 | function OpenOptionMenu()
14 | LuaEvents.CuiToggleOptions()
15 | end
16 |
17 | -- CUI -----------------------------------------------------------------------
18 | function SetupUI()
19 | Controls.Version:SetText(CuiVersion)
20 | Controls.Version:SetToolTipString(VersionDetail)
21 | CuiRegCallback(Controls.CuiOptionButton, OpenOptionMenu, OpenOptionMenu)
22 | end
23 |
24 | -- CUI -----------------------------------------------------------------------
25 | function OnMinimapResize()
26 | if isAttached then
27 | local minimap = ContextPtr:LookUpControl("/InGame/MinimapPanel/MiniMap/MinimapContainer")
28 | Controls.CuiOptionContainer:SetOffsetX(minimap:GetSizeX() + 10)
29 | end
30 | end
31 |
32 | -- CUI -----------------------------------------------------------------------
33 | function AttachToMinimap()
34 | if not isAttached then
35 | local minimap = ContextPtr:LookUpControl("/InGame/MinimapPanel/MiniMap/MinimapContainer")
36 | Controls.CuiOptionContainer:ChangeParent(minimap)
37 | Controls.CuiOptionContainer:SetOffsetX(minimap:GetSizeX() + 10)
38 | SetupUI()
39 | isAttached = true
40 | end
41 | end
42 |
43 | -- CUI -----------------------------------------------------------------------
44 | function Initialize()
45 | ContextPtr:SetHide(true)
46 | SetupUI()
47 | Events.LoadGameViewStateDone.Add(AttachToMinimap)
48 | LuaEvents.CuiOnMinimapResize.Add(OnMinimapResize)
49 | end
50 | Initialize()
51 |
--------------------------------------------------------------------------------
/mod/modules/_options/additions/cui_options_button.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/mod/modules/city_panel/expansion1/citypanel_expansion1.lua:
--------------------------------------------------------------------------------
1 | -- Copyright 2017-2019, Firaxis Games
2 |
3 | include("CityPanel");
4 | BASE_ViewMain = ViewMain;
5 |
6 | -- ===========================================================================
7 | function ViewMain( kData:table )
8 | BASE_ViewMain( kData );
9 | local pCity :table = UI.GetHeadSelectedCity();
10 | if pCity ~= nil then
11 | local pCulturalIdentity :table = pCity:GetCulturalIdentity();
12 | local currentLoyalty :number= pCulturalIdentity:GetLoyalty();
13 |
14 | -- CUI >> loyalty
15 | Controls.BreakdownIcon:SetIcon("ICON_STAT_CULTURAL_FLAG");
16 | Controls.BreakdownLabel:SetText(Locale.ToUpper(Locale.Lookup("LOC_CULTURAL_IDENTITY_LOYALTY_SUBSECTION")));
17 | Controls.BreakdownNum:SetText(Round(currentLoyalty, 1));
18 | -- Controls.BreakdownNum:SetOffsetX(19);
19 | -- << CUI
20 |
21 | -- CUI >> districts numbers
22 | Controls.ReligionIcon:SetIcon("ICON_BUILDINGS");
23 | Controls.ReligionLabel:SetText(Locale.ToUpper(Locale.Lookup("LOC_HUD_DISTRICTS")));
24 | Controls.ReligionNum:SetText(kData.DistrictsNum .. "/" .. kData.DistrictsPossibleNum);
25 | -- << CUI
26 | end
27 | end
28 |
29 | -- ===========================================================================
30 | function OnCityLoyaltyChanged( ownerPlayerID:number, cityID:number )
31 | if UI.IsCityIDSelected(ownerPlayerID, cityID) then
32 | UI.DeselectCityID(ownerPlayerID, cityID);
33 | end
34 | end
35 |
36 | -- ===========================================================================
37 | function LateInitialize()
38 | Events.CityLoyaltyChanged.Add(OnCityLoyaltyChanged);
39 | end
40 |
--------------------------------------------------------------------------------
/mod/modules/deal_panel/support/cui_deal_support.lua:
--------------------------------------------------------------------------------
1 | -- ===========================================================================
2 | -- cui_deal_support.lua
3 | -- ===========================================================================
4 |
5 | include("cui_utils")
6 |
7 | -- ===========================================================================
8 | -- Tooltips
9 | -- ===========================================================================
10 |
11 | -- CUI -----------------------------------------------------------------------
12 | local CuiRedColor = "ModStatusRedCS"
13 | local CuiYellowColor = "ModStatusYellowCS"
14 | local CuiGreenColor = "ModStatusGreenCS"
15 |
16 | -- luxury tooltip
17 | local WeHaveTT = "[NEWLINE]" .. Locale.Lookup("LOC_CUI_DP_WE_HAVE_ITEM_TOOLTIP")
18 | local BlockedTT = "[NEWLINE]" .. Locale.Lookup("LOC_DIPLO_DEAL_UNACCEPTABLE_ITEM_TOOLTIP")
19 | local TheyHaveTT = "[NEWLINE]" .. Locale.Lookup("LOC_CUI_DP_THEY_HAVE_ITEM_TOOLTIP")
20 | local OnlyOneTT = "[NEWLINE]" .. Locale.Lookup("LOC_CUI_DP_WE_HAVE_ONLY_ONE_TOOLTIP")
21 |
22 | -- strategic tooltip
23 | local PlayerNoCapTT = Locale.Lookup("LOC_DEAL_PLAYER_HAS_NO_CAP_ROOM")
24 | local AINoCapTT = Locale.Lookup("LOC_DEAL_AI_HAS_NO_CAP_ROOM")
25 |
26 | -- ===========================================================================
27 | -- Vanilla & Expansion 1
28 | -- ===========================================================================
29 |
30 | -- CUI -----------------------------------------------------------------------
31 | function CuiGetResourceData(player, localPlayer, otherPlayer, entry)
32 | local data = {}
33 |
34 | -- other inventory
35 | local weHave = false
36 | local blocked = false
37 | -- local inventory
38 | local theyHave = false
39 | local onlyOne = false
40 |
41 | local resourceType = entry.ForType
42 | local resource = GameInfo.Resources[resourceType]
43 | local localResources = Players[localPlayer:GetID()]:GetResources()
44 | local otherResources = Players[otherPlayer:GetID()]:GetResources()
45 |
46 | if
47 | resource and resource.ResourceClassType == "RESOURCECLASS_LUXURY" or
48 | resource.ResourceClassType == "RESOURCECLASS_STRATEGIC"
49 | then
50 | -- their inventory
51 | if player == otherPlayer then
52 | -- if we alredy have
53 | weHave = localResources:HasResource(resource.Index)
54 | -- blocked deal, for AI only
55 | blocked = entry.MaxAmount == 1 and not Players[otherPlayer:GetID()]:IsHuman()
56 | end
57 |
58 | -- our inventory
59 | if player == localPlayer then
60 | -- if they already have
61 | theyHave = otherResources:HasResource(resource.Index)
62 | -- if we have only one copy of this resource
63 | if resource.ResourceClassType == "RESOURCECLASS_LUXURY" then
64 | onlyOne = localResources:GetResourceAmount(resource.Index) == 1
65 | end
66 | end
67 | end
68 |
69 | data.WeHave = weHave
70 | data.Blocked = blocked
71 | data.TheyHave = theyHave
72 | data.OnlyOne = onlyOne
73 |
74 | return data
75 | end
76 |
77 | -- ===========================================================================
78 | -- Expansion 2
79 | -- ===========================================================================
80 |
81 | -- CUI -----------------------------------------------------------------------
82 | function CuiGetLuxuryData(player, localPlayer, otherPlayer, entry)
83 | local data = {}
84 |
85 | -- other inventory
86 | local weHave = false
87 | local blocked = false
88 | -- local inventory
89 | local theyHave = false
90 | local onlyOne = false
91 |
92 | local resourceType = entry.ForType
93 | local resource = GameInfo.Resources[resourceType]
94 | local localResources = Players[localPlayer:GetID()]:GetResources()
95 | local otherResources = Players[otherPlayer:GetID()]:GetResources()
96 |
97 | -- luxury only
98 | if resource and resource.ResourceClassType == "RESOURCECLASS_LUXURY" then
99 | -- their inventory
100 | if player == otherPlayer then
101 | -- if we alredy have
102 | weHave = localResources:HasResource(resource.Index)
103 | -- blocked deal, for AI only
104 | blocked = entry.MaxAmount == 1 and not Players[otherPlayer:GetID()]:IsHuman()
105 | end
106 |
107 | -- our inventory
108 | if player == localPlayer then
109 | -- if they already have
110 | theyHave = otherResources:HasResource(resource.Index)
111 | -- if we have only one copy of this resource
112 | onlyOne = localResources:GetResourceAmount(resource.Index) == 1
113 | end
114 | end
115 |
116 | data.WeHave = weHave
117 | data.Blocked = blocked
118 | data.TheyHave = theyHave
119 | data.OnlyOne = onlyOne
120 |
121 | return data
122 | end
123 |
124 | -- CUI -----------------------------------------------------------------------
125 | function CuiGetStrategicData(player, localPlayer, entry)
126 | local data = {}
127 | data.IsLocal = player == localPlayer
128 | data.IsValid = entry.IsValid
129 | return data
130 | end
131 |
132 | -- ===========================================================================
133 | -- UI Functions
134 | -- ===========================================================================
135 |
136 | -- CUI -----------------------------------------------------------------------
137 | function CuiGetButtonStyleByData(data)
138 | local color = CuiRedColor
139 | local tooltip = ""
140 |
141 | if data.WeHave or data.Blocked or data.TheyHave then
142 | color = CuiRedColor
143 | elseif data.OnlyOne then
144 | color = CuiYellowColor
145 | else
146 | color = CuiGreenColor
147 | end
148 |
149 | if data.WeHave then
150 | tooltip = tooltip .. WeHaveTT
151 | end
152 | if data.Blocked then
153 | tooltip = tooltip .. BlockedTT
154 | end
155 | if data.TheyHave then
156 | tooltip = tooltip .. TheyHaveTT
157 | end
158 | if data.OnlyOne then
159 | tooltip = tooltip .. OnlyOneTT
160 | end
161 |
162 | if not isNil(tooltip) then
163 | tooltip = "[COLOR_Red]" .. tooltip .. "[ENDCOLOR]"
164 | end
165 | return color, tooltip
166 | end
167 |
168 | -- CUI -----------------------------------------------------------------------
169 | function CuiGetButtonStyleByDataXP2(data)
170 | local color = CuiRedColor
171 | local tooltip = ""
172 |
173 | if data.IsValid then
174 | color = CuiGreenColor
175 | else
176 | color = CuiRedColor
177 | if data.IsLocal then
178 | tooltip = tooltip .. AINoCapTT
179 | else
180 | tooltip = tooltip .. PlayerNoCapTT
181 | end
182 | end
183 |
184 | if not isNil(tooltip) then
185 | tooltip = "[NEWLINE][COLOR_Red]" .. tooltip .. "[ENDCOLOR]"
186 | end
187 | return color, tooltip
188 | end
189 |
--------------------------------------------------------------------------------
/mod/modules/great_work/base/greatworksoverview.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
--------------------------------------------------------------------------------
/mod/modules/leader_icons/additions/cui_leader_icon_tt.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
--------------------------------------------------------------------------------
/mod/modules/leader_icons/base/leadericon.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
--------------------------------------------------------------------------------
/mod/modules/leader_icons/expansion1/diplomacyribbon_expansion1.lua:
--------------------------------------------------------------------------------
1 | -- Copyright 2017-2019, Firaxis Games.
2 |
3 | -- Base File
4 | include("DiplomacyRibbon");
5 | include("cui_leader_icon_support"); -- CUI
6 |
7 | -- ===========================================================================
8 | -- Cached Base Functions
9 | -- ===========================================================================
10 | BASE_AddLeader = AddLeader;
11 |
12 | -- ===========================================================================
13 | function AddLeader(iconName : string, playerID : number, kProps: table)
14 | local oLeaderIcon :object = BASE_AddLeader(iconName, playerID, kProps);
15 | local localPlayerID :number = Game.GetLocalPlayer();
16 |
17 | if localPlayerID == PlayerTypes.NONE or localPlayerID == PlayerTypes.OBSERVER then
18 | return;
19 | end
20 |
21 | -- CUI >>
22 | local localPlayer = Players[Game.GetLocalPlayer()];
23 | if playerID == Game.GetLocalPlayer() or localPlayer:GetDiplomacy():HasMet(playerID) then
24 | oLeaderIcon.GameEras:SetHide(false);
25 | local pGameEras = Game.GetEras();
26 | if pGameEras:HasHeroicGoldenAge(playerID) then
27 | oLeaderIcon.GameEras:SetText("[ICON_GLORY_SUPER_GOLDEN_AGE]");
28 | elseif pGameEras:HasGoldenAge(playerID) then
29 | oLeaderIcon.GameEras:SetText("[ICON_GLORY_GOLDEN_AGE]");
30 | elseif pGameEras:HasDarkAge(playerID) then
31 | oLeaderIcon.GameEras:SetText("[ICON_GLORY_DARK_AGE]");
32 | else
33 | oLeaderIcon.GameEras:SetText("[ICON_GLORY_NORMAL_AGE]");
34 | end
35 | end
36 | local allianceData = CuiGetAllianceData(playerID);
37 | LuaEvents.CuiLeaderIconToolTip(oLeaderIcon.Portrait, playerID);
38 | LuaEvents.CuiRelationshipToolTip(oLeaderIcon.Relationship, playerID, allianceData);
39 | -- << CUI
40 |
41 | --[[
42 | if GameCapabilities.HasCapability("CAPABILITY_DISPLAY_HUD_RIBBON_RELATIONSHIPS") then
43 | -- Update relationship pip tool with details about our alliance if we're in one
44 | local localPlayerDiplomacy:table = Players[localPlayerID]:GetDiplomacy();
45 | if localPlayerDiplomacy then
46 | local allianceType = localPlayerDiplomacy:GetAllianceType(playerID);
47 | if allianceType ~= -1 then
48 | local allianceName = Locale.Lookup(GameInfo.Alliances[allianceType].Name);
49 | local allianceLevel = localPlayerDiplomacy:GetAllianceLevel(playerID);
50 | oLeaderIcon.Controls.Relationship:SetToolTipString(Locale.Lookup("LOC_DIPLOMACY_ALLIANCE_FLAG_TT", allianceName, allianceLevel));
51 | end
52 | end
53 | end
54 |
55 | return oLeaderIcon;
56 | ]]
57 | end
58 |
--------------------------------------------------------------------------------
/mod/modules/leader_icons/support/cui_leader_icon_support.lua:
--------------------------------------------------------------------------------
1 | -- ===========================================================================
2 | -- cui_leader_icon_support.lua
3 | -- ===========================================================================
4 |
5 | include("cui_utils")
6 |
7 | -- CUI -----------------------------------------------------------------------
8 | function CuiGetAllianceData(otherPlayerID)
9 | local localPlayer = Players[Game.GetLocalPlayer()]
10 | local localPlayerDiplomacy = localPlayer:GetDiplomacy()
11 | local allianceData = {}
12 |
13 | allianceData.isAlliance = false
14 | allianceData.tooltip = ""
15 | allianceData.remainingTurns = 0
16 |
17 | if (isExpansion1 or isExpansion2) and localPlayerDiplomacy then
18 | local allianceType = localPlayerDiplomacy:GetAllianceType(otherPlayerID)
19 | if allianceType ~= -1 then
20 | local allianceName = Locale.Lookup(GameInfo.Alliances[allianceType].Name)
21 | local allianceLevel = localPlayerDiplomacy:GetAllianceLevel(otherPlayerID)
22 | allianceData.isAlliance = true
23 | allianceData.tooltip = Locale.Lookup("LOC_DIPLOMACY_ALLIANCE_FLAG_TT", allianceName, allianceLevel)
24 | allianceData.remainingTurns = localPlayerDiplomacy:GetAllianceTurnsUntilExpiration(otherPlayerID)
25 | end
26 | end
27 |
28 | return allianceData
29 | end
30 |
--------------------------------------------------------------------------------
/mod/modules/map_options/additions/cui_map_options.lua:
--------------------------------------------------------------------------------
1 | -- ===========================================================================
2 | -- cui_map_options.lua
3 | -- ===========================================================================
4 |
5 | include("cui_settings")
6 |
7 | local isAttached = false
8 |
9 | -- CUI -----------------------------------------------------------------------
10 | function AttachToTopOptionStack()
11 | if not isAttached then
12 | local optionPanel = ContextPtr:LookUpControl("/InGame/MinimapPanel/MapOptionsPanel")
13 | local optionStack = ContextPtr:LookUpControl("/InGame/MinimapPanel/MapOptionsPanel/MapOptionsStack")
14 | --
15 | Controls.ToggleImproved:ChangeParent(optionStack)
16 | Controls.ToggleCityBanners:ChangeParent(optionStack)
17 | Controls.ToggleTraderIcons:ChangeParent(optionStack)
18 | Controls.ToggleReligionIcons:ChangeParent(optionStack)
19 | Controls.ToggleUnitFlags:ChangeParent(optionStack)
20 | --
21 | optionStack:AddChildAtIndex(Controls.ToggleImproved, 2)
22 | optionStack:AddChildAtIndex(Controls.ToggleCityBanners, 4)
23 | optionStack:AddChildAtIndex(Controls.ToggleTraderIcons, 4)
24 | optionStack:AddChildAtIndex(Controls.ToggleReligionIcons, 4)
25 | optionStack:AddChildAtIndex(Controls.ToggleUnitFlags, 4)
26 | --
27 | optionStack:ReprocessAnchoring()
28 | optionStack:CalculateSize()
29 | optionStack:SetOffsetX(30)
30 | optionPanel:SetSizeX(optionStack:GetSizeX() + 45)
31 | isAttached = true
32 | end
33 | CuiRefreshMinimapOptions()
34 | end
35 |
36 | -- CUI -----------------------------------------------------------------------
37 | function CuiOnToggleImproved()
38 | local b = CuiSettings:ReverseAndGetBoolean(CuiSettings.SHOW_IMPROVES)
39 | LuaEvents.CuiToggleImprovedIcons()
40 | CuiRefreshMinimapOptions()
41 | end
42 |
43 | -- CUI -----------------------------------------------------------------------
44 | function CuiOnToggleCityBanners()
45 | local b = CuiSettings:ReverseAndGetBoolean(CuiSettings.SHOW_CITYS)
46 | ContextPtr:LookUpControl("/InGame/CityBannerManager"):SetHide(not b)
47 | CuiRefreshMinimapOptions()
48 | end
49 |
50 | -- CUI -----------------------------------------------------------------------
51 | function CuiOnToggleTrader()
52 | local b = CuiSettings:ReverseAndGetBoolean(CuiSettings.SHOW_TRADERS)
53 | LuaEvents.CuiToggleTraderIcons()
54 | CuiRefreshMinimapOptions()
55 | end
56 |
57 | -- CUI -----------------------------------------------------------------------
58 | function CuiOnToggleReligion()
59 | local b = CuiSettings:ReverseAndGetBoolean(CuiSettings.SHOW_RELIGIONS)
60 | LuaEvents.CuiToggleReligionIcons()
61 | CuiRefreshMinimapOptions()
62 | end
63 |
64 | -- CUI -----------------------------------------------------------------------
65 | function CuiOnToggleUnitFlags()
66 | local b = CuiSettings:ReverseAndGetBoolean(CuiSettings.SHOW_UNITS)
67 | ContextPtr:LookUpControl("/InGame/UnitFlagManager"):SetHide(not b)
68 | CuiRefreshMinimapOptions()
69 | end
70 |
71 | -- CUI -----------------------------------------------------------------------
72 | function CuiRefreshMinimapOptions()
73 | Controls.ToggleImproved:SetCheck(CuiSettings:GetBoolean(CuiSettings.SHOW_IMPROVES))
74 | Controls.ToggleCityBanners:SetCheck(CuiSettings:GetBoolean(CuiSettings.SHOW_CITYS))
75 | Controls.ToggleTraderIcons:SetCheck(CuiSettings:GetBoolean(CuiSettings.SHOW_TRADERS))
76 | Controls.ToggleReligionIcons:SetCheck(CuiSettings:GetBoolean(CuiSettings.SHOW_RELIGIONS))
77 | Controls.ToggleUnitFlags:SetCheck(CuiSettings:GetBoolean(CuiSettings.SHOW_UNITS))
78 | LuaEvents.MinimapPanel_RefreshMinimapOptions()
79 | end
80 |
81 | -- CUI -----------------------------------------------------------------------
82 | function CuiOnIngameAction(actionId)
83 | if (Game.GetLocalPlayer() == -1) then
84 | return
85 | end
86 | if actionId == Input.GetActionId("CuiActionToggleImproved") then
87 | CuiOnToggleImproved()
88 | UI.PlaySound("Play_UI_Click")
89 | end
90 | if actionId == Input.GetActionId("CuiActionToggleCityBanners") then
91 | CuiOnToggleCityBanners()
92 | UI.PlaySound("Play_UI_Click")
93 | end
94 | if actionId == Input.GetActionId("CuiActionToggleTraders") then
95 | CuiOnToggleTrader()
96 | UI.PlaySound("Play_UI_Click")
97 | end
98 | if actionId == Input.GetActionId("CuiActionToggleReligions") then
99 | CuiOnToggleReligion()
100 | UI.PlaySound("Play_UI_Click")
101 | end
102 | if actionId == Input.GetActionId("CuiActionToggleUnitFlags") then
103 | CuiOnToggleUnitFlags()
104 | UI.PlaySound("Play_UI_Click")
105 | end
106 | end
107 |
108 | -- CUI -----------------------------------------------------------------------
109 | function Initialize()
110 | ContextPtr:SetHide(true)
111 | Events.InputActionTriggered.Add(CuiOnIngameAction)
112 | Events.LoadGameViewStateDone.Add(AttachToTopOptionStack)
113 | -- unit and city shows on default
114 | CuiSettings:SetBoolean(CuiSettings.SHOW_UNITS, true)
115 | CuiSettings:SetBoolean(CuiSettings.SHOW_CITYS, true)
116 | Controls.ToggleImproved:RegisterCallback(Mouse.eLClick, CuiOnToggleImproved)
117 | Controls.ToggleCityBanners:RegisterCallback(Mouse.eLClick, CuiOnToggleCityBanners)
118 | Controls.ToggleUnitFlags:RegisterCallback(Mouse.eLClick, CuiOnToggleUnitFlags)
119 | Controls.ToggleTraderIcons:RegisterCallback(Mouse.eLClick, CuiOnToggleTrader)
120 | Controls.ToggleReligionIcons:RegisterCallback(Mouse.eLClick, CuiOnToggleReligion)
121 | end
122 | Initialize()
123 |
--------------------------------------------------------------------------------
/mod/modules/map_options/additions/cui_map_options.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/mod/modules/map_tacks/base/mappinlistpanel.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/mod/modules/map_tacks/base/mappinpopup.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
--------------------------------------------------------------------------------
/mod/modules/notes/additions/cui_note_button.lua:
--------------------------------------------------------------------------------
1 | -- ===========================================================================
2 | -- cui_note_button.lua
3 | -- ===========================================================================
4 |
5 | local isAttached = false
6 | local notesButtonInstance = {}
7 | local pipInstance = {}
8 |
9 | -- CUI -----------------------------------------------------------------------
10 | function OnToggleNoteScreen()
11 | LuaEvents.Cui_ToggleNoteScreen()
12 | end
13 |
14 | -- CUI -----------------------------------------------------------------------
15 | function AttachToTopPanel()
16 | if not isAttached then
17 | local buttonStack = ContextPtr:LookUpControl("/InGame/LaunchBar/ButtonStack")
18 | ContextPtr:BuildInstanceForControl("CuiNotes", notesButtonInstance, buttonStack)
19 | ContextPtr:BuildInstanceForControl("Pip", pipInstance, buttonStack)
20 |
21 | notesButtonInstance.NotesButton:RegisterCallback(Mouse.eLClick, OnToggleNoteScreen)
22 | notesButtonInstance.NotesButton:SetToolTipString(Locale.Lookup("LOC_CUI_NOTES"))
23 |
24 | local x, y, sheet = IconManager:FindIconAtlas("ICON_CIVIC_DIPLOMATIC_SERVICE", 42)
25 | notesButtonInstance.NotesIcon:SetTexture(x, y, sheet)
26 | notesButtonInstance.NotesIcon:SetColorByName("White")
27 |
28 | buttonStack:CalculateSize()
29 |
30 | local backing = ContextPtr:LookUpControl("/InGame/LaunchBar/LaunchBacking")
31 | backing:SetSizeX(buttonStack:GetSizeX() + 116)
32 |
33 | local backingTile = ContextPtr:LookUpControl("/InGame/LaunchBar/LaunchBackingTile")
34 | backingTile:SetSizeX(buttonStack:GetSizeX() - 20)
35 |
36 | LuaEvents.LaunchBar_Resize(buttonStack:GetSizeX())
37 | isAttached = true
38 | end
39 | end
40 |
41 | -- CUI -----------------------------------------------------------------------
42 | function CuiOnIngameAction(actionId)
43 | if Game.GetLocalPlayer() == -1 then
44 | return
45 | end
46 |
47 | if actionId == Input.GetActionId("CuiActionToggleNotes") then
48 | OnToggleNoteScreen()
49 | end
50 | end
51 |
52 | -- CUI -----------------------------------------------------------------------
53 | function Initialize()
54 | ContextPtr:SetHide(true)
55 |
56 | Events.LoadGameViewStateDone.Add(AttachToTopPanel)
57 | Events.InputActionTriggered.Add(CuiOnIngameAction)
58 | end
59 | Initialize()
60 |
--------------------------------------------------------------------------------
/mod/modules/notes/additions/cui_note_button.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/mod/modules/notes/additions/cui_note_screen.lua:
--------------------------------------------------------------------------------
1 | -- ===========================================================================
2 | -- cui_note_screen.lua
3 | -- ===========================================================================
4 |
5 | include("InstanceManager")
6 | include("cui_utils")
7 | include("cui_settings")
8 |
9 | -- CUI -----------------------------------------------------------------------
10 | local cui_NoteEnter = InstanceManager:new("NoteEnter", "Top", Controls.NoteStack)
11 | local EMPTY_NOTE = Locale.Lookup("LOC_CUI_NOTE_EMPTY")
12 | local windowHeight = 0
13 | local TOP_PANEL_OFFSET = 29
14 |
15 | local NOTE = {
16 | NOTE0 = {field = "Note0", default = EMPTY_NOTE},
17 | NOTE1 = {field = "Note1", default = EMPTY_NOTE},
18 | NOTE2 = {field = "Note2", default = EMPTY_NOTE},
19 | NOTE3 = {field = "Note3", default = EMPTY_NOTE},
20 | NOTE4 = {field = "Note4", default = EMPTY_NOTE},
21 | NOTE5 = {field = "Note5", default = EMPTY_NOTE},
22 | NOTE6 = {field = "Note6", default = EMPTY_NOTE},
23 | NOTE7 = {field = "Note7", default = EMPTY_NOTE},
24 | NOTE8 = {field = "Note8", default = EMPTY_NOTE},
25 | NOTE9 = {field = "Note9", default = EMPTY_NOTE}
26 | }
27 |
28 | local NOTE_TURN = {
29 | NOTE0 = {field = "NoteTurn0", default = 0},
30 | NOTE1 = {field = "NoteTurn1", default = 0},
31 | NOTE2 = {field = "NoteTurn2", default = 0},
32 | NOTE3 = {field = "NoteTurn3", default = 0},
33 | NOTE4 = {field = "NoteTurn4", default = 0},
34 | NOTE5 = {field = "NoteTurn5", default = 0},
35 | NOTE6 = {field = "NoteTurn6", default = 0},
36 | NOTE7 = {field = "NoteTurn7", default = 0},
37 | NOTE8 = {field = "NoteTurn8", default = 0},
38 | NOTE9 = {field = "NoteTurn9", default = 0}
39 | }
40 |
41 | -- CUI -----------------------------------------------------------------------
42 | function PopulateNoteList()
43 | cui_NoteEnter:ResetInstances()
44 | for i = 1, 10, 1 do
45 | local note = cui_NoteEnter:GetInstance()
46 | local index = "NOTE" .. (i - 1)
47 | local textSaved = CuiSettings:GetString(NOTE[index])
48 | local turnSaved = CuiSettings:GetNumber(NOTE_TURN[index])
49 | SetNote(note, textSaved, turnSaved)
50 |
51 | -- left click call back
52 | note.EditButton:RegisterCallback(
53 | Mouse.eLClick,
54 | function()
55 | note.Overview:SetHide(true)
56 | local sText = note.Overview:GetText()
57 | if IsEmpty(sText) then
58 | note.EditNote:SetText("")
59 | else
60 | note.EditNote:SetText(note.Overview:GetText())
61 | end
62 | note.EditNote:SetHide(false)
63 | note.EditNote:TakeFocus()
64 | end
65 | )
66 |
67 | -- right click call back
68 | note.EditButton:RegisterCallback(
69 | Mouse.eRClick,
70 | function()
71 | SetNote(note, nil, 0)
72 | SaveNote(index, nil, 0)
73 | end
74 | )
75 |
76 | -- commit call back
77 | note.EditNote:RegisterCommitCallback(
78 | function(editBox)
79 | local userInput = note.EditNote:GetText()
80 | local currentTurn = Game.GetCurrentGameTurn()
81 | SetNote(note, userInput, currentTurn)
82 | SaveNote(index, userInput, currentTurn)
83 | end
84 | )
85 | end
86 |
87 | Controls.NoteStack:CalculateSize()
88 | Controls.NoteStack:ReprocessAnchoring()
89 | end
90 |
91 | -- CUI -----------------------------------------------------------------------
92 | function SaveNote(index, text, turn)
93 | if IsEmpty(text) then
94 | CuiSettings:SetString(NOTE[index], EMPTY_NOTE)
95 | CuiSettings:SetNumber(NOTE_TURN[index], 0)
96 | else
97 | CuiSettings:SetString(NOTE[index], text)
98 | CuiSettings:SetNumber(NOTE_TURN[index], turn)
99 | end
100 | end
101 |
102 | -- CUI -----------------------------------------------------------------------
103 | function IsEmpty(text)
104 | if text == nil then
105 | return true
106 | end
107 | if text == EMPTY_NOTE then
108 | return true
109 | end
110 | if string.gsub(text, "^%s*(.-)%s*$", "%1") == nil then
111 | return true
112 | end
113 | return false
114 | end
115 |
116 | -- CUI -----------------------------------------------------------------------
117 | function SetNote(note, text, turn)
118 | note.EditNote:SetHide(true)
119 | if IsEmpty(text) then
120 | note.Overview:SetText(EMPTY_NOTE)
121 | note.Overview:SetColorByName("Gray")
122 | turn = 0
123 | else
124 | note.Overview:SetText(text)
125 | note.Overview:SetColorByName("White")
126 | end
127 | note.Overview:SetHide(false)
128 |
129 | if turn == 0 then
130 | note.LastEdit:SetText("")
131 | else
132 | note.LastEdit:SetText(Locale.Lookup("LOC_CUI_NOTE_LAST_EDIT", turn))
133 | end
134 | end
135 |
136 | -- CUI -----------------------------------------------------------------------
137 | function CloseOtherPanel()
138 | LuaEvents.LaunchBar_CloseTechTree()
139 | LuaEvents.LaunchBar_CloseCivicsTree()
140 | LuaEvents.LaunchBar_CloseGovernmentPanel()
141 | LuaEvents.LaunchBar_CloseReligionPanel()
142 | LuaEvents.LaunchBar_CloseGreatPeoplePopup()
143 | LuaEvents.LaunchBar_CloseGreatWorksOverview()
144 |
145 | if isExpansion1 then
146 | LuaEvents.GovernorPanel_Close()
147 | LuaEvents.HistoricMoments_Close()
148 | end
149 |
150 | if isExpansion2 then
151 | LuaEvents.Launchbar_Expansion2_ClimateScreen_Close()
152 | end
153 | end
154 |
155 | -- CUI -----------------------------------------------------------------------
156 | function Open()
157 | if (Game.GetLocalPlayer() == -1) then
158 | return
159 | end
160 | CloseOtherPanel()
161 |
162 | if not UIManager:IsInPopupQueue(ContextPtr) then
163 | local kParameters = {}
164 | kParameters.RenderAtCurrentParent = true
165 | kParameters.InputAtCurrentParent = true
166 | kParameters.AlwaysVisibleInQueue = true
167 | UIManager:QueuePopup(ContextPtr, PopupPriority.Low, kParameters)
168 | UI.PlaySound("UI_Screen_Open")
169 | end
170 |
171 | PopulateNoteList()
172 |
173 | Controls.Vignette:SetSizeY(windowHeight)
174 | -- FullScreenVignetteConsumer
175 | Controls.ScreenAnimIn:SetToBeginning()
176 | Controls.ScreenAnimIn:Play()
177 | end
178 |
179 | -- CUI -----------------------------------------------------------------------
180 | function Close()
181 | if not ContextPtr:IsHidden() then
182 | UI.PlaySound("UI_Screen_Close")
183 | end
184 | UIManager:DequeuePopup(ContextPtr)
185 | end
186 |
187 | -- CUI -----------------------------------------------------------------------
188 | function ToggleNoteScreen()
189 | if ContextPtr:IsHidden() then
190 | Open()
191 | else
192 | Close()
193 | end
194 | end
195 |
196 | -- CUI -----------------------------------------------------------------------
197 | function OnInit(isReload)
198 | if isReload then
199 | if not ContextPtr:IsHidden() then
200 | Open()
201 | end
202 | end
203 | end
204 |
205 | -- CUI -----------------------------------------------------------------------
206 | function OnInputHandler(pInputStruct)
207 | local uiMsg = pInputStruct:GetMessageType()
208 | if uiMsg == KeyEvents.KeyUp then
209 | local uiKey = pInputStruct:GetKey()
210 | if uiKey == Keys.VK_ESCAPE then
211 | if not ContextPtr:IsHidden() then
212 | Close()
213 | return true
214 | end
215 | end
216 | end
217 | return false
218 | end
219 |
220 | -- CUI -----------------------------------------------------------------------
221 | function Initialize()
222 | ContextPtr:SetHide(true)
223 | ContextPtr:SetInitHandler(OnInit)
224 | ContextPtr:SetInputHandler(OnInputHandler, true)
225 | Controls.CloseButton:RegisterCallback(Mouse.eLClick, Close)
226 | Controls.CloseButton:RegisterCallback(
227 | Mouse.eMouseEnter,
228 | function()
229 | UI.PlaySound("Main_Menu_Mouse_Over")
230 | end
231 | )
232 | LuaEvents.Cui_ToggleNoteScreen.Add(ToggleNoteScreen)
233 |
234 | windowHeight = Controls.Vignette:GetSizeY() - TOP_PANEL_OFFSET
235 | end
236 | Initialize()
237 |
--------------------------------------------------------------------------------
/mod/modules/notes/additions/cui_note_screen.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/mod/modules/popup_and_remind/additions/cui_remind_panel.lua:
--------------------------------------------------------------------------------
1 | -- ===========================================================================
2 | -- cui_remind_panel.lua
3 | -- ===========================================================================
4 |
5 | include("InstanceManager")
6 | include("cui_utils")
7 | include("cui_settings")
8 | include("cui_tech_civic_support")
9 |
10 | -- CUI -----------------------------------------------------------------------
11 | local isAttached = false
12 | local isAnyRemind = false
13 | local testMode = false
14 |
15 | -- CUI -----------------------------------------------------------------------
16 | function RefreshTech(localPlayer, eTech)
17 | if CuiSettings:GetBoolean(CuiSettings.REMIND_TECH) then
18 | local isReady = CuiIsTechReady(localPlayer)
19 | Controls.TechReady:SetHide(not isReady)
20 | if isReady then
21 | isAnyRemind = true
22 | end
23 | end
24 | end
25 |
26 | -- CUI -----------------------------------------------------------------------
27 | function RefreshCivic(localPlayer, eCivic)
28 | if CuiSettings:GetBoolean(CuiSettings.REMIND_CIVIC) then
29 | local isReady = CuiIsCivicReady(localPlayer)
30 | Controls.CivicReady:SetHide(not isReady)
31 | if isReady then
32 | isAnyRemind = true
33 | end
34 | end
35 | end
36 |
37 | -- CUI -----------------------------------------------------------------------
38 | function RefreshGovernment(localPlayer)
39 | if CuiSettings:GetBoolean(CuiSettings.REMIND_GOVERNMENT) then
40 | local isReady = CuiIsGovernmentReady(localPlayer)
41 | Controls.GovernmentReady:SetHide(not isReady)
42 | if isReady then
43 | isAnyRemind = true
44 | end
45 | end
46 | end
47 |
48 | -- CUI -----------------------------------------------------------------------
49 | function RefreshGovernor(localPlayer)
50 | if not isExpansion1 or not isExpansion2 then
51 | return
52 | end
53 |
54 | if CuiSettings:GetBoolean(CuiSettings.REMIND_GOVERNOR) then
55 | local isReady = CuiIsGovernorReady(localPlayer)
56 | Controls.GovernorReady:SetHide(not isReady)
57 | if isReady then
58 | isAnyRemind = true
59 | end
60 | end
61 | end
62 |
63 | -- CUI -----------------------------------------------------------------------
64 | function RefreshAll()
65 | if testMode then
66 | ReminderTest()
67 | return
68 | end
69 |
70 | local localPlayer = Game.GetLocalPlayer()
71 | if localPlayer ~= -1 then
72 | isAnyRemind = false
73 | RefreshTech(localPlayer)
74 | RefreshCivic(localPlayer)
75 | RefreshGovernment(localPlayer)
76 | RefreshGovernor(localPlayer)
77 | end
78 |
79 | ResizeBubble()
80 | end
81 |
82 | -- CUI -----------------------------------------------------------------------
83 | function ResizeBubble()
84 | Controls.RemindStack:CalculateSize()
85 | Controls.Bubble:SetHide(not isAnyRemind)
86 | if isAnyRemind then
87 | local stackX = Controls.RemindStack:GetSizeX()
88 | local stackY = Controls.RemindStack:GetSizeY()
89 | Controls.Bubble:SetSizeX(stackX + 34)
90 | Controls.Bubble:SetSizeY(stackY + 50)
91 | end
92 | end
93 |
94 | -- CUI -----------------------------------------------------------------------
95 | function ReminderTest()
96 | isAnyRemind = true
97 | Controls.TechReady:SetHide(false)
98 | Controls.CivicReady:SetHide(false)
99 | Controls.GovernmentReady:SetHide(false)
100 | Controls.GovernorReady:SetHide(false)
101 |
102 | ResizeBubble()
103 | end
104 |
105 | -- CUI -----------------------------------------------------------------------
106 | function OnMinimapResize()
107 | if isAttached then
108 | local minimap = ContextPtr:LookUpControl("/InGame/MinimapPanel/MiniMap/MinimapContainer")
109 | Controls.RemindContainer:SetOffsetX(minimap:GetSizeX() + 30)
110 | end
111 | end
112 |
113 | -- CUI -----------------------------------------------------------------------
114 | function AttachToMinimap()
115 | if not isAttached then
116 | local minimap = ContextPtr:LookUpControl("/InGame/MinimapPanel/MiniMap/MinimapContainer")
117 | Controls.RemindContainer:ChangeParent(minimap)
118 | Controls.RemindContainer:SetOffsetX(minimap:GetSizeX() + 30)
119 | isAttached = true
120 | end
121 |
122 | RefreshAll()
123 | end
124 |
125 | -- CUI -----------------------------------------------------------------------
126 | function Initialize()
127 | ContextPtr:SetHide(true)
128 | --
129 | Events.LoadGameViewStateDone.Add(AttachToMinimap)
130 | --
131 | Events.ResearchChanged.Add(RefreshAll)
132 | Events.ResearchCompleted.Add(RefreshAll)
133 | --
134 | Events.CivicChanged.Add(RefreshAll)
135 | Events.CivicCompleted.Add(RefreshAll)
136 | --
137 | Events.GovernmentChanged.Add(RefreshAll)
138 | Events.GovernmentPolicyChanged.Add(RefreshAll)
139 | Events.GovernmentPolicyObsoleted.Add(RefreshAll)
140 | --
141 | Events.GovernorAppointed.Add(RefreshAll)
142 | Events.GovernorAssigned.Add(RefreshAll)
143 | Events.GovernorPromoted.Add(RefreshAll)
144 | --
145 | Events.LocalPlayerTurnBegin.Add(RefreshAll)
146 | --
147 | LuaEvents.CuiRemindSettingChange.Add(RefreshAll)
148 | --
149 | LuaEvents.CuiOnMinimapResize.Add(OnMinimapResize)
150 | end
151 | Initialize()
152 |
--------------------------------------------------------------------------------
/mod/modules/popup_and_remind/additions/cui_remind_panel.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/mod/modules/popup_and_remind/support/cui_tech_civic_support.lua:
--------------------------------------------------------------------------------
1 | -- ===========================================================================
2 | -- cui_tech_civic_support.lua
3 | -- ===========================================================================
4 |
5 | -- CUI -----------------------------------------------------------------------
6 | function CuiIsFutureTechAndGet(eTech)
7 | for tech in GameInfo.Technologies() do
8 | if tech.Index == eTech and tech.TechnologyType == "TECH_FUTURE_TECH" and tech.Repeatable then
9 | return tech
10 | end
11 | end
12 | return nil
13 | end
14 |
15 | -- CUI -----------------------------------------------------------------------
16 | function CuiIsFutureCivicAndGet(eCivic)
17 | for civic in GameInfo.Civics() do
18 | if civic.Index == eCivic and civic.CivicType == "CIVIC_FUTURE_CIVIC" and civic.Repeatable then
19 | return civic
20 | end
21 | end
22 | return nil
23 | end
24 |
25 | -- CUI -----------------------------------------------------------------------
26 | function CuiIsTechReady(playerID)
27 | local player = Players[playerID]
28 | local playerTechs = player:GetTechs()
29 | local iTech = playerTechs:GetResearchingTech()
30 | local kTech = (iTech ~= -1) and GameInfo.Technologies[iTech] or nil
31 | local eTech = GetResearchData(playerID, playerTechs, kTech)
32 |
33 | if eTech and eTech.TechType then
34 | local boostAmount = eTech.Progress + eTech.BoostAmount
35 | return eTech.Boostable and (not eTech.BoostTriggered) and (boostAmount >= 1)
36 | end
37 |
38 | return false
39 | end
40 |
41 | -- CUI -----------------------------------------------------------------------
42 | function CuiIsCivicReady(playerID)
43 | local player = Players[playerID]
44 | local playerCulture = player:GetCulture()
45 | local iCivic = playerCulture:GetProgressingCivic()
46 | local kCivic = (iCivic ~= -1) and GameInfo.Civics[iCivic] or nil
47 | local eCiciv = GetCivicData(playerID, playerCulture, kCivic)
48 |
49 | if eCiciv and eCiciv.CivicType then
50 | local boostAmount = eCiciv.Progress + eCiciv.BoostAmount
51 | return eCiciv.Boostable and (not eCiciv.BoostTriggered) and (boostAmount >= 1)
52 | end
53 |
54 | return false
55 | end
56 |
57 | -- CUI -----------------------------------------------------------------------
58 | function GetResearchData(localPlayer, pPlayerTechs, kTech)
59 | if kTech == nil then -- Immediate return if there is no tech to inspect; likely first turn.
60 | return nil
61 | end
62 |
63 | local iTech = kTech.Index
64 | local isBoostable = false
65 | local boostAmount = 0
66 | local isRepeatable = kTech.Repeatable
67 | local researchCost = pPlayerTechs:GetResearchCost(iTech)
68 | local techType = kTech.TechnologyType
69 | local triggerDesc = ""
70 |
71 | for row in GameInfo.Boosts() do
72 | if row.TechnologyType == techType then
73 | isBoostable = true
74 | boostAmount = (row.Boost * .01) * researchCost -- Convert the boost value to decimal and determine the actual boost amount.
75 | triggerDesc = row.TriggerDescription
76 | break
77 | end
78 | end
79 |
80 | local kData = {
81 | ID = iTech,
82 | Boostable = isBoostable,
83 | BoostAmount = boostAmount / researchCost,
84 | BoostTriggered = pPlayerTechs:HasBoostBeenTriggered(iTech),
85 | Hash = kTech.Hash,
86 | Name = Locale.Lookup(kTech.Name),
87 | IsCurrent = false, -- caller needs to update upon return
88 | IsLastCompleted = false, -- caller needs to update upon return
89 | Repeatable = isRepeatable,
90 | ResearchCost = researchCost,
91 | Progress = pPlayerTechs:GetResearchProgress(iTech) / researchCost,
92 | TechType = techType,
93 | TriggerDesc = triggerDesc,
94 | TurnsLeft = pPlayerTechs:GetTurnsToResearch(iTech)
95 | }
96 |
97 | return kData
98 | end
99 |
100 | -- CUI -----------------------------------------------------------------------
101 | function GetCivicData(localPlayer, pPlayerCulture, kCivic)
102 | if kCivic == nil then -- Immediate return if there is no tech to inspect; likely first turn.
103 | return nil
104 | end
105 |
106 | local iCivic = kCivic.Index
107 | local isBoostable = false
108 | local boostAmount = 0
109 | local isRepeatable = kCivic.Repeatable
110 | local progressCost = pPlayerCulture:GetCultureCost(iCivic)
111 | local civicType = kCivic.CivicType
112 | local triggerDesc = ""
113 |
114 | for row in GameInfo.Boosts() do
115 | if row.CivicType == civicType then
116 | isBoostable = true
117 | boostAmount = (row.Boost * .01) * progressCost -- Convert the boost value to decimal and determine the actual boost amount.
118 | triggerDesc = row.TriggerDescription
119 | break
120 | end
121 | end
122 |
123 | local kData = {
124 | ID = iCivic,
125 | Boostable = isBoostable,
126 | BoostAmount = boostAmount / progressCost,
127 | BoostTriggered = pPlayerCulture:HasBoostBeenTriggered(iCivic),
128 | Cost = progressCost,
129 | Hash = kCivic.Hash,
130 | Name = Locale.Lookup(kCivic.Name),
131 | IsCurrent = false, -- caller needs to update upon return
132 | IsLastCompleted = false, -- caller needs to update upon return
133 | Repeatable = isRepeatable,
134 | Progress = (pPlayerCulture:GetCulturalProgress(iCivic) / progressCost),
135 | CivicType = civicType,
136 | TriggerDesc = triggerDesc,
137 | TurnsLeft = pPlayerCulture:GetTurnsToProgressCivic(iCivic)
138 | }
139 |
140 | return kData
141 | end
142 |
143 | -- CUI -----------------------------------------------------------------------
144 | function CuiIsGovernmentReady(playerID)
145 | local player = Players[playerID]
146 | local pCulture = player:GetCulture()
147 | if pCulture:GetNumPoliciesUnlocked() <= 0 then
148 | return false
149 | elseif pCulture:IsInAnarchy() then
150 | return false
151 | else
152 | return pCulture:GetCostToUnlockPolicies() == 0 and pCulture:PolicyChangeMade() == false
153 | end
154 | end
155 |
156 | -- CUI -----------------------------------------------------------------------
157 | function CuiIsGovernorReady(playerID)
158 | local player = Players[playerID]
159 | local governors = player:GetGovernors()
160 | local bCanAppoint = governors:CanAppoint()
161 | local bCanPromote = governors:CanPromote()
162 |
163 | return bCanAppoint or bCanPromote
164 | end
165 |
--------------------------------------------------------------------------------
/mod/modules/production_panel/support/cui_production_support.lua:
--------------------------------------------------------------------------------
1 | -- ===========================================================================
2 | -- cui_production_support.lua
3 | -- ===========================================================================
4 |
5 | include("cui_utils")
6 |
7 | -- ===========================================================================
8 | -- Help Functions
9 | -- ===========================================================================
10 |
11 | -- CUI -----------------------------------------------------------------------
12 | function GetDistrictBaseType(district)
13 | local dType = district.DistrictType
14 | if not isNil(GameInfo.DistrictReplaces[dType]) then
15 | dType = GameInfo.DistrictReplaces[dType].ReplacesDistrictType
16 | end
17 | return dType
18 | end
19 |
20 | -- CUI -----------------------------------------------------------------------
21 | function CuiCanProduceDistrict(city, queue, district)
22 | local canProduce, results = queue:CanProduce(district.Hash, false, true)
23 |
24 | if not canProduce then
25 | local notSuitable = CuiDistrictReasonCheck(results)
26 | --
27 | if notSuitable then
28 | local plots = GetCityRelatedPlotIndexesDistrictsAlternative(city, district.Hash)
29 | if not isNil(plots) then
30 | canProduce = true
31 | end
32 | end
33 | end
34 |
35 | return canProduce, results
36 | end
37 |
38 | -- CUI -----------------------------------------------------------------------
39 | function CuiDistrictReasonCheck(results)
40 | local suitableTxt = "LOC_DISTRICT_ZONE_NO_SUITABLE_LOCATION"
41 | -- local floodedTxt = Locale.Lookup("LOC_DISTRICT_REPAIR_LOCATION_FLOODED");
42 | local notSuitable = false
43 | -- local isFlooded = false;
44 | if not isNil(results) then
45 | local fReasons = results[CityCommandResults.FAILURE_REASONS]
46 | if not isNil(fReasons) then
47 | for i, v in ipairs(fReasons) do
48 | if v == suitableTxt then
49 | notSuitable = true
50 | end
51 | -- if v == floodedTxt then isFlooded = true; end
52 | end
53 | end
54 | end
55 |
56 | return notSuitable
57 | end
58 |
59 | -- CUI -----------------------------------------------------------------------
60 | function CuiIsItemInProgress(queue, item)
61 | if item.Progress > 0 then
62 | return true
63 | end
64 | return item.RequiresPlacement and queue:HasBeenPlaced(item.Hash)
65 | end
66 |
67 | -- CUI -----------------------------------------------------------------------
68 | function GetFailureToolTip(canProduce, results)
69 | if (not canProduce) and results then
70 | local failureReasons = results[CityCommandResults.FAILURE_REASONS]
71 | if not isNil(failureReasons) then
72 | local allReasons = ""
73 | for i, v in ipairs(failureReasons) do
74 | if not isNil(allReasons) then
75 | allReasons = allReasons .. "[NEWLINE]"
76 | end
77 | allReasons = allReasons .. "[COLOR:Red]" .. Locale.Lookup(v) .. "[ENDCOLOR]"
78 | end
79 | return allReasons
80 | end
81 | end
82 |
83 | return ""
84 | end
85 |
86 | -- CUI -----------------------------------------------------------------------
87 | function GetPurchaseCostToolTip(cost, yield)
88 | local tooltip = ""
89 | if cost ~= 0 then
90 | local concatString = ""
91 | if yield == "YIELD_GOLD" then
92 | concatString = " [ICON_GOLD] " .. Locale.Lookup("LOC_YIELD_GOLD_NAME")
93 | elseif yield == "YIELD_FAITH" then
94 | concatString = " [ICON_FAITH] " .. Locale.Lookup("LOC_YIELD_FAITH_NAME")
95 | end
96 | tooltip = Locale.Lookup("LOC_HUD_PURCHASE") .. ": " .. cost .. concatString
97 | end
98 | return tooltip
99 | end
100 |
101 | -- CUI -----------------------------------------------------------------------
102 | function GetProduceCostToolTip(cost, progress)
103 | local tooltip = ""
104 | if cost ~= 0 then
105 | local concatString = " [ICON_Production] " .. Locale.Lookup("LOC_HUD_PRODUCTION")
106 | local costString = tostring(cost)
107 | if progress > 0 then
108 | costString = tostring(progress) .. "/" .. tostring(cost)
109 | end
110 | tooltip = Locale.Lookup("LOC_HUD_PRODUCTION_COST") .. ": " .. costString .. concatString
111 | end
112 | return tooltip
113 | end
114 |
115 | -- CUI -----------------------------------------------------------------------
116 | function TurnString(t)
117 | local n = (t == -1) and "999+" or t
118 | return t .. "[ICON_TURN]"
119 | end
120 |
121 | -- CUI -----------------------------------------------------------------------
122 | function ComposeTT(...)
123 | local args = {...}
124 | if isNil(args) then
125 | return ""
126 | end
127 |
128 | local t = ""
129 | local r = "[NEWLINE][NEWLINE]"
130 | for _, v in ipairs(args) do
131 | if not isNil(v) then
132 | if isNil(t) then
133 | t = v
134 | else
135 | t = t .. r .. v
136 | end
137 | end
138 | end
139 | return t
140 | end
141 |
142 | -- ===========================================================================
143 | -- Repeat Project
144 | -- ===========================================================================
145 |
146 | -- CUI -----------------------------------------------------------------------
147 | RepeatableProject = {
148 | -- base game
149 | "LOC_PROJECT_ENHANCE_DISTRICT_ENCAMPMENT_NAME",
150 | "LOC_PROJECT_ENHANCE_DISTRICT_HARBOR_NAME",
151 | "LOC_PROJECT_ENHANCE_DISTRICT_INDUSTRIAL_ZONE_NAME",
152 | "LOC_PROJECT_ENHANCE_DISTRICT_COMMERCIAL_HUB_NAME",
153 | "LOC_PROJECT_ENHANCE_DISTRICT_HOLY_SITE_NAME",
154 | "LOC_PROJECT_ENHANCE_DISTRICT_CAMPUS_NAME",
155 | "LOC_PROJECT_ENHANCE_DISTRICT_THEATER_NAME",
156 | "LOC_PROJECT_CARNIVAL_NAME",
157 | "LOC_PROJECT_BUILD_NUCLEAR_DEVICE_NAME",
158 | "LOC_PROJECT_BUILD_THERMONUCLEAR_DEVICE_NAME",
159 | -- expansion 1
160 | "LOC_PROJECT_WATER_CARNIVAL_NAME",
161 | "LOC_PROJECT_BREAD_AND_CIRCUSES_NAME",
162 | -- expansion 2
163 | "LOC_PROJECT_CARBON_RECAPTURE_NAME",
164 | "LOC_PROJECT_ORBITAL_LASER_NAME",
165 | "LOC_PROJECT_TERRESTRIAL_LASER_NAME",
166 | "LOC_PROJECT_SEND_AID_NAME",
167 | "LOC_PROJECT_TRAIN_ATHLETES_NAME",
168 | "LOC_PROJECT_TRAIN_ASTRONAUTS_NAME"
169 | }
170 |
171 | -- CUI -----------------------------------------------------------------------
172 | function CuiIsProjectRepeatable(project)
173 | for _, name in ipairs(RepeatableProject) do
174 | if project.Name == name then
175 | return true
176 | end
177 | end
178 | return false
179 | end
180 |
181 | -- CUI -----------------------------------------------------------------------
182 | function AddProjectToRepeatList(city, projectHash)
183 | local cityName = city:GetName()
184 | RepeatedProjectsList[cityName] = projectHash
185 | end
186 |
187 | -- CUI -----------------------------------------------------------------------
188 | function StopRepeatProject(city)
189 | local cityName = city:GetName()
190 | if RepeatedProjectsList[cityName] then
191 | RepeatedProjectsList[cityName] = nil
192 | end
193 | end
194 |
195 | -- CUI -----------------------------------------------------------------------
196 | function RepeatProjects()
197 | local playerID = Game.GetLocalPlayer()
198 | local player = Players[playerID]
199 | if player == nil then
200 | return
201 | end
202 |
203 | for i, city in player:GetCities():Members() do
204 | local cityName = city:GetName()
205 | if RepeatedProjectsList[cityName] then
206 | local projectHash = RepeatedProjectsList[cityName]
207 | local tParameters = {}
208 | tParameters[CityOperationTypes.PARAM_PROJECT_TYPE] = projectHash
209 | GetBuildInsertMode(tParameters)
210 | CityManager.RequestOperation(city, CityOperationTypes.BUILD, tParameters)
211 | end
212 | end
213 | end
214 |
215 | -- ===========================================================================
216 | -- Initialize
217 | -- ===========================================================================
218 |
219 | -- CUI -----------------------------------------------------------------------
220 | function Initialize()
221 | RepeatedProjectsList = {}
222 | Events.PlayerTurnActivated.Add(RepeatProjects)
223 | end
224 | Initialize()
225 |
--------------------------------------------------------------------------------
/mod/modules/screenshot/additions/cui_screenshot.lua:
--------------------------------------------------------------------------------
1 | -- ===========================================================================
2 | -- cui_screenshot.lua
3 | -- ===========================================================================
4 |
5 | local isAttached = false
6 |
7 | local isEnterMode = false
8 | local isAltDown = false
9 | local isMouseDown = false
10 | local startX = 0
11 | local startY = 0
12 | local deltaX = 0
13 | local deltaY = 0
14 | local currentX = 0
15 | local currentY = 0
16 |
17 | local UIStatus = {}
18 | local ScreenshotMode = {
19 | FULLY_HIDE = {
20 | "/InGame/WorldViewControls", --
21 | "/InGame/HUD",
22 | "/InGame/PartialScreens",
23 | "/InGame/Screens",
24 | "/InGame/TopLevelHUD",
25 | "/InGame/WorldPopups",
26 | "/InGame/Civilopedia"
27 | },
28 | KEEP_CITY = {
29 | "/InGame/WorldViewIconsManager",
30 | "/InGame/DistrictPlotIconManager",
31 | "/InGame/PlotInfo",
32 | "/InGame/UnitFlagManager",
33 | "/InGame/TourismBannerManager",
34 | "/InGame/MapPinManager",
35 | "/InGame/SelectedUnit",
36 | "/InGame/SelectedMapPinContainer",
37 | "/InGame/SelectedUnitContainer",
38 | "/InGame/WorldViewPlotMessages", --
39 | "/InGame/HUD",
40 | "/InGame/PartialScreens",
41 | "/InGame/Screens",
42 | "/InGame/TopLevelHUD",
43 | "/InGame/WorldPopups",
44 | "/InGame/Civilopedia"
45 | }
46 | }
47 |
48 | local ScreenshotInputHandler = {}
49 |
50 | -- CUI -----------------------------------------------------------------------
51 | ScreenshotInputHandler[KeyEvents.KeyDown] = function(uiKey)
52 | if uiKey == Keys.VK_ALT then
53 | isAltDown = true
54 | return true
55 | end
56 | return false
57 | end
58 |
59 | -- CUI -----------------------------------------------------------------------
60 | ScreenshotInputHandler[KeyEvents.KeyUp] = function(uiKey)
61 | if uiKey == Keys.VK_ALT then
62 | isAltDown = false
63 | currentX = currentX + deltaX
64 | currentY = currentY + deltaY
65 | deltaX, deltaY = 0, 0
66 | return true
67 | end
68 | if uiKey == Keys.VK_ESCAPE then
69 | ExitScreenshotMode()
70 | return true
71 | end
72 | return false
73 | end
74 |
75 | -- CUI -----------------------------------------------------------------------
76 | ScreenshotInputHandler[MouseEvents.LButtonDown] = function(uiKey)
77 | isMouseDown = true
78 | if isAltDown then
79 | startX, startY = UIManager:GetNormalizedMousePos()
80 | end
81 | return true
82 | end
83 |
84 | -- CUI -----------------------------------------------------------------------
85 | ScreenshotInputHandler[MouseEvents.LButtonUp] = function(uiKey)
86 | isMouseDown = false
87 | currentX = currentX + deltaX
88 | currentY = currentY + deltaY
89 | deltaX, deltaY = 0, 0
90 | return true
91 | end
92 |
93 | -- CUI -----------------------------------------------------------------------
94 | ScreenshotInputHandler[MouseEvents.RButtonDown] = function(uiKey)
95 | return true
96 | end
97 |
98 | -- CUI -----------------------------------------------------------------------
99 | ScreenshotInputHandler[MouseEvents.RButtonUp] = function(uiKey)
100 | return true
101 | end
102 |
103 | -- CUI -----------------------------------------------------------------------
104 | ScreenshotInputHandler[MouseEvents.MouseMove] = function(uiKey)
105 | if isAltDown and isMouseDown then
106 | local newX, newY = UIManager:GetNormalizedMousePos()
107 | deltaX = startX - newX
108 | deltaY = startY - newY
109 | UI.SpinMap(currentX + deltaX, currentY + deltaY)
110 | return true
111 | end
112 | return false
113 | end
114 |
115 | -- CUI -----------------------------------------------------------------------
116 | function EnterScreenshotMode(mode)
117 | UIStatus = {}
118 | for i, sName in ipairs(mode) do
119 | UIStatus[sName] = ContextPtr:LookUpControl(sName):IsHidden()
120 | ContextPtr:LookUpControl(sName):SetHide(true)
121 | end
122 | isEnterMode = true
123 | UI.DeselectAllUnits()
124 | end
125 |
126 | -- CUI -----------------------------------------------------------------------
127 | function ExitScreenshotMode()
128 | for sName, bHidden in pairs(UIStatus) do
129 | ContextPtr:LookUpControl(sName):SetHide(bHidden)
130 | end
131 | UIStatus = {}
132 | if isEnterMode then
133 | isEnterMode = false
134 | isAltDown = false
135 | isMouseDown = false
136 | startX = 0
137 | startY = 0
138 | deltaX = 0
139 | deltaY = 0
140 | currentX = 0
141 | currentY = 0
142 | UI.SpinMap(0, 0)
143 | end
144 | end
145 |
146 | -- CUI -----------------------------------------------------------------------
147 | function OnInputHandler(pInputStruct)
148 | local uiMsg = pInputStruct:GetMessageType()
149 | if isEnterMode and ScreenshotInputHandler[uiMsg] then
150 | local uiKey = pInputStruct:GetKey()
151 | return ScreenshotInputHandler[uiMsg](uiKey)
152 | end
153 | return false
154 | end
155 |
156 | -- CUI -----------------------------------------------------------------------
157 | function AttachToMinimap()
158 | if not isAttached then
159 | local topPanelRight = ContextPtr:LookUpControl("/InGame/TopPanel/RightContents")
160 | Controls.ScreenshotButton:ChangeParent(topPanelRight)
161 | topPanelRight:AddChildAtIndex(Controls.ScreenshotButton, 2)
162 | topPanelRight:CalculateSize()
163 | topPanelRight:ReprocessAnchoring()
164 | isAttached = true
165 | end
166 | end
167 |
168 | -- CUI -----------------------------------------------------------------------
169 | function Initialize()
170 | ContextPtr:SetHide(false)
171 | ContextPtr:SetInputHandler(OnInputHandler, true)
172 | Events.LoadGameViewStateDone.Add(AttachToMinimap)
173 | Controls.ScreenshotButton:RegisterCallback(
174 | Mouse.eLClick,
175 | function()
176 | EnterScreenshotMode(ScreenshotMode.FULLY_HIDE)
177 | end
178 | )
179 | Controls.ScreenshotButton:RegisterCallback(
180 | Mouse.eRClick,
181 | function()
182 | EnterScreenshotMode(ScreenshotMode.KEEP_CITY)
183 | UI.PlaySound("Play_UI_Click")
184 | end
185 | )
186 | end
187 | Initialize()
188 |
--------------------------------------------------------------------------------
/mod/modules/screenshot/additions/cui_screenshot.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/mod/modules/spy_info/additions/cui_spy_info.lua:
--------------------------------------------------------------------------------
1 | -- ===========================================================================
2 | -- cui_spy_info.lua
3 | -- ===========================================================================
4 |
5 | include("EspionageSupport")
6 |
7 | -- CUI -----------------------------------------------------------------------
8 | local isAttached = false
9 |
10 | -- CUI -----------------------------------------------------------------------
11 | function RefreshSpyInfo()
12 | local localPlayer = Players[Game.GetLocalPlayer()]
13 | if localPlayer == nil then
14 | return
15 | end
16 |
17 | local numberOfSpies = 0
18 |
19 | -- normal spies
20 | local localPlayerUnits = localPlayer:GetUnits()
21 | for i, unit in localPlayerUnits:Members() do
22 | local unitInfo = GameInfo.Units[unit:GetUnitType()]
23 | if unitInfo.Spy then
24 | numberOfSpies = numberOfSpies + 1
25 | end
26 | end
27 |
28 | -- captured spies
29 | for i, player in ipairs(Game.GetPlayers()) do
30 | local playerDiplomacy = player:GetDiplomacy()
31 | local numCapturedSpies = playerDiplomacy:GetNumSpiesCaptured()
32 | for i = 0, numCapturedSpies - 1, 1 do
33 | local spyInfo = playerDiplomacy:GetNthCapturedSpy(player:GetID(), i)
34 | if spyInfo and spyInfo.OwningPlayer == Game.GetLocalPlayer() then
35 | numberOfSpies = numberOfSpies + 1
36 | end
37 | end
38 | end
39 |
40 | -- travelling spies
41 | local localPlayerDiplomacy = Players[Game.GetLocalPlayer()]:GetDiplomacy()
42 | if localPlayerDiplomacy then
43 | local numSpiesOffMap = localPlayerDiplomacy:GetNumSpiesOffMap()
44 | for i = 0, numSpiesOffMap - 1, 1 do
45 | local spyOffMapInfo = localPlayerDiplomacy:GetNthOffMapSpy(Game.GetLocalPlayer(), i)
46 | if spyOffMapInfo and spyOffMapInfo.ReturnTurn ~= -1 then
47 | numberOfSpies = numberOfSpies + 1
48 | end
49 | end
50 | end
51 |
52 | local spyCapacity = localPlayerDiplomacy:GetSpyCapacity()
53 | if spyCapacity > 0 then
54 | local coloredAvailable = numberOfSpies
55 | if numberOfSpies > spyCapacity then
56 | coloredAvailable = "[COLOR_RED]" .. numberOfSpies .. "[ENDCOLOR]"
57 | elseif numberOfSpies < spyCapacity then
58 | coloredAvailable = "[COLOR_GREEN]" .. numberOfSpies .. "[ENDCOLOR]"
59 | end
60 | Controls.SpyAvailable:SetText(coloredAvailable)
61 | Controls.SpyCapacity:SetText(spyCapacity)
62 |
63 | local tooltip = ""
64 | tooltip = tooltip .. Locale.Lookup("LOC_CUI_SI_SPY_AVAILABLE", numberOfSpies) .. "[NEWLINE]"
65 | tooltip = tooltip .. Locale.Lookup("LOC_CUI_SI_SPY_CAPACITY", spyCapacity)
66 | Controls.CuiSpyInfo:SetToolTipString(tooltip)
67 |
68 | Controls.CuiSpyInfo:SetHide(false)
69 | else
70 | Controls.CuiSpyInfo:SetHide(true)
71 | end
72 |
73 | Controls.SpyStack:CalculateSize()
74 | Controls.SpyStack:ReprocessAnchoring()
75 | end
76 |
77 | -- CUI -----------------------------------------------------------------------
78 | function AttachToTopPanel()
79 | if not isAttached then
80 | local infoStack = ContextPtr:LookUpControl("/InGame/TopPanel/InfoStack/StaticInfoStack")
81 | Controls.CuiSpyInfo:ChangeParent(infoStack)
82 | infoStack:AddChildAtIndex(Controls.CuiSpyInfo, 1)
83 | infoStack:CalculateSize()
84 | infoStack:ReprocessAnchoring()
85 | isAttached = true
86 | end
87 | RefreshSpyInfo()
88 | end
89 |
90 | -- CUI -----------------------------------------------------------------------
91 | function Initialize()
92 | ContextPtr:SetHide(true)
93 | Events.LoadGameViewStateDone.Add(AttachToTopPanel)
94 | Events.LocalPlayerTurnBegin.Add(RefreshSpyInfo)
95 | Events.LocalPlayerChanged.Add(RefreshSpyInfo)
96 | end
97 | Initialize()
98 |
--------------------------------------------------------------------------------
/mod/modules/spy_info/additions/cui_spy_info.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/mod/modules/unit_list/additions/cui_unitlist_button.lua:
--------------------------------------------------------------------------------
1 | -- ===========================================================================
2 | -- cui_unitlist_button.lua
3 | -- ===========================================================================
4 |
5 | local isAttached = false
6 | local unitListButtonInstance = {}
7 | local pipInstance = {}
8 |
9 | -- CUI -----------------------------------------------------------------------
10 | function OnToggleUnitList()
11 | LuaEvents.CuiToggleUnitList()
12 | end
13 |
14 | -- CUI -----------------------------------------------------------------------
15 | function AttachToTopPanel()
16 | if not isAttached then
17 | local buttonStack = ContextPtr:LookUpControl("/InGame/LaunchBar/ButtonStack")
18 | ContextPtr:BuildInstanceForControl("CuiUnitList", unitListButtonInstance, buttonStack)
19 | ContextPtr:BuildInstanceForControl("Pip", pipInstance, buttonStack)
20 |
21 | unitListButtonInstance.UnitListButton:RegisterCallback(Mouse.eLClick, OnToggleUnitList)
22 | unitListButtonInstance.UnitListButton:SetToolTipString(Locale.Lookup("LOC_PEDIA_UNITS_TITLE"))
23 |
24 | local x, y, sheet = IconManager:FindIconAtlas("ICON_CIVIC_NATIONALISM", 42)
25 | unitListButtonInstance.UnitListIcon:SetTexture(x, y, sheet)
26 | unitListButtonInstance.UnitListIcon:SetColorByName("White")
27 |
28 | buttonStack:CalculateSize()
29 |
30 | local backing = ContextPtr:LookUpControl("/InGame/LaunchBar/LaunchBacking")
31 | backing:SetSizeX(buttonStack:GetSizeX() + 116)
32 |
33 | local backingTile = ContextPtr:LookUpControl("/InGame/LaunchBar/LaunchBackingTile")
34 | backingTile:SetSizeX(buttonStack:GetSizeX() - 20)
35 |
36 | LuaEvents.LaunchBar_Resize(buttonStack:GetSizeX())
37 | isAttached = true
38 | end
39 | end
40 |
41 | -- CUI -----------------------------------------------------------------------
42 | function CuiOnIngameAction(actionId)
43 | if Game.GetLocalPlayer() == -1 then
44 | return
45 | end
46 |
47 | if actionId == Input.GetActionId("CuiActionToggleUnitList") then
48 | OnToggleUnitList()
49 | end
50 | end
51 |
52 | -- CUI -----------------------------------------------------------------------
53 | function Initialize()
54 | ContextPtr:SetHide(true)
55 |
56 | Events.LoadGameViewStateDone.Add(AttachToTopPanel)
57 | Events.InputActionTriggered.Add(CuiOnIngameAction)
58 | end
59 | Initialize()
60 |
--------------------------------------------------------------------------------
/mod/modules/unit_list/additions/cui_unitlist_button.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/mod/modules/unit_list/additions/cui_unitlist_screen.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
--------------------------------------------------------------------------------
/mod/modules/victory_tracking/additions/cui_victory_tracking.lua:
--------------------------------------------------------------------------------
1 | -- ===========================================================================
2 | -- cui_victory_tracking.lua
3 | -- ===========================================================================
4 |
5 | include("InstanceManager")
6 | include("PlayerSupport")
7 | include("cui_utils")
8 | include("cui_settings")
9 | include("cui_victory_support")
10 |
11 | -- CUI -----------------------------------------------------------------------
12 | local isAttached = false
13 |
14 | local CuiVictoryTT = {}
15 | TTManager:GetTypeControlTable("CuiVictoryTT", CuiVictoryTT)
16 |
17 | local victoryIconInstance = InstanceManager:new("VictoryIconInstance", "Top", Controls.VictoryIconInstanceContainer)
18 | local victoryLeaderInstance =
19 | InstanceManager:new("VictoryLeaderInstance", "Top", Controls.VictoryLeaderInstanceContainer)
20 |
21 | local ranks = {}
22 | local scienceData = {}
23 | local cultureData = {}
24 | local dominationData = {}
25 | local religionData = {}
26 | local diplomaticData = {}
27 |
28 | -- CUI -----------------------------------------------------------------------
29 | function GetData()
30 | local victoryTypes = GetVictoryTypes()
31 | for _, vType in ipairs(victoryTypes) do
32 | if vType == "SCIENCE" then
33 | scienceData, ranks["SCIENCE"] = GetScienceData()
34 | elseif vType == "CULTURE" then
35 | cultureData, ranks["CULTURE"] = GetCultureData()
36 | elseif vType == "DOMINATION" then
37 | dominationData, ranks["DOMINATION"] = GetDominationData()
38 | elseif vType == "RELIGION" then
39 | religionData, ranks["RELIGION"] = GetReligionData()
40 | elseif vType == "DIPLOMATIC" then
41 | diplomaticData, ranks["DIPLOMATIC"] = GetDiplomaticData()
42 | end
43 | end
44 | end
45 |
46 | -- CUI -----------------------------------------------------------------------
47 | function PopulateVictoryIcons()
48 | victoryIconInstance:ResetInstances()
49 | local victoryTypes = GetVictoryTypes()
50 | for _, vType in ipairs(victoryTypes) do
51 | if CuiSettings:GetBoolean(CuiSettings[vType]) then
52 | local instance = victoryIconInstance:GetInstance(Controls.VictoryButtonStack)
53 | local icon = "ICON_VICTORY_" .. vType
54 | if icon ~= nil then
55 | local textureOffsetX, textureOffsetY, textureSheet = IconManager:FindIconAtlas(icon, 64)
56 | if (textureSheet == nil or textureSheet == "") then
57 | UI.DataError('Could not find icon in PopulateVictoryButton: icon="' .. icon .. '", iconSize=64')
58 | else
59 | -- set icon
60 | instance.VictoryIcon:SetTexture(textureOffsetX, textureOffsetY, textureSheet)
61 | -- set tooltip
62 | instance.VictoryIcon:ClearToolTipCallback()
63 | instance.VictoryIcon:SetToolTipType("CuiVictoryTT")
64 | instance.VictoryIcon:SetToolTipCallback(
65 | function()
66 | UpdateVictoryToolTip(vType)
67 | end
68 | )
69 | -- set rank
70 | local rankText = ranks[vType]
71 | if rankText == 1 then
72 | rankText = "[COLOR_GREEN]" .. rankText .. "[ENDCOLOR]"
73 | end
74 | instance.Text:SetText("#" .. rankText)
75 | end
76 | end
77 | end
78 | end
79 | end
80 |
81 | -- CUI -----------------------------------------------------------------------
82 | function UpdateVictoryToolTip(vType)
83 | local localPlayerID = Game.GetLocalPlayer()
84 | if localPlayerID == -1 then
85 | return
86 | end
87 |
88 | local leaders
89 | if vType == "SCIENCE" then
90 | leaders = scienceData
91 | elseif vType == "CULTURE" then
92 | leaders = cultureData
93 | elseif vType == "DOMINATION" then
94 | leaders = dominationData
95 | elseif vType == "RELIGION" then
96 | leaders = religionData
97 | elseif vType == "DIPLOMATIC" then
98 | leaders = diplomaticData
99 | end
100 |
101 | victoryLeaderInstance:ResetInstances()
102 |
103 | for i, leader in ipairs(leaders) do
104 | local leaderInstance = victoryLeaderInstance:GetInstance(CuiVictoryTT.VictoryLeaderStack)
105 | SetVictoryLeaderInstance(vType, leader, leaderInstance)
106 | end
107 |
108 | local title = ""
109 | if vType == "RELIGION" then
110 | title = "LOC_VICTORY_RELIGIOUS_NAME"
111 | else
112 | title = "LOC_VICTORY_" .. vType .. "_NAME"
113 | end
114 |
115 | CuiVictoryTT.Title:SetText(Locale.Lookup(title))
116 | CuiVictoryTT.Divider:SetSizeX(CuiVictoryTT.Title:GetSizeX() + 60)
117 | CuiVictoryTT.BG:DoAutoSize()
118 | end
119 |
120 | -- CUI -----------------------------------------------------------------------
121 | function SetVictoryLeaderInstance(vType, leader, instance)
122 | local shouldShowIcon = leader.isLocalPlayer or leader.isMet
123 |
124 | local text1 = ""
125 | local text2 = ""
126 | if shouldShowIcon then
127 | if vType == "SCIENCE" then
128 | text1 = "[ICON_SCIENCE]" .. leader.scienceY .. " (" .. leader.techs .. ")"
129 | local progressText = ""
130 | local progress = leader.progresses
131 | if isExpansion2 then
132 | text2 =
133 | Locale.Lookup(
134 | "LOC_CUI_DB_EXOPLANET_EXPEDITION",
135 | progress[1],
136 | progress[2],
137 | progress[3],
138 | progress[4],
139 | progress[5]
140 | )
141 | else
142 | text2 = Locale.Lookup("LOC_CUI_DB_MARS_PROJECT", progress[1], progress[2], progress[3])
143 | end
144 | elseif vType == "CULTURE" then
145 | text1 = "[ICON_CULTURE]" .. leader.cultureY .. " ([ICON_TOURISM]" .. leader.tourism .. ")"
146 | text2 = Locale.Lookup("LOC_CUI_DB_VISITING_TOURISTS", leader.visiter, leader.tourists)
147 | elseif vType == "DOMINATION" then
148 | text1 = "[ICON_STRENGTH]" .. leader.strength
149 | text2 = Locale.Lookup("LOC_CUI_DB_CAPITALS_CAPTURED", leader.capture)
150 | elseif vType == "RELIGION" then
151 | text1 = "[ICON_FAITH]" .. leader.faithY
152 | text2 = Locale.Lookup("LOC_CUI_DB_CIVS_CONVERTED", leader.convert, leader.totalCiv)
153 | elseif vType == "DIPLOMATIC" then
154 | text1 = "[ICON_FAVOR] " .. leader.favor .. " (+" .. leader.favorPT .. ")"
155 | text2 = Locale.Lookup("LOC_CUI_DB_DIPLOMATIC_POINT", leader.current, leader.total)
156 | end
157 | end
158 |
159 | instance.Icon:SetTexture(CuiLeaderTexture(leader.leaderIcon, 45, shouldShowIcon))
160 | instance.UnMet:SetHide(shouldShowIcon)
161 | instance.State1:SetHide(not shouldShowIcon)
162 | instance.State1:SetText(text1)
163 | instance.State2:SetHide(not shouldShowIcon)
164 | instance.State2:SetText(text2 .. " ")
165 |
166 | if leader.isLocalPlayer then
167 | instance.LeaderIcon:SetOffsetX(-2)
168 | instance.YouIndicator:SetHide(false)
169 | else
170 | instance.LeaderIcon:SetOffsetX(0)
171 | instance.YouIndicator:SetHide(true)
172 | end
173 | end
174 |
175 | -- CUI -----------------------------------------------------------------------
176 | function RefreshAll()
177 | GetData()
178 | PopulateVictoryIcons()
179 | end
180 |
181 | -- CUI -----------------------------------------------------------------------
182 | function OnMinimapResize()
183 | if isAttached then
184 | local minimap = ContextPtr:LookUpControl("/InGame/MinimapPanel/MiniMap/MinimapContainer")
185 | Controls.CuiVictoryTracking:SetOffsetX(minimap:GetSizeX() + 10)
186 | end
187 | end
188 |
189 | -- CUI -----------------------------------------------------------------------
190 | function AttachToMinimap()
191 | if not isAttached then
192 | local minimap = ContextPtr:LookUpControl("/InGame/MinimapPanel/MiniMap/MinimapContainer")
193 | Controls.CuiVictoryTracking:ChangeParent(minimap)
194 | Controls.CuiVictoryTracking:SetOffsetX(minimap:GetSizeX() + 10)
195 | RefreshAll()
196 | isAttached = true
197 | end
198 | end
199 |
200 | -- CUI -----------------------------------------------------------------------
201 | function Initialize()
202 | ContextPtr:SetHide(true)
203 | Events.LoadGameViewStateDone.Add(AttachToMinimap)
204 | LuaEvents.CuiOnMinimapResize.Add(OnMinimapResize)
205 | LuaEvents.DiplomacyActionView_ShowIngameUI.Add(RefreshAll)
206 | Events.TurnBegin.Add(RefreshAll)
207 | LuaEvents.CuiVictorySettingChange.Add(RefreshAll)
208 | end
209 | Initialize()
210 |
--------------------------------------------------------------------------------
/mod/modules/victory_tracking/additions/cui_victory_tracking.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/scripts/build.py:
--------------------------------------------------------------------------------
1 | """
2 | This script automatically generates the 'cui.modinfo' based on the mod files.
3 | It relies heavily on how mod files are organized.
4 | """
5 |
6 | from datetime import date
7 | from pathlib import Path
8 | from xml.dom.minidom import parseString
9 | from xml.etree import ElementTree
10 | from xml.etree.ElementTree import Element, SubElement
11 |
12 | # Version
13 | GAME_VERSION = '1.0.5.11 (516180)'
14 | MOD_VERSION = '1.6.2'
15 |
16 | # Paths
17 | PATH_PROJECT = Path(__file__).parents[1]
18 | PATH_MOD = Path(PATH_PROJECT, 'mod')
19 | PATH_MODINFO = Path(PATH_MOD, 'cui.modinfo')
20 |
21 | # Mod Information
22 | MOD_ID = '5f504949-398a-4038-a838-43c3acc4dc10'
23 | MOD_NAME = '[COLOR_Civ6LightBlue]Concise UI[ENDCOLOR]'
24 | MOD_TEASER = 'For a better gaming experience.'
25 | MOD_DESC = (
26 | 'Concise UI greatly improves the game experience by '
27 | 'modifying the vanilla UI and adding new UI elements to the game.'
28 | f'[NEWLINE][NEWLINE]Game Version: {GAME_VERSION}'
29 | )
30 | MOD_AUTHOR = 'eudaimonia'
31 | MOD_SAVED = '0'
32 | MOD_COMPT = '2.0'
33 | CRITERIA_1 = 'Expansion1AndBeyond'
34 | RULE_SET_1 = 'RULESET_EXPANSION_1,RULESET_EXPANSION_2'
35 | CRITERIA_2 = 'Expansion2AndBeyond'
36 | RULE_SET_2 = 'RULESET_EXPANSION_2'
37 |
38 |
39 | def build():
40 | try:
41 | update_version_info()
42 | modinfo = _modinfo()
43 | _save(modinfo)
44 | except Exception as e:
45 | err_name = type(e).__name__
46 | print(f'[×] build failed\n > {err_name}: {e.args}')
47 | else:
48 | print('[√] build complete')
49 |
50 |
51 | def update_version_info():
52 | update_file = Path(PATH_MOD, 'lib/cui_update.lua')
53 | lines = []
54 | with open(update_file, 'r', encoding='utf-8') as f:
55 | lines = f.readlines()
56 | lines[0] = f'CuiVersion = "{MOD_VERSION}"\n'
57 | lines[1] = f'LastUpdate = "{date.today()}"\n'
58 | with open(update_file, 'w', encoding='utf-8') as f:
59 | f.writelines(lines)
60 |
61 |
62 | def _modinfo():
63 | root = Element('Mod', id=MOD_ID, version=MOD_VERSION)
64 | _add_properties(root)
65 | _add_criteria(root)
66 | _add_frontend(root)
67 | _add_ingame(root)
68 | _add_files(root)
69 | str_xml = ElementTree.tostring(root, encoding='utf-8')
70 | obj_dom = parseString(str_xml.decode('utf-8'))
71 | modinfo = obj_dom.toprettyxml(indent=' ', encoding='utf-8')
72 | return modinfo
73 |
74 |
75 | def _save(modinfo):
76 | with open(PATH_MODINFO, 'w+', encoding='utf-8') as f:
77 | f.write(modinfo.decode('utf-8'))
78 |
79 |
80 | # sub elements #################################################################
81 |
82 |
83 | def _add_properties(root):
84 | properties = SubElement(root, 'Properties')
85 | SubElement(properties, 'Name') .text = MOD_NAME
86 | SubElement(properties, 'Teaser') .text = MOD_TEASER
87 | SubElement(properties, 'Description') .text = MOD_DESC
88 | SubElement(properties, 'Authors') .text = MOD_AUTHOR
89 | SubElement(properties, 'AffectsSavedGames') .text = MOD_SAVED
90 | SubElement(properties, 'CompatibleVersions').text = MOD_COMPT
91 |
92 |
93 | def _add_criteria(root):
94 | criteria = SubElement(root, 'ActionCriteria')
95 | expansion_1 = SubElement(criteria, 'Criteria', id=CRITERIA_1, any='1')
96 | SubElement(expansion_1, 'RuleSetInUse').text = RULE_SET_1
97 | expansion_2 = SubElement(criteria, 'Criteria', id=CRITERIA_2, any='1')
98 | SubElement(expansion_2, 'RuleSetInUse').text = RULE_SET_2
99 |
100 |
101 | def _add_frontend(root):
102 | frontend = SubElement(root, 'FrontEndActions')
103 |
104 | # text
105 | fe_text = SubElement(frontend, 'UpdateText', id='Cui_Front_End_Text')
106 | _sub_files(sub=fe_text, key='config', suffix='.sql')
107 |
108 | # database
109 | fe_data = SubElement(frontend, 'UpdateDatabase',
110 | id='Cui_Front_End_Database')
111 | _sub_files(sub=fe_data, key='config', suffix='.xml')
112 |
113 |
114 | def _add_ingame(root):
115 | ingame = SubElement(root, 'InGameActions')
116 |
117 | # assets
118 | asset = SubElement(ingame, 'ImportFiles', id='Cui_Assets')
119 | _sub_files(sub=asset, key='assets', suffix=None)
120 |
121 | # localization
122 | update = SubElement(ingame, 'UpdateText', id='Cui_Text')
123 | _sub_files(sub=update, key='config', suffix='.sql')
124 | _sub_files(sub=update, key='localization', suffix=None)
125 |
126 | # lib
127 | lib = SubElement(ingame, 'ImportFiles', id='Cui_Lib')
128 | lib_p = SubElement(lib, 'Properties')
129 | SubElement(lib_p, 'LoadOrder').text = '10'
130 | _sub_files(sub=lib, key='lib', suffix=None)
131 |
132 | # support
133 | support = SubElement(ingame, 'ImportFiles', id='Cui_Support')
134 | support_p = SubElement(support, 'Properties')
135 | SubElement(support_p, 'LoadOrder').text = '11'
136 | _sub_files(sub=support, key='support', suffix=None)
137 |
138 | # base game
139 | base = SubElement(ingame, 'ImportFiles', id='Cui_Base')
140 | base_p = SubElement(base, 'Properties')
141 | SubElement(base_p, 'LoadOrder').text = '12'
142 | _sub_files(sub=base, key='base', suffix=None)
143 |
144 | # expansion1
145 | expansion1 = SubElement(ingame, 'ImportFiles',
146 | id='Cui_Expansion1', criteria=CRITERIA_1)
147 | expansion1_p = SubElement(expansion1, 'Properties')
148 | SubElement(expansion1_p, 'LoadOrder').text = '13'
149 | _sub_files(sub=expansion1, key='expansion1', suffix=None)
150 |
151 | # expansion2
152 | expansion2 = SubElement(ingame, 'ImportFiles',
153 | id='Cui_Expansion2', criteria=CRITERIA_2)
154 | expansion2_p = SubElement(expansion2, 'Properties')
155 | SubElement(expansion2_p, 'LoadOrder').text = '14'
156 | _sub_files(sub=expansion2, key='expansion2', suffix=None)
157 |
158 | # additions - import files
159 | add_if = SubElement(ingame, 'ImportFiles', id='Cui_Additions')
160 | add_if_p = SubElement(add_if, 'Properties')
161 | SubElement(add_if_p, 'LoadOrder').text = '15'
162 | _sub_files(sub=add_if, key='additions', suffix=None)
163 |
164 | # additions - add user interface
165 | add_ui = SubElement(ingame, 'AddUserInterfaces', id='Cui_UI')
166 | add_ui_p = SubElement(add_ui, 'Properties')
167 | SubElement(add_ui_p, 'Context').text = 'InGame'
168 | _sub_files(sub=add_ui, key='additions', suffix='.xml')
169 |
170 |
171 | def _add_files(root):
172 | files = SubElement(root, 'Files')
173 | _sub_files(sub=files, key=None, suffix=None)
174 |
175 |
176 | # help functions ###############################################################
177 |
178 |
179 | def _get_files(mod_path, key, suffix):
180 | for item in mod_path.iterdir():
181 | if item.suffix == '.modinfo':
182 | continue
183 | if item.is_file():
184 | right_key = key is None or item.parents[0].name == key
185 | right_suf = suffix is None or item.suffix == suffix
186 | if right_key and right_suf:
187 | yield item
188 | elif item.is_dir():
189 | yield from _get_files(item, key, suffix)
190 |
191 |
192 | def _sub_files(*, sub, key, suffix):
193 | for f in _get_files(PATH_MOD, key, suffix):
194 | SubElement(sub, 'File').text = _relative_path(f)
195 |
196 |
197 | def _relative_path(full_path):
198 | str_path = str(full_path).replace('\\', '/')
199 | rel_path = str_path.split('mod/', 1)[1]
200 | return rel_path
201 |
202 |
203 | if __name__ == '__main__':
204 | build()
205 |
--------------------------------------------------------------------------------
/scripts/test.py:
--------------------------------------------------------------------------------
1 | """
2 | This script copies the mod from the project directory to the steam directory
3 | for testing purposes.
4 | """
5 |
6 | import shutil
7 | from pathlib import Path
8 |
9 | from build import build
10 |
11 | # Paths
12 | PATH_PROJECT = Path(__file__).parents[1]
13 | PATH_MOD = Path(PATH_PROJECT, 'mod')
14 |
15 | # ! This is the path on my computer, if you want to try this script,
16 | # please change it to where you installed the steam.
17 | PATH_STEAM = Path(r'e:/Steam/steamapps/workshop/content/289070/1671978687')
18 |
19 |
20 | def copy_():
21 | try:
22 | shutil.copytree(PATH_MOD, PATH_STEAM, dirs_exist_ok=True)
23 | except Exception as e:
24 | err_name = type(e).__name__
25 | print(f'[×] copy failed\n > {err_name}: {e.args}')
26 | else:
27 | print('[√] copy complete')
28 |
29 |
30 | if __name__ == "__main__":
31 | build()
32 | copy_()
33 |
--------------------------------------------------------------------------------