Newer
Older
DungeonShooting / DungeonShooting_Godot / src / framework / map / mark / ActivityMark_HandlerExpression.cs
@小李xl 小李xl on 29 Aug 2023 2 KB 预生成房间数据
  1. //
  2. // using System;
  3. // using Godot;
  4. //
  5. // public partial class ActivityMark
  6. // {
  7. // /// <summary>
  8. // /// 根据预制表达式创建物体并返回
  9. // /// </summary>
  10. // /// <param name="type">物体类型</param>
  11. // /// <param name="expressionFieldName">预制表达式字段名称, 注意是字段名称, 而不是内容</param>
  12. // public ActivityObjectResult<T> CreateActivityObjectFromExpression<T>(ActivityType type, string expressionFieldName) where T : ActivityObject
  13. // {
  14. // if (_currentExpression.TryGetValue(expressionFieldName, out var expressionData))
  15. // {
  16. // if (expressionData.Id == "null")
  17. // {
  18. // return null;
  19. // }
  20. // var id = ActivityId.GetIdPrefix(type) + expressionData.Id;
  21. // var activityObject = ActivityObject.Create<T>(id);
  22. // if (activityObject == null)
  23. // {
  24. // return null;
  25. // }
  26. //
  27. // HandlerExpressionArgs(type, activityObject, expressionData);
  28. // return new ActivityObjectResult<T>(activityObject, expressionData);
  29. // }
  30. //
  31. // GD.PrintErr("未找到表达式字段: " + expressionFieldName + ", 请检查是否有该字段或者该字段加上了[ActivityExpression]标记");
  32. // return null;
  33. // }
  34. //
  35. // private void HandlerExpressionArgs(ActivityType type, ActivityObject instance, ActivityExpressionData expressionData)
  36. // {
  37. // switch (type)
  38. // {
  39. // case ActivityType.None:
  40. // break;
  41. // case ActivityType.Player:
  42. // break;
  43. // case ActivityType.Test:
  44. // break;
  45. // case ActivityType.Role:
  46. // break;
  47. // case ActivityType.Enemy:
  48. // break;
  49. // case ActivityType.Weapon:
  50. // {
  51. // var weapon = (Weapon)instance;
  52. // //当前弹夹弹药量
  53. // if (expressionData.Args.TryGetValue("CurrAmmon", out var currAmmon))
  54. // {
  55. // weapon.SetCurrAmmo(int.Parse(currAmmon));
  56. // }
  57. // //备用弹药量
  58. // if (expressionData.Args.TryGetValue("ResidueAmmo", out var residueAmmo))
  59. // {
  60. // weapon.SetResidueAmmo(int.Parse(residueAmmo));
  61. // }
  62. // }
  63. // break;
  64. // case ActivityType.Bullet:
  65. // break;
  66. // case ActivityType.Shell:
  67. // break;
  68. // case ActivityType.Other:
  69. // break;
  70. // }
  71. // }
  72. // }