///////////////////////////////////////// // // // Improved PoW (Now works) // // by The Immortal Wombat // // // ///////////////////////////////////////// //-------------// // Variables // //-------------// int_t POW_TYPE[]; int_T POWage; int_t tmpNum; army_t tmpArmy; int_T tmpNum2; int_t IsThere; location_t tmpLoc; location_t tmpLoc2; unit_T tmpUnit2; //---------------------// // Begin Game Setup // //---------------------// HandleEvent(BeginTurn) 'GameStart' pre { POW_TYPE[0] = UnitDB(UNIT_WARRIOR); //The better the age, the better the unit you get. POW_TYPE[1] = UnitDB(UNIT_SPEARMAN); POW_TYPE[2] = UnitDB(UNIT_HOPLITE); POW_TYPE[3] = UnitDB(UNIT_MAN_AT_ARMS); POW_TYPE[4] = UnitDB(UNIT_INFANTRYMAN); POW_TYPE[5] = UnitDB(UNIT_MACHINE_GUNNER); POW_TYPE[6] = UnitDB(UNIT_HOVER_INFANTRY); DisableTrigger('GameStart'); //run once only } //----------------------// // Get Player Age // //----------------------// int_f WOUTER_GetAge(int_t thePlayer) { tmpPlayer = thePlayer; if (HasAdvance(tmpPlayer, ID_ADVANCE_CHAOS_THEORY)) { // if player has Chaos Theory, return 6; } elseif (HasAdvance(tmpPlayer, ID_ADVANCE_VERTICAL_FLIGHT_AIRCRAFT)) { // etc. return 5; } elseif (HasAdvance(tmpPlayer, ID_ADVANCE_FLINTLOCK)) { return 4; } elseif (HasAdvance(tmpPlayer, ID_ADVANCE_DARK_AGES)) { return 3; } elseif (HasAdvance(tmpPlayer, ID_ADVANCE_BRONZE_WORKING)) { return 2; } elseif (HasAdvance(tmpPlayer, ID_ADVANCE_TOOLMAKING)) { return 1; } else { // if none of above advances present, (should never happen) return 0; // age is age 0 } } //--------------------------------------------// // Capturing event (should be unnecessary) // //--------------------------------------------// int_f CaptureUnit(location_t theLocation){ // invented function to create unit depending on age tmpLoc2 = theLocation; POWage = WOUTER_GetAge(tmpPlayer); //get age Event:CreateUnit(tmpPlayer, tmpLoc2, 0, POW_TYPE[POWage], 1); //create unit. If in age 1, create POW_TYPE[1] Event:GroupOrder(army[0]); //This is set up like this because of bugs just using the CreateUnit event } //------------------// // Battle event // //------------------// HandleEvent(VictoryMoveOrder) 'capture' pre { tmpArmy = army[0]; tmpNum = tmpArmy.size; tmpPlayer = army[0].owner; tmpLoc = army[0].location; IsThere = 0; for(i = 0; i < tmpNum; i = i + 1) { GetUnitFromArmy(tmpArmy, i, tmpUnit); tmpNum2 = tmpUnit.type; if(tmpNum2 >= 107 && tmpNum <= 117){ // number of units. 107-117 are wonder-units IsThere = 1; //GOT ONE!! } } if(IsThere == 1){ //If it was there, POWage = WOUTER_GetAge(tmpPlayer); //get age (for messaging purposes) if(POWage == 6){ message(tmpPlayer, 'six'); CaptureUnit(tmpLoc); //and run the captureunit function } elseif(POWage == 5){ message(tmpPlayer, 'five'); CaptureUnit(tmpLoc); } elseif(POWage == 4){ message(tmpPlayer, 'four'); CaptureUnit(tmpLoc); } elseif(POWage == 3){ message(tmpPlayer, 'three'); CaptureUnit(tmpLoc); } elseif(POWage == 2){ message(tmpPlayer, 'two'); CaptureUnit(tmpLoc); } elseif(POWage == 1){ message(tmpPlayer, 'one'); CaptureUnit(tmpLoc); } } } //------------------------------// // Messageboxes create units // // depending on button chosen // //------------------------------// messagebox 'six' { Show(); Title(ID_CAPTURE); text(ID_CAPTURE_T_FIVE); button(ID_HOVER){ Kill(); } } messagebox 'five' { Show(); Title(ID_CAPTURE); text(ID_CAPTURE_T_FIVE); button(ID_GUNNER){ Kill(); } } messagebox 'four'{ Show(); Title(ID_CAPTURE); text(ID_CAPTURE_T_FOUR); button(ID_INF){ Kill(); } } messagebox 'three' { Show(); Title(ID_CAPTURE); text(ID_CAPTURE_T_THREE); button(ID_MANATARMS){ Kill(); } } messagebox 'two'{ Show(); Title(ID_CAPTURE); Text(ID_CAPTURE_T_TWO); button(ID_HOPLITE){ Kill(); } } messagebox 'one'{ Show(); Title(ID_CAPTURE); text(ID_CAPTURE_T_ONE); button(ID_SPEAR){ Kill(); } }