Three Two One...Draw is a deckbuilding RPG with a Wild West theme built in Unity. The game features turn-based combat using a unique time-slot system where players place cards that activate after a delay, creating strategic timing-based gameplay.
- Project Name: ThreeTwoOneDraw
- Unity Version: 2022.3.x (Universal 2D Template)
- Render Pipeline: Universal Render Pipeline (URP)
- Target Platform: Standalone (Windows/Mac/Linux)
- Company: DefaultCompany
- Bundle ID: com.DefaultCompany.2D-URP
- Unity Input System (1.14.0)
- Universal Render Pipeline (17.0.4)
- Cinemachine (3.1.4)
- TextMeshPro (2.0.0)
- Unity 2D Animation Package
- Unity 2D Pixel Perfect Package
The game uses an abstract card system with three main card types:
Abstract Classes:
AbstractCard.cs- Base class for all cards with name, cost, image, and use methodAbstractSkill.cs- Base class for skill cardsAbstractDefend.cs- Base class for defense cardsAbstractBullet.cs- Base class for bullet/projectile cards
Card Types:
- Skill Cards: Take Aim, Adrenaline Shot, Bandage, Dynamite, Iron Steel Plate, Sleight of Hand, Smoke Screen, Sweet Rewards
- Bullet Cards: Six Shooter Bullet, Tomahawk Bullet, Winchester Bullet
- Defend Cards: Defend, Defend Large, Defend Medium, Deflect
AbstractPlayer.cs- Base class for both player and enemy charactersPlayer.cs- Player character implementationEnemy.cs- Base enemy classCactus.cs- Specific enemy typeBanditBoss.cs- Boss enemy implementationEnemyStateMachine.cs- AI state machine for enemies
AbstractWeapon.cs- Base weapon class with time slots and bulletsSixShooter.cs- Six-shooter weapon implementationTomahawk.cs- Tomahawk weapon implementationWinchester.cs- Winchester rifle implementationWeaponMono.cs- MonoBehaviour for weapon management
Unique gameplay mechanic where cards are placed in numbered time slots (0-9) that activate after a delay:
- Each weapon has different time slot configurations
- Special time slots can modify card effects (e.g., double damage, increased cost)
- Cards activate automatically when their timer expires
EncounterControl.cs- Main combat controller and game state managerBulletManager.cs- Manages bullet projectilesDefenseManager.cs- Handles defense mechanicsHealthBarHelper.cs- UI health bar managementMusicManager.cs- Audio and music managementSoundManager.cs- Sound effects managementPlayerDefense.cs- Player defense system
OverworldManager.cs- Manages overworld gameplay and scene transitionsNPCInteraction.cs- Handles NPC interactionsSpriteMovement.cs- Player movement in overworldDisableOverworld.cs- Scene management utilities
CombatDemo.unity- Main combat sceneOverworldWildWest.unity- Main overworld scene
- AddyM/: AddyM CombatDemo.unity, AddyM Overworld.unity
- Andy Chen/: AndyCombatDemo.unity, AndyOverworldWildWest.unity
- Eugene/: Combat.EL.unity, Overworld.EL.unity
- NickN/: CombatDemoNick.unity, OverworldWildWestNick.unity
- MichaelPerez/: Michael.unity
- Aud/: aud.unity
- CalebCopley/: caleb.unity
- Nirupama/: nirupama.unity
- CardArt/: Card artwork and icons
- CharSprites/: Character sprites (Bill, NPCs, Bullets)
- UI/: User interface elements
- TimeSlots/: Time slot visual elements
- Animations/: Combat, idle, and movement animations
- Music/: Background music tracks
- SFX/: Sound effects
- Objects/: Environmental objects
- desertground/: Desert environment tiles
Card.prefab- Card visual representationBullet.prefab- Bullet projectileNPCPrefab.prefab- NPC characterTimeSlot.prefab- Time slot UI element
- Turn-Based Combat: Players and enemies take alternating turns
- Time Slot Mechanics: Cards are placed in numbered slots (0-9) with countdown timers
- Card Types:
- Bullets: Deal damage to enemies
- Defends: Block incoming bullets
- Skills: Provide various effects (healing, buffs, special abilities)
- Deck Management: Draw, discard, and shuffle mechanics
- Weapon System: Different weapons provide different bullets and time slot effects
- Built-in tutorial with popup explanations
- Teaches card types, time slots, and basic mechanics
- Interactive guidance for new players
- Mouse Controls: Primary input method for card selection
- Keyboard Controls:
- Number keys (0-9): Place cards in corresponding time slots
- E: Reload deck (shuffle discard pile back into deck)
- Arrow keys: Navigate cards (when not in mouse mode)
- Escape: Quit game
- Music Types: Theme, Tutorial, Intro
- Sound Types: CardDraw, Reload, SixShooterBullet, and various other effects
- Dynamic music switching between overworld and combat
- State Machines: Enemy AI using Unity Animator state machines
- Object Pooling: Efficient bullet and card management
- Scene Management: Additive scene loading for smooth transitions
- UI System: Health bars, card displays, time slot information
- Animation System: Character animations for combat and movement
- Object-Oriented Design: Extensive use of abstract classes and inheritance
- Singleton Pattern: Used for managers (EncounterControl, MusicManager, etc.)
- Component-Based: Unity's component system for game objects
- Event-Driven: Timer-based events for card activation
- Object pooling for bullets and cards
- Efficient UI updates
- Optimized sprite rendering with 2D Pixel Perfect
- Modular card system allows easy addition of new cards
- Abstract weapon system supports new weapon types
- Flexible enemy system with state machines
- Configurable time slot effects
- Target Resolution: 1920x1080 (default)
- Graphics API: DirectX 11, OpenGL Core
- Scripting Backend: Mono (Editor), IL2CPP (Build)
- Architecture: x64
This appears to be a collaborative project with multiple contributors, each having their own scene variants. The core game systems are implemented and functional, with a complete combat system, overworld exploration, and tutorial functionality.
This index was generated on $(date) and reflects the current state of the Three Two One...Draw Unity project.