If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

corru.observer/Development Pages

From The Cutting Room Floor
Jump to navigation Jump to search

This is a sub-page of Corru.observer.

Hmmm...
To do:
Cover the earlier version of crittatest (located here, with additional combat data stored here, here, and here). Will probably need to be its own subpage given the sheer quantity of mechanical differences from final, not to mention the unique enemy graphics and music...

corru.observer has many development subpages used for various things from testing to bug-squashing.

Note that these pages may require appending ?force to the end of the URL to load in properly.

/concepts/bathysphere/

A (currently-laggy) test page for an unused 3d-lookaround system, featuring a nonexistant "test fishy" entity, along with a note explaining why it was scrapped.

   this kinda sucks, maybe we should make the turning be WASD/buttons only and then have the mouse be independent
   otherwise scanning is gonna be weird

/concepts/canvastest/

A test page for testing using canvases for the display of various things, featuring the konstrukt placeholder graphic.

/concepts/critta/

A test page for ::/FRAME/! This page is actually very interesting, as it contains a lot of information about a slightly later iteration of an early prototype of it, such as a lot of unused dialogue explaining how it worked!

Dialogue

explainer

   start
       actual_site_error
           yo wat up. this is the tutorial dialogue. there's a lot going on here
               EXEC::body.classList.add('tutorialmode')
           there's a map you can fight your way through,
           and you can make your own characters, crittamode style! woah!
           btw all visuals and text is subject to change, pretty much everything is temporary. especially the placeholder enemies
           music is also temporary this is just my The Ruins playlist on soundcloud
           no story spoilers or anything in here
           BE SURE YOU CUSTOMIZE YOUR CRITTA (in da party menu) BEFORE YOU SET OFF OR YOU'LL PROBABLY DIE FAST!!
           there isn't exactly an end, but you can consider your "run" done when you've destroyed each area
           P.S. these tutorials are verbose as hell but they won't be in the game proper
           
       RESPONSES::actual_site_error
           tell me about the map<+>map
           tell me about making characters<+>critta
   
       RESPONSES::sys
           close<+>END
               EXEC::body.classList.remove('tutorialmode')
           close and dont show for rest of session<+>END
               EXEC::body.classList.remove('tutorialmode');change("TEMP!!crittut", true)
   
   critta
       actual_site_error
           so, in this gamemode, your party works way differently
           you have "shells", both customizable characters and lives!
               EXEC::togglePartyMenu();body.setAttribute("highlight", "shells")
           you can get more shells by clearing the marked areas on the map.
           if you lose a combat, all of your active shells are destroyed
           (though you keep the components they were made up of)
           to customize them, you just click that 'modify' button to open the panel.
           you can change their actions, name and even portrait image!
           if you lose all of your shells - game over!!
           
       sourceless
           CUSTOMIZING
           
       actual_site_error
           each shell has four slots, replacing their actions in the 1/2/3 slots, with the fourth giving them a powerful passive effect!
               EXEC::togglePartyMenu();toggleCrittaMenu(page.party[0].slug);body.setAttribute("highlight", "critta")
           each component type you can use fits a certain niche - experiment with them to find out what works best for you!
           there will be augments for them as well but they haven't been written yet
               EXEC::toggleCrittaMenu()
           
       RESPONSES::actual_site_error
           tell me about the map<+>map
           tell me about making characters<+>critta
           
       RESPONSES::sys
           close<+>END
               EXEC::body.classList.remove('tutorialmode')
           close and dont show for rest of session<+>END
               EXEC::body.classList.remove('tutorialmode');change("TEMP!!crittut", true)
           
   map
       actual_site_error
           first things first: the map is randomly generated
           your goal (for now) is to defeat the marked areas!
           there will be a big boss eventually, with zones being optional encounters, but not on this page...
           anyway there are three terms you'll want to know here: "organelles", "caches", and your "ship".
           
       sourceless
           CACHES AND organelles
           
       actual_site_error
           "shell" nodes are (usually) easy fights that can get you new party members
               EXEC::body.setAttribute("highlight", "cache")
           "caches", the randomly placed smaller circles, are fights, and going to them will start a fight that gives item and component rewards. (highlighted)
               EXEC::body.setAttribute("highlight", "cache")
           the crimson-colored "caches" are minibosses, and beating them will also destroy the organelle they're in the center of. (highlighted)
               EXEC::body.setAttribute("highlight", "miniboss")
           organelles are the big scary circles. they make everything inside have more difficult enemies,
               EXEC::body.setAttribute("highlight", "")
           and grant a combat modifier of some sort, i.e. "all actions have a chance to repeat" - for both allies and enemies!
               EXEC::content.querySelector('critta-map').selectNodeID('node4')
           getting rid of organelles by killing their minibosses will destroy the zone and its effects
           including the extra rewards from fighting in them!
           you can always tell what a organelle is doing by clicking on a cache inside it.
           
       sys
           YOUR SHIP AND MOVEMENT
           
       actual_site_error
           ok so this little yellow thing at the bottom is your "ship".
               EXEC::body.setAttribute("highlight", "ship");document.querySelector("critta-map").clearSelectedNode()
           there's a circle around it, which tells you your range
           you can move to any cache within range by clicking them!
           if there are no caches in range, or you want to cut your own path,
           you can click anywhere within your range circle to create a brand new "exploration cache"! these are easier (sometimes being as little as one enemy), but give less rewards.
               EXEC::document.querySelector("critta-map").createTempNode({ x: Number(document.querySelector("critta-ship").getAttribute("x")), y: Number(document.querySelector("critta-ship").getAttribute("y")) - 15, select: true })
           if you're unlucky and all caches are high threat, try preparing by using exploring the outskirts to gather items and parts!
           any cache you clear will be a safe point you can jump to without starting another fight.
           that pretty much does it for the map! try clicking around and seeing what's going on!
               EXEC::document.querySelector("critta-map").clearSelectedNode()
           but beware... you only start with one character in your party, 
           so make sure you build them in the party menu before you set off!
               EXEC::body.setAttribute("highlight", "")
           
       RESPONSES::actual_site_error
           tell me about the map<+>map
           tell me about making characters<+>critta
           
       RESPONSES::sys
           close<+>END
               EXEC::body.classList.remove('tutorialmode')
           close and dont show for rest of session<+>END
               EXEC::body.classList.remove('tutorialmode');change("TEMP!!crittut", true)

