public TankController( IPlayStyle playstyle )
        {
            this.playstyle = playstyle;

            csai = CSAI.GetInstance();
            aicallback = csai.aicallback;
            logfile = LogFile.GetInstance();

            unitdefhelp = new UnitDefHelp( aicallback );
            unitcontroller = UnitController.GetInstance();
            enemycontroller = EnemyController.GetInstance();
            buildtable = BuildTable.GetInstance();

            enemyselector = new EnemySelector( 110, false, false );

            attackpackcoordinator = new AttackPackCoordinator( TankDefsById );
            spreadsearchpackcoordinator = new SpreadSearchPackCoordinator( TankDefsById );
            movetopackcoordinator = new MoveToPackCoordinator( TankDefsById );
            guardpackcoordinator = new GuardPackCoordinator( TankDefsById );

            packcoordinatorselector = new PackCoordinatorSelector();
            packcoordinatorselector.LoadCoordinator( attackpackcoordinator );
            packcoordinatorselector.LoadCoordinator( spreadsearchpackcoordinator );
            packcoordinatorselector.LoadCoordinator( movetopackcoordinator );
            packcoordinatorselector.LoadCoordinator( guardpackcoordinator );

            logfile.WriteLine( "*TankController Initialized*" );
        }
Beispiel #2
0
        BuildPlanner()
        {
            csai = CSAI.GetInstance();
            aicallback = csai.aicallback;
            logfile = LogFile.GetInstance();

            unitdefhelp = new UnitDefHelp( aicallback );

            mapwidth = aicallback.GetMapWidth();
            mapheight = aicallback.GetMapHeight();
        }
Beispiel #3
0
        public FactoryController( IPlayStyle playstyle )
        {
            this.playstyle = playstyle;

            csai = CSAI.GetInstance();
            aicallback = csai.aicallback;
            logfile = LogFile.GetInstance();
            buildtable = BuildTable.GetInstance();
            unitcontroller = UnitController.GetInstance();

            unitdefhelp = new UnitDefHelp( aicallback );

            csai.RegisterVoiceCommand( "dumpfactories", new CSAI.VoiceCommandHandler( DumpFactories ) );
        }
        public EnemySelector( double maxenemyspeed, bool WaterOk, bool BadTerrainOk )
        {
            csai = CSAI.GetInstance();
            aicallback = csai.aicallback;
            logfile = LogFile.GetInstance();

               // csai.EnemyEntersLOSEvent += new CSAI.EnemyEntersLOSHandler( EnemyEntersLOS );

            enemycontroller = EnemyController.GetInstance();
            unitdefhelp = new UnitDefHelp( aicallback );

            this.maxenemyspeed = maxenemyspeed;
            this.WaterOk = WaterOk;
            this.BadTerrainOk = BadTerrainOk;
        }
        // do we need this???  handled by specific controllers???
        //IntArrayList commanders = new IntArrayList();
        //IntArrayList constructors = new IntArrayList();
        //IntArrayList metalcollectors = new IntArrayList();
        //IntArrayList energycollectors = new IntArrayList();
        //IntArrayList groundattack = new IntArrayList();
        
        UnitController()
        {
            csai = CSAI.GetInstance();
            aicallback = csai.aicallback;
            logfile = LogFile.GetInstance();
            unitdefhelp = new UnitDefHelp( aicallback );
            
            csai.UnitFinishedEvent += new CSAI.UnitFinishedHandler( this.NewUnitFinished );
            csai.UnitDestroyedEvent += new CSAI.UnitDestroyedHandler( this.UnitDestroyed );   

            csai.RegisterVoiceCommand( "killallfriendly", new CSAI.VoiceCommandHandler( this.VoiceCommandKillAllFriendly ) );
            csai.RegisterVoiceCommand( "countunits", new CSAI.VoiceCommandHandler( this.VoiceCommandCountUnits ) );
            
            logfile.WriteLine ("*UnitController initialized*");
        }
        // protected constructor to force Singleton instantiation
        Metal()
        {
            csai = CSAI.GetInstance();
            aicallback = csai.aicallback;
            logfile = LogFile.GetInstance();
            unitcontroller = UnitController.GetInstance();

            unitdefhelp = new UnitDefHelp( aicallback );

            ExtractorRadius = aicallback.GetExtractorRadius();

            unitcontroller.UnitAddedEvent += new UnitController.UnitAddedHandler( UnitAdded );
            unitcontroller.UnitRemovedEvent += new UnitController.UnitRemovedHandler( UnitRemoved );

            csai.RegisterVoiceCommand( "showmetalspots", new CSAI.VoiceCommandHandler( this.DrawMetalSpotsCommand ) );
        }
