Commit graph

50 commits

Author SHA1 Message Date
minenice55 9b62e3ca7c fix filename / filepaths
add build mac / build linux to editor
update packages
2023-06-18 23:49:16 -04:00
minenice55 e9588080f9 try a new build script
add assetbundles to gitignore
2023-06-18 17:49:14 -04:00
Zeo 0552d02207
Assetbundle Update (#439)
* air rally assetbundles

rvlbadminton

* blue bear assetbundles

ctrbear

* board meeting assetbundles

rvlrotation

* more board meeting stuff

* built to scale ds assetbundles

ntrassembly

* clappy trio & cheer readers assetbundles

agbclap and rvlbooks

* crop stomp assetbundles

ntrstomp

* dj school adjustment

ntrdj

* dog ninja assetbundles

ntrninja

* double date assetbundles

rvldate

* drumming practice assetbundles

ctrintro

NOTE: the mii system will probably need to be changed if we ever use miistudio

* fireworks & first (second) contact assetbundles

agbexplode and ctrinterpreter

* flipper flop assetbundles

rvlseal

CHANGED FROM MEGAMIX ``rvlGoma`` FOR EASE OF USE

* fork lifter assetbundles

rvlfork

* glee club assetbundles

ntrchorus

* kitties assetbundles

ctrteppan

* launch party assetbundles

rvlrocket

* lockstep assetbundles

ntrbackbeat

* meat grinder assetbundles

pcomeat

* mr upbeat assetbundles + meat grinder tag change

agboffbeat

* munchy monk assetbundles

ntrshugyo

* octopus machine assetbundles :cherryhappy:

NO SOUND
ntrcork

* Revert "octopus machine assetbundles :cherryhappy:"

This reverts commit a177e9b3c4.

* quiz show assetbundles

agbquiz

* a lot of games because i forgot to commit

whoops

* im just gonna start doing these commits in bulk

* all assetbundles except octopus machine & tram and pauline

* octopus machine assetbundles

ntrcork
2023-05-28 17:34:44 +00:00
minenice55 caf7d9465f
Play Mode Features Part 1 (#413)
* add pause menu assets

* layout and animation for pause

* make play mode prefab function

re-assign unused class inheritance

* remove filepath

* don't init medals twice

* remove PlayerActionObject

* initial attempt at anti-note lock

TODO: circumvent inputs clearing themselves making the functionality not work

* properly implement input lock prevention

* fix error on editor open

* functional pause menu

* bugfix

* make unpausing not reset current play statistics

* serialize initializer components in inspector instead of procedurally generating

* sanity check

* note for fade

* make flashes in the camera prefabs instead of in world space

remove / reorganize script files
address issue #411

* fix bug with perfect campaign

make minigame transitions hide the game canvas
adjust animation of the song credits textbox

* fully functional intro scene (placeholder for future title screen)

refactored entire game loading procedure
re-organized some files

* add interaction query to disclaimer text

* reword legal

* anchor section medals to section display

more tempo change placement controls

* operation order bugfix

* prep for future ratings and stats

* loading text

* autoload opening scene

* splash screen adjustments

added setting to force enable splash screen

* adjust setting entry
2023-05-07 20:33:15 +00:00
Rapandrasmus c837b11e1d
Quiz Show (#390)
* I'm a menace to society

* Made some small fixes

* added missing stuff, realignment

* Added Animators

* Unity Shenanigans

* all contestee anims

* mb

* Changed how the contestee is structured in the hierachy

* ymf

* I love quiz show

* more anim implementation

* anim fixes and bg upscale

* oops

* implemented prepare and rest

* oops2

* timer

* Implemented Head Animations

* Added the timer

* Oopsie

* there we go

* changed wizards waltz default length

* Added explosions

* Made consecutive intervals possible

* Implementing counting for the contestant

* The quiz host now has numbers

* host anims

* host anims done

* Implemented all host anims and fixed some stuff

* implemented more stuff

* oops

* anim fixes

* Bug fixes woohoo!

* Fixes

* Fixed something !!!!

* upscale and more

* updated reveal answer to not remove the black on reveal of the number

* new sheet2

* Added ForceExplode

* They now go grey

* upscale done anim stuff

* smoke and explosion

* Stage0 added

* KABOOM

* tweaks

* icon and anim fixes

* Added randomPresses event and prefunction to start interval

* Fixed a bug with random presses and also made the sign change color

* Fixed small bug

* fixed a spaceball bug

* New Metronome

---------

Co-authored-by: ev <85412919+evdial@users.noreply.github.com>
Co-authored-by: saladplainzone <chocolate2890mail@gmail.com>
2023-04-12 22:34:15 +00:00
minenice55 3984c8353f
Rendering Fixes and Other Adjustments (#384)
* fix game view alpha issues

* fix right-clicking on parameter-less entity locking event selection

* reduce ram use of rendertextures

* fix missing sprite references

fix cheer readers sprite masks not working

* fix lockstep rendering discrepancy

* fix section medal toggle not matching described behaviour in UI

* fix game settings masking issue

* dj school "Scratchy Music" toggle on by default

* import new sheets for fan club, mahou tsukai

* make dj school audio FX persist between game change

* make one shot sounds not create extra objects when not needed

* fix potential issue with new one shots

* make string properties apply changes for every keystroke
2023-04-03 04:17:55 +00:00
minenice55 6b6a334b82
Upgrade to Unity 2021.3.21 (#368)
* Upgrade to Unity 2021.3.21

* Update informational text
2023-03-27 05:38:14 +00:00
minenice55 d5ae99d8ba
Game Overlays (#280)
* add accuracy display

* temp BG for show

* separate overlays prefab

make proper shader for star effects

* aim shakiness display

* implement testing skill star

* fully functional skill star

* separate section display from editor

* fully separate chart section display from timeline

* add section to overlays

* fix nullreference issues

* start game layout settings

* add game settings script

* fix nonfunctioning scoring

* invert y position logic on timing bar

* add perfect challenge functionality

* fix section not showing up in editor

add perfect challenge option

* add timing display minimal mode

* Update PerfectAndPractice.png

* show gismo for minigame bounds in editor

* add ability to disable overlays in editor

* prepare medals

add new timing display graphic

* hide screen preview

* per-axis camera control

added per request

* section medals basic functionality

* add medal get animations

* fix bug with perfect icons

* visual enhancements

* adjust look of timing display minmode

address audio ducking issues(?)

* prepare overlay lyt editor

add viewport pan, rotate, scale
adjust audio setting

* add layout editor UI elements

* dynamic overlay creation

* fix default single timing disp

* set up overlay settings controls

* start UI events

* runtime uuid for component reference

* layout editor affects overlay elements

* show overlay element previews while editing

* advanced audio settings

* fix bug in drop-down creation

* fallback defaults for the new stuff

* fix textbox & overlay visibility bugs
2023-03-11 04:51:22 +00:00
AstrlJelly 09e9ad4a0b
Dog Ninja (#268)
* starting out with double date stuff :D

not even the background is finished
i just wanna get this on my fork so that it's safe

* double date getting more initialized

no animations, one block, nothing actually functions. but the boy is put in place, and the girl is almost put in place! just wanted to merge this with the main branch to play catchy tune

* initialization done!!!!!

gonna fix up the code, see what i can take out, see what i can standardize, see what i need to add. loving this so far, even with all of its annoyances

* ughhhh animation stuff.

this is gonna take me a day or two to even comprehend

* starting on animation

committing cause im traveling, i might work on this if i have time

* replace sounds, extend some stuff

replaced the rhre3 sounds and added a few things to make camera movements not look so out-of-bounds janky. still working on it, but it's coming along good so far

* starting on dog ninja

waiting for bread2unity to get merged, and i'm still probably gonna keep working on dog ninja until it's done even if it does.

* initialization and sprite trimming done

reference is from angrytapper2's video

Throw Object,
Cut Everything!, and
Here We Go!

were the cues added, in that order.

* temp icon w/ mask + bezier curves!!

the icon is temporary, but i did add a mask. i think it looks pretty good :) especially for  what it is. also bezier curves. i just figured those out, now i just need to figure out how to implement them into the object.

* getting there

i'm so close to getting the "Cut Everything!" block to work. i'm trying to figure out how to not play it as the default when the game is rendered

* added sfx
* added bird animations
* looked at double date for like 2 minutes
* have been editing blue bear's "treat" block to fit dog ninja for a while now

(im gonna try doing these commit notes from now on)

* keeping trying

* cues have sfx now
 - the "throw object" cues are not accurate yet
* animations adjusted to not keep bird on screen

* not much progress rn, getting into the harder stuff

* added more sfx
 - it's from rhre3, if somebody can find a clean rip that would be great, cause i can't)
* made a bop animation
 - still trying to figure out how to get it to play every beat :/
* replaced throw sfx, was using whiff sfx before
* extended background using a slice of the sky gradient and color picked blocks
* some code added to dogninja.cs and throwobject.cs is... bad. it's just torn from other games.

* i need to work out conflicts

really this is just pushing all my stuff so i don't lose it, tambourine is giving my fork conflicts for some reason 💀

* blehhh

figuring out git some more

* doesn't look like much. but

I GOT ANIMATIONS WORKING.
(god, i suck at C#)

* bop animations, on every beat (will soon make it a toggle)
* bird fly in and out, flies in when not on screen and out when on screen
* did more work on "throwObject.cs" but not anything applicable yet
* also found out how assigning scripts to a prefab works. ugh. so, got all those holders and objects assigned

* trying to get different sfx working for each item

really i just established some structure code. i don't understand it too well, so there are a few things commented out.

* starting with inputs

rn they're broken and i can't tell why :(

* heavily commented out code in ThrowObject.cs
* added option to disable the bird's FlyIn SFX
* some debug stuff
* some scheduled inputs (that AREN'T. WORKING.)

* fixed the input bug

tysm ymf <333 ur my hero
technically this is a functioning game! gonna get different sfx/sprites working, try to get bezier curves working, then i'll make a pr

* fixed that input bug
* changed some variable names
* getting some more infrastructure for getting the game fully working

* double date stuff!!!! (improvements, playability)

* purged SO much code
* combined SoccerBall.cs and Basketball.cs into Ball.cs
 - might do that for Football.cs too, but we'll see
* removed bop animation, it looked bad and made double date as a whole look bad cause it didn't reset. so the boy looked a bit off.
 - also fixed an error pertaining to animations
* basic input stuff for when bread2unity gets merged
* oh so much infrastructure stuff

* lol commit

* some animation stuff

* sfx stuff

all the different options have sfx tied to them for the throw and slice. now onto sprites and animation...

* added tacobell too :)

* dog ninja going into WIP :D

(commiting rn cause i wanna do some experimental animation)

* one more object :)
* optimized some code
* new sprites are almost done; i've got a list of both the sprites and their halves.

* sprites are in! and goodnight.

UGHHH BEZIER CURVES I DONT UNDERSTAND YOU

* all the sprites go with their corresponding option and sfx
* bird improved slightly

* BEZIER CURVES

* actual fruit animation
* toggle for random fruits (doesn't work yet)
* textbox for custom objects (doesn't work yet)
 - not user-submitted stuff, just stuff that doesn't really fit in the main dropdown menu
* some stuff i don't remember, but it's definitely stuff that's working towards making everything work.

miss anims don't work yet. at all. the objects just go flying. also the slice animation needs to be finished for both sides, and a bool needs to be added for which side to play (will be easy to do) also when you randomly slice, which is determined completely randomly (thank god)

gura-nyuuu :3 (i'm sorry)
* added a single sfx

* custom objects!!

tbh a lot more's coming but i need to merge my stuff
i don't feel like taking notes here

* working on halves

* misc cleaning up stuff
* started on the logic for halves

* progress on halves, cleaning out variables

i need to sync between laptop and pc

* im pretty sure that's all the double date stuff taken out

👍

* neatened up code + better bezier curves

* adjusted bezier curves
 - sooo close to perfection but very noticeable stuttering at lower speeds
* changed random to default object option instead of a bool; makes more sense this way
* renaming things, getting code ready for new animations
* commented a bunch of my code
* re-fixing a bunch of stuff that has since broken from updating stuff
 - i.e random fruit, sprites, "here we go!" in general, etc.

* new font, stuff fixed

* added [about friend font](https://www.deviantart.com/matthewtheprep/art/About-Friend-Extended-Now-with-Greek-and-Cyrillic-832264925)
* fixed "here we go!"
* some more left or right object animation stuff

* so many things

* fully added custom items
 - accessible through a cheat code type system in the drop-down for cues
* changed how the bezier curves function
 - only three points now (much smoother) and i just start it much later on the curve
* added AboutFriend font, basically kurokane except free to use
* started more on halves

god, halves are gonna be hard tho

* quick commit

by [d]

* got temp animations in

* temp animations for ev
* replaced ai sprites with ev's (thank you <333)
* getting progress on halves
* cleaned up files

* hi res sprites

* throw both objects + prepare anim

title

though, i still need to work out how the prepare animation will not play when you need to slice (cues a beat or less apart)

* all dog ninja animations

* forgot some stuff lol

* prep anim done

yay :)

* oops! blend tree moment

(more stuff)

* animation fixes

* more anim fixes lol

* done for the night

* added seanski's new icon
* fixed the sound for both objects getting thrown
* still working on the prepare animation, but for now it's gonna be a block
 - if literally anybody wants to implement an auto-prepare that isn't jank be my guest
* halves progress, as usual
* added a new item 😄

* fix conflicts

just saw these in the pr, this commit should fix them

* clean up code/fix prepare block

thank you ymf!!! <333

* code optimizations

* both slice anim + prepare anim fixed

* i have stashed changes i need to work on

* stashed changes

* remade halves lists
* renamed some sprites
 -i had funny little names like "tater" and "cuc" but that's a bit confusing
* custom halves don't have the framework for them yet so i was building that too

* half sprites work now

onto making the curve an animation!
(also fixing the text ig)
(ALSO i fixed the prepare stuff (i think))

* unity animation 💀

death

* Fixed text stuff

* push changes so nothing breaks

hi ymf

* i'll work on this more later

* halves r workin
* oops! all mp3s!
 -converted mp3 sfx to ogg

still need to do barelies, then everything is done

* barelies are so close to being done!!!

tweaking + figuring out how position works depending on which side the object was thrown

* stopping for the night

barelies are actually so insanely close to being done it's just a little bit of jank that's holding them back

ill finish this tomorrow.

* it's over. it's finally over. PR TIME!

* final adjustments
* the rest of the barely stuff
* clean up the code a little

:D

---------

Co-authored-by: minenice55 <star.elementa@gmail.com>
Co-authored-by: patataofcourse <patataofcourse@gmail.com>
Co-authored-by: ev <85412919+evdial@users.noreply.github.com>
Co-authored-by: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
2023-03-07 22:55:44 +00:00
minenice55 179e1b63da
Revert "Tram And Pauline Update (#262)" (#263)
This reverts commit 0f8cae72ba.
2023-02-05 15:14:34 -05:00
adianfiuef 0f8cae72ba
Tram And Pauline Update (#262)
Co-authored-by: minenice55 <star.elementa@gmail.com>
2023-02-05 14:51:16 -05:00
Braedon Lewis b45c4315b5
Editor bug fixes (#261)
* Spaceball cleanup and small bug fix

* Replace old hit sound in spaceball

* Camera filters

* added 9 new filters, including 3 types of sepia

* oops

* remark

* normalization of fade out and fade in on filters are by 100

* GenerateFilterTypeEnum comments

* Pure black and white filter

* Zooming

* Constant playback bar offset

* Prepare box selector rewrite

* Update icons, finalize

* Bug fixes
2023-02-05 14:48:49 -05:00
minenice55 d4185441c4
fix particles not rendering in builds (#249) 2023-01-30 19:13:05 -05:00
Rapandrasmus 62fbf65f51
Third times the charm (#218)
* Added sfx, sprites and folders neccesary. And also made an empty game object for working dough

* Started work on the background

* Implemented all unanimated sprites

* Added Init

* Added Prefabs

* Added Jumping and Idle Animatins for the Dough Dudes

* SmallFix

* Start Interval Event Implemented

* Added Audio and Small and Big Ball events

* Code Improvement + starting making the balls

* Added bezier curves

* Added First Rendition of Balls

* Added NPC Balls and starting doing small transporting animations

* SmallFixes

* SmallSoundChanges

* Implemented Audio and prefunction, not done with it though

* In process of fixing set interval

* Added more prefunction stuff and also started working on player input

* Tried adding player balls, not done, many bugs to fix

* Reverted trying to make the playerenterdoughball handle inputs, gonna do it through the main script instead

* Sat up input code for later

* Input works now! Need to add barely and wrong input animations and fix bugs

* Tiny fix

* Added first draft of wronginput animations

* Finished all input anims, trying to fix bugs

* Added finished Spaceship animations

* Added Mr Game and Watch WIP and lifting dough dudes

* Finished GANDW, fixed some bugs and still fixing bugs, almost done!

* DONE

* Begun development on tambourine

* Working Dough Polish

* Added many animations for tambourine

* Added Events

* Inputs added, near completion

* Miss Anims

* Animation changes

* DONE

* fix

* FIXED???
2023-01-21 16:29:28 -05:00
kkuhn317 ab30f1a88e
Catchy Tune: New sprites, animations, bug fixes (#204)
* catchy tune setup work, animations

* more catchy tune progress

* catchy tune: gameplay implemented, animation adjustments

* more animation work catchy tune

* more animation work catchy tune

* adjust icon metadata

* code cleanup

left remarks for minigame developer

* Catchy Tune new sprites

* Catchy Tune miss animations, fix bugs

* barely animation

* Catchy Tune several things

* barely sounds
* miss animation for pineapple
* background for catchy tune 2
* new game action for switching bg

* Catchy Tune cleanup, asset bundle

Co-authored-by: minenice55 <star.elementa@gmail.com>
2023-01-16 20:15:06 -05:00
minenice55 dd0531f48f
Second PlayerActionEvent Pass (#206)
* fix crop stomp input scheduling bugs

* update space soccer to use PlayerActionEvent

* update spaceball to use PlayerActionEvent

make PlayerActionEvents clean themselves up on game switch

* update rhythm rally to use PlayerActionEvent

* update rhythm tweezers to use PlayerActionEvent

* update mahou tsukai to use PlayerActionEvent

* reduce logging level
2023-01-15 22:05:25 -05:00
minenice55 eaba812665
Timing Window Improvements (#199)
* implement a fix for #196

- improve checking for unwanted inputs in minigame scripts, see Fan Club, Karate Man, and Pajama Party for examples
- provisionally implemented calculating average player input offset

* update samurai slice ds to new assets

implement near miss feedback

* import new pajama party assets
2023-01-13 23:53:25 -05:00
minenice55 41e9d36177
Misc Additions #4 (#192)
* update icons

* add background loading of sound sequences

- fix bug with preFunction
- remove most of the old preloading code

* update spritesheets for karate man, marching orders

* file explorer chart loading

* update icon for trick on the class
2023-01-11 20:42:12 -05:00
minenice55 22133a5c54
fix missing packages (#188) 2022-12-28 16:10:53 -05:00
Jellirby ab492fb8dd
A PROPER Initialization of Cheer Readers (#184)
* a PROPER initialization

* a PROPER initialization

* this again
2022-12-13 19:38:59 -05:00
minenice55 b361814c11
editor input locking fix (#175)
* fix keyboard input locking

* add build date auto-generation script
2022-10-13 12:20:48 -04:00
minenice55 695f6671fb
Performance Improvements (#173)
* improve performance with new render settings

- fix letterboxing losing camera references

* fin in missing params?

needs testing

* finish default param check

* scale jump animation of fan club spectators

* fix missing references in a karate man method

* more liberal use of Double in conductor

beatkeeping is now absolute instead of being additive

* optimize Conductor more

reduce caching from constantly sorting tempo changes despite game manager doing it for us
moved metronome logic to LateUpdate
2022-09-22 22:05:04 -04:00
minenice55 bccd88e164
Beatmap Sections & Latency Reduction (#170)
* prep UI for chart section

* all special layers now on one area

todo: have buttons toggle between special layers  (selection mode shows all?), use the tabs system for this

* swapping between special timelines - prelim

* special entities can be placed

* spec. timeline base functions complete

music volume changes should work now

* attempt at input lag reduction

needs testing

* fix dsp issues

* smaller DSP buffer?

* Revert "smaller DSP buffer?"

This reverts commit 9d36db5ff9.

* make conductor clock use real time (double)

change order of execution of input-related scripts to further attempt a reduction in input latency

* start values can be changed

make the old special entity bar visible when the corresponding type is selected

* creation of Chart Sections (TODO: GO REFERENCE)

* added GO references

* section edit dialog

* disable wrapping on chart section obj

* backspace can now delete entities

* entities don't shift when duplicated

* fix PlayerActionEvent order of operations

- fixed remix loading trying to clear special timeline while it's writing to itself

* make oop check match parity

* more operation order fix

* fix Karate Man BG initialization

* show section progress in editor

todo: section progress in-game

* more fix for entity duping
2022-09-18 16:48:14 -04:00
minenice55 a7bea351c5 add cursor toggle, master volume 2022-07-10 17:39:14 -04:00
minenice55 52ff2a7829 settings resolution changer 2022-07-08 22:11:55 -04:00
minenice55 8d571f6443
Icon Improvement Concept & Resizeable Window (#104)
* Editor: mostly PoC icon effects

* slightly more responsive selection

* resizeable window

game camera still doesn't letterbox properly, will need a bit more work

* letterbox both in editor and in fullscreen

* restore camera rects when returning to editor
2022-06-13 22:24:41 -07:00
minenice55 12fb8c2117
Feature: Textboxes and other text-related features (#90)
* Textboxes: setup prefab

* Textboxes: basic functionality finished

* Textbox: scaling

* Textbox: open captions

* Textbox: res edits

* Textbox: song artist

* Textbox: closed captions

* Textbox: fix not being able to use multiple text events

* I/O: save / load remixes using UTF-8 encoding

* Textboxes: stop editor shortcuts while typing
2022-06-03 20:15:05 -07:00
Jenny Crowe 4cf20aab16 Unity moment 2022-03-10 07:49:35 -07:00
Jenny Crowe 32b647a4d4 BTSDS: Outlines via Post Processing 2022-03-10 05:45:21 -07:00
Jenny Crowe ad5dd56de3 Flash now relegated to its own layer 2022-03-07 17:21:27 -07:00
Jenny Crowe 02b5d27feb Branding changes 2022-02-21 20:27:00 -07:00
Jenny Crowe 5cd14a2cb4 Rhythm Rally: Better camera/layer configuration 2022-02-12 10:16:50 -07:00
Jenny Crowe 9c2139129e Rhythm Rally: Utilizing rendertextures to preserve main camera qualities between games 2022-02-12 09:57:45 -07:00
Braedon 49ad157893 Camera flashes (bug associated with fullscreen) 2022-02-07 20:07:03 -05:00
Braedon 3941410e17 DJ School sounds 2022-02-02 21:09:50 -05:00
Braedon 147e41ca35 Space soccer polish and editor preview button 2022-02-02 03:36:20 -05:00
Braedon d361f45590 Basic saving and loading system 2022-01-30 07:03:37 -05:00
Braedon 7330d19ff6 Upgrade renderer to the universal render pipeline 2022-01-30 04:09:26 -05:00
Braedon 1ed2291844 Command pattern (Undo/Redo) system began. (Read desc)
I spent about 6 hours trying to fix this one specific bug involving the move undo. Turns out all I had to do was calm down and think logically instead of typing random bullshit for a few hours until it worked. I'm tired and I thank this for ruining my sleep schedule.
2022-01-22 05:44:19 -05:00
Braedon 60a4787574 Switch newtonsoft package with official unity one 2022-01-17 17:04:10 -05:00
Braedon 00e3791e6d Timeline improvements 2022-01-09 18:35:55 -05:00
Braedon 9bcb315344 Timeline entities added 2022-01-08 11:42:48 -05:00
Starpelly 775fd7e580 Initialize game with one script 2022-01-03 17:42:43 -05:00
Starpelly c653d487ac Spaceball pretty much finalized. 2021-12-28 02:38:55 -05:00
Starpelly 75965927d6 Further improvements to AudioSource.time (Conductor.cs) 2021-12-27 21:36:27 -05:00
Starpelly 95ac1306d4 Multiple events can now be called onto same frame + more Spaceball camera fixes 2021-12-26 00:11:54 -05:00
Starpelly 6729eec8dc Highball added to Spaceball + event types added. 2021-12-25 08:32:52 -05:00
Starpelly 575e47e384 Fork Lifter fully functional again + more progress on dynamic event caller 2021-12-22 20:49:16 -05:00
Starpelly 1bdf6c68e8 Got rid of all hard-coded ForkLifter code from GameManager. 2021-12-20 23:38:59 -05:00
Starpelly 33bd99bbc1 Fork Lifter Spaghetti Code 2021-12-18 23:10:43 -05:00