mirror of
https://github.com/JohnBreaux/Boat-Battle.git
synced 2024-11-15 13:25:58 +00:00
06b8711a08
* Create game classes * Pushing what I've done of the game logic. * Commented my code Deals with ship placement on board and ship rotation on board * Comment game logic code, and edit for style. * Added Clear board button and Confirm Placement button * Fix up some stuff * Pass * I accidentally the buttons + Fix some hitbox mistakes. * Improve hitbox leniency, and don't allow ships to rotate into each other. * Fixed Dialog Box that pops up for Confirm Placement * Update Gameplay.tscn * Partial fire functionality added. Currently hides all ship placement UI and makes visible all fire functionality. The crosshair currently does not snap to a grid. The ships are saved in an area of location objects holding the length, orientation, and coordinates of the ship. * Crosshair now snaps into place * Created Sprites for 2Ship and 3ShipA * Created Sprite for Ship3B * Created Sprite for Ship4 * Created Sprite for Ship5 * Created Sprite for "Hit" * Created Sprites for Ship2 Destroyed and Ship3A Destroyed * Created Sprite for Ship3B Destroyed * Created Sprite for Ship4 Destroyed * Created Sprite for Ship5 Destroyed * Created Sprite for "Miss" * Fixed blurry pixel art Changed texture rendering * Added temporary title screen text * Major restructuring to better support object-oriented design of the main game logic and UI. This was necessary, I swear. * Accidentally offset the Setup menu by a handful of pixels. Whoops. * Setup: remove unused signal * Comment on which parts of Game are only there for testing purposes. * Fixed up the Title Screen text imported font * Fixed Crosshair pixel rendering * Consolidate backgrounds * Added more SFX sounds * Created Sprite for Light Mode * Fix null deref when entering singleplayer after exiting multiplayer * Hien's work * Revert "Hien's work" This reverts commitf099ed6c80
. * Stuff * Make git happy by pushing gdengine imports * Put Background in main * Removed option background * Added Confirmation Dialog for Forfeit * Revert "Merge branch 'game-logic' of https://github.com/StatewideInk/Group12 into game-logic" This reverts commit104ffaab0a
, reversing changes made to63dec75688
. * Fix title screen never going (whoops * Oops I made the background invisible * removed option background again * Added dark/light mode functionality * Added signal for audio SFX * Load the theme on startup * Added Confirmation dialog for Forfeit * Fixed Texture Rendering for Light Mode Background * Sounds no longer scale linearly * Remove unused resourse main.tres * Added victory screen Added a victory screen. Since there is no current way to win, there is a 'win' button added to the top left of the game screen. Once clicked, victory text will appear and the player will be given the option to return to the main menu. * restart button is invisible Co-authored-by: John Breaux <JohnBreaux@my.unt.edu> Co-authored-by: JohnBreaux <89870642+JohnBreaux@users.noreply.github.com> Co-authored-by: hpham474 <HienPham@my.unt.edu> Co-authored-by: Chance Atkinson <chancewatkinson@gmail.com>
56 lines
1.8 KiB
GDScript
56 lines
1.8 KiB
GDScript
extends Node
|
|
|
|
# This is the rendered element of a "ship", generated when the game transitions from the placing state to the gameplay state
|
|
|
|
# Enum denoting the orientation (X is 1, Y is 0)
|
|
enum Orientation {X = 1, Y = 0}
|
|
|
|
# Size of ship in board units
|
|
var size
|
|
# Coordinates of ship's center. Ship extends [-(size-1 >> 1), (size/2 >> 1)]
|
|
var position
|
|
# Variable storing whether the ship is sunk, for rendering purposes
|
|
var sunk = false
|
|
# Orientation of the ship (see enum Orientation)
|
|
var orientation = Orientation.Y
|
|
|
|
# Ship sprite metadata
|
|
# sprite: the texture atlas containing all ship parts
|
|
var atlas # = TODO: figure out how to use one sprite for multiple textures
|
|
# texture: the offset into the texture atlas of the first part of the ship.
|
|
var texture = 0
|
|
|
|
# Called when the node enters the scene tree for the first time.
|
|
func _ready():
|
|
pass # Replace with function body.
|
|
|
|
# member functions:
|
|
# getSize: get the size of the ship, in board-units (2 for 2-ship, 3 for 3-ship, ...)
|
|
func getSize():
|
|
return size
|
|
|
|
# getPosition: get the position of the ship's center, in board units
|
|
func getPosition():
|
|
return position
|
|
|
|
# getOrientation: get the orientation of the ship (see enum Orientation)
|
|
func getOrientation():
|
|
return orientation
|
|
|
|
# getSunk: get whether the ship is sunk
|
|
func getSunk():
|
|
return sunk
|
|
|
|
# setSunk: sink the ship
|
|
func setSunk():
|
|
sunk = true
|
|
|
|
# _init: called on object initialization. Accepts args if called via <Ship>.new(...)
|
|
# in_position: position of the ship, in board-coordinates; (0,0) by default
|
|
# in_size: size of the ship, in board-units; 2 by default
|
|
# in_orientation: orientation of the ship (see enum Orientation); vertical by default
|
|
func _init(in_position = Vector2(0,0), in_size = 2, in_orientation = Orientation.Y):
|
|
position = in_position
|
|
size = in_size
|
|
orientation = in_orientation
|