Newer
Older
DungeonShooting / DungeonShooting_Godot / src / framework / map / mark / WeaponMark.cs
  1.  
  2. using Godot;
  3.  
  4. /// <summary>
  5. /// 针对武器生成位置的标记
  6. /// </summary>
  7. [Tool]
  8. public partial class WeaponMark : ActivityMark
  9. {
  10. /// <summary>
  11. /// 当前弹夹弹药量, 如果值小于0, 则使用默认弹药量
  12. /// </summary>
  13. [Export]
  14. public int CurrAmmon = -1;
  15.  
  16. /// <summary>
  17. /// 备用弹药容量, 如果值小于0, 则使用默认弹药量
  18. /// </summary>
  19. [Export]
  20. public int ResidueAmmo = -1;
  21. public override void _Ready()
  22. {
  23. Type = ActivityIdPrefix.ActivityPrefixType.Weapon;
  24. Layer = RoomLayerEnum.NormalLayer;
  25. Altitude = 8;
  26. }
  27.  
  28. public override void Doing(RoomInfo roomInfo)
  29. {
  30. //创建武器
  31. var instance = (Weapon)CreateActivityObject();
  32. if (CurrAmmon >= 0)
  33. {
  34. instance.SetCurrAmmo(CurrAmmon);
  35. }
  36.  
  37. if (ResidueAmmo >= 0)
  38. {
  39. instance.SetResidueAmmo(ResidueAmmo);
  40. }
  41.  
  42.  
  43. instance.PutDown(Layer);
  44. var effect1 = ResourceManager.LoadAndInstantiate<Effect1>(ResourcePath.prefab_effect_Effect1_tscn);
  45. effect1.Position = instance.Position + new Vector2(0, -Altitude);
  46. effect1.AddToActivityRoot(RoomLayerEnum.NormalLayer);
  47. }
  48. }