diff --git a/TODO.txt b/TODO.txt index 7e1642a..113861f 100644 --- a/TODO.txt +++ b/TODO.txt @@ -40,6 +40,31 @@ general: level ideas: +- outline: + 1. City, player sees the big Macrochip building (a smaller one) in the + distance and has to get to its entrance. Beginning of the level is linear + and serves as a tutorial, things like exploding barrels or acess cards are + explained. + 2. Inside Macrochip smaller building. End leads to an elevator that goes + under the ground. + 3. Warehouse: + 4. Factory: + 5. Small boss level: + 6. City, player is on the other side of the smaller Macrochip building, the + level partially overlaps with level 1, but the player can now go further. + Big Macrochip HQ (skyscraper) is seen in the distance, player has to get + to its entrance. + 7. Inside skyscraper, 1st floor. + 8. Inside skyscraper, higher floor. + 9. + 10. Final boss level: on top of the skyscraper, player climbs up in a spiral + towards the roof. There is a boss (or two) on the top with a few smaller + ones, the exit is blocked by a lot of trapped warriors which the player + has to slowly kill, which means he has to first get rid of the other + monsters. + +- boss level: skyscraper top, player goes upwards in a spiral along the OUTSIDE + side of the skyscraper - two levels could partially overlap, e.g. level one, a city, could overlap with a later city level, the player could recognize he's e.g. on the other side of a channel or a wall that he was before diff --git a/assets/img2map.py b/assets/img2map.py index 6699a8a..f451a9b 100644 --- a/assets/img2map.py +++ b/assets/img2map.py @@ -67,8 +67,8 @@ def loadTileDict(x,y): for i in range(64): texture = getPixel(x + i,y + 31) - if texture > 6: - raise(Exception("Texture index can't be higher than 6.")) + if texture > 7: + raise(Exception("Texture index can't be higher than 7.")) height = 0 diff --git a/assets/levelX.gif b/assets/levelX.gif index 66bb4b3..f0fdc60 100644 Binary files a/assets/levelX.gif and b/assets/levelX.gif differ diff --git a/constants.h b/constants.h index 7ee68b6..3535f04 100644 --- a/constants.h +++ b/constants.h @@ -100,6 +100,11 @@ */ #define SFG_EXPLOSION_RADIUS 2048 +/** + Distance in RCL_Units which the player is pushed away by an explosion. +*/ +#define SFG_EXPLOSION_PUSH_AWAY_DISTANCE 1200 + /** How much damage triggers a barrel explosion. */ diff --git a/main.c b/main.c index 5af910f..fdab1f8 100755 --- a/main.c +++ b/main.c @@ -1659,7 +1659,7 @@ void SFG_createExplosion(RCL_Unit x, RCL_Unit y, RCL_Unit z) uint8_t damage = SFG_getDamageValue(SFG_WEAPON_FIRE_TYPE_FIREBALL); - if (SFG_pushPlayerAway(x,y,SFG_EXPLOSION_RADIUS)) + if (SFG_pushPlayerAway(x,y,SFG_EXPLOSION_PUSH_AWAY_DISTANCE)) SFG_playerChangeHealth(-1 * damage); for (uint16_t i = 0; i < SFG_currentLevel.monsterRecordCount; ++i)