You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

StatusBarOfHunter.xaml.cs 8.5 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using System.Windows;
  12. using System.Windows.Controls;
  13. using System.Windows.Data;
  14. using System.Windows.Documents;
  15. using System.Windows.Input;
  16. using System.Windows.Media;
  17. using System.Windows.Media.Imaging;
  18. using System.Windows.Shapes;
  19. using Protobuf;
  20. namespace Client
  21. {
  22. /// <summary>
  23. /// StatusBarOfHunter.xaml 的交互逻辑
  24. /// </summary>
  25. public partial class StatusBarOfHunter : UserControl
  26. {
  27. public StatusBarOfHunter(Grid parent, int Row, int Column)
  28. {
  29. InitializeComponent();
  30. parent.Children.Add(this);
  31. Grid.SetColumn(this, Column);
  32. Grid.SetColumnSpan(this, 2);
  33. Grid.SetRow(this, Row);
  34. initialized = false;
  35. }
  36. public void SetFontSize(double fontsize)
  37. {
  38. serial.FontSize = scores.FontSize = state.FontSize = status.FontSize = activeSkill0.FontSize = activeSkill1.FontSize = activeSkill2.FontSize = prop0.FontSize = prop1.FontSize = prop2.FontSize = prop3.FontSize = fontsize;
  39. }
  40. private void SetStaticValue(MessageOfTricker obj)
  41. {
  42. switch (obj.TrickerType) // 参数未设定
  43. {
  44. case TrickerType.Assassin:
  45. coolTime0 = coolTime1 = coolTime2 = 10000;
  46. serial.Text = "👥" + Convert.ToString(1) + "👻" + Convert.ToString(obj.PlayerId) + "\n职业: Assassin";
  47. break;
  48. case TrickerType.Klee:
  49. coolTime0 = coolTime1 = coolTime2 = 20000;
  50. serial.Text = "👥" + Convert.ToString(1) + "👻" + Convert.ToString(obj.PlayerId) + "\n职业: Klee";
  51. break;
  52. case TrickerType.ANoisyPerson:
  53. coolTime0 = coolTime1 = coolTime2 = 30000;
  54. serial.Text = "👥" + Convert.ToString(1) + "👻" + Convert.ToString(obj.PlayerId) + "\n职业: ANoisyPerson";
  55. break;
  56. case TrickerType._4:
  57. coolTime0 = coolTime1 = coolTime2 = 40000;
  58. serial.Text = "👥" + Convert.ToString(1) + "👻" + Convert.ToString(obj.PlayerId) + "\n职业: TrickerType4";
  59. break;
  60. case TrickerType.NullTrickerType:
  61. coolTime0 = coolTime1 = coolTime2 = -1;
  62. serial.Text = "👥" + Convert.ToString(1) + "👻" + Convert.ToString(obj.PlayerId) + "\n职业: NullTrickerType";
  63. break;
  64. }
  65. activeSkill0.Text = "Skill0";
  66. activeSkill1.Text = "Skill1";
  67. activeSkill2.Text = "Skill2";
  68. initialized = true;
  69. }
  70. private void SetDynamicValue(MessageOfTricker obj)
  71. {
  72. status.Text = "🏃🏿‍: " + Convert.ToString(obj.Speed);
  73. switch (obj.PlayerState)
  74. {
  75. case PlayerState.Idle:
  76. state.Text = "Idle";
  77. break;
  78. case PlayerState.Learning:
  79. state.Text = "Learning";
  80. break;
  81. case PlayerState.Addicted:
  82. state.Text = "Addicted";
  83. break;
  84. case PlayerState.Graduated:
  85. state.Text = "Graduated";
  86. break;
  87. case PlayerState.Quit:
  88. state.Text = "Quit";
  89. break;
  90. case PlayerState.Treated:
  91. state.Text = "Treated";
  92. break;
  93. case PlayerState.Rescued:
  94. state.Text = "Rescued";
  95. break;
  96. case PlayerState.Stunned:
  97. state.Text = "Stunned";
  98. break;
  99. case PlayerState.Treating:
  100. state.Text = "Treating";
  101. break;
  102. case PlayerState.Rescuing:
  103. state.Text = "Rescuing";
  104. break;
  105. case PlayerState.Swinging:
  106. state.Text = "Swinging";
  107. break;
  108. case PlayerState.Attacking:
  109. state.Text = "Attacking";
  110. break;
  111. case PlayerState.Locking:
  112. state.Text = "Locking";
  113. break;
  114. case PlayerState.Rummaging:
  115. state.Text = "Rummaging";
  116. break;
  117. case PlayerState.Climbing:
  118. state.Text = "Climbing";
  119. break;
  120. case PlayerState.OpeningAChest:
  121. state.Text = "OpeningAChest";
  122. break;
  123. case PlayerState.UsingSpecialSkill:
  124. state.Text = "UsingSpecialSkill";
  125. break;
  126. case PlayerState.OpeningAGate:
  127. state.Text = "OpeningAGate";
  128. break;
  129. default:
  130. break;
  131. }
  132. scores.Text = "Scores: " + Convert.ToString(obj.Score);
  133. if (obj.TimeUntilSkillAvailable[0] >= 0)
  134. skillprogress0.Value = 100 - obj.TimeUntilSkillAvailable[0] / coolTime0 * 100;
  135. if (obj.TimeUntilSkillAvailable[1] >= 0)
  136. skillprogress1.Value = 100 - obj.TimeUntilSkillAvailable[1] / coolTime1 * 100;
  137. if (obj.TimeUntilSkillAvailable[2] >= 0)
  138. skillprogress2.Value = 100 - obj.TimeUntilSkillAvailable[2] / coolTime2 * 100;
  139. if (obj.PlayerState == PlayerState.Quit)
  140. {
  141. skillprogress0.Value = skillprogress1.Value = skillprogress2.Value = 0;
  142. skillprogress0.Background = skillprogress1.Background = skillprogress2.Background = Brushes.Gray;
  143. }
  144. else
  145. skillprogress0.Background = skillprogress1.Background = skillprogress2.Background = Brushes.White;
  146. int cnt = 0;
  147. foreach (var icon in obj.Prop)
  148. {
  149. switch (cnt)
  150. {
  151. case 0:
  152. SetPropValue(prop0, icon);
  153. cnt++;
  154. break;
  155. case 1:
  156. SetPropValue(prop0, icon);
  157. cnt++;
  158. break;
  159. case 2:
  160. SetPropValue(prop0, icon);
  161. cnt++;
  162. break;
  163. case 3:
  164. SetPropValue(prop0, icon);
  165. cnt++;
  166. break;
  167. default:
  168. break;
  169. }
  170. }
  171. }
  172. public void SetPropValue(TextBox textBox, Protobuf.PropType propType)
  173. {
  174. switch (propType)
  175. {
  176. case Protobuf.PropType.Key3:
  177. textBox.Text = "🔑";
  178. break;
  179. case Protobuf.PropType.Key5:
  180. textBox.Text = "🔑";
  181. break;
  182. case Protobuf.PropType.Key6:
  183. textBox.Text = "🔑";
  184. break;
  185. case Protobuf.PropType.AddSpeed:
  186. textBox.Text = "⛸";
  187. break;
  188. case Protobuf.PropType.AddLifeOrClairaudience:
  189. textBox.Text = "🏅";
  190. break;
  191. case Protobuf.PropType.AddHpOrAp:
  192. textBox.Text = "♥";
  193. break;
  194. case Protobuf.PropType.ShieldOrSpear:
  195. textBox.Text = "🛡";
  196. break;
  197. case Protobuf.PropType.RecoveryFromDizziness:
  198. textBox.Text = "🕶";
  199. break;
  200. default:
  201. textBox.Text = "";
  202. break;
  203. }
  204. }
  205. public void SetValue(MessageOfTricker obj)
  206. {
  207. if (!initialized)
  208. SetStaticValue(obj);
  209. SetDynamicValue(obj);
  210. }
  211. private int coolTime0, coolTime1, coolTime2;
  212. private bool initialized;
  213. }
  214. }