Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / activity / bullet / summons / Summons.cs
  1.  
  2. using AiState;
  3. using Godot;
  4.  
  5. /// <summary>
  6. /// boss用于召唤小怪的投射物
  7. /// </summary>
  8. [Tool]
  9. public partial class Summons : ActivityObject
  10. {
  11. private ActivityObject _target;
  12. public void InitTarget(ActivityObject target)
  13. {
  14. _target = target;
  15. }
  16. protected override void OnFirstFallToGround()
  17. {
  18. var id = Utils.Random.RandomChoose(Ids.Id_enemy0001);
  19. var enemy = Create<Enemy>(id);
  20. var randomWeapon = World.RandomPool.GetRandomWeapon();
  21. enemy.PickUpWeapon(Create<Weapon>(randomWeapon));
  22.  
  23. if (_target != null)
  24. {
  25. var stateBase = (AiAstonishedState)enemy.StateController.GetState(AIStateEnum.AiAstonished);
  26. stateBase.IsEntred = true;
  27. enemy.LookTarget = _target;
  28. }
  29. enemy.PutDown(Position, RoomLayerEnum.YSortLayer);
  30. //出生特效
  31. var effect = ObjectManager.GetPoolItem<IEffect>(ResourcePath.prefab_effect_common_Effect1_tscn);
  32. var node = (Node2D)effect;
  33. node.Position = Position + new Vector2(0, -5);
  34. node.AddToActivityRoot(RoomLayerEnum.YSortLayer);
  35. effect.PlayEffect();
  36. Destroy();
  37. }
  38. }