Expand givesMovement Option To Require Specific Units At Destination
-
There is an existing "territoryAttachment" called "navalBase" that has a very underused but great behavior .
navalBase values: works according to original pacific rules: it increases the non-combat movement of naval units by +1 IF they go from friendly naval base TO friendly naval base
It would be very handy if this feature could also be added as an "unitAttachment". If this could be done then all "unitAttachment" attributes can also be utilized with it thus making the "navalBase" vastly more flexible.
Additionally would like to specify which units the "navalBase" actually supports. Similar to how the "givesMovment" attribute can designate which units get the bonus movement. Also would be great if the amount of movement the "navalBase" gives can be selectable.
Oh one last thing to consider. Maybe have and option built in that allows the behavior in 2 modes.
mode 1: Functions from the territory containing the "navalBase" to another territory contain a "navalBase". This one would be used strictly for seazones. containing the units.
mode 2: Functions from the territory adjacent to the territory containing "navalBase" to another territory that is adjacent to the territory containing another "navalBase". This one would be used for harbors or subpens and similar land based units. (The current "navalBase" functions in this mode)
So the code would look something as follows:
<option name="isNavalBase" value="true:modeOne"/> <option name="givesNavalBaseMovement" value="1:German.Submarine"/> <option name="givesNavalBaseMovement" value="2:German.Transport"/> <option name="givesNavalBaseMovement" value="1:German.Battleship"/>
Thinking it over more it would be great if this new behavior could be used for land and air units as well. If this is doable, an alternate name would be appropriate. Perhaps something like "isBase" or whatever, the name is easy.
I would love to use this current feature in my Big World 3 map. But currently it will limit the full potential of the concept I have in mind.
I plan on using it for my submarines to get a +1 movement, only if they are moving from underwater seazone to another underwater seazone (circles) and only during noncombat and only if not blocked by enemies. Also I would love to use it as a technology upgrade to my harbors and subpens giving only certain ships specific +movement points. The beauty in this feature is that it is a noncombat related behavior. Thus there is a new cool dynamic layer to consider throughout the game which isn't overpowered.
Here is a pic of my Atlantic region so you see what I wanna do a bit better. The circles are underwater seazones. I would have to hack connections to the circles in order to get it to function with current "territoryAttachment" version. But that would also involve some player enforced rules where loopholes to my rules would still exist because of current functionality limitations.
Alright so trying to think about this in a reusable way that is fairly simple from an XML standpoint, what about just adding a 3rd parameter to the unit option "givesMovement" to indicate it only works if "X" unit is at the final destination of the units route?
Sea Example (surface ships but not subs get +1 move between harbors)
<attachment name="unitAttachment" attachTo="harbor" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType"> <option name="givesMovement" value="1:transport:harbor"/> <option name="givesMovement" value="1:destroyer:harbor"/> <option name="givesMovement" value="1:battleship:harbor"/>
Material Example (can only move materials from harbor on to transport)
<attachment name="unitAttachment" attachTo="harbor" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType"> <option name="givesMovement" value="1:material:transport"/>
-
@general_zod Italy has really gained some weight. Might be time to lay off the pasta.
-
@hepps Couldn't you already achieve your goal without changes?
-
@hepps Most or all could be done with canals and givesMovement. But I believe the piece that either isn't possible or is difficult is limiting the extra movement to only certain territories. The AA gun and material getting +1 movement on docks in TWW but being able to move on land is also an example of this (might be able to put canals across every land connection that excludes everything but AA/materials). So for @General_Zod example if a sub is in an "underwater" SZ then it could move 2 spaces if targeting a regular SZ or 3 spaces if targeting another "underwater" SZ.
@General_Zod For this specific example, you may be able to hack an extra invisible territory between the underwater and surface sea zones so that it essentially costs 2 movement to "surface" and just use "givesMovement" for all subs in "underwater" SZs. I'd need to better understand what you are trying to achieve to see if there are any creative ways to do it currently.
-
@hepps said in "isNavalBase" For "unitAttachments":
@general_zod Italy has really gained some weight. Might be time to lay off the pasta.
Haha, yep those Italians are just goin monja, monja all day long. Actually my whole European continent gained weight. Need plenty of room for the dead bodies which will be stacking up after a few rounds.
@hepps said in "isNavalBase" For "unitAttachments":
@hepps Couldn't you already achieve your goal without changes?
So I can currently hack my way into allowing the "navalBase" to function in the underwater seazones. However I also want the following points/issues.
-
Technology Tree: I want to upgrade harbor units into "Naval Base".
-
Give +1 NCM to certain sea units not all of them.
-
Very difficult to code buying new navalBases as a territoryAttachment, since it requires code for every coastal territory.
-
Would like to give any number of + NCM movement points.
-
Need to contend with being adjacent to the territory to receive benefit, which complicates code. An option to be adjacent to territory or inside territory to receive the movement would be nice. And would open door to land and air units as well.
-
Would need to use player enforced rules as is too.
-
-
@redrum said in "isNavalBase" For "unitAttachments":
So for @General_Zod example if a sub is in an "underwater" SZ then it could move 2 spaces if targeting a regular SZ or 3 spaces if targeting another "underwater" SZ.@General_Zod For this specific example, you may be able to hack an extra invisible territory between the underwater and surface sea zones so that it essentially costs 2 movement to "surface" and just use "givesMovement" for all subs in "underwater" SZs. I'd need to better understand what you are trying to achieve to see if there are any creative ways to do it currently.
Yes you are correct about the invisible territory as one approach to the underwater to underwater sz component of the code. I found another more hacky method as well which I am likely going to do. Goes as follows. I will create a "navalBase" territory to something like Mongolia (currently impassible). Then I will create connections for each underwater sz to Mongolia. I will change ownership of Mongolia each turn to be owned by current nation throughout the game. That should work nicely.
However one of my problems is I want to allow players to create new "navalBase's". For this example, lets say Newfoundland to United Kingdom. Each will get a "navalBase" to do it. But now these "naval Bases" can interact with all my underwater "navalBases". I do limit underwater sz to only submarines and depth charges, so the unwanted behavior in this example is limited to just those 2 unit types. I would have to player enforce to not use any +1 movements between those "navalBases" (underwater to newly created)
This could be resolved by having units act as "navalBases" because then I can use different types of units for underwater sz, land based "navalBases" and even subpens. As described in my earlier post.
-
@general_zod I think I was getting at more of not using the territory navalBase property at all. Essentially only using unit property givesMovement and having invisible units in each underwater SZ. So if sub starts in underwater SZ they get +1 move which allows them to move 3 total across underwater or 2 total if they surface since going from underwater to surface SZ costs 2 movement.
If you do that then I don't think you end up with a conflict for your surface naval bases.
-
@redrum minor point but subs were very slow underwater. Why 3 move? I would sug 3 above water one to surface two under water. Just my two cents. Of course that makes them faster than all. So I think you see the conundrum...
-
@redrum This will also allow them to move 3 surface sz if they wanted too. Assuming they start in a uw-sz. Unless I'm misunderstanding what your saying.
-
@general_zod I'm saying moving from an underwater SZ to surface SZ would cost 2 movement so they could only move 2 then. If they start in a surface SZ then they don't get the extra +1 movement so can only move 2.
-
@general_zod cor gz
thus subs need a 1 underwater movement and two at surface
thus my ? about three? -
@redrum said in "isNavalBase" For "unitAttachments":
@general_zod I'm saying moving from an underwater SZ to surface SZ would cost 2 movement so they could only move 2 then. If they start in a surface SZ then they don't get the extra +1 movement so can only move 2.
@redrum Ah I see where the confusion is. It does not cost 2 movement to go from uw-sz to surface sz, only 1 movement. Thus your idea does in fact allows movement of 3 to either.
@prastle said in "isNavalBase" For "unitAttachments":
@general_zod cor gz
thus subs need a 1 underwater movement and two at surface
thus my ? about three?@prastle However technically, each uw-sz is under the surface sz. This means they are not really moving faster or further if they had 3 movement points between uw-sz's, only. But you are correct they would in real life move faster on surface. But I think subs might be overpowered if I let them. They are already hard to kill and can lurk for whole game, or tie down allied vessel for convoy duty. Without any tech only a depth charge can kill a sub if it's underwater and they are suicide, so 1 try and they done.
-
@general_zod I mean if you make it cost 2 movement by having an extra invisible SZ between the uw-sz and surface sz. That then means they move 3 underwater but only 2 if they surface.
-
@redrum I see what you mean, I reread above. I read it so quickly and thought you meant an invisible land territory for a navalBase attribute. Since that was my initial plan, since navalBase won't work off land.
-
@general_zod Yeah, I'm approaching it from more of a "movement cost" perspective where you could treat surfacing as costing more movement then moving between underwater sea zones. Somewhat of a different take on it but you end up with similar behavior.
-
@redrum said in "isNavalBase" For "unitAttachments":
@general_zod I mean if you make it cost 2 movement by having an extra invisible SZ between the uw-sz and surface sz. That then means they move 3 underwater but only 2 if they surface.
Or maybe having a canal option for consuming additional movement points when/for passing through (if not excluded).
-
@redrum Is it possible to at least get an option added that will allow selection of which units get the bonus movement from the "navalBase" territoryAttachment property? Just like "givesMovement" does. This will at least allow me to have my rules engine enforced.
This is a very cool feature, just lacks this functionality.
Or I wonder if it make more sense to alter "givesMovement" to get more control. So it can pick which territories for start points and end points. As well which phase it will function during, although this last piece can be done with triggers too.
-
@redrum Hmm, thinking it through more. Adding the unit selection to "navalBase" will not resolve it for me.
Although adding functionality to "givesMovement" should.
-
@general_zod So adding a unit list to navalBase is probably pretty easy but seems you realized that doesn't really solve all the problems as then purchasing/upgrading is fairly difficult.
Enhancing givesMovement for units to consider say a list of start territories would be fairly easy. The bigger challenge is the end points as you don't know the end points until you move the unit and the way it works currently it gives the extra movement at the start of the move phase.
-
@redrum Actually, I can make it work with a unit list added to "navalBase".
Plan would be to swap (trigger) the submarines that end NCM in a uw-sz with a new unit called submerged-submarine. Then I could add the submerged-submarine to the unit list and not the submarine. Once the submerged-submarine ends a turn in a surface sz I can trigger it back into a submarine.