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.

StatusBarOfSurvivor.xaml.cs 11 kB

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