19,298 Commits over 1,614 Days - 0.50cph!
fixed bad string formatting
Added debug option to DSE settings
First pass SmartObject subscription refactor, added Subscription object
CompareSpeciesConsideration
▆▅█▋ ▆▄▅▍▇ ▌▉ ▅▊▄▌▋▌▉▊██▋, █▇▄▄▍▇▆▆ ▌▍▊▆▇▄ ▋▊ ▌▌▋▌▍▆▍ ▊▄▅▆ ▇█▆ ▇▄▅▉▊▅▊
▅▅▌▋▄▄ ▉█▇ ▊▋▄▅▋ ▋▊▊ ▋▆▇▇▄▋▄ ▍▌ ▉▊▊▄ ▌█▉▄ ▊▋▍▄▌▅█ ▆▊ ▉▉▆ ▆▉▉▇▉▋... ▇▋▆▄ █ ▋▋▆█▌ ▌▆▌▇█▅ ▄▄▋▉ ▍▄▍▅█▆▉▊ ▊▍ ▅▇▉ ▄▄▋▌▉▆
BehaviourGroup tick checks for required member count when executing behaviours and breaks/disbands the group if there are no longer enough members.
Added Consideration types for unit age, gender and relationships
Removed SuitableMate Consideration type
ConsiderationSettingsEditor now shows properties from child types in the settings block
Pushed number of agents we tick on minute and hour up to 200 (from 20), so that it's slightly more performant with scaling numbers of agents.
EffectSettingsEditor tweak
Testing some performance tweaks in Unit+Senses and Stat.Tick (implemented IComparable on IStatModifierTickable for faster OrderBy
Fixed Agents getting stuck in a BehaviourGroup
Fixed a stupid thing in SuitableMateCosideration
Consideration refactor, allowing considerations to consider both Myself and Target from a DecisionContext in certain... contexts.
Tweaking BehaviourGroup membership
Moved Duration for Timed Stat Modifiers and Timed Effects to tick every 15th TOD Minute, rather than every TOD Hour.
Rewrote to a list of effects pending removal, rather than removing them on the spot. No longer need to buffer effects list before ticking it.
Added Eating Effect to Consumables, which required a Duration (tick) support in Effect.
Misc tweaks to Effect.
Fixed minor tickable modifier bug when it applies to BaseValue, it now applies to statBaseValue.
Effect and trigger data cleanup, tweaks and fixes around Effect state handling and ActionChain callbacks
Effect editor tweak to ensure you cannot set RemoveOnCompletion and a Start Trigger
stats use float
effect remove fix
Tweaks
Updated human prefabs
RemoveStatModifier overload
More effect refactoring, effect debug view tweaks, asset path and type in BE assets dicts, removing old test assets
BehaviourGroup tinkering, added display of active Behaviour Group to Unit debugger
Wolf anim controller improvements
Break out of foreach after removing an item, else we get invalid operation.
Added ItemManager to Globals object
TribeStatArea spawns and adds stick to the campfire
Data tweaks (Forget if Interrupt on various Interactions)
Added Behaviour.OnBehaviourActivated for callbacks, SmartObject only counts subscription and allocates InteractionPositions when the relevant SmartBehaviour is active
Added BehaviourStack.Contains method
Buffering Agent.Effects in TickEffects
Fixed potential NRE when calling Consumable.Consume()
Removed Agent.SubscriptionCount, now simply check against the Stack.Behaviours.Count in DM
Overriding some methods in SmartBehaviour to deal with subscription handling better
-partly B&W2 style: camera only follows the ground going up, not going down.
-merged with main
-Camera: standard with lots of tweaks (better follow, better gliding around, some sort of currently rough fix for the camera going through mountains)
Added back in Forget if Interrupted to interactions.
SmartObject.TrySubscribe overload with interaction name lookup
Shifted about some Agent+DM code to Agent+SmartBehaviour that deals with auto-completing a "current" SmartBehaviour if it's action chain is completed and a new behaviour is being stacked on top of it.
Added UnsubscribeOnCompletion flag to InteractionSettings, allowing SO subscription to persist after completion of the SmartBehaviour ActionChain
DM will call SmartObject.Unsubscribe when applicable
Interaction tweaks
GoToSmartObject tweaks
Fixing stupid CanSubscribe checks
More InteractionPosition stuffs
Fixed Consumable Effect Settings.
Since "hours_passed" accumulator is a ulong, I moved it to the StatCollection, that we only store one per Agent. Means we only register a single listener per Agent to the OnHour TOD event too.
Stat+Tickable now use TOD OnHour to tick modifiers that have a "duration" (timed lifespan).
Consumable now use EffectSettings rather than its own ConsumableEffect API.
Pretty much finished the Stats and Effects refactor. Some data might be viped from assets and some editor stuff might need revisiting (commented with todos).
More interaction positioning stuff, massive gizmos