-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
171 lines (168 loc) · 8.64 KB
/
index.html
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
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
<!DOCTYPE html>
<html>
<head>
<title>Infinite IF | Interactive Fiction App Powered by AI | Chimeric AI</title>
<meta name="description" content="Infinite IF is an interactive fiction app powered by AI, offering endless storytelling possibilities. Dive into unique adventures or create your own, all driven by advanced language models. Imagined by Hans Scharler, LightFun Games, and Chimeric AI">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="assets/images/icons/if-icon-gold.svg" type="image/svg+xml">
<link rel="manifest" href="manifest.json">
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Roboto&family=Dancing+Script:wght@700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="assets/css/styles.css?v=1.0.5">
</head>
<body>
<nav>
<div class="nav-content">
<a href="#" id="nav-home-link" title="Infinite IF | Interactive Fiction App Powered by AI">
<img src="assets/images/icons/if-icon.svg" alt="Infinite IF">
<span>Infinite IF</span>
</a>
</div>
<div id="loading-spinner">
<span class="material-symbols-outlined">hourglass_empty</span>
</div>
<span class="material-symbols-outlined" id="saved-stories-icon">list_alt</span>
<span class="material-symbols-outlined" id="reload-icon">refresh</span>
<span class="material-symbols-outlined" id="settings-icon">settings</span>
</nav>
<div id="start-screen">
<div id="start-buttons">
<button data-seed="A mysterious forest" data-icon="forest">
<span class="material-symbols-outlined">forest</span>
Explore a Mysterious Forest
</button>
<button data-seed="An abandoned spaceship" data-icon="rocket_launch">
<span class="material-symbols-outlined">rocket_launch</span>
Investigate an Abandoned Spaceship
</button>
<button data-seed="A medieval castle" data-icon="castle">
<span class="material-symbols-outlined">castle</span>
Enter a Medieval Castle
</button>
<button data-seed="A haunted mansion" data-icon="home">
<span class="material-symbols-outlined">home</span>
Explore a Haunted Mansion
</button>
<button data-seed="A pirate ship" data-icon="directions_boat">
<span class="material-symbols-outlined">directions_boat</span>
Sail on a Pirate Ship
</button>
<button data-seed="A futuristic city" data-icon="location_city">
<span class="material-symbols-outlined">location_city</span>
Discover a Futuristic City
</button>
<button data-seed="An ancient Egyptian tomb" data-icon="account_balance">
<span class="material-symbols-outlined">account_balance</span>
Uncover an Ancient Egyptian Tomb
</button>
<button data-seed="A secret underground laboratory" data-icon="science">
<span class="material-symbols-outlined">science</span>
Infiltrate a Secret Underground Lab
</button>
<button id="custom-scenario-button">
<span class="material-symbols-outlined">edit</span>
Create Your Own Adventure
</button>
</div>
<p class="footer-text">
<span class="material-symbols-outlined footer-icons">hotel_class</span>
<span>Surprises are possible.</span>
<span class="material-symbols-outlined footer-icons">view_list</span>
<span>v1.0.5</span>
<span class="material-symbols-outlined footer-icons">developer_mode</span>
<a href="https://nothans.com/ai" target="_blank">NotHans</a>
</p>
</div>
<div id="game-container" style="display: none;">
<div id="story"></div>
<div id="options-and-input">
<button id="restart-button" style="display: none;">
<span class="material-symbols-outlined" id="reload-icon">refresh</span> Start a New Story
</button>
<div class="scroll-arrow left" id="scroll-left" style="display: none;">
<span class="material-symbols-outlined">chevron_left</span>
</div>
<div id="options"></div>
<div class="scroll-arrow right" id="scroll-right" style="display: none;">
<span class="material-symbols-outlined">chevron_right</span>
</div>
<div id="input-area">
<input type="text" id="user-input" placeholder="Type your choice here...">
<button id="submit-button">
<span class="material-symbols-outlined">send</span>
</button>
<button id="end-story-button" title="End story">
End Story
</button>
</div>
</div>
</div>
<div id="settings-modal" class="modal">
<div class="modal-content">
<span class="close">×</span>
<h2>Settings</h2>
<div class="settings-group">
<label for="ai-service-select">AI Service Provider:</label>
<select id="ai-service-select">
<option value="openai">OpenAI</option>
<option value="azure">Azure OpenAI</option>
<option value="openrouter">OpenRouter</option>
</select>
</div>
<div class="settings-group" id="openai-settings-group">
<label for="openai-key-input">OpenAI API Key:</label>
<input type="text" id="openai-key-input" placeholder="Enter your OpenAI API Key">
</div>
<div class="settings-group" id="openrouter-settings-group" style="display: none;">
<label for="openrouter-key-input">OpenRouter API Key:</label>
<input type="text" id="openrouter-key-input" placeholder="Enter your OpenRouter API Key">
<label for="openrouter-model-input">OpenRouter Model:</label>
<input type="text" id="openrouter-model-input" placeholder="Enter the OpenRouter Model">
</div>
<div class="settings-group" id="azure-settings-group" style="display: none;">
<label for="azure-endpoint-input">Azure OpenAI Endpoint URL:</label>
<input type="text" id="azure-endpoint-input" placeholder="Enter your Azure OpenAI Endpoint URL">
<label for="azure-key-input">Azure OpenAI Key:</label>
<input type="text" id="azure-key-input" placeholder="Enter your Azure OpenAI Key">
</div>
<div class="settings-group" id="tts-group">
<label for="tts-checkbox">Enable Text-to-Speech:</label>
<input type="checkbox" id="tts-checkbox">
</div>
<div class="settings-group" id="voice-selection-group" style="display: none;">
<label for="voice-select">Select Voice:</label>
<select id="voice-select">
<option value="alloy">Alloy</option>
<option value="echo">Echo</option>
<option value="fable">Fable</option>
<option value="onyx" selected>Onyx</option>
<option value="nova">Nova</option>
<option value="shimmer">Shimmer</option>
</select>
</div>
<div class="settings-group">
<label for="writing-style-input">Writing Style:</label>
<textarea id="writing-style-input" placeholder="Enter a custom writing style"></textarea>
</div>
<button id="save-settings-button">Save Settings</button>
</div>
</div>
<div id="saved-stories-modal" class="modal">
<div class="modal-content">
<span class="close">×</span>
<h2>Saved Stories</h2>
<div id="saved-stories-list"></div>
</div>
</div>
<div id="story-view-modal" class="modal">
<div class="modal-content">
<span class="close">×</span>
<h2 id="story-view-title"></h2>
<div id="story-view-content"></div>
</div>
</div>
<script src="assets/js/icons.js?v=1.0.5"></script>
<script src="assets/js/app.js?v=1.0.5"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/timeago.js/4.0.2/timeago.min.js"></script>
</body>
</html>