Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / activity / bullet / normal / TrailBullet.cs
@小李xl 小李xl on 29 Jan 2024 1008 bytes 制作0010武器完成

using Godot;

[Tool]
public partial class TrailBullet : Bullet
{
    private static Color TerrainColor = new Color(0xf5 / 255f + 0.8f, 0x7e / 255f + 0.45f, 0x7a / 255f + 0.45f, 0.7f);
    private static Color EnemyTerrainColor = new Color(1.5f, 0, 0, 0.7f);
    private Trail trail;

    public override void InitData(BulletData data, uint attackLayer)
    {
        base.InitData(data, attackLayer);
        
        trail = ObjectManager.GetPoolItem<Trail>(ResourcePath.prefab_effect_common_Trail0001_tscn);
        trail.SetTarget(AnimatedSprite);
        trail.AddPoint(trail.Target.GlobalPosition);
        trail.AddToActivityRoot(RoomLayerEnum.YSortLayer);
        trail.ZIndex = 1;
        
        if (IsEnemyBullet)
        {
            trail.SetColor(EnemyTerrainColor);
        }
        else
        {
            trail.SetColor(TerrainColor);
        }
    }


    public override void OnReclaim()
    {
        base.OnReclaim();
        trail.SetTarget(null);
        trail = null;
    }
}