TripleA Logo TripleA Forum
    • TripleA Website
    • Categories
    • Recent
    • Popular
    • Users
    • Groups
    • Tags
    • Register
    • Login

    Warcraft: War Heroes - Official Thread

    Scheduled Pinned Locked Moved Maps & Mods
    303 Posts 24 Posters 314.2k Views 19 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Captain CrunchC Offline
      Captain Crunch Banned @redrum
      last edited by Captain Crunch

      @redrum hey do these changes effect the WWIIClassic map AI at all?

      redrumR 1 Reply Last reply Reply Quote 0
      • redrumR Offline
        redrum Admin @Captain Crunch
        last edited by

        @Captain-Crunch Technically they impact the AI on all maps but definitely more so on larger maps. Probably won't notice much of a performance difference on ww2 classic as its a pretty small map in comparison to many others but should be a little faster. Its mostly about making some of the AI calculations more 'regional' instead of 'global' so it only runs calcs where it has units to move/place. So that on large maps for example Japan isn't calculating a bunch of unnecessary things over in the European theater.

        TripleA Developer with a Passion for AI: https://forums.triplea-game.org/topic/105/ai-development-discussion-and-feedback

        1 Reply Last reply Reply Quote 2
        • B Online
          beelee
          last edited by

          Sweet ! Always like seeing the AI get improved ! Although i did watch Terminator last night : )

          1 Reply Last reply Reply Quote 1
          • redrumR Offline
            redrum Admin @Frostion
            last edited by

            @Frostion Here's the PR: https://github.com/triplea-game/triplea/pull/4764

            Once that's merged then I'd ask you to download the latest pre-release and test it again to see if it made a significant improvement.

            TripleA Developer with a Passion for AI: https://forums.triplea-game.org/topic/105/ai-development-discussion-and-feedback

            1 Reply Last reply Reply Quote 0
            • C Offline
              Cernel Moderators @redrum
              last edited by

              @redrum said in World of War Heroes – Official Thread:

              @Frostion Ok. The random start delegate actually doesn't use the AI pause duration just had a hard coded 250ms. I've changed that to 10ms so it runs much faster now.

              Are all the developers sure about this change? The main reason the random start delegate was made (by Veqryn) was to make Risk. Now, Risk has never been made, but if you think about a similar sized game (or you can take a look at "Conquest of the World"), 250ms allows you to have a quick glimpse ad who gets what, and you don't need to wait much. Without getting into any more complexity, maybe 100ms would be a reasonable compromise? At 10ms, I would rather suggest to just run it in the background and give the final solution istantly (thus 0ms); I suppose looking at a 10ms would give little else than a headache. Anyways, I don't really care about it myself.

              FrostionF 1 Reply Last reply Reply Quote 0
              • FrostionF Offline
                Frostion Admin @Cernel
                last edited by

                @redrum That last update to the prerelease practically solved the problem! Right now it runs very smooth, just like a small map 🙂 Unfortunately I have to go to work for 3 days now, so no map working for some days 😞
                I felt I had hit a wall in regards to play testing World of War Heroes, but now I really look forward to going back to mapworking 😄

                @Cernel "I suppose looking at a 10ms would give little else than a headache." The screen camera does not follow the territory picking around when AI is picking territories/placing units. In Star Trek I have never seen this either. Maybe because the human players are not involved in the picking?
                I only see the picking on the minimap. But if the engine camera was to follow the picking and placements, maybe a user engine setting could be implemented to set the speed of placements? Or a feature that would automatically turn down the speed of picking territories if humans were also involved in the picking?

                Map maker of: Star Wars: Galactic War + Star Wars: Tatooine War + Caribbean Trade War + Dragon War + Age of Tribes + Star Trek: Dilithium War + Iron War + Iron War: Europe + Warcraft: War Heroes

                redrumR C 2 Replies Last reply Reply Quote 3
                • redrumR Offline
                  redrum Admin @Frostion
                  last edited by

                  @Frostion Glad to hear the performance improvements worked. Seems like you have a pretty solid start on the map. Let me know if there are any other features or improvements that are needed.

                  TripleA Developer with a Passion for AI: https://forums.triplea-game.org/topic/105/ai-development-discussion-and-feedback

                  1 Reply Last reply Reply Quote 1
                  • FrostionF Offline
                    Frostion Admin
                    last edited by

                    @redrum Thx. I think that the plans I have for WoWH at the moment are all doable with the current engine. But who knows, something might come up 🙂

                    Map maker of: Star Wars: Galactic War + Star Wars: Tatooine War + Caribbean Trade War + Dragon War + Age of Tribes + Star Trek: Dilithium War + Iron War + Iron War: Europe + Warcraft: War Heroes

                    1 Reply Last reply Reply Quote 0
                    • C Offline
                      Cernel Moderators @Frostion
                      last edited by

                      @Frostion 10 ms is also beyond what a human eye can properly perceive, as it means 100 frames per second (for example, theatres go at 24 frames per second, and YouTube goes mostly at 30 or 60 frames per second). Moreover, if you have any display with less than 100 frames per second, the process will even fail to be fully displayed.

                      So, I'm not really against running it superfast, but, in this case, as I said, I would suggest to make it actually instant, rather than 10 ms (running all the steps in the background and changing the board view at once when all its done).

                      FrostionF 1 Reply Last reply Reply Quote 0
                      • FrostionF Offline
                        Frostion Admin @Cernel
                        last edited by

                        @Cernel Even though it states 10 ms, it is much slower in reality. Maybe because it is 10 ms + the time used for calculation.

                        Map maker of: Star Wars: Galactic War + Star Wars: Tatooine War + Caribbean Trade War + Dragon War + Age of Tribes + Star Trek: Dilithium War + Iron War + Iron War: Europe + Warcraft: War Heroes

                        redrumR 1 Reply Last reply Reply Quote 0
                        • redrumR Offline
                          redrum Admin @Frostion
                          last edited by redrum

                          @Frostion It appears that it was actually doing 10ms + AI pause duration + calc/display time. I'm going to just remove the 10ms and AI pause duration. It goes a bit faster then though still not instant given the size of the map. I think it would probably be close to instant on a smaller map. I don't think this should cause any issues and I tested it on some local games.

                          PR: https://github.com/triplea-game/triplea/pull/4774

                          TripleA Developer with a Passion for AI: https://forums.triplea-game.org/topic/105/ai-development-discussion-and-feedback

                          1 Reply Last reply Reply Quote 2
                          • HeppsH Offline
                            Hepps Moderators
                            last edited by

                            @Frostion Looks incredible. Fans of this franchise will surely have to play one handed for quite a while. 😃

                            "A joyous heart sours with the burden of expectation"
                            Hepster

                            FrostionF 1 Reply Last reply Reply Quote 1
                            • FrostionF Offline
                              Frostion Admin @Hepps
                              last edited by

                              @redrum Nice. Unfortunately my ISP and router is down at the moment, so I have not been able to download the newest pre-releases for some days now. I am practically off line with my PC and only online with my phone. But that does ofcours not hinder me in continuing the map making progress 😊

                              @Hepps Thank you. Right now I am making a new place.txt for this WoWH map and manually picking every single land placement spot on the 400+ territory map. You probably know the feeling and have experienced your self how tiring it can be, duing monotone map work and struggling to stay awake, since ones mind seems to shut down slowly. I really hate this step of map making, but I think that the end result is worth the effort. ☺ Especially when this map's tiles has road, mountains, small lakes and likewise drawn on the map, it makes sense to not have buildings standing in the middle of roads or in a lake. Also it makes sense to see the harbour building units be located at sea, not inland. The players of a map might not notice if a map uses auto-placements or manually picked spots, but I am sure it contributes subconsciously to the game experience.

                              Map maker of: Star Wars: Galactic War + Star Wars: Tatooine War + Caribbean Trade War + Dragon War + Age of Tribes + Star Trek: Dilithium War + Iron War + Iron War: Europe + Warcraft: War Heroes

                              HeppsH 1 Reply Last reply Reply Quote 3
                              • HeppsH Offline
                                Hepps Moderators @Frostion
                                last edited by

                                @Frostion said in World of War Heroes – Official Thread:

                                @Hepps Thank you. Right now I am making a new place.txt for this WoWH map and manually picking every single land placement spot on the 400+ territory map.
                                You probably know the feeling and have experienced your self how tiring it can be, duing monotone map work and struggling to stay awake, since ones mind seems to shut down slowly. I really hate this step of map making, but I think that the end result is worth the effort. ☺ Especially when this map's tiles has road, mountains, small lakes and likewise drawn on the map, it makes sense to not have buildings standing in the middle of roads or in a lake. Also it makes sense to see the harbour building units be located at sea, not inland.
                                The players of a map might not notice if a map uses auto-placements or manually picked spots, but I am sure it contributes subconsciously to the game experience.

                                I think players will (as you say at least subconsciously) notice how clean and logical the map looks... whether they fully comprehend or appreciate what it takes to achieve such a thing on a map of such a grandiose scale... well only a map maker truly knows and admires such work for what it takes to achieve it.

                                I'll be interested to see how you achieve the harbour building to be at sea... since the units within a given territory can change positions based on what is in them. But then again... if they are the only 0 PU unit... then they should always be the first placement.

                                "A joyous heart sours with the burden of expectation"
                                Hepster

                                redrumR 1 Reply Last reply Reply Quote 0
                                • redrumR Offline
                                  redrum Admin @Hepps
                                  last edited by redrum

                                  @Hepps Well given that the ordering is better defined now after I made some changes a while back, you should be able to ensure the locations of at least certain types of units like infrastructure.

                                  Reference: https://forums.triplea-game.org/topic/681/group-and-sort-units-onto-placements-logically

                                  TripleA Developer with a Passion for AI: https://forums.triplea-game.org/topic/105/ai-development-discussion-and-feedback

                                  1 Reply Last reply Reply Quote 3
                                  • FrostionF Offline
                                    Frostion Admin
                                    last edited by

                                    Work is progressing with World of War Heroes. But there are a few hurdles I can’t seem to crack. They might be beyond my capabilities in regards to XML and triggers. I thought someone might be able and willing to help?

                                    Let me tell about one of the most complicated. It is ironically a very small part of the game, a very insignificant item that the heroes of the map can posses and use.

                                    The heroes of the map can of course, as in all good RPGs, pick up a fishing pole and go fishing. This happens automatically at the end of a player turn if the hero has acquired the map’s one and only fishing pole item. Depending on the luck of the hero, he/she rolls dice and either gets nothing, a fish or perhaps some more valuable stuff.

                                    Technically the map has a capturable “Fishing-Pole-Item” unit that can be captured by a player. When a player captures it, it is removed from map territory and a “Fishing-Pole” unit is placed in the hero backpack territory. When the hero has this fishing pole in the backpack, a trigger should start rolling dice, at the end of that player's turn, to determine if and what the hero gets.

                                    Pole1.png
                                    Pole2.png

                                    Anyone able to help by looking at the game files and XML? I think 90% of the fishing code is good, but I can’t get it to 100%

                                    Map maker of: Star Wars: Galactic War + Star Wars: Tatooine War + Caribbean Trade War + Dragon War + Age of Tribes + Star Trek: Dilithium War + Iron War + Iron War: Europe + Warcraft: War Heroes

                                    C 1 Reply Last reply Reply Quote 1
                                    • C Offline
                                      Cernel Moderators @Frostion
                                      last edited by Cernel

                                      @Frostion Can you just paste here the relevant triggers and conditions only?

                                      1 Reply Last reply Reply Quote 0
                                      • FrostionF Offline
                                        Frostion Admin
                                        last edited by

                                        OK. Here are the triggers/conditions only. They are made for the human Hero "Arthur" only atm.
                                        This is the system I am trying to make:

                                        Basically 50% Failure / 50% Success (1:2) chance of Hero catching a small fish / 1 Food at the end of turn.
                                        If success -->
                                        14.29% (1:7) chance of Hero catching a large fish / 2 Food instead.
                                        If success -->
                                        16.66% (1:6) chance of Hero finding a small treasure / 5 Gold instead.
                                        If success -->
                                        20% (1:5) chance of hero finding a large treasure / 10 Gold instead.
                                        If success -->
                                        25% (1:4) chance of hero finding a mana flask / 10 Mana instead.
                                        If success -->
                                        33.33% (1:3) chance of hero finding an old scripture / 10 XP instead.

                                        The % change is not that important as it can always be changed to something else. The challenge is to make the triggers, conditions and getting them to work. The triggers and conditions I have made semi-works, but it would be OK for someone to come up with a better, less complex or more logical system of triggers.

                                            <attachment name="conditionAttachmentHumansHaveTheFishingPole" attachTo="Humans" javaClass="games.strategy.triplea.attachments.RulesAttachment" type="player">
                                                <option name="directPresenceTerritories" value="Arthur Backpack" count="1"/>
                                                <option name="unitPresence" value="Fishing-Pole" count="1"/>
                                            </attachment>        
                                            <attachment name="conditionAttachmentHumansFish1" attachTo="Humans" javaClass="games.strategy.triplea.attachments.RulesAttachment" type="player">
                                                <option name="switch" value="false"/>
                                            </attachment>       
                                            <attachment name="conditionAttachmentHumansNotFish1" attachTo="Humans" javaClass="games.strategy.triplea.attachments.RulesAttachment" type="player">
                                                <option name="conditions" value="conditionAttachmentHumansFish1"/>
                                                <option name="invert" value="false"/>
                                            </attachment>
                                            <attachment name="conditionAttachmentHumansFish2" attachTo="Humans" javaClass="games.strategy.triplea.attachments.RulesAttachment" type="player">
                                                <option name="switch" value="false"/>
                                            </attachment>       
                                            <attachment name="conditionAttachmentHumansNotFish2" attachTo="Humans" javaClass="games.strategy.triplea.attachments.RulesAttachment" type="player">
                                                <option name="conditions" value="conditionAttachmentHumansFish2"/>
                                                <option name="invert" value="false"/>
                                            </attachment>       
                                            <attachment name="conditionAttachmentHumansFish3" attachTo="Humans" javaClass="games.strategy.triplea.attachments.RulesAttachment" type="player">
                                                <option name="switch" value="false"/>
                                            </attachment>        
                                            <attachment name="conditionAttachmentHumansNotFish3" attachTo="Humans" javaClass="games.strategy.triplea.attachments.RulesAttachment" type="player">
                                                <option name="conditions" value="conditionAttachmentHumansFish3"/>
                                                <option name="invert" value="false"/>
                                            </attachment>        
                                            <attachment name="conditionAttachmentHumansFish4" attachTo="Humans" javaClass="games.strategy.triplea.attachments.RulesAttachment" type="player">
                                                <option name="switch" value="false"/>
                                            </attachment>       
                                            <attachment name="conditionAttachmentHumansNotFish4" attachTo="Humans" javaClass="games.strategy.triplea.attachments.RulesAttachment" type="player">
                                                <option name="conditions" value="conditionAttachmentHumansFish4"/>
                                                <option name="invert" value="false"/>
                                            </attachment>        
                                            <attachment name="conditionAttachmentHumansFish5" attachTo="Humans" javaClass="games.strategy.triplea.attachments.RulesAttachment" type="player">
                                                <option name="switch" value="false"/>
                                            </attachment>        
                                            <attachment name="conditionAttachmentHumansNotFish5" attachTo="Humans" javaClass="games.strategy.triplea.attachments.RulesAttachment" type="player">
                                                <option name="conditions" value="conditionAttachmentHumansFish5"/>
                                                <option name="invert" value="false"/>
                                            </attachment>
                                        
                                        
                                            <attachment name="triggerAttachment_-_Arthur_has_caught_something_while_fishing_5" attachTo="Humans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player">
                                                <option name="players" value="Humans"/>
                                                <option name="playerAttachmentName" value="RulesAttachment" count="conditionAttachmentHumansFish5"/>
                                                <option name="playerProperty" value="switch" count="false"/>
                                                <option name="when" value="after:HumansEndTurn"/>
                                            </attachment>
                                            <attachment name="triggerAttachment_-_Arthur_has_caught_something_while_fishing_4" attachTo="Humans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player">
                                                <option name="players" value="Humans"/>
                                                <option name="playerAttachmentName" value="RulesAttachment" count="conditionAttachmentHumansFish4"/>
                                                <option name="playerProperty" value="switch" count="false"/>
                                                <option name="activateTrigger" value="triggerAttachment_-_Arthur_has_caught_something_while_fishing_5:1:false:false:false:true"/>
                                                <option name="when" value="after:HumansEndTurn"/>
                                                <option name="chance" value="1:3"/>
                                            </attachment>
                                            <attachment name="triggerAttachment_-_Arthur_has_caught_something_while_fishing_3" attachTo="Humans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player">
                                                <option name="players" value="Humans"/>
                                                <option name="playerAttachmentName" value="RulesAttachment" count="conditionAttachmentHumansFish3"/>
                                                <option name="playerProperty" value="switch" count="false"/>
                                                <option name="activateTrigger" value="triggerAttachment_-_Arthur_has_caught_something_while_fishing_4:1:false:false:false:true"/>
                                                <option name="when" value="after:HumansEndTurn"/>
                                                <option name="chance" value="1:4"/>
                                            </attachment>
                                            <attachment name="triggerAttachment_-_Arthur_has_caught_something_while_fishing_2" attachTo="Humans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player">            
                                                <option name="players" value="Humans"/>
                                                <option name="playerAttachmentName" value="RulesAttachment" count="conditionAttachmentHumansFish2"/>
                                                <option name="playerProperty" value="switch" count="false"/>
                                                <option name="activateTrigger" value="triggerAttachment_-_Arthur_has_caught_something_while_fishing_3:1:false:false:false:true"/>
                                                <option name="when" value="after:HumansEndTurn"/>
                                                <option name="chance" value="1:5"/>
                                            </attachment>
                                            <attachment name="triggerAttachment_-_Arthur_has_caught_something_while_fishing_1" attachTo="Humans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player">
                                                <option name="players" value="Humans"/>
                                                <option name="playerAttachmentName" value="RulesAttachment" count="conditionAttachmentHumansFish1"/>
                                                <option name="playerProperty" value="switch" count="true"/>
                                                <option name="activateTrigger" value="triggerAttachment_-_Arthur_has_caught_something_while_fishing_2:1:false:false:false:true"/>
                                                <option name="when" value="after:HumansEndTurn"/>
                                                <option name="chance" value="1:6"/>
                                            </attachment>
                                            <attachment name="triggerAttachment_-_Arthur_has_gone_fishing" attachTo="Humans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player">
                                                <option name="conditions" value="conditionAttachmentHumansHaveTheFishingPole"/>
                                                <option name="players" value="Humans"/>
                                                <option name="activateTrigger" value="triggerAttachment_-_Arthur_has_caught_something_while_fishing_1:1:false:false:false:true"/>
                                                <option name="when" value="before:HumansEndTurn"/>
                                                <option name="chance" value="1:2"/>
                                            </attachment>
                                        
                                        
                                            <attachment name="triggerAttachment_-_Arthur_catches_a_small_fish" attachTo="Humans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player">
                                                <option name="conditions" value="conditionAttachmentHumansFish1:conditionAttachmentHumansNotFish2:conditionAttachmentHumansNotFish3:conditionAttachmentHumansNotFish4:conditionAttachmentHumansNotFish5"/>
                                                <option name="resource" value="Food"/>
                                                <option name="resourceCount" value="1"/>
                                                <option name="notification" value="HumansFishingFood1"/>
                                                <option name="players" value="Humans"/>
                                                <option name="when" value="after:HumansEndTurn"/>
                                            </attachment>
                                            <attachment name="triggerAttachment_-_Arthur_catches_a_large_fish" attachTo="Humans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player">
                                                <option name="conditions" value="conditionAttachmentHumansNotFish1:conditionAttachmentHumansFish2:conditionAttachmentHumansNotFish3:conditionAttachmentHumansNotFish4:conditionAttachmentHumansNotFish5"/>
                                                <option name="resource" value="Food"/>
                                                <option name="resourceCount" value="2"/>
                                                <option name="notification" value="HumansFishingFood2"/>
                                                <option name="players" value="Humans"/>
                                                <option name="when" value="after:HumansEndTurn"/>
                                            </attachment>
                                            <attachment name="triggerAttachment_-_Arthur_finds_a_small_treasure_in_the_water" attachTo="Humans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player">
                                                <option name="conditions" value="conditionAttachmentHumansNotFish1:conditionAttachmentHumansNotFish2:conditionAttachmentHumansFish3:conditionAttachmentHumansNotFish4:conditionAttachmentHumansNotFish5"/>
                                                <option name="resource" value="Gold"/>
                                                <option name="resourceCount" value="5"/>
                                                <option name="notification" value="HumansFishingGold5"/>
                                                <option name="players" value="Humans"/>
                                                <option name="when" value="after:HumansEndTurn"/>
                                            </attachment>
                                            <attachment name="triggerAttachment_-_Arthur_finds_a_large_treasure_in_the_water" attachTo="Humans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player">
                                                <option name="conditions" value="conditionAttachmentHumansNotFish1:conditionAttachmentHumansNotFish2:conditionAttachmentHumansNotFish3:conditionAttachmentHumansFish4:conditionAttachmentHumansNotFish5"/>
                                                <option name="resource" value="Gold"/>
                                                <option name="resourceCount" value="10"/>
                                                <option name="notification" value="HumansFishingGold10"/>
                                                <option name="players" value="Humans"/>
                                                <option name="when" value="after:HumansEndTurn"/>
                                            </attachment>
                                            <attachment name="triggerAttachment_-_Arthur_finds_a_flask_of_mana_in_the_water" attachTo="Humans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player">
                                                <option name="conditions" value="conditionAttachmentHumansNotFish1:conditionAttachmentHumansNotFish2:conditionAttachmentHumansNotFish3:conditionAttachmentHumansNotFish4:conditionAttachmentHumansFish5"/>
                                                <option name="resource" value="Mana"/>
                                                <option name="resourceCount" value="10"/>
                                                <option name="notification" value="HumansFishingMana10"/>
                                                <option name="players" value="Humans"/>
                                                <option name="when" value="after:HumansEndTurn"/>
                                            </attachment>
                                            <attachment name="triggerAttachment_-_Arthur_finds_an_old_scripture_in_the_water" attachTo="Humans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player">
                                                <option name="conditions" value="conditionAttachmentHumansNotFish1:conditionAttachmentHumansNotFish2:conditionAttachmentHumansNotFish3:conditionAttachmentHumansNotFish4:conditionAttachmentHumansNotFish5"/>
                                                <option name="resource" value="XP"/>
                                                <option name="resourceCount" value="10"/>
                                                <option name="notification" value="HumansFishingXP10"/>
                                                <option name="players" value="Humans"/>
                                                <option name="when" value="after:HumansEndTurn"/>
                                            </attachment>
                                        

                                        Map maker of: Star Wars: Galactic War + Star Wars: Tatooine War + Caribbean Trade War + Dragon War + Age of Tribes + Star Trek: Dilithium War + Iron War + Iron War: Europe + Warcraft: War Heroes

                                        redrumR C 2 Replies Last reply Reply Quote 1
                                        • redrumR Offline
                                          redrum Admin @Frostion
                                          last edited by

                                          @Frostion Well the first thing that jumps out at me is shouldn't all those inverts be true instead of false?

                                          TripleA Developer with a Passion for AI: https://forums.triplea-game.org/topic/105/ai-development-discussion-and-feedback

                                          1 Reply Last reply Reply Quote 2
                                          • C Offline
                                            Cernel Moderators @Frostion
                                            last edited by Cernel

                                            @Frostion said in World of War Heroes – Official Thread:

                                            OK. Here are the triggers/conditions only. They are made for the human Hero "Arthur" only atm.
                                            This is the system I am trying to make:

                                            Basically 50% Failure / 50% Success (1:2) chance of Hero catching a small fish / 1 Food at the end of turn.
                                            If success -->
                                            14.29% (1:7) chance of Hero catching a large fish / 2 Food instead.
                                            If success -->
                                            16.66% (1:6) chance of Hero finding a small treasure / 5 Gold instead.
                                            If success -->
                                            20% (1:5) chance of hero finding a large treasure / 10 Gold instead.
                                            If success -->
                                            25% (1:4) chance of hero finding a mana flask / 10 Mana instead.
                                            If success -->
                                            33.33% (1:3) chance of hero finding an old scripture / 10 XP instead.

                                            The % change is not that important as it can always be changed to something else. The challenge is to make the triggers, conditions and getting them to work. The triggers and conditions I have made semi-works, but it would be OK for someone to come up with a better, less complex or more logical system of triggers.

                                                <attachment name="conditionAttachmentHumansHaveTheFishingPole" attachTo="Humans" javaClass="games.strategy.triplea.attachments.RulesAttachment" type="player">
                                                    <option name="directPresenceTerritories" value="Arthur Backpack" count="1"/>
                                                    <option name="unitPresence" value="Fishing-Pole" count="1"/>
                                                </attachment>        
                                                <attachment name="conditionAttachmentHumansFish1" attachTo="Humans" javaClass="games.strategy.triplea.attachments.RulesAttachment" type="player">
                                                    <option name="switch" value="false"/>
                                                </attachment>       
                                                <attachment name="conditionAttachmentHumansNotFish1" attachTo="Humans" javaClass="games.strategy.triplea.attachments.RulesAttachment" type="player">
                                                    <option name="conditions" value="conditionAttachmentHumansFish1"/>
                                                    <option name="invert" value="false"/>
                                                </attachment>
                                                <attachment name="conditionAttachmentHumansFish2" attachTo="Humans" javaClass="games.strategy.triplea.attachments.RulesAttachment" type="player">
                                                    <option name="switch" value="false"/>
                                                </attachment>       
                                                <attachment name="conditionAttachmentHumansNotFish2" attachTo="Humans" javaClass="games.strategy.triplea.attachments.RulesAttachment" type="player">
                                                    <option name="conditions" value="conditionAttachmentHumansFish2"/>
                                                    <option name="invert" value="false"/>
                                                </attachment>       
                                                <attachment name="conditionAttachmentHumansFish3" attachTo="Humans" javaClass="games.strategy.triplea.attachments.RulesAttachment" type="player">
                                                    <option name="switch" value="false"/>
                                                </attachment>        
                                                <attachment name="conditionAttachmentHumansNotFish3" attachTo="Humans" javaClass="games.strategy.triplea.attachments.RulesAttachment" type="player">
                                                    <option name="conditions" value="conditionAttachmentHumansFish3"/>
                                                    <option name="invert" value="false"/>
                                                </attachment>        
                                                <attachment name="conditionAttachmentHumansFish4" attachTo="Humans" javaClass="games.strategy.triplea.attachments.RulesAttachment" type="player">
                                                    <option name="switch" value="false"/>
                                                </attachment>       
                                                <attachment name="conditionAttachmentHumansNotFish4" attachTo="Humans" javaClass="games.strategy.triplea.attachments.RulesAttachment" type="player">
                                                    <option name="conditions" value="conditionAttachmentHumansFish4"/>
                                                    <option name="invert" value="false"/>
                                                </attachment>        
                                                <attachment name="conditionAttachmentHumansFish5" attachTo="Humans" javaClass="games.strategy.triplea.attachments.RulesAttachment" type="player">
                                                    <option name="switch" value="false"/>
                                                </attachment>        
                                                <attachment name="conditionAttachmentHumansNotFish5" attachTo="Humans" javaClass="games.strategy.triplea.attachments.RulesAttachment" type="player">
                                                    <option name="conditions" value="conditionAttachmentHumansFish5"/>
                                                    <option name="invert" value="false"/>
                                                </attachment>
                                            
                                            
                                                <attachment name="triggerAttachment_-_Arthur_has_caught_something_while_fishing_5" attachTo="Humans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player">
                                                    <option name="players" value="Humans"/>
                                                    <option name="playerAttachmentName" value="RulesAttachment" count="conditionAttachmentHumansFish5"/>
                                                    <option name="playerProperty" value="switch" count="false"/>
                                                    <option name="when" value="after:HumansEndTurn"/>
                                                </attachment>
                                                <attachment name="triggerAttachment_-_Arthur_has_caught_something_while_fishing_4" attachTo="Humans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player">
                                                    <option name="players" value="Humans"/>
                                                    <option name="playerAttachmentName" value="RulesAttachment" count="conditionAttachmentHumansFish4"/>
                                                    <option name="playerProperty" value="switch" count="false"/>
                                                    <option name="activateTrigger" value="triggerAttachment_-_Arthur_has_caught_something_while_fishing_5:1:false:false:false:true"/>
                                                    <option name="when" value="after:HumansEndTurn"/>
                                                    <option name="chance" value="1:3"/>
                                                </attachment>
                                                <attachment name="triggerAttachment_-_Arthur_has_caught_something_while_fishing_3" attachTo="Humans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player">
                                                    <option name="players" value="Humans"/>
                                                    <option name="playerAttachmentName" value="RulesAttachment" count="conditionAttachmentHumansFish3"/>
                                                    <option name="playerProperty" value="switch" count="false"/>
                                                    <option name="activateTrigger" value="triggerAttachment_-_Arthur_has_caught_something_while_fishing_4:1:false:false:false:true"/>
                                                    <option name="when" value="after:HumansEndTurn"/>
                                                    <option name="chance" value="1:4"/>
                                                </attachment>
                                                <attachment name="triggerAttachment_-_Arthur_has_caught_something_while_fishing_2" attachTo="Humans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player">            
                                                    <option name="players" value="Humans"/>
                                                    <option name="playerAttachmentName" value="RulesAttachment" count="conditionAttachmentHumansFish2"/>
                                                    <option name="playerProperty" value="switch" count="false"/>
                                                    <option name="activateTrigger" value="triggerAttachment_-_Arthur_has_caught_something_while_fishing_3:1:false:false:false:true"/>
                                                    <option name="when" value="after:HumansEndTurn"/>
                                                    <option name="chance" value="1:5"/>
                                                </attachment>
                                                <attachment name="triggerAttachment_-_Arthur_has_caught_something_while_fishing_1" attachTo="Humans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player">
                                                    <option name="players" value="Humans"/>
                                                    <option name="playerAttachmentName" value="RulesAttachment" count="conditionAttachmentHumansFish1"/>
                                                    <option name="playerProperty" value="switch" count="true"/>
                                                    <option name="activateTrigger" value="triggerAttachment_-_Arthur_has_caught_something_while_fishing_2:1:false:false:false:true"/>
                                                    <option name="when" value="after:HumansEndTurn"/>
                                                    <option name="chance" value="1:6"/>
                                                </attachment>
                                                <attachment name="triggerAttachment_-_Arthur_has_gone_fishing" attachTo="Humans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player">
                                                    <option name="conditions" value="conditionAttachmentHumansHaveTheFishingPole"/>
                                                    <option name="players" value="Humans"/>
                                                    <option name="activateTrigger" value="triggerAttachment_-_Arthur_has_caught_something_while_fishing_1:1:false:false:false:true"/>
                                                    <option name="when" value="before:HumansEndTurn"/>
                                                    <option name="chance" value="1:2"/>
                                                </attachment>
                                            
                                            
                                                <attachment name="triggerAttachment_-_Arthur_catches_a_small_fish" attachTo="Humans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player">
                                                    <option name="conditions" value="conditionAttachmentHumansFish1:conditionAttachmentHumansNotFish2:conditionAttachmentHumansNotFish3:conditionAttachmentHumansNotFish4:conditionAttachmentHumansNotFish5"/>
                                                    <option name="resource" value="Food"/>
                                                    <option name="resourceCount" value="1"/>
                                                    <option name="notification" value="HumansFishingFood1"/>
                                                    <option name="players" value="Humans"/>
                                                    <option name="when" value="after:HumansEndTurn"/>
                                                </attachment>
                                                <attachment name="triggerAttachment_-_Arthur_catches_a_large_fish" attachTo="Humans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player">
                                                    <option name="conditions" value="conditionAttachmentHumansNotFish1:conditionAttachmentHumansFish2:conditionAttachmentHumansNotFish3:conditionAttachmentHumansNotFish4:conditionAttachmentHumansNotFish5"/>
                                                    <option name="resource" value="Food"/>
                                                    <option name="resourceCount" value="2"/>
                                                    <option name="notification" value="HumansFishingFood2"/>
                                                    <option name="players" value="Humans"/>
                                                    <option name="when" value="after:HumansEndTurn"/>
                                                </attachment>
                                                <attachment name="triggerAttachment_-_Arthur_finds_a_small_treasure_in_the_water" attachTo="Humans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player">
                                                    <option name="conditions" value="conditionAttachmentHumansNotFish1:conditionAttachmentHumansNotFish2:conditionAttachmentHumansFish3:conditionAttachmentHumansNotFish4:conditionAttachmentHumansNotFish5"/>
                                                    <option name="resource" value="Gold"/>
                                                    <option name="resourceCount" value="5"/>
                                                    <option name="notification" value="HumansFishingGold5"/>
                                                    <option name="players" value="Humans"/>
                                                    <option name="when" value="after:HumansEndTurn"/>
                                                </attachment>
                                                <attachment name="triggerAttachment_-_Arthur_finds_a_large_treasure_in_the_water" attachTo="Humans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player">
                                                    <option name="conditions" value="conditionAttachmentHumansNotFish1:conditionAttachmentHumansNotFish2:conditionAttachmentHumansNotFish3:conditionAttachmentHumansFish4:conditionAttachmentHumansNotFish5"/>
                                                    <option name="resource" value="Gold"/>
                                                    <option name="resourceCount" value="10"/>
                                                    <option name="notification" value="HumansFishingGold10"/>
                                                    <option name="players" value="Humans"/>
                                                    <option name="when" value="after:HumansEndTurn"/>
                                                </attachment>
                                                <attachment name="triggerAttachment_-_Arthur_finds_a_flask_of_mana_in_the_water" attachTo="Humans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player">
                                                    <option name="conditions" value="conditionAttachmentHumansNotFish1:conditionAttachmentHumansNotFish2:conditionAttachmentHumansNotFish3:conditionAttachmentHumansNotFish4:conditionAttachmentHumansFish5"/>
                                                    <option name="resource" value="Mana"/>
                                                    <option name="resourceCount" value="10"/>
                                                    <option name="notification" value="HumansFishingMana10"/>
                                                    <option name="players" value="Humans"/>
                                                    <option name="when" value="after:HumansEndTurn"/>
                                                </attachment>
                                                <attachment name="triggerAttachment_-_Arthur_finds_an_old_scripture_in_the_water" attachTo="Humans" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player">
                                                    <option name="conditions" value="conditionAttachmentHumansNotFish1:conditionAttachmentHumansNotFish2:conditionAttachmentHumansNotFish3:conditionAttachmentHumansNotFish4:conditionAttachmentHumansNotFish5"/>
                                                    <option name="resource" value="XP"/>
                                                    <option name="resourceCount" value="10"/>
                                                    <option name="notification" value="HumansFishingXP10"/>
                                                    <option name="players" value="Humans"/>
                                                    <option name="when" value="after:HumansEndTurn"/>
                                                </attachment>
                                            

                                            There is something "fishy" here... :face_with_tongue:

                                            It would surely help to know exactly what is not working (from what I'm seeing, it should be not working at all, beside turning a switch true, meaning you would never get anything, in practice), but, by just looking at it, there are a number of things I cannot quite collocate (please, bear in mind that judging complex coding without testing has a large probability of mistakes, at least on my part):

                                            • All the various "conditionAttachmentHumansNotFish" are just duplicating the conditions they are calling (a "false" boolean is like no boolean).
                                            • You are missing the "chance" option on the "triggerAttachment_-Arthur_has_caught_something_while_fishing_5", while the "activateTrigger" of the "triggerAttachment-_Arthur_has_caught_something_while_fishing_4" is supposed to test it (I guess absence means 100% chance).
                                            • There's no point specifying "when" for triggers having no conditions (as they will never fire on their own).
                                            • The "triggerAttachment_-Arthur_has_gone_fishing" does nothing but activate another single trigger; this is redundant and confusing: you can delete the "triggerAttachment-Arthur_has_gone_fishing" and have the "triggerAttachment-_Arthur_has_caught_something_while_fishing_1" directly testing the "conditionAttachmentHumansHaveTheFishingPole", with a "1:12" chance of firing.
                                            • All the "triggerAttachment_-Arthur_has_caught_something_while_fishing_2" onwards set the switch as "false", but all those switches are already "false"; so, the only trigger that is doing anything, of that whole set, is the "triggerAttachment-_Arthur_has_caught_something_while_fishing_1".
                                            • The "conditions" for the last set of triggers are all the same, in practice (since, as said, all "conditionAttachmentHumansNotFish" merely call the same numbered "conditionAttachmentHumansFish"), so either they will all fire or none will fire. As they are, they would fire only if all "conditionAttachmentHumansFish" are true, that can happen only once the first set of triggers get them all true. Since only "conditionAttachmentHumansFish1" has a chance of becoming true, this set will never fire. Even if all the rest would be fixed in the way I assume it should, the conditions of the latest set should be changed this way, in text order:
                                              conditionAttachmentHumansFish1:conditionAttachmentHumansNotFish2:conditionAttachmentHumansNotFish3:conditionAttachmentHumansNotFish4:conditionAttachmentHumansNotFish5
                                              conditionAttachmentHumansFish2:conditionAttachmentHumansNotFish3:conditionAttachmentHumansNotFish4:conditionAttachmentHumansNotFish5
                                              conditionAttachmentHumansFish3:conditionAttachmentHumansNotFish4:conditionAttachmentHumansNotFish5
                                              conditionAttachmentHumansFish4:conditionAttachmentHumansNotFish5
                                              conditionAttachmentHumansFish5.
                                            • I guess this should happen the same way at each turn, so you need a set of triggers reverting all that these triggers may change in the coding (meaning turning any switches back to "false").
                                            • Probably better reworking the "chance" values in a way that each single probability can be communicated with simple numbers, assuming you want to fully document this in notes (to let the players know what is the probability for each one of those things they may get, and the probability of getting anything (currently, this last one is 1/12)). Of course, currently they are not matching what you have described.

                                            p.s.: I would call the "backpack" as "inventory" or "special items" or maybe "artefacts".
                                            p.p.s.: If I were you, I would open a feature change request for disabling all chance rolls notifications as default (a properly made map likely should cover it all with better looking notifications). This is actually something I wanted to advocate since a while.

                                            1 Reply Last reply Reply Quote 1

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 15
                                            • 16
                                            • 3 / 16
                                            • First post
                                              Last post
                                            Copyright © 2016-2018 TripleA-Devs | Powered by NodeBB Forums