您不能選擇超過 %s 個話題 話題必須以字母或數字為開頭,可包含連接號 ('-') 且最長為 35 個字
 
 
 

155 行
6.2 KiB

  1. using System;
  2. using System.Collections.Generic;
  3. public class Multipliers
  4. {
  5. public Multipliers()
  6. {
  7. this.CommercialBuildingCostCashMultiplier = 1m;
  8. this.CommercialBuildingCostGoldMultiplier = 1m;
  9. this.CommunityBuildingCostCashMultiplier = 1m;
  10. this.CommunityBuildingCostGoldMultiplier = 1m;
  11. this.ResidentialBuildingCostCashMultiplier = 1m;
  12. this.ResidentialBuildingCostGoldMultiplier = 1m;
  13. this.UpspeedCostCashMultiplier = 1m;
  14. this.UpspeedCostGoldMultiplier = 1m;
  15. this.CommercialBuildingProfitMultiplier = 1m;
  16. }
  17. public decimal CommercialBuildingCostCashMultiplier { get; private set; }
  18. public decimal CommercialBuildingCostGoldMultiplier { get; private set; }
  19. public decimal CommunityBuildingCostCashMultiplier { get; private set; }
  20. public decimal CommunityBuildingCostGoldMultiplier { get; private set; }
  21. public decimal ResidentialBuildingCostCashMultiplier { get; private set; }
  22. public decimal ResidentialBuildingCostGoldMultiplier { get; private set; }
  23. public decimal UpspeedCostCashMultiplier { get; private set; }
  24. public decimal UpspeedCostGoldMultiplier { get; private set; }
  25. public decimal CommercialBuildingProfitMultiplier { get; private set; }
  26. public void SetStoredData(Dictionary<string, object> values)
  27. {
  28. if (values.ContainsKey("commercialBuildingCostCashMultiplier"))
  29. {
  30. this.CommercialBuildingCostCashMultiplier = this.ClampMultiplier((decimal)values["commercialBuildingCostCashMultiplier"]);
  31. }
  32. if (values.ContainsKey("commercialBuildingCostGoldMultiplier"))
  33. {
  34. this.CommercialBuildingCostGoldMultiplier = this.ClampMultiplier((decimal)values["commercialBuildingCostGoldMultiplier"]);
  35. }
  36. if (values.ContainsKey("communityBuildingCostCashMultiplier"))
  37. {
  38. this.CommunityBuildingCostCashMultiplier = this.ClampMultiplier((decimal)values["communityBuildingCostCashMultiplier"]);
  39. }
  40. if (values.ContainsKey("communityBuildingCostGoldMultiplier"))
  41. {
  42. this.CommunityBuildingCostGoldMultiplier = this.ClampMultiplier((decimal)values["communityBuildingCostGoldMultiplier"]);
  43. }
  44. if (values.ContainsKey("residentialBuildingCostCashMultiplier"))
  45. {
  46. this.ResidentialBuildingCostCashMultiplier = this.ClampMultiplier((decimal)values["residentialBuildingCostCashMultiplier"]);
  47. }
  48. if (values.ContainsKey("residentialBuildingCostGoldMultiplier"))
  49. {
  50. this.ResidentialBuildingCostGoldMultiplier = this.ClampMultiplier((decimal)values["residentialBuildingCostGoldMultiplier"]);
  51. }
  52. if (values.ContainsKey("upspeedCostCashMultiplier"))
  53. {
  54. this.UpspeedCostCashMultiplier = this.ClampMultiplier((decimal)values["upspeedCostCashMultiplier"]);
  55. }
  56. if (values.ContainsKey("upspeedCostGoldMultiplier"))
  57. {
  58. this.UpspeedCostGoldMultiplier = this.ClampMultiplier((decimal)values["upspeedCostGoldMultiplier"]);
  59. }
  60. if (values.ContainsKey("commercialBuildingProfitMultiplier"))
  61. {
  62. this.CommercialBuildingProfitMultiplier = this.ClampMultiplier((decimal)values["commercialBuildingProfitMultiplier"]);
  63. }
  64. }
  65. public void HandlePullResponse(Dictionary<string, string> dict)
  66. {
  67. decimal value;
  68. if (dict.ContainsKey("commercialBuildingCostCashMultiplier") && decimal.TryParse(dict["commercialBuildingCostCashMultiplier"], out value))
  69. {
  70. this.CommercialBuildingCostCashMultiplier = this.ClampMultiplier(value);
  71. }
  72. decimal value2;
  73. if (dict.ContainsKey("commercialBuildingCostGoldMultiplier") && decimal.TryParse(dict["commercialBuildingCostGoldMultiplier"], out value2))
  74. {
  75. this.CommercialBuildingCostGoldMultiplier = this.ClampMultiplier(value2);
  76. }
  77. decimal value3;
  78. if (dict.ContainsKey("communityBuildingCostCashMultiplier") && decimal.TryParse(dict["communityBuildingCostCashMultiplier"], out value3))
  79. {
  80. this.CommunityBuildingCostCashMultiplier = this.ClampMultiplier(value3);
  81. }
  82. decimal value4;
  83. if (dict.ContainsKey("communityBuildingCostGoldMultiplier") && decimal.TryParse(dict["communityBuildingCostGoldMultiplier"], out value4))
  84. {
  85. this.CommunityBuildingCostGoldMultiplier = this.ClampMultiplier(value4);
  86. }
  87. decimal value5;
  88. if (dict.ContainsKey("residentialBuildingCostCashMultiplier") && decimal.TryParse(dict["residentialBuildingCostCashMultiplier"], out value5))
  89. {
  90. this.ResidentialBuildingCostCashMultiplier = this.ClampMultiplier(value5);
  91. }
  92. decimal value6;
  93. if (dict.ContainsKey("residentialBuildingCostGoldMultiplier") && decimal.TryParse(dict["residentialBuildingCostGoldMultiplier"], out value6))
  94. {
  95. this.ResidentialBuildingCostGoldMultiplier = this.ClampMultiplier(value6);
  96. }
  97. decimal value7;
  98. if (dict.ContainsKey("upspeedCostCashMultiplier") && decimal.TryParse(dict["upspeedCostCashMultiplier"], out value7))
  99. {
  100. this.UpspeedCostCashMultiplier = this.ClampMultiplier(value7);
  101. }
  102. decimal value8;
  103. if (dict.ContainsKey("upspeedCostGoldMultiplier") && decimal.TryParse(dict["upspeedCostGoldMultiplier"], out value8))
  104. {
  105. this.UpspeedCostGoldMultiplier = this.ClampMultiplier(value8);
  106. }
  107. decimal value9;
  108. if (dict.ContainsKey("commercialBuildingProfitMultiplier") && decimal.TryParse(dict["commercialBuildingProfitMultiplier"], out value9))
  109. {
  110. this.CommercialBuildingProfitMultiplier = this.ClampMultiplier(value9);
  111. }
  112. }
  113. private decimal ClampMultiplier(decimal value)
  114. {
  115. if (value <= 0.1m)
  116. {
  117. return 0.1m;
  118. }
  119. return value;
  120. }
  121. public const string CommercialBuildingCostCashName = "commercialBuildingCostCashMultiplier";
  122. public const string CommercialBuildingCostGoldName = "commercialBuildingCostGoldMultiplier";
  123. public const string CommunityBuildingCostCashName = "communityBuildingCostCashMultiplier";
  124. public const string CommunityBuildingCostGoldName = "communityBuildingCostGoldMultiplier";
  125. public const string ResidentialBuildingCostCashName = "residentialBuildingCostCashMultiplier";
  126. public const string ResidentialBuildingCostGoldName = "residentialBuildingCostGoldMultiplier";
  127. public const string UpspeedCostCashName = "upspeedCostCashMultiplier";
  128. public const string UpspeedCostGoldName = "upspeedCostGoldMultiplier";
  129. public const string CommercialBuildingProfitName = "commercialBuildingProfitMultiplier";
  130. private const decimal MinumumModifierValue = 0.1m;
  131. }