Commit Graph

380 Commits

Author SHA1 Message Date
Charles Peyrat 8d7e264381 Fix a bug where the generator could crash by trying to place the starting room out of bounds; starting room position is now random 2021-01-08 15:06:38 +01:00
Yohann D'ANELLO 28a6532a21
Add a hint to tell the user how to talk to friendly entities 2021-01-08 14:59:44 +01:00
Charles Peyrat fab1bee8d8 Force loop entrance to get coverage 2021-01-08 14:52:59 +01:00
Yohann D'ANELLO 156e4a7e3a
Add a hint to tell the user how to use ladders 2021-01-08 14:51:56 +01:00
Yohann D'ANELLO f48377e055
Save floors and visibility, fixes #61 2021-01-08 14:23:57 +01:00
Yohann D'ANELLO 120ec82d09
Helmet needs only one character in squirrel mode, add a trailing space 2021-01-08 12:07:13 +01:00
Yohann D'ANELLO 571e9db3e8
Fix french translations 2021-01-08 12:06:28 +01:00
Yohann D'ANELLO e56bdc16c2
Add item description, closes #59 2021-01-08 11:55:25 +01:00
eichhornchen 5736c2300b Added a scroll object that deals damage based on the player intelligence. Related to #60 2021-01-08 11:54:39 +01:00
ynerant 2b3a8279b8 Merge branch 'fix-settings' into 'master'
Fix settings

Closes #57 et #58

