Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 111 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
# NIKKE Select

一個用於記錄和管理《勝利女神:妮姬》遊戲角色的網頁工具。

## 📖 專案簡介

NIKKE Select 是一個專為《勝利女神:妮姬》玩家設計的網頁應用程式,幫助玩家記錄擁有的妮姬角色、管理角色星級,並進行隊伍模擬配置。

## ✨ 主要功能

### 🎯 妮姬紀錄 (nikke.html)
- **角色收藏管理**:記錄所有擁有的妮姬角色
- **星級系統**:點擊角色圖片可切換星級(0-11 星)
- **陣營分類**:自動按照 Elysion、Missilis、Tetra、Pilgrim、Abnormal 等陣營分類顯示
- **進度追蹤**:查看收集進度和統計數據
- **數據保存**:使用瀏覽器本地儲存(localStorage)自動保存進度
- **圖片匯出**:可將記錄頁面儲存為圖片

### 👥 隊伍模擬 (team.html)
- **拖放組隊**:透過拖放方式組建隊伍
- **Burst 分類**:按照 Burst 1、Burst 2、Burst 3 分類顯示角色
- **多隊伍管理**:可建立多個隊伍配置
- **隊伍截圖**:可將隊伍配置儲存為圖片分享

### 🏠 首頁 (index.html)
- 提供導航選單,快速切換不同功能頁面

## 🚀 使用方式

### 線上使用
直接訪問:https://swiftstar.github.io/nikke.select

### 本地運行
1. 下載或克隆此專案
2. 使用任何靜態網頁伺服器開啟專案
- 或直接使用瀏覽器開啟 `index.html` 檔案

## 📁 專案結構

```
nikke.select/
├── index.html # 首頁
├── nikke.html # 妮姬紀錄頁面
├── team.html # 隊伍模擬頁面
├── css/ # 樣式表
│ ├── styles0.css # 首頁樣式
│ ├── styles1.css # 妮姬紀錄頁面樣式
│ ├── styles2.css # 隊伍模擬頁面樣式
│ └── sweetalert2.css # SweetAlert2 樣式
├── js/ # JavaScript 檔案
│ ├── main0.js # 首頁邏輯
│ ├── main1.js # 妮姬紀錄頁面邏輯
│ ├── main2.js # 隊伍模擬頁面邏輯
│ ├── datasave1.js # 妮姬紀錄數據保存
│ ├── datasave2.js # 隊伍模擬數據保存
│ └── imgsave.js # 圖片保存功能
└── images/ # 圖片資源
├── character/ # 角色圖片
└── others/ # 其他圖片資源(星星、Burst 圖標等)
```

## 🛠️ 技術棧

- **HTML5** - 網頁結構
- **CSS3** - 樣式設計
- **JavaScript (ES6+)** - 核心功能實現
- **localStorage** - 本地數據儲存
- **html2canvas** - 網頁截圖功能
- **SweetAlert2** - 美觀的提示對話框

## 📝 功能說明

### 星級系統
- 點擊角色圖片可循環切換星級(0-11 星)
- 星級 0 表示未擁有該角色
- 星級 1-11 表示角色的突破等級

### 數據保存
- 所有進度自動保存到瀏覽器的 localStorage
- 重新開啟頁面時會自動載入之前的進度
- 可透過「重設」按鈕清除所有數據

### 隊伍模擬
- 從左側角色列表拖放角色到右側隊伍格子
- 支援建立多個隊伍配置
- 可透過「+」和「-」按鈕新增或刪除隊伍

## 🎨 特色

- ✅ 響應式設計,支援各種螢幕尺寸
- ✅ 直觀的拖放操作介面
- ✅ 自動保存功能,無需手動儲存
- ✅ 精美的 UI 設計
- ✅ 完整的角色資料庫

## 📄 授權

此專案為開源專案,歡迎自由使用和修改。

## 🤝 貢獻

歡迎提交 Issue 或 Pull Request 來改善此專案!

## 📧 聯絡方式

如有問題或建議,請透過 GitHub Issues 聯繫。

---

**注意**:此專案為非官方工具,與遊戲官方無關。

