using System; 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; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using Protobuf; namespace Client { /// /// StatusBarOfSurvivor.xaml 的交互逻辑 /// public partial class StatusBarOfSurvivor : UserControl { public StatusBarOfSurvivor(Grid parent, int Row, int Column) { InitializeComponent(); parent.Children.Add(this); Grid.SetColumn(this, Column); Grid.SetRow(this, Row); initialized = false; } public void SetFontSize(double fontsize) { serial.FontSize = scores.FontSize = star.FontSize = status.FontSize = prop.FontSize = fontsize; } private void SetStaticValue(MessageOfStudent obj) { switch (obj.StudentType) // 参数未设定 { case StudentType._1: coolTime = 10000; serial.Text = "👥" + Convert.ToString(2) + "🧓" + Convert.ToString(obj.PlayerId) + "\nSkill:StudentType1"; break; case StudentType._2: coolTime = 20000; serial.Text = "👥" + Convert.ToString(2) + "🧓" + Convert.ToString(obj.PlayerId) + "\nSkill:StudentType2"; break; case StudentType._3: coolTime = 30000; serial.Text = "👥" + Convert.ToString(2) + "🧓" + Convert.ToString(obj.PlayerId) + "\nSkill:StudentType3"; break; case StudentType._4: coolTime = 40000; serial.Text = "👥" + Convert.ToString(2) + "🧓" + Convert.ToString(obj.PlayerId) + "\nSkill:StudentType4"; break; case StudentType.NullStudentType: coolTime = 10000; serial.Text = "👥" + Convert.ToString(2) + "🧓" + Convert.ToString(obj.PlayerId) + "\nSkill:NullStudentType"; break; } initialized = true; } private void SetDynamicValue(MessageOfStudent obj) { skillprogress.Value = 100 - obj.TimeUntilSkillAvailable[0] / coolTime * 100; if (obj.State == PlayerState.Quit) { skillprogress.Value = 0; skillprogress.Background = Brushes.Gray; } else skillprogress.Background = Brushes.White; Func life = (obj) => { if (obj.State == PlayerState.Quit || obj.State == PlayerState.Addicted) return 0; else return obj.Determination; }; // star.Text = "⭐:";准备放剩余被挂次数 status.Text = "🔧:" + Convert.ToString(0) + "\n🏃:" + Convert.ToString(obj.Speed) + "\n♥:" + Convert.ToString(life(obj)) + "\n🛡:" + Convert.ToString(0); scores.Text = "Scores:" +obj.Score; foreach (var icon in obj.Prop) { switch (icon) { case PropType.Ptype1: prop.Text = "🔧"; break; case PropType.Ptype2: prop.Text = "🛡"; break; case PropType.Ptype3: prop.Text = "♥"; break; case PropType.Ptype4: prop.Text = "⛸"; break; default: prop.Text = " "; break; } } } public void SetValue(MessageOfStudent obj) { if (!initialized) SetStaticValue(obj); SetDynamicValue(obj); } private int coolTime; private bool initialized; } }