private void SetUserCard(IList <xjgame.message.BattleCard> userCardList)
        {
            foreach (xjgame.message.BattleCard card in userCardList)
            {
                string log = "Card: slot_idx = " + card.Place_idx + ",\t\t cardid = " + card.CardID + ",\t\t guid = " + card.Cardguid;
                log += ",\t\t state = " + card.State;
                log += ",\t\t commSkillID = " + card.CommSkillId;
                log += ",\t\t volSkillID = " + card.VolSkillId;
                log += ",\t\t combSkillID = " + card.CombSkillId;

                if (card.Place_idx < 6)
                {
                    TroopMember member = new TroopMember(card.Place_idx, card.CardID, (long)card.Cardguid);
                    member.state       = card.State;
                    member.initHp      = card.Init_hp;
                    member.commSkillID = card.CommSkillId;
                    member.volSkillID  = card.VolSkillId;
                    member.combSkillID = card.CombSkillId;
                    if (card.Bag != null)
                    {
                        member.bag.type = (DropType)card.Bag.Type;
                        member.bag.val  = card.Bag.Value;
                        log            += ",\t\t DropBag.Type = " + card.Bag.Type;
                        log            += ",\t\t DropBag.Value = " + card.Bag.Value;
                    }
                    troopData.selfMembers.Add(member);
                }
                else
                {
                    TroopMember member = new TroopMember(card.Place_idx, card.CardID, (long)card.Cardguid);
                    member.state       = card.State;
                    member.initHp      = card.Init_hp;
                    member.commSkillID = card.CommSkillId;
                    member.volSkillID  = card.VolSkillId;
                    member.combSkillID = card.CombSkillId;
                    if (card.Bag != null)
                    {
                        member.bag.type = (DropType)card.Bag.Type;
                        member.bag.val  = card.Bag.Value;
                        log            += ",\t\t DropBag.Type = " + card.Bag.Type;
                        log            += ",\t\t DropBag.Value = " + card.Bag.Value;
                    }
                    troopData.otherMembers.Add(member);
                }
                Debug.LogWarning(log);
            }
        }
