Doors of Doom

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • GrimBob
    Rookie
    • Aug 2011
    • 10

    Doors of Doom

    Let's face it, doors are costly in your average dungeon. Those delvers go around bashing them down, then you have to find a kobold smith for new hinges and as for the wood... when was the last time you saw TREES in your underground dwelling?

    The solution?
    Doors of Doom!

    teach those door bashers a lesson by having a door fill the area with toxic fumes or blinding burning magnesium when broken!

    what this means : I'm working on a patch to randomly (with increasing probability as you go deeper) set off trap like effects when doors are bashed and broken...

    What do you think of this idea?
    you see a scroll entitled "Owatta foo Liam"
  • buzzkill
    Prophet
    • May 2008
    • 2939

    #2
    In Angband, door bash you.

    But really, who bashes doors these days except for monsters. You would have to make picking locks a lot harder first.
    www.mediafire.com/buzzkill - Get your 32x32 tiles here. UT32 now compatible Ironband and Quickband 9/6/2012.
    My banding life on Buzzkill's ladder.

    Comment

    • GrimBob
      Rookie
      • Aug 2011
      • 10

      #3
      Originally posted by buzzkill
      In Angband, door bash you.

      But really, who bashes doors these days except for monsters. You would have to make picking locks a lot harder first.
      Clumsy warriors, fair point though I'll consider this as I work on it. If bashing doors is to be hazardous there should be motivation to bash them... yes. Perhaps picking difficulty should increase as one goes deeper, I shall muse on this

      +1 for the "In Angband..." joke.
      Last edited by GrimBob; September 3, 2011, 03:37.
      you see a scroll entitled "Owatta foo Liam"

      Comment

      • Derakon
        Prophet
        • Dec 2009
        • 9022

        #4
        Make doors too dangerous and I'll just dig around them in the depths...digging wreaks havoc with a lot of "I'm going to introduce a clever terrain gimmick to make the game harder" concepts, really.

        Comment

        • buzzkill
          Prophet
          • May 2008
          • 2939

          #5
          Tunneling directly adjacent to a door way could introduce structural problems, often indicated by the presence of an earthquake, or cascade of earthquakes. Tunneling around them in a more round-about way would take longer and/or be more resource intensive.
          www.mediafire.com/buzzkill - Get your 32x32 tiles here. UT32 now compatible Ironband and Quickband 9/6/2012.
          My banding life on Buzzkill's ladder.

          Comment

          • Max Stats
            Swordsman
            • Jun 2010
            • 324

            #6
            Originally posted by Derakon
            Make doors too dangerous and I'll just dig around them in the depths...digging wreaks havoc with a lot of "I'm going to introduce a clever terrain gimmick to make the game harder" concepts, really.
            These trapped doors could be the entrance to a permarock-enclosed vault. Then you are forced to open them, and you also are given motivation to do so.
            If beauty is in the eye of the beholder, then why are beholders so freaking ugly?

            Comment

            • GrimBob
              Rookie
              • Aug 2011
              • 10

              #7
              Example

              all very good points. I'm hesitant about the vault as that would involve adding a new door type, and frankly that's to many changes for me to keep track of.

              here is a snippet of what I had in mind:
              //Door trap example GB
              //pulled from Angband 3.3.0
              //cmd2.c

              /*
              * Perform the basic "bash" command
              *
              * Assume there is no monster blocking the destination
              *
              * Returns TRUE if repeated commands may continue
              */
              static bool do_cmd_bash_aux(int y, int x)
              {
              int bash, temp;

              bool more = FALSE;


              /* Verify legality */
              if (!do_cmd_bash_test(y, x)) return (FALSE);


              /* Message */
              msg("You smash into the door!");

              /* Hack -- Bash power based on strength */
              /* (Ranges from 3 to 20 to 100 to 200) */
              bash = adj_str_blow[p_ptr->state.stat_ind[A_STR]];

              /* Extract door power */
              temp = ((cave->feat[y][x] - FEAT_DOOR_HEAD) & 0x07);

              /* Compare bash power to door power */
              temp = (bash - (temp * 10));

              /* Hack -- always have a chance */
              if (temp < 1) temp = 1;

              /* Hack -- attempt to bash down the door */
              if (randint0(100) < temp)
              {
              /* Break down the door */
              if (randint0(100) < 50)
              {
              cave_set_feat(cave, y, x, FEAT_BROKEN);
              //GB-Ok here we insert the posibility that the door was trapped
              //just for this example I'll keep it simple, one trap type: 'poison dust'
              //Later other trapped doors can be added here, just by changing the message
              //and effect call
              if(randint0(100) < (p_ptr->depth))
              {
              //GB-The odds of this happening increase as the player goes deeper, maxing
              //out at about 50%
              msgt(MSG_OPENDOOR, "The door was hollow! White choking powder fills the air!");
              (void)player_inc_timed(p_ptr, TMD_POISONED, 10 + randint1(20), TRUE, TRUE);
              }

              }

              /* Open the door */
              else
              {
              cave_set_feat(cave, y, x, FEAT_OPEN);
              }

              msgt(MSG_OPENDOOR, "The door crashes open!");

              /* Update the visuals */
              p_ptr->update |= (PU_UPDATE_VIEW | PU_MONSTERS);
              }

              /* Saving throw against stun */
              else if (randint0(100) < adj_dex_safe[p_ptr->state.stat_ind[A_DEX]] +
              p_ptr->lev) {
              msg("The door holds firm.");

              /* Allow repeated bashing */
              more = TRUE;
              }

              /* Low dexterity has bad consequences */
              else {
              msg("You are off-balance.");

              /* Lose balance ala stun */
              (void)player_inc_timed(p_ptr, TMD_STUN, 2 + randint0(2), TRUE, FALSE);
              }

              /* Result */
              return more;
              }
              you see a scroll entitled "Owatta foo Liam"

              Comment

              • GrimBob
                Rookie
                • Aug 2011
                • 10

                #8
                further example

                tossed in a switch to show how other door trap types could be done
                /* Hack -- attempt to bash down the door */
                if (randint0(100) < temp)
                {
                /* Break down the door */
                if (randint0(100) < 50)
                {
                cave_set_feat(cave, y, x, FEAT_BROKEN);

                /*GB-Ok here we insert the posibility that the door was trapped*/

                if(randint0(100) < (p_ptr->depth))
                {
                /*GB-The odds of this happening increase as the player goes deeper, maxing
                out at about 50%
                Here I've expanded the traps with a switch*/
                switch randint0(3) //or however many trap types you have
                {
                case 0:
                /*Poison dust*/
                msgt(MSG_OPENDOOR, "The door was hollow! White choking powder fills the air!");
                (void)player_inc_timed(p_ptr, TMD_POISONED, 10 + randint1(20), TRUE, TRUE);
                break;
                case 1:
                /*Blinding flash*/
                msgt(MSG_OPENDOOR, "What a cruel trick, as the wood splinters magnesium ignites in a blinding flash!");
                (void)player_inc_timed(p_ptr, TMD_BLIND, 10 + randint1(20), TRUE, TRUE);
                break;
                case 2:
                /*Confusing gas*/
                msgt(MSG_OPENDOOR, "You hear a glass vial break, ooo pretty colors!");
                (void)player_inc_timed(p_ptr, TMD_CONFUSED, 10 + randint1(20), TRUE, TRUE);
                break;
                }
                }

                }

                /* Open the door */
                else
                {
                cave_set_feat(cave, y, x, FEAT_OPEN);
                }

                msgt(MSG_OPENDOOR, "The door crashes open!");

                /* Update the visuals */
                p_ptr->update |= (PU_UPDATE_VIEW | PU_MONSTERS);
                }
                you see a scroll entitled "Owatta foo Liam"

                Comment

                • d_m
                  Angband Devteam member
                  • Aug 2008
                  • 1517

                  #9
                  Hey GrimBob,

                  I'm not totally sure about this feature, but if you want people to try it out a good way to get started is to sign up on github.com, fork angband/angband, and push your change there. That way people can just pull your change and try it out without having to figure out exactly how to modify the code.

                  At this point almost all contributions come to Angband through github (and the rest are pretty much all patches). It works really well for us.
                  linux->xterm->screen->pmacs

                  Comment

                  • GrimBob
                    Rookie
                    • Aug 2011
                    • 10

                    #10
                    just want to say, I am loving GIT....

                    erm .. no fast food company's taglines were harmed in the making of this post
                    you see a scroll entitled "Owatta foo Liam"

                    Comment

                    • GrimBob
                      Rookie
                      • Aug 2011
                      • 10

                      #11
                      This is now living at git@github.com:GrimBob/angband.git Enjoy and let me know how it goes.
                      you see a scroll entitled "Owatta foo Liam"

                      Comment

                      Working...
                      😀
                      😂
                      🥰
                      😘
                      🤢
                      😎
                      😞
                      😡
                      👍
                      👎