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 11 kB

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