Customization of gamedata files

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • tangar
    Veteran
    • Mar 2015
    • 1004

    Customization of gamedata files

    Update:

    Topic was renamed to "Gamedata customization" to continue with this matters, so there wouldn't be need to create a lot of new topics with similar discussion.

    Please post there all kind of questions and suggestions about gamedata customization (Angband configuration engine).

    ================================


    Dear Angband devs,

    First I wanna say HUGE thanks for such awesome 'gamedata' customization system. It give enormous possibilities for non-coders (yet) to adjust gamedesign for 'variants' (and not only!) THANK YOU!

    I speak on behalf of PWMAngband custom server. Recently we customized Magic Mapping and reduced it radius - http://angband.online/vigor-mushrooms-and-magic-mapping.

    I wonder, is it possible also to add 'dice' parameter for stuff with effect:LIGHT_LEVEL:

    1) activation.txt

    CLAIRVOYANCE
    ENLIGHTENMENT

    2) object.txt

    Enlightenment !
    *Enlightenment* ! (LIGHT_LEVEL)

    3) class.txt

    3x Clairvoyance


    Thanks
    Last edited by tangar; January 18, 2019, 19:00. Reason: changing title
    https://tangaria.com - Angband multiplayer variant
    tangaria.com/variants - Angband variants table
    tangar.info - my website ⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽
    youtube.com/GameGlaz — streams in English ⍽ youtube.com/StreamGuild — streams in Russian
  • tangar
    Veteran
    • Mar 2015
    • 1004

    #2
    Some details to explain why is it important: as at our server we got special Magic Mapping rules (reduced dices), having Clairvoyance limited by certain distance would help to give players yet another tier of this mapping magic. Traditional 'Clairvoyance' which maps whole lvl takes out this possibility for customization.
    https://tangaria.com - Angband multiplayer variant
    tangaria.com/variants - Angband variants table
    tangar.info - my website ⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽
    youtube.com/GameGlaz — streams in English ⍽ youtube.com/StreamGuild — streams in Russian

    Comment

    • Nick
      Vanilla maintainer
      • Apr 2007
      • 9647

      #3
      Sure, I'll look into doing that - probably not immediately
      One for the Dark Lord on his dark throne
      In the Land of Mordor where the Shadows lie.

      Comment

      • tangar
        Veteran
        • Mar 2015
        • 1004

        #4
        Yay! Great =D Thank you!
        https://tangaria.com - Angband multiplayer variant
        tangaria.com/variants - Angband variants table
        tangar.info - my website ⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽
        youtube.com/GameGlaz — streams in English ⍽ youtube.com/StreamGuild — streams in Russian

        Comment

        • Nick
          Vanilla maintainer
          • Apr 2007
          • 9647

          #5
          Originally posted by tangar
          First I wanna say HUGE thanks for such awesome 'gamedata' customization system. It give enormous possibilities for non-coders (yet) to adjust gamedesign for 'variants' (and not only!) THANK YOU!
          Thanks for that. It's been a drive for a long time to get more info out to the data files, and I think now we've got to the point where you really can make meaningful changes by editing them.
          One for the Dark Lord on his dark throne
          In the Land of Mordor where the Shadows lie.

          Comment

          • tangar
            Veteran
            • Mar 2015
            • 1004

            #6
            Originally posted by Nick
            Thanks for that. It's been a drive for a long time to get more info out to the data files, and I think now we've got to the point where you really can make meaningful changes by editing them.
            Yeah! Angband really feels like not only a game, but also a powerful 'gamedesign engine' %D Great stuff!
            https://tangaria.com - Angband multiplayer variant
            tangaria.com/variants - Angband variants table
            tangar.info - my website ⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽
            youtube.com/GameGlaz — streams in English ⍽ youtube.com/StreamGuild — streams in Russian

            Comment

            • tangar
              Veteran
              • Mar 2015
              • 1004

              #7
              Re: Gamedata customization

              *tried to raname topic to 'Gamedata customization' to continue this subject; but topic still got old name.. nvm*

              Another important flag for customization lay in store.txt

              I've noted this suggestion in PWMA development topic and PowerWyrm kindly agreed that he would look into it. As this functional could also be interesting to have in Angband, I want to post this idea here too, maybe we could discuss it and unravel some more interesting flags? Also maybe joint efforts could be combined to achieve this important customization mechanism.

              Currently in store.txt there are two main flags which indicate how often item would appear in the shop:
              # normal: type name : item name - for the normal stocking list
              # always: type name : item name - for things to always stock
              The topic: is it possible in future to add more different flags for stores?

              Now there is 'always' flag (spawn 40 stack of 40 items) and 'normal' (ocassionaly spawn 1-10 times). It would be fun to have something like this:

              - always (spawn 10-20 items) // currently having always 40 items sounds quite anti-RPG style, moar rng!
              - normal (5-10 items)
              - rare (1-5 items)
              - unique (1 item)
              - never (to forbid certain item in Black Market)

              Also right now it's not possible to have any special flags at BM, except 'always'. It would be fun to have possibility to customize it

              Also maybe (if it's not too hard to implement) there could be two different types of flags for stores: quantity flags (determine how much items would appear in pile) and rarity (how often certain item type would appear). It would give possbility to create really precise store customization
              https://tangaria.com - Angband multiplayer variant
              tangaria.com/variants - Angband variants table
              tangar.info - my website ⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽
              youtube.com/GameGlaz — streams in English ⍽ youtube.com/StreamGuild — streams in Russian

              Comment

              • tangar
                Veteran
                • Mar 2015
                • 1004

                #8
                yet another /rfe, this time to constants.txt

                add there constant to increase items price; so it would be possible not to reassign cost of all items in objects manually one by one, but add to assign x2 price for all object at once in constants
                https://tangaria.com - Angband multiplayer variant
                tangaria.com/variants - Angband variants table
                tangar.info - my website ⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽
                youtube.com/GameGlaz — streams in English ⍽ youtube.com/StreamGuild — streams in Russian

                Comment

                • tangar
                  Veteran
                  • Mar 2015
                  • 1004

                  #9
                  Add 'equip:' flag for p_race.txt , the same way as it works in class.txt

                  It would give possiblity to cusmomize races, eg dwarf could start a game with a pick; elf with elvish way bread... =D
                  https://tangaria.com - Angband multiplayer variant
                  tangaria.com/variants - Angband variants table
                  tangar.info - my website ⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽
                  youtube.com/GameGlaz — streams in English ⍽ youtube.com/StreamGuild — streams in Russian

                  Comment

                  • wobbly
                    Prophet
                    • May 2012
                    • 2633

                    #10
                    Originally posted by tangar
                    Now there is 'always' flag (spawn 40 stack of 40 items) and 'normal' (ocassionaly spawn 1-10 times). It would be fun to have something like this:

                    - always (spawn 10-20 items) // currently having always 40 items sounds quite anti-RPG style, moar rng!
                    - normal (5-10 items)
                    - rare (1-5 items)
                    - unique (1 item)
                    - never (to forbid certain item in Black Market)
                    So in monster.txt there is:

                    # drop: item type : item name : percent drop chance : min : max
                    # drop-base: item type : percent drop chance : min : max
                    # friends: chance: number: name
                    # friends-base: chance: number: name

                    with number being in xdy format

                    more consistent would be:

                    # drop: item type : item name : percent drop chance : number
                    # drop-base: item type : percent drop chance : number
                    # friends: name: chance: number
                    # friends-base: name: chance: number

                    & consistent for stores would be:

                    item: chance: number

                    Comment

                    • tangar
                      Veteran
                      • Mar 2015
                      • 1004

                      #11
                      wobbly, cool idea!

                      ===

                      constants.txt got:
                      # Amount of gold (or value of equipment) the player starts with
                      player:start-gold:600

                      handy feature, but I've started to modify equipment for different classes; eg added 'Old Lanter' item for Archer (2 light rad; non-refi), spade, random amount of WoR scrolls etc.. and sometimes new chars appears almost without gold; at the same time some other have too much of it. As I plan to recustomize cost for a lot of items, it brings problems to assigning it. So I would prefer to use adjustment of gold for each class separately (so all chars would get certain 'random' amount of newbie items; and also some gold)

                      /rfe
                      class.txt
                      add gold (AU) value, eg
                      equip:gold::200:300
                      https://tangaria.com - Angband multiplayer variant
                      tangaria.com/variants - Angband variants table
                      tangar.info - my website ⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽
                      youtube.com/GameGlaz — streams in English ⍽ youtube.com/StreamGuild — streams in Russian

                      Comment

                      • tangar
                        Veteran
                        • Mar 2015
                        • 1004

                        #12
                        this flags /rfes is much harder to implement I suppose, but I still wanna propose it:

                        1) add moar RNG to initial equipment to class.txt
                        Syntax could be something like 'equip[n]'.. Eg warrior could start with:

                        equip1:swordagger:1:1
                        equip1:sword:Whip:1:1
                        equip1:sword:Mace:1:1
                        equip1:sword:Spear:1:1
                        equip2:gloves:Set~ of Leather Gloves:1:1
                        equip2:gloves:Set~ of Gauntlets:1:1
                        equip2:cloak:Cloak:1:1
                        equip2:cloak:Fur Cloak:1:1

                        So with setup above our warriour have chance to get random weapon on start and also gloves or cloak.. Sound interesting.

                        or even more fun with magic stuff, eg 'mage' class could start with different magic rings (as we play with no_sell option, it's fine):
                        equip4:ring:Flames:1:1
                        equip4:ring:Acid:1:1
                        equip4:ring:Ice:1:1
                        equip4:ring:Lightning:1:1

                        2) even more fun would be if it would be possible to add unidentified items at start. Then our character could start eg with useful unidentified potion(s) (donno about syntax, maybe X?)..

                        equip1otion:Berserk Strength:1:1:X
                        equip1otion:Cure Light Wounds:1:1:X
                        equip1otion:Cure Serious Wounds:1:1:X
                        equip1otion:Neutralize Poison:1:1:X
                        equip1otion:Restore Life Levels:1:1:X
                        equip1otion:Slime Mold Juice:1:1:X
                        equip1otion:Sleep:1:1:X // to make life more exiting from time to time

                        Also ring's above could be more interesting in unidentified too!

                        This feature could look small and not important at first glance, but it would make every new adventure more unique; would add some 'flavour' to the game
                        Last edited by tangar; January 23, 2019, 12:15.
                        https://tangaria.com - Angband multiplayer variant
                        tangaria.com/variants - Angband variants table
                        tangar.info - my website ⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽
                        youtube.com/GameGlaz — streams in English ⍽ youtube.com/StreamGuild — streams in Russian

                        Comment

                        • tangar
                          Veteran
                          • Mar 2015
                          • 1004

                          #13
                          1) Great news! PowerWyrm is going to add (or even already added it to PWMA, new version is comming soon!) two more custom values to constant.txt:
                          - chance of object becoming good (default = 33% + depth)
                          - chance of object becoming great (30%)

                          Which should help balancing drops even more.
                          2) I'll also would /rfe to constant.txt:
                          - add constant for randarts/true-arts drop %.
                          I enjoy V-balance (great for PWMA 1-char mode), but imho randarts should be more rare; like a rare mutation of true arts. So it would be fun to experiment with this values!
                          https://tangaria.com - Angband multiplayer variant
                          tangaria.com/variants - Angband variants table
                          tangar.info - my website ⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽
                          youtube.com/GameGlaz — streams in English ⍽ youtube.com/StreamGuild — streams in Russian

                          Comment

                          • tangar
                            Veteran
                            • Mar 2015
                            • 1004

                            #14
                            Today this silly newbie (I am) tried to customized the hunger state from traps.. To create my own trap.

                            # hunger

                            name:trap:hunger trap
                            graphics:^:light yellow
                            appear:1:10:0
                            visibility:d50
                            flags:TRAP | FLOOR | MAGICAL | ONETIME
                            effect:SET_NOURISH
                            dice:$B
                            expr:B:FOOD_FAINT:- 1
                            desc:A trap that makes you very hungry.
                            msg:You feel yourself very hungry!
                            But. I wanna make trap less severe. I've looked with my wide blank eye @ source code and found some staff

                            player-common.h
                            #define PY_FOOD_MAX 17000 /* Food value (Bloated) */
                            #define PY_FOOD_FULL 10000 /* Food value (Normal) */
                            #define PY_FOOD_ALERT 2000 /* Food value (Hungry) */
                            #define PY_FOOD_WEAK 1000 /* Food value (Weak) */
                            #define PY_FOOD_FAINT 500 /* Food value (Fainting) */
                            #define PY_FOOD_STARVE 100 /* Food value (Starving) */
                            player-timed.c
                            if (v < PY_FOOD_FAINT) new_aux = 0;
                            else if (v < PY_FOOD_WEAK) new_aux = 1;
                            else if (v < PY_FOOD_ALERT) new_aux = 2;
                            else if (v < PY_FOOD_FULL) new_aux = 3;
                            else new_aux = 4;
                            Then I've started experimentation with trap effect..

                            effect:SET_NOURISH
                            dice:$B
                            expr:B:FOOD_FAINT:- 1

                            I've tried loads of different effects like:
                            expr:B:FOOD_WEAK:- 1
                            expr:B:FOOD_ALERT:- 1
                            ...
                            even to exotic ones (good example when you do something which you have no clue):
                            expr:B:FOOD_FAINT:+ 1

                            ..

                            Then I recognized that this could be a boolean

                            Damm. Then I've tried to use:

                            effect:NOURISH

                            with '-' value.. like:
                            effect:NOURISH
                            dice:-4000

                            it didn't work.

                            /rfe
                            Would be fun to have some customization on hunger state
                            . At the same time maybe someone could advice me certain trick, maybe it's possible to do it in current version?

                            Thanks!
                            Last edited by tangar; January 29, 2019, 10:50.
                            https://tangaria.com - Angband multiplayer variant
                            tangaria.com/variants - Angband variants table
                            tangar.info - my website ⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽
                            youtube.com/GameGlaz — streams in English ⍽ youtube.com/StreamGuild — streams in Russian

                            Comment

                            • takkaria
                              Veteran
                              • Apr 2007
                              • 1951

                              #15
                              You can just use the number with SET_NOURISH, e.g.

                              Code:
                              effect:SET_NOURISH
                              dice:1999
                              is 1 hunger step into 'Hungry'.
                              takkaria whispers something about options. -more-

                              Comment

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