Exemple #2
0
        private static void LoadPatrolLookup(string fileName)
        {
            if (File.Exists(fileName))
            {
                using (TextReader txtReader = new StreamReader(fileName))
                    using (var csvReader = new CsvReader(txtReader, CultureInfo.CurrentCulture))
                    {
                        csvReader.Read();
                        csvReader.ReadHeader();

                        int memberIdIndex   = csvReader.GetFieldIndex(name: "BSA Member ID");
                        int nicknameIndex   = csvReader.GetFieldIndex(name: "Nickname");
                        int patrolNameIndex = csvReader.GetFieldIndex(name: "Patrol Name");
                        int dobIndex        = csvReader.GetFieldIndex(name: "DOB");

                        while (csvReader.Read())
                        {
                            string      id    = csvReader.GetField(memberIdIndex);
                            TroopMember scout = scouts.FirstOrDefault(tm => tm.BsaMemberId == id);
                            if (scout != null)
                            {
                                string nickname = csvReader.GetField(nicknameIndex);
                                if (!string.IsNullOrWhiteSpace(nickname))
                                {
                                    scout.NickName = nickname;
                                }
                                string patrol = csvReader.GetField(patrolNameIndex);
                                if (!string.IsNullOrWhiteSpace(patrol))
                                {
                                    scout.Patrol = patrol;
                                }
                                string dob = csvReader.GetField(dobIndex);
                                if (!string.IsNullOrWhiteSpace(dob))
                                {
                                    DateTime dobDate;
                                    if (DateTime.TryParse(dob, out dobDate))
                                    {
                                        scout.DateOfBirth = dobDate;
                                    }
                                }
                            }
                        }
                    }
            }
        }
        public void SetLastBattleData(DataBattle data)
        {
            Debug.LogWarning("!!!!!!!!!!!!!!!!!!!!!! SetLastBattleData() !!!!!!!!!!!!!!!!!!!!!!");
            string dlog = "missionID = " + data.MissionID;

            dlog += ",\t\t roundCount = " + data.Round_count;
            dlog += ",\t\t Win_idx = " + data.Win_idx;
            Debug.LogWarning(dlog);
            ClearBattleData();//clear first
            missionID    = (int)data.MissionID;
            roundCount   = data.Round_count;
            isPlayed     = false;
            isLastBattle = true;
            isWin        = !Convert.ToBoolean(data.Win_idx);
            foreach (xjgame.message.DropBag bag in data.dropsList)
            {
                DropBag drop_bag = new DropBag();
                drop_bag.type = (DropType)bag.Type;
                drop_bag.val  = bag.Value;
                winDropBags.Add(drop_bag);
            }
            addExp = data.Add_exp;
            //test
            if (Obj_MyselfPlayer.GetMe().currentAssistFriend == null)
            {
                Obj_MyselfPlayer.GetMe().currentAssistFriend = new AssistFriend();
                Obj_MyselfPlayer.GetMe().currentAssistFriend.guid = (long)data.Friendguid;
                Obj_MyselfPlayer.GetMe().currentAssistFriend.name = data.Friendname;
                Obj_MyselfPlayer.GetMe().currentAssistFriend.level = data.Friendlevel;
                Obj_MyselfPlayer.GetMe().currentAssistFriend.cardLevel = data.FriendCardLev;
                Obj_MyselfPlayer.GetMe().currentAssistFriend.friendShipNum = data.GetFriendPoint;
                if (data.IsFriend == 0)
                {
                    Obj_MyselfPlayer.GetMe().currentAssistFriend.isMyFriend = true;
                }
                else
                {
                    Obj_MyselfPlayer.GetMe().currentAssistFriend.isMyFriend = false;
                }
            }
            foreach (xjgame.message.BattleCard card in data.userCardList)
            {
                string log = "Card: slot_idx = " + card.Place_idx + ",\t\t cardid = " + card.CardID + ",\t\t guid = " + card.Cardguid;
                log += ",\t\t state = " + card.State;
                log += ",\t\t isfriend = " + card.Isfriend;
                log += ",\t\t commSkillID = " + card.CommSkillId;
                log += ",\t\t volSkillID = " + card.VolSkillId;
                log += ",\t\t combSkillID = " + card.CombSkillId;

                if (card.Place_idx < 6)
                {
                    TroopMember member = new TroopMember(card.Place_idx, card.CardID, (long)card.Cardguid);
                    member.state       = card.State;
                    member.initHp      = card.Init_hp;
                    member.commSkillID = card.CommSkillId;
                    member.volSkillID  = card.VolSkillId;
                    member.combSkillID = card.CombSkillId;
                    if (card.Bag != null)
                    {
                        member.bag.type = (DropType)card.Bag.Type;
                        member.bag.val  = card.Bag.Value;
                        log            += ",\t\t DropBag.Type = " + card.Bag.Type;
                        log            += ",\t\t DropBag.Value = " + card.Bag.Value;
                    }
                    troopData.selfMembers.Add(member);
                    if (card.Isfriend == 1)
                    {
                        Obj_MyselfPlayer.GetMe().currentAssistFriend.cardGuiId = (long)card.Cardguid;
                        Obj_MyselfPlayer.GetMe().currentAssistFriend.cardTempleId = card.CardID;
                        Obj_MyselfPlayer.GetMe().battleArray[card.Place_idx] = (long)card.Cardguid;
                    }
                }
                else
                {
                    TroopMember member = new TroopMember(card.Place_idx, card.CardID, (long)card.Cardguid);
                    member.state       = card.State;
                    member.initHp      = card.Init_hp;
                    member.commSkillID = card.CommSkillId;
                    member.volSkillID  = card.VolSkillId;
                    member.combSkillID = card.CombSkillId;
                    if (card.Bag != null)
                    {
                        member.bag.type = (DropType)card.Bag.Type;
                        member.bag.val  = card.Bag.Value;
                        log            += ",\t\t DropBag.Type = " + card.Bag.Type;
                        log            += ",\t\t DropBag.Value = " + card.Bag.Value;
                    }
                    troopData.otherMembers.Add(member);
                }
                Debug.LogWarning(log);
            }

            foreach (DataRound round in data.roundsList)
            {
                BattleTurn turn = new BattleTurn();
                foreach (DataAction action in round.actionsList)
                {
                    BattleStep step = new BattleStep();
                    foreach (DataSingleAction sact in action.attacker_actionsList)
                    {
                        string log = "Attack action: ";
                        log += ",\t\t card_idx = " + sact.Card_idx;
                        log += ",\t\t skillid = " + sact.Skillid;
                        log += ",\t\t att_value = " + sact.Att_value;
                        log += ",\t\t att_type = " + sact.Att_type;
                        log += ",\t\t beCrit = " + sact.BeCrit;
                        log += ",\t\t cur_hp = " + sact.Cur_hp;
                        log += ",\t\t heti_idx = " + sact.Heti_idx;

                        StepAction attack = new StepAction();
                        if (sact.buffInfoList != null)
                        {
                            foreach (DataBuffInfo buf in sact.buffInfoList)
                            {
                                BuffInfo attBuf = new BuffInfo();
                                attBuf.buf_id    = buf.Buf_id;
                                attBuf.buf_value = buf.Buf_value;
                                attack.buff.Add(attBuf);
                                log += ",\t\t buf.Buf_id = " + buf.Buf_id;
                                log += ",\t\t buf.Buf_value = " + buf.Buf_value;
                            }
                        }
                        attack.slotIndex = sact.Card_idx;
                        attack.skillID   = sact.Skillid;
                        attack.attackHp  = sact.Att_value;
                        attack.harmType  = sact.Att_type;
                        attack.isStorm   = Convert.ToBoolean(sact.BeCrit);
                        attack.curHp     = sact.Cur_hp;
                        if (sact.HasHeti_idx)
                        {
                            attack.hetiIndex = sact.Heti_idx;
                        }
                        step.attacks.Add(attack);
                        Debug.LogWarning(log);
                    }

                    foreach (DataSingleAction sact in action.be_attacker_actionsList)
                    {
                        string log = "Behit action: ";
                        log += ",\t\t card_idx = " + sact.Card_idx;
                        log += ",\t\t skillid = " + sact.Skillid;
                        log += ",\t\t att_value = " + sact.Att_value;
                        log += ",\t\t att_type = " + sact.Att_type;
                        log += ",\t\t beCrit = " + sact.BeCrit;
                        log += ",\t\t cur_hp = " + sact.Cur_hp;
                        log += ",\t\t heti_idx = " + sact.Heti_idx;

                        StepAction behit = new StepAction();
                        if (sact.buffInfoList != null)
                        {
                            foreach (DataBuffInfo buf in sact.buffInfoList)
                            {
                                BuffInfo behitBuf = new BuffInfo();
                                behitBuf.buf_id    = buf.Buf_id;
                                behitBuf.buf_value = buf.Buf_value;
                                behit.buff.Add(behitBuf);
                                log += ",\t\t buf.Buf_id = " + buf.Buf_id;
                                log += ",\t\t buf.Buf_value = " + buf.Buf_value;
                            }
                        }
                        behit.slotIndex = sact.Card_idx;
                        behit.skillID   = sact.Skillid;
                        behit.attackHp  = sact.Att_value;
                        behit.harmType  = sact.Att_type;
                        behit.isStorm   = Convert.ToBoolean(sact.BeCrit);
                        behit.curHp     = sact.Cur_hp;
                        step.behits.Add(behit);
                        Debug.LogWarning(log);
                    }
                    turn.battleSteps.Add(step);
                }
                battleRound.battleTurns.Add(turn);
            }
            Obj_MyselfPlayer.GetMe().SetBattleBeforeDate();
        }
        public void SetPVPBattleData(SCPVPBattleData data)
        {
            ClearBattleData();//clear first

            //pb data
            pbBaseData = data.BaseData;
            pbBagData  = data.BagData;
            pbCopyData = data.CopyData;

            isPlayed     = false;
            isLastBattle = false;
            isWin        = !Convert.ToBoolean(data.Battle.Win_idx);
            foreach (xjgame.message.DropBag bag in data.Battle.dropsList)
            {
                DropBag drop_bag = new DropBag();
                drop_bag.type = (DropType)bag.Type;
                drop_bag.val  = bag.Value;
                winDropBags.Add(drop_bag);
            }
            addExp = data.Battle.Add_exp;

            Debug.LogWarning("!!!!!!!!!!!!!!!!!!!!!! SetPVPBattleData() !!!!!!!!!!!!!!!!!!!!!!");
            foreach (xjgame.message.BattleCard card in data.Battle.userCardList)
            {
                string log = "Card: slot_idx = " + card.Place_idx + ",\t\t cardid = " + card.CardID + ",\t\t guid = " + card.Cardguid;
                log += ",\t\t state = " + card.State;
                log += ",\t\t commSkillID = " + card.CommSkillId;
                log += ",\t\t volSkillID = " + card.VolSkillId;
                log += ",\t\t combSkillID = " + card.CombSkillId;

                if (card.Place_idx < 6)
                {
                    TroopMember member = new TroopMember(card.Place_idx, card.CardID, (long)card.Cardguid);
                    member.state       = card.State;
                    member.initHp      = card.Init_hp;
                    member.commSkillID = card.CommSkillId;
                    member.volSkillID  = card.VolSkillId;
                    member.combSkillID = card.CombSkillId;
                    if (card.Bag != null)
                    {
                        member.bag.type = (DropType)card.Bag.Type;
                        member.bag.val  = card.Bag.Value;
                        log            += ",\t\t DropBag.Type = " + card.Bag.Type;
                        log            += ",\t\t DropBag.Value = " + card.Bag.Value;
                    }
                    troopData.selfMembers.Add(member);
                }
                else
                {
                    TroopMember member = new TroopMember(card.Place_idx, card.CardID, (long)card.Cardguid);
                    member.state       = card.State;
                    member.initHp      = card.Init_hp;
                    member.commSkillID = card.CommSkillId;
                    member.volSkillID  = card.VolSkillId;
                    member.combSkillID = card.CombSkillId;
                    if (card.Bag != null)
                    {
                        member.bag.type = (DropType)card.Bag.Type;
                        member.bag.val  = card.Bag.Value;
                        log            += ",\t\t DropBag.Type = " + card.Bag.Type;
                        log            += ",\t\t DropBag.Value = " + card.Bag.Value;
                    }
                    troopData.otherMembers.Add(member);
                }
                Debug.LogWarning(log);
            }

            foreach (DataRound round in data.Battle.roundsList)
            {
                BattleTurn turn = new BattleTurn();
                foreach (DataAction action in round.actionsList)
                {
                    BattleStep step = new BattleStep();
                    foreach (DataSingleAction sact in action.attacker_actionsList)
                    {
                        string log = "Attack action: ";
                        log += ",\t\t card_idx = " + sact.Card_idx;
                        log += ",\t\t skillid = " + sact.Skillid;
                        log += ",\t\t att_value = " + sact.Att_value;
                        log += ",\t\t att_type = " + sact.Att_type;
                        log += ",\t\t beCrit = " + sact.BeCrit;
                        log += ",\t\t cur_hp = " + sact.Cur_hp;
                        log += ",\t\t heti_idx = " + sact.Heti_idx;

                        StepAction attack = new StepAction();
                        if (sact.buffInfoList != null)
                        {
                            foreach (DataBuffInfo buf in sact.buffInfoList)
                            {
                                BuffInfo attBuf = new BuffInfo();
                                attBuf.buf_id    = buf.Buf_id;
                                attBuf.buf_value = buf.Buf_value;
                                attack.buff.Add(attBuf);
                                log += ",\t\t buf.Buf_id = " + buf.Buf_id;
                                log += ",\t\t buf.Buf_value = " + buf.Buf_value;
                            }
                        }
                        attack.slotIndex = sact.Card_idx;
                        attack.skillID   = sact.Skillid;
                        attack.attackHp  = sact.Att_value;
                        attack.harmType  = sact.Att_type;
                        attack.isStorm   = Convert.ToBoolean(sact.BeCrit);
                        attack.curHp     = sact.Cur_hp;
                        if (sact.HasHeti_idx)
                        {
                            attack.hetiIndex = sact.Heti_idx;
                        }
                        step.attacks.Add(attack);
                        Debug.LogWarning(log);
                    }

                    foreach (DataSingleAction sact in action.be_attacker_actionsList)
                    {
                        string log = "Behit action: ";
                        log += ",\t\t card_idx = " + sact.Card_idx;
                        log += ",\t\t skillid = " + sact.Skillid;
                        log += ",\t\t att_value = " + sact.Att_value;
                        log += ",\t\t att_type = " + sact.Att_type;
                        log += ",\t\t beCrit = " + sact.BeCrit;
                        log += ",\t\t cur_hp = " + sact.Cur_hp;
                        log += ",\t\t heti_idx = " + sact.Heti_idx;

                        StepAction behit = new StepAction();
                        if (sact.buffInfoList != null)
                        {
                            foreach (DataBuffInfo buf in sact.buffInfoList)
                            {
                                BuffInfo behitBuf = new BuffInfo();
                                behitBuf.buf_id    = buf.Buf_id;
                                behitBuf.buf_value = buf.Buf_value;
                                behit.buff.Add(behitBuf);
                                log += ",\t\t buf.Buf_id = " + buf.Buf_id;
                                log += ",\t\t buf.Buf_value = " + buf.Buf_value;
                            }
                        }
                        behit.slotIndex = sact.Card_idx;
                        behit.skillID   = sact.Skillid;
                        behit.attackHp  = sact.Att_value;
                        behit.harmType  = sact.Att_type;
                        behit.isStorm   = Convert.ToBoolean(sact.BeCrit);
                        behit.curHp     = sact.Cur_hp;
                        step.behits.Add(behit);
                        Debug.LogWarning(log);
                    }
                    turn.battleSteps.Add(step);
                }
                battleRound.battleTurns.Add(turn);
            }
        }
