Beispiel #1
0
        private async Task <bool> RefreshInstitute()
        {
            if (asyncLock)
            {
                return(false);
            }
            try {
                asyncLock     = true;
                instituteInfo = await packetWriter.RefreshInstituteAsync();

                if (instituteInfo == null)
                {
                    return(false);
                }
                var techIds = new List <int>();
                foreach (var tech in instituteInfo.Techs)
                {
                    techIds.Add(tech.Id);
                }
                techList.SetObjects(techIds, true);
                return(true);
            } finally {
                asyncLock = false;
            }
        }
Beispiel #2
0
        /// <summary>
        /// Làm mới sở nghiên cứu.
        /// </summary>
        public static async Task <InstituteInfo> RefreshInstituteAsync(this IPacketWriter writer)
        {
            var packet = await writer.SendCommandAsync("63601");

            if (packet == null)
            {
                return(null);
            }
            return(InstituteInfo.Parse(JToken.Parse(packet.Message)));
        }
Beispiel #3
0
        public static InstituteInfo Parse(JToken token)
        {
            var result       = new InstituteInfo();
            var instityteDto = token["instityteDto"];
            var techs        = new List <InstituteTech>();

            foreach (var subToken in instityteDto)
            {
                var tech = InstituteTech.Parse(subToken);
                techs.Add(tech);
            }
            result.Techs = techs;
            return(result);
        }
Beispiel #4
0
        public InstituteView()
        {
            InitializeComponent();

            asyncLock       = false;
            timerLock       = false;
            newValueChecked = false;
            instituteInfo   = null;

            nameColumn.AspectGetter = obj => {
                return(instituteInfo.Techs.Find(tech => tech.Id == (int)obj).Name);
            };
            levelColumn.AspectGetter = obj => {
                return(instituteInfo.Techs.Find(tech => tech.Id == (int)obj).Level);
            };
            extraColumn.AspectGetter = obj => {
                var tech = instituteInfo.Techs.Find(item => item.Id == (int)obj);
                return(String.Format("+{0}{1}", tech.Extra, tech.ValueUnit));
            };
            valueColumn.AspectGetter = obj => {
                var tech = instituteInfo.Techs.Find(item => item.Id == (int)obj);
                return(String.Format("+{0}{1}", tech.Value, tech.ValueUnit));
            };
        }