protected override void BuildEntity(EntityWorld entityWorld, Entity entity, ParameterCollection parameters) { CTransform2D transform = parameters.Get<CTransform2D>(0); BulletWeapon weapon = parameters.Get<BulletWeapon>(1); float angleOffset = parameters.GetOrDefault<float>(2); float speed = parameters.GetOrDefault<float>(3, DefaultSpeed); entity.Transform.Position = transform.Position; entity.Transform.Rotation = transform.Rotation + angleOffset; entity.AddFromPool<CBullet>().Initialize(NormalBulletPrefab.BulletSize, weapon); entity.AddFromPool<CVelocity2D>().Initialize(FlaiMath.GetAngleVector(entity.Transform.Rotation), speed); }
protected override void BuildEntity(EntityWorld entityWorld, Entity entity, ParameterCollection parameters) { const float Speed = SkypieaConstants.PixelsPerMeter * 20; CTransform2D transform = parameters.Get<CTransform2D>(0); float rotationOffset = parameters.GetOrDefault<float>(2); entity.Transform.Position = transform.Position; entity.Transform.Rotation = transform.Rotation; entity.AddFromPool<CBullet>().Initialize(BouncerBulletPrefab.BulletSize, parameters.Get<Bouncer>(1)); entity.AddFromPool<CVelocity2D>().Initialize(FlaiMath.GetAngleVector(transform.Rotation + rotationOffset), Speed); entity.AddFromPool<CRotater2D>().Initialize(BouncerBulletPrefab.RotationAmount); entity.AddFromPool<CBouncerBullet>().Initialize(3); }