Add percentage of determination/addiction/cooling timetags/0.1.0
| @@ -19,6 +19,7 @@ using Protobuf; | |||
| using Playback; | |||
| using CommandLine; | |||
| using Preparation.Utility; | |||
| using Preparation.Interface; | |||
| // 目前MainWindow还未复现的功能: | |||
| // private void ClickToSetMode(object sender, RoutedEventArgs e) | |||
| @@ -408,11 +409,23 @@ namespace Client | |||
| switch (obj.MessageOfObjCase) | |||
| { | |||
| case MessageOfObj.MessageOfObjOneofCase.StudentMessage: | |||
| if (humanOrButcher && obj.StudentMessage.PlayerId == playerID) | |||
| { | |||
| human = obj.StudentMessage; | |||
| } | |||
| if (obj.StudentMessage.PlayerId < GameData.numOfStudent) | |||
| { | |||
| IStudentType occupation = (IStudentType)OccupationFactory.FindIOccupation(Transformation.ToStudentType(obj.StudentMessage.StudentType)); | |||
| totalLife[obj.StudentMessage.PlayerId] = occupation.MaxHp; | |||
| totalDeath[obj.StudentMessage.PlayerId] = occupation.MaxGamingAddiction; | |||
| int i = 0; | |||
| foreach (var skill in occupation.ListOfIActiveSkill) | |||
| { | |||
| var iActiveSkill = SkillFactory.FindIActiveSkill(skill); | |||
| coolTime[i, obj.StudentMessage.PlayerId] = iActiveSkill.SkillCD; | |||
| ++i; | |||
| } | |||
| } | |||
| listOfHuman.Add(obj.StudentMessage); | |||
| break; | |||
| case MessageOfObj.MessageOfObjOneofCase.TrickerMessage: | |||
| @@ -420,6 +433,14 @@ namespace Client | |||
| { | |||
| butcher = obj.TrickerMessage; | |||
| } | |||
| IGhostType occupation1 = (IGhostType)OccupationFactory.FindIOccupation(Transformation.ToTrickerType(obj.TrickerMessage.TrickerType)); | |||
| int j = 0; | |||
| foreach (var skill in occupation1.ListOfIActiveSkill) | |||
| { | |||
| var iActiveSkill = SkillFactory.FindIActiveSkill(skill); | |||
| coolTime[j, 4] = iActiveSkill.SkillCD; | |||
| ++j; | |||
| } | |||
| listOfButcher.Add(obj.TrickerMessage); | |||
| break; | |||
| case MessageOfObj.MessageOfObjOneofCase.PropMessage: | |||
| @@ -644,7 +665,7 @@ namespace Client | |||
| return true; | |||
| } | |||
| private void Refresh(object? sender, EventArgs e) // 已按照3.5版proto更新信息,circumstance栏未更新 log未更新 | |||
| private void Refresh(object? sender, EventArgs e) //log未更新 | |||
| { | |||
| // Bonus(); | |||
| if (WindowState == WindowState.Maximized) | |||
| @@ -652,16 +673,21 @@ namespace Client | |||
| else | |||
| MaxButton.Content = "🗖"; | |||
| if (StatusBarsOfSurvivor != null) | |||
| for (int i = 4; i < 8; i++) | |||
| { | |||
| for (int i = 0; i < GameData.numOfStudent; i++) | |||
| { | |||
| StatusBarsOfSurvivor[i - 4].SetFontSize(12 * UpperLayerOfMap.ActualHeight / 650); | |||
| StatusBarsOfSurvivor[i].SetFontSize(12 * UpperLayerOfMap.ActualHeight / 650); | |||
| StatusBarsOfSurvivor[i].NewData(totalLife, totalDeath, coolTime); | |||
| } | |||
| } | |||
| if (StatusBarsOfHunter != null) | |||
| { | |||
| StatusBarsOfHunter.SetFontSize(12 * UpperLayerOfMap.ActualHeight / 650); | |||
| StatusBarsOfHunter.NewData(totalLife, totalDeath, coolTime); | |||
| } | |||
| if (StatusBarsOfCircumstance != null) | |||
| StatusBarsOfCircumstance.SetFontSize(12 * UpperLayerOfMap.ActualHeight / 650); | |||
| // 完成窗口信息更新 | |||
| if (!isClientStocked) | |||
| { | |||
| unit = Math.Sqrt(UpperLayerOfMap.ActualHeight * UpperLayerOfMap.ActualWidth) / 50; | |||
| @@ -1362,10 +1388,10 @@ namespace Client | |||
| { 6, 6, 0, 0, 7, 7, 6, 7, 7, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 6 }, | |||
| { 6, 6, 15, 0, 0, 0, 7, 0, 0, 0, 0, 6, 6, 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 6, 11, 6, 0, 0, 0, 0, 0, 6 }, | |||
| { 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 6, 6,6, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 }, | |||
| { 6, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 15, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 }, | |||
| { 6, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0,8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 6 }, | |||
| { 6, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 15, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 }, | |||
| { 6, 0, 0, 0, 0, 0, 0, 0, 6, 7, 0, 0,8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 6 }, | |||
| { 6, 0, 0, 0, 0, 0, 0, 0, 6, 7, 7, 0, 0, 0, 6, 6, 6, 11, 6, 0, 0, 6, 6, 6, 7, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 6 }, | |||
| { 6, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 6, 6, 6, 0, 0, 0, 0, 6, 0, 6, 7, 7, 6, 7, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 14, 6, 6, 6, 0, 0, 0, 0, 0, 7, 0, 0, 6, 0, 6 }, | |||
| { 6, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 6, 6, 6, 6, 0, 0, 0, 6, 0, 6, 7, 7, 6, 7, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 14, 6, 6, 6, 0, 0, 0, 0, 0, 7, 0, 0, 6, 0, 6 }, | |||
| { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 7, 0, 7, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 7, 6, 0, 6, 6, 0, 6 }, | |||
| { 6, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 0, 0, 7, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 7, 6, 6, 6, 0, 0, 6 }, | |||
| { 6, 0, 0, 0, 0, 0, 6, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 }, | |||
| @@ -1382,5 +1408,7 @@ namespace Client | |||
| bool isEmergencyOpened = false; | |||
| bool isEmergencyDrawed = false; | |||
| const double radiusTimes = 1.0 * Preparation.Utility.GameData.characterRadius / Preparation.Utility.GameData.numOfPosGridPerCell; | |||
| private int[] totalLife = new int[4] { 100, 100, 100, 100 }, totalDeath = new int[4] { 100, 100, 100, 100 }; | |||
| private int[,] coolTime = new int[3, 5] { { 100, 100, 100, 100, 100 }, { 100, 100, 100, 100, 100 }, { 100, 100, 100, 100, 100 } }; | |||
| } | |||
| } | |||
| @@ -3,10 +3,6 @@ using System.Collections.Generic; | |||
| using System.Linq; | |||
| using System.Text; | |||
| using System.Threading.Tasks; | |||
| using System.Collections.Generic; | |||
| using System.Linq; | |||
| using System.Text; | |||
| using System.Threading.Tasks; | |||
| using System.Windows; | |||
| using System.Windows.Controls; | |||
| using System.Windows.Data; | |||
| @@ -16,6 +12,7 @@ using System.Windows.Media; | |||
| using System.Windows.Media.Imaging; | |||
| using System.Windows.Shapes; | |||
| using Protobuf; | |||
| using Preparation.Utility; | |||
| namespace Client | |||
| { | |||
| @@ -127,11 +124,11 @@ namespace Client | |||
| } | |||
| scores.Text = "Scores: " + Convert.ToString(obj.Score); | |||
| if (obj.TimeUntilSkillAvailable[0] >= 0) | |||
| skillprogress0.Value = 100 - obj.TimeUntilSkillAvailable[0] / coolTime0[4] * 100; | |||
| skillprogress0.Value = 100 - 100.0 * obj.TimeUntilSkillAvailable[0] / coolTime0[4]; | |||
| if (obj.TimeUntilSkillAvailable[1] >= 0) | |||
| skillprogress1.Value = 100 - obj.TimeUntilSkillAvailable[1] / coolTime1[4] * 100; | |||
| skillprogress1.Value = 100 - 100.0 * obj.TimeUntilSkillAvailable[1] / coolTime1[4]; | |||
| if (obj.TimeUntilSkillAvailable[2] >= 0) | |||
| skillprogress2.Value = 100 - obj.TimeUntilSkillAvailable[2] / coolTime2[4] * 100; | |||
| skillprogress2.Value = 100 - 100.0 * obj.TimeUntilSkillAvailable[2] / coolTime2[4]; | |||
| if (obj.PlayerState == PlayerState.Quit) | |||
| { | |||
| skillprogress0.Value = skillprogress1.Value = skillprogress2.Value = 0; | |||
| @@ -255,6 +252,20 @@ namespace Client | |||
| SetStaticValue(obj); | |||
| SetDynamicValue(obj); | |||
| } | |||
| public void NewData(int[] life, int[] death, int[,] coolTime) | |||
| { | |||
| for (int i = 0; i < GameData.numOfStudent; ++i) | |||
| { | |||
| totalLife[i] = life[i]; | |||
| totalDeath[i] = death[i]; | |||
| coolTime0[i] = coolTime[0, i]; | |||
| coolTime1[i] = coolTime[1, i]; | |||
| coolTime2[i] = coolTime[2, i]; | |||
| } | |||
| coolTime0[4] = coolTime[0, 4]; | |||
| coolTime1[4] = coolTime[1, 4]; | |||
| coolTime2[4] = coolTime[2, 4]; | |||
| } | |||
| private int[] totalLife = new int[4] { 100, 100, 100, 100 }, totalDeath = new int[4] { 100, 100, 100, 100 }; | |||
| private int[] coolTime0 = new int[5] { 100, 100, 100, 100, 100 }, coolTime1 = new int[5] { 100, 100, 100, 100, 100 }, coolTime2 = new int[5] { 100, 100, 100, 100, 100 }; | |||
| private bool initialized; | |||
| @@ -12,6 +12,7 @@ using System.Windows.Media; | |||
| using System.Windows.Media.Imaging; | |||
| using System.Windows.Shapes; | |||
| using Protobuf; | |||
| using Preparation.Utility; | |||
| namespace Client | |||
| { | |||
| @@ -32,7 +33,6 @@ namespace Client | |||
| { | |||
| serial.FontSize = scores.FontSize = status.FontSize = activeSkill0.FontSize = activeSkill1.FontSize = activeSkill2.FontSize = prop0.FontSize = prop1.FontSize = prop2.FontSize = fontsize; | |||
| } | |||
| private void SetStaticValue(MessageOfStudent obj) | |||
| { | |||
| switch (obj.StudentType) // coolTime参数未设定, | |||
| @@ -65,20 +65,16 @@ namespace Client | |||
| { | |||
| int life = obj.Determination, death = obj.Addiction; | |||
| int perLife = (int)(100.0 * life / totalLife[i]), perDeath = (int)(100.0 * death / totalDeath[i]); | |||
| if (perLife > 100) | |||
| perLife = 0; | |||
| if (perDeath > 100) | |||
| perDeath = 0; | |||
| switch (obj.PlayerState) | |||
| { | |||
| case PlayerState.Idle: | |||
| status.Text = "♥: " + Convert.ToString(life) + "," + Convert.ToString(perLife) + "%\nIdle"; | |||
| status.Text = "♥: " + Convert.ToString(life) + "\nIdle, " + Convert.ToString(perLife) + "%"; | |||
| break; | |||
| case PlayerState.Learning: | |||
| status.Text = "♥: " + Convert.ToString(life) + "," + Convert.ToString(perLife) + "%\nLearning"; | |||
| status.Text = "♥: " + Convert.ToString(life) + "\nLearning, " + Convert.ToString(perLife) + "%"; | |||
| break; | |||
| case PlayerState.Addicted: | |||
| status.Text = "💀: " + Convert.ToString(death) + "," + Convert.ToString(perDeath) + "%\nAddicted"; | |||
| status.Text = "💀: " + Convert.ToString(death) + "\nAddicted, " + Convert.ToString(perDeath) + "%"; | |||
| break; | |||
| case PlayerState.Graduated: | |||
| status.Text = "♥" + "\nGraduated"; | |||
| @@ -87,54 +83,54 @@ namespace Client | |||
| status.Text = "💀" + "\nQuit"; | |||
| break; | |||
| case PlayerState.Treated: | |||
| status.Text = "♥: " + Convert.ToString(life) + "," + Convert.ToString(perLife) + "%\nTreated"; | |||
| status.Text = "♥: " + Convert.ToString(life) + "\nTreated, " + Convert.ToString(perLife) + "%"; | |||
| break; | |||
| case PlayerState.Rescued: | |||
| status.Text = "💀: " + Convert.ToString(death) + "," + Convert.ToString(perDeath) + "%\nRescued"; | |||
| status.Text = "💀: " + Convert.ToString(death) + "\nRescued, " + Convert.ToString(perDeath) + "%"; | |||
| break; | |||
| case PlayerState.Stunned: | |||
| status.Text = "♥: " + Convert.ToString(life) + "," + Convert.ToString(perLife) + "%\nStunned"; | |||
| status.Text = "♥: " + Convert.ToString(life) + "\nStunned, " + Convert.ToString(perLife) + "%"; | |||
| break; | |||
| case PlayerState.Treating: | |||
| status.Text = "♥: " + Convert.ToString(life) + "," + Convert.ToString(perLife) + "%\nTreating"; | |||
| status.Text = "♥: " + Convert.ToString(life) + "\nTreating, " + Convert.ToString(perLife) + "%"; | |||
| break; | |||
| case PlayerState.Rescuing: | |||
| status.Text = "♥: " + Convert.ToString(life) + "," + Convert.ToString(perLife) + "%\nRescuing"; | |||
| status.Text = "♥: " + Convert.ToString(life) + "\nRescuing, " + Convert.ToString(perLife) + "%"; | |||
| break; | |||
| case PlayerState.Swinging: | |||
| status.Text = "♥: " + Convert.ToString(life) + "," + Convert.ToString(perLife) + "%\nSwinging"; | |||
| status.Text = "♥: " + Convert.ToString(life) + "\nSwinging, " + Convert.ToString(perLife) + "%"; | |||
| break; | |||
| case PlayerState.Attacking: | |||
| status.Text = "♥: " + Convert.ToString(life) + "," + Convert.ToString(perLife) + "%\nAttacking"; | |||
| status.Text = "♥: " + Convert.ToString(life) + "\nAttacking, " + Convert.ToString(perLife) + "%"; | |||
| break; | |||
| case PlayerState.Locking: | |||
| status.Text = "♥: " + Convert.ToString(life) + "," + Convert.ToString(perLife) + "%\nLocking"; | |||
| status.Text = "♥: " + Convert.ToString(life) + "\nLocking, " + Convert.ToString(perLife) + "%"; | |||
| break; | |||
| case PlayerState.Rummaging: | |||
| status.Text = "♥: " + Convert.ToString(life) + "," + Convert.ToString(perLife) + "%\nRummaging"; | |||
| status.Text = "♥: " + Convert.ToString(life) + "\nRummaging, " + Convert.ToString(perLife) + "%"; | |||
| break; | |||
| case PlayerState.Climbing: | |||
| status.Text = "♥: " + Convert.ToString(life) + "," + Convert.ToString(perLife) + "%\nClimbing"; | |||
| status.Text = "♥: " + Convert.ToString(life) + "\nClimbing, " + Convert.ToString(perLife) + "%"; | |||
| break; | |||
| case PlayerState.OpeningAChest: | |||
| status.Text = "♥: " + Convert.ToString(life) + "," + Convert.ToString(perLife) + "%\nOpeningAChest"; | |||
| status.Text = "♥: " + Convert.ToString(life) + "\nOpeningAChest, " + Convert.ToString(perLife) + "%"; | |||
| break; | |||
| case PlayerState.UsingSpecialSkill: | |||
| status.Text = "♥: " + Convert.ToString(life) + "," + Convert.ToString(perLife) + "%\nUsingSpecialSkill"; | |||
| status.Text = "♥: " + Convert.ToString(life) + "\nUsingSpecialSkill, " + Convert.ToString(perLife) + "%"; | |||
| break; | |||
| case PlayerState.OpeningAGate: | |||
| status.Text = "♥: " + Convert.ToString(life) + "," + Convert.ToString(perLife) + "%\nOpeningAGate"; | |||
| status.Text = "♥: " + Convert.ToString(life) + "\nOpeningAGate, " + Convert.ToString(perLife) + "%"; | |||
| break; | |||
| default: | |||
| break; | |||
| } | |||
| scores.Text = "Scores: " + obj.Score; | |||
| if (obj.TimeUntilSkillAvailable[0] >= 0) | |||
| skillprogress0.Value = 100 - obj.TimeUntilSkillAvailable[0] / coolTime0[i] * 100; | |||
| skillprogress0.Value = 100 - 100.0 * obj.TimeUntilSkillAvailable[0] / coolTime0[i]; | |||
| if (obj.TimeUntilSkillAvailable[1] >= 0) | |||
| skillprogress1.Value = 100 - obj.TimeUntilSkillAvailable[1] / coolTime1[i] * 100; | |||
| skillprogress1.Value = 100 - 100.0 * obj.TimeUntilSkillAvailable[1] / coolTime1[i]; | |||
| if (obj.TimeUntilSkillAvailable[2] >= 0) | |||
| skillprogress2.Value = 100 - obj.TimeUntilSkillAvailable[2] / coolTime2[i] * 100; | |||
| skillprogress2.Value = 100 - 100.0 * obj.TimeUntilSkillAvailable[2] / coolTime2[i]; | |||
| if (obj.PlayerState == PlayerState.Quit) | |||
| { | |||
| skillprogress0.Value = skillprogress1.Value = skillprogress2.Value = 0; | |||
| @@ -251,13 +247,27 @@ namespace Client | |||
| } | |||
| } | |||
| } | |||
| public void SetValue(MessageOfStudent obj, long i) | |||
| { | |||
| if (!initialized) | |||
| SetStaticValue(obj); | |||
| SetDynamicValue(obj, i); | |||
| } | |||
| public void NewData(int[] life, int[] death, int[,] coolTime) | |||
| { | |||
| for (int i = 0; i < GameData.numOfStudent; ++i) | |||
| { | |||
| totalLife[i] = life[i]; | |||
| totalDeath[i] = death[i]; | |||
| coolTime0[i] = coolTime[0, i]; | |||
| coolTime1[i] = coolTime[1, i]; | |||
| coolTime2[i] = coolTime[2, i]; | |||
| } | |||
| coolTime0[4] = coolTime[0, 4]; | |||
| coolTime1[4] = coolTime[1, 4]; | |||
| coolTime2[4] = coolTime[2, 4]; | |||
| } | |||
| private int[] totalLife = new int[4] { 100, 100, 100, 100 }, totalDeath = new int[4] { 100, 100, 100, 100 }; | |||
| private int[] coolTime0 = new int[5] { 100, 100, 100, 100, 100 }, coolTime1 = new int[5] { 100, 100, 100, 100, 100 }, coolTime2 = new int[5] { 100, 100, 100, 100, 100 }; | |||
| private bool initialized; | |||
| @@ -76,7 +76,7 @@ namespace GameClass.GameObj | |||
| foreach (var activeSkill in this.Occupation.ListOfIActiveSkill) | |||
| { | |||
| this.IActiveSkillDictionary.Add(activeSkill, SkillFactory.FindIActiveSkill(activeSkill)); | |||
| this.TimeUntilActiveSkillAvailable.Add(activeSkill, IActiveSkillDictionary[activeSkill].SkillCD); | |||
| this.TimeUntilActiveSkillAvailable.Add(activeSkill, 0); | |||
| } | |||
| // UsePassiveSkill(); //创建player时开始被动技能,这一过程也可以放到gamestart时进行 | |||
| @@ -52,10 +52,10 @@ namespace GameClass.GameObj | |||
| { 6, 6, 0, 0, 7, 7, 6, 7, 7, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 6 }, | |||
| { 6, 6, 15, 0, 0, 0, 7, 0, 0, 0, 0, 6, 6, 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 6, 11, 6, 0, 0, 0, 0, 0, 6 }, | |||
| { 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 6, 6,6, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 }, | |||
| { 6, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 15, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 }, | |||
| { 6, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0,8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 6 }, | |||
| { 6, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 15, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 }, | |||
| { 6, 0, 0, 0, 0, 0, 0, 0, 6, 7, 0, 0,8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 6 }, | |||
| { 6, 0, 0, 0, 0, 0, 0, 0, 6, 7, 7, 0, 0, 0, 6, 6, 6, 11, 6, 0, 0, 6, 6, 6, 7, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 6 }, | |||
| { 6, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 6, 6, 6, 0, 0, 0, 0, 6, 0, 6, 7, 7, 6, 7, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 14, 6, 6, 6, 0, 0, 0, 0, 0, 7, 0, 0, 6, 0, 6 }, | |||
| { 6, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 6, 6, 6, 6, 0, 0, 0, 6, 0, 6, 7, 7, 6, 7, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 14, 6, 6, 6, 0, 0, 0, 0, 0, 7, 0, 0, 6, 0, 6 }, | |||
| { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 7, 0, 7, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 7, 6, 0, 6, 6, 0, 6 }, | |||
| { 6, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 0, 0, 7, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 7, 6, 6, 6, 0, 0, 6 }, | |||
| { 6, 0, 0, 0, 0, 0, 6, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 }, | |||
| @@ -63,7 +63,6 @@ namespace GameClass.GameObj | |||
| { 6, 0, 0, 0, 6, 6, 6, 6, 6, 7, 0, 0, 0, 10, 0, 0, 0, 0, 6, 6, 7, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 6, 6, 6, 0, 0, 0, 0, 6, 0, 0, 0, 0, 7, 6, 6, 0, 0, 0, 6 }, | |||
| { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 7, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 6, 0, 0, 0, 7, 7, 6, 6, 0, 0, 0, 6 }, | |||
| { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 } | |||
| }; | |||
| }; | |||
| } | |||
| } | |||
| @@ -7,5 +7,13 @@ | |||
| <StartupObject /> | |||
| <Nullable>enable</Nullable> | |||
| </PropertyGroup> | |||
| <ItemGroup> | |||
| <PackageReference Include="Google.Protobuf" Version="3.22.1" /> | |||
| </ItemGroup> | |||
| <ItemGroup> | |||
| <ProjectReference Include="..\..\dependency\proto\Protos.csproj" /> | |||
| </ItemGroup> | |||
| </Project> | |||
| @@ -0,0 +1,255 @@ | |||
| using Protobuf; | |||
| namespace Preparation.Utility | |||
| { | |||
| public static class Transformation | |||
| { | |||
| public static Protobuf.PlaceType ToPlaceType(Preparation.Utility.PlaceType place) | |||
| { | |||
| switch (place) | |||
| { | |||
| case Preparation.Utility.PlaceType.Window: | |||
| return Protobuf.PlaceType.Window; | |||
| case Preparation.Utility.PlaceType.EmergencyExit: | |||
| return Protobuf.PlaceType.HiddenGate; | |||
| case Preparation.Utility.PlaceType.Doorway: | |||
| return Protobuf.PlaceType.Gate; | |||
| case Preparation.Utility.PlaceType.Chest: | |||
| return Protobuf.PlaceType.Chest; | |||
| case Preparation.Utility.PlaceType.Door3: | |||
| return Protobuf.PlaceType.Door3; | |||
| case Preparation.Utility.PlaceType.Door5: | |||
| return Protobuf.PlaceType.Door5; | |||
| case Preparation.Utility.PlaceType.Door6: | |||
| return Protobuf.PlaceType.Door6; | |||
| case Preparation.Utility.PlaceType.Generator: | |||
| return Protobuf.PlaceType.Classroom; | |||
| case Preparation.Utility.PlaceType.Grass: | |||
| return Protobuf.PlaceType.Grass; | |||
| case Preparation.Utility.PlaceType.Wall: | |||
| return Protobuf.PlaceType.Wall; | |||
| case Preparation.Utility.PlaceType.Null: | |||
| case Preparation.Utility.PlaceType.BirthPoint1: | |||
| case Preparation.Utility.PlaceType.BirthPoint2: | |||
| case Preparation.Utility.PlaceType.BirthPoint3: | |||
| case Preparation.Utility.PlaceType.BirthPoint4: | |||
| case Preparation.Utility.PlaceType.BirthPoint5: | |||
| return Protobuf.PlaceType.Land; | |||
| default: | |||
| return Protobuf.PlaceType.NullPlaceType; | |||
| } | |||
| } | |||
| public static Protobuf.PropType ToPropType(Preparation.Utility.PropType prop) | |||
| { | |||
| switch (prop) | |||
| { | |||
| case Preparation.Utility.PropType.AddSpeed: | |||
| return Protobuf.PropType.AddSpeed; | |||
| case Preparation.Utility.PropType.AddLifeOrClairaudience: | |||
| return Protobuf.PropType.AddLifeOrClairaudience; | |||
| case Preparation.Utility.PropType.AddHpOrAp: | |||
| return Protobuf.PropType.AddHpOrAp; | |||
| case Preparation.Utility.PropType.ShieldOrSpear: | |||
| return Protobuf.PropType.ShieldOrSpear; | |||
| case Preparation.Utility.PropType.RecoveryFromDizziness: | |||
| return Protobuf.PropType.RecoveryFromDizziness; | |||
| case Preparation.Utility.PropType.Key3: | |||
| return Protobuf.PropType.Key3; | |||
| case Preparation.Utility.PropType.Key5: | |||
| return Protobuf.PropType.Key5; | |||
| case Preparation.Utility.PropType.Key6: | |||
| return Protobuf.PropType.Key6; | |||
| default: | |||
| return Protobuf.PropType.NullPropType; | |||
| } | |||
| } | |||
| public static Preparation.Utility.PropType ToPropType(Protobuf.PropType prop) | |||
| { | |||
| switch (prop) | |||
| { | |||
| case Protobuf.PropType.AddSpeed: | |||
| return Preparation.Utility.PropType.AddSpeed; | |||
| case Protobuf.PropType.AddLifeOrClairaudience: | |||
| return Preparation.Utility.PropType.AddLifeOrClairaudience; | |||
| case Protobuf.PropType.AddHpOrAp: | |||
| return Preparation.Utility.PropType.AddHpOrAp; | |||
| case Protobuf.PropType.ShieldOrSpear: | |||
| return Preparation.Utility.PropType.ShieldOrSpear; | |||
| case Protobuf.PropType.RecoveryFromDizziness: | |||
| return Preparation.Utility.PropType.RecoveryFromDizziness; | |||
| case Protobuf.PropType.Key3: | |||
| return Preparation.Utility.PropType.Key3; | |||
| case Protobuf.PropType.Key5: | |||
| return Preparation.Utility.PropType.Key5; | |||
| case Protobuf.PropType.Key6: | |||
| return Preparation.Utility.PropType.Key6; | |||
| default: | |||
| return Preparation.Utility.PropType.Null; | |||
| } | |||
| } | |||
| public static Protobuf.PlayerState ToPlayerState(Preparation.Utility.PlayerStateType playerState) | |||
| { | |||
| switch (playerState) | |||
| { | |||
| case Preparation.Utility.PlayerStateType.Moving: | |||
| case Preparation.Utility.PlayerStateType.Null: | |||
| return PlayerState.Idle; | |||
| case Preparation.Utility.PlayerStateType.Addicted: | |||
| return PlayerState.Addicted; | |||
| case Preparation.Utility.PlayerStateType.ClimbingThroughWindows: | |||
| return PlayerState.Climbing; | |||
| case Preparation.Utility.PlayerStateType.Deceased: | |||
| return PlayerState.Quit; | |||
| case Preparation.Utility.PlayerStateType.Escaped: | |||
| return PlayerState.Graduated; | |||
| case Preparation.Utility.PlayerStateType.Fixing: | |||
| return PlayerState.Learning; | |||
| case Preparation.Utility.PlayerStateType.LockingOrOpeningTheDoor: | |||
| return PlayerState.Locking; | |||
| case Preparation.Utility.PlayerStateType.OpeningTheChest: | |||
| return PlayerState.OpeningAChest; | |||
| case Preparation.Utility.PlayerStateType.Rescued: | |||
| return PlayerState.Rescued; | |||
| case Preparation.Utility.PlayerStateType.Rescuing: | |||
| return PlayerState.Rescuing; | |||
| case Preparation.Utility.PlayerStateType.Stunned: | |||
| return PlayerState.Stunned; | |||
| case Preparation.Utility.PlayerStateType.Swinging: | |||
| return PlayerState.Swinging; | |||
| case Preparation.Utility.PlayerStateType.Treated: | |||
| return PlayerState.Treated; | |||
| case Preparation.Utility.PlayerStateType.Treating: | |||
| return PlayerState.Treating; | |||
| case Preparation.Utility.PlayerStateType.TryingToAttack: | |||
| return PlayerState.Attacking; | |||
| case Preparation.Utility.PlayerStateType.UsingSkill: | |||
| return PlayerState.UsingSpecialSkill; | |||
| case Preparation.Utility.PlayerStateType.OpeningTheDoorway: | |||
| return PlayerState.OpeningAGate; | |||
| default: | |||
| return PlayerState.NullStatus; | |||
| } | |||
| } | |||
| public static Protobuf.StudentBuffType ToStudentBuffType(Preparation.Utility.BuffType buffType) | |||
| { | |||
| switch (buffType) | |||
| { | |||
| case Preparation.Utility.BuffType.AddSpeed: | |||
| return Protobuf.StudentBuffType.StudentAddSpeed; | |||
| case Preparation.Utility.BuffType.AddLife: | |||
| return Protobuf.StudentBuffType.AddLife; | |||
| case Preparation.Utility.BuffType.Shield: | |||
| return Protobuf.StudentBuffType.Shield; | |||
| case Preparation.Utility.BuffType.Invisible: | |||
| return Protobuf.StudentBuffType.StudentInvisible; | |||
| default: | |||
| return Protobuf.StudentBuffType.NullSbuffType; | |||
| } | |||
| } | |||
| public static Protobuf.TrickerBuffType ToTrickerBuffType(Preparation.Utility.BuffType buffType) | |||
| { | |||
| switch (buffType) | |||
| { | |||
| case Preparation.Utility.BuffType.AddSpeed: | |||
| return Protobuf.TrickerBuffType.TrickerAddSpeed; | |||
| case Preparation.Utility.BuffType.Spear: | |||
| return Protobuf.TrickerBuffType.Spear; | |||
| case Preparation.Utility.BuffType.AddAp: | |||
| return Protobuf.TrickerBuffType.AddAp; | |||
| case Preparation.Utility.BuffType.Clairaudience: | |||
| return Protobuf.TrickerBuffType.Clairaudience; | |||
| case Preparation.Utility.BuffType.Invisible: | |||
| return Protobuf.TrickerBuffType.TrickerInvisible; | |||
| default: | |||
| return Protobuf.TrickerBuffType.NullTbuffType; | |||
| } | |||
| } | |||
| public static Protobuf.BulletType ToBulletType(Preparation.Utility.BulletType bulletType) | |||
| { | |||
| switch (bulletType) | |||
| { | |||
| case Preparation.Utility.BulletType.FlyingKnife: | |||
| return Protobuf.BulletType.FlyingKnife; | |||
| case Preparation.Utility.BulletType.CommonAttackOfGhost: | |||
| return Protobuf.BulletType.CommonAttackOfTricker; | |||
| case Preparation.Utility.BulletType.BombBomb: | |||
| return Protobuf.BulletType.BombBomb; | |||
| case Preparation.Utility.BulletType.JumpyDumpty: | |||
| return Protobuf.BulletType.JumpyDumpty; | |||
| default: | |||
| return Protobuf.BulletType.NullBulletType; | |||
| } | |||
| } | |||
| public static Protobuf.StudentType ToStudentType(Preparation.Utility.CharacterType characterType) | |||
| { | |||
| switch (characterType) | |||
| { | |||
| case Preparation.Utility.CharacterType.Athlete: | |||
| return Protobuf.StudentType.Athlete; | |||
| case Preparation.Utility.CharacterType.Teacher: | |||
| return Protobuf.StudentType.Teacher; | |||
| case Preparation.Utility.CharacterType.StraightAStudent: | |||
| return Protobuf.StudentType.StraightAStudent; | |||
| case Preparation.Utility.CharacterType.Robot: | |||
| return Protobuf.StudentType.Robot; | |||
| case Preparation.Utility.CharacterType.TechOtaku: | |||
| return Protobuf.StudentType.TechOtaku; | |||
| default: | |||
| return Protobuf.StudentType.NullStudentType; | |||
| } | |||
| } | |||
| public static Preparation.Utility.CharacterType ToStudentType(Protobuf.StudentType characterType) | |||
| { | |||
| switch (characterType) | |||
| { | |||
| case Protobuf.StudentType.Athlete: | |||
| return Preparation.Utility.CharacterType.Athlete; | |||
| case Protobuf.StudentType.Teacher: | |||
| return Preparation.Utility.CharacterType.Teacher; | |||
| case Protobuf.StudentType.StraightAStudent: | |||
| return Preparation.Utility.CharacterType.StraightAStudent; | |||
| case Protobuf.StudentType.Robot: | |||
| return Preparation.Utility.CharacterType.Robot; | |||
| case Protobuf.StudentType.TechOtaku: | |||
| return Preparation.Utility.CharacterType.TechOtaku; | |||
| default: | |||
| return Preparation.Utility.CharacterType.Null; | |||
| } | |||
| } | |||
| public static Protobuf.TrickerType ToTrickerType(Preparation.Utility.CharacterType characterType) | |||
| { | |||
| switch (characterType) | |||
| { | |||
| case Preparation.Utility.CharacterType.Assassin: | |||
| return Protobuf.TrickerType.Assassin; | |||
| case Preparation.Utility.CharacterType.Klee: | |||
| return Protobuf.TrickerType.Klee; | |||
| case Preparation.Utility.CharacterType.ANoisyPerson: | |||
| return Protobuf.TrickerType.ANoisyPerson; | |||
| default: | |||
| return Protobuf.TrickerType.NullTrickerType; | |||
| } | |||
| } | |||
| public static Preparation.Utility.CharacterType ToTrickerType(Protobuf.TrickerType characterType) | |||
| { | |||
| switch (characterType) | |||
| { | |||
| case Protobuf.TrickerType.Assassin: | |||
| return Preparation.Utility.CharacterType.Assassin; | |||
| case Protobuf.TrickerType.Klee: | |||
| return Preparation.Utility.CharacterType.Klee; | |||
| case Protobuf.TrickerType.ANoisyPerson: | |||
| return Preparation.Utility.CharacterType.ANoisyPerson; | |||
| default: | |||
| return Preparation.Utility.CharacterType.Null; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| @@ -9,252 +9,6 @@ namespace Server | |||
| public static class CopyInfo | |||
| { | |||
| public static Protobuf.PlaceType ToPlaceType(Preparation.Utility.PlaceType place) | |||
| { | |||
| switch (place) | |||
| { | |||
| case Preparation.Utility.PlaceType.Window: | |||
| return Protobuf.PlaceType.Window; | |||
| case Preparation.Utility.PlaceType.EmergencyExit: | |||
| return Protobuf.PlaceType.HiddenGate; | |||
| case Preparation.Utility.PlaceType.Doorway: | |||
| return Protobuf.PlaceType.Gate; | |||
| case Preparation.Utility.PlaceType.Chest: | |||
| return Protobuf.PlaceType.Chest; | |||
| case Preparation.Utility.PlaceType.Door3: | |||
| return Protobuf.PlaceType.Door3; | |||
| case Preparation.Utility.PlaceType.Door5: | |||
| return Protobuf.PlaceType.Door5; | |||
| case Preparation.Utility.PlaceType.Door6: | |||
| return Protobuf.PlaceType.Door6; | |||
| case Preparation.Utility.PlaceType.Generator: | |||
| return Protobuf.PlaceType.Classroom; | |||
| case Preparation.Utility.PlaceType.Grass: | |||
| return Protobuf.PlaceType.Grass; | |||
| case Preparation.Utility.PlaceType.Wall: | |||
| return Protobuf.PlaceType.Wall; | |||
| case Preparation.Utility.PlaceType.Null: | |||
| case Preparation.Utility.PlaceType.BirthPoint1: | |||
| case Preparation.Utility.PlaceType.BirthPoint2: | |||
| case Preparation.Utility.PlaceType.BirthPoint3: | |||
| case Preparation.Utility.PlaceType.BirthPoint4: | |||
| case Preparation.Utility.PlaceType.BirthPoint5: | |||
| return Protobuf.PlaceType.Land; | |||
| default: | |||
| return Protobuf.PlaceType.NullPlaceType; | |||
| } | |||
| } | |||
| public static Protobuf.PropType ToPropType(Preparation.Utility.PropType prop) | |||
| { | |||
| switch (prop) | |||
| { | |||
| case Preparation.Utility.PropType.AddSpeed: | |||
| return Protobuf.PropType.AddSpeed; | |||
| case Preparation.Utility.PropType.AddLifeOrClairaudience: | |||
| return Protobuf.PropType.AddLifeOrClairaudience; | |||
| case Preparation.Utility.PropType.AddHpOrAp: | |||
| return Protobuf.PropType.AddHpOrAp; | |||
| case Preparation.Utility.PropType.ShieldOrSpear: | |||
| return Protobuf.PropType.ShieldOrSpear; | |||
| case Preparation.Utility.PropType.RecoveryFromDizziness: | |||
| return Protobuf.PropType.RecoveryFromDizziness; | |||
| case Preparation.Utility.PropType.Key3: | |||
| return Protobuf.PropType.Key3; | |||
| case Preparation.Utility.PropType.Key5: | |||
| return Protobuf.PropType.Key5; | |||
| case Preparation.Utility.PropType.Key6: | |||
| return Protobuf.PropType.Key6; | |||
| default: | |||
| return Protobuf.PropType.NullPropType; | |||
| } | |||
| } | |||
| public static Preparation.Utility.PropType ToPropType(Protobuf.PropType prop) | |||
| { | |||
| switch (prop) | |||
| { | |||
| case Protobuf.PropType.AddSpeed: | |||
| return Preparation.Utility.PropType.AddSpeed; | |||
| case Protobuf.PropType.AddLifeOrClairaudience: | |||
| return Preparation.Utility.PropType.AddLifeOrClairaudience; | |||
| case Protobuf.PropType.AddHpOrAp: | |||
| return Preparation.Utility.PropType.AddHpOrAp; | |||
| case Protobuf.PropType.ShieldOrSpear: | |||
| return Preparation.Utility.PropType.ShieldOrSpear; | |||
| case Protobuf.PropType.RecoveryFromDizziness: | |||
| return Preparation.Utility.PropType.RecoveryFromDizziness; | |||
| case Protobuf.PropType.Key3: | |||
| return Preparation.Utility.PropType.Key3; | |||
| case Protobuf.PropType.Key5: | |||
| return Preparation.Utility.PropType.Key5; | |||
| case Protobuf.PropType.Key6: | |||
| return Preparation.Utility.PropType.Key6; | |||
| default: | |||
| return Preparation.Utility.PropType.Null; | |||
| } | |||
| } | |||
| public static Protobuf.PlayerState ToPlayerState(Preparation.Utility.PlayerStateType playerState) | |||
| { | |||
| switch (playerState) | |||
| { | |||
| case Preparation.Utility.PlayerStateType.Moving: | |||
| case Preparation.Utility.PlayerStateType.Null: | |||
| return PlayerState.Idle; | |||
| case Preparation.Utility.PlayerStateType.Addicted: | |||
| return PlayerState.Addicted; | |||
| case Preparation.Utility.PlayerStateType.ClimbingThroughWindows: | |||
| return PlayerState.Climbing; | |||
| case Preparation.Utility.PlayerStateType.Deceased: | |||
| return PlayerState.Quit; | |||
| case Preparation.Utility.PlayerStateType.Escaped: | |||
| return PlayerState.Graduated; | |||
| case Preparation.Utility.PlayerStateType.Fixing: | |||
| return PlayerState.Learning; | |||
| case Preparation.Utility.PlayerStateType.LockingOrOpeningTheDoor: | |||
| return PlayerState.Locking; | |||
| case Preparation.Utility.PlayerStateType.OpeningTheChest: | |||
| return PlayerState.OpeningAChest; | |||
| case Preparation.Utility.PlayerStateType.Rescued: | |||
| return PlayerState.Rescued; | |||
| case Preparation.Utility.PlayerStateType.Rescuing: | |||
| return PlayerState.Rescuing; | |||
| case Preparation.Utility.PlayerStateType.Stunned: | |||
| return PlayerState.Stunned; | |||
| case Preparation.Utility.PlayerStateType.Swinging: | |||
| return PlayerState.Swinging; | |||
| case Preparation.Utility.PlayerStateType.Treated: | |||
| return PlayerState.Treated; | |||
| case Preparation.Utility.PlayerStateType.Treating: | |||
| return PlayerState.Treating; | |||
| case Preparation.Utility.PlayerStateType.TryingToAttack: | |||
| return PlayerState.Attacking; | |||
| case Preparation.Utility.PlayerStateType.UsingSkill: | |||
| return PlayerState.UsingSpecialSkill; | |||
| case Preparation.Utility.PlayerStateType.OpeningTheDoorway: | |||
| return PlayerState.OpeningAGate; | |||
| default: | |||
| return PlayerState.NullStatus; | |||
| } | |||
| } | |||
| public static Protobuf.StudentBuffType ToStudentBuffType(Preparation.Utility.BuffType buffType) | |||
| { | |||
| switch (buffType) | |||
| { | |||
| case Preparation.Utility.BuffType.AddSpeed: | |||
| return Protobuf.StudentBuffType.StudentAddSpeed; | |||
| case Preparation.Utility.BuffType.AddLife: | |||
| return Protobuf.StudentBuffType.AddLife; | |||
| case Preparation.Utility.BuffType.Shield: | |||
| return Protobuf.StudentBuffType.Shield; | |||
| case Preparation.Utility.BuffType.Invisible: | |||
| return Protobuf.StudentBuffType.StudentInvisible; | |||
| default: | |||
| return Protobuf.StudentBuffType.NullSbuffType; | |||
| } | |||
| } | |||
| public static Protobuf.TrickerBuffType ToTrickerBuffType(Preparation.Utility.BuffType buffType) | |||
| { | |||
| switch (buffType) | |||
| { | |||
| case Preparation.Utility.BuffType.AddSpeed: | |||
| return Protobuf.TrickerBuffType.TrickerAddSpeed; | |||
| case Preparation.Utility.BuffType.Spear: | |||
| return Protobuf.TrickerBuffType.Spear; | |||
| case Preparation.Utility.BuffType.AddAp: | |||
| return Protobuf.TrickerBuffType.AddAp; | |||
| case Preparation.Utility.BuffType.Clairaudience: | |||
| return Protobuf.TrickerBuffType.Clairaudience; | |||
| case Preparation.Utility.BuffType.Invisible: | |||
| return Protobuf.TrickerBuffType.TrickerInvisible; | |||
| default: | |||
| return Protobuf.TrickerBuffType.NullTbuffType; | |||
| } | |||
| } | |||
| public static Protobuf.BulletType ToBulletType(Preparation.Utility.BulletType bulletType) | |||
| { | |||
| switch (bulletType) | |||
| { | |||
| case Preparation.Utility.BulletType.FlyingKnife: | |||
| return Protobuf.BulletType.FlyingKnife; | |||
| case Preparation.Utility.BulletType.CommonAttackOfGhost: | |||
| return Protobuf.BulletType.CommonAttackOfTricker; | |||
| case Preparation.Utility.BulletType.BombBomb: | |||
| return Protobuf.BulletType.BombBomb; | |||
| case Preparation.Utility.BulletType.JumpyDumpty: | |||
| return Protobuf.BulletType.JumpyDumpty; | |||
| default: | |||
| return Protobuf.BulletType.NullBulletType; | |||
| } | |||
| } | |||
| public static Protobuf.StudentType ToStudentType(Preparation.Utility.CharacterType characterType) | |||
| { | |||
| switch (characterType) | |||
| { | |||
| case Preparation.Utility.CharacterType.Athlete: | |||
| return Protobuf.StudentType.Athlete; | |||
| case Preparation.Utility.CharacterType.Teacher: | |||
| return Protobuf.StudentType.Teacher; | |||
| case Preparation.Utility.CharacterType.StraightAStudent: | |||
| return Protobuf.StudentType.StraightAStudent; | |||
| case Preparation.Utility.CharacterType.Robot: | |||
| return Protobuf.StudentType.Robot; | |||
| case Preparation.Utility.CharacterType.TechOtaku: | |||
| return Protobuf.StudentType.TechOtaku; | |||
| default: | |||
| return Protobuf.StudentType.NullStudentType; | |||
| } | |||
| } | |||
| public static Preparation.Utility.CharacterType ToStudentType(Protobuf.StudentType characterType) | |||
| { | |||
| switch (characterType) | |||
| { | |||
| case Protobuf.StudentType.Athlete: | |||
| return Preparation.Utility.CharacterType.Athlete; | |||
| case Protobuf.StudentType.Teacher: | |||
| return Preparation.Utility.CharacterType.Teacher; | |||
| case Protobuf.StudentType.StraightAStudent: | |||
| return Preparation.Utility.CharacterType.StraightAStudent; | |||
| case Protobuf.StudentType.Robot: | |||
| return Preparation.Utility.CharacterType.Robot; | |||
| case Protobuf.StudentType.TechOtaku: | |||
| return Preparation.Utility.CharacterType.TechOtaku; | |||
| default: | |||
| return Preparation.Utility.CharacterType.Null; | |||
| } | |||
| } | |||
| public static Protobuf.TrickerType ToTrickerType(Preparation.Utility.CharacterType characterType) | |||
| { | |||
| switch (characterType) | |||
| { | |||
| case Preparation.Utility.CharacterType.Assassin: | |||
| return Protobuf.TrickerType.Assassin; | |||
| case Preparation.Utility.CharacterType.Klee: | |||
| return Protobuf.TrickerType.Klee; | |||
| case Preparation.Utility.CharacterType.ANoisyPerson: | |||
| return Protobuf.TrickerType.ANoisyPerson; | |||
| default: | |||
| return Protobuf.TrickerType.NullTrickerType; | |||
| } | |||
| } | |||
| public static Preparation.Utility.CharacterType ToTrickerType(Protobuf.TrickerType characterType) | |||
| { | |||
| switch (characterType) | |||
| { | |||
| case Protobuf.TrickerType.Assassin: | |||
| return Preparation.Utility.CharacterType.Assassin; | |||
| case Protobuf.TrickerType.Klee: | |||
| return Preparation.Utility.CharacterType.Klee; | |||
| case Protobuf.TrickerType.ANoisyPerson: | |||
| return Preparation.Utility.CharacterType.ANoisyPerson; | |||
| default: | |||
| return Preparation.Utility.CharacterType.Null; | |||
| } | |||
| } | |||
| public static MessageOfObj? Auto(GameObj gameObj) | |||
| { | |||
| switch (gameObj.Type) | |||
| @@ -312,12 +66,12 @@ namespace Server | |||
| msg.StudentMessage.TimeUntilSkillAvailable.Add(-1); | |||
| foreach (var value in player.PropInventory) | |||
| msg.StudentMessage.Prop.Add(ToPropType(value.GetPropType())); | |||
| msg.StudentMessage.Prop.Add(Transformation.ToPropType(value.GetPropType())); | |||
| msg.StudentMessage.Place = ToPlaceType((Preparation.Utility.PlaceType)player.Place); | |||
| msg.StudentMessage.Place = Transformation.ToPlaceType((Preparation.Utility.PlaceType)player.Place); | |||
| msg.StudentMessage.Guid = player.ID; | |||
| msg.StudentMessage.PlayerState = ToPlayerState((PlayerStateType)player.PlayerState); | |||
| msg.StudentMessage.PlayerState = Transformation.ToPlayerState((PlayerStateType)player.PlayerState); | |||
| msg.StudentMessage.PlayerId = player.PlayerID; | |||
| msg.StudentMessage.ViewRange = player.ViewRange; | |||
| msg.StudentMessage.Radius = player.Radius; | |||
| @@ -329,14 +83,14 @@ namespace Server | |||
| foreach (KeyValuePair<Preparation.Utility.BuffType, bool> kvp in player.Buff) | |||
| { | |||
| if (kvp.Value) | |||
| msg.StudentMessage.Buff.Add(ToStudentBuffType(kvp.Key)); | |||
| msg.StudentMessage.Buff.Add(Transformation.ToStudentBuffType(kvp.Key)); | |||
| } | |||
| msg.StudentMessage.BulletType = ToBulletType((Preparation.Utility.BulletType)player.BulletOfPlayer); | |||
| msg.StudentMessage.BulletType = Transformation.ToBulletType((Preparation.Utility.BulletType)player.BulletOfPlayer); | |||
| msg.StudentMessage.LearningSpeed = player.FixSpeed; | |||
| msg.StudentMessage.TreatSpeed = player.TreatSpeed; | |||
| msg.StudentMessage.FacingDirection = player.FacingDirection.Angle(); | |||
| msg.StudentMessage.StudentType = ToStudentType(player.CharacterType); | |||
| msg.StudentMessage.StudentType = Transformation.ToStudentType(player.CharacterType); | |||
| return msg; | |||
| } | |||
| @@ -354,25 +108,25 @@ namespace Server | |||
| for (int i = 0; i < GameData.maxNumOfSkill - player.TimeUntilActiveSkillAvailable.Count(); ++i) | |||
| msg.TrickerMessage.TimeUntilSkillAvailable.Add(-1); | |||
| msg.TrickerMessage.Place = ToPlaceType((Preparation.Utility.PlaceType)player.Place); | |||
| msg.TrickerMessage.Place = Transformation.ToPlaceType((Preparation.Utility.PlaceType)player.Place); | |||
| foreach (var value in player.PropInventory) | |||
| msg.TrickerMessage.Prop.Add(ToPropType(value.GetPropType())); | |||
| msg.TrickerMessage.Prop.Add(Transformation.ToPropType(value.GetPropType())); | |||
| msg.TrickerMessage.TrickerType = ToTrickerType(player.CharacterType); | |||
| msg.TrickerMessage.TrickerType = Transformation.ToTrickerType(player.CharacterType); | |||
| msg.TrickerMessage.Guid = player.ID; | |||
| msg.TrickerMessage.Score = player.Score; | |||
| msg.TrickerMessage.PlayerId = player.PlayerID; | |||
| msg.TrickerMessage.ViewRange = player.ViewRange; | |||
| msg.TrickerMessage.Radius = player.Radius; | |||
| msg.TrickerMessage.PlayerState = ToPlayerState((PlayerStateType)player.PlayerState); | |||
| msg.TrickerMessage.PlayerState = Transformation.ToPlayerState((PlayerStateType)player.PlayerState); | |||
| msg.TrickerMessage.TrickDesire = (player.BgmDictionary.ContainsKey(BgmType.StudentIsApproaching)) ? player.BgmDictionary[BgmType.StudentIsApproaching] : 0; | |||
| msg.TrickerMessage.ClassVolume = (player.BgmDictionary.ContainsKey(BgmType.GeneratorIsBeingFixed)) ? player.BgmDictionary[BgmType.GeneratorIsBeingFixed] : 0; | |||
| msg.TrickerMessage.FacingDirection = player.FacingDirection.Angle(); | |||
| msg.TrickerMessage.BulletType = ToBulletType((Preparation.Utility.BulletType)player.BulletOfPlayer); | |||
| msg.TrickerMessage.BulletType = Transformation.ToBulletType((Preparation.Utility.BulletType)player.BulletOfPlayer); | |||
| foreach (KeyValuePair<Preparation.Utility.BuffType, bool> kvp in player.Buff) | |||
| { | |||
| if (kvp.Value) | |||
| msg.TrickerMessage.Buff.Add(ToTrickerBuffType(kvp.Key)); | |||
| msg.TrickerMessage.Buff.Add(Transformation.ToTrickerBuffType(kvp.Key)); | |||
| } | |||
| @@ -388,7 +142,7 @@ namespace Server | |||
| msg.BulletMessage.FacingDirection = bullet.FacingDirection.Angle(); | |||
| msg.BulletMessage.Guid = bullet.ID; | |||
| msg.BulletMessage.Team = (bullet.Parent.IsGhost()) ? PlayerType.TrickerPlayer : PlayerType.StudentPlayer; | |||
| msg.BulletMessage.Place = ToPlaceType((Preparation.Utility.PlaceType)bullet.Place); | |||
| msg.BulletMessage.Place = Transformation.ToPlaceType((Preparation.Utility.PlaceType)bullet.Place); | |||
| msg.BulletMessage.BombRange = bullet.BulletBombRange; | |||
| msg.BulletMessage.Speed = bullet.Speed; | |||
| return msg; | |||
| @@ -398,12 +152,12 @@ namespace Server | |||
| { | |||
| MessageOfObj msg = new MessageOfObj(); | |||
| msg.PropMessage = new(); | |||
| msg.PropMessage.Type = ToPropType(prop.GetPropType()); | |||
| msg.PropMessage.Type = Transformation.ToPropType(prop.GetPropType()); | |||
| msg.PropMessage.X = prop.Position.x; | |||
| msg.PropMessage.Y = prop.Position.y; | |||
| msg.PropMessage.FacingDirection = prop.FacingDirection.Angle(); | |||
| msg.PropMessage.Guid = prop.ID; | |||
| msg.PropMessage.Place = ToPlaceType((Preparation.Utility.PlaceType)prop.Place); | |||
| msg.PropMessage.Place = Transformation.ToPlaceType((Preparation.Utility.PlaceType)prop.Place); | |||
| return msg; | |||
| } | |||
| @@ -86,9 +86,9 @@ namespace Server | |||
| Preparation.Utility.CharacterType characterType = Preparation.Utility.CharacterType.Null; | |||
| if (request.PlayerType == PlayerType.StudentPlayer) | |||
| characterType = CopyInfo.ToStudentType(request.StudentType); | |||
| characterType = Transformation.ToStudentType(request.StudentType); | |||
| else if (request.PlayerType == PlayerType.TrickerPlayer) | |||
| characterType = CopyInfo.ToTrickerType(request.TrickerType); | |||
| characterType = Transformation.ToTrickerType(request.TrickerType); | |||
| lock (addPlayerLock) | |||
| { | |||
| @@ -229,7 +229,7 @@ namespace Server | |||
| return Task.FromResult(boolRes); | |||
| } | |||
| var gameID = communicationToGameID[request.PlayerId]; | |||
| boolRes.ActSuccess = game.PickProp(gameID, CopyInfo.ToPropType(request.PropType)); | |||
| boolRes.ActSuccess = game.PickProp(gameID, Transformation.ToPropType(request.PropType)); | |||
| return Task.FromResult(boolRes); | |||
| } | |||
| @@ -245,7 +245,7 @@ namespace Server | |||
| return Task.FromResult(boolRes); | |||
| } | |||
| var gameID = communicationToGameID[request.PlayerId]; | |||
| game.UseProp(gameID, CopyInfo.ToPropType(request.PropType)); | |||
| game.UseProp(gameID, Transformation.ToPropType(request.PropType)); | |||
| boolRes.ActSuccess = true; | |||
| return Task.FromResult(boolRes); | |||
| } | |||
| @@ -261,7 +261,7 @@ namespace Server | |||
| return Task.FromResult(boolRes); | |||
| } | |||
| var gameID = communicationToGameID[request.PlayerId]; | |||
| game.ThrowProp(gameID, CopyInfo.ToPropType(request.PropType)); | |||
| game.ThrowProp(gameID, Transformation.ToPropType(request.PropType)); | |||
| boolRes.ActSuccess = true; | |||
| return Task.FromResult(boolRes); | |||
| } | |||