Files
Z. Cliffe Schreuders b7223af010 Refactor MissionsController and enhance mission display
- Refactored the MissionsController to use local variable `missions` instead of instance variable `@missions` for better clarity and performance.
- Introduced grouping of missions by collection for display, improving the organization of mission listings.
- Updated the view to iterate over `@missions_by_collection`, enhancing the presentation of missions by their respective collections.
- Added new CSS styles for collection headings to improve UI aesthetics.

Additionally, removed invalid missions from the database and updated mission collections for better categorization.

Files modified:
- missions_controller.rb: Refactored mission retrieval logic.
- index.html.erb: Updated mission display logic and added new styles.
- migration file: Added cleanup for invalid missions.
- Various mission JSON files: Updated collections for consistency.
2026-01-14 13:24:46 +00:00

175 lines
6.4 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"scenario_brief": "Your legendary cookie recipe has been stolen by the mischievous squirrels led by Sir Acorn! Tracking them to their secret treehouse, the door slams shut behind you. A sign reads: 'Solve our riddles or forever be known as the Cookie Monster!' Crack the cryptographic challenges and reclaim your recipe before time runs out!",
"startRoom": "room_reception",
"startItemsInInventory": [
{
"type": "workstation",
"name": "Crypto Analysis Station",
"takeable": true,
"observations": "A powerful workstation for cryptographic analysis"
}
],
"rooms": {
"room_reception": {
"type": "room_reception",
"connections": {
"north": "room_office"
},
"objects": [
{
"type": "pc",
"name": "Base64 Terminal",
"takeable": false,
"requires": "password",
"observations": "Decrypt this message: 'Y3VwIG9mIGZsb3Vy'"
},
{
"type": "notes",
"name": "Recipe Note",
"takeable": true,
"readable": true,
"text": "Cookies always start with the right ingredients! Step by step, you will gain an ingredient back from your recipe."
}
]
},
"room_office": {
"type": "room_office",
"connections": {
"north": "room_servers",
"south": "room_reception"
},
"locked": true,
"lockType": "password",
"requires": "cup of flour",
"objects": [
{
"type": "pc",
"name": "Caesar Cipher Terminal",
"takeable": false,
"requires": "password",
"observations": "Decrypt this message: 'zkgyvuut ul yamgx'"
},
{
"type": "notes",
"name": "Cipher Clue",
"takeable": true,
"readable": true,
"text": "A squirrels trick is always shifting things around…"
}
]
},
"room_servers": {
"type": "room_servers",
"connections": {
"north": "room_closet",
"south": "room_office"
},
"locked": true,
"lockType": "password",
"requires": "teaspoon of sugar",
"objects": [
{
"type": "pc",
"name": "Encoding Puzzle",
"takeable": false,
"requires": "password",
"observations": "Convert this cipher to text: '68 61 6c 66 20 61 20 63 75 70 20 6f 66 20 6d 69 6c 6b'"
},
{
"type": "notes",
"name": "Encoding Clue",
"takeable": true,
"readable": true,
"text": "There are many ways to say the same thing… use the right format!"
}
]
},
"room_closet": {
"type": "room_closet",
"connections": {
"north": "room_ceo",
"south": "room_servers"
},
"locked": true,
"lockType": "password",
"requires": "half a cup of milk",
"objects": [
{
"type": "pc",
"name": "Vigenère Cipher Terminal",
"takeable": false,
"requires": "password",
"observations": "Decrypt this message: 'gqh dnlzw razk'"
},
{
"type": "notes",
"name": "Cipher Hint",
"takeable": true,
"readable": true,
"text": "Squirrels love nuts. Use their favorite to unlock the next ingredient."
}
]
},
"room_ceo": {
"type": "room_ceo",
"connections": {
"south": "room_closet"
},
"locked": true,
"lockType": "password",
"requires": "two large eggs",
"objects": [
{
"type": "pc",
"name": "AES Encryption Safe",
"takeable": false,
"requires": "password",
"observations": "Decrypt this AES message for the safe next to the pc: 'e66ffb8accddb124cb14ec6551f33ccc' \nCount up to 20 for the key and IV."
},
{
"type": "safe",
"name": "Final Recipe Vault",
"takeable": false,
"locked": true,
"lockType": "password",
"requires": "a bunch of love",
"observations": "The final safe containing the stolen recipe!",
"contents": [
{
"type": "notes",
"name": "Clue to the next safe",
"takeable": true,
"readable": true,
"text": "Use md5 hash to hash the name of the cookie made with these ingredients 'love cookies'"
}
]
},
{
"type": "safe1",
"name": "Final Recipe Vault",
"takeable": false,
"locked": true,
"lockType": "password",
"requires": "2a4d3354d949c6d865c8c21a6340e7cf",
"observations": " ",
"contents": [
{
"type": "notes",
"name": "Recovered Cookie Recipe",
"takeable": true,
"readable": true,
"observations": "Congratulations! You've cracked our cryptographic traps and saved your recipe! \n flag{sampleflaghere}"
}
]
}
]
}
}
}