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

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