コード例 #1
0
        public VlasovPlayer(
            int position,
            Dictionary <string, string> caMap,
            CEncodedObjectInputBufferI bin,
            string logpath,
            string logname,
            AIEventInterfaceI aiEvent,
            AICommandInterfaceI command,
            AIQueryI query,
            AICheatI cheat,
            int logLevel)
            : base(
                position,
                logpath,
                logname,
                caMap,
                bin,
                aiEvent,
                command,
                query,
                cheat,
                logLevel)
        {
            elogger_ = new CSubLog("ExamplePlayer:" + Convert.ToString(position), realLog_);
            elogger_.info("D Logger Log Open: " + logpath + " " + logname);
            elogger_.info("Position " + Convert.ToSingle(position) + " waking up.");

            testAttribute_ = EncodeUtil.parseInt(caMap[TEST_ATTR]);

            hints_ = new CDLLHints(bin);
        }
コード例 #2
0
    ////////////////////////////////////////////
    //Reload Call
    //This call gives the data needed to reload an AI player instance
    public override AIPlayer reloadAIPlayer(int position, CEncodedObjectInputBufferI bin, string logpath, string logname,
                                            AIEventInterfaceI aiEvent, AICommandInterfaceI command, AIQueryI query, AICheatI cheat, int logLevel)
    {
        Dictionary <string, string> caMap = bin.getAttributes();

        return(new ExamplePlayer(position, caMap, bin, logpath, logname, aiEvent, command, query, cheat, logLevel));
    }
コード例 #3
0
ファイル: AIPlayer.cs プロジェクト: OlegYurchik/edce-ai
        //////////////////////////////////////////////////////////////////////////////

        //////////////////////////////////////////////////////////////
        protected AIPlayer(int position, string path, string logname, AIEventInterfaceI aiEvent, AICommandInterfaceI command, AIQueryI query, AICheatI cheat, int logLevel)
        {
            position_ = position;
            realLog_  = new CLog(path, logname, logLevel);
            alogger_  = new CSubLog("AIPlayer" + Convert.ToString(position_), realLog_);
            alogger_.info("A Logger Log Open: " + path + " " + logname);

            aiEvent_ = aiEvent;
            command_ = command;
            query_   = query;
            cheat_   = cheat;
        }
コード例 #4
0
        public VlasovPlayer(int position, string pname, string logpath, string logname,
                            CDLLHints hints, AIEventInterfaceI aiEvent,
                            AICommandInterfaceI command, AIQueryI query, AICheatI cheat,
                            int logLevel) : base(position, logpath, logname, aiEvent, command,
                                                 query, cheat, logLevel)
        {
            elogger_ = new CSubLog("Vlasov Player:" + Convert.ToString(position), realLog_);
            elogger_.info("D Logger Log Open: " + logpath + " " + logname);
            elogger_.info(pname + " waking up");

            hints_ = hints.copy();

            pname_ = pname;
        }
コード例 #5
0
    ////////////////////////////////////////////
    //Creation Call
    //Returns a new instance of the player.
    //note the pplayer name is also being set here
    public override AIPlayer createAIPlayer(int position, string logpath, string logname, CDLLHints hints,
                                            AIEventInterfaceI aiEvent, AICommandInterfaceI command, AIQueryI query, AICheatI cheat, int logLevel)
    {
        //name selection
        if (aiGroup_.Count == 0)
        {
            for (int i = 0; i < leaders_.Length; i++)
            {
                aiGroup_.Add(leaders_[i]);
            }
        }

        int    r     = random_.nextInt(aiGroup_.Count);
        string pname = aiGroup_[r];

        aiGroup_.RemoveAt(r);

        //instance creation
        return(new ExamplePlayer(position, pname, logpath, logname, hints, aiEvent, command, query, cheat, logLevel));
    }
コード例 #6
0
ファイル: AIPlayer.cs プロジェクト: OlegYurchik/edce-ai
        // ReSharper disable UnusedParameter.Local
        protected AIPlayer(
            int position,
            string path,
            string logname,
            Dictionary <string, string> caMap,
            CEncodedObjectInputBufferI bin,
            AIEventInterfaceI aiEvent,
            AICommandInterfaceI command,
            AIQueryI query,
            AICheatI cheat,
            int logLevel)
        // ReSharper restore UnusedParameter.Local
        {
            position_ = position;
            realLog_  = new CLog(path, logname, logLevel);
            alogger_  = new CSubLog("AIPlayer:" + Convert.ToString(position_), realLog_);

            aiEvent_ = aiEvent;
            command_ = command;
            query_   = query;
            cheat_   = cheat;
        }
コード例 #7
0
 //call by the game to have you reload a player
 public abstract AIPlayer reloadAIPlayer(int position, CEncodedObjectInputBufferI bin, string logpath, string logname, AIEventInterfaceI aiEvent, AICommandInterfaceI command, AIQueryI query, AICheatI cheat, int logLevel);
コード例 #8
0
 //call by the game to have you create a player
 public abstract AIPlayer createAIPlayer(int position, string logpath, string logname, CDLLHints hints, AIEventInterfaceI aiEvent, AICommandInterfaceI command, AIQueryI query, AICheatI cheat, int logLevel);
コード例 #9
0
 protected AIPlayerData(int position, string path, string logname, AIEventInterfaceI aiEvent, AICommandInterfaceI command, AIQueryI query, AICheatI cheat, int logLevel)
     : base(position, path, logname, aiEvent, command, query, cheat, logLevel)
 {
     dlogger_ = new CSubLog("PlayerData:" + Convert.ToString(position), realLog_);
     dlogger_.info("D Logger Log Open: " + path + " " + logname);
     random_ = new CMTRandom();
 }
