NarSil 1.3.0

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Nick
    Vanilla maintainer
    • Apr 2007
    • 9591

    NarSil 1.3.0

    This is the first release of NarSil, and is available for Windows, MacOS and as source from the release page.

    About twelve years ago I started talking about making a game set in First Age Beleriand. This I made some progress, then had a long hiatus when I took over maintaining Angband, then came back and made some more progress. Then about 18 months ago I decided that the game mechanics I was after were similar to those in Sil, which led to a decision to do a rewrite of Sil 1.3.0 based on modern Angband code.

    NarSil 1.3.0 is the first tangible outcome of this process. It has taken about three times as long as I thought it would. I have had great assistance in programming, testing and bugfixes from many people, most notably backwardsEric, Bill Peterson, MITZE, davidk64, emar (for the name!) and Gwarl (for hosting on angband.live); also early encouragement and advice from Quirk and half. Also, of course, this is built on the Angband codebase that has been worked on by a large number of people over the last 30+ years.

    NarSil attempts to be an almost-faithful recreation of Sil 1.3.0. Future plans for it are
    • Fix the bugs that inevitably remain
    • Refine the code a bit further, and add missing features (tiles, for example)
    - and then we'll see. In the first instance, I'm intending to start work on a third attempt at Beleriand fairly soon, which will certainly result in more fixes to NarSil. It's also entirely possible that I will decide to make changes so that NarSil becomes more my own game rather than a copy of Sil, but I need to be able to understand and play Sil better first
    One for the Dark Lord on his dark throne
    In the Land of Mordor where the Shadows lie.
  • Infinitum
    Swordsman
    • Oct 2013
    • 315

    #2
    Good job! Trying out the Windows release and uh, noticed that the visibility windows aren't labeled yet. I'll post some more feedback once I've died some.

    EDIT: Windows 11, scandinavian keyboard layout, using numpad for movement.

    *Ctrl-movement key used to bash doors iirc?
    *u'sing items on the floor no longer automatically equips them.
    *The highlighting of constructible items in the smithing menu is wonky. Everything but the first term is grayed out in the ring menu until you browse to the second term for instance. And "Accept" and "Numbers" remain grayed out even for eligible items. I can still create eligible items fine though.
    *u'sing equipment in the inventory no longer equips them.
    *Could be a fluke, but I'm seeing a lot of forges. 4 by 200' thus far including the guaranteed one.
    *Making a ring of sustenance drains strength?
    *Missing the "You realize the adjective item is an item of foo" messages.
    *Grouped monsters no longer refuse to follow player into chokepoints.
    *w'ielding stuff off the floor has the player specify which stack, even if there's only one type of item.
    *Red serpent breathes fire, doesn't kill me, kills green serpent. Game crashes to desktop.
    *Visibility window placement isn't (always) saved on crashing the program. Exiting normally it works fine.
    *Use-id'ing staffs tells you the amount of charges remaining.
    *Staffs of Sanctity don't use-id.
    *Staffs of Sanctity don't work at all.
    *Herbs of Rage occasionally don't trigger Berserk? Used one that changed my satiation to fed, might be connected to that.

    *Reasonably sure the damage numbers flashing over the player shows the value before armor is subtracted.
    *When firing a bow, the closest monster isn't automatically targeted and pressing "f" again doesn't fire at the selected target. "t" works after targeting, but that's 4 button presses to do 1 button's job.
    *Starting a character without specifying a name doesn't assign a random name. Not wrong, just weird. Incidentally, "*" is an awkward button to use for a lot of reasons. Original Sil used Tab for random names among other things which felt more natural imo.
    *Having difficulty reaching the options menu ingame. Going to term options and pressing Esc works, but is fiddly. Incidentally, term options seems superfluous for the player to be able to change. Just name the different windows accordingly?
    *For whatever reason, the game insists on inscribing arrows with {=g}.
    *The game no longer combines torches, at least not automatically.
    *Died to a web in a city minor vault summoning a Shadow Spider (native depth 650') at 400'. Don't remember that happening in the original; should be a bloated spider at that depth.

    *Searching feels off. With 3 total Perception I can't find secret doors on the second level. Used to be a matter of walking up to the door or waiting a few turns.
    *Orc archer AI feels off. They no longer pursue you to different rooms for one. Feels easier to corner as well, can't put my finger on it.
    *CTD when surrounded by 4 orc soldiers. No statuses or anything.
    *Staff of Summoning use-Id's even when you don't spot enemies coming through the stairs.
    *Staff of slumber doesn't use-Id even when you spot monsters falling asleep.
    *Seconding Bill P in that flasks of oil are unusable, even when dropping them and attempting to use them from the ground.

    *Potions of slow poison use-Id's even when you're not poisoned.
    *Not a bug, but consider disallowing grayish herbs to spawn. They're hard to make out from the floor.
    *Got a situation where orc soldiers and Gorgol didn't want to approach me with both of us inside a corridor when I was standing in the entryway to the next room (the orcs stayed put at a 1-tile distance). I think it's the group AI wanting to surround me, but in vanilla once a monster had entered an enclosed space it was committed.
    *Wights conjuring darkness throws a non-damaging projectile, don't remember that from vanilla.
    *Frightened Easterling taking the downstairs on 400' caused ctd. Grave wight in the same room. I had Opportunist and stood adjacent.

    *Not getting weapon glow adjacent to orcs when wielding a longsword of Gondolin, either equipped or in the inventory. They do glow on the ground though. Don't think I've seen the inventory glow with other egos either. Damage, morale and dungeon light effects seem to work fine.
    *Another ctd due to a Green Serpent breathing. No other monsters in the room, closed door behind me. When reopening the program I had to replace the term-4 and term-6 visibility windows.
    *And another ctd after killing the same green serpent. Didn't breath this time. Second monster killed on restart, the first being another green s. Still nuking visibility windows 4/6. Killed it fine on second restart with the same windows open and in the same order, not sure what triggers the crash.
    *And crashing a third time after killing a third green s later on the same level. Probably related to that monster in particular? Not getting crashes from other colored serpents or flittering-AI C's. Not sure if I was poisoned when killing it or not.
    *Got it a few more times. Possibly related to opportunist; managed to pass the level by shutting that off. Not sure why only green s killed by opportunist attacks would crash the game though.
    *Not getting a warning that pits cannot be disarmed when trying to ctrl-move into a pit.
    *Another instance of not triggering rage. Ate it whilst hungry. No message. Didn't change satiety level. Legacy code that one cannot berserk hungry? Max amount of statuses in effect at once?
    *Not getting any message at all when u'sing potions unless there's an effect message. Haven't tried quaffing.
    *Whispering Shadows don't show up in the monster memory since there's no worm category. Could go under W'ights etc, lore is they're remnants of defeated Maiar from ages past. Also their lore blurb looks like a draft; "(...) sounds (voices?)(...)" could be replaced by just "voices" and flow better imo.
    *Kite shield of Hador isn't red. A lot of artefacts have unique colors in vanilla. Not really a bug, still.
    *In a similar vein, vanilla displays jewelry+0 with <+0>. Not an issue, kinda looks better without it.
    *Another easterling fleeing the level with me adjacent with opportunist crashing the game.

    *Some buggy menuing trying to gain the bane ability. Texts not formatted properly, cannot choose a category and the game allows the player to choose bane without specifying a category whilst trying to esc out.
    *Attempting to wield a dagger of accompaniment in the offhand (without native TWF) causes CTD.
    *Using the up stairs at 50' causes the guaranteed forge to spawn at that depth (and not at 100').
    *Cannot smith an Amulet of the Blessed Realm <+0>
    *Chasms are difficult to make out from solid block walls. Not a bug, still.
    *Drank a potion of strength without getting stronger. Ditto constitution. It did auto-id. Was blind at the time. Might've been hungry.
    *Used non-Id'd staffs don't display how many times they've been attempted, Id'd staffs seem to display their charges remaining at all times.
    *Potions of quickness also unreliable. I think there's something off with consumables, full stop.
    Last edited by Infinitum; September 10, 2023, 21:56.

    Comment

    • backwardsEric
      Knight
      • Aug 2019
      • 500

      #3
      Originally posted by Infinitum
      *Ctrl-movement key used to bash doors iirc?
      Thanks for the bug reports. For issues with key input, besides which front end is involved (Windows in this case), it is also useful to report:
      1. which keyset (the default Sil one or the one closer to Angband's) is used
      2. is the hjkl movement option on
      3. what's the keyboard layout (the front ends from Angband have had occasional issues with non-English layouts)
      4. if movement keys are involved (as here), are you using the cursor keys, keypad, numbers on the regular keypadkeyboard, or the hjkl etc. keys if that option is enabled
      Last edited by backwardsEric; September 6, 2023, 22:09. Reason: regular keypad->regular keyboard

      Comment

      • Bill Peterson
        Adept
        • Jul 2007
        • 190

        #4
        I haven't been paying attention for awhile, so was anxious to see the progress. It looks really good, particularly the interface, configures without a lot of fiddling. It seems easier than original 1.3, I'm finding a lot of gear early. I spent the EXP to do smithing, then found the same items on the floor shortly after. My recollection of Sil was that you might have to take weaponsmith or armorsmith if you haven't found anything decent by the time you get to the first forge. I don't believe I've ever seen that situation in Narsil, either during development or with the release.

        I did find one bug that hasn't been mentioned. I had a lantern and a flask of oil. The 'u' menu didn't show the oil at all. I thought maybe I was supposed to use the lamp, tried that and got the right message, "you fuel your lamp", but the lamp was drained. I guess I used it to fuel some phantom lamp.

        I'm going to have to take back my first comment, I played a few quick (died early) games of Sil 1.3 and found an acceptable amount of gear in the first 250 ft. Similar to what I see in Narsil. Blame my memory.
        Last edited by Bill Peterson; September 6, 2023, 22:28.

        Comment

        • backwardsEric
          Knight
          • Aug 2019
          • 500

          #5
          With regards to staffs of sanctity, they work for me:
          1. Marked as {tried} if there's nothing worn that the unidentified staff can affect.
          2. With a worn cursed item (either fully identified or not), identifies the staff and uncurses the item.


          It'd be helpful if there were more details about when a staff of sanctity did not work.

          Comment

          • Infinitum
            Swordsman
            • Oct 2013
            • 315

            #6
            Couldn't uncurse or remove an equipped amulet of constitution -1. Used an understanding charge to Id the staff, subsequently emptied it u'sing it. Didn't try a'ctivating it iirc. Curse breaker did work eventually.

            Comment

            • backwardsEric
              Knight
              • Aug 2019
              • 500

              #7
              Infinitum, for control + keypad direction, what does the keypress log show for you? In other words:

              1) Launch NarSil.
              2) Start the tutorial.
              3) Press control-a followed by L and then confirm allowing the debugging the commands.
              4) Press control + a keypad direction.
              5) Press control-a followed by L to see what it reports for the third keypress from the top.
              6) If NumLock was on, turn it off; if NumLock was off, turn it on.
              7) Press control + a keypad direction.
              8) Press control-a followed by L to see what it reports for the third keypress from the top.

              The results from 5 and 8 and whether NumLock was on or off for each are the needed bits of information to make sure that the changes to the default keymaps cover your case. The default keymaps are missing maps for ^1, ^2, ^3, ^4, ^6, ^7, ^8, and ^9 (i.e. control + number on regular keyboard) which may be enough to cause the trouble you are seeing.

              Comment

              • Infinitum
                Swordsman
                • Oct 2013
                • 315

                #8
                Pressing Lctrl + 6
                Without NumLock: ^[Right] (code=130 mods=1)

                Strike the air and attempt to excavate walls with no issue when not targeting doors, but pick/open doors when adjacent.

                I don't think the game registers ctrl-numpad press at all with numlock engaged. Can't see the corresponding keypress in the debug menu when I iterate the instructions, and the player character doesn't move or strike the air.

                Can use the numpad to move about with or without numlock when not holding Lctrl for what it's worth.
                Last edited by Infinitum; September 6, 2023, 17:55.

                Comment

                • backwardsEric
                  Knight
                  • Aug 2019
                  • 500

                  #9
                  Originally posted by Infinitum
                  *Having difficulty reaching the options menu ingame. Going to term options and pressing Esc works, but is fiddly. Incidentally, term options seems superfluous for the player to be able to change. Just name the different windows accordingly?
                  Pressing 'O' if you are using the Sil keyset or '=' if you are using the Angband keyset does not work to get the options menu? The menu entry in the Windows front end to set subwindow options is inherited from Angband - as you noted it could be removed for NarSil (as could the similar purpose menu entry in the SDL2 front end).

                  Comment

                  • Infinitum
                    Swordsman
                    • Oct 2013
                    • 315

                    #10
                    Well, yes. That works. Thanks. Point stands tho; not being able to reach game options through the options drop-down menu or Esc in lieu of a dedicated two keypress shortcut is.. not really conforming to modern ui standards. Suppose the pause menu is a pain to code and left for last?

                    Comment

                    • Nick
                      Vanilla maintainer
                      • Apr 2007
                      • 9591

                      #11
                      Thanks for all the detailed bug reports, they're really helpful. I'll try to sum up the state of play in the latest development version (top entry on the release page).

                      These have been fixed (by backwardsEric):
                      • Bill's fuelling bug
                      • Staff of slumber doesn't use-Id even when you spot monsters falling asleep.
                      • Infinitum's cursed amulet of CON bug
                      • Staff of Summoning use-Id's even when you don't spot enemies coming through the stairs (also its description is improved).
                      • A potential crash in restarting after death
                      • Making a ring of sustenance drains strength?
                      • The highlighting of constructible items in the smithing menu is wonky. Everything but the first term is grayed out in the ring menu until you browse to the second term for instance. And "Accept" and "Numbers" remain grayed out even for eligible items. (At least partly fixed)
                      • u'sing items on the floor no longer automatically equips them.
                      • Died to a web in a city minor vault summoning a Shadow Spider (native depth 650') at 400'. Don't remember that happening in the original; should be a bloated spider at that depth. (Bad monster depth calculation)


                      The other issues from Infinitum fit roughly three categories:
                      • Interface issues, some of which are just fixes needed, and some of which are different ways of doing things inherited from Angband - whether these should be changed is a case-by-case question, I think;
                      • Monster AI issues, which are hard to pin down exactly or sometimes even describe precisely, and also hard to attribute an exact cause to (Sil monster AI is really quite complex and sophisticated);
                      • Bugs that just need to be fixed.


                      Again thanks for all the reports, and particular thanks to Eric (as always) for doing so much excellent work. I've been sick (nothing serious, but enough to switch my brain off) since the release of 1.3.0, I'm now trying to catch up.
                      One for the Dark Lord on his dark throne
                      In the Land of Mordor where the Shadows lie.

                      Comment

                      • backwardsEric
                        Knight
                        • Aug 2019
                        • 500

                        #12
                        Originally posted by Infinitum
                        Pressing Lctrl + 6
                        Without NumLock: ^[Right] (code=130 mods=1)

                        Strike the air and attempt to excavate walls with no issue when not targeting doors, but pick/open doors when adjacent.

                        I don't think the game registers ctrl-numpad press at all with numlock engaged. Can't see the corresponding keypress in the debug menu when I iterate the instructions, and the player character doesn't move or strike the air.

                        Can use the numpad to move about with or without numlock when not holding Lctrl for what it's worth.
                        So I'm clear about the original bug report (control + numeric keypad movement does not alter the grid in that direction), were you playing with numlock engaged in that case? Is playing with numlock engaged what you would normally want to do?

                        If something does not make it into the keypress log, it's being intercepted by the frontend or a layer above the frontend (something in Windows event handling in this case). If Control + numeric keypad movement with numlock engaged works with Sil on Windows, the difference will be in the implementation of the Windows front end.

                        (Edit: now I see I misunderstood the original bug report. You were reporting that alter/interact meant bash for a closed door in Sil 1.3, which it does according to cmd2.c:2776-2781. NarSil is treating alter as open for a closed door. I thought the report was about the alter keymaps not working at all. Given that attempting to move into a door tries to open it, having alter/interact mean bash seems reasonable.)
                        Last edited by backwardsEric; September 8, 2023, 03:53. Reason: include stuff about my misunderstanding

                        Comment

                        • Bill Peterson
                          Adept
                          • Jul 2007
                          • 190

                          #13
                          Getting crashes with the latest release - 16. Just beating on orcs and it locks up, have to use ctrl-alt-del to kill it. Windows 11

                          Comment

                          • Nick
                            Vanilla maintainer
                            • Apr 2007
                            • 9591

                            #14
                            Originally posted by Infinitum
                            Good job! Trying out the Windows release and uh, noticed that the visibility windows aren't labeled yet. I'll post some more feedback once I've died some.
                            This is absolutely A-grade bug reporting, thank you. I'm making an attempt to keep track of what's done and what isn't - if you could start reporting in new posts now, and keep updating to the latest release so as to see if things are fixed, that would be ideal.

                            I'm also going to try and have all outstanding issues here, but that's not done yet.

                            One question:
                            Originally posted by Infinitum
                            Using the up stairs at 50' causes the guaranteed forge to spawn at that depth (and not at 100').
                            For some reason I thought this was Sil behaviour. It isn't?

                            Done:
                            • Making a ring of sustenance drains strength?
                            • The highlighting of constructible items in the smithing menu is wonky. Everything but the first term is grayed out in the ring menu until you browse to the second term for instance. And "Accept" and "Numbers" remain grayed out even for eligible items. I can still create eligible items fine though.
                            • u'sing equipment in the inventory no longer equips them.
                            • u'sing items on the floor no longer automatically equips them.
                            • Died to a web in a city minor vault summoning a Shadow Spider (native depth 650') at 400'. Don't remember that happening in the original; should be a bloated spider at that depth.
                            • Seconding Bill P in that flasks of oil are unusable, even when dropping them and attempting to use them from the ground.
                            • Searching feels off. With 3 total Perception I can't find secret doors on the second level. Used to be a matter of walking up to the door or waiting a few turns.
                            • Ctrl-movement key used to bash doors iirc?
                            • Staff of Summoning use-Id's even when you don't spot enemies coming through the stairs.
                            • Red serpent breathes fire, doesn't kill me, kills green serpent. Game crashes to desktop.


                            Similar enough to done things that they're maybe done:
                            • Staff of slumber doesn't use-Id even when you spot monsters falling asleep.
                            • Potions of slow poison use-Id's even when you're not poisoned.


                            Crashes:
                            • CTD when surrounded by 4 orc soldiers. No statuses or anything.
                            • Frightened Easterling taking the downstairs on 400' caused ctd. Grave wight in the same room. I had Opportunist and stood adjacent.
                            • Another ctd due to a Green Serpent breathing. No other monsters in the room, closed door behind me. When reopening the program I had to replace the term-4 and term-6 visibility windows.
                            • And another ctd after killing the same green serpent. Didn't breath this time. Second monster killed on restart, the first being another green s. Still nuking visibility windows 4/6. Killed it fine on second restart with the same windows open and in the same order, not sure what triggers the crash.
                            • And crashing a third time after killing a third green s later on the same level. Probably related to that monster in particular? Not getting crashes from other colored serpents or flittering-AI C's. Not sure if I was poisoned when killing it or not.
                            • Got it a few more times. Possibly related to opportunist; managed to pass the level by shutting that off. Not sure why only green s killed by opportunist attacks would crash the game though.
                            • Another easterling fleeing the level with me adjacent with opportunist crashing the game.
                            • Attempting to wield a dagger of accompaniment in the offhand (without native TWF) causes CTD.


                            Interface issues:
                            • w'ielding stuff off the floor has the player specify which stack, even if there's only one type of item.
                            • Missing the "You realize the adjective item is an item of foo" messages.
                            • Visibility window placement isn't (always) saved on crashing the program. Exiting normally it works fine.
                            • Reasonably sure the damage numbers flashing over the player shows the value before armor is subtracted.
                            • When firing a bow, the closest monster isn't automatically targeted and pressing "f" again doesn't fire at the selected target. "t" works after targeting, but that's 4 button presses to do 1 button's job.
                            • Starting a character without specifying a name doesn't assign a random name. Not wrong, just weird. Incidentally, "*" is an awkward button to use for a lot of reasons. Original Sil used Tab for random names among other things which felt more natural imo.
                            • Having difficulty reaching the options menu ingame. Going to term options and pressing Esc works, but is fiddly. Incidentally, term options seems superfluous for the player to be able to change. Just name the different windows accordingly?
                            • For whatever reason, the game insists on inscribing arrows with {=g}.
                            • Not a bug, but consider disallowing grayish herbs to spawn. They're hard to make out from the floor.
                            • Not getting weapon glow adjacent to orcs when wielding a longsword of Gondolin, either equipped or in the inventory. They do glow on the ground though. Don't think I've seen the inventory glow with other egos either. Damage, morale and dungeon light effects seem to work fine.
                            • Not getting a warning that pits cannot be disarmed when trying to ctrl-move into a pit.
                            • Not getting any message at all when u'sing potions unless there's an effect message. Haven't tried quaffing.
                            • Whispering Shadows don't show up in the monster memory since there's no worm category. Could go under W'ights etc, lore is they're remnants of defeated Maiar from ages past. Also their lore blurb looks like a draft; "(...) sounds (voices?)(...)" could be replaced by just "voices" and flow better imo.
                            • Kite shield of Hador isn't red. A lot of artefacts have unique colors in vanilla. Not really a bug, still.
                            • In a similar vein, vanilla displays jewelry+0 with <+0>. Not an issue, kinda looks better without it.
                            • Some buggy menuing trying to gain the bane ability. Texts not formatted properly, cannot choose a category and the game allows the player to choose bane without specifying a category whilst trying to esc out.
                            • Chasms are difficult to make out from solid block walls. Not a bug, still.


                            ID and other object issues:
                            • Use-id'ing staffs tells you the amount of charges remaining.
                            • Staffs of Sanctity don't use-id.
                            • Staffs of Sanctity don't work at all.
                            • Herbs of Rage occasionally don't trigger Berserk? Used one that changed my satiation to fed, might be connected to that.
                            • The game no longer combines torches, at least not automatically.
                            • Another instance of not triggering rage. Ate it whilst hungry. No message. Didn't change satiety level. Legacy code that one cannot berserk hungry? Max amount of statuses in effect at once?
                            • Cannot smith an Amulet of the Blessed Realm <+0>
                            • Drank a potion of strength without getting stronger. Ditto constitution. It did auto-id. Was blind at the time. Might've been hungry.
                            • Used non-Id'd staffs don't display how many times they've been attempted, Id'd staffs seem to display their charges remaining at all times.
                            • Potions of quickness also unreliable. I think there's something off with consumables, full stop.


                            Possible AI and other "hard to tell if it's a real bug" bugs:
                            • Could be a fluke, but I'm seeing a lot of forges. 4 by 200' thus far including the guaranteed one.
                            • Grouped monsters no longer refuse to follow player into chokepoints.
                            • Orc archer AI feels off. They no longer pursue you to different rooms for one. Feels easier to corner as well, can't put my finger on it.
                            • Got a situation where orc soldiers and Gorgol didn't want to approach me with both of us inside a corridor when I was standing in the entryway to the next room (the orcs stayed put at a 1-tile distance). I think it's the group AI wanting to surround me, but in vanilla once a monster had entered an enclosed space it was committed.
                            • Wights conjuring darkness throws a non-damaging projectile, don't remember that from vanilla.
                            One for the Dark Lord on his dark throne
                            In the Land of Mordor where the Shadows lie.

                            Comment

                            • backwardsEric
                              Knight
                              • Aug 2019
                              • 500

                              #15
                              Originally posted by Nick
                              Similar enough to done things that they're maybe done:
                              • Staff of slumber doesn't use-Id even when you spot monsters falling asleep.
                              • Potions of slow poison use-Id's even when you're not poisoned.
                              The issue with the staff of slumber should be fixed with https://github.com/NickMcConnell/NarSil/pull/333 . No post 1.3.0 changes that I know of should have affect how slow poison is handled.

                              Originally posted by Nick
                              [*]Not getting weapon glow adjacent to orcs when wielding a longsword of Gondolin, either equipped or in the inventory. They do glow on the ground though. Don't think I've seen the inventory glow with other egos either. Damage, morale and dungeon light effects seem to work fine.
                              From what I see using the shortsword of Gondolin in the tutorial is that Sil 1.3 on macOS looks much like NarSil: the sword is always shown in white text in the equipment and inventory either in the subwindows or in the results of the 'i' or 'e' commands.

                              Originally posted by Nick
                              [*]Staffs of Sanctity don't use-id.[*]Staffs of Sanctity don't work at all.
                              That was with a cursed amulet of constitution and should be fixed by https://github.com/NickMcConnell/NarSil/pull/334 as cursed jewellery now gets marked with {cursed}.

                              Comment

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