Role.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using FSBuff;
  5. namespace FSRole {
  6. /*
  7. * 角色组件
  8. */
  9. public class Role : MonoBehaviour {
  10. // 角色原始属性
  11. public RoleAttr OriginAttr;
  12. // 角色当前属性
  13. public RoleAttr CurrentAttr;
  14. // 角色所挂载的BUFF数组,所有Buff都放在这里面
  15. public ArrayList buffs;
  16. // Use this for initialization
  17. void Start() {
  18. buffs = new ArrayList();
  19. }
  20. // Update is called once per frame
  21. void Update() {
  22. }
  23. /*
  24. * 添加角色的各个接口
  25. */
  26. /*
  27. * 受到伤害
  28. */
  29. public void GetDamage(int value) {
  30. CurrentAttr.Hp -= value;
  31. print("受到伤害");
  32. }
  33. /*
  34. * 消耗精力
  35. */
  36. public void CostEngine(int value) {
  37. CurrentAttr.Mp -= value;
  38. print("消耗精力");
  39. }
  40. /*
  41. * 增加防御力
  42. */
  43. public void Defense(int value) {
  44. CurrentAttr.Def += value;
  45. print("防御");
  46. }
  47. /*
  48. * 运行BUFF
  49. */
  50. public void BuffExecute() {
  51. print("运行角色Buff");
  52. // 遍历数组来运行BUFF
  53. foreach (Buff index in buffs) {
  54. print("角色的Buff ID 为 " + index.ID);
  55. index.Execute();
  56. }
  57. }
  58. /*
  59. * 添加Buff
  60. */
  61. public void AddBuff(Buff buff) {
  62. // 首先判断数组中是否已经存在此Buff
  63. // 未来还需要根据两个相同buff的属性来进行更新
  64. foreach (Buff index in buffs) {
  65. if (index.ID == buff.ID) {
  66. // 未来在这里做些什么
  67. return;
  68. }
  69. }
  70. // 往数组中添加数组
  71. buffs.Add(buff);
  72. }
  73. }
  74. }