loop

   start
       actual_site_error
           as da wall's imperfect reset countdown expires, the iteration stops...
           darn!! didn't get it this time! but the damage you did stays, forever
           perhaps you can defeat it next time...
           if you didn't get very far, consider what certain status effects do >:)
           
       sourceless
           the iteration begins anew, albeit imperfectly
           your shells and inventory are retained, but new organelles fill the space
           and a new permanent effect now lingers over everything...
           perhaps it will help you?
           
       actual_site_error
           you could persist and go again with your same team,
           but if it's more ideal, you could reset - the boss's HP will still remain altered even in your new run
           
       RESPONSES::actual_site_error
           continue<+>END
               EXEC::env.e3a2.loop(false)
           
           reset<+>END
               EXEC::env.e3a2.loop(true)

bosswarn

   start
       actual_site_error
           woah... that's the wall!!
           did you see how much HP it has?
           don't worry - it's too big to reset, so any damage you deal will carry over to a new run!
           but take a second to consider your critta builds before proceeding...
           you're going to need to deal a lot of damage and survive for as long as possible!
           this message will only ever appear once
               EXEC::change("bosswarn", true)
           
       RESPONSES::self
           ok<+>END

win

   start
       actual_site_error
           the firmament is defeated!
           you could loop again, granting it a fraction of its max HP...
           or you can reset everything for further testing            
           
       RESPONSES::actual_site_error
           loop anyway<+>END
               EXEC::change("e3a2bosshp", 100000);env.e3a2.loop(false)
   
           reset boss HP and full reset<+>END
               EXEC::change("e3a2bosshp", 1000000);corruRefresh("/concepts/critta/")

/concepts/daemon/

A test page for the display of daemons in ::/FRAME/, showing all of their internal names. Of note is that Antishells are missing from this page.

/concepts/enemy/

A test page used to test various combat-related things throughout development! At the moment, despite the "..__movefriendtesting__.." name, it is testing the ::/FRAME/ finale, with additional custom dialogue for the end section. Of note is that an unused and broken older version of this testing page remains at "/concepts/enemy", without the last slash.

Dialogue

escapewin

   start
       sourceless
           this is where it would end :)
               EXEC::env.boatEscape.changeBoatCol(1)
   
       RESPONSES::bstrd
           ok<+>END

enemytest

   start
       sourceless
           The fiends approach!
       RESPONSES::akizet
           engage<+>END
               EXEC::env.combat.dynamicCombat()
           disable<+>disable
               SHOWIF::'EXEC::checkItem(env.ITEM_LIST.disabler)'
               FAKEEND::(use disabler)
   
   disable
       sourceless
           A disabler is used!
               EXEC::killStageEnemy(env.currentDialogue.originEntityID);removeItem(env.ITEM_LIST.disabler)
       RESPONSES::akizet
           continue<+>END

enemytestvictory

   start
       sourceless
           The fiends relent!
           TEXEC::env.combat.dynamicReward()
   
       RESPONSES::akizet
           continue<+>END

/concepts/firefox/

A test page used for squashing a bug in the firefox browser, featuring the central room of Jokzi Ozo as a testbed. There are a few parameters for this page for testing purposes; one is "nofloaty", removing all floaty tiles; another is "canvasfloor", which turns the floor into a canvas element; and finally "safety", which removes the internal "firefreak" css class that appears if you are using firefox on Windows.

/concepts/fogtest/

A test page for testing various levels of fog, as a test to mitigate lag. Of small note is that this features both of the placeholder graphics, being placehold and konstrukt.

/concepts/melee/

A test page for the incoherent attack of Golem Maintenance's Foundation Golem. This has additional URL parameters to change a few aspects about the minigame, with one, "length", controlling the amount of tiles on the board at a default of 7; and the other, "steps", at a default of 2, controlling the amount of moves available to both sides.

/concepts/prog/

A whole testing page for Golem Maintenance, testing out the progression and combat of the whole area. Of note is that this includes an "augment terminal" object with a placeholder description of "babababababa", different from the used "lesser terminal" in Golem Maintenance.

Dialogue

explainer

   start
       actual_site_error
           this dialogue will only show up once per session so pls read if u haven't
           this room tests how progresion and fighting against the new enemies feels for ep3
           these are all the fights that will be in EP3, basically in order
           there's a buncha stuff happening...
           especially since you can do the three wings in any order!
           first off, you need to clear the first few enemies in front
           in MANUFACTURING (ON DA LEFT) you unlock augments and some parts for the IK golem (unlockable character)
           in SFER (MIDDLE) has story bits but is required for the other parts for IK golem
           once you have both IK golem parts, it will be automatically added to your party (in this test room anyway)
           in OPS (right) you unlock bozko and cavik
           once all three wings are cleared, the boss (behind you) can be fought
           anyway u have a bunch of items, including the sorry cyst that will add a gun augment you can give to anyone
           finally, you can re-organize your party! press Z and drag people around
           only 3 people can be active at a time, and akizet has to be active, so you basically have two interchangable slots
           ok have fun!
   
       RESPONSES::actual_site_error
           kill all initial enemies<+>loop
               EXEC::document.querySelectorAll('.initial-evil').forEach(el=>el.parentElement.innerHTML = "")
           kill all manufacturing enemies<+>loop
               EXEC::document.querySelectorAll('.m-evil').forEach(el=>el.parentElement.innerHTML = "")
           kill all sfer enemies<+>loop
               EXEC::document.querySelectorAll('.s-evil').forEach(el=>el.parentElement.innerHTML = "")
           kill all ops enemies<+>loop
               EXEC::document.querySelectorAll('.o-evil').forEach(el=>el.parentElement.innerHTML = "")
           kill all but boss<+>loop
               EXEC::document.querySelectorAll('.o-evil, .s-evil, .m-evil').forEach(el=>el.parentElement.innerHTML = "")
               FAKEEND::(behind you btw watch out)
       RESPONSES::sys
           quick kill menu<+>CHANGE::quickkill
           continue<+>END

quickkill

   start
       actual_site_error
           if u wanna clear areas, do this before continuing
           otherwise put startDialogue("quickkill") in your console to open it again
   
       RESPONSES::actual_site_error
           kill all initial enemies<+>start
               EXEC::document.querySelectorAll('.initial-evil').forEach(el=>el.parentElement.innerHTML = "")
           kill all manufacturing enemies<+>start
               EXEC::document.querySelectorAll('.m-evil').forEach(el=>el.parentElement.innerHTML = "")
           kill all sfer enemies<+>start
               EXEC::document.querySelectorAll('.s-evil').forEach(el=>el.parentElement.innerHTML = "")
           kill all ops enemies<+>start
               EXEC::document.querySelectorAll('.o-evil').forEach(el=>el.parentElement.innerHTML = "")
           kill all but boss<+>start
               EXEC::document.querySelectorAll('.initial-evil, .o-evil, .s-evil, .m-evil').forEach(el=>el.parentElement.innerHTML = "")
               FAKEEND::(behind you btw watch out)
   
       RESPONSES::sys
           continue<+>END

enemytest

   start
       sourceless
           The fiends approach!
       RESPONSES::akizet
           engage<+>END
               EXEC::env.combat.dynamicCombat()
           disable<+>disable
               SHOWIF::'EXEC::checkItem(env.ITEM_LIST.disabler)'
               FAKEEND::(use disabler)
           debug kill<+>disable
               FAKEEND::(use disabler even if u dont have one)
   
   disable
       sourceless
           A disabler is used!
               EXEC::removeItem(env.ITEM_LIST.disabler)
       RESPONSES::akizet
           continue<+>END
               EXEC::env.combat.dynamicCombat({dry: true});cutscene(true);setTimeout(()=>{cutscene(false);env.combat.dynamicCallback(env.rpg.enemyTeam)}, 1010)
               FAKEEND::(wait)

d3_genericenemyvictory

   start
       sourceless
           The fiends relent!
               EXEC::env.stage.current.onStep()
           TEXEC::env.combat.dynamicReward()
   
       RESPONSES::akizet
           continue<+>END
   
       RESPONSES::sys
           demo final boss post dialogue<+>CHANGE::bossclear
               FAKEEND::(dont click unless you killed boss)

/concepts/stage

A broken test page only accessible without the slash at the end, featuring a test empty version of the "dullvessel_observatory" map. Does not load in the current version of corru.observer.