示例#1
0
        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);
            }
        }
示例#2
0
 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());
     }
 }
示例#3
0
        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());
            }
        }
示例#4
0
 public string CheckGold(EntertainMember entertainMember)
 {
     try {
         return("\n你还有 " + entertainMember.gold.ToString() + " 钻石!");
     } catch (Exception e) {
         return("错误!" + e.ToString());
     }
 }
示例#5
0
        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());
            }
        }
示例#6
0
        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());
            }
        }
示例#7
0
        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)
            {
            }
        }
示例#8
0
        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());
            }
        }