Monday, October 21, 2019

Martina is coming! (and also a new version of HBF)

Oh well, is never too late to have another baby, so happy...

In the meantime I always find time to change little things here and there. Most important changes since last time:

  • New trigger link types rollback and many
  • New render when openning secret doors
  • New extras: Magic wand, blue ball
  • New enemies: mine bomb, wall bouncer, tri eye
  • New explosion types
  • New elements: alarm, candy machine, frame
  • New weapons: machine gun
  • New level Lifting
  • New tool Path Editor
  • New effects in surface like: displacement, connecting dots, 
  • More control over UV in sprite textures

Found binaries at OneDrive

New level:


New effects:



backlog:

HBF)

  • New trigger action ClipEntity()
  • Now Machine gun can also shoot up
  • Now Basement can throw homing missiles
  • Teleport was not always handling correctly the collision with guests
  • Now when a hero is killed its seeking homing missile looks for other heroes if available
  • Robot can also now throw missiles 
  • New TPlayerHandler.OtherHero(hero)
  • Now missiles do some smoking trail 
  • Now TSpriteDispatcher has new properties: Tile, SpriteProperty and SpriteValue
  • New trigger ResetTriggerSelection()
  • Fixed some issues when entities were crushing
  • Fixed an issue when a fast platform was going up and hero was jumping
  • Fixed an issue with tapes not checkking both sides when facing was equal to none
  • Now Bouncing Laser is aware of hero's immunity
  • Bouncing laser now also bounces with solid items
  • Weird now also check for solid items
  • New method TKeysHelper.Peek()
  • New method TEnemy.CanBeExcited()
  • Fixed a bug with none gravity items that they were checking collisions against the world
  • Now only when shopping hero can sell items
  • Now Bat is able to hang upside in moving platforms
  • Now Missiles also destroy enemies 
  • Now Inertia is accumulated 
  • Now explosions also affects moving platforms 
  • New element Tube, it throws air up, pushing items, hero and enemies
  • Collisions with moving blocks improved
  • Collisions with platforms are more stable
  • When pushing items they also stop with solid items
  • Platforms now can follow a Path
  • Fixed a camera bug when teleports where on same X
  • Mine can follow a  path
  • Now hero checks if solid items are piled at restarting position when dying
  • New level Lifting
  • Path helper now can handle more than one attribute 
  • New TSoundDispatcher.Count() to count all concurrent playing sounds 
  • Now when GameServices is assigned all published properties are already set 
  • Sounds position are update on even frames 
  • Now when landing on moving platforms ssLanding is set
  • New set of minimaps
  • Sprites priority changed to plus rather than minus
  • Improved a bit some internal callbacks
  • Laser improved
  • Shoes counter mechanism improved
  • Now when an arrow hits a solid tile it will fall rather than dissapear
  • property SolidFromBottom renamed to OneWay
  • Now when a mine moves if bounces if a solid tile in on its way
  • Now camera when zooming out distinguish between horizontal and vertical distances
  • More Abs() replaced with TFloatHelper.Abs()
  • New TGameSprite.SolidItemAlignedOnTop()
  • TGameSpriteIsSolid() no longer returns a boolean 
  • New GameSprite interfaces Window and CameraHelper
  • TestWorldWollision() reordered to a more real approach
  • Now Tube force is done with Power property
  • More use of TFloatHelper.IsZero(), TFloatHelper.NotZero(), TFloatHelper.IsGreaterThanZero(), TFloatHelper.IsLessThanZero(), TFloatHelper.IsGreaterEqualThanZero()
  • Now in order to push a block you need some power
  • New Path styles horizontal and vertical
  • New item glove, so heavy blocks can be pushed
  • Fixed a potential AV error when a guest was in the teleport (2 seconds) and then set back to state ssMoving but it was already dead, now Teleport is no longer in charge of the timings but the guest
  • Now Trigger system can zoom in/out the camera 
  • Fixed an issue when updating the level on an extra the previous item was not released after purchasing it
  • Now Tube can be up side down
  • Fixed an issue with TBouncingLaser at certain angles 
  • Fixed some more Z issues
  • TBasement now inherits from TSpawner
  • Now THoming can follow a path from the new path editor
  • New TGamesprite.Velocity (replaces impulse and inertia)
  • Now when jumping oneway platforms hero won't stop 
  • Now using {$I HBF.inc} to includew common definitions
  • Now different scanlines can be loaded
  • Some inverse multiplications here and there
  • Platforms now also appear in minimap
  • New property TArrow.FallWhenHit
  • Now arrows can burn
  • Now when hero attacks with a weapon that can different power depending on how long you press a button then it shows a bar
  • New trigger SetCameraRotation()
  • TBendArrow can also Burn
  • Now players are mapped correctly (J1,K,J2,J3 = P1,P2,P3,P4)
  • New types for ColorTiles: custom, expanding, etc
  • Changes when bouncing platforms to avoid -0 in Horizontal or Vertical speed 
  • Now during the same game if fight is win on a certain level then runes won't appear again in that level
  • Head fire collision with items improved
  • IsSolid() improved
  • Now TGameSprite.Execute() method has a param (useful to send params from scripts)
  • Now "Severe Gravity" uses paths created with the editor for some parabola missiles
  • Now "The Labyrinth" uses the new trigger type Rollback
  • Now secret doors show something different when opened
  • Stalactites are break differently when broken
  • New TMagicWand extra
  • Item.IsRepeatable removed
  • Item.IsActive removed
  • property InventoryItem.IsActive renamed to IsSelected
  • Hero.CreateItemsFromInventory improved
  • New TGameSprite.GetEmitterPosition
  • Basement, new property TimeToWaitWhenMultiple
  • Missile, new property callback OnTargetGone
  • Now a Mine does some rotating and zooming
  • New TEnemy.SleepAndWakeUp()
  • Now coins are stored in inventory
  • Now already thrown bombs can be picked up
  • New extra Missile 
  • DestroyArea() is more accurate
  • Now shop shows the quantity left
  • New  TGameSprite.CircleExplosion()
  • New property TBasicPlatform.CanDie 
  • if platform is moving in a tape and an entity is on top, then take that speed
  • New element Alarm 
  • Now the chat shows who is sending the message
  • Now TTriggerDispatcher can notify any observer about public triggers 
  • Now Cone is used, why it was not used?
  • Door, teleport is got a new texture map for darkness
  • Camera can now be Freezed
  • TPlatformBall got a new surface
  • New extra BlueBall, use them and then attack!
  • New IGameServices.GetParticles: IParticles
  • Now rather than TryXXX() functions interactible entities implement IInteractive (post, door, wheel, teleport, terminal, NPC)
  • New element and achievement Candy Machine
  • property AutoCenter renamted to AttachTo 
  • New WallBouncer enemy
  • IGameSprite renamed to IActor 
  • New TGameSprite.Face()
  • New TGameSprite.Yell()
  • New Shop item properties Cooldown (before was delay) and IsRechargable
  • New TGameSprite.DelayedExplosion()
  • New Enemy properties Deaf and Visibility
  • New weapon TMachineGun
  • -New THeroBullet class
  • TEnemyKiller now is used as base class for enemy bullets
  • New property ShopItem.Input (normal,accumulated,continuously)
  • Now max_items = 999
  • property AttachTo renamed to AlignTo
  • Now when entering teleports new particles are used
  • Now bombs have some randomness
  • New enemy Mine Bomb
  • New enemy TriEye
  • Kurkani now is shown in darkness
  • New TGameSprite DieOnLand and DieOnWall properties
  • New element Frame 
  • Now Laser take into account solid items 
  • New global var TGame.GD

