コード例 #1
0
ファイル: Events.cs プロジェクト: phoenx34/StardewValleyMP
 private static Farmer getFarmerFromFarmerNumberString(string s)
 {
     if (s.Equals("farmer"))
     {
         return(Multiplayer.getFarmer(0));
     }
     return(Multiplayer.getFarmer((byte)(Convert.ToInt32(string.Concat(s[s.Count <char>() - 1])) - 1)));
 }
コード例 #2
0
ファイル: Events.cs プロジェクト: phoenx34/StardewValleyMP
        private static void fixFlowerDance(Event dance, Dictionary <string, string> data)
        {
            if (dance.playerControlSequence || didFixDance)
            {
                return;
            }
            if (dance.eventCommands[0] != "pause 500")
            {
                return;
            }
            Log.Async("Flower dance beginning, fixing");
            didFixDance = true;

            // Copied from Event.setupFestivalMainEvent
            // All I did was make it use our players
            List <string> list  = new List <string>();
            List <string> list2 = new List <string>();
            List <string> list3 = new List <string>
            {
                "Abigail",
                "Penny",
                "Leah",
                "Maru",
                "Haley"
            };
            List <string> list4 = new List <string>
            {
                "Sebastian",
                "Sam",
                "Elliott",
                "Harvey",
                "Alex"
            };

            for (int i = 0; i < Multiplayer.getFarmerCount(); i++)
            {
                Farmer farmerFromFarmerNumber = Multiplayer.getFarmer(( byte )i);
                if (farmerFromFarmerNumber.dancePartner != null)
                {
                    if (farmerFromFarmerNumber.dancePartner.gender == 1)
                    {
                        list.Add(farmerFromFarmerNumber.dancePartner.name);
                        list3.Remove(farmerFromFarmerNumber.dancePartner.name);
                        list2.Add("farmer" + (i + 1));
                    }
                    else
                    {
                        list2.Add(farmerFromFarmerNumber.dancePartner.name);
                        list4.Remove(farmerFromFarmerNumber.dancePartner.name);
                        list.Add("farmer" + (i + 1));
                    }
                }
            }
            while (list.Count <string>() < 5)
            {
                string text = list3.Last <string>();
                if (list4.Contains(Utility.getLoveInterest(text)))
                {
                    list.Add(text);
                    list2.Add(Utility.getLoveInterest(text));
                }
                list3.Remove(text);
            }
            string text2 = data["mainEvent"];

            for (int j = 1; j <= 5; j++)
            {
                text2 = text2.Replace("Girl" + j, list[j - 1]);
                text2 = text2.Replace("Guy" + j, list2[j - 1]);
            }
            Regex regex  = new Regex("showFrame (?<farmerName>farmer\\d) 44");
            Regex regex2 = new Regex("showFrame (?<farmerName>farmer\\d) 40");
            Regex regex3 = new Regex("animate (?<farmerName>farmer\\d) false true 600 44 45");
            Regex regex4 = new Regex("animate (?<farmerName>farmer\\d) false true 600 43 41 43 42");
            Regex regex5 = new Regex("animate (?<farmerName>farmer\\d) false true 300 46 47");
            Regex regex6 = new Regex("animate (?<farmerName>farmer\\d) false true 600 46 47");

            text2 = regex.Replace(text2, "showFrame $1 12/faceDirection $1 0");
            text2 = regex2.Replace(text2, "showFrame $1 0/faceDirection $1 2");
            text2 = regex3.Replace(text2, "animate $1 false true 600 12 13 12 14");
            text2 = regex4.Replace(text2, "animate $1 false true 596 4 0");
            text2 = regex5.Replace(text2, "animate $1 false true 150 12 13 12 14");
            text2 = regex6.Replace(text2, "animate $1 false true 600 0 3");
            string[] array = text2.Split(new char[]
            {
                '/'
            });
            dance.eventCommands = array;
        }