Advertisement
Guest User

Untitled

a guest
Jun 26th, 2016
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.56 KB | None | 0 0
  1. public class WeaponsBase : ItemBase
  2. {
  3. public WeaponsBase()
  4. {
  5. Name = string.Empty;
  6. PermanentEnchantments = new List<Enchantment>();
  7. CreatedByCharacterId = 0;
  8. Enchantments = new List<Enchantment>();
  9. WeaponType = WeaponType.None;
  10. Material = new Material();
  11. SkillLevelNeeded = 0;
  12. WeaponDamageRealm = PlanarRealm.None;
  13. }
  14. private PlanarRealm _weaponDamageRealm;
  15.  
  16.  
  17. private PlanarRealm WeaponDamageRealm { get; set; }
  18.  
  19. private int _skillLevelNeeded;
  20. public int SkillLevelNeeded
  21. {
  22. get
  23. {
  24. return this._skillLevelNeeded;
  25. }
  26. set
  27. {
  28. if (this._skillLevelNeeded != value)
  29. {
  30. this._skillLevelNeeded = value;
  31. this.NotifyPropertyChanged("SkillLevelNeeded");
  32. }
  33. }
  34. }
  35.  
  36.  
  37. public virtual int Length
  38. {
  39. get;
  40. set;
  41. }
  42. private string _name;
  43. private int _createdByCharacterId;
  44.  
  45. private WeaponType _weaponType;
  46. private Material _material;
  47. private List<DiceSize> _baseDamage;
  48. public string Name
  49. {
  50. get
  51. {
  52. return this._name;
  53. }
  54. set
  55. {
  56. if (this._name != value)
  57. {
  58. this._name = value;
  59. this.NotifyPropertyChanged("Name");
  60. }
  61. }
  62.  
  63. }
  64. public List<DiceSize> BaseDamage
  65. {
  66. get
  67. {
  68. var dice = new List<DiceSize>();
  69. switch (this.WeaponType)
  70. {
  71.  
  72. case WeaponType.Hands:
  73. dice.AddRange(new List<DiceSize>() { DiceSize.e1 });
  74. break;
  75. case WeaponType.Fists:
  76. dice.AddRange(new List<DiceSize>() { DiceSize.e1 });
  77. break;
  78. case WeaponType.Claws:
  79. dice.AddRange(new List<DiceSize>() { DiceSize.e1 });
  80. break;
  81. case WeaponType.Razor:
  82. dice.AddRange(new List<DiceSize>() { DiceSize.e1 });
  83. break;
  84. case WeaponType.Dagger:
  85. dice.AddRange(new List<DiceSize>() { DiceSize.e1 });
  86. break;
  87. case WeaponType.Scythe:
  88. dice.AddRange(new List<DiceSize>() { DiceSize.e3 });
  89. break;
  90. case WeaponType.Sap:
  91. dice.AddRange(new List<DiceSize>() { DiceSize.e1 });
  92. break;
  93. case WeaponType.Mace:
  94. dice.AddRange(new List<DiceSize>() { DiceSize.e2 });
  95. break;
  96. case WeaponType.Hammer:
  97. dice.AddRange(new List<DiceSize>() { DiceSize.e2 });
  98. break;
  99. case WeaponType.ShortSword:
  100. dice.AddRange(new List<DiceSize>() { DiceSize.e2 });
  101. break;
  102. case WeaponType.Sabre:
  103. dice.AddRange(new List<DiceSize>() { DiceSize.e2 });
  104. break;
  105. case WeaponType.LongSword:
  106. dice.AddRange(new List<DiceSize>() { DiceSize.e2 });
  107. break;
  108. case WeaponType.WarSword:
  109. dice.AddRange(new List<DiceSize>() { DiceSize.e3 });
  110. break;
  111. case WeaponType.WarHammer:
  112. dice.AddRange(new List<DiceSize>() { DiceSize.e3 });
  113. break;
  114. case WeaponType.WarMace:
  115. dice.AddRange(new List<DiceSize>() { DiceSize.e3 });
  116. break;
  117. case WeaponType.Spear:
  118. dice.AddRange(new List<DiceSize>() { DiceSize.e2 });
  119. break;
  120. case WeaponType.PoleArm:
  121. dice.AddRange(new List<DiceSize>() { DiceSize.e3 });
  122. break;
  123. case WeaponType.Darts:
  124. dice.AddRange(new List<DiceSize>() { DiceSize.e1 });
  125. break;
  126. case WeaponType.ThrowingStar:
  127. dice.AddRange(new List<DiceSize>() { DiceSize.e1 });
  128. break;
  129. case WeaponType.ThrowingDagger:
  130. dice.AddRange(new List<DiceSize>() { DiceSize.e1 });
  131. break;
  132. case WeaponType.HandBow:
  133. dice.AddRange(new List<DiceSize>() { DiceSize.e2 });
  134. break;
  135. case WeaponType.DartLauncher:
  136. dice.AddRange(new List<DiceSize>() { DiceSize.e1 });
  137. break;
  138. case WeaponType.SmallCrossbow:
  139. dice.AddRange(new List<DiceSize>() { DiceSize.e2 });
  140. break;
  141. case WeaponType.ShortBow:
  142. dice.AddRange(new List<DiceSize>() { DiceSize.e2 });
  143. break;
  144. case WeaponType.Bow:
  145. dice.AddRange(new List<DiceSize>() { DiceSize.e3 });
  146. break;
  147. case WeaponType.LongBow:
  148. dice.AddRange(new List<DiceSize>() { DiceSize.e3 });
  149. break;
  150. case WeaponType.LargeCrossbow:
  151. dice.AddRange(new List<DiceSize>() { DiceSize.e3 });
  152. break;
  153. default:
  154. dice.AddRange(new List<DiceSize>() { DiceSize.None });
  155. break;
  156. }
  157. return dice;
  158. }
  159. }
  160.  
  161. public int CreatedByCharacterId
  162. {
  163. get
  164. {
  165. return this._createdByCharacterId;
  166. }
  167. set
  168. {
  169. if (this._createdByCharacterId != value)
  170. {
  171. this._createdByCharacterId = value;
  172. this.NotifyPropertyChanged("CreatedByCharacterId");
  173. }
  174. }
  175. }
  176.  
  177. public WeaponBaseType WeaponBaseType
  178. {
  179. get
  180. {
  181. switch (this.WeaponType)
  182. {
  183. case WeaponType.Hands:
  184. case WeaponType.Fists:
  185. case WeaponType.Claws:
  186. case WeaponType.Razor:
  187. case WeaponType.Dagger:
  188. case WeaponType.Scythe:
  189. case WeaponType.Sap:
  190. case WeaponType.Mace:
  191. case WeaponType.Hammer:
  192. case WeaponType.ShortSword:
  193. case WeaponType.Sabre:
  194. case WeaponType.LongSword:
  195. case WeaponType.WarSword:
  196. case WeaponType.WarHammer:
  197. case WeaponType.WarMace:
  198. case WeaponType.Spear:
  199. case WeaponType.PoleArm:
  200. return WeaponBaseType.Melee;
  201. case WeaponType.Darts:
  202. case WeaponType.ThrowingStar:
  203. case WeaponType.ThrowingDagger:
  204. return WeaponBaseType.Thrown;
  205. case WeaponType.HandBow:
  206. case WeaponType.DartLauncher:
  207. case WeaponType.SmallCrossbow:
  208. case WeaponType.ShortBow:
  209. case WeaponType.Bow:
  210. case WeaponType.LongBow:
  211. case WeaponType.LargeCrossbow:
  212. return WeaponBaseType.Projectile;
  213. default:
  214. return WeaponBaseType.None;
  215. }
  216. }
  217. }
  218.  
  219. public IEnumerable<Benefit> Benefits
  220. {
  221. get
  222. {
  223. return this.Spells.SelectMany(e => e.Benefits).Union(this.Enchantments.SelectMany(e => e.Benefits)).ToList().Union(this.Material.MaterialBenefits);
  224. }
  225. }
  226. public IEnumerable<Damage> Damage
  227. {
  228. get{
  229. var relevantBenefits = Benefits.Where(e => e.Modifies == BenefitModifier.Damage).ToList();
  230. var allDamages = new List<Damage>();
  231. foreach (var benefit in relevantBenefits)
  232. {
  233. allDamages.Add(new Damage(benefit));
  234. }
  235. var o = BaseDamage.Sum(e => { return e.RollDice(); });
  236. allDamages.Add(new Damage() { Realm = WeaponDamageRealm, Value = o });
  237. return allDamages;
  238. }
  239.  
  240. }
  241.  
  242.  
  243.  
  244.  
  245. public WeaponType WeaponType
  246. {
  247. get
  248. {
  249. return this._weaponType;
  250. }
  251. set
  252. {
  253. if (this._weaponType != value)
  254. {
  255. this._weaponType = value;
  256. this.NotifyPropertyChanged("WeaponType");
  257. }
  258. }
  259. }
  260.  
  261.  
  262. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement