//========================================================================================== // // pacman_v2.gm // // Who When What //------------------------------------------------------------------------------------------ // palota 11 November 2011 Initial Script // //========================================================================================== // global Map = { Debug = 0, monsterPos = 0, //paththrough to avoid red monster NavM = function(_this, x1,y1,z1, x2,y2,z2) { _this.Goto(Vec3(x1,y1,z1)); _this.Goto(Vec3(x2,y2,z2)); }, Navigation = { monster_sw = { EvalFunc = function(_this) { return Map.monsterPos>=2 && Map.monsterPos<=5; }, navigate=function(_this){ Map.NavM(_this, 794.601, 1880.551, 24.125, 2556.482, 1897.436, 24.125); } }, monster_s = { EvalFunc = function(_this) { return Map.monsterPos>=3 && Map.monsterPos<=4; }, navigate=function(_this){ Map.NavM(_this, 794.601, 1880.551, 24.125, 2556.482, 1897.436, 24.125); } }, monster_e = { EvalFunc = function(_this) { return Map.monsterPos>=2 && Map.monsterPos<=3; }, navigate=function(_this){ Map.NavM(_this, 2503.585, 1253.081, 28.125, 2519.882, 1798.793, 28.125); } }, monster_ne = { EvalFunc = function(_this) { return Map.monsterPos>=1 && Map.monsterPos<=2; }, navigate=function(_this){ Map.NavM(_this, 2556.482, 1897.436, 24.125, 794.601, 1880.551, 24.125); } }, monster_nw = { EvalFunc = function(_this) { return Map.monsterPos>=6 && Map.monsterPos<=7; }, navigate=function(_this){ Map.NavM(_this, 1098.783, 2567.899, 28.125, 810.520, 2330.407, 24.125); } }, monster_w = { EvalFunc = function(_this) { return Map.monsterPos>=5 && Map.monsterPos<=6; }, navigate=function(_this){ Map.NavM(_this, 794.601, 1880.551, 24.125, 804.725, 1248.878, 28.125); } }, }, monsterscript_goto = function( trigger ) { v = ToVector(trigger.Action); if(v.x>0){ sleep(1.5); Map.monsterPos=1; } else if(v.y<0){ Map.monsterPos=2; sleep(2); Map.monsterPos=3; } else if(v.x<0){ Map.monsterPos=4; sleep(3); Map.monsterPos=5; } else if(v.y>0){ Map.monsterPos=6; sleep(1); Map.monsterPos=7; } //Util.MapDebugPrint( "monsterPos=" + Map.monsterPos ); }, SetBarricade = function(b) { SetAvailableMapGoals( TEAM.ALLIES, b, { "PLANT_cherry", "ATTACK_cherry.*", }); SetAvailableMapGoals( TEAM.AXIS, b, "DEFEND_cherry.*" ); }, barricade_Destroyed = function( trigger ) { Map.SetBarricade(true); Util.MapDebugPrint( "barricade_Destroyed" ); }, barricade_Built = function( trigger ) { Map.SetBarricade(false); Util.MapDebugPrint( "barricade_Built" ); }, cherry_Destroyed = function( trigger ) { ETUtil.WinningChat( TEAM.ALLIES ); ETUtil.LosingChat( TEAM.AXIS ); Util.MapDebugPrint( "cherry_Destroyed" ); }, }; global OnMapLoad = function() { OnTrigger( "The Axis wall has been constructed.", Map.barricade_Built ); OnTrigger( "The Axis wall has been breached.", Map.barricade_Destroyed ); OnTrigger( "Allies have destroyed the cherry.", Map.cherry_Destroyed ); OnTrigger( "monsterscript_goto", Map.monsterscript_goto ); Util.DisableGoal( ".*", true ); Util.EnableGoal(".*cabinet.*"); SetAvailableMapGoals( TEAM.AXIS, true, "BUILD_barricade" ); SetAvailableMapGoals( TEAM.ALLIES, true, { "PLANT_barricade", ".*_l.*", }); SetAvailableMapGoals( TEAM.AXIS, true, ".*_x.*" ); Map.SetBarricade(true); SetGoalPriority("ATTACK_cherry.*", 0.6); WeaponTable.SetWeaponAvailability( CLASS.SOLDIER, WEAPON.PANZERFAUST, false ); MapRoutes = { BUILD_barricade = { ROUTE_axis_spawn = { ROUTE_n1 = {}, ROUTE_w3 = {}, } }, PLANT_barricade = { ROUTE_allied_spawn = { ROUTE_a1 = { ROUTE_e1 = { ROUTE_w3 = {}, ROUTE_c2 = { Weight=0.5 }, ROUTE_e2 = {}, }, ROUTE_s3 = {}, ROUTE_c4 = {}, }, ROUTE_a2 = { ROUTE_e1 = {}, ROUTE_c4 = { ROUTE_c3 = { Weight=2 }, ROUTE_c2 = {}, }, }, ROUTE_a3 = { Weight=2, ROUTE_s1 = { ROUTE_s3 = {}, ROUTE_w2 = { ROUTE_c3 = {}, ROUTE_w3 = {}, }, }, ROUTE_s2 = { ROUTE_a1 = {}, ROUTE_s3 = {}, ROUTE_s4 = { ROUTE_c4 = {}}, }, ROUTE_w1 = { ROUTE_wcab = { ROUTE_w2 = {}}}, }, } }, }; MapRoutes["DEFEND_x[3458]"] = { ROUTE_axis_spawn = { ROUTE_n2 = { ROUTE_ecab = {}}, ROUTE_n3 = { ROUTE_c2 = {}}, } }; MapRoutes.PLANT_cherry = MapRoutes.PLANT_barricade; MapRoutes["DEFEND_cherry.*"] = MapRoutes.BUILD_barricade; MapRoutes["ATTACK_cherry.*"] = MapRoutes.PLANT_barricade; MapRoutes["ATTACK_l[3456]"] = MapRoutes.PLANT_barricade; Util.Routes(MapRoutes); Util.MapDebugPrint( "Omni-bot map script for " + GetMapName() + " executed." ); };