See merge request ynerant/squirrel-battle!56
2021-01-08 11:30:02 +01:00
Yohann D'ANELLO 75e93611c3
Capture all mouse events and take into account mouse attributes, fixes #58 2021-01-08 11:21:40 +01:00
Yohann D'ANELLO b42f1277b1
Exit the game on KeyboardInterrupt (don't log this error) 2021-01-08 11:10:10 +01:00
eichhornchen 196e3708d2 Merge branch 'master' into 'doc'
# Conflicts:
#   squirrelbattle/entities/items.py
#   squirrelbattle/interfaces.py
2021-01-08 11:10:09 +01:00
Yohann D'ANELLO ac8c7a0a4c
Only read required keys in settings file 2021-01-08 11:07:38 +01:00
eichhornchen 6673b67ffe Repaired spawn of trumpets. 2021-01-08 10:58:40 +01:00
Charles Peyrat c06f903a16 Fix a typo that made corridors unable to be built 2021-01-08 07:41:00 +01:00
Charles Peyrat c6947fab44 Integrate the new map generation into the game ! Closes #5 2021-01-08 07:39:52 +01:00
Charles Peyrat 641f5c7872 Make generation more sparse by asking for extra space around rooms; also add out of bounds option to Map.neighbourhood 2021-01-08 07:38:47 +01:00
Charles Peyrat 605696dddd Revamp door placing algorithm so that it generates cleaner doors; also remove lone starting room door from level 2021-01-08 07:36:31 +01:00
Charles Peyrat 5ba07afc9f Fix typo in parameter names 2021-01-08 07:05:02 +01:00
Charles Peyrat e21d4d230c Add missing termination condition 2021-01-08 07:04:24 +01:00
Charles Peyrat b0ac580677 Fix place_walls, that placed floors instead ... 2021-01-08 07:03:49 +01:00
Charles Peyrat d362bdc949 Fix place_room and add missing argument 2021-01-08 06:58:02 +01:00
Charles Peyrat 9c252a2bbc Correct out of bounds errors and add missing arguments to range call 2021-01-08 06:54:01 +01:00
Charles Peyrat c959a9d865 Update tests because Map.neighbourhood became a static method 2021-01-08 05:42:12 +01:00
Charles Peyrat 8475e5228e Large neighbourhood shouldn't return the central cell 2021-01-08 05:41:16 +01:00
Charles Peyrat 20cbf546f9 Correct formulas for random enumeration of a grid 2021-01-08 05:21:31 +01:00
Charles Peyrat 49e261557c Fix typos 2021-01-08 05:14:46 +01:00
Charles Peyrat abbad0f352 Fix formulas in place_room and room_fits 2021-01-08 05:14:32 +01:00
Charles Peyrat 05ccd0e339 Circular rooms should not try to generate any holes if their radius isn't large enough 2021-01-08 04:51:20 +01:00
Charles Peyrat c6f66d95f2 Fix typos 2021-01-08 04:48:32 +01:00
Charles Peyrat 6fbc757f1e Implement method place_walls 2021-01-08 04:43:10 +01:00
Charles Peyrat ffa7641b21 Made Map.neighbourhood a static method 2021-01-08 04:36:57 +01:00
Charles Peyrat 3229eb8ea7 Implement place_room method 2021-01-08 03:45:26 +01:00
Charles Peyrat 42f0c195aa Add prototype for create_random_room; change return value of attach_doors and create_circular_room so we have info on door direction; minor syntax change 2021-01-08 03:43:20 +01:00
Charles Peyrat ddbd0299a0 Implement method room_fits 2021-01-08 03:38:37 +01:00
Charles Peyrat 5cbf15bef5 Return value of Generator.run should be a Map 2021-01-08 03:37:10 +01:00
Charles Peyrat bb3422f7d8 Add main generation loop 2021-01-08 03:19:59 +01:00
Yohann D'ANELLO affc1bae59
Fix merge 2021-01-08 02:15:13 +01:00
ynerant 451dd9cba7 Merge branch 'master' into 'equipment'
# Conflicts:
#   squirrelbattle/display/statsdisplay.py
#   squirrelbattle/entities/items.py
#   squirrelbattle/entities/player.py
#   squirrelbattle/interfaces.py
#   squirrelbattle/locale/de/LC_MESSAGES/squirrelbattle.po
#   squirrelbattle/locale/es/LC_MESSAGES/squirrelbattle.po
#   squirrelbattle/locale/fr/LC_MESSAGES/squirrelbattle.po
#   squirrelbattle/tests/game_test.py
2021-01-08 02:11:40 +01:00
Yohann D'ANELLO 7aeb659cf5
Fix french translation 2021-01-08 02:00:22 +01:00
Yohann D'ANELLO 6c6a44fb18
More tests 2021-01-08 01:56:54 +01:00
Yohann D'ANELLO 478a655751
Fix fg/bg custom colors 2021-01-07 16:49:40 +01:00
ynerant 4acf6804d4 Merge branch 'master' into 'lighting'
# Conflicts:
#   squirrelbattle/display/mapdisplay.py
#   squirrelbattle/interfaces.py
2021-01-07 16:36:54 +01:00
Yohann D'ANELLO c36e68d6e4
Reduce player vision 2021-01-07 16:34:12 +01:00
Yohann D'ANELLO e9c8f43e7e
Use ternary conditions to add coverage 2021-01-07 16:31:39 +01:00
Charles Peyrat 5579f5d791 Room now can now generate with a corridor; implemenent door placement finding 2021-01-07 07:06:08 +01:00
Charles Peyrat 9fb366aaab Make name follow style convention 2021-01-07 05:02:49 +01:00
Yohann D'ANELLO 1a78ad584c
Move equip functions for items 2021-01-06 18:31:28 +01:00
Yohann D'ANELLO a8c0c197ed
Linting 2021-01-06 18:02:58 +01:00
Eichhornchen 5ef12bef3d Changed the prices of armor 2021-01-06 17:57:23 +01:00
Yohann D'ANELLO 093c105120
The broken test is mysteriously working now 2021-01-06 17:54:43 +01:00
Yohann D'ANELLO ae505166b7
Disable critical hits during tests 2021-01-06 17:39:13 +01:00
ynerant d49c138257 Merge branch 'master' into 'ladders'
# Conflicts:
#   squirrelbattle/game.py
#   squirrelbattle/interfaces.py
#   squirrelbattle/tests/game_test.py
2021-01-06 17:29:26 +01:00
Yohann D'ANELLO 0c2b10b031
Use ternary conditions to gain coverage 2021-01-06 17:21:17 +01:00
Yohann D'ANELLO 887a190f11
Less complexity on the handle key function 2021-01-06 17:00:43 +01:00
Yohann D'ANELLO 41548504de
Test ladders 2021-01-06 16:09:53 +01:00
Yohann D'ANELLO a48e6325fe
Add log message when the player switches floor 2021-01-06 15:55:44 +01:00
Eichhornchen 15ef6af998 Put the texturepack in alphabetical order again. 2021-01-06 15:49:54 +01:00
Yohann D'ANELLO 4cd4bc9005
Display the current floor in the StatsDisplay 2021-01-06 15:17:02 +01:00
Yohann D'ANELLO d06a405120
Use a key to use ladders 2021-01-06 14:55:16 +01:00
Eichhornchen 2dc178d67c Merge branch 'equipment' into doc 2021-01-06 14:49:09 +01:00
Eichhornchen 77d501c389 Merge branch 'master' into doc 2021-01-06 14:39:23 +01:00
eichhornchen 4ad7d6c37c Added rings that can augment the player's statistics. Also added a new statistic : xp_buff, which helps the player level up sooner. 2021-01-06 11:44:52 +01:00
eichhornchen a9aeb9ca3a Repaired the use functionnality of the main item, as well as the load system for Armor items. 2021-01-06 11:13:17 +01:00
eichhornchen f3fe04e13a The player now has two hands and a slot for a helmet and a chestplate. Accordingly, new classes of items have been added. 2021-01-06 10:46:36 +01:00
eichhornchen 601062237d Repairing part of the tests. 2021-01-05 19:50:25 +01:00
eichhornchen 424044a5e4 Added an overpowered eagle boss. To avoid seing it too often, entities now have a certain chance of being spawned. Closes #19. 2021-01-05 19:40:11 +01:00
eichhornchen 3ace133037 Critical hit chance is now displayed along with the other stats. 2021-01-05 19:23:25 +01:00
eichhornchen 4bddf076ea Fighting now takes into account the constitution. Closes #51 2021-01-05 19:18:25 +01:00
eichhornchen 9b8dfb00da Added critical hit system: the player and rabbit entities have a chance of making x4 damage! Closes #52 2021-01-05 19:08:29 +01:00
eichhornchen 9cb5c9157f Linting 2021-01-05 10:59:17 +01:00
eichhornchen bb77dab628 Fixed a error induced by the merge: creditsdisplay did not have an update function 2021-01-05 10:49:04 +01:00
eichhornchen 7f63ab2357 Merge branch 'master' into 'familiars'
# Conflicts:
#   squirrelbattle/display/display_manager.py
#   squirrelbattle/display/logsdisplay.py
#   squirrelbattle/display/mapdisplay.py
#   squirrelbattle/display/menudisplay.py
#   squirrelbattle/menus.py
2021-01-05 10:27:39 +01:00
eichhornchen 6341f39fb0 Linting 2021-01-05 10:20:55 +01:00
eichhornchen c378eead74 Fixed the game loading tests : removed trumpets from the test. 2021-01-05 10:11:55 +01:00
eichhornchen f821fef430 added tests 2021-01-05 09:38:49 +01:00
eichhornchen c329150aac Linting again 2020-12-31 17:15:24 +01:00
eichhornchen 73952a42f3 Added tests for familiars 2020-12-31 15:43:38 +01:00
eichhornchen 8e0b8d4fee Added a test for lines 106-107 of game.py 2020-12-31 15:16:40 +01:00
eichhornchen 7cd4721daa linting 2020-12-31 15:00:20 +01:00
eichhornchen de3aba396d Re-changed familiar's inheritance from friendlyEntity to FightingEntity (just a leftover from debug) 2020-12-31 14:51:17 +01:00
Yohann D'ANELLO 663fc0eecd
Better teleport 2020-12-26 21:13:17 +01:00
Yohann D'ANELLO 6b7f8867fa
Tile colors can be overwritten 2020-12-26 14:02:35 +01:00
Yohann D'ANELLO 9a56b4d7e9
Navigate through different maps while climbing ladders 2020-12-26 01:08:43 +01:00
Yohann D'ANELLO 8636d571b5
Add ladders in the map 2020-12-26 00:52:47 +01:00
Yohann D'ANELLO ad5ae22e5f
Manage multiple maps in one game 2020-12-26 00:45:17 +01:00
eichhornchen 505e0a4efb Fixes issue #54, repaired the attribution of the familiars' target 2020-12-21 14:23:58 +01:00
Yohann D'ANELLO 8afa082708 Add Python 3.6 and 3.10 support, fixes #53 2020-12-20 18:02:39 +01:00
Yohann D'ANELLO ed6457e94d Test credits menu 2020-12-18 23:39:56 +01:00
Yohann D'ANELLO 4b174f26e4 Better colors 2020-12-18 23:36:08 +01:00
Yohann D'ANELLO 411744bf10 Add credits menu, see #42 2020-12-18 22:24:41 +01:00
eichhornchen ea5f5c1428 Added an original text art to serve as the project's logo. 2020-12-18 21:30:16 +01:00
Nicolas Margulies 762bed888a Working visibility (at least relatively good), but a few lines untested 2020-12-18 21:21:00 +01:00
Charles Peyrat f5e5e365d4 Starting the implementation of the new map generator 2020-12-18 20:02:37 +01:00
Yohann D'ANELLO c01307202a Add shields to be more protected, see #48 2020-12-18 20:01:52 +01:00
Yohann D'ANELLO b876dab156 Register Trumpet as savable entity 2020-12-18 18:13:39 +01:00
Charles Peyrat ba3d979f9c Fix syntax error 2020-12-18 18:10:52 +01:00
Yohann D'ANELLO 9aa684fb77 Use directly equipped items outside the inventory 2020-12-18 17:57:42 +01:00
Yohann D'ANELLO 9475725228 Save equipped item and armor 2020-12-18 17:50:26 +01:00
Yohann D'ANELLO 0394c5d15d Linting 2020-12-18 17:46:38 +01:00
Yohann D'ANELLO e1918ab066 tick function takes the player as argument 2020-12-18 17:40:52 +01:00
Yohann D'ANELLO 1b4612afd0 Swords add strength 2020-12-18 17:39:11 +01:00
Yohann D'ANELLO fe769c4488 We can equip items 2020-12-18 17:30:03 +01:00
eichhornchen dadafc84eb Added a familiar class that follows the player around and hits monsters when it sees one. Added a trumpet, an instance of familiar. Closes #46. 2020-12-18 17:29:59 +01:00
Charles Peyrat 5fbb918132 Add walls even to map borders 2020-12-18 17:05:50 +01:00
Nicolas Margulies 86628fdea6 Working visibility and displaying it, still need to hide things that aren't visible 2020-12-18 17:04:45 +01:00
Yohann D'ANELLO 77f52b6276 Screen is refreshed only when pads are all refreshed, fixes #50 2020-12-18 16:40:52 +01:00
Yohann D'ANELLO 5ae49e71ff Display the amount of hazels in the store menu, closes #49 2020-12-18 15:36:25 +01:00
eichhornchen 8ecbf13eae Being able to calculate paths is now a property of fighting entities. 2020-12-18 15:31:23 +01:00
Yohann D'ANELLO 46ce7c33bf Merchant menu is updated through its update function, and does not access globally to the Game instance 2020-12-18 15:15:47 +01:00
Yohann D'ANELLO 85870494a0 More generic display update 2020-12-18 15:07:09 +01:00
Yohann D'ANELLO b8d32b29c8 Test selling items 2020-12-18 02:17:06 +01:00
Yohann D'ANELLO c55a7451e7 Display more precisely where we are in the store menu 2020-12-18 01:50:11 +01:00
Yohann D'ANELLO 9a556ba669 We can now buy items to merchants, closes #47 2020-12-18 01:05:50 +01:00
Yohann D'ANELLO a5890a341d Display inventory menu next to the merchant menu 2020-12-17 23:46:20 +01:00
Nicolas Margulies 62ce2b5c71 Merge remote-tracking branch 'origin/master' into lighting 2020-12-17 21:24:32 +01:00
Yohann D'ANELLO a3e059a97b Some required code mysteriously disappeared 2020-12-15 17:37:23 +01:00
eichhornchen 646e0063be Fixed grammar, unified the docstring's format and added documentation to some classes that did not have any. Closes #32. 2020-12-13 21:29:25 +01:00
Yohann D'ANELLO 599f75b676 Erase pad before resizing, fixes #45 2020-12-12 21:19:55 +01:00
Yohann D'ANELLO 7971a1f70e Add waiting key, fixes #16 2020-12-12 18:12:37 +01:00
Yohann D'ANELLO 288a6ac2c9 Some translations were missing concerning sunflowers, fixes #44 2020-12-12 17:39:12 +01:00
Yohann D'ANELLO 73e1fac89a Add title to boxes to have pretty boxes, fixes #28 2020-12-12 17:15:08 +01:00
Yohann D'ANELLO 8608ce346f Add a small bomb exploding animation, fixes #31 2020-12-12 16:50:01 +01:00
Yohann D'ANELLO 04ae56e451 Higher abstraction level on addmsg, fixes #43 2020-12-12 13:46:45 +01:00
Yohann D'ANELLO 48318a91fe Give more hazels to the player when testing the interaction with merchants 2020-12-11 21:19:25 +01:00
Yohann D'ANELLO 777668848e Clicking on the main image changes its color 2020-12-11 21:17:21 +01:00
Yohann D'ANELLO fb926f8c84 Always use predefined map in game unit tests 2020-12-11 19:27:57 +01:00
Nicolas Margulies 1cf5e7bd8b First implementation of visibility, not tested, nor used for now 2020-12-11 19:23:21 +01:00
Yohann D'ANELLO 209bde5b5c Fix sunflowers and merchants since the position of the player is no longer fixed 2020-12-11 19:21:02 +01:00
Yohann D'ANELLO 895abe88ad Ensure that the neighboorhood is walkable in movement tests 2020-12-11 19:18:48 +01:00
Charles Peyrat 3d7667573e Add testing for the no_lone_walls option 2020-12-11 19:14:28 +01:00
Charles Peyrat fe9dfdf242 Syntax change in randomwalk.Generator.__init__ 2020-12-11 19:13:15 +01:00
Charles Peyrat deb52d7350 Adding a missing parenthesis 2020-12-11 19:05:26 +01:00
Yohann D'ANELLO e91deccb6f Merge branch 'master' into map_generation
# Conflicts:
#	squirrelbattle/interfaces.py
2020-12-11 19:02:45 +01:00
Charles Peyrat 18ca083ba2 Added a connexity test 2020-12-11 18:59:07 +01:00
Yohann D'ANELLO a4a10e340d Test clicking on the merchant pad 2020-12-11 18:44:05 +01:00
ynerant 53d090a9c8 Merge branch 'master' into 'mouse_interaction'
# Conflicts:
#   squirrelbattle/display/display_manager.py
#   squirrelbattle/display/menudisplay.py
#   squirrelbattle/entities/items.py
2020-12-11 18:38:13 +01:00
Yohann D'ANELLO f453b82a58 Test clicking on the screen 2020-12-11 18:33:47 +01:00
Charles Peyrat 7667079aa3 Changed Map.large_neighbourhood so we can also request only immediate neighbours, ignoring diagonals 2020-12-11 18:33:16 +01:00
eichhornchen 9d3e8a9822 Merge branch 'village' into 'master'
Village

Closes #41, #38, #37, #36, and #18

See merge request ynerant/squirrel-battle!44
2020-12-11 18:23:10 +01:00
Yohann D'ANELLO d9912cacad Listen to mouse clicks in the main loop 2020-12-11 18:17:59 +01:00
Yohann D'ANELLO 45f420aaef Linting 2020-12-11 18:17:08 +01:00
eichhornchen e7f24c2371 The store menu now displays the price of objects, fixes #41 2020-12-11 18:08:10 +01:00
Yohann D'ANELLO 1afa397fec Better interaction with inventory menu 2020-12-11 18:07:39 +01:00
Charles Peyrat d3c14a48ee Add docstring for Map.large_neighbourhood 2020-12-11 17:46:49 +01:00
Yohann D'ANELLO 089a247b2f Maybe mouse clicks may use the game 2020-12-11 17:43:46 +01:00
Yohann D'ANELLO d50f6701f4 Open a menu with the mouse 2020-12-11 17:40:56 +01:00
Yohann D'ANELLO 99352bc1d5 Test buying an item when we don't have enough of money 2020-12-11 17:28:16 +01:00
Yohann D'ANELLO 7179346e2b Add a InventoryHolder superclass for player and merchants 2020-12-11 17:20:50 +01:00