bjaraujo / Bombermaaan

Bombermaaan is inspired on the classic Bomberman game.
GNU General Public License v3.0
107 stars 13 forks source link

Feature suggestion: Decide which power up to use in game #14

Closed amedeux closed 7 years ago

amedeux commented 7 years ago

Hi, I apologize for writing in here, I wasn't sure how to get in touch. Thanks for working on Bomberman!!!! I believe a great feature would be the possibility to decide which power ups should be included or excluded from a battle. This way one could play just with all power ups or just some (say no remote controlled bombs). May be even the number of available power ups could be set (say just 1 remote and 4 players to contend it) This could generate new game modes and add to the fun!!! Anyway, I'm just throwing my two cents in, I'm not a programmer. All the best and thanks for the amazing work!

bjaraujo commented 7 years ago

Hi,

First of all, thank you for your suggestion. All suggestions are welcome.

The power-ups can be configured in the level files. If you look in the Bombermaaan level folder usually like in C:\Program Files (x86)\Bombermaaan\Levels, you can see the level files. In the level file, for example, L12.txt you have the following:

; Bombermaaan level file version=2
[General]
Width = 15
Height = 13
MaxPlayers = 5
MinPlayers = 1
Creator = 
Priority = 0
Comment = 
Description = 

[Map]
Line.00 = ***************
Line.01 =*B F S F S F T*
Line.02 =* *I*-* *-*Z* *
Line.03 = *F - - - - - F*
Line.04 = * *-*1*-*3*-* *
Line.05 = *K --      --P*
Line.06 = * * * *5* * * *
Line.07 = *P --      --K*
Line.08 = * *-*4*-*2*-* *
Line.09 = *F - - - - - F*
Line.10 =* *Z*-* *-*I* *
Line.11 =*T F S F S F B*
Line.12 = ***************

[Settings]
ItemsInWalls.Bombs = 0
ItemsInWalls.Flames = 0
ItemsInWalls.Kicks = 0
ItemsInWalls.Rollers = 0
ItemsInWalls.Skulls = 0
ItemsInWalls.Throws = 0
ItemsInWalls.Punches = 0
ItemsInWalls.Remotes = 0
BomberSkillsAtStart.FlameSize = 2
BomberSkillsAtStart.MaxBombs = 1
BomberSkillsAtStart.BombItems = 0
BomberSkillsAtStart.FlameItems = 0
BomberSkillsAtStart.RollerItems = 0
BomberSkillsAtStart.KickItems = 0
BomberSkillsAtStart.ThrowItems = 0
BomberSkillsAtStart.PunchItems = 0
BomberSkillsAtStart.ShieldItems = 1
ContaminationsNotUsed = None

ItemsInWalls are the items that are discovered in the walls, BomberSkillsAtStart are the skills each player has at start and the "Map" section has the items placed on the floor. You can configure those to adjust the level to your preference.

So for no remotes it should be: ItemsInWalls.Remotes = 0 BomberSkillsAtStart.RemoteItems = 0 and the Map section should have no "Z" letters. Note: "R" is right arrow so "Z" is the remote.

Note: you can edit the existing ones or add your own levels.

amedeux commented 7 years ago

Thanks!

I didn't realise the power ups could be edited directlyin level.

I played a bit with the settings and I have a couple more questions regarding what can be achieved through level editing:

-how would one disable the "shield" powerup spawn when players die? -what is the "iteminwalls." item name to disable shield power ups in a level? -what's the function of "ContaminationsNotUsed" and which arguments could one use? -is there a quick way to disable power up respawning on a player's death, so that whichever power up the player had in life would be gone with the player upon defeat, as opposed to spawn again? -is it possible to set a time to the skull contamination (say it goes away after x seconds instead of requiring a swap with another power up)? -is it possible to have players contaminated by a player having the skull power up on without such player loosing the effect? This would go in hand with the timed skull effect.

Thank you very much for your help!

On 01/01/2017 12:47, bjaraujo wrote:

Hi,

First of all, thank you for your suggestion.

The power-ups can be configured in the level files. If you look in the Bombermaaan level folder usually like in C:\Program Files (x86)\Bombermaaan\Levels, you can see the level files. In each level file for example L01.txt you have the following:

|; Bombermaaan level file version=2 [General] Width = 15 Height = 13 MaxPlayers = 5 MinPlayers = 1 Creator = Priority = 0 Comment = Description = [Map] Line.00 = Line.01 =B F S F S F T Line.02 = I- -Z Line.03 = F - - - - - F Line.04 = -1-3- Line.05 = K -- --P Line.06 = 5 Line.07 = P -- --K Line.08 = -4-2- Line.09 = F - - - - - F Line.10 = Z- -I Line.11 =T F S F S F B Line.12 = [Settings] ItemsInWalls.Bombs = 0 ItemsInWalls.Flames = 0 ItemsInWalls.Kicks = 0 ItemsInWalls.Rollers = 0 ItemsInWalls.Skulls = 0 ItemsInWalls.Throws = 0 ItemsInWalls.Punches = 0 ItemsInWalls.Remotes = 0 BomberSkillsAtStart.FlameSize = 2 BomberSkillsAtStart.MaxBombs = 1 BomberSkillsAtStart.BombItems = 0 BomberSkillsAtStart.FlameItems = 0 BomberSkillsAtStart.RollerItems = 0 BomberSkillsAtStart.KickItems = 0 BomberSkillsAtStart.ThrowItems = 0 BomberSkillsAtStart.PunchItems = 0 BomberSkillsAtStart.ShieldItems = 1 ContaminationsNotUsed = None |

ItemsInWalls are the items that are discovered in the walls and BomberSkillsAtStart are the skills each player has at start. You can configure those to adjust the level to your preference.

So for no remotes it should be: ItemsInWalls.Remotes = 0 and the Map section should have no "Z" letters. "R" is right arrow so "Z" is remotes.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/bjaraujo/Bombermaaan/issues/14#issuecomment-269901805, or mute the thread https://github.com/notifications/unsubscribe-auth/AQEILePe-_dimJ4g6EmwBIqf39EYd0Shks5rN6BRgaJpZM4LWnrc.

bjaraujo commented 7 years ago

-how would one disable the "shield" powerup spawn when players die? R: Not possible at the moment, would be easy to add a setting to disable all powerups on death.

-what is the "iteminwalls." item name to disable shield power ups in a level? R: This is in the logic of the code but could be also put in easily as a setting I guess like the others.

-what's the function of "ContaminationsNotUsed" and which arguments could one use? R: I don't think this is used anywhere can remove possibly.

-is there a quick way to disable power up respawning on a player's death, so that whichever power up the player had in life would be gone with the player upon defeat, as opposed to spawn again? R: There isn't at the moment but could add this functionality easily as a setting.

-is it possible to set a time to the skull contamination (say it goes away after x seconds instead of requiring a swap with another power up)? R: Not at the moment. Could add in future.

-is it possible to have players contaminated by a player having the skull power up on without such player loosing the effect? This would go in hand with the timed skull effect. R: It is possible. But one problem with this is that there are several skull effects for ex. if one player had "constipation" sickness and then contaminated all other players nobody would be able to drop bombs during the combined effect.

In conclusion most of these features seem pretty easy to implement since they could become settings. Such as:

In the meantime, I am going to release the level editor.