Exemple #5
0
        static bool LoadFile(string fileName)
        {
            bool result = false;

            if (File.Exists(fileName))
            {
                Console.WriteLine($"Reading data from {fileName}.");
                TextReader txtReader = new StreamReader(fileName);
                var        csvReader = new CsvReader(txtReader, CultureInfo.CurrentCulture);
                csvReader.Read();
                csvReader.ReadHeader();

                while (csvReader.Read())
                {
                    string      id    = csvReader.GetField(index: 0);
                    TroopMember scout = scouts.FirstOrDefault(tm => tm.BsaMemberId == id);
                    if (null == scout)
                    {
                        string firstName  = csvReader.GetField(index: 1);
                        string middleName = csvReader.GetField(index: 2);
                        string lastName   = csvReader.GetField(index: 3);
                        scout = new TroopMember(memberId: id, firstName: firstName, middleName: middleName, lastName: lastName);
                        scouts.Add(scout);
                        Console.WriteLine($"Adding record for {firstName} {lastName}.");
                    }

                    string   type    = csvReader.GetField(index: 4);
                    string   subtype = csvReader.GetField(index: 5);
                    string   version = csvReader.GetField(index: 6);
                    DateTime date    = csvReader.GetField <DateTime>(index: 7);
                    try
                    {
                        switch (type)
                        {
                        case "Rank":
                            switch (subtype)
                            {
                            case "Scout":
                                scout.Scout.DateEarned = date;
                                break;

                            case "Tenderfoot":
                                scout.Tenderfoot.DateEarned = date;
                                break;

                            case "Second Class":
                                scout.SecondClass.DateEarned = date;
                                break;

                            case "First Class":
                                scout.FirstClass.DateEarned = date;
                                break;

                            case "Star Scout":
                                scout.Star.DateEarned = date;
                                break;

                            case "Life Scout":
                                scout.Life.DateEarned = date;
                                break;

                            case "Eagle Scout":
                                scout.Eagle.DateEarned = date;
                                break;
                            }
                            break;

                        case "Merit Badge":
                            MeritBadge badge = new MeritBadge(name: subtype, description: version, earned: date);
                            scout.Add(badge);
                            break;

                        case "Scout Rank Requirement":
                            if (!string.IsNullOrWhiteSpace(subtype) && scout.Scout.Requirements.Any(req => req.Name == subtype))
                            {
                                scout.Scout.Requirements.First(req => req.Name == subtype).DateEarned = date;
                            }
                            break;

                        case "Tenderfoot Rank Requirement":
                            if (!string.IsNullOrWhiteSpace(subtype) && scout.Tenderfoot.Requirements.Any(req => req.Name == subtype))
                            {
                                scout.Tenderfoot.Requirements.First(req => req.Name == subtype).DateEarned = date;
                            }
                            break;

                        case "Second Class Rank Requirement":
                            if (!string.IsNullOrWhiteSpace(subtype) && scout.SecondClass.Requirements.Any(req => req.Name == subtype))
                            {
                                scout.SecondClass.Requirements.First(req => req.Name == subtype).DateEarned = date;
                            }
                            break;

                        case "First Class Rank Requirement":
                            if (!string.IsNullOrWhiteSpace(subtype) && scout.FirstClass.Requirements.Any(req => req.Name == subtype))
                            {
                                scout.FirstClass.Requirements.First(req => req.Name == subtype).DateEarned = date;
                            }
                            break;

                        case "Star Scout Rank Requirement":
                            if (!string.IsNullOrWhiteSpace(subtype) && scout.Star.Requirements.Any(req => req.Name == subtype))
                            {
                                scout.Star.Requirements.First(req => req.Name == subtype).DateEarned = date;
                            }
                            break;

                        case "Life Scout Rank Requirement":
                            if (!string.IsNullOrWhiteSpace(subtype) && scout.Life.Requirements.Any(req => req.Name == subtype))
                            {
                                scout.Life.Requirements.First(req => req.Name == subtype).DateEarned = date;
                            }
                            break;

                        case "Eagle Scout Rank Requirement":
                            if (!string.IsNullOrWhiteSpace(subtype) && scout.Eagle.Requirements.Any(req => req.Name == subtype))
                            {
                                scout.Eagle.Requirements.First(req => req.Name == subtype).DateEarned = date;
                            }
                            break;
                        }
                    }
                    catch (Exception e)
                    {
                        Console.Error.WriteLine($"type: {type} subtype: {subtype} version: {version} date: {date}");
                        Console.Error.WriteLine($"{e}");
                    }
                }
                result = true;
            }
            return(result);
        }
