Changing the terrain Tile and combat Unit definitions
Many (if not most) of my 'annoyances' can be fixed just by changing the unit and tile definitions
If you are rebuilding the crimson.exe, with my new Maps, then the new .tiles and .units files must be present in the crimson.exe home folder, since, after re-compiling the .exe, the 'make' utility will attempt to rebuild the Maps. If the .tiles and .units files are missing, crimson.exe will crash when you choose a .lev game files that uses them
Terrain Tiles and Unit movement
Every individual terrain tile (that can be entered) is defined as at least one 'type' (shop**, road, plains, rails, rough, forest, mountains, trenches, swamp, shallowwater, water, deepwater, restricted) and an individual (Move=) 'cost to enter'.
Each Unit is defined with a basic movement (speed=) 'allowance' and a list of basic (terrain=) types it is 'allowed to enter'**.
**shop is a 'special' type. To enter a shop tile, the Unit must be of 'type = trooper' (rather than have terrain=shop permission) It's worth noting that every Unit with terrain=road also has terrain=plains. In other words, every unit that can enter a road tile can also enter a plains (grass) tile. This means that the 'road' (or 'plains') type is, in effect, 'spare' and could be utilised for 'hills' (or any other terrain that you wanted to 'split off' as a separate type without the need for changes to the C++ source code
The 'minimum' cost to enter is 0, although only** Buildings use this, with (Tarmac) roads set to '1' and all other Terrain tiles set to higher values. Units of 'type= aircraft' treat all move= settings as move=1, however tiles without a move= can not be entered. The same applies to Tiles for which the aircraft does not have a terrain= setting (i.e. those with no terrain= or with terrain=restricted) To calculate the possible movement destinations, the 'cost to enter' is deducted from the Units remaining move for each Tile (of a type it is allowed to enter) until the Unit's move allowance is insufficient to enter the next tile ** There is one 'special case' when both 'allowed to enter' is ignored and 'cost to enter' is 0 = and that's when you are next to a Transport Unit (but only so long as you can be carried by that Transport i.e. are within the max. min. limits and the Transport has sufficient 'spare space') The only other 'special case' is when 'deploying' a 'move=0' unit (i.e. mines) from a transport, however in this case, the 'terrain=' restrictions are NOT ignored.
The combination of a Unit's move plus 'terrain=' setting along with the Tile 'types' and individual 'cost to enter' values can be used to 'fix' a huge number of issues without needing to change one line of code
A terrain Tile can be of more than one basic 'type' (for example, Docks are both Shallowwater and Plains, as are the Beach tiles), HOWEVER a Tile has a single 'cost to enter' for all Sea and Ground units (an Air unit counts all terrain as 'cost = 1'). If a Tile has no 'move =' value, it is 'impassable' by any Unit (including air). To prevent a ground unit entering a tile, whilst allowing aircraft to do so, the 'cost to enter' can be set to '255' (which is way above any Unit movement allowance)
One of my major issues is the lack of 'granularity' in movement. Roads are '1' and Plains (and most other terrain) is '2'. This lets (ground units) move twice as fast on roads as cross-country. For wheeled vehicles this may be OK, but for tracked vehicles it's nonsense. Many tanks etc. have similar road and cross country speeds - at best they would be x1.5 speed on road. What's more, with no setting between 1 and 2, on dirt tracks Units get no benefit (they count tracks as 2, the same as cross-country). Currently, Infantry move 6 on roads, 3 cross-country, whilst Medium Tanks move 8 and 4.
To 'fix' tracks, a move= 'step' has to be found between Road and Plains
Initially I doubled everything, however this still didn't "work". With Roads cost 2 and Plains 4, I could set tracks 3. However travel on Roads is still twice as fast as on Plains (grass) :-) So I ended up by multiplying by 3 (hence the 'x3' maps). This gave me Roads cost 3, tracks 4 and grass 5, not 'ideal' but at least Roads do not allow movement twice as fast as grass. I also tried moving Roads to 4. This allowed tracks 5, grass 6, which 'narrowed the gap' and actually allowed more choices move= for more difficult terrain. It also allowed more choices for different Unit speed=.
Tweaking the 'speed=' settings
To limit a Units move, the code deducts the move= cost of tiles from the Units speed=. This means it can not enter a hex with a move= higher than it's remaining speed
This is how a Unit's speed is 'rounded down'. Careful selection of speed settings can allow units to achieve the same distance cross country on Plains but different distances on tracks and Roads
I started with Infantry as everything has to be scaled to the basic Infantry movement. This would be 3 tiles cross-country. With Infantry moving 3 cross country-over on basic plains (move=5) Infantry needs a speed= of at least 15. To prevent it moving 4 hex's, it's speed= must be less than 20. To move 4 hex's on Tracks (move=4), it must have a speed of at least 16, but less than 20. Finally, to move 5 hexs on Roads (move=3), it needs a speed of at least 15, but less than 18. In short, basic Infantry can be given a speed of 16 or 17 and this will achieve all 3 of the above goals. Now let's consider vehicles, especially tanks. Vehicles should be more than twice as fast as infantry, especially on road. Wheeled vehicles should be faster than tanks, Light tanks faster than Heavy tanks - at least on road. However cross-country, the difference in the speeds of various tracked vehicles should be minimal. In fact I would argue that wheeled vehicles should be slower. Unfortunately that's not possible - at best they can be set to the same. If Infantry move 5 tiles on Roads, then a vehicle should move around 10. With Roads set to move=3, vehicles need a speed= of 30. Each additional 3 count increases the road distance by 1. Careful setting of speed= can result in a balanced range of road, track, grass capabilities. The only real way to achieve this balance is to spreadsheet all the Units and at least one or two common terrain tiles from each terrain= set. For example :-
|25 (heavy tanks)||8||6||5||5||4||(heavy tanks banned)|
|(medium tanks, same road,track, faster grass,rough)|
|28 (light tanks)||11||8||7||6||4||2|
|(light tanks, faster road, else same as medium)|
|32 (wheeled)||12||9||8||6||5 (wheeled banned from forest, not hills, light woods)||(wheeled banned)|
|(wheeled, faster road,track,grass, same light tanks on rough)|
I adjusted every Units speed= to better reflect physical realities.
For example, physics dictates that all rail units are faster than all road traffic (but slower than aircraft). However we can't set rails tiles to a move= less than plains(=5), since that would lead to other ground Units moving faster on rail Tiles. Indeed, to stop the AI sending it's units along the rail lines instead of rougher types of cross-country, rails must be slower than plains. However it will be faster to use the rail line rather than the move in a wood. So I set Rails to move=6, whilst Rough is 7. With troops trains set to speed=84, this gets them 14 hex's on rail. Since rail units are limited to rail Tiles, they won't get to travel 28 Road tiles :-) The real problem is aircraft. They should be at least ten times faster than tracked units. To make the game playable, aircraft have to be limited to no more than double road speed. To 'rationalise this away' we argue that aircraft are actually returning to some air base 'off map' between turns. So the 'move distance' on map represents not their absolute speed but by how much their destination can vary from one strike 'sortie' to the next.
In the end I had to create a spreadsheet. Across the top (the columns) are various terrain tiles by type and their move= setting. Down the side (the rows) are the Units by name with their speed= setting. The body of the table is the number of hex's the unit moves in that terrain. This lets me 'tweak' the speeds until I get the balance I wanted
Of course the next problem is that 'realistic' vehicle and aircraft speeds make smaller maps virtually unplayable (but see later) !
Unit speed and 'transport' interaction
When I started increasing Unit speed, I noticed that the game GUI suddenly started to let me move one unit 'on top of' a friendly unit 'next door', at which point (unless the friend was a 'transport' unit) the game crashed
This only happened with 'high speed' units, which appeared to 'override' the existence of the other unit, whilst units in tiles further away where correctly recognised. Interestingly, when the 'friend' had a 'transport' capability, the 'translots' and 'min/max weight' would be ignored and the moving unit would be 'loaded' in. The game then continued (it was even possible to 'move out' again !). Further, it wasn't possible to 'stop' on an enemy unit (so no crash, and no 'load into transport') After a lot of playing with unit speed= settings, I concluded the following :- If a tile is occupied by a unit, the 'cost to enter' is increased by 15. You can't 'stop' on enemy units. If you 'stop' on a friend, when the unit has transport capability the moving unit is loaded in, else crimson.exe crashes. This means every unit with a move of 18 or more (on land) can be moved onto a next door friend on road(3) and crash crimson.exe. A unit with a move of 15+3+3 = 21 or more can move (on road) through an enemy in front and onto a road tile beyond. Fixing this means code changes = so players of my x3 maps will just have to be careful :-) As a consequence, units with high speeds are actually capable of 'moving through' other units (which I see as a 'plus', although it's a bit odd when a Rail unit does this :-) ).
Transport weights etc
The transports system is really flexible ! Each unit has a 'weight'. A transport unit has both a 'minimum' and 'maximum' for an individual unit it's allowed to carry, as well as a total weight ('transslots')
I noted that after I multiplied all the 'weights' by 5 (see above) I had a lot more flexibility in the transport system = so that's where I left them. Plainly some units should 'never' be carried (eg. Aircraft Carrier :-) ) = so I set these to weight=99. There only other 'tweak' I made was to drop the weights of Boats (so they could be 'carried' by train, and repaired by the 'Aircraft carrier' I saw no reason why Patrol Boats shouldn't carry Infantry, so adjusted the 'max weight'. Unit a dedicated gun tractor is defined (as a new unit) I decided to allow APC's to 'carry' AA guns
NOTE == unlike Tiles (where the 'name' is irrelevant) changing a Unit name (in the .usrc) means changing the Unit names in all the Map .src
So, whilst a number of Units are badly named, I avoided making too many name changes (initially, only 'Scouts' to 'SPG')
Infantry and APC's
Infantry get a move=21, on plains(6) that's 3 hex's, on tracks(5) it's 4 and on roads (4) it's 5.
However there is a problem with Infantry - they have armour (10) which is better that AA Guns (7) and Artillery (7), and their attack power(10) is higher than that of the APC's that carry them ! They also have the ability to attack aircraft - however both these issues are easily fixed I removed Infantry AA capability and reduced their ground/ship power to 8 and their armour to 8 (and upped AA Guns and Artillery armour to 10 whilst increasing APC power to 10).
Having set Infantry speed, everything else is then 'scaled' from this
I also adjusted APC speed, and carry weights
Heavy Tanks original 'move allowance' of 7 triples to 21. That gives us moves of Road/Track/Grass = 7/5/4. Decreasing the Heavy Tank move to 20 reduces the road speed to 6 but still allows 5 (tracks) and 4 (plains) = much better.
So Heavy tanks speed=20, giving 6/5/4 Medium Tanks should be faster on road but much the same cross-country, so speed=22, giving 7/5/4 'Light' Tanks (AA Tanks and APC's) at least 1 faster than Medium Tanks, so speed=25, giving 8/6/5 Note Medium and Light Tanks can move through enemy or friends with a 15 'penalty'. Medium Tanks(22) can move through another unit on road(3+15) to another road(3) tile (3+15 +3 = 21) or a road+track combination (3+15+4 = 21), whilst Light Tanks(25) can move through another unit on grass (5 + 15 + 5) !
Whilst the Unit icon shows Self Propelled Artillery, it can't move and fire so behaves more like towed Artillery !
For movement, this unit fits between Heavy Tanks and Infantry. Setting speed=16, gives 5,4,3 (Infantry is 5,3,3 and Heavy Tanks 6/5/4 For now, I leave this Unit otherwise 'as is', however when new Units are created this unit gets renamed to Self-Propelled Guns, gets a 'move and fire' capability, has it's Attack and range reduced (from 2-6 to 2-5) and it's armour increased (the replacement 'towed artillery' can't move and fire, has better Attack and range (2-7) than SP Guns but much lower armour - and has to be 'carried' by a truck
The most useful thing about the 'Scout' unit is it's 'range' of '1-2', which means it's best played as a Self Propelled Howitzer.
I upped it's armour to that of a Medium Tank and reduced it's speed to 20 (same as a Heavy Tank). I also adjusted it's range from 1-2 to 2-3 (in recognition of the Howitzer designation) Changing it's name would mean changing every occurrence of 'scout' in all the Map .src files, so I left that to later = see my 'New Units' page)
These 'super flying tanks' get cut back to being a 'transport' unit.
Their attack values are cut to same as APC, move same as Heavy tank
Rail (and Trains)
Trains have to stick to rail tiles, so we can choose rail tile move= first and then set train speeds.
Rail should slow the movement of 'normal' units, so with grassland ('plains') = 5, I set Rail tiles 'cost to enter' to 6 (1 worse than grassland). Trains should move faster than any unit on road (but slower than Helicopters :-) ). With APC's and light tanks doing 8 on road, I decided that (troop) trains should do at least 10 rail hex's, giving me a basic basic speed=60 (troop trains). However this immediately means that Trains can 'move through' other units. An occupied rail tile 'costs' 6+15 = 21, so a train can pass through any combination of 1 occupied tile and (60-21/6) 6 Rail tiles, or 2 units and 3 Rail tiles ! This is just about acceptable (rational being each tile is really 2-4km in size and each 'unit' hundreds of men & vehicles 'spread out' over that area) trains move fast enough to 'surprise' the enemy) EXCEPT when trains move through other trains on the single track rail tiles. To make this a (bit) less obvious, I decided to give 'armoured trains' and 'rail guns' the same speed as troop trains ..
I saw no reason why Armoured Trains should get a range of 1-2 (when Tanks etc. are range 1) so I removed their ranged attack capability (and cut back their 'power')
Both AA units are unrealistic - AA Guns can't fire at ground units (and have excessive range for 'guns'), whilst 'AA Tanks' have a puny range of 1 = so can only 'attack' aircraft by moving next to them - although they can at least fire at other ground units
The existing "AA Guns" are slow moving but have a massive range of 2-6. They also can't fire on the same turn that they move. This means the behave more like a mobile 'AA Missile Battery', which 'explains' their slow speed, long range and why they can't be used against Ground or Sea units (only Air). However this also means we are missing a Unit = the towed AA Gun (see later) = for now the AA Gun will be carried by the APC from which it can be 'deployed' (like a mine) ! The AA Tank has it's speed reduced (it's way too fast) and it's terrain 'allowed to enter' to the same terrain as other tracked vehicles (no way are Tanks allowed up Mountains). However in recognition of their function, their range (against air units) is adjusted to 1-2.
Since air units count all tile moves =1, 'triple speed' leads to all air units = 3x as fast as previous !
With troop trains doing 10, I reduced (Helicopter) Gunships to 14. Even then, on small maps, this effects game play rather too much, however after I increased all Maps to at least 60 hex's wide x 40 deep (see later) I found the speed change worked well.
A few things still needed fixing (Bombers being faster than 'Fighters' for example :-)
My final Aircraft speeds :- (Ground Attack) Fighters = 18 Transport planes = 16 Interceptors = 22 Bombers = 16 (Helicopter) Gunships = 14
Submarines (and Torpedo Boats)
Submarines have numerous issues, most of which can't be simply fixed. One thing that can be fixed is Submarines are limited to 'deepwater'
This is total nonsense, since it means they can't even leave their bases. It's easy enough to add 'water' (but not shallowwater, since that would let them move 'upstream' :-) )
Submarines have a long-range 3 hex attack capability. This is not totally unrealistic compared to Heavy Tanks, which are restricted to 'next hex' but would have a range of 2-3km so a 3 hex range thus corresponds to only 6-9km (todays Submarine torpedoes can be fired from 40-50km away).
The issue is, this allows them to be used as 'Sea Artillery' from the 3rd rank (i.e. behind the Torpedo Boats in the second rank which are themselves fighting behind the Patrol Boats in the first rank). I reasoned that if Subs have 1-3 range, so should all Torpedo's = so I increased the Torpedo Boat range (against other sea units only)
The real problem with Submarines is the 'God's eye view' i.e. Subs can't 'dive'. However this can't be easily 'fixed' without software changes
Other boats and ships
Patrol Boats should, in general, be slightly better armed and armoured than Torpedo Boats (given the same speed, a lugging around a couple of heavy Torpedoes must mean less armour - and less space for heavy machine guns).
So Patrol Boats get Armour 18, power ground/ship 12 (and air 8) whilst Torpedo Boats get Armour 15, power ground/ship 10 (and 0 air)
All Boats (and Landing Craft) are limited to shallow and (medium) water, whilst Ships and Subs to medium and deep water and Aircraft Carriers to deep water only
This means Transport Ships carrying Landing Craft (see later) won't be able to 'launch' them until they reach medium water, and Transport ships carrying Hovercraft will only be able to launch them when the ship reaches a medium water hex next to a shallow water or land hex (so the Hovercraft can enter directly into shallow water or land).
Rivers and streams
I wanted to allow Light, Medium Tanks and APC's to 'ford' streams, whilst, at the same time, allowing boats (including landing craft = see later) to cross.
When I tried adding 'terrain=shallowwater' to Tanks and APC's, I found them wading out into the sea to attack boats and ships !
Further, since 'real rivers' are already made of 'shallowwater' river bank tiles (as are Beach tiles), giving the AFV's shallowwater capability wouldn't work as intended. The only other choices would be 'Restricted' (which is used for foot-bridges and Tank Traps i..e to stop ranks crossing) or Rough = which is used for Wire and slopes, which tanks can already cross.
Eventually I ended up setting 'river' tiles as 'rough' and giving boats 'rough' capability To stop the AI moving units 'up river', I had to increase the cost of moving in 'river' tiles to 7 (so it's 'always' harder to move along the river than it is to use the terrain tiles forming the banks)
Since I wanted boats to move up river only slightly slower than normal water, that in turn meant adjusting all other water tiles
To avoid sea units 'passing through' other units, the speed of Boats move had to be less than 2x sea move +15. Setting sea=6, means Boats max is 26 (1 less than 2x6+16 =27) giving them a sea move of 26/6 = 4 and a river move of 26/7 = 3. Dropping the move to 24 still lets them do 4 sea and 3 River and prevents any 'move through'. So, water tiles now 'cost' 6 (and river 7), and naval units get the following moves :- Patrol Boats = 24 (4 sea, 3 river) Torpedo Boats = 24 (4 sea, 3 river) Troopships = 18 (3) Submarines = 18 (3) Aircraft Carriers = 24 (4) Hovercraft 24 (4 sea, 3 river)
Tarmac Road bridges and Rail bridges over shallow water and streams exist, as does a 'foot bridge' over 'stream'. However, sea units are 'blocked' by all types of bridges - and this must be fixed (else Boats can't travel up shallowwater rivers)
The 'shallow water' type will be added to Tarmac Road bridges and Rail bridges. This will allow boats (and hovercraft) to pass under them (whilst land units will pass over them). Bridges over streams will be defined as type 'road', however foot bridges will be set to 'mountain' (to stop vehicles crossing) with a low cost to enter (3).
'Fences' = Barbed wire
The 15 'fence' tiles (ID 133-147, immediately before the trenches set, in .tsrc) are renamed 'wire'. They currently have a terrain type 'rough' which only allows Infantry and AA Tanks to cross = why ? if AA Tanks are allowed to cross 'fences', why not other tracked vehicles ?
Even if these 'fences' were really 'solid stone walls', Heavy Tanks would still be able to cross :-) So, step 1 = change 'fences' to 'wire' and set type 'trenches'. At the same time, I removed 'rough' from AA Tanks. Next, wire is always laid 'in the open', so anyone 'stopped' (hung up) on a barbed wire tile should have their attack and defensive values reduced (as 'fences', both attack and defense was increased !). I set attack -2 and defense -3. Finally, what should be the move= cost ? Well, I want Infantry to 'just make it' across the wire to a 'plains' tile but not (directly) into a trenches tile. So, Infantry speed 15, plains(5) gives me wire(10)
'Barricades' = Tank Traps
The 6 'barricades' tiles (directly before 'wire') are depicted as 4 or 5 white 'diamonds' on grass i.e as Tank Traps. Tank Traps allow Infantry to pass whilst blocking all Tanks except 'anti-aircraft Tanks' (which is nonsense). Worse, there is no way to 'destroy' them !
Tank Traps can be made into a type of Unit with no movement, no attack and limited defense (i.e. just like the existing Mines) which would allow them to be attacked and destroyed. HOWEVER that's worse, because then they become impassable to all units, including aircraft ! For now, about the best that can be done is set them to 'restricted' (which only Infantry is allowed into) with the same 'cost' as grassland(5) Code changes will be required to totally 'fix' the Tank Trap 'as a Unit' problem (the obvious plan is to add a 'pass over/through' parameter to Units, which fixes the 'can't fly over' issue as well)
NB. Of the 6 tiles, the first 2 look identical (3 'diamonds'), the next is 4 'diamonds', then we have 2 more identical (5 'diamonds') and finally 5 'diamonds' on rough ground. All 6 had exactly the same move cost (now 5), (so there is no practical difference between them). On the other hand, we need more hills = so (later) I dropped the first 4 and reduced these to '5 traps on grass' and '5 traps on rough'
I adjusted the move cost for 'tank traps on rough' to 6.
Next we come to "mines". The existing "mine" unit is a sort of 'concrete tank trap' (or, at Sea, a 'floating rock') since all they can be used for is to 'block' the movement of all other units (including their own). They are quite tough, but can be 'destroyed' with impunity since they don't 'fight back'. The standard definition of the 'unit = mine' has 'armour = 25', no 'power' against anything (so can inflict no damage) and is limited to 'terrain =' water, shallowwater and deepwater, all of which is plainly nonsense !
Real mines 'explode'. So I gave them 'power(ship) = 35' and 'power(ground) = 35' and reduced 'armour = 25' to 'armour = 1'. The 'disadvantage' of an 'exploding' mine is that there's nothing to stop you 'clearing' the mines using your Artillery (or other ranged unit). However this is not totally unrealistic (since it slows your attack and means you have to divert your artillery support) The 'power' setting means they get a 'decent' counter-punch when attacked, and armour 1 ensures they will die after being attacked. However Units are not compelled to attack. This means the enemy can move a unit up to a minefield but not attack it = not wise since the 'owner' of a mine can then 'direct' the mine to attack** on their own turn :-) ** Yes, I did try setting 'range' of 0 (in the hope that would prevent the owners 'firing' them), but the source code in mkunitset.cpp uses 'range=0' to 'flag' units that have no combat power against a specific unit type, so setting mines to 'range 0' also removes their 'counter-attack' capability ... When time allows I'll fix the code so 'range 0' will mean no attack but still allow a 'counter-attack' = exactly as mines should behave
The 'mine' unit has a move=0 and can still be 'deployed' by it's transport onto any 'permitted' terrain tile and 'swept' (i.e. picked up again). In fact, a (transport) Unit with 'sweeper' capability, can (if it has sufficient weight allowance), pick up any other Unit that has been set to type = mine (and that includes the enemy == i.e. mines can be 'stolen' :-) ).
The terrain restrictions on mines seemed odd (why not mine woods ??), so Mines can now be deployed into all Terrain types EXCEPT deepwater and mountains. This required a land-carrier so I pressed the APC into service (which means it now gets 'sweeper' capability ...). Note = when I allowed Trooptrains and Transport Aircraft to carry mines as 'ammunition', they suddenly turned into mine-layers, so, for now, only Patrol Boats and AP's get to carry mines :-) It turns out that any unit capabile of carrying a mine can 'deploy' them into whatever terrain is 'allowed' for the mine. So Patrol Boats can deploy mines onto a coastal/beach/river-bank ground hexes, and APC's can lay mines in rivers (or on the shore-line) = and an air transport, if allowed to carry them, couldlay mines anywhere. To address this issue, I later defined new 'terrain limited' Mine units (sea mines that can't be used on land and land-mines that can't be used at sea) along with 'Mine Sweepers' and 'Engineering Units' = see my New Units page
Other uses for 'mine' type
The only real difference between a mine and a 'normal' unit is that mines can be 'swept' (loaded into a transport) by either side, whilst normal units have to 'move into' their own transport. The only 'problem' with defining units that can be 'stolen from the enemy' (swept) is that the AI has no idea of how to handle them
The AI will build mines in its factories but will never load them onto Patrol Boats and ship them off to the front. Further, when it has a Patrol Boat next to an enemy mine, the AI will attack the mine (instead of stealing it)
However 'type=mine' does allow you to create (deployable, attackable, stealable) 'obstacles'** as a 'unit' (defined as 'type=mine') that other units (of 'type=sweeper') can 'dig up' (pick up & move) without needing to attack it.
The 'transporter' min & max weight parameters (see above) can be used to control which unit can deploy or 'sweep' which type of 'mine'.
This allows 'barrier construction' = for example, an Engineering Unit that can deploy 'real' Tank Traps - and destroy (sweep) enemy ones.
Units can have 'medic' capability (which allows them to repair other units) but not 'factory' capability. This means the Tank Traps have to be 'manufactured' in a building and carried by the Engineering (transport) unit. On arrival, the Tank traps are unloaded. Of course, as a unit, they can be attacked and destroyed by the enemy (so long as you set a 'reasonable' armour= value) A Demolition unit (transport) with 'sweeper' capability can 'pick up' the Tank Trap and remove it = when 'sweeping', the 'sweeper' unit must have the capability of entering the terrain hex where the 'target' (mine) is positioned so it's possible to limit the Demolition unit to Tank Traps in specific terrain types
One obvious unit type that should be capable of being 'picked up and removed' is the Pontoon Bridge. The problem is, of course, that 'as a unit' Pontoon Bridges can't be crossed by other units = so the Events system has to be used to 'convert' the Pontoon unit into a (bridge) terrain tile (see later)
Next page :- Unit and Terrain - (tips and tricks)