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

    Unit Option When Damaged Change Into Different Unit (Weakened Battleships)

    Scheduled Pinned Locked Moved Feature Requests & Ideas
    83 Posts 11 Posters 42.8k Views 10 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.
    • prastleP Offline
      prastle Moderators Admin @Hepps
      last edited by

      @hepps I cant see how independent would work when only one monetary system.

      If we open a quarrel between past and present, we shall find that we have lost the future! Sir Winston Churchill

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

        <option name="whenHitPointsDamagedChangesInto" value="1:germanBattleshipDamaged:true" count="1"/>
        <option name="whenBombingDamagedChangesInto" value="1:germanBattleshipDamaged:true" count="1"/>

        So question on this in case I am missing something here...

        Even though the 2 types of damage are independent of one another.... if the unit changed into the same "Damaged" unit at the end of the current combat phase... wouldn't then either type of damage be cumulative?

        ie. I send my strat. Bomber in to bomb a undamaged BB. Let's say it achieves a hit and the bombing damage option then changes the unit into a damaged ship (if there is only 1 type of damaged ship), then that new unit would by virtue of the unit change automatically be changed to a unit having only 2 remaining HP.... so then if you had also launched an attack against the same battleship... during the same pound wouldn't the unit now still have only 2 HP at the start of the naval combat? therefore basically overrighting the bombing damage?

        "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 It would only work that way if the damaged BB unit had say max HP of 2 instead of 3. The reason is it would only carry over the damage of the unit being replaced (if 'keepDamage'=true) which would only be bombing damage in your case. So you'd end up with a damaged BB unit with 1 bombing damage and 0 hit point damage.

          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 0
          • HeppsH Offline
            Hepps Moderators @redrum
            last edited by

            @redrum Ah ok. So you would then have to have 4 different types of damaged unit, causing all kinds of issues with unit changing and re-changing depending on the damage taken... that does present an issue.

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

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

              @hepps So using both types of damage on multi hit units is probably not a realistic goal.

              "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 Agree. There would need to be further thought and logic to better handle units that can take both types of damage. Probably something like a damageConvert unit option which would translate bombing damage to HP and vice-versa. So say if a BB had 3 HP and 15 max bombing damage then you could have a 1-to-5 damage conversion ratio so it is damaged evenly (ex. if it takes 5 bombing damage then would take 1 HP damage).

                You'd also have to think about how repair would work as well (again some conversion ratio so both are repaired at the same time or separate repairs). It gets pretty complicated pretty quickly.

                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 0
                • HeppsH Offline
                  Hepps Moderators @redrum
                  last edited by

                  @redrum Agreed.

                  Probably best if those two conversions were independent of one another.

                  "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 Initial PR to address the damage (not repair) portion of this feature: https://github.com/triplea-game/triplea/pull/2689

                    Tested it by editing TWW to add unit, unit image, and below unit attachments:

                    <attachment name="unitAttachment" attachTo="germanBattleship" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
                      <option name="movement" value="2"/>
                      <option name="attack" value="7"/>
                      <option name="defense" value="8"/>
                      <option name="canBombard" value="true"/>
                      <option name="isSea" value="true"/>
                      <option name="hitPoints" value="2"/>
                      <option name="bombard" value="6"/>
                      <option name="requiresUnits" value="germanDocks:germanFactory"/>
                      <option name="consumesUnits" value="1:germanHull"/>
                      <option name="whenHitPointsDamagedChangesInto" value="1:true:germanBattleshipDamaged"/>
                    </attachment>
                    <attachment name="unitAttachment" attachTo="germanBattleshipDamaged" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
                      <option name="movement" value="1"/>
                      <option name="attack" value="3"/>
                      <option name="defense" value="4"/>
                      <option name="canBombard" value="true"/>
                      <option name="isSea" value="true"/>
                      <option name="hitPoints" value="2"/>
                      <option name="bombard" value="3"/>
                    </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 3
                    • HeppsH Offline
                      Hepps Moderators @redrum
                      last edited by

                      @redrum AWESOME!!!!!

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

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

                        Initial PR merged and can be tested on https://github.com/triplea-game/triplea/releases/tag/1.9.0.0.7804

                        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
                          last edited by redrum

                          Second PR to address repairing them: https://github.com/triplea-game/triplea/pull/2691

                          Tested with this XML:

                          <attachment name="unitAttachment" attachTo="germanBattleship" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
                            <option name="movement" value="2"/>
                            <option name="attack" value="7"/>
                            <option name="defense" value="8"/>
                            <option name="canBombard" value="true"/>
                            <option name="isSea" value="true"/>
                            <option name="hitPoints" value="2"/>
                            <option name="bombard" value="6"/>
                            <option name="requiresUnits" value="germanDocks:germanFactory"/>
                            <option name="consumesUnits" value="1:germanHull"/>
                            <option name="whenHitPointsDamagedChangesInto" value="1:true:germanBattleshipDamaged"/>
                          </attachment>
                          <attachment name="unitAttachment" attachTo="germanBattleshipDamaged" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
                            <option name="movement" value="1"/>
                            <option name="attack" value="3"/>
                            <option name="defense" value="4"/>
                            <option name="canBombard" value="true"/>
                            <option name="isSea" value="true"/>
                            <option name="hitPoints" value="2"/>
                            <option name="bombard" value="3"/>
                            <option name="whenHitPointsRepairedChangesInto" value="0:true:germanBattleship"/>
                          </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 2
                          • HeppsH Offline
                            Hepps Moderators @redrum
                            last edited by

                            @redrum So pumped!

                            0_1513385693652_Limping back to harbour.jpg

                            "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 Nice. Those are looking good.

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

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

                                Second PR merged so all changes can be tested in this or later releases: https://github.com/triplea-game/triplea/releases/tag/1.9.0.0.7850

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

                                General_ZodG 1 Reply Last reply Reply Quote 0
                                • General_ZodG Offline
                                  General_Zod Moderators @redrum
                                  last edited by

                                  @redrum @hepps First of all very cool feature. Does the battle calculator give an accurate outcome when these units are involved?

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

                                    @general_zod That is an excellent question, that I actually don't know the answer to. I believe that it should since it actually does simulate battles. It would be interesting to make a very small test to prove or disprove it though.

                                    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
                                    • alkexrA Offline
                                      alkexr
                                      last edited by

                                      Now that I think of it...

                                      <attachment name="unitAttachment" attachTo="hydraHead" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
                                        <option name="movement" value="0"/>
                                        <option name="attack" value="3"/>
                                        <option name="defense" value="3"/>
                                        <option name="whenHitPointsDamagedChangesInto" value="2:false:hydraHead"/>
                                      </attachment>
                                      

                                      "For the world is changing: I feel it in the water, I feel it in the earth, and I smell it in the air."

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

                                        @alkexr ๐Ÿ˜ƒ

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

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

                                          I canโ€™t get this code work. Is it only for isSea? (I hope not ๐Ÿ˜‰ )
                                          I am trying to get my XML to work after the implementation of new units.
                                          I would like this Dragon unit to turn into a corpse when its HPs are gone. Should this not be possible also?

                                          My code looks like this:

                                                  <attachment name="unitAttachment" attachTo="Red-Dragon" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
                                                      <option name="movement" value="3"/>
                                                      <option name="attack" value="8"/>
                                                      <option name="defense" value="6"/>
                                                      <option name="isAir" value="true"/>
                                                      <option name="hitPoints" value="3"/>
                                                      <option name="repairsUnits" value="1:Red-Dragon"/>
                                                      <option name="whenHitPointsDamagedChangesInto" value="3:false:Red-Dragon-Corpse" count="1"/>
                                                          <option name="offensiveAttackAA" value="1"/>
                                                          <option name="attackAA" value="1"/>
                                                          <option name="offensiveAttackAAmaxDieSides" value="10"/>
                                                          <option name="attackAAmaxDieSides" value="10"/>
                                                          <option name="maxAAattacks" value="8"/>
                                                          <option name="maxRoundsAA" value="1"/>
                                                          <option name="isAAforCombatOnly" value="true"/>
                                                          <option name="typeAA" value="Fire"/>
                                                          <option name="mayOverStackAA" value="true"/>
                                                          <option name="targetsAA" value="FAKE-INF"/>
                                                  </attachment>
                                                  <attachment name="unitAttachment" attachTo="Red-Dragon-Corpse" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
                                                      <option name="isInfrastructure" value="true"/>
                                                      <option name="createsResourcesList" value="25:Gold"/>
                                                  </attachment>
                                          

                                          Error looks like this:

                                          feb. 24, 2019 8:46:37 PM games.strategy.engine.framework.ui.DefaultGameChooserEntry fullyParseGameData
                                          SEVERE: Could not parse:file:/C:/Users/David-Corsair/triplea/downloadedMaps/world_of_war_heroes/games/world_of_war_heroes.xml
                                          games.strategy.engine.data.GameParseException: map name: 'file:/C:/Users/David-Corsair/triplea/downloadedMaps/world_of_war_heroes/games/world_of_war_heroes.xml', game name: 'World of War Heroes', Unexpected Exception while setting values for attachmentUnitAttachment attached to:UnitType{name=Red-Dragon} with name:unitAttachment
                                          	at games.strategy.engine.data.GameParser.newGameParseException(GameParser.java:121)
                                          	at games.strategy.engine.data.GameParser.setValues(GameParser.java:1274)
                                          	at games.strategy.engine.data.GameParser.parseAttachments(GameParser.java:1224)
                                          	at games.strategy.engine.data.GameParser.parseMapDetails(GameParser.java:211)
                                          	at games.strategy.engine.data.GameParser.parse(GameParser.java:110)
                                          	at games.strategy.engine.data.GameParser.parse(GameParser.java:104)
                                          	at games.strategy.engine.data.GameParser.parse(GameParser.java:91)
                                          	at games.strategy.engine.framework.ui.DefaultGameChooserEntry.fullyParseGameData(DefaultGameChooserEntry.java:53)
                                          	at games.strategy.engine.framework.startup.ui.panels.main.game.selector.GameSelectorPanel.lambda$selectGameFile$6(GameSelectorPanel.java:284)
                                          	at games.strategy.engine.framework.ui.background.BackgroundTaskRunner.lambda$runInBackground$0(BackgroundTaskRunner.java:51)
                                          	at games.strategy.engine.framework.ui.background.BackgroundTaskRunner$1.doInBackground(BackgroundTaskRunner.java:129)
                                          	at javax.swing.SwingWorker$1.call(Unknown Source)
                                          	at java.util.concurrent.FutureTask.run(Unknown Source)
                                          	at javax.swing.SwingWorker.run(Unknown Source)
                                          	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                                          	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                                          	at java.lang.Thread.run(Unknown Source)
                                          Caused by: games.strategy.engine.data.MutableProperty$InvalidValueException: failed to set string property value to '1:3:false:Red-Dragon-Corpse'
                                          	at games.strategy.engine.data.MutableProperty.setStringValue(MutableProperty.java:64)
                                          	at games.strategy.engine.data.MutableProperty.setValue(MutableProperty.java:88)
                                          	at games.strategy.engine.data.GameParser.setValues(GameParser.java:1270)
                                          	... 15 more
                                          Caused by: games.strategy.engine.data.GameParseException: setWhenHitPointsDamagedChangesInto must have damage:translateAttributes:unitType    for: UnitAttachment attached to:UnitType{name=Red-Dragon} with name:unitAttachment
                                          	at games.strategy.triplea.attachments.UnitAttachment.setWhenHitPointsDamagedChangesInto(UnitAttachment.java:419)
                                          	at games.strategy.engine.data.MutableProperty.setStringValue(MutableProperty.java:60)
                                          	... 17 more
                                          

                                          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
                                          • HeppsH Offline
                                            Hepps Moderators
                                            last edited by

                                            Just look at TWW 3..0

                                            It all works perfectly. Should work of any type of unit. The one thing that is tricky is the names of the unit images you need in the unit folder.

                                            But if you look at that then you should be good to go.

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

                                            FrostionF 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
                                            • 4
                                            • 5
                                            • 1 / 5
                                            • First post
                                              Last post
                                            Copyright ยฉ 2016-2018 TripleA-Devs | Powered by NodeBB Forums