Compare commits

..

7 Commits

Author SHA1 Message Date
Ishaan Bhardwaj
3b0fdba27d Updated README.md to have the updated mod pack 2020-11-12 09:45:48 -05:00
Ishaan Bhardwaj
d8fad3dc37 Added some more developer functions, to aid in building modes. 2020-11-11 22:30:30 -05:00
Ishaan Bhardwaj
f9368fa806 Forgot to add a contributor, whoops... 2020-11-11 11:11:55 -05:00
Ishaan Bhardwaj
189feb1802 Fixed the last of the hard drop safelocks... 2020-11-10 23:13:25 -05:00
Ishaan Bhardwaj
dc09dabacb Fixed Phantom Mania safelock behaviors 2020-11-10 23:10:39 -05:00
Ishaan Bhardwaj
e13278c6a8 Fixed safelock behavior for hard drop modes 2020-11-10 22:34:48 -05:00
Ishaan Bhardwaj
f7f11b0e22 Updated README.md with new Windows instructions 2020-11-10 21:41:34 -05:00
10 changed files with 48 additions and 17 deletions

View File

@@ -28,12 +28,33 @@ The following people in no particular order also helped with the project:
- [sinefuse](https://github.com/sinefuse) - [sinefuse](https://github.com/sinefuse)
- [2Tie](https://github.com/2Tie) - [2Tie](https://github.com/2Tie)
- [nightmareci](https://github.com/nightmareci) - [nightmareci](https://github.com/nightmareci)
- [MyPasswordIsWeak](https://github.com/MyPasswordIsWeak)
![Cambridge Logo](https://cdn.discordapp.com/attachments/625496179433668635/763363717730664458/Icon_2.png) ![Cambridge Logo](https://cdn.discordapp.com/attachments/625496179433668635/763363717730664458/Icon_2.png)
Playing the game Playing the game
---------------- ----------------
### Windows
You do not need LÖVE on Windows, as it comes bundled with the program.
To get the stable release, simply download the ZIP in the latest release. All assets needed are bundled with the executable.
If you want the bleeding edge version, or want mod pack support, download [this](https://github.com/SashLilac/cambridge/archive/master.zip).
Extract the ZIP, open a Command Prompt at the folder you extracted Cambridge to, then run this command:
dist\windows\love.exe .
Alternatively, if you're on a 32-bit system, run this instead:
dist\win32\love.exe .
32-bit systems do not support rich presence integration.
Then, check the mod pack section at the bottom of this page.
### macOS, Linux ### macOS, Linux
If you haven't already, install `love` with your favourite package manager (Homebrew on macOS, your system's default on Linux). **Make sure you're using LÖVE 11, because it won't work with earlier versions!** If you haven't already, install `love` with your favourite package manager (Homebrew on macOS, your system's default on Linux). **Make sure you're using LÖVE 11, because it won't work with earlier versions!**
@@ -50,25 +71,11 @@ Then, navigate to the root directory that you just cloned, and type:
It should run automatically! It should run automatically!
### Windows
You do not need LÖVE on Windows, as it comes bundled with the program. Download the source code ZIP in the latest release, or if you want the bleeding edge version, download [this](https://github.com/SashLilac/cambridge/archive/master.zip).
Extract the ZIP, open a Command Prompt at the folder you extracted Cambridge to, then run this command:
dist\windows\love.exe .
Alternatively, if you're on a 32-bit system, run this instead:
dist\win32\love.exe .
32-bit systems do not support rich presence integration.
## Installing modpacks ## Installing modpacks
Simply drag your mode, ruleset, and randomizer Lua files into their respective directory, and they should appear automatically. Simply drag your mode, ruleset, and randomizer Lua files into their respective directory, and they should appear automatically.
Alternatively, install [this](https://files.catbox.moe/66td2i.zip) mod pack to get a taste of the mod potential. Alternatively, install [this](https://github.com/SashLilac/cambridge-modpack) mod pack to get a taste of the mod potential.
License License
------- -------

View File

@@ -171,6 +171,20 @@ function Grid:applyFourWide()
end end
end end
function Grid:applyCeiling(lines)
for row = 1, lines do
for col = 1, 9 do
self.grid[row][col] = block
end
end
end
function Grid:clearSpecificRow(row)
for col = 1, 10 do
self.grid[row][col] = empty
end
end
function Grid:applyPiece(piece) function Grid:applyPiece(piece)
if piece.big then if piece.big then
self:applyBigPiece(piece) self:applyBigPiece(piece)

View File

@@ -27,6 +27,7 @@ function MarathonA2Game:new()
self.randomizer = History6RollsRandomizer() self.randomizer = History6RollsRandomizer()
self.lock_drop = false self.lock_drop = false
self.lock_hard_drop = false
self.enable_hold = false self.enable_hold = false
self.next_queue_length = 1 self.next_queue_length = 1
end end
@@ -124,7 +125,8 @@ function MarathonA2Game:onLineClear(cleared_row_count)
self.grid:clear() self.grid:clear()
self.roll_frames = -150 self.roll_frames = -150
end end
if self.level >= 900 then self.lock_drop = true end self.lock_drop = self.level >= 900
self.lock_hard_drop = self.level >= 900
end end
function MarathonA2Game:updateScore(level, drop_bonus, cleared_lines) function MarathonA2Game:updateScore(level, drop_bonus, cleared_lines)

View File

@@ -34,6 +34,7 @@ function MarathonA2Game:new()
} }
self.lock_drop = false self.lock_drop = false
self.lock_hard_drop = false
self.enable_hold = false self.enable_hold = false
self.next_queue_length = 1 self.next_queue_length = 1
end end
@@ -151,7 +152,8 @@ function MarathonA2Game:onLineClear(cleared_row_count)
if self:qualifiesForMRoll() then self.grade = 32 end if self:qualifiesForMRoll() then self.grade = 32 end
self.roll_frames = -150 self.roll_frames = -150
end end
if self.level >= 900 then self.lock_drop = true end self.lock_drop = self.level >= 900
self.lock_hard_drop = self.level >= 900
end end
function MarathonA2Game:updateSectionTimes(old_level, new_level) function MarathonA2Game:updateSectionTimes(old_level, new_level)

View File

@@ -24,6 +24,7 @@ function MarathonAX4Game:new()
self.section_clear = false self.section_clear = false
self.lock_drop = true self.lock_drop = true
self.lock_hard_drop = true
self.enable_hold = true self.enable_hold = true
self.next_queue_length = 3 self.next_queue_length = 3
end end

View File

@@ -15,6 +15,7 @@ function PhantomManiaGame:new()
PhantomManiaGame.super:new() PhantomManiaGame.super:new()
self.lock_drop = true self.lock_drop = true
self.lock_hard_drop = true
self.next_queue_length = 1 self.next_queue_length = 1
self.SGnames = { self.SGnames = {

View File

@@ -35,6 +35,7 @@ function PhantomMania2Game:new()
self.randomizer = History6RollsRandomizer() self.randomizer = History6RollsRandomizer()
self.lock_drop = true self.lock_drop = true
self.lock_hard_drop = true
self.enable_hold = true self.enable_hold = true
self.next_queue_length = 3 self.next_queue_length = 3

View File

@@ -27,6 +27,7 @@ function Survival2020Game:new()
self.randomizer = History6RollsRandomizer() self.randomizer = History6RollsRandomizer()
self.lock_drop = true self.lock_drop = true
self.lock_hard_drop = true
self.enable_hold = true self.enable_hold = true
self.next_queue_length = 3 self.next_queue_length = 3
end end

View File

@@ -27,6 +27,7 @@ function SurvivalA2Game:new()
} }
self.lock_drop = true self.lock_drop = true
self.lock_hard_drop = true
end end
function SurvivalA2Game:getARE() function SurvivalA2Game:getARE()

View File

@@ -29,6 +29,7 @@ function SurvivalA3Game:new()
} }
self.lock_drop = true self.lock_drop = true
self.lock_hard_drop = true
self.enable_hold = true self.enable_hold = true
self.next_queue_length = 3 self.next_queue_length = 3