Exemple #6
0
        private void RunScoutReport(TroopMember scout, ExcelPackage package)
        {
            var         wks  = package.Workbook.Worksheets.Add($"{(string.IsNullOrWhiteSpace(scout.NickName) ? scout.FirstName : scout.NickName)} {scout.LastName.First()}");
            CellAddress cell = new CellAddress("A1");

            wks.Cells[cell].Value = scout.DisplayName;

            Dictionary <CurriculumGroup, List <RankRequirement> > groups = scout.GetRequirementsByGroup();

            foreach (CurriculumGroup key in groups.Keys
                     //.Where(k => PercentComplete(groups[k]) < 1m)
                     .OrderByDescending(k => PercentComplete(groups[k]))
                     .ThenByDescending(k => groups[k].Count)
                     .ThenBy(k => k.GetDisplayName())
                     )
            {
                decimal percentComplete = PercentComplete(groups[key]);
                if (percentComplete == 1m)
                {
                    if (!numberComplete.ContainsKey(key))
                    {
                        numberComplete.Add(key, new List <TroopMember>());
                    }
                    numberComplete[key].Add(scout);

                    continue;
                }
                else if (percentComplete == 0m)
                {
                    if (!numberNotStarted.ContainsKey(key))
                    {
                        numberNotStarted.Add(key, new List <TroopMember>());
                    }
                    numberNotStarted[key].Add(scout);
                }
                else
                {
                    if (!numberIncomplete.ContainsKey(key))
                    {
                        numberIncomplete.Add(key, new List <TroopMember>());
                    }
                    numberIncomplete[key].Add(scout);
                }

                cell.Row             += 1;
                cell.Column           = "A";
                wks.Cells[cell].Value = key.GetDisplayName();
                cell.ColumnNumber    += 1;
                wks.Cells[cell].Value = $"{percentComplete:p1}";

                string rank = string.Empty;
                foreach (var req in groups[key])
                {
                    cell.Row   += 1;
                    cell.Column = "B";

                    wks.Cells[$"${cell.Row}:${cell.Row}"].Style.Font.Bold |= !req.Earned;

                    if (req.Rank.Name != rank)
                    {
                        wks.Cells[cell].Value = req.Rank.Name;
                    }
                    cell.ColumnNumber    += 1;
                    wks.Cells[cell].Value = req.Name;
                    cell.ColumnNumber    += 1;
                    if (req.Earned)
                    {
                        wks.Cells[cell].Value = "(earned)";
                    }
                    else
                    {
                        wks.Cells[cell].Value = req.HandbookPages ?? string.Empty;
                    }
                    cell.ColumnNumber    += 1;
                    wks.Cells[cell].Value = req.Description;
                }
                cell.Row += 1;
            }

            wks.Calculate();
            wks.Cells[wks.Dimension.Address].AutoFitColumns(10);
        }