Grymme
Posts: 1821
Joined: 12/16/2007 Status: offline

Jay. Thanks. Well, it will be fun to make a mod on a somewhat popular topic for a change. I really really liked the Vietnam mod, but i was realistic enough to realize that it wouldnt be the most popular scenario that people would want (not to speak of making mods of strange wars in Central America). Interestingly though it seems that that particular mod seems to have had some devouted people. I have had several people email me who bought the computergame just to buy the Vietnam mod. Now i was getting off topic. The reason i came into a Market Garden scenario is that the same guys who made the Vietnam boardgame (Victory Games) also have made a Market Garden boardgame (Hells Highway). Since i really really like Victory Games boardgames and would like to make mods of all their boardgames i started looking into it. In the end i felt their scale wrong for the subject. If you are fighting Market Garden you really want to feel the fighting from house to house in Arnhem. So in the end i choose to use the scale and look to the mechanics in the SPI monster boardghame Highway to the Reich instead. Anyway this is a longwinding way to say that the boardgame that will be inspiring this mod will be SPI/DG Highway to the Reich http://www.boardgamegeek.com/boardgame/37912/highwaytothereich2ndedition It will probably not follow as close to the Boardgame as Vietnam did. But i am quite sure i can achieve a cool mod anyway. Anyway. I am still working on the the event to drop the paratroopers. The skeleto of the Airdrop event has grown a little. First here are the rules written as from the briefing Air landing rules Airlanding is attempted by playing the appropriate action card and choosing the hex where you want the unit to land. Each time you try and land a unit there is a chance of each subunit scattering and landing in another hex than the one intended. Scatter is determined by a random 100diceroll. To the value is added the weathervalue of the route chosen. Weather changes twice each day and is different if you choose the northern approach route or the southern approach route. A roll of 50 or less means that the unit does not scatter 5170 unit scatters +/ 1 hex in either direction 7180 there is a 50 % chance unit scatters in +/2 hexes in either direction After scatter is resolved there is a chance that the unit takes losses during the landing. The chance and size of losses depends on what type of landscape the unit lands in. Terrain type...............................Percentage of loss in unit Plain.........................................05% Mixed terrain..............................010% Light forest................................020% Heavy forest..............................1030% Swamp......................................020% Hills...........................................020% Mountain....................................2040% Suburban....................................020% Urban.........................................2040% City...........................................2040% River..........................................Unit automatically lost Impassable..................................Unit automatically lost The number of units landing on a single hex also affects losses. It is unwise to land more units in the exact same hex since losses are rolled for all units in a hex each time. After scatter and losses are determined units will suffer an initial readiness penalty. Artillery units will always suffer a 100% readiness penalty. For other units the readiness penalty is calculated as follows (0,5*50+0,25*25+0,25*25+0,25*25). Landing units will only have 25AP left. Here are the current rules for air landing written in code form 0) SETVAR: TempVar11 = 0 1) ' Decide how many units drop 2) CHECK: TempVar0 == 5 3) SETVAR: TempVar17 = 5 4) END CHECK 5) CHECK: TempVar0 == 0 6) SETVAR: TempVar17 = 5 7) END CHECK 8) CHECK: TempVar0 == 1 9) SETVAR: TempVar17 = 6 10) END CHECK 11) CHECK: TempVar0 == 2 12) SETVAR: TempVar17 = 3 13) END CHECK 14) CHECK: TempVar0 == 3 15) SETVAR: TempVar17 = 6 16) END CHECK 17) CHECK: TempVar0 == 4 18) SETVAR: TempVar17 = 4 19) END CHECK 20) CHECK: TempVar0 == 6 21) SETVAR: TempVar17 = 4 22) END CHECK 23) LOOPER: TempVar12 FROM 0 TO TempVar17 24) SETVAR: TempVar10 = CheckRandomPercent 25) ' adjust for flight route chosen 26) CHECK: Gameslot_Use N Route(#10) == 1 27) SETVAR: TempVar10 + Gameslot_N R Weather(#8) 28) END CHECK 29) CHECK: Gameslot_Use S Route(#11) == 1 30) SETVAR: TempVar10 + Gameslot_S R weather(#7) 31) END CHECK 32) CHECK: TempVar10 > 50 33) CHECK: TempVar10 =< 70 34) SETVAR: TempVar2  1 35) SETVAR: TempVar3  1 36) CHECK: CheckRandomPercent < 51 37) SETVAR: TempVar2 + 2 38) END CHECK 39) CHECK: CheckRandomPercent < 51 40) SETVAR: TempVar3 + 2 41) END CHECK 42) END CHECK 43) END CHECK 44) CHECK: TempVar10 > 71 45) CHECK: TempVar10 =< 80 46) SETVAR: TempVar2  2 47) SETVAR: TempVar3  2 48) CHECK: CheckRandomPercent < 51 49) SETVAR: TempVar3 + 4 50) END CHECK 51) CHECK: CheckRandomPercent < 51 52) SETVAR: TempVar2 + 4 53) END CHECK 54) END CHECK 55) END CHECK 56) ' Losses because of landscape 57) SETVAR: TempVar16 = 5 58) CHECK: CheckLandscapeType(TempVar2, TempVar3) == 0 59) SETVAR: TempVar16 = 20 60) END CHECK 61) CHECK: CheckLandscapeType(TempVar2, TempVar3) == 2 62) SETVAR: TempVar16 = 10 63) END CHECK 64) CHECK: CheckLandscapeType(TempVar2, TempVar3) => 0 65) CHECK: CheckLandscapeType(TempVar2, TempVar3) =< 9 66) SETVAR: TempVar15 = CheckRandomPercent 67) CHECK: CheckLandscapeType(TempVar2, TempVar3) == 3 68) SETVAR: TempVar15 + 50 69) END CHECK 70) CHECK: CheckLandscapeType(TempVar2, TempVar3) => 6 71) CHECK: CheckLandscapeType(TempVar2, TempVar3) =< 7 72) SETVAR: TempVar15 + 100 73) END CHECK 74) END CHECK 75) CHECK: CheckLandscapeType(TempVar2, TempVar3) == 9 76) SETVAR: TempVar15 + 100 77) END CHECK 78) END CHECK 79) END CHECK 80) SETVAR: TempVar15 / TempVar16 81) ' adding units 82) CHECK: TempVar0 == 5 83) CHECK: TempVar11 == 0 84) EXECUTE: ExecAddUnit(5, TempVar2, TempVar3, 0) 85) END CHECK 86) CHECK: TempVar11 == 2 87) EXECUTE: ExecAddUnit(5, TempVar2, TempVar3, 0) 88) END CHECK 89) CHECK: TempVar11 == 1 90) EXECUTE: ExecAddUnit(5, TempVar2, TempVar3, 0) 91) END CHECK 92) CHECK: TempVar11 == 3 93) EXECUTE: ExecAddUnit(6, TempVar2, TempVar3, 0) 94) END CHECK 95) END CHECK 96) CHECK: TempVar0 == 4 97) CHECK: TempVar11 == 0 98) EXECUTE: ExecAddUnit(9, TempVar2, TempVar3, 0) 99) END CHECK 100) CHECK: TempVar11 == 1 101) EXECUTE: ExecAddUnit(9, TempVar2, TempVar3, 0) 102) END CHECK 103) CHECK: TempVar11 == 2 104) EXECUTE: ExecAddUnit(9, TempVar2, TempVar3, 0) 105) END CHECK 106) CHECK: TempVar11 == 3 107) EXECUTE: ExecAddUnit(12, TempVar2, TempVar3, 0) 108) END CHECK 109) CHECK: TempVar11 == 4 110) EXECUTE: ExecAddUnit(18, TempVar2, TempVar3, 0) 111) END CHECK 112) END CHECK 113) CHECK: TempVar0 == 0 114) CHECK: TempVar11 == 0 115) EXECUTE: ExecAddUnit(15, TempVar2, TempVar3, 0) 116) END CHECK 117) CHECK: TempVar11 > 0 118) CHECK: TempVar11 =< 3 119) EXECUTE: ExecAddUnit(17, TempVar2, TempVar3, 0) 120) END CHECK 121) END CHECK 122) CHECK: TempVar11 == 4 123) EXECUTE: ExecAddUnit(5, TempVar2, TempVar3, 0) 124) END CHECK 125) CHECK: TempVar11 == 5 126) EXECUTE: ExecAddUnit(11, TempVar2, TempVar3, 0) 127) END CHECK 128) END CHECK 129) CHECK: TempVar0 == 1 130) CHECK: TempVar11 > 0 131) CHECK: TempVar11 =< 6 132) EXECUTE: ExecAddUnit(8, TempVar2, TempVar3, 0) 133) END CHECK 134) END CHECK 135) CHECK: TempVar11 == 6 136) EXECUTE: ExecAddUnit(18, TempVar2, TempVar3, 0) 137) END CHECK 138) END CHECK 139) CHECK: TempVar0 == 2 140) CHECK: TempVar11 > 0 141) EXECUTE: ExecAddUnit(16, TempVar2, TempVar3, 0) 142) END CHECK 143) END CHECK 144) CHECK: TempVar0 == 3 145) CHECK: TempVar11 == 0 146) EXECUTE: ExecAddUnit(15, TempVar2, TempVar3, 0) 147) END CHECK 148) CHECK: TempVar11 > 0 149) CHECK: TempVar11 < 4 150) EXECUTE: ExecAddUnit(10, TempVar2, TempVar3, 0) 151) END CHECK 152) END CHECK 153) CHECK: TempVar11 == 4 154) EXECUTE: ExecAddUnit(18, TempVar2, TempVar3, 0) 155) END CHECK 156) CHECK: TempVar11 == 5 157) EXECUTE: ExecAddUnit(7, TempVar2, TempVar3, 0) 158) END CHECK 159) END CHECK 160) CHECK: TempVar0 == 6 161) CHECK: TempVar11 == 0 162) EXECUTE: ExecAddUnit(15, TempVar2, TempVar3, 0) 163) END CHECK 164) CHECK: TempVar11 > 0 165) CHECK: TempVar11 < 4 166) EXECUTE: ExecAddUnit(10, TempVar2, TempVar3, 0) 167) END CHECK 168) END CHECK 169) CHECK: TempVar11 == 4 170) EXECUTE: ExecAddUnit(18, TempVar2, TempVar3, 0) 171) END CHECK 172) END CHECK 173) EXECUTE: ExecRemoveTroops(TempVar2, TempVar3, 0, TempVar15) 174) EXECUTE: ExecRemoveTroops(TempVar2, TempVar3, 1, TempVar15) 175) EXECUTE: ExecRemoveTroops(TempVar2, TempVar3, 2, TempVar15) 176) EXECUTE: ExecRemoveTroops(TempVar2, TempVar3, 3, TempVar15) 177) ' Readines & AP of landed units 178) SETVAR: TempVar15 = CheckTotalUnits 179) CHECK: CheckRandomPercent < 50 180) EXECUTE: ExecUnitRdnModify(TempVar15, 50, 1, 1) 181) END CHECK 182) CHECK: CheckRandomPercent < 50 183) EXECUTE: ExecUnitRdnModify(TempVar15, 25, 1, 1) 184) END CHECK 185) CHECK: CheckRandomPercent < 50 186) EXECUTE: ExecUnitRdnModify(TempVar15, 25, 1, 1) 187) END CHECK 188) CHECK: CheckRandomPercent < 50 189) EXECUTE: ExecUnitRdnModify(TempVar15, 25, 1, 1) 190) END CHECK 191) CHECK: CheckUnitSFType(TempVar15, 2, 1) > 0 192) EXECUTE: ExecUnitRdnModify(TempVar15, 75, 1, 1) 193) END CHECK 194) EXECUTE: ExecUnitApModify(TempVar15, 75, 1, 1) 195) ' remove losses and destroy units in impassable terrain 196) CHECK: CheckLandscapeType(TempVar2, TempVar3) == 1 197) SETVAR: TempVar14 = CheckTotalUnits 198) EXECUTE: ExecMessage(0, 2, 1, 1) 199) EXECUTE: ExecRemoveunit(TempVar14) 200) END CHECK 201) CHECK: CheckLandscapeType(TempVar2, TempVar3) == 50 202) SETVAR: TempVar14 = CheckTotalUnits 203) EXECUTE: ExecMessage(0, 2, 1, 1) 204) EXECUTE: ExecRemoveunit(TempVar14) 205) END CHECK 206) SETVAR: TempVar11 + 1 207) END LOOPER 208) END CHECK Finally screenshot shows units during a night round.
Attachment (1)
_____________________________
