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); } }
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); } }
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); }
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); }