Merge remote-tracking branch 'origin/main'

# Conflicts:
#	Assets/Data/Cards/CardDatabase.asset
#	Assets/Scenes/MainMenuScene.unity
#	Assets/Scripts/UI/MainMenuController.cs
This commit is contained in:
2026-07-06 22:49:09 +02:00
101 changed files with 2036 additions and 541 deletions
-10
View File
@@ -1,10 +0,0 @@
fileFormatVersion: 2
guid: b39165b71c3e4bef9656e93e236530c1
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}
+3 -2
View File
@@ -5,8 +5,9 @@
<ui:Label class="screen-frame-title" />
</ui:VisualElement>
<ui:VisualElement class="screen-frame-content">
<ui:VisualElement name="GachaContent" class="stub-box">
<!-- TODO: Render summon options and results here when gacha logic exists. -->
<ui:VisualElement name="GachaContent" class="gacha-shell">
<ui:VisualElement name="GachaBannerList" class="gacha-banner-list" />
<ui:VisualElement name="GachaBannerDetail" class="gacha-banner-detail" />
</ui:VisualElement>
</ui:VisualElement>
<ui:VisualElement class="screen-frame-footer">
-10
View File
@@ -1,10 +0,0 @@
fileFormatVersion: 2
guid: ec1119ad0fcf4b7282c4e65a3c7f186d
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}
+255
View File
@@ -125,6 +125,29 @@ Button {
margin-right: 18px;
}
.currency-plus-button {
width: 24px;
height: 22px;
margin-right: 12px;
padding-left: 0;
padding-right: 0;
border-left-width: 1px;
border-right-width: 1px;
border-top-width: 1px;
border-bottom-width: 1px;
border-left-color: var(--kp-amber);
border-right-color: var(--kp-amber);
border-top-color: var(--kp-amber);
border-bottom-color: var(--kp-amber);
background-color: var(--kp-bg-solid);
color: var(--kp-amber);
}
.currency-plus-button:hover {
background-color: var(--kp-amber);
color: var(--kp-bg);
}
.main-panel {
flex-grow: 1;
justify-content: center;
@@ -500,6 +523,175 @@ Button {
background-color: var(--kp-panel);
}
.gacha-shell {
flex-grow: 1;
min-height: 0;
flex-direction: row;
}
.gacha-banner-list {
width: 270px;
min-width: 270px;
margin-right: 16px;
padding-top: 4px;
border-left-width: 1px;
border-right-width: 1px;
border-top-width: 1px;
border-bottom-width: 1px;
border-left-color: var(--kp-border);
border-right-color: var(--kp-border);
border-top-color: var(--kp-border);
border-bottom-color: var(--kp-border);
background-color: var(--kp-panel);
}
.gacha-banner-detail {
flex-grow: 1;
min-width: 0;
padding: 16px;
border-left-width: 1px;
border-right-width: 1px;
border-top-width: 1px;
border-bottom-width: 1px;
border-left-color: var(--kp-border);
border-right-color: var(--kp-border);
border-top-color: var(--kp-border);
border-bottom-color: var(--kp-border);
background-color: var(--kp-panel);
}
.gacha-banner-detail .kv-value {
max-width: none;
min-width: 0;
}
.gacha-banner-detail .kv-key {
width: 170px;
min-width: 170px;
}
.gacha-banner-row {
min-height: 42px;
flex-direction: row;
align-items: center;
padding-left: 10px;
padding-right: 10px;
margin-top: 3px;
margin-bottom: 3px;
border-left-width: 2px;
border-left-color: transparent;
}
.gacha-banner-row:hover,
.gacha-banner-row.selected {
background-color: var(--kp-hover);
}
.gacha-banner-row.selected {
border-left-color: var(--kp-primary);
}
.gacha-detail-title {
color: var(--kp-primary);
font-size: 22px;
-unity-font-style: bold;
margin-bottom: 12px;
}
.gacha-hero {
min-height: 310px;
max-height: 340px;
margin-bottom: 18px;
padding: 14px;
border-left-width: 1px;
border-right-width: 1px;
border-top-width: 1px;
border-bottom-width: 1px;
border-left-color: var(--kp-primary-dim);
border-right-color: var(--kp-primary-dim);
border-top-color: var(--kp-primary-dim);
border-bottom-color: var(--kp-primary-dim);
background-color: var(--kp-bg-solid);
}
.gacha-hero-art-row {
flex-grow: 1;
min-height: 0;
flex-direction: row;
}
.gacha-art-card {
flex-grow: 1;
min-width: 0;
margin-right: 12px;
align-items: center;
}
.gacha-art-shell {
flex-grow: 1;
min-height: 220px;
width: 100%;
align-items: center;
justify-content: center;
overflow: hidden;
}
.gacha-art-card .ascii-art,
.gacha-ascii-art {
width: 100%;
min-width: 0;
height: 220px;
font-size: 18px;
}
.gacha-art-card .ascii-placeholder,
.gacha-ascii-placeholder {
width: 180px;
height: 210px;
}
.gacha-art-name {
min-height: 24px;
font-size: 16px;
-unity-font-style: bold;
-unity-text-align: middle-center;
}
.gacha-hero-title {
color: var(--kp-muted);
font-size: 15px;
margin-top: 8px;
-unity-text-align: middle-center;
}
.gacha-rules {
color: var(--kp-muted);
white-space: normal;
margin-top: 10px;
margin-bottom: 12px;
}
.gacha-actions {
flex-direction: row;
margin-top: 8px;
margin-bottom: 12px;
}
.gacha-action-button {
width: 220px;
min-height: 58px;
margin-top: 0;
margin-right: 12px;
white-space: normal;
-unity-text-align: middle-center;
}
.gacha-result {
color: var(--kp-amber);
white-space: normal;
margin-top: 8px;
}
.collection-content {
min-height: 280px;
}
@@ -882,6 +1074,69 @@ ScrollView .unity-base-slider__dragger {
background-color: var(--kp-bg-solid);
}
.root-credit-dialog {
width: 82%;
height: 72%;
padding: 28px;
justify-content: center;
border-left-width: 1px;
border-right-width: 1px;
border-top-width: 1px;
border-bottom-width: 1px;
border-left-color: var(--kp-amber);
border-right-color: var(--kp-amber);
border-top-color: var(--kp-amber);
border-bottom-color: var(--kp-amber);
background-color: var(--kp-bg-solid);
}
.exchange-summary {
margin-top: 8px;
margin-bottom: 18px;
}
.exchange-summary .kv-key {
width: 150px;
min-width: 150px;
}
.exchange-summary .kv-value {
max-width: none;
color: var(--kp-amber);
}
.exchange-input {
margin-bottom: 18px;
}
.exchange-input Label {
color: var(--kp-muted);
}
.exchange-input TextInput {
color: var(--kp-primary);
background-color: var(--kp-panel);
}
.exchange-step-row,
.exchange-confirm-row {
flex-direction: row;
margin-top: 10px;
}
.exchange-step-button {
width: 120px;
margin-right: 12px;
}
.exchange-confirm-button {
width: 320px;
min-height: 46px;
margin-right: 12px;
white-space: normal;
-unity-text-align: middle-center;
}
.starter-title {
color: var(--kp-primary);
font-size: 24px;
-12
View File
@@ -1,12 +0,0 @@
fileFormatVersion: 2
guid: bce4c6ca6c1d455e99443cc2d7a2593b
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
disableValidation: 0
unsupportedSelectorAction: 0
+31
View File
@@ -16,6 +16,7 @@
<ui:Label name="AppIdLabel" class="status-text" />
<ui:VisualElement class="status-right">
<ui:Label name="EntropyLabel" class="currency-text" />
<ui:Button name="RootCreditsToEntropyButton" text="+" class="currency-plus-button" focusable="false" />
<ui:Label name="PullTokensLabel" class="currency-text" />
<ui:Label text="uid=1000(player)" class="status-text" />
</ui:VisualElement>
@@ -188,5 +189,35 @@
<ui:Label name="StarterConfirmLabel" class="starter-confirm hidden" />
</ui:VisualElement>
</ui:VisualElement>
<ui:VisualElement name="RootCreditExchangeModal" class="modal-overlay hidden">
<ui:VisualElement class="root-credit-dialog">
<ui:Label text="exchange root-credits" class="starter-title" />
<ui:Label text="convert root-credits into entropy at 1:1. entropy cannot be converted back." class="starter-instruction" />
<ui:VisualElement class="exchange-summary">
<ui:VisualElement class="kv-row">
<ui:Label text="root-credits" class="kv-key" />
<ui:Label name="RootCreditExchangeBalanceLabel" class="kv-value" />
</ui:VisualElement>
<ui:VisualElement class="kv-row">
<ui:Label text="entropy gain" class="kv-key" />
<ui:Label name="RootCreditExchangePreviewLabel" class="kv-value" />
</ui:VisualElement>
</ui:VisualElement>
<ui:TextField name="RootCreditExchangeInput" label="amount" class="exchange-input" />
<ui:VisualElement class="exchange-step-row">
<ui:Button name="RootCreditExchangeMinusHundredButton" text="-100" class="terminal-button exchange-step-button" />
<ui:Button name="RootCreditExchangeMinusOneButton" text="-1" class="terminal-button exchange-step-button" />
<ui:Button name="RootCreditExchangeNoneButton" text="none" class="terminal-button exchange-step-button" />
<ui:Button name="RootCreditExchangePlusOneButton" text="+1" class="terminal-button exchange-step-button" />
<ui:Button name="RootCreditExchangePlusHundredButton" text="+100" class="terminal-button exchange-step-button" />
<ui:Button name="RootCreditExchangeMaxButton" text="max" class="terminal-button exchange-step-button" />
</ui:VisualElement>
<ui:Label name="RootCreditExchangeMessageLabel" class="starter-confirm hidden" />
<ui:VisualElement class="exchange-confirm-row">
<ui:Button name="RootCreditExchangeCancelButton" text="git merge --abort" class="terminal-button exchange-confirm-button" />
<ui:Button name="RootCreditExchangeConfirmButton" text="git merge root-credits --into entropy" class="terminal-button exchange-confirm-button" />
</ui:VisualElement>
</ui:VisualElement>
</ui:VisualElement>
</ui:VisualElement>
</ui:UXML>
-10
View File
@@ -1,10 +0,0 @@
fileFormatVersion: 2
guid: a720a33f8c2b4dfe9d8197772dc0ab21
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}
@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 7d68bd7978394c8295debbd403a39d80
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
-10
View File
@@ -1,10 +0,0 @@
fileFormatVersion: 2
guid: cb8ce38e52cb45179ea337b19fa99043
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}
@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 50d8f7f949f77429c91ec4d834d2afb2
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 12388, guid: 0000000000000000e000000000000000, type: 0}
disableValidation: 0