Beispiel #7
0
        BuildMap()
        {
            csai = CSAI.GetInstance();
            aicallback = csai.aicallback;
            logfile = LogFile.GetInstance();

            unitdefhelp = new UnitDefHelp( aicallback );
            unitcontroller = UnitController.GetInstance();

            csai.UnitCreatedEvent += new CSAI.UnitCreatedHandler( UnitCreated );
            csai.UnitDestroyedEvent += new CSAI.UnitDestroyedHandler( UnitDestroyed );

            unitcontroller.UnitAddedEvent += new UnitController.UnitAddedHandler( UnitCreated );

            Init();
        }
Beispiel #8
0
        }       // Singleton pattern

        Metal() // protected constructor to force Singleton instantiation
        {
            csai           = CSAI.GetInstance();
            aicallback     = csai.aicallback;
            logfile        = LogFile.GetInstance();
            unitcontroller = UnitController.GetInstance();

            unitdefhelp = new UnitDefHelp(aicallback);

            ExtractorRadius = aicallback.GetExtractorRadius();

            csai.UnitCreatedEvent           += new CSAI.UnitCreatedHandler(UnitAdded);
            unitcontroller.UnitAddedEvent   += new UnitController.UnitAddedHandler(UnitAdded);
            unitcontroller.UnitRemovedEvent += new UnitController.UnitRemovedHandler(UnitRemoved);

            csai.RegisterVoiceCommand("showmetalspots", new CSAI.VoiceCommandHandler(this.DrawMetalSpotsCommand));
        }
Beispiel #9
0
        FriendlyUnitPositionObserver()
        {
            csai       = CSAI.GetInstance();
            aicallback = csai.aicallback;
            logfile    = LogFile.GetInstance();

            //csai.UnitFinishedEvent += new CSAI.UnitFinishedHandler( this.NewUnitFinished );
            //csai.UnitDestroyedEvent += new CSAI.UnitDestroyedHandler( this.UnitDestroyed );

            csai.TickEvent += new CSAI.TickHandler(Tick);

            unitcontroller = UnitController.GetInstance();
            unitcontroller.UnitAddedEvent   += new UnitController.UnitAddedHandler(UnitAdded);
            unitcontroller.UnitRemovedEvent += new UnitController.UnitRemovedHandler(UnitRemoved);

            unitdefhelp = new UnitDefHelp(aicallback);
        }
        FriendlyUnitPositionObserver()
        {
            csai = CSAI.GetInstance();
            aicallback = csai.aicallback;
            logfile = LogFile.GetInstance();

            //csai.UnitFinishedEvent += new CSAI.UnitFinishedHandler( this.NewUnitFinished );
            //csai.UnitDestroyedEvent += new CSAI.UnitDestroyedHandler( this.UnitDestroyed );

            csai.TickEvent += new CSAI.TickHandler( Tick );

            unitcontroller = UnitController.GetInstance();
            unitcontroller.UnitAddedEvent += new UnitController.UnitAddedHandler( UnitAdded );
            unitcontroller.UnitRemovedEvent += new UnitController.UnitRemovedHandler( UnitRemoved );

            unitdefhelp = new UnitDefHelp( aicallback );
        }
Beispiel #11
0
        public Hashtable FactoriesByTypeName        = new Hashtable(); // deployedid of factories hashed by typename (eg "armvp")

        public FactoryController(IPlayStyle playstyle)
        {
            this.playstyle = playstyle;

            csai           = CSAI.GetInstance();
            aicallback     = csai.aicallback;
            logfile        = LogFile.GetInstance();
            buildtable     = BuildTable.GetInstance();
            unitcontroller = UnitController.GetInstance();

            unitdefhelp = new UnitDefHelp(aicallback);

            csai.UnitFinishedEvent  += new CSAI.UnitFinishedHandler(csai_UnitFinishedEvent);
            csai.UnitDestroyedEvent += new CSAI.UnitDestroyedHandler(csai_UnitDestroyedEvent);

            csai.RegisterVoiceCommand("dumpfactories", new CSAI.VoiceCommandHandler(DumpFactories));
        }
        public EnemySelector(double maxenemyspeed, IUnitDef typicalunitdef)
        {
            csai       = CSAI.GetInstance();
            aicallback = csai.aicallback;
            logfile    = LogFile.GetInstance();

            // csai.EnemyEntersLOSEvent += new CSAI.EnemyEntersLOSHandler( EnemyEntersLOS );

            enemycontroller = EnemyController.GetInstance();
            unitdefhelp     = new UnitDefHelp(aicallback);

            this.maxenemyspeed = maxenemyspeed;
            this.WaterOk       = WaterOk;
            this.BadTerrainOk  = BadTerrainOk;

            this.typicalunitdef = typicalunitdef;
            //    startarea = MovementMaps.GetInstance().GetArea(typicalunitdef, startpos);
        }
        public EnemySelector2(double maxenemyspeed, IUnitDef typicalunitdef)
        {
            csai = CSAI.GetInstance();
            aicallback = csai.aicallback;
            logfile = LogFile.GetInstance();

            // csai.EnemyEntersLOSEvent += new CSAI.EnemyEntersLOSHandler( EnemyEntersLOS );

            enemycontroller = EnemyController.GetInstance();
            unitdefhelp = new UnitDefHelp(aicallback);

            this.maxenemyspeed = maxenemyspeed;
            this.WaterOk = WaterOk;
            this.BadTerrainOk = BadTerrainOk;

            this.typicalunitdef = typicalunitdef;
            //    startarea = MovementMaps.GetInstance().GetArea(typicalunitdef, startpos);
        }
