summaryrefslogtreecommitdiff
path: root/2026/games_submissions/steeledshield
diff options
context:
space:
mode:
authorLLLL Colonq <llll@colonq>2026-08-04 04:35:44 -0400
committerLLLL Colonq <llll@colonq>2026-08-04 04:35:44 -0400
commit3c7796f066647090ed8436778bdfe25f11844c05 (patch)
tree0644a101004d91af4fcdc2f51fcc2e03f7f255ce /2026/games_submissions/steeledshield
parenta75221ab93f59d688f90cd83f0284ff98951fcfa (diff)
Prepare for upload
Diffstat (limited to '2026/games_submissions/steeledshield')
-rw-r--r--2026/games_submissions/steeledshield/LICENSE.txt21
-rw-r--r--2026/games_submissions/steeledshield/assets/Clonk.pngbin11183 -> 0 bytes
-rw-r--r--2026/games_submissions/steeledshield/assets/Eat.wavbin8576 -> 0 bytes
-rw-r--r--2026/games_submissions/steeledshield/assets/Explode.wavbin32740 -> 0 bytes
-rw-r--r--2026/games_submissions/steeledshield/assets/Mod.pngbin12320 -> 0 bytes
-rw-r--r--2026/games_submissions/steeledshield/assets/Win.wavbin7136 -> 0 bytes
-rw-r--r--2026/games_submissions/steeledshield/assets/click_image.pngbin14548 -> 0 bytes
-rw-r--r--2026/games_submissions/steeledshield/assets/feeding_friend-zy_beat.wavbin9118706 -> 0 bytes
-rw-r--r--2026/games_submissions/steeledshield/assets/friend.pngbin2542 -> 0 bytes
-rw-r--r--2026/games_submissions/steeledshield/assets/friend_happy.pngbin2649 -> 0 bytes
-rw-r--r--2026/games_submissions/steeledshield/index.html31
-rw-r--r--2026/games_submissions/steeledshield/script.js200
-rw-r--r--2026/games_submissions/steeledshield/style.css197
13 files changed, 0 insertions, 449 deletions
diff --git a/2026/games_submissions/steeledshield/LICENSE.txt b/2026/games_submissions/steeledshield/LICENSE.txt
deleted file mode 100644
index 9c1aa69..0000000
--- a/2026/games_submissions/steeledshield/LICENSE.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2026 Steeledshield
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE. \ No newline at end of file
diff --git a/2026/games_submissions/steeledshield/assets/Clonk.png b/2026/games_submissions/steeledshield/assets/Clonk.png
deleted file mode 100644
index 67cde0d..0000000
--- a/2026/games_submissions/steeledshield/assets/Clonk.png
+++ /dev/null
Binary files differ
diff --git a/2026/games_submissions/steeledshield/assets/Eat.wav b/2026/games_submissions/steeledshield/assets/Eat.wav
deleted file mode 100644
index 20d03c8..0000000
--- a/2026/games_submissions/steeledshield/assets/Eat.wav
+++ /dev/null
Binary files differ
diff --git a/2026/games_submissions/steeledshield/assets/Explode.wav b/2026/games_submissions/steeledshield/assets/Explode.wav
deleted file mode 100644
index a2f4a40..0000000
--- a/2026/games_submissions/steeledshield/assets/Explode.wav
+++ /dev/null
Binary files differ
diff --git a/2026/games_submissions/steeledshield/assets/Mod.png b/2026/games_submissions/steeledshield/assets/Mod.png
deleted file mode 100644
index 3389fc7..0000000
--- a/2026/games_submissions/steeledshield/assets/Mod.png
+++ /dev/null
Binary files differ
diff --git a/2026/games_submissions/steeledshield/assets/Win.wav b/2026/games_submissions/steeledshield/assets/Win.wav
deleted file mode 100644
index 26e548d..0000000
--- a/2026/games_submissions/steeledshield/assets/Win.wav
+++ /dev/null
Binary files differ
diff --git a/2026/games_submissions/steeledshield/assets/click_image.png b/2026/games_submissions/steeledshield/assets/click_image.png
deleted file mode 100644
index f9a6e5a..0000000
--- a/2026/games_submissions/steeledshield/assets/click_image.png
+++ /dev/null
Binary files differ
diff --git a/2026/games_submissions/steeledshield/assets/feeding_friend-zy_beat.wav b/2026/games_submissions/steeledshield/assets/feeding_friend-zy_beat.wav
deleted file mode 100644
index 2644a45..0000000
--- a/2026/games_submissions/steeledshield/assets/feeding_friend-zy_beat.wav
+++ /dev/null
Binary files differ
diff --git a/2026/games_submissions/steeledshield/assets/friend.png b/2026/games_submissions/steeledshield/assets/friend.png
deleted file mode 100644
index 8658706..0000000
--- a/2026/games_submissions/steeledshield/assets/friend.png
+++ /dev/null
Binary files differ
diff --git a/2026/games_submissions/steeledshield/assets/friend_happy.png b/2026/games_submissions/steeledshield/assets/friend_happy.png
deleted file mode 100644
index 8ee01b9..0000000
--- a/2026/games_submissions/steeledshield/assets/friend_happy.png
+++ /dev/null
Binary files differ
diff --git a/2026/games_submissions/steeledshield/index.html b/2026/games_submissions/steeledshield/index.html
deleted file mode 100644
index 2916def..0000000
--- a/2026/games_submissions/steeledshield/index.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Feeding Friend-zy</title>
- <link rel="stylesheet" href="style.css">
- <link rel="preconnect" href="https://fonts.googleapis.com">
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
- <link href="https://fonts.googleapis.com/css2?family=VT323&display=swap" rel="stylesheet">
-</head>
-<body>
- <div id="layout">
- <p id="counter"></p>
- <img id="Clonk" src="assets/Clonk.png">
- <img id="Mod" src="assets/Mod.png">
- <img id="click_image" src="assets/click_image.png" alt="">
- <div id="game">
- <div id="container">
- <div id="bomb" class="objects">πŸ’£</div>
- <div id="blank" class="objects"></div>
- <div id="food" class="objects"></div>
- </div>
- <div id="friend">
- <img src="assets/friend.png">
- </div>
- </div>
- </div>
-</body>
-<script src="script.js"></script>
-</html> \ No newline at end of file
diff --git a/2026/games_submissions/steeledshield/script.js b/2026/games_submissions/steeledshield/script.js
deleted file mode 100644
index 6ccfe0a..0000000
--- a/2026/games_submissions/steeledshield/script.js
+++ /dev/null
@@ -1,200 +0,0 @@
-//Assets & Elements
-var bomb = document.getElementById("bomb");
-var food = document.getElementById("food");
-var blank = document.getElementById("blank");
-var friend = document.getElementById("friend");
-var container = document.getElementById("container");
-const objects = document.querySelectorAll(".objects");
-var explode = new Audio('assets/Explode.wav');
-var eat = new Audio('assets/Eat.wav');
-var win = new Audio('assets/Win.wav');
-var music = new Audio('assets/feeding_friend-zy_beat.wav');
-music.loop = true;
-music.volume = 0.33;
-
-//Score counter
-var counter = 0;
-
-//Randomizes food & bombs, as well as food emoji
-var random = Math.floor(Math.random() * 3);
-var foodItemRand = Math.floor(Math.random() * 3);
-
-//Iterator
-let i = 0;
-
-//result & randoStart ensure that food & bomb start on either side of friend,
-//this will make it so that a bomb doesn't spawn immediatley oncoming to the player
-const result = Math.floor(Math.random() * 2) * 2;
-
-function randoStart(){for (i; i < objects.length; i++) {
- objects[0].style.order = result;
- objects[1].style.order = 1;
- if(result == 0){
- objects[2].style.order = 2;
- }
- else{
- objects[2].style.order = 0;
- }
- food.innerHTML = foodItem[foodItemRand];
-
-}};
-
-//Moves the food & bomb
-function objectMove(){
- for (let i = 0; i < objects.length; i++) {
- objects[i].style.animation = "slide 1.5s infinite";
- }
-}
-
-//Pauses food & bomb scrolling
-function objectStop(){
- for (let i = 0; i < objects.length; i++) {
- objects[i].style.animation = "none";
- }
-}
-
-//Pauses food & bomb scrolling
-objectStop();
-
-
-//Pauses the game to show instructions
-//Once the message has been received from Clonk's harness the game will begin
-function clonkload(){
- //for the love of god Steeled, do NOT touch this line of code
- //it is finally working now
- window.parent.postMessage({op: "ready"});
- //this one too, this is a load-bearing eventlistener
- //game will fall apart like a jengaβ„’ structure if this eventlistener is broken
- window.addEventListener("message", ev => {
- window.parent.postMessage({op: "started", verb: "Feed Friend!"}),
- setTimeout(() => {
- objectMove(),
- document.getElementById("counter").innerHTML = "Foods eated: " + counter,
- document.getElementById("counter").style.width = "75px"
- }, 2000)
- });
-}
-
-//Food emojis, purely visual, has no gameplay effect
-const foodItem = [];
-foodItem[0]= "🍌";
-foodItem[1]= "🍎";
-foodItem[2]= "🍊";
-
-//Loads instructions, randomizes the bomb & food positions and runs the harness check
-document.addEventListener("load",
- randoStart(),
- clonkload(),
- document.getElementById("counter").innerHTML = "Feed Friend! <br> Avoid the Bombs!",
- document.getElementById("counter").style.width = "100%"
-);
-
-//Prevents context menu on right click, so that the player can move right without issues
-document.addEventListener('contextmenu', (event) => {
- event.preventDefault();
-});
-
-function moveLeft(){
- let left = parseInt(window.getComputedStyle(friend)
- .getPropertyValue("left"));
- left -= 32;
- if(left>=0){
- friend.style.left = left + "px";
- };
- music.play();
-}
-
-function moveRight(){
- let left = parseInt(window.getComputedStyle(friend)
- .getPropertyValue("left"));
- left += 32;
- if(left<96){
- friend.style.left = left + "px";
- };
- music.play();
-}
-
-//Checks mouse input, to get direction of movement
-document.addEventListener('mousedown', (event) => {
- switch (event.button) {
- case 0:
- moveLeft();
- break;
- case 2:
- moveRight();
- break;
- }
-});
-
-//Moves the food & bomb row back to the top once it reaches the bottom of the game screen
-setInterval(function(){for (let i = 0; i < objects.length; i++) {
- objects[i].addEventListener('animationiteration', () => {
- random = Math.floor(Math.random() * 3) + 1;
- foodItemRand = Math.floor(Math.random() * 3);
- objects[i].style.order = random;
- food.innerHTML = foodItem[foodItemRand];
-})}},125);
-
-//Underlying collision code to be used for both food & bombs
-function isCollide(a, b) {
- var aRect = a.getBoundingClientRect();
- var bRect = b.getBoundingClientRect();
-
- return !(
- ((aRect.top + aRect.height) < (bRect.top)) ||
- (aRect.top > (bRect.top + bRect.height)) ||
- ((aRect.left + aRect.width) < bRect.left) ||
- (aRect.left > (bRect.left + bRect.width))
- );
-}
-
-//Checks collisions on an interval
-setInterval(function(){
- //Food collision check
- if(isCollide(friend, food)){
- friend.innerHTML = "<img src='assets/friend_happy.png'>";
- counter++;
- eat.play();
- document.getElementById("counter").innerHTML = "Foods eated: " + counter;
- //Ends game at 10 food eaten
- if(counter>9){
- win.play();
- container.style.visibility = "hidden";
- objectStop();
- document.getElementById("counter").style.width = "100%";
- document.getElementById("counter").innerHTML = "YOU WIN! CONGLATURATIONS!";
- //Tells harness that the game is won and resets, to await the harness check again
- setTimeout(function(){
- window.parent.postMessage({op: "done", win: true}),
- location.reload()
- },2000);
- }
- else{
- //Makes friend a happy fella :) on collision with food
- setTimeout(function(){
- friend.innerHTML = "<img src='assets/friend.png'>";
- },1000);
- }
- }
- //Bomb collsion check
- if(isCollide(friend, bomb)){
- container.style.visibility = "hidden";
- objectStop();
- explode.play();
- document.getElementById("counter").style.width = "100%";
- document.getElementById("counter").innerHTML = "oh no...";
- //Makes friend explode :( on collision with bomb
- friend.innerHTML = "πŸ’₯";
- setTimeout(function(){
- //Tells harness that the game is lost and resets, to await the harness check again
- window.parent.postMessage({op: "done", win: false}),
- location.reload()
- },2000);
- }
-},250);
-
-//Hate. Let me tell you how much I've come to hate Javascript since I began to jam.
-//There are 5771 characters contained in the total lines of code that fill my script.js file.
-//If the word 'hate' was engraved on each subpixel of those 5771 characters
-//it would not equal one one-billionth of the hate I feel for javascript at this micro-instant.
-//For js. Hate. Hate. \ No newline at end of file
diff --git a/2026/games_submissions/steeledshield/style.css b/2026/games_submissions/steeledshield/style.css
deleted file mode 100644
index b046eff..0000000
--- a/2026/games_submissions/steeledshield/style.css
+++ /dev/null
@@ -1,197 +0,0 @@
-:root {
- --crt-red: rgb(218, 49, 49);
- --crt-green: rgb(112, 159, 115);
- --crt-blue: rgb(40, 129, 206);
-}
-
-body{
- margin: 0;
- height: 100vh;
- font-family: "VT323", monospace;
- font-weight: 400;
- font-style: bold;
- user-select: none; /* standard syntax */
- -webkit-user-select: none; /* webkit (safari, chrome) browsers */
- -moz-user-select: none; /* mozilla browsers */
- -khtml-user-select: none; /* webkit (konqueror) browsers */
- -ms-user-select: none; /* IE10+ */
-}
-
-#layout{
- width: 240px;
- height: 160px;
- margin: auto;
- border: 1px solid black;
- background: linear-gradient(270deg, #03A688, #014040);
- background-size: 400% 400%;
-
- -webkit-animation: AnimationName 2s ease infinite;
- -moz-animation: AnimationName 2s ease infinite;
- animation: AnimationName 2s ease infinite;
- background-color: rgb(25, 25, 30);
- text-shadow: 0 0 0.2em currentColor, 1px 1px rgba(255, 0, 255, 0.5),
- -1px -1px rgba(0, 255, 255, 0.4);
- position: relative;
- &:before,
- &:after {
- content: "";
- transform: translateZ(0);
- pointer-events: none;
- opacity: 0.5;
- mix-blend-mode: overlay;
- position: absolute;
- height: 100%;
- width: 100%;
- left: 0;
- top: 0;
- z-index: 2;
- }
-
- &:before {
- background: repeating-linear-gradient(
- var(--crt-red) 0px,
- var(--crt-green) 2px,
- var(--crt-blue) 4px
- );
- }
- &:after {
- background: repeating-linear-gradient(
- 90deg,
- var(--crt-red) 1px,
- var(--crt-green) 2px,
- var(--crt-blue) 3px
- );
- }
-}
-
-@-webkit-keyframes AnimationName {
- 0%{background-position:0% 50%}
- 50%{background-position:100% 50%}
- 100%{background-position:0% 50%}
-}
-@-moz-keyframes AnimationName {
- 0%{background-position:0% 50%}
- 50%{background-position:100% 50%}
- 100%{background-position:0% 50%}
-}
-@keyframes AnimationName {
- 0%{background-position:0% 50%}
- 50%{background-position:100% 50%}
- 100%{background-position:0% 50%}
-}
-
-#game{
- width: 40%;
- height: 100%;
- margin: auto;
- overflow: hidden;
- background: linear-gradient(270deg, #abe2b8, #C2F2CE);
- background-size: 400% 400%;
-
- -webkit-animation: AnimationName 2s ease infinite;
- -moz-animation: AnimationName 2s ease infinite;
- animation: AnimationName 2s ease infinite;
-}
-
-@-webkit-keyframes AnimationName {
- 0%{background-position:0% 50%}
- 50%{background-position:100% 50%}
- 100%{background-position:0% 50%}
-}
-@-moz-keyframes AnimationName {
- 0%{background-position:0% 50%}
- 50%{background-position:100% 50%}
- 100%{background-position:0% 50%}
-}
-@keyframes AnimationName {
- 0%{background-position:0% 50%}
- 50%{background-position:100% 50%}
- 100%{background-position:0% 50%}
-}
-
-#friend{
- width: 32px;
- height: 32px;
- position: relative;
- top: 67%;
- left: 32px;
- font-size: 28px;
- text-align: center;
-}
-
-#friend img{
- width: 32px;
- height: 32px;
-}
-
-#container{
- display: flex;
-}
-
-#bomb{
- width: 22%;
- height: 22%;
- font-size: auto;
-}
-
-#blank{
- width: 22%;
- height: 22%;
- font-size: auto;
-}
-
-#food{
- width: 22%;
- height: 22%;
- font-size: auto;
-}
-
-.objects{
- position: relative;
- animation: none;
- animation-timing-function: linear;
- text-align: center;
- margin: auto;
-}
-
-#counter{
- position: absolute;
- width: 75px;
- font-size: 25px;
- top: -10%;
- color: white;
- text-align: center;
- -webkit-text-stroke-width: 6px;
- -webkit-text-stroke-color: black;
- paint-order: stroke fill;
- z-index: 1;
-}
-
-#click_image{
- position: absolute;
- width: 50px;
- right: 10px;
- top: 10px;
- z-index: 0;
-}
-
-@keyframes slide {
- 0% {top: -26.6px;}
- 100% {top: 200px;}
-}
-#Clonk{
- position: absolute;
- width: 30%;
- height:60%;
- bottom: 0;
- opacity: 0.5;
-}
-
-#Mod{
- position: absolute;
- width: 30%;
- height:60%;
- right: 0;
- bottom: 0;
- opacity: 0.5;
-} \ No newline at end of file