/Super-Auto-Lich

Super Auto Pets browser clone with Dungeons and Dragons monsters

Primary LanguageJavaScript

Super Auto Lich

Super Auto Pets reskinned for Dungeons and Dragons monsters.

Browser based version using p5.js and socket.io, hosted on glitch.

Credits

Made by August Luhrs and Casey Conchinha.

Thanks to our lovely playtesters! Calder Hussmann Jackson Luhrs Ashton Luhrs

Super Auto Pets and the Dungeons and Dragons monsters are property of Team Wood Games and Wizards of the Coast respectively. We make no claim to either and only use their likenesses because we love them, plz no sue

Roadmap

  • 0.1 MVP Prototype

    • set up project and repo
    • asset test
    • battle test
      • start from market
      • auto battle
      • layout / positioning
      • server random party generation
      • battle steps
      • winner / end
      • back to market
    • market test
      • layout / positioning
      • random setup
      • reset gold
      • drag to buy
      • drag and rearrange
      • refresh (roll)
      • ready up (send party and trigger battle)
    • multiplayer test
      • get/show enemy party
      • check if both are ready, then start battle
    • fix flip issue
    • overall game progress
      • starting market flow and send party
      • turns
      • player hp loss
      • game loss/win
    • put on glitch
    • playtest bugs
      • party dupe after first battle
      • refresh hires after battle (can't reproduce)
      • server line 146 null (shouldn't happen...)
  • 0.2

    • team names
      • pool of adjectives and nouns
      • option generator function
      • choose team name on first ready up
      • team name display
    • upgrade
      • lvl and next lvl slots stat above
      • drag to upgrade, combine correctly
      • can't upgrade past lvl 3
    • abilities
      • hover to see name and ability text
      • ability stack (priority goes to power, tie if random)
      • timing
        • before battle starts
        • before attack
        • after attack
        • on death
    • battle speed
      • UI (pause, play, fast)
      • client goes through list of animation steps
    • CR (tiers)
      • dice assets
      • dice UI above hires
      • only show hires from unlocked tiers
      • hp loss by turn/tier
    • assets
      • placeholder level 1s
    • freeze hires
      • send hire array as argument instead of tracking freezes on server
      • placeholder frozen overlay
      • freeze slot
      • drag to freeze
    • hire stats
    • sell
      • drag to sell
      • sell location
      • sell return by level
    • Animations
      • basic attack
      • basic take damage
      • basic dead
      • basic scoot up party after death
      • basic ability
      • basic move into battle
    • Art
      • font
      • top stat icons/emojis
      • background market
      • background battle
    • Code Refactor
      • player object and lookup by id instead of array
      • server battle calculates and sends list of steps
      • battle display battleParty
      • cleanup
      • omfg structuredClone() creates a deep copy.... wtf
      • Node v18
      • isDamaged reset
    • Misc. QoL
      • relative text sizes
      • bigger slots/assets and slot positions relative to size
      • cleanup comments from 0.0.1
      • bigger/better top stat UI
      • figure out how to scale ability text and wrap/justify
    • bugs/issues
      • fix end of game display
      • fix hp display on battle end
      • redo battle display and battle result text colors for draw
      • fix bug with ready and battle spamming
      • need a failsafe end battle if both sides end with flumph or stirge (tie timer)
      • mephit chain reaction not working? can't replicate
      • skeleton resurrection can block mephit chain reaction -- no, it's b/c of "die in middle"
      • clear reference to last dragged when going back to market
      • fix party name text overflow
      • increase size of pop up text box
  • 0.3

    • Multiplayer
      • nedb database for login and stats tracking
        • gitignore / how to store without visible on glitch?
        • just username/pword so no email?
        • encrypt password -- look up data privacy how to
      • start screen
        • interface
          • title
          • play arena
          • join lobby
          • create lobby
          • log in
          • settings
          • css for title buttons
        • login
          • how to have cookies keep login info?
        • join random arena
          • random pairings
          • bot teams if not enough players
        • join lobby
          • enter name
          • error if not valid name
        • create lobby
          • id
          • num players
          • error if num players isn't a valid number
        • lobby wait screen
          • joined player names
          • start button when ready
          • random pairings
          • duplicate battles if odd number
        • settings/info/options
        • monster animation
      • Matchmaking refactor
        • fix ready for multiple fighters (server.js:137)
        • fix p1,p2 in battlesteps
        • need to sync random events now... fuck
        • client side event for win/loss to account for odds and trophies for arena
        • send player message of win if only player left -- needs refactor of battleSteps "gameOver" message
        • global chat for matchmaking? w/ current users online number
    • old code refactor
      • use realistic-structured-clone & node 16.x for glitch
      • fix the battle mess
      • get rid of the duplicate party display market vs battle
      • move animations currently don't account for potential moving more than one slot or dying
      • parties/ids/indexes code smell
      • figure out the battle party references stuff (server.js:300)
      • common but different name for cloned arrays
      • "battle" vs "parties"
      • need to clone at all? or change up what battleSteps sends... in middle
    • bugs/issues
      • "The" party name fix for names like Xanathar's
      • center names instead of left/right? or like start from center rather than edges
      • first move display getting cut short
      • fix move steps and remove move step if no one needs to
      • sleeping should wear off if creature takes damage
      • ability sort by strength won't work if monsters somehow have negative power
      • waiting for battle different alignment on party name and market (sketch.js:985)
      • tint slowing performance
      • fix stroke after start
      • undefined vs null in mouseDragged
    • TODOs/Things to think about
      • look up networking patterns
      • look up game ability patterns
      • think about tie timer being 8 -- what's another way?
      • think about better way to do the party trimming/splicing for battle
      • how can I do abilities by just calling a method?
      • when to reset properties like damaged?
      • does normal upgrading always only bump stats by 1
      • how to animate attacks better
      • how to animate damage/death better (and faster?)
      • still need animation buffer?
    • Misc QoL
      • css for market buttons
  • 0.4

    • items
    • freeze items
    • no drag to freeze?
    • assets
    • better lvl 1s
    • tier 2
    • tier 3
    • tier 4
    • tier 5
    • tier 6
    • increase tier every X turns
    • battle step overhaul
    • ability timing
      • on damage
      • on buy
      • on sell
      • on getting an item
      • on level up
      • end of market
    • Misc QoL
  • Art

    • font
    • market background
    • battle background
    • end game background
    • refresh button
    • ready button
    • slots
      • asset
      • layout
    • level/upgrades
    • power
    • hp
    • tiers
      • asset
      • layout
    • monster popups
      • background
      • layout
    • freezes
      • basic overlay for all monsters
    • top stats
      • icons
      • background boxes
    • Assets
      • tier 1
      • tier 2
      • tier 3
      • tier 4
      • tier 5
      • tier 6
    • Animations
      • enter battle (approach and fade in)
      • exit back to market fade out
      • player hp loss on loss
      • tier 1
      • tier 2
      • tier 3
      • tier 4
      • tier 5
      • tier 6
  • Refactor / QoL

    • better scrollbar removal
    • show/drag monsters/times with .x/.y instead of iterating through slots
    • might need to stop using relative coords and have set locations/sizes for different resolutions...
  • Balancing

    • some sort of data gathering for what is picked and what wins?

    Playtest Notes

    0.3

    7/31/22

    • click and drag still most unintuitive part
    • upgrade to lvl 2 should only cost 2 monsters
    • upgrades should spawn a new hire (of a higher tier) in the next available slot
    • should have an unready button (clicking ready multiple times sends too many messages and you end up fighting yourself)
    • casey dragged a monster to rearrange and one of the party got deleted
    • might need to nerf kobolds again (but might nerf itself when higher tiers are added, thus decreasing likelihood of getting kobolds)
    • combining lvl 2 and lvl 2 not right amount of upgrades
    • flumph should cancel kobolds
    • go back to main menu button after win/loss

    Balance Notes

    • changed kobolds to total num kobolds instead of total -1, but still only triggers if multiple

    0.2

    7/22/22

    • first instinct was to click on the monsters, had to be told to drag
    • no indication when they don't have enough money to do something, and no warning if they want to ready up while they still have a lot of money
    • info boxes were basically not read or sought after
    • "stirge is OP"
    • "ooh skeleton, cool art"
    • mephits are very destructive and hard to strategize for first time players, not very clear what they do from animations
    • running slow for some reason... too many monsters? something about when the images are tinted red?
    • unclear how to move party members in line or that it was even a possibility
    • "how could I have won?" general strategy unclear

    Misc. Balance Thoughts

    • Bear too strong -- maybe just bumps HP?
      • wow but 12 kobolds and 12 bears have the same sum total power + hp after abilities...
      • no still too strong. nerfing power
    • goblins suck compared to skeletons, 16% chance at lvl 1 vs 100% chance + extra... maybe should bump to 20% base?
    • skelly immune to spores atm, b/c they're "dead" -- kinda cool flavor
    • damn stirge basically can't be killed by anything with 1 power, unless abilities (spores), ah can also get stuck in infinite loop. Should have tie timer

    0.1

    6/17/22

    • dupes party if you drag party slots after first battle
    • pulling from hires on return to market shows wrong unless refresh
    • server.js index line 146 i of null -- why null?