コード例 #10
0
        ////////////////////////////////////////////////////////////////////
        //Reloading
        protected AIPlayerData(
            int position,
            string path,
            string logname,
            Dictionary <string, string> caMap,
            CEncodedObjectInputBufferI bin,
            AIEventInterfaceI aiEvent,
            AICommandInterfaceI command,
            AIQueryI query,
            AICheatI cheat,
            int logLevel)
            : base(position, path, logname, caMap, bin, aiEvent, command, query, cheat, logLevel)
        {
            dlogger_ = new CSubLog("PlayerData:" + Convert.ToString(position), realLog_);


            curturn_          = EncodeUtil.parseInt(caMap[CUR_TURN]);
            numPlayers_       = EncodeUtil.parseInt(caMap[NUM_PLAYERS]);
            rdWeight_         = EncodeUtil.parseInt(caMap[RD_WEIGHT]);
            unitsBeforeDrain_ = EncodeUtil.parseInt(caMap[UNITS_BEFORE_DRAIN]);

            bin.nextTag(CPlayer.TAGS);
            if (bin.hasChildren())
            {
                bin.firstChild();
                while (!bin.reachedEndTag(CPlayer.TAGS))
                {
                    players_.Add(new CPlayer(bin));
                }
            }
            bin.endTag(CPlayer.TAGS);

            bin.nextTag(SPOTU);
            if (bin.hasChildren())
            {
                bin.firstChild();
                while (!bin.reachedEndTag(SPOTU))
                {
                    CUnit u = CUnit.decodeCUnit(bin, query_);
                    masterObjects_.Add(u.gid_, u);
                    spotMap_.Add(u.gid_, u);
                    spots_.Add(u);
                }
            }
            bin.endTag(SPOTU);


            bin.nextTag(SPOTC);
            if (bin.hasChildren())
            {
                bin.firstChild();
                while (!bin.reachedEndTag(SPOTC))
                {
                    CProducerUnit c = CProducerUnit.decodeCProducerUnit(bin, query_);
                    masterObjects_.Add(c.gid_, c);
                    knownCitiesVec_.Add(c);
                    spotMap_.Add(c.gid_, c);
                    spots_.Add(c);
                }
            }
            bin.endTag(SPOTC);

            bin.nextTag(SPOTP);
            if (bin.hasChildren())
            {
                bin.firstChild();
                while (!bin.reachedEndTag(SPOTP))
                {
                    CProducerUnit p = CProducerUnit.decodeCProducerUnit(bin, query);
                    masterObjects_.Add(p.gid_, p);
                    spotMap_.Add(p.gid_, p);
                    spots_.Add(p);
                }
            }
            bin.endTag(SPOTP);

            bin.nextTag(CITIES);
            if (bin.hasChildren())
            {
                bin.firstChild();
                while (!bin.reachedEndTag(CITIES))
                {
                    CProducerUnit c = CProducerUnit.decodeCProducerUnit(bin, query_);
                    masterObjects_.Add(c.gid_, c);
                    knownCitiesVec_.Add(c);
                    cities_.Add(c);
                    cityMap_.Add(c.gid_, c);
                }
            }
            bin.endTag(CITIES);


            bin.nextTag(UNITS);
            if (bin.hasChildren())
            {
                bin.firstChild();
                while (!bin.reachedEndTag(UNITS))
                {
                    CUnit u = CUnit.decodeCUnit(bin, query_);
                    masterObjects_.Add(u.gid_, u);
                    unitMap_.Add(u.gid_, u);
                    units_.Add(u);
                }
            }
            bin.endTag(UNITS);

            bin.nextTag(PRODUCERS);
            if (bin.hasChildren())
            {
                bin.firstChild();
                while (!bin.reachedEndTag(PRODUCERS))
                {
                    CProducerUnit p = CProducerUnit.decodeCProducerUnit(bin, query_);
                    masterObjects_.Add(p.gid_, p);
                    producers_.Add(p);
                    producerMap_.Add(p.gid_, p);
                    unitMap_.Add(p.gid_, p);
                    units_.Add(p);
                }
            }
            bin.endTag(PRODUCERS);

            bin.nextTag(CSupplyRoute.TAGS);
            if (bin.hasChildren())
            {
                bin.firstChild();
                while (!bin.reachedEndTag(CSupplyRoute.TAGS))
                {
                    var csr = new CSupplyRoute(bin);
                    supplySources_.Add(csr.rid_, csr);
                }
            }
            bin.endTag(CSupplyRoute.TAGS);

            map_     = new AIMap(bin);
            mapUtil_ = map_.mapUtil_;

            gameRules_ = new CGameRules(bin);

            vc_ = new CVictoryConditions(bin);

            bin.nextTag(CProposal.TAGS);
            if (bin.hasChildren())
            {
                bin.firstChild();
                while (!bin.reachedEndTag(CProposal.TAGS))
                {
                    var p = new CProposal(bin);
                    proposals_.Add(p);
                }
            }
            bin.endTag(CProposal.TAGS);

            bin.nextTag(CProductionReportData.TAGS);
            if (bin.hasChildren())
            {
                bin.firstChild();
                while (!bin.reachedEndTag(CProductionReportData.TAGS))
                {
                    var prd = new CProductionReportData(bin);
                    prodReport_.Add(prd);
                }
            }
            bin.endTag(CProductionReportData.TAGS);


            random_ = new CMTRandom(AI_RANDOM_TAG, bin);

            //retrieve flyover
            foUnit_ = null;
            if (caMap.ContainsKey(FOUNIT_ID))
            {
                uint fid = EncodeUtil.parseUInt(caMap[FOUNIT_ID]);
                foUnit_ = masterObjects_[fid];
            }
        }