Exemplo n.º 1
0
        public CDLLNameValueHintInfo(Dictionary <string, string> attr, CEncodedObjectInputBufferI bin) : base(NAME_VALUE_SET, attr, bin)
        {
            defkey_ = attr[DEF_ATTR];
            value_  = attr[VALUE_ATTR];

            bin.nextTag(SETS_TAG);

            if (bin.hasChildren())
            {
                while (!bin.reachedEndTag(SETS_TAG))
                {
                    bin.nextTag(SET_TAG);
                    string k = bin.getObjectText(KEY_TAG);
                    string v = bin.getObjectText(VALUE_TAG);
                    set_.Add(k, v);
                    bin.endTag(SET_TAG);
                }
            }
            bin.endTag(SETS_TAG);
        }
Exemplo n.º 2
0
        // 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;
        }
Exemplo n.º 3
0
        public CGameMapParameters(CEncodedObjectInputBufferI bin)
        {
            bin.nextTag(TAG);

            Dictionary <string, string> attr = bin.getAttributes();

            numPositions_  = EncodeUtil.parseInt(attr[NUM_POSITION_ATTR]);
            needCapitals_  = EncodeUtil.fromBoolString(attr[NEEDCAP_ATTR]);
            needImportant_ = EncodeUtil.fromBoolString(attr[NEEDIMPORT_ATTR]);
            numImportant_  = EncodeUtil.parseInt(attr[NUMIMPORT_ATTR]);

            numStartingCities_ = null;
            var plist = new List <KeyValuePair <int, int> >();

            bin.nextTag(NUMSTARTCI_TAGS);
            if (bin.hasChildren())
            {
                bin.firstChild();
                while (!bin.reachedEndTag(NUMSTARTCI_TAGS))
                {
                    Dictionary <string, string> attrc = bin.getAttributes();
                    int index = EncodeUtil.parseInt(attrc[POS_ATTR]);
                    int v     = EncodeUtil.parseInt(attrc[VALUE_ATTR]);
                    plist.Add(new KeyValuePair <int, int>(index, v));
                    bin.endTag(NUMSTARTCI_TAG);
                }
            }
            if (plist.Count > 0)
            {
                numStartingCities_ = new int[plist.Count];
                foreach (KeyValuePair <int, int> kp in plist)
                {
                    numStartingCities_[kp.Key] = kp.Value;
                }
            }
            bin.endTag(NUMSTARTCI_TAGS);

            bin.endTag(TAG);
        }
Exemplo n.º 4
0
        public CDLLContainerHintInfo(Dictionary <string, string> attr, CEncodedObjectInputBufferI bin)
            : base(CONTAINER_TYPE, attr, bin)
        {
            //int nc = EncodeUtil.parseInt(attr[NUM_CHILDREN]);
            sig_ = EncodeUtil.parseUInt(attr[SIG_ATTR]);
            goStraightToChildren_ = EncodeUtil.fromBoolString(attr[GO_ATTR]);

            infos_ = new List <CDLLHintInfo>();

            bin.nextTag(CHILDREN_TAGS + Convert.ToString(sig_));
            if (bin.hasChildren())
            {
                bin.firstChild();
                while (!bin.reachedEndTag(CHILDREN_TAGS + Convert.ToString(sig_)))
                {
                    CDLLHintInfo hi = decode(bin);
                    infos_.Add(hi);
                }
            }

            bin.endTag(CHILDREN_TAGS + Convert.ToString(sig_));
        }
Exemplo n.º 5
0
        public CDLLLockableHintInfo(Dictionary <string, string> attr, CEncodedObjectInputBufferI bin)
            : base(LOCKED_CONTAINER_TYPE, attr, bin)
        {
            //int nc = EncodeUtil.parseInt(attr[NUM_CHILDREN]);
            sig_    = EncodeUtil.parseUInt(attr[SIG_ATTR]);
            locked_ = EncodeUtil.fromBoolString(attr[LOCKED_ATTR]);
            infos_  = new List <CDLLHintInfo>();

            lockname_ = bin.getObjectText(LOCKNAME_TAG);

            bin.nextTag(CHILDREN_TAGS + Convert.ToString(sig_));
            if (bin.hasChildren())
            {
                bin.firstChild();
                while (!bin.reachedEndTag(CHILDREN_TAGS + Convert.ToString(sig_)))
                {
                    CDLLHintInfo hi = decode(bin);
                    infos_.Add(hi);
                }
            }

            bin.endTag(CHILDREN_TAGS + Convert.ToString(sig_));
        }
 public CDLLStringValueHintInfo(Dictionary <string, string> attr, CEncodedObjectInputBufferI bin)
     : base(STRING_VALUE_TYPE, attr, bin)
 {
     def_   = bin.getObjectText(DEF_ATTR);
     value_ = bin.getObjectText(VALUE_ATTR);
 }
Exemplo n.º 7
0
 public CDLLBoolHintInfo(Dictionary <string, string> attr, CEncodedObjectInputBufferI bin)
     : base(BOOL_TYPE, attr, bin)
 {
     def_   = EncodeUtil.fromBoolString(attr[DEF_ATTR]);
     value_ = EncodeUtil.fromBoolString(attr[VALUE_ATTR]);
 }
        public CDLLRadioContainerHintInfo(Dictionary <string, string> attr, CEncodedObjectInputBufferI bin)
            : base(RADIO_CONTAINER_TYPE, attr, bin)
        {
            sig_           = EncodeUtil.parseUInt(attr[SIG_ATTR]);
            currentOption_ = EncodeUtil.parseInt(attr[CURRENT_ATTR]);

            minfos_ = new List <List <CDLLHintInfo> >();

            bin.nextTag(LIST_TAGS + Convert.ToString(sig_));
            if (bin.hasChildren())
            {
                bin.firstChild();
                while (!bin.reachedEndTag(LIST_TAGS + Convert.ToString(sig_)))
                {
                    var infos = new List <CDLLHintInfo>();
                    minfos_.Add(infos);
                    bin.nextTag(LIST_TAG + Convert.ToString(sig_));
                    if (bin.hasChildren())
                    {
                        bin.firstChild();
                        while (!bin.reachedEndTag(LIST_TAG + Convert.ToString(sig_)))
                        {
                            CDLLHintInfo hi = decode(bin);
                            infos.Add(hi);
                        }
                    }
                    bin.endTag(LIST_TAG + Convert.ToString(sig_));
                }
            }
            bin.endTag(LIST_TAGS + Convert.ToString(sig_));
            catkeys_ = new List <string>();
            bin.nextTag(KEY_TAGS);
            if (bin.hasChildren())
            {
                bin.firstChild();
                while (!bin.reachedEndTag(KEY_TAGS))
                {
                    catkeys_.Add(bin.getObjectText(KEY_TAG));
                }
            }

            bin.endTag(KEY_TAGS);

            catnames_ = new List <string>();
            bin.nextTag(CATNAME_TAGS);
            if (bin.hasChildren())
            {
                bin.firstChild();
                while (!bin.reachedEndTag(CATNAME_TAGS))
                {
                    catnames_.Add(bin.getObjectText(CATNAME_TAG));
                }
            }
            bin.endTag(CATNAME_TAGS);

            rbnames_ = new List <string>();
            bin.nextTag(RBNAME_TAGS);
            if (bin.hasChildren())
            {
                bin.firstChild();
                while (!bin.reachedEndTag(RBNAME_TAGS))
                {
                    rbnames_.Add(bin.getObjectText(RBNAME_TAG));
                }
            }
            bin.endTag(RBNAME_TAGS);
        }
Exemplo n.º 9
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);
Exemplo n.º 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];
            }
        }