Saturday, April 14, 2018

First 2018 update, it was about time...


I've been lazy lately, but that has to change, still from time to time I move my ass and code a little bit, this is the outcome:

HBF)
  • Now game is paused, Shop, Inventory and Fight screens are substates, now code is cleaner and shorter
  • Curtain code cleaned
  • Now Shunenbukaidesu brings rain
  • Now when pause screen is gray
  • New TDirector code improved
  • Now Boom does some random rotations
  • Now Lights do some random zooming
  • New property TTriggerDispatcher.Player so code knows who did execute the trigger
  • TBell behavior improved
  • Backgrounds now can be setup in back.ini per level 
  • Now TGameSprite.Magnetized property
  • Now when adding a sprite to an engine it will enter the collision grid so that it can be search since the very beginning
  • UFO laser fixed (since when it was wrong? :)
  • New methods TGame.GameServices FadeIn(), FadeOut(), LockEntity() and LockExcept()
  • Left and Right collisions with moving objects improved
  • Now Dialogs have a Edit type so game can interaction can be done
  • Now game allows to add text (useful for chat)
  • Now Ropes can have different textures
  • New triggers IfItemThenSet(), RemoveItem(), ExecuteActionTile() and ExecuteActionEntity()
  • Now enemies can also activate triggers
  • Some levels now have a fourth layer (pipes and others)
  • Now TTriggerDispatcher has a Target reference (who did execute the trigger)
  • New trigger Velocity()
  • Pushed by blocks code fixed
  • New trigger Sleep()
  • Fade code refactored a bit
  • Fixed a bug in dialog system with NPC 
  • Extra Wand execution simplified
  • Now hero balance when standing
  • Added a new layer to all maps to handle better the trigger interactions
  • All layer are now declared as constants
  • Now circles shrink when interacting
  • Stalactite now works with gravity 
  • Graphics unused removed
  • Now game does Continuous Collision
  • Now Post is static
  • Now left/right collision with slope items/tiles works properly
  • Some fonts are shown with shadow
  • Collisions improved
  • New layer in the labyrinth
  • Owner property renamed to Hero
  • CarryItem property renamed to Owner
  • TGameSprite.IsUnderneathOf() fixed when gravity is up
  • Now music can fade in/out
  • Music now fades with screen
  • Now in mapping.ini one can assign directly the default animation, so for simple sprites there is no need to create a class 
  • Some new fonts
  • Now some level has a countdown...
  • New Door graphic
  • New wind effect
  • Notifications are now easier to code
  • New princess bitmaps

BB)
  • TStateMachine<T> renamed to TStateDirector<T>
  • TStateDirector<T> now supports substates as Push(T) and Pop(T)
  • Surface blur performance improved
  • TSurface Lightmap() performance improved
  • Many internal lists changed to TColony<T>
  • In TCollisionMatrix.Enter() Occupation was updated inside loops, that makes no sense and affects the performance
  • New classes TObjectColony<T> and TFastObjectPool<T>
  • INI class moved to its own file 
  • INI now uses internally TDictionary<K,V>
  • New TSprite.GetOldRectangle()
  • TCollisionMatrix performance improved
  • Particles now have a better management of internal textures
  • Now triggers have an Input property 
  • New TInput.ReadChar() so that game can read commands from user
  • Now triggers can only by executed by specific entity with property Holder/
  • Now Triggers can have Cadency, so the trigger can be only be updated every N Frames
  • Now triggers might have a Hint
  • Now triggers are called scripts
  • Now surfaces can have slopes left and right
  • TCollisionMatrix now checks for top/left and bottom/right corners
  • Now shadows are TBoolean rather than boolean
  • Now some fields are now TNullable<T>
  • Now map layers can have alpha configuration
  • Overhead with rotated matrix when angle = 0 reduced
  • Using [unsafe] tag when possible since my interfaces behave as pure interfaces with no reference counter
  • Now TTimerEx no longer uses an event but a callback
  • Some [UNSAFE] fixed
  • Many GUID removed from interfaces
  • Many const added to interfaces when parameter
  • New Glow properties color and blur  
  • New class TCountdown

Found binaries at OneDrive