Beispiel #14
0
        public int GetArea(IUnitDef unitdef, Float3 currentpos)
        {
            int         mapx        = (int)(currentpos.x / 16);
            int         mapy        = (int)(currentpos.z / 16);
            UnitDefHelp unitdefhelp = new UnitDefHelp(aicallback);

            if (unitdefhelp.IsBoat(unitdef))
            {
                return(boatareas[mapx, mapy]);
            }
            else if (unitdef.movedata.maxSlope > maxvehicleslope)  // so infantry, approximately
            {
                return(infantryareas[mapx, mapy]);
            }
            else // vehicle, approximately
            {
                return(vehicleareas[mapx, mapy]);
            }
        }
Beispiel #15
0
        EnemyMap()
        {
            csai = CSAI.GetInstance();
            aicallback = csai.aicallback;
            logfile = LogFile.GetInstance();

            enemymap = new int[ mapwidth / 2, mapheight / 2 ];

            unitdefhelp = new UnitDefHelp( aicallback );
            //unitcontroller = UnitController.GetInstance();
            enemycontroller = EnemyController.GetInstance();

            //csai.UnitCreatedEvent += new CSAI.UnitCreatedHandler( UnitCreated );
            //csai.UnitDestroyedEvent += new CSAI.UnitDestroyedHandler( UnitDestroyed );

            enemycontroller.NewStaticEnemyAddedEvent += new EnemyController.NewStaticEnemyAddedHandler( StaticEnemyAdded );
            enemycontroller.EnemyRemovedEvent += new EnemyController.EnemyRemovedHandler( EnemyRemoved );

            Init();
        }
Beispiel #16
0
        EnemyMap()
        {
            csai       = CSAI.GetInstance();
            aicallback = csai.aicallback;
            logfile    = LogFile.GetInstance();

            enemymap = new int[mapwidth / 2, mapheight / 2];

            unitdefhelp = new UnitDefHelp(aicallback);
            //unitcontroller = UnitController.GetInstance();
            enemycontroller = EnemyController.GetInstance();

            //csai.UnitCreatedEvent += new CSAI.UnitCreatedHandler( UnitCreated );
            //csai.UnitDestroyedEvent += new CSAI.UnitDestroyedHandler( UnitDestroyed );

            enemycontroller.NewStaticEnemyAddedEvent += new EnemyController.NewStaticEnemyAddedHandler(StaticEnemyAdded);
            enemycontroller.EnemyRemovedEvent        += new EnemyController.EnemyRemovedHandler(EnemyRemoved);

            Init();
        }
Beispiel #17
0
        BuildMap()
        {
            csai       = CSAI.GetInstance();
            aicallback = csai.aicallback;
            logfile    = LogFile.GetInstance();

            unitdefhelp    = new UnitDefHelp(aicallback);
            unitcontroller = UnitController.GetInstance();

            csai.UnitCreatedEvent   += new CSAI.UnitCreatedHandler(UnitCreated);
            csai.UnitDestroyedEvent += new CSAI.UnitDestroyedHandler(UnitDestroyed);

            unitcontroller.UnitAddedEvent += new UnitController.UnitAddedHandler(UnitCreated);

            if (csai.DebugOn)
            {
                csai.RegisterVoiceCommand("dumpbuildmap", new CSAI.VoiceCommandHandler(DumpBuildMap));
            }

            Init();
        }
        EnemyController()
        {
            csai = CSAI.GetInstance();
            aicallback = csai.aicallback;
            logfile = LogFile.GetInstance();

            autoshowenemies = csai.DebugOn;

            unitcontroller = UnitController.GetInstance();

            csai.TickEvent += new CSAI.TickHandler( Tick );
            csai.EnemyEnterRadarEvent += new CSAI.EnemyEnterRadarHandler( this.EnemyEnterRadar );
            csai.EnemyEnterLOSEvent += new CSAI.EnemyEnterLOSHandler( this.EnemyEnterLOS );
            csai.EnemyLeaveRadarEvent += new CSAI.EnemyLeaveRadarHandler( this.EnemyLeaveRadar );
            csai.EnemyDestroyedEvent += new CSAI.EnemyDestroyedHandler( this.EnemyDestroyed );

            csai.RegisterVoiceCommand( "enemiescount", new CSAI.VoiceCommandHandler( VoiceCommandCountEnemies ) );
            csai.RegisterVoiceCommand( "showenemies", new CSAI.VoiceCommandHandler( VoiceCommandShowEnemies ) );
            csai.RegisterVoiceCommand( "autoshowenemieson", new CSAI.VoiceCommandHandler( VoiceCommandAutoShowEnemiesOn ) );
            csai.RegisterVoiceCommand( "autoshowenemiesoff", new CSAI.VoiceCommandHandler( VoiceCommandAutoShowEnemiesOff ) );

            unitdefhelp = new UnitDefHelp( aicallback );
        }