Binary file added images/character/image100.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/character/image100b.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/character/image101.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/character/image101b.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/character/image102.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/character/image102b.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/character/image103.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/character/image103b.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/character/image82.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/character/image82b.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/character/image83.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/character/image83b.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/character/image84.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/character/image84b.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/character/image85.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/character/image85b.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/character/image86.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/character/image86b.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/character/image87.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/character/image87b.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/character/image88.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/character/image88b.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/character/image89.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/character/image89b.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/character/image90.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/character/image90b.webp
Binary file added images/character/image91.webp
Binary file added images/character/image91b.webp
Binary file added images/character/image92.webp
Binary file added images/character/image92b.webp
Binary file added images/character/image93.webp
Binary file added images/character/image93b.webp
Binary file added images/character/image94.webp
Binary file added images/character/image94b.webp
Binary file added images/character/image95.webp
Binary file added images/character/image95b.webp
Binary file added images/character/image96.webp
Binary file added images/character/image96b.webp
Binary file added images/character/image97.webp
Binary file added images/character/image97b.webp
Binary file added images/character/image98.webp
Binary file added images/character/image98b.webp
Binary file added images/character/image99.webp
Binary file added images/character/image99b.webp
15 changes: 11 additions & 4 deletions js/main1.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,18 @@ document.addEventListener('contextmenu', (event) => {
});

const nikkenum = {
'Elysion': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 11, 16, 12, 76, 79, 15, 73],
'Missilis': [17, 18, 20, 21, 22, 29, 30, 31, 32, 33, 19, 25, 26, 27, 23, 77, 78, 28],
'Tetra': [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 55, 56, 58, 24, 51, 52, 53, 49, 59, 47, 48, 50, 54, 57, 60, 72],
'Elysion': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 11, 16, 12, 76, 79, 15, 73, // SSR
82, 83, 85, 93, // SR
95, 96, 97], // R
'Missilis': [17, 18, 20, 21, 22, 29, 30, 31, 32, 33, 19, 25, 26, 27, 23, 77, 78, 28, // SSR
88, 89, 91, //SR
98, 99, 100], // R
'Tetra': [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 55, 56, 58, 24, 51, 52, 53, 49, 59, 47, 48, 50, 54, 57, 60, 72, // SSR
84, 86, 87, 90, // SR
101, 102, 103], // R
'Pilgrim': [61, 62, 63, 65, 66, 67, 68, 69, 64, 80, 81],
'Abnormal': [70, 71, 74, 75],
'Abnormal': [70, 71, 74, 75, // SSR
92, 94], // SR
};

// 使用解構賦值將容器長度儲存到相對應的變數中
Expand Down
12 changes: 9 additions & 3 deletions js/main2.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,15 @@ document.addEventListener('contextmenu', (event) => {
});

const nikketeamnum = {
'Burst 1': [1, 5, 20, 23, 29, 35, 36, 38, 40, 41, 43, 45, 55, 51, 52, 49, 59, 50, 78, 57, 60, 62, 64],
'Burst 2': [3, 4, 8, 14, 12, 76, 73, 21, 31, 32, 25, 26, 27, 77, 28, 37, 39, 42, 44, 58, 24, 53, 47, 54, 67, 69, 70],
'Burst 3': [2, 6, 7, 9, 10, 13, 11, 16, 79, 15, 17, 18, 22, 30, 33, 19, 34, 46, 56, 48, 72, 61, 63, 65, 66, 68, 80, 71, 74, 75],
'Burst 1': [1, 5, 20, 23, 29, 35, 36, 38, 40, 41, 43, 45, 55, 51, 52, 49, 59, 50, 78, 57, 60, 62, 64, // SSR
83, 87, 88, 91, 93, 94, // SR
97, 98, 101, 102], // R
'Burst 2': [3, 4, 8, 14, 12, 76, 73, 21, 31, 32, 25, 26, 27, 77, 28, 37, 39, 42, 44, 58, 24, 53, 47, 54, 67, 69, 70, // SSR
84, 85, 86, 92, // SR
96, 100], // R
'Burst 3': [2, 6, 7, 9, 10, 13, 11, 16, 79, 15, 17, 18, 22, 30, 33, 19, 34, 46, 56, 48, 72, 61, 63, 65, 66, 68, 80, 71, 74, 75, // SSR
82, 89, 90, // SR
95, 99, 103], // R
'Burst 1~3': [81],
};

Expand Down