public EntertainMember GetEntertainMember(string wxid) { try { string path = pathToTheFile + "entertainMember.json"; var json = File.ReadAllText(path); var members = JsonConvert.DeserializeObject <List <EntertainMember> >(json); var result = new EntertainMember(); if (members != null) { foreach (var c in members) { if (c.wxChatModel.wxid == wxid) { result = c; return(result); } } } return(null); } catch (Exception e) { return(null); } }
public string CheckInventory(EntertainMember entertainMember) { try { string output = ""; output += "\n你一共拥有" + entertainMember.inventory.Count() + "角色, 三星角色有:"; foreach (GameCharacters character in entertainMember.inventory) { if (character.starNum == 3) { output += "\n" + character.name; } } output += "\n你有" + entertainMember.stoneNum + "母猪石"; if (entertainMember.subscribed) { output += "\n你是尊贵的月卡会员!"; } else { output += "\n你的月卡已过期!"; } return(output); } catch (Exception e) { return("错误!" + e.ToString()); } }
public string CheckIn(EntertainMember entertainMember) { try { string output = ""; random = new Random(); int rnum = random.Next(100) + 1; DateTime dateNow = DateTime.Now; DateTime startOfToday = DateTime.Now; DateTime endOfToday = DateTime.Now; DateTime date = new DateTime(dateNow.Year, dateNow.Month, dateNow.Day, 5, 0, 0); DateTime today = DateTime.UtcNow.AddHours(8); if (today.TimeOfDay < date.TimeOfDay) { startOfToday = today.Date.AddHours(-19); endOfToday = today.Date.AddDays(1).AddTicks(-1).AddHours(-19); } else { startOfToday = today.Date.AddHours(5); endOfToday = today.Date.AddDays(1).AddTicks(-1).AddHours(5); } if (entertainMember.checkinList == null) { entertainMember.checkinList = new List <MemberCheckIn>(); } MemberCheckIn record = entertainMember.checkinList.Where(s => s.time <= endOfToday && s.time >= startOfToday).FirstOrDefault(); if (today > entertainMember.subscribedDate) { entertainMember.subscribed = false; } if (record == null) { MemberCheckIn newRecord = new MemberCheckIn(); newRecord.time = DateTime.UtcNow.AddHours(8); newRecord.luckPoint = rnum; entertainMember.checkinList.Add(newRecord); entertainMember.gold += 500; output += "\n你已成功签到,获得 500 钻石!"; if (entertainMember.subscribed) { entertainMember.gold += 500; output += "\n哦豁,你是尊贵的月卡玩家?额外获得 500 钻石!"; } } else { return("\n?你今天签到过了!"); } output += "\n你的钻石余量为 " + entertainMember.gold.ToString(); LogMemberDetails(entertainMember); return(output); } catch (Exception e) { return("错误!" + e.ToString()); } }
public string CheckGold(EntertainMember entertainMember) { try { return("\n你还有 " + entertainMember.gold.ToString() + " 钻石!"); } catch (Exception e) { return("错误!" + e.ToString()); } }
public string CheckLuckyPoint(EntertainMember entertainMember) { try { int luck = 0; string output = ""; DateTime dateNow = DateTime.Now; DateTime startOfToday = DateTime.Now; DateTime endOfToday = DateTime.Now; DateTime date = new DateTime(dateNow.Year, dateNow.Month, dateNow.Day, 5, 0, 0); DateTime today = DateTime.UtcNow.AddHours(8); if (today.TimeOfDay < date.TimeOfDay) { startOfToday = today.Date.AddHours(-19); endOfToday = today.Date.AddDays(1).AddTicks(-1).AddHours(-19); } else { startOfToday = today.Date.AddHours(5); endOfToday = today.Date.AddDays(1).AddTicks(-1).AddHours(5); } MemberCheckIn record = entertainMember.checkinList.Where(s => s.time <= endOfToday && s.time >= startOfToday).FirstOrDefault(); if (record == null) { return("\n你害没签到,就想看运势?"); } luck = record.luckPoint; if (luck < 2) { output = "\n?!见鬼,是大凶兆!!"; } else if (luck < 6) { output = "\n你今天的运气似乎卜太星啊,凶!"; } else if (luck < 50) { output = "\n运气不错,吉!"; } else if (luck < 90) { output = "\n运气很棒,中吉!"; } else if (luck <= 100) { output = "\n?!大吉!!是大吉啊!!"; } return(output); } catch (Exception e) { return("错误!" + e.ToString()); } }
public string CreateMember(WxChatMemberSimple newMember) { try { string path = pathToTheFile + "entertainMember.json"; var json = File.ReadAllText(path); var members = JsonConvert.DeserializeObject <List <EntertainMember> >(json); var result = new EntertainMember(); if (members != null) { foreach (var c in members) { if (c.wxChatModel.wxid == newMember.wxid) { return("\n无法重复加入!"); } } result.wxChatModel = newMember; result.gold = 30000; result.inventory = new List <GameCharacters>(); result.stoneNum = 0; result.checkinList = new List <MemberCheckIn>(); result.subscribed = false; result.subscribedDate = DateTime.UtcNow.AddDays(-50); members.Add(result); File.WriteAllText(path, JsonConvert.SerializeObject(members)); } else { List <EntertainMember> guildMembers = new List <EntertainMember>(); result.wxChatModel = newMember; result.gold = 30000; result.inventory = new List <GameCharacters>(); guildMembers.Add(result); File.WriteAllText(path, JsonConvert.SerializeObject(guildMembers)); } return("\n恭喜加入,你已获得 30000 钻石 入会奖励!"); } catch (Exception e) { return("错误!" + e.ToString()); } }
public void LogMemberDetails(EntertainMember entertainMember) { try { string path = pathToTheFile + "entertainMember.json"; var json = File.ReadAllText(path); List <EntertainMember> members = JsonConvert.DeserializeObject <List <EntertainMember> >(json); if (members != null) { members.Remove(members.Where(s => s.wxChatModel.wxid == entertainMember.wxChatModel.wxid).FirstOrDefault()); members.Add(entertainMember); } File.WriteAllText(path, JsonConvert.SerializeObject(members)); } catch (Exception e) { } }
public string TenGacha(EntertainMember entertainMember) { try { random = new Random(); if (entertainMember.gold < 1500) { return("\n?!你钻石不够力!"); } if (CurrentPoll == null) { return("\n当前没有扭蛋池子开放!"); } string output = ""; List <GameCharacters> newChars = new List <GameCharacters>(); entertainMember.gold -= 1500; for (int i = 0; i < 10; i++) { GameCharacters newChar = new GameCharacters(); int rnum = random.Next(1000) + 1; if (rnum <= CurrentPoll.upProbSSR) { if (rnum <= CurrentPoll.upProb) { newChar.name = CurrentPoll.upSSRChar[0]; newChar.starNum = 3; } else { int num = random.Next(CurrentPoll.SSRChar.Count()); newChar.name = CurrentPoll.SSRChar[num]; newChar.starNum = 3; } } else if (rnum > 1000 - (CurrentPoll.upProbSR)) { if (rnum >= 970) { newChar.name = CurrentPoll.upSRChar[0]; newChar.starNum = 2; } else { int num = random.Next(CurrentPoll.SRChar.Count()); newChar.name = CurrentPoll.SRChar[num]; newChar.starNum = 2; } } else { int num = random.Next(CurrentPoll.RChar.Count()); newChar.name = CurrentPoll.RChar[num]; newChar.starNum = 1; } newChars.Add(newChar); } if (newChars.Where(s => s.starNum == 2).FirstOrDefault() == null && newChars.Where(s => s.starNum == 3).FirstOrDefault() == null) { GameCharacters newChar = new GameCharacters(); int rnum = random.Next(100) + 1; if (rnum <= 16) { newChar.name = CurrentPoll.upSRChar[0]; } else { int num = random.Next(CurrentPoll.SRChar.Count()); newChar.name = CurrentPoll.SRChar[num]; } newChar.starNum = 2; newChars.RemoveAt(9); newChars.Add(newChar); } foreach (GameCharacters character in newChars) { if (entertainMember.inventory.Where(s => s.name == character.name).FirstOrDefault() == null) { entertainMember.inventory.Add(character); output += "\nNEW!! "; for (int i = 0; i < character.starNum; i++) { output += "★"; } output += character.name; } else { output += "\n"; for (int i = 0; i < character.starNum; i++) { output += "★"; } int stone = 0; switch (character.starNum) { case 1: stone = 1; break; case 2: stone = 10; break; case 3: stone = 50; break; } output += character.name + " => " + stone + "母!"; entertainMember.stoneNum += stone; } } LogMemberDetails(entertainMember); return(output); } catch (Exception e) { return("错误!" + e.ToString()); } }