201,307 Commits over 4,171 Days - 2.01cph!
added new prototype unit: Igniter (temp name until we decide how it's attack looks). Sets fire to tiles for 2 turns, doing damage to any unit on a tile at the start of each turn for 2 turns. It's using the worker model for now.
refactored AI tile fall avoidance to be more generic, so I can add any tiles with tile damage effects to it next...
added Board.GetTilesWithDamageEffect()
AI now avoids/moves off tiles with damage ticks (tile fall tiles take avoidance priority still as they're insta death)
attacks now can specify if the regular damage attack should be applied or not.
Fixed igniter unit not being able to directly target units.
units moving to escape dangerous tiles will now look to move somewhere they can also attack a unit from first
Refactored squad management in an effort to combat stalling issue.
Misc smaller improvements to ai.
Default npc spawn settings
First working version of hair cap mask assignment
Enabled hair caps on all relevant skin materials
Added new PlayerModelHairCaps component to head, torso and legs
Tweaked player model rebuild material property block handling
Fixed warning Effect.Init - invalid entity.
Cleaned up ai related convars.
ai.npc_enable 1 by default
refactored some attack damage calculation functions.
added BuffMin and BuffMax properties directly to Unit (they check the unit tag values)
tile burning damage effect now applies the attacking units damage range as the damage, not a hardcoded value.
updated Igniter attack description string to reference damage variable
added NE, SE, SW, NW directions to Direction enum
BoardUtils.GetTransformedBoardPoint and Board.GetTIlesInDirection can now handle new directions.
Flipper can now correctly target empty or friendly tiles
Simplified cap mask setup on dye sets; no explicit uv1 or uv2, now automatic via hair collection type
Optimized material property desc using shader property ID instead of name; adjusted material copy
Burner can now also fire diagonaly!
Launcher can now attack any immediately adjacent tile.
Reworked BoardUtils.GetTransformedBoardPoint() to step through one tile at a time, checking bounds, to allow for diagonal attacks to be correcty clamped to the board.
added Tile.GetPivotDirection() to get a a cardinal direction from a tile to an adjacent tile
updated UnitAttackAreaLine to work with diagonal attacks
added UnitLoopAttackRange
deleted UnitLineAttackRange as its not used (never was)
Fixed BeforeAtmosphericScattering shader func cases where unity_MatrixVP was no good
Viewmodel Clothing fbx files
Merge in all Bill Ford's fixes
Oak trees / meshes / textures / LOD's / prefabs
added first pass work experience scene
Fixed player movement not fully being disabled during a stun
Also fixed gravity not being applied during a stun
Added a StatusEffectChance list to TimedExplosive to apply effects to units in range of an explosion
Minor fireball now applies Poison5-30 (for demo purposes)
Fixed equipment and worn items not appearing when looting another player
Bounds checks to check that player is in range of corpse to loot isn't working reliably, check now also measures distance to the model's transform (not a great solution, seems to help though)
Also increased distance tolerance for looting from 4 units to 8
Exposed status effect procs on BaseMelee
Character type/role refactor with a view to supporting game modes. Character types can now be defined as individual ScriptableObjects (see the new Resources/character/character.types folder), with no limit on the number of configurations. These will then be assigned to Game Mode objects as NPC types to spawn, or player spawn types. Starting inventory can be customised as well.
Game mode definitions can now hold NPC spawn data. Could do with a nicer Inspector interface though.
Made combat logs event serializable
When a combat event is triggered it is now sent to the owning player client
When a client receives an event it gets printed into the chat (uncheck printCombatLog on UIChat to disable this)
Launcher attack LOS change.
Fixed some AI functions not correctly checking attack tile type, so they can't cheat by firing at blank tiles any more.