@turnipxenon/pineapple 2.4.23 → 2.4.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/.idea/workspace.xml +82 -79
  2. package/.svelte-kit/__package__/index.d.ts +1 -1
  3. package/.svelte-kit/__package__/index.js +1 -1
  4. package/.svelte-kit/__package__/template/Seaweed/GameSection.svelte +207 -0
  5. package/.svelte-kit/__package__/template/Seaweed/GameSection.svelte.d.ts +17 -0
  6. package/.svelte-kit/__package__/template/Seaweed/ProjectSection.svelte +289 -0
  7. package/.svelte-kit/__package__/template/Seaweed/ProjectSection.svelte.d.ts +17 -0
  8. package/.svelte-kit/__package__/template/Seaweed/SeaweedTemplate.svelte +362 -0
  9. package/.svelte-kit/__package__/template/{SeaweedTemplate.svelte.d.ts → Seaweed/SeaweedTemplate.svelte.d.ts} +2 -0
  10. package/.svelte-kit/__package__/template/Seaweed/seaweed.postcss +133 -0
  11. package/.svelte-kit/__package__/util/util.d.ts +3 -0
  12. package/.svelte-kit/ambient.d.ts +2 -0
  13. package/.svelte-kit/generated/server/internal.js +1 -1
  14. package/dist/index.d.ts +1 -1
  15. package/dist/index.js +1 -1
  16. package/dist/template/Seaweed/GameSection.svelte +207 -0
  17. package/dist/template/Seaweed/GameSection.svelte.d.ts +17 -0
  18. package/dist/template/Seaweed/ProjectSection.svelte +289 -0
  19. package/dist/template/Seaweed/ProjectSection.svelte.d.ts +17 -0
  20. package/dist/template/Seaweed/SeaweedTemplate.svelte +362 -0
  21. package/dist/template/{SeaweedTemplate.svelte.d.ts → Seaweed/SeaweedTemplate.svelte.d.ts} +2 -0
  22. package/dist/template/Seaweed/seaweed.postcss +133 -0
  23. package/dist/util/util.d.ts +3 -0
  24. package/package.json +1 -1
  25. package/src/lib/index.ts +1 -1
  26. package/src/lib/template/Seaweed/GameSection.svelte +213 -0
  27. package/src/lib/template/Seaweed/ProjectSection.svelte +298 -0
  28. package/src/lib/template/Seaweed/SeaweedTemplate.svelte +433 -0
  29. package/src/lib/template/Seaweed/seaweed.postcss +133 -0
  30. package/src/lib/util/util.ts +4 -0
  31. package/src/routes/(seaweed)/portfolio/+page.svelte +1 -1
  32. package/src/routes/(seaweed)/portfolio/actual/+page.svelte +4 -4
  33. package/src/routes/+layout.svelte +18 -0
  34. package/.svelte-kit/__package__/template/SeaweedTemplate.svelte +0 -910
  35. package/dist/template/SeaweedTemplate.svelte +0 -910
  36. package/src/lib/template/SeaweedTemplate.svelte +0 -877
@@ -4,9 +4,7 @@
4
4
  <option name="autoReloadType" value="SELECTIVE" />
5
5
  </component>
6
6
  <component name="ChangeListManager">
7
- <list default="true" id="accb6ba2-c343-4f84-ad30-6e2d71eceee5" name="Changes" comment="Add external link warning stub">
8
- <change beforePath="$PROJECT_DIR$/src/lib/util/util.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/lib/util/util.ts" afterDir="false" />
9
- </list>
7
+ <list default="true" id="accb6ba2-c343-4f84-ad30-6e2d71eceee5" name="Changes" comment="Add page query param creator" />
10
8
  <option name="SHOW_DIALOG" value="false" />
11
9
  <option name="HIGHLIGHT_CONFLICTS" value="true" />
12
10
  <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
@@ -35,6 +33,8 @@
35
33
  <option value="ToggleableContent" />
36
34
  <option value="Toast" />
37
35
  <option value="TestCard" />
36
+ <option value="GameSection" />
37
+ <option value="ProjectSection" />
38
38
  <option value="TypeScript File" />
39
39
  </list>
40
40
  </option>
@@ -76,32 +76,32 @@
76
76
  <option name="hideEmptyMiddlePackages" value="true" />
77
77
  <option name="showLibraryContents" value="true" />
78
78
  </component>
79
- <component name="PropertiesComponent">{
80
- &quot;keyToString&quot;: {
81
- &quot;DefaultHtmlFileTemplate&quot;: &quot;HTML File&quot;,
82
- &quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
83
- &quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
84
- &quot;WebServerToolWindowFactoryState&quot;: &quot;false&quot;,
85
- &quot;git-widget-placeholder&quot;: &quot;turnip/dev&quot;,
86
- &quot;ignore.virus.scanning.warn.message&quot;: &quot;true&quot;,
87
- &quot;last_opened_file_path&quot;: &quot;C:/Users/Pumpkin/Projects/Web/pineapple/src/lib/assets/placeholder&quot;,
88
- &quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
89
- &quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
90
- &quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
91
- &quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
92
- &quot;nodejs_interpreter_path&quot;: &quot;node&quot;,
93
- &quot;nodejs_package_manager_path&quot;: &quot;yarn&quot;,
94
- &quot;npm.build.executor&quot;: &quot;Run&quot;,
95
- &quot;npm.dev (1).executor&quot;: &quot;Run&quot;,
96
- &quot;npm.dev --open.executor&quot;: &quot;Run&quot;,
97
- &quot;npm.dev offline.executor&quot;: &quot;Run&quot;,
98
- &quot;npm.dev-offline.executor&quot;: &quot;Run&quot;,
99
- &quot;npm.dev.executor&quot;: &quot;Run&quot;,
100
- &quot;settings.editor.selected.configurable&quot;: &quot;preferences.pluginManager&quot;,
101
- &quot;ts.external.directory.path&quot;: &quot;C:\\Users\\Pumpkin\\Projects\\Web\\pineapple\\node_modules\\typescript\\lib&quot;,
102
- &quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
79
+ <component name="PropertiesComponent"><![CDATA[{
80
+ "keyToString": {
81
+ "DefaultHtmlFileTemplate": "HTML File",
82
+ "RunOnceActivity.OpenProjectViewOnStart": "true",
83
+ "RunOnceActivity.ShowReadmeOnStart": "true",
84
+ "WebServerToolWindowFactoryState": "false",
85
+ "git-widget-placeholder": "turnip/dev",
86
+ "ignore.virus.scanning.warn.message": "true",
87
+ "last_opened_file_path": "C:/Users/Pumpkin/Projects/Web/pineapple/src/lib/assets/placeholder",
88
+ "node.js.detected.package.eslint": "true",
89
+ "node.js.detected.package.tslint": "true",
90
+ "node.js.selected.package.eslint": "(autodetect)",
91
+ "node.js.selected.package.tslint": "(autodetect)",
92
+ "nodejs_interpreter_path": "node",
93
+ "nodejs_package_manager_path": "yarn",
94
+ "npm.build.executor": "Run",
95
+ "npm.dev (1).executor": "Run",
96
+ "npm.dev --open.executor": "Run",
97
+ "npm.dev offline.executor": "Run",
98
+ "npm.dev-offline.executor": "Run",
99
+ "npm.dev.executor": "Run",
100
+ "settings.editor.selected.configurable": "inlay.hints",
101
+ "ts.external.directory.path": "C:\\Users\\Pumpkin\\Projects\\Web\\pineapple\\node_modules\\typescript\\lib",
102
+ "vue.rearranger.settings.migration": "true"
103
103
  }
104
- }</component>
104
+ }]]></component>
105
105
  <component name="RecentsManager">
106
106
  <key name="CopyFile.RECENT_KEYS">
107
107
  <recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\lib\assets\placeholder" />
@@ -111,11 +111,11 @@
111
111
  <recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\lib\components\pineapple\toast\custom-toast" />
112
112
  </key>
113
113
  <key name="MoveFile.RECENT_KEYS">
114
+ <recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\lib\types" />
115
+ <recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\lib" />
116
+ <recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\lib\template\Seaweed" />
114
117
  <recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\routes\(pineapple)\about" />
115
118
  <recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\routes\(pineapple)" />
116
- <recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\lib\components\pineapple\toast\custom-toast" />
117
- <recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\lib\components\pineapple\toast" />
118
- <recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\lib\components\pineapple" />
119
119
  </key>
120
120
  <key name="es6.move.members.recent.items">
121
121
  <recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\lib\util\util.ts" />
@@ -149,8 +149,8 @@
149
149
  </list>
150
150
  <recent_temporary>
151
151
  <list>
152
- <item itemvalue="npm.dev-offline" />
153
152
  <item itemvalue="npm.dev --open" />
153
+ <item itemvalue="npm.dev-offline" />
154
154
  <item itemvalue="npm.dev --open" />
155
155
  <item itemvalue="npm.dev-offline" />
156
156
  <item itemvalue="npm.dev --open" />
@@ -216,47 +216,10 @@
216
216
  <workItem from="1711052377810" duration="128000" />
217
217
  <workItem from="1711090540281" duration="11162000" />
218
218
  <workItem from="1711104214619" duration="25000" />
219
- <workItem from="1711108187279" duration="358000" />
220
- </task>
221
- <task id="LOCAL-00036" summary="Fix broken string width resolution">
222
- <option name="closed" value="true" />
223
- <created>1710094498499</created>
224
- <option name="number" value="00036" />
225
- <option name="presentableId" value="LOCAL-00036" />
226
- <option name="project" value="LOCAL" />
227
- <updated>1710094498499</updated>
228
- </task>
229
- <task id="LOCAL-00037" summary="Fix accordion styling and cropped object positioning">
230
- <option name="closed" value="true" />
231
- <created>1710097868234</created>
232
- <option name="number" value="00037" />
233
- <option name="presentableId" value="LOCAL-00037" />
234
- <option name="project" value="LOCAL" />
235
- <updated>1710097868234</updated>
236
- </task>
237
- <task id="LOCAL-00038" summary="Adjust css for mobile">
238
- <option name="closed" value="true" />
239
- <created>1710113276818</created>
240
- <option name="number" value="00038" />
241
- <option name="presentableId" value="LOCAL-00038" />
242
- <option name="project" value="LOCAL" />
243
- <updated>1710113276818</updated>
244
- </task>
245
- <task id="LOCAL-00039" summary="Add chips and query">
246
- <option name="closed" value="true" />
247
- <created>1710127422091</created>
248
- <option name="number" value="00039" />
249
- <option name="presentableId" value="LOCAL-00039" />
250
- <option name="project" value="LOCAL" />
251
- <updated>1710127422091</updated>
252
- </task>
253
- <task id="LOCAL-00040" summary="Add chips and query">
254
- <option name="closed" value="true" />
255
- <created>1710128080602</created>
256
- <option name="number" value="00040" />
257
- <option name="presentableId" value="LOCAL-00040" />
258
- <option name="project" value="LOCAL" />
259
- <updated>1710128080602</updated>
219
+ <workItem from="1711108187279" duration="1163000" />
220
+ <workItem from="1711115902471" duration="148000" />
221
+ <workItem from="1711116299202" duration="1291000" />
222
+ <workItem from="1711179012668" duration="13200000" />
260
223
  </task>
261
224
  <task id="LOCAL-00041" summary="Turn the portfolio site into a template">
262
225
  <option name="closed" value="true" />
@@ -610,7 +573,47 @@
610
573
  <option name="project" value="LOCAL" />
611
574
  <updated>1711101645201</updated>
612
575
  </task>
613
- <option name="localTasksCounter" value="85" />
576
+ <task id="LOCAL-00085" summary="Add external link warning stub">
577
+ <option name="closed" value="true" />
578
+ <created>1711108553537</created>
579
+ <option name="number" value="00085" />
580
+ <option name="presentableId" value="LOCAL-00085" />
581
+ <option name="project" value="LOCAL" />
582
+ <updated>1711108553537</updated>
583
+ </task>
584
+ <task id="LOCAL-00086" summary="Refactor Game Section to separate component">
585
+ <option name="closed" value="true" />
586
+ <created>1711180090086</created>
587
+ <option name="number" value="00086" />
588
+ <option name="presentableId" value="LOCAL-00086" />
589
+ <option name="project" value="LOCAL" />
590
+ <updated>1711180090086</updated>
591
+ </task>
592
+ <task id="LOCAL-00087" summary="Refactor GameSection out of SeaweedTemplate">
593
+ <option name="closed" value="true" />
594
+ <created>1711180642880</created>
595
+ <option name="number" value="00087" />
596
+ <option name="presentableId" value="LOCAL-00087" />
597
+ <option name="project" value="LOCAL" />
598
+ <updated>1711180642880</updated>
599
+ </task>
600
+ <task id="LOCAL-00088" summary="Remove unnecessary imports and variables in SeaweedTemplate">
601
+ <option name="closed" value="true" />
602
+ <created>1711180796474</created>
603
+ <option name="number" value="00088" />
604
+ <option name="presentableId" value="LOCAL-00088" />
605
+ <option name="project" value="LOCAL" />
606
+ <updated>1711180796474</updated>
607
+ </task>
608
+ <task id="LOCAL-00089" summary="Add page query param creator">
609
+ <option name="closed" value="true" />
610
+ <created>1711192223071</created>
611
+ <option name="number" value="00089" />
612
+ <option name="presentableId" value="LOCAL-00089" />
613
+ <option name="project" value="LOCAL" />
614
+ <updated>1711192223071</updated>
615
+ </task>
616
+ <option name="localTasksCounter" value="90" />
614
617
  <servers />
615
618
  </component>
616
619
  <component name="TypeScriptGeneratedFilesManager">
@@ -668,10 +671,6 @@
668
671
  </option>
669
672
  </component>
670
673
  <component name="VcsManagerConfiguration">
671
- <MESSAGE value="Improve text contrast" />
672
- <MESSAGE value="Improve text contrast in dark mode" />
673
- <MESSAGE value="Add animation to dynamically added button in social section" />
674
- <MESSAGE value="Implement normal state for PineappleBaseLayout" />
675
674
  <MESSAGE value="Add custom toast" />
676
675
  <MESSAGE value="Add simple text toast and toast queue" />
677
676
  <MESSAGE value="Enforce stricter typing for Toast components" />
@@ -693,6 +692,10 @@
693
692
  <MESSAGE value="Adjust turnip fab button color" />
694
693
  <MESSAGE value="Replace btn-group postcss class with turnip-menu&#10;&#10;There is postcss defined class called btn-group which has styles that have !important, which I accidentally used not knowing it exists, and it overrides whatever styles I apply on my class" />
695
694
  <MESSAGE value="Add external link warning stub" />
696
- <option name="LAST_COMMIT_MESSAGE" value="Add external link warning stub" />
695
+ <MESSAGE value="Refactor Game Section to separate component" />
696
+ <MESSAGE value="Refactor GameSection out of SeaweedTemplate" />
697
+ <MESSAGE value="Remove unnecessary imports and variables in SeaweedTemplate" />
698
+ <MESSAGE value="Add page query param creator" />
699
+ <option name="LAST_COMMIT_MESSAGE" value="Add page query param creator" />
697
700
  </component>
698
701
  </project>
@@ -1,5 +1,5 @@
1
1
  export { default as PineappleLayoutBase } from "./components/pineapple/PineappleBaseLayout.svelte";
2
- export { default as SeaweedTemplate } from "./template/SeaweedTemplate.svelte";
2
+ export { default as SeaweedTemplate } from "./template/Seaweed/SeaweedTemplate.svelte";
3
3
  export { default as LazyAsset } from "./components/LazyAsset.svelte";
4
4
  export { default as Card } from "./components/Card.svelte";
5
5
  export * from "./components/dialog_manager/DialogManagerStore";
@@ -1,5 +1,5 @@
1
1
  export { default as PineappleLayoutBase } from "./components/pineapple/PineappleBaseLayout.svelte";
2
- export { default as SeaweedTemplate } from "./template/SeaweedTemplate.svelte";
2
+ export { default as SeaweedTemplate } from "./template/Seaweed/SeaweedTemplate.svelte";
3
3
  export { default as LazyAsset } from "./components/LazyAsset.svelte";
4
4
  export { default as Card } from "./components/Card.svelte";
5
5
  export * from "./components/dialog_manager/DialogManagerStore";
@@ -0,0 +1,207 @@
1
+ <script>export let email = "turnipxenon@gmail.com";
2
+ import "./seaweed.postcss";
3
+ import HeaderPengi from "../../assets/temp/header-pengi.mp4";
4
+ import GithubIcon from "../../assets/icons/github-mark.svg";
5
+ import { ItchLogoHotLink } from "../../consts";
6
+ import HeaderHepCat from "../../assets/temp/header-hep-cat.mp4";
7
+ import BitbucketIcon from "../../assets/icons/bitbucket-icon.svg";
8
+ import HeaderChefWings from "../../assets/game_dev/footage-chef-wings.gif";
9
+ import LinkIcon from "../../assets/icons/link-icon.svg";
10
+ import HeaderSoulwork from "../../assets/temp/header-soulwork.mp4";
11
+ import Card from "../../components/Card.svelte";
12
+ import { getModalStore } from "@skeletonlabs/skeleton";
13
+ const modalStore = getModalStore();
14
+ const chefWingsWarning = {
15
+ type: "confirm",
16
+ title: "Warning: please confirm",
17
+ body: `This will directly link to the game itself, since this game does not have any game page or any publicly viewable source code. The game is only playable on desktop. Are you sure you wish to proceed? If there are any bugs, please report at <a href='mailto:${email}' target='_blank'>${email}</a>.`,
18
+ response: (r) => {
19
+ if (r) {
20
+ window.open("https://selk.io/birb-project/trunk/");
21
+ }
22
+ }
23
+ };
24
+ </script>
25
+
26
+ <Card>
27
+ <div class="section-card title-card" slot="content">
28
+ <h1 class="text-center">Games</h1>
29
+ </div>
30
+ </Card>
31
+
32
+ <section class="games-section">
33
+
34
+ <Card>
35
+ <section class="game-card" slot="content">
36
+ <video playsinline autoplay muted loop preload="none">
37
+ video unavailable. original video contains pengi gameplay showing the dynamic dialog
38
+ layout and character animation.
39
+ <source src={HeaderPengi} type="video/mp4">
40
+ </video>
41
+
42
+ <section class="game-card-body">
43
+
44
+ <h1>Pengi</h1>
45
+
46
+ <blockquote>
47
+ Well well, quite the dreamer, aren’t you? Might be hard to get in... costs a lot of
48
+ money...
49
+ </blockquote>
50
+
51
+ <p>
52
+ Pengi is a text-based adventure made in <span class="qt-unity">Unity</span>. I acted as the sole
53
+ programmer for the team. Most of the work revolves around UI and creating <a
54
+ href="https://yarnspinner.dev/" target="_blank">YarnSpinner</a> commands for writers
55
+ to use to create expressive stage directions in the script.
56
+ </p>
57
+
58
+ <section class="game-link-section">
59
+ <button type="button" class="game-button turnip-button"
60
+ role="link"
61
+ title="https://github.com/GreenTea-M/ProjectPengi"
62
+ on:click={()=> window.open("https://github.com/GreenTea-M/ProjectPengi")}>
63
+ <img alt="github icon" src={GithubIcon}>
64
+ </button>
65
+ <button type="button" class="game-button turnip-button"
66
+ role="link"
67
+ title="https://turnipxenon.itch.io/pengi"
68
+ on:click={()=> window.open("https://turnipxenon.itch.io/pengi")}>
69
+ <img alt="itch.io icon" src={ItchLogoHotLink}>
70
+ </button>
71
+ </section>
72
+ </section>
73
+ </section>
74
+ </Card>
75
+
76
+ <Card>
77
+ <section class="game-card" slot="content">
78
+ <!-- todo: move the image crop a bit lower -->
79
+ <video playsinline autoplay muted loop preload="none" id="hepcat-video">
80
+ <source src={HeaderHepCat} type="video/mp4">
81
+ </video>
82
+
83
+ <section class="game-card-body">
84
+
85
+ <h1>Hepcat</h1>
86
+
87
+ <blockquote>
88
+ "Cats, Jazz, and a little bit of Death. What more could anyone ask for?"
89
+ </blockquote>
90
+
91
+
92
+ <p>This is a course project made by a team of six for <a
93
+ href="https://sites.google.com/ualberta.ca/cmput250/">CMPUT 250</a>, and it won <a
94
+ href="https://webdocs.cs.ualberta.ca/~nathanst/certificate/">Game of the year.</a>
95
+ </p>
96
+
97
+ <p>
98
+ Hep Cat is a rhythm game made in <a
99
+ href="https://www.rpgmakerweb.com/products/programs/rpg-maker-mv" target="_blank" class="qt-rpgmaker">
100
+ RPG Maker MV</a> with the help of additional custom-made <span class="qt-js">Javascript</span> plugins. I
101
+ wrote the rhythm game plugin's framework. For this plugin to work, I
102
+ had to write a <span class="qt-python">Python</span> script that parses osu! files into readable JSON
103
+ files.
104
+ </p>
105
+
106
+
107
+ <section class="game-link-section">
108
+ <button type="button" class="game-button turnip-button"
109
+ role="link"
110
+ title="https://bitbucket.org/egginchicken/hep-cat/src/master/"
111
+ on:click={()=> window.open("https://bitbucket.org/egginchicken/hep-cat/src/master/")}>
112
+ <img alt="bitbucket icon" src={BitbucketIcon}>
113
+ </button>
114
+ <button type="button" class="game-button turnip-button"
115
+ role="link"
116
+ title="https://just-a-phantom.itch.io/hep-cat"
117
+ on:click={()=> window.open("https://just-a-phantom.itch.io/hep-cat")}>
118
+ <img alt="itch.io icon" src={ItchLogoHotLink}>
119
+ </button>
120
+ </section>
121
+ </section>
122
+ </section>
123
+ </Card>
124
+
125
+ <Card>
126
+ <section class="game-card" slot="content">
127
+ <img src={HeaderChefWings} alt="todo" loading="lazy">
128
+ <section class="game-card-body">
129
+
130
+ <h1>Chef Wings</h1>
131
+ <p>
132
+ A “roguelite-lite” where you gather ingredients in a procedurally-generated dungeon and use
133
+ them to cook for customers and then critics!
134
+ </p>
135
+ <p>
136
+ I built and documented several of the game’s systems including the game state management
137
+ system that extends <span class="qt-unity">Unity’s</span> existing Monobehavior lifecycle with new events,
138
+ and the dialogue, event, and level systems that coordinate the game flow using the interactive
139
+ dialogue tool YarnSpinner
140
+ </p>
141
+
142
+ <section class="game-link-section">
143
+ <button type="button" class="game-button turnip-button"
144
+ title="https://selk.io/birb-project/trunk/"
145
+ on:click={()=>modalStore.trigger(chefWingsWarning)}>
146
+ <img alt="itch.io icon" src={LinkIcon}>
147
+ <span>selk.io/birb-project/trunk/</span>
148
+ </button>
149
+ </section>
150
+ </section>
151
+ </section>
152
+ </Card>
153
+ <Card>
154
+ <section class="game-card" slot="content">
155
+ <video playsinline autoplay muted loop preload="none">
156
+ <source src={HeaderSoulwork} type="video/mp4">
157
+ </video>
158
+ <section class="game-card-body">
159
+
160
+ <h1>Soulwork</h1>
161
+
162
+ <p>
163
+ Soulwork is a 2D platforming game that uses unique physics to solve puzzle-based levels.
164
+ This project is a Time to Game Jam entry, restricting game development to be under 48
165
+ hours.
166
+ </p>
167
+ <p>
168
+ I helped make the level designing tools used by the designers to drag-and-drop objects
169
+ on the stage. I also helped program the unique physics-based gameplay mechanic. This was
170
+ was made in <span class="qt-unity">Unity</span> written using <span class="qt-cs">C#</span>.
171
+ </p>
172
+
173
+
174
+ <section class="game-link-section">
175
+ <button type="button" class="game-button turnip-button"
176
+ role="link"
177
+ title="https://github.com/Zeyu-Li/Clockwork"
178
+ on:click={()=> window.open("https://github.com/Zeyu-Li/Clockwork")}>
179
+ <img alt="github icon" src={GithubIcon}>
180
+ </button>
181
+ <button type="button" class="game-button turnip-button"
182
+ role="link"
183
+ title="https://itch.io/jam/time-to-game-jam-gadec-fall-game-jam/rate/514331"
184
+ on:click={()=> window.open("https://itch.io/jam/time-to-game-jam-gadec-fall-game-jam/rate/514331")}>
185
+ <img alt="itch.io icon" src={ItchLogoHotLink}>
186
+ </button>
187
+ </section>
188
+ </section>
189
+ </section>
190
+ </Card>
191
+ <Card overrideStyle="align-self: flex-start;">
192
+ <section class="game-card itch-promo" slot="content">
193
+ <h1 class="mb-12 text-center">Check out my itch.io page for more games</h1>
194
+
195
+ <section class="game-link-section">
196
+ <button type="button" class="btn variant-filled-primary turnip-button"
197
+ role="link"
198
+ title="https://turnipxenon.itch.io/"
199
+ on:click={() => window.open("https://turnipxenon.itch.io/")}>
200
+ <img src={ItchLogoHotLink} class="long-btn-image" alt="itch icon">
201
+ <span>TurnipXenon</span>
202
+ </button>
203
+ </section>
204
+
205
+ </section>
206
+ </Card>
207
+ </section>
@@ -0,0 +1,17 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import "./seaweed.postcss";
3
+ declare const __propDef: {
4
+ props: {
5
+ email?: string | undefined;
6
+ };
7
+ events: {
8
+ [evt: string]: CustomEvent<any>;
9
+ };
10
+ slots: {};
11
+ };
12
+ export type GameSectionProps = typeof __propDef.props;
13
+ export type GameSectionEvents = typeof __propDef.events;
14
+ export type GameSectionSlots = typeof __propDef.slots;
15
+ export default class GameSection extends SvelteComponent<GameSectionProps, GameSectionEvents, GameSectionSlots> {
16
+ }
17
+ export {};