BB)
  • Fixed a nasty bug that was slowning down the game when gravity for reversed, fast collision was not used because sprites were aligned at 180º
  • TSurface.AverageColor() is now a bit faster
  • New TParticleEmitter.Priority property
  • More info for screen pools
  • New IGraphicDrawer.Frame()
  • New TStrings<T>.AsText()
  • New TRect helper Clear()
  • New sprite property ZShadow 
  • Optimizing interface as TSurface with interface.AsObject
  • New ISelf.GetInterfaceEx() so [unsafe] references can be used, therefore Supports() is no longer used
  • Many minor performance improvements here and there
  • Direct3D Prepare() is now optimized for specific rendering methods
  • New Radix sorting
  • Fixed a silly bug in TBezier class that didn't generate the first step correctly (discovered after creating a path editor)
  • New TFloatHelper.Is270(), TFloatHelper.Is90() ,TFloatHelper.IsOne(), TFloatHelper.IsMinusOne() and TFloatHelper.Not1()
  • Aspect camera is not continuously recalculated but only when needed
  • Camera viewport() and CalculateProjectedTileCount() with some zooms were not correct 
  • New TFloatHelper.Max() and TFloatHelper.Min()
  • New path editor
  • New TAnimationSprite.RandomInitialFrame
  • Now using {$I BB.inc} for common properties
  • No longer use of TGraphicDriver.Instance in the code
  • New TLayer.CleanTilesWithAttribute()
  • New helper TRect.Put() and TRect.New()
  • New helper TPoint.Put() and TPoint.New()
  • New RGB.Put() and TRGB.New()
  • New TVectorEx.Put() and TVectorEx.New()
  • Inlined methods used within the same class must be implemented first
  • Important functions where IShape was used now use TSimplePolygon, performance boost
  • Now TSpatialPartitioning.GetArea() exists quickly if there are no sprites in the whole grid 
  • Now TInputEx.GetCurrentCounter()
  • TFloatHelepr.Abs() is slower than standard one
  • class TSimplePolygon28 renamed to TPolygonTexcureColor, size is now 32
  • Bass DLL updated to latest version
  • New LinkType for scripts ltRollback, for those scripts that work as long as target is colliding, otherwise a rollback script is executed
  • Fixed an issue when locking more than once the same surface within the same tick
  • New TSurface.ConnectDots()
  • Rollback triggers now can have a timeout
  • Particles decimal rate 1.5 or 0.5 now work properly
  • New TSurface.GetAddressNoCheck()
  • New Sprite.EmitterType etDiffuse 
  • New sprite.CalculateNormal()
  • New sprite.CalculateSpecular()
  • sprite.GetRectangle() and sprite.GetRectangleF() now takes into account CoordinatesOrigin
  • New TScript.LinkType ltMany, in order to connect many scripts, if all are activated then execute the related script 
  • New class TEasing
  • New IParticleEmitter and IParticles
  • TSurface.ExtractPoints() improved
  • Now TParticleEmitter.SetImage() has a color parameter
  • TSurface.ExtractPoints performance improved
  • TRGB.Clamp() fixed
  • Surface blit() can now use ColorKey
  • TSurface.Rotate() was not working properly
  • New TSound.GetDuration 
  • TGraphicDriver.DrawSurface(), FlipX and FlipY removed 
  • New TSprite.ScrollTexture()
  • New TSprite.TilingScale(), to scale the UV of the sprite 
  • New TSprite.SecondarySurface, so to special effects with another texture
  • New property TSprite.TextureAddress
  • New TSurface.GetType()
  • New TSurface.Displacement(), to apply texture displacements 
  • New TSurface.ScrollX() and ScrollY()
  • Now surfaces are check for colorkey (maybe they are set but in fact no colorkey exists)
  • TSpriteEngine.Capture() now move bytes with TMem.Move32()
  • Many TSurface operations improved, using GetAddressNoCheck(), not always calculating crc, proper casting of integer vs cardinal, PCardinalArray, for rather than while, 
  • TSurface.ScrollY() now uses TMove.Move128()
  • New TMem.Scan8/16/32/64()
  • New TSprite filter sfGaussian
  • New TGraphicDriver.ClipRectAndTexture()
  • New TSurface.ReduceColors()
  • Finally sprite quads can be clipped
  • New TRGB.RGB2HSL()
  • New TSurface.Resize()
  • New TSurface.ColorCount()
  • New class TFixedPoint, to facilitate the fixed point maths
  • New TSurface.SetPixelNoCheck()
  • Now Sprite BB is only calculated when refreshing sprites 
  • Now surface rectangle is only calculated when refreshing surface 

No comments:

Post a Comment