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

    UnitAttachment Which Allows/Requires Another Unit To Move

    Scheduled Pinned Locked Moved Feature Requests & Ideas
    58 Posts 5 Posters 28.7k Views 4 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.
    • C Offline
      Cernel Moderators @redrum
      last edited by

      @redrum How about having a "count" being how many of these units can move into the territory per the target unit and stay in there at that exact moment.
      For example:

      <option name="requiresUnitsToMove" value="germanRail" count="3"/>

      This would mean that if in the target territory there are 2 "germanRail" you can move in there up to 6 of these units, if none already there. Only the units present at that exact moment you do the move count.
      If the "count" is absent, it defaults to infinite (which, then, would be the same as you said).

      However, in this case, it would be better to reword it as "canMoveIntoIfPresent", or in a way that it won't read that you need 3 "germanRail" per moved unit.

      Since this would be a check that would be done in the exact moment you try to do the move, I guess it should be an easy addition. I think the concept of having it numbered, not "1 to infinite", was very interesting. I definitely believe you should not drop it, as an option ("1 to infinite" should be the default).

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

        @cernel I think for some kind of unit limit it would make more sense on the allowing rather than requiring unit (rail in this case). So something like this:
        <option name="allowsUnitsToMove" value="germanTrain" count="3"/>

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

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

          @redrum I guess whatever works best for the main usercase you have in mind, but I tend to think it is better to be on the requiring unit, since the default behaviour of any units is to move freely. Maybe something like:

          germanTrain:
          <option name="requiresUnitsToMoveInto" value="germanRail"/>

          germanRail:
          <option name="allowsUnitsToMoveInto" value="3"/>

          Default being infinite.
          Also, it should be cumulative, so that, in the above case, 4 germanRail units on the same territory would count like a single unit having name="allowsUnitsToMoveInto" value="12".

          C 3 Replies Last reply Reply Quote 0
          • C Offline
            Cernel Moderators @Cernel
            last edited by

            This way, you could also have:

            germanTrain:
            <option name="requiresUnitsToMoveInto" value="germanRail" count="1"/>

            germanRailGun:
            <option name="requiresUnitsToMoveInto" value="germanRail" count="2"/>

            germanRail:
            <option name="allowsUnitsToMoveInto" value="3"/>

            That would mean each Rail allows 3 Trains or 1 RailGun or 1 RailGun plus 1 Train. I would have it purely cumulative, so that 2 Rail allow up to a total of 3 RailGun (or 6 Train or whatever combination not going over the cap of 6).

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

              And this:

              <option name="requiresUnitsToMoveInto" value="germanRail" count="0"/>

              may represent something that takes no space at all on the Rail, but still requires it to move into the territory (it would need to be explained in pos2, that a count equal to 0 actually means infinitesimal).

              RogerCooperR 1 Reply Last reply Reply Quote 0
              • RogerCooperR Offline
                RogerCooper @Cernel
                last edited by

                Couldn't you achieve much the same effect in the current engine by making rail a terrain type and train a land transport?

                C HeppsH 2 Replies Last reply Reply Quote 0
                • C Offline
                  Cernel Moderators @RogerCooper
                  last edited by Cernel

                  @rogercooper If you meant only the count equal to 0, that would be just a minor additional element in the whole system. If you are asking why to do this whole thing, instead of using the available terrain effects, I'm probably not the most qualified to answer you about what exactly is the additional aim to what you can already do with terrains, as I guess this matter has behind some private talking I didn't partake.

                  Clearly, the main enhancement of this new feature would be the ability to have a count, if it gets made. I agree that if this feature would be merely a "1-to-infinite" thing, it would not add that much. Entering or not entering is currently easily achievable with terrain effects, as you point out (just have a no-train terrain everywhere there is not a rail). The other item would be being able to purchase and place rail, but this is fairly easily achievable, by having a set of triggers that remove the anti-rail territory effect, if a rail is present, or by a set of user actions for making rails, removing such territory effect. However, this is still a bit of work more, and unfeasible to be supported by the AI at any point. Theorically, also the count limit is achievable with the current option, by having a high limit and stuffing the territories with otherwise pointless units, so to leave the difference for other units to move into, creating different actual limits for the various territories, but this would be definitely a dirty hack.

                  TripleA may really benefit from the ability to somewhat set different stack limits per territory, instead of only the same for any, as now. If this comes as a unit ability, allowing you to manage such limits, mainly by placing new units of the kind, that may be an added value, as well.

                  My guess is that this thing started mainly out of the need of being able to purchase rail, if wanted, otherwise just doing it with territory effects would be very easy, if rails are supposed to allow infinite trains and not supposed to be purchased or placed (I guess what's behind this feature request is that they aren't).

                  A side note is that this feature would increase the need for a "remove units" phase, in this case for removing the existing rail units, as opposed to placing new ones. This would also add some additional depth for realistic games, as a WWII game with a realistic rail representation would actually have rail units almost everywhere you need, thus much limiting the impact of this requirement.

                  Finally, one of the main reasons to have rail is to save fuel cost, which would lead to the matter that, currently, the fuel feature is not very well handled (in particular, having an option for land transported units not to consume fuel themselves, when transported).

                  1 Reply Last reply Reply Quote 0
                  • HeppsH Offline
                    Hepps Moderators @redrum
                    last edited by

                    @redrum This looks very versatile. I like it.

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

                    1 Reply Last reply Reply Quote 0
                    • HeppsH Offline
                      Hepps Moderators @RogerCooper
                      last edited by

                      @rogercooper You can use terrain... but it is pretty limiting and it is also quite cumbersome to try and work with in the XML if you want to produce or destroy something like portions of a rail network.

                      This would provide for far more flexibility to a designer.

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

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

                        The other suggestion, besides having a way to have it with a count, instead of only 1 to infinite (in particular, maybe to use it for ports (sea and air ones)), was to call it "requiresUnitsToMoveInto", instead of "requiresUnitsToMove", if this is meant to limit moving into only (not sure).

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

                          To be clear, the renaming above only in case you need the other unit only in the territory you move into, not also in the one you move out (don't know your plans).

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

                            The initial implementation is now in the pre-release: https://github.com/triplea-game/triplea/pull/2298

                            To test it, I edited the TWW XML with the following for reference:
                            <attachment name="unitAttachment" attachTo="germanTrain" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
                            <option name="movement" value="5"/>
                            <option name="attack" value="0"/>
                            <option name="defense" value="0"/>
                            <option name="transportCost" value="2"/>
                            <option name="canBeGivenByTerritoryTo" value="Germany"/>
                            <option name="requiresUnits" value="germanFactory"/>
                            <option name="canInvadeOnlyFrom" value="none"/>
                            <option name="requiresUnitsToMove" value="germanRail"/>
                            </attachment>
                            <attachment name="unitAttachment" attachTo="germanRail" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
                            <option name="isInfrastructure" value="true"/>
                            <option name="canBeDamaged" value="true"/>
                            <option name="maxDamage" value="12"/>
                            <option name="maxOperationalDamage" value="8"/>
                            <option name="movement" value="0"/>
                            <option name="attack" value="0"/>
                            <option name="defense" value="0"/>
                            <option name="isConstruction" value="true"/>
                            <option name="constructionType" value="fProduction"/>
                            <option name="constructionsPerTerrPerTypePerTurn" value="1"/>
                            <option name="maxConstructionsPerTypePerTerr" value="1"/>
                            <option name="canDieFromReachingMaxDamage" value="true"/>
                            <option name="consumesUnits" value="1:Material"/>
                            <option name="requiresUnits" value="germanCombatEngineer"/>
                            </attachment>

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

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

                              @redrum Ok... got this up and running. All I can say is FREAKING AWESOME!!!!

                              Great step forward! Thank you for implementing this... really adds to the potential for the game. You have my complete appreciation for making it happen.

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

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

                                Have been testing and tweeking my test XML all day. This works flawlessly without any mechanical issues thus far. Both Trains and Rail behave as expected... both can be bombed, disabled, destroyed, repaired and captured. The transport is simple and easy... everything works like a charm.

                                From the tests thus far... here is my only observable issue which I think needs to be addressed....

                                It needs a validation process for the territory where a train is originating from. Feels all kinds of wrong that you can move out of a terr. with either no rail present what-so-ever, or a territory with a disabled rail.

                                So far every other test has passed with flying colours.

                                Once again, great work!

                                "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

                                  @hepps Glad its working well and thanks for testing it out. I'll make the change to check the starting territory as well since I agree that makes more sense for this feature.

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

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

                                    @redrum Just giving credit, where credit is due. Rarely is something integrated into an existing system with such flawless efficiency.

                                    If I were wearing a hat.... it would surely be off for you fine sir.

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

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

                                      @hepps Change to check the starting territory as well should now be in the pre-release: https://github.com/triplea-game/triplea/pull/2315.

                                      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
                                      • redrumR Offline
                                        redrum Admin @Hepps
                                        last edited by

                                        @hepps Change to include checking for allied units should be in the pre-release: https://github.com/triplea-game/triplea/pull/2326

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

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

                                          @redrum Worked like a charm. I think this feature is where it needs to be. I will continue testing for issues, but the last release seemed to correct all remaining issues.

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

                                          1 Reply Last reply Reply Quote 0
                                          • RoiEXR Offline
                                            RoiEX Admin
                                            last edited by

                                            @redrum Might be a bit late, but I think AND and OR should be reversed.
                                            IMO this is more intuitive, you'd expect the xml to always add everything together.
                                            If you read the xml without any colons, you'd read requireUnitsToMove germanRail, requireUnitsToMove russianRail etc. and IMO you'd say AND instead of OR.
                                            Just my opinion, what do the others think?

                                            C 1 Reply Last reply Reply Quote 0

                                            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
                                            • 2 / 3
                                            • First post
                                              Last post
                                            Copyright © 2016-2018 TripleA-Devs | Powered by NodeBB Forums