Beispiel #19
0
        EnemyController()
        {
            csai       = CSAI.GetInstance();
            aicallback = csai.aicallback;
            logfile    = LogFile.GetInstance();

            autoshowenemies = csai.DebugOn;

            unitcontroller = UnitController.GetInstance();

            csai.TickEvent            += new CSAI.TickHandler(Tick);
            csai.EnemyEnterRadarEvent += new CSAI.EnemyEnterRadarHandler(this.EnemyEnterRadar);
            csai.EnemyEnterLOSEvent   += new CSAI.EnemyEnterLOSHandler(this.EnemyEnterLOS);
            csai.EnemyLeaveRadarEvent += new CSAI.EnemyLeaveRadarHandler(this.EnemyLeaveRadar);
            csai.EnemyDestroyedEvent  += new CSAI.EnemyDestroyedHandler(this.EnemyDestroyed);

            csai.RegisterVoiceCommand("enemiescount", new CSAI.VoiceCommandHandler(VoiceCommandCountEnemies));
            csai.RegisterVoiceCommand("showenemies", new CSAI.VoiceCommandHandler(VoiceCommandShowEnemies));
            csai.RegisterVoiceCommand("autoshowenemieson", new CSAI.VoiceCommandHandler(VoiceCommandAutoShowEnemiesOn));
            csai.RegisterVoiceCommand("autoshowenemiesoff", new CSAI.VoiceCommandHandler(VoiceCommandAutoShowEnemiesOff));

            unitdefhelp = new UnitDefHelp(aicallback);
        }
Beispiel #20
0
        public int GetArea(IUnitDef unitdef, Float3 currentpos)
        {
            int         mapx        = (int)(currentpos.x / 16);
            int         mapy        = (int)(currentpos.z / 16);
            UnitDefHelp unitdefhelp = new UnitDefHelp(aicallback);

            logfile.WriteLine("MovementMaps.GetArea unitdefhelp is null? " + (unitdefhelp == null).ToString() + " unitdef is null? " + (unitdef == null).ToString());
            if (unitdefhelp.IsAirCraft(unitdef))
            {
                return(1); // alwasy area 1, easy :-DDD
            }
            if (unitdefhelp.IsBoat(unitdef))
            {
                return(boatareas[mapx, mapy]);
            }
            else if (unitdef.movedata.maxSlope > maxvehicleslope)  // so infantry, approximately
            {
                return(infantryareas[mapx, mapy]);
            }
            else // vehicle, approximately
            {
                return(vehicleareas[mapx, mapy]);
            }
        }
 public int GetArea(IUnitDef unitdef, Float3 currentpos)
 {
     int mapx = (int)( currentpos.x / 16 );
     int mapy = (int)( currentpos.z / 16 );
     UnitDefHelp unitdefhelp = new UnitDefHelp( aicallback );
     logfile.WriteLine("MovementMaps.GetArea unitdefhelp is null? " + (unitdefhelp == null).ToString() + " unitdef is null? " + (unitdef == null).ToString());
     if( unitdefhelp.IsAirCraft( unitdef ) )
     {
         return 1; // alwasy area 1, easy :-DDD
     }
     if( unitdefhelp.IsBoat( unitdef ) )
     {
         return boatareas[ mapx, mapy ];
     }
     else if( unitdef.movedata.maxSlope > maxvehicleslope ) // so infantry, approximately
     {
         return infantryareas[ mapx, mapy ];
     }
     else // vehicle, approximately
     {
         return vehicleareas[ mapx, mapy ];
     }
 }