Beispiel #1
0
        protected void InitTroopGrid()
        {
            base.InitGrid();
            GamePlayer worldOwner = GameUtils.GetWorldOwner();
            List <SquadDonatedTroop> worldOwnerSquadBuildingTroops = SquadUtils.GetWorldOwnerSquadBuildingTroops();
            int count = worldOwnerSquadBuildingTroops.Count;

            if (count > 0)
            {
                Dictionary <string, string> dictionary = null;
                if (worldOwner.Squad != null)
                {
                    dictionary = new Dictionary <string, string>();
                    List <SquadMember> memberList = worldOwner.Squad.MemberList;
                    int i      = 0;
                    int count2 = memberList.Count;
                    while (i < count2)
                    {
                        SquadMember squadMember = memberList[i];
                        dictionary.Add(squadMember.MemberID, squadMember.MemberName);
                        i++;
                    }
                }
                StaticDataController staticDataController = Service.StaticDataController;
                for (int j = 0; j < count; j++)
                {
                    SquadDonatedTroop squadDonatedTroop = worldOwnerSquadBuildingTroops[j];
                    TroopTypeVO       troopTypeVO       = staticDataController.Get <TroopTypeVO>(squadDonatedTroop.TroopUid);
                    int totalAmount = squadDonatedTroop.GetTotalAmount();
                    if (totalAmount > 0)
                    {
                        string tooltipString = this.GetTooltipString(troopTypeVO, squadDonatedTroop, dictionary);
                        base.AddTroopItem(troopTypeVO, totalAmount, tooltipString);
                    }
                }
            }
            if (!this.inVisitMode && worldOwner.Squad != null && SquadUtils.GetDonatedTroopStorageUsedByWorldOwner() < this.buildingInfo.Storage)
            {
                this.AddTroopRequestItem();
            }
            else
            {
                this.requestResendCost = null;
            }
            base.RepositionGridItems();
        }
Beispiel #2
0
        protected void InitTroopGrid()
        {
            this.storageItemGrid = base.GetElement <UXGrid>("GridCurrentTroops");
            this.storageItemGrid.SetTemplateItem("CardCurrentTroops");
            this.storageItemGrid.Clear();
            this.troopList = new List <TroopUpgradeTag>();
            int        num        = 0;
            GamePlayer worldOwner = GameUtils.GetWorldOwner();
            List <SquadDonatedTroop> list;
            int squadStorageCapacity;

            if (this.isWarRequest)
            {
                SquadMemberWarData currentMemberWarData = Service.SquadController.WarManager.GetCurrentMemberWarData();
                list = currentMemberWarData.WarTroops;
                squadStorageCapacity = currentMemberWarData.BaseMap.GetSquadStorageCapacity();
            }
            else
            {
                list = SquadUtils.GetWorldOwnerSquadBuildingTroops();
                squadStorageCapacity = worldOwner.Map.GetSquadStorageCapacity();
            }
            int count = list.Count;

            if (count > 0)
            {
                StaticDataController staticDataController = Service.StaticDataController;
                for (int i = 0; i < count; i++)
                {
                    SquadDonatedTroop squadDonatedTroop = list[i];
                    TroopTypeVO       troopTypeVO       = staticDataController.Get <TroopTypeVO>(squadDonatedTroop.TroopUid);
                    int totalAmount = squadDonatedTroop.GetTotalAmount();
                    if (totalAmount > 0)
                    {
                        this.AddTroopItem(troopTypeVO, totalAmount);
                        num += totalAmount * troopTypeVO.Size;
                    }
                }
            }
            this.canRequestTroops = (num < squadStorageCapacity);
            this.UpdateScreenElementVisibility();
            this.storageItemGrid.RepositionItems();
        }