285 Commits by 5 Authors. 411 files added, 255 deleted, 67 moved.
23 May 2018
Bill Lowe
Icon hookup
It's no longer possible for people to claim buildings as their homes which are not inhabitable Settlement info widget basics Crafting UI will only show for stations that have unlocked craftable items
Fixed needs persisting for units (and any other entities) after they have left the group Fixed selected unit UI widgets not changing
Disabled cooking on stick due to bugs
Exposed missing "hide from UI on failure" in DSE conditions array drawers Home building claim fixes
Added AI for humans to claim a building as their home if they don't already have one
GetHomeBuilding can be used outside of DM
Various debug cleanup, added new toggles for settlement and possessions debug logging. Added cheat toggles to the debug UI Refactored desires down to a single type Replaced shelter desire with new "home need" Version++
Conditions.CanDepositToStockpile NRE fix
NRE fix
IOE fix
Unit group join/leave cleanup, NRE fix
Food gathering AI fixes
Better settlement level 2 conditions
People will now fill storage baskets with berries from their handbaskets when possible
Containers can now be restricted to the first entity type that gets deposited Added container persistence data
Settlement radius now has a global bonus value which is calculated as more buildings are built
NRE fix
22 May 2018
Bill Lowe
Fixed settlement level possession reqs not creating desires Fixed unit info widget not showing properly when selecting units Added some API for settlement inhabitant joining/leaving. Units now have Settlement level driven possession requirements added/removed approriately
Fixed Roles component adding possession requirements for inactive roles when the level changed (i.e. on init)
Player controller selection tweak to hopefully fix info widget not always displaying
Renamed "replacement" settlement level possession reqs
Removed duplicate ListComponent since it's in Facepunch.System
Item type enum gen, more roles def editor
Removed possessions importance value
Settlement level requirement check logs
Role def editor
Role possessions requirements are now defined per-level. Requirements from the previous level are removed. Role levels apply stat manipulations Settlement levels define tribe-wide possession requirements
Got rid of Command.Type
Fixed player controller assigning incorrect command types
Fixed some player commands not invoking
Fixed NRE in AIBehaviour caused by Reset order Fixed fishing interaction having no tool requirements
Fixed tribe tracker UI not showing
Player commands refactored to a single type for easier pooling and duplication Updated Facepunch.System Used Facepunch.Pool Removed Pool, GameObjectPool
AIBehaviour cleanup, fixed bad profiler sample
Fixed NRE in AIBehaviour.ClearSmartObjectSubscription (agent's next interaction can be null)
Node graph editor cleanup, base node type with common util methods Roles API method rename for clarity now that we no longer support multiple concurrent roles
Sebastien Blomfield
Add existing people to the first settlement when it gets created. Settlement level 1 requires hand axe. People now cook stuff on stick.
Correct position for rat on stick. Cooking on stick AI enabled (but you still have to manually skin the corpse)
Don't enable NavMeshAgent when attaching Units to Items
dodge without root motion
21 May 2018
Bill Lowe
Research station UI basics AI designer node child position updates when dragging parent (ported from progression designer) Fixed settlements skipping level 2's requirements
Radial menu command cleanup, NRE fix
NRE fix
Role defs on some craftables
Editor NRE fix
Removed Unit.Progression component, moved item craft activity unlock functionality to GroupProgression Item crafting now provides experience for the associated Role Crafted items now have their quality determined by the role level of the crafter
GroupProgression & ResearchStation both persist current research items
Role levels is an enum Added RoleLevel unlock mode Cleaned up some unit selection events so that UI widgets (unit info, tribe tracker) dont get confused)
Fixed tabbed window hotkeys (tribe, progression etc) working with other modals are open Fixed progression path choice being presented at settlement level 2
Progression data
Tanner, farmer and shaman roles unlocks
Removed skill levels Added role levels Removed Cook, Defender, Fisherman, Herbalist, Potter, Stonecutter and Woodcutter Roles Added Farmer, Shaman, Tanner and Weaver roles All gathering and food related AI modules are now default Research is now either global or station specific Research mode unlocks can optionally define a required role and/or required station Added interactions for research at craftsman, weaver, shaman and tanner stations Roles component no longer supports multiple concurrent roles, saves RoleInfo with level and exp Populated the progression graph with more content from the design doc Baskets no longer require the crafting station Version++
Fixed UI modal state event subscription issue causing some UI elements not to properly get their modal/isolated state
More commands clennup
Cleaned up player command management, fixed BEF-173 Fixed TribveTrackerWidget ragging perf
Moved all player controller config to PlayerControllerConfig (in GameConfig asset)
Sebastien Blomfield
Only scale attached entities if they're not a unit
Can Place Order condition now checks if we already have a crafting order for the desire (fixes people repeatedly asking people to craft them stuff)
hooked up pot stirring, caged idle, ill idle
20 May 2018
Sebastien Blomfield
Lots of changes in the aim of making corpses cookable on sticks. Disabled the Goal for now because it's not quite there yet. Added ItemAttachments UnitSource to get Units attached to held items. Made Rat and Rabbit attachable to Stick. Added IsAttachedToItem condition so we can check units as well as items. Various TargetFilter tweaks and more.
ItemDesires that have a CraftingOrder created for them now reference the order instead of being fulfilled. This means that if people find the thing they need they'll pick it up instead of waiting for the order to be completed.
Publicly exposed durability value in Decay component because sometimes we actually want that value. Fixed the Value to show decay and not durability.
Fixed picking up items while bypassing animation not returning true and thus not completing crafting orders with self as recipient.
Fixed time range with 24hr duration scoring 0
Added a temporary unlock definition for stuff that isn't currently anywhere in the progression
debug spawned buildings will now be added to settlements or create a new one if they are settlement creating buildings
Bill Lowe
Progression & tech tree designer improvements/cleanup Populated some more parts of the new progression graph
Fixed weirdness with tabbed window states
Building panel fix
Debug building spawn starts player building placement
Added Cheat.UnlockAll, removed unlock_all cmd
18 May 2018
Sebastien Blomfield
reset next interaction when clearing smart object subscriptions. (should fix people constantly going back to the altar)
added altar to unlock data
Removed CanMove property from Navigation and just using CanNavigate instead
Fixed player command cooldown
Bill Lowe
Missing bits
Exposed game over conditions to scenario configs Progression data
Progression designer bits
17 May 2018
Bill Lowe
Progression settlement level unlock tweak
UI bits
Equipment UI basics
Fixed tabbed windows nav not working
Fixed empty stats in unity info widget
More UI, equipment widget prep
More UI
UI cleanup
More UI cleanup
UI fixes
Added CloseOnEscape utility component, replaces manually doing this in update for various UI widgets UI management now uses gameobject active state
updated unitview magic unitLookAtLerpSpeed number to match peturs turn speed changes
16 May 2018
Petur Agust
Snappier human movement.
Bill Lowe
Work time consideration returns 1 all the time (pending exposure as a player controlled mechanic)
Nuked MinAngularSpeed from nav data, Navigation sets angular speed from data every frame (for tweaking)
UI save
Fixed new roles UI stuff causing successive selection, various related cleanup (removed RoleSelector) Added role assignment to detail view widget
Various role assignment UI improvements
Added Definition.GameValid array Unit info widget has a role assignment row built in Disabled roles UI widget at top of screen, added button to open this window to the menu in the top right
Sebastien Blomfield
switched priority of changing combat ability with attacking to hopefully avoid people using the wrong abilities sometimes.
Human basic attack range to 0
Movement mode AI to higher priority
Cook Animal On Spit checks if corpse is skinned. More command generation blackboard stuff.
Command generation for depositing to machine now writes to the Unit BlackboardKey
Interactions can now define a tool requirement which can be overridden in the wrapper. Skinning requires blade or axe.
caged idle, downed ill, stir pot anims, not hooked up
15 May 2018
Bill Lowe
editor tweak
progression designer label fix
Scenario unlocks are now in added in addition to all unlocks flagged as Starting Unlock Progression designer no longer shows scenario choice dropdown, displays unlock content in nodes
Better gating of GPV/BC tick by state (should resolve NREs caused by breaking inactive GPVs)
OOE fix with agent force ticks
Force tick on a bunch combat goal plans
Agent forced tick is optionally slot-selective. Autonomous forced ticks from AI can now be controlled on the GoalPlan level.
Compile fix
Refactored player command cooldown
Settlement level requirements now work properly
Fixed some issues with entities not being properly removed from machines when picked up or destroyed
Fixed DestroySelf action not working
Generic prompt UI is singleton, no longer held by UIManager Added progression paths. Player picks a path via UI prompt when a settlement reaches level 3. Unlock definitions can be gated by path Fixed PlayerGroupActivity not working
Added Settlement passive happiness gain (must have no active needs)
Fixed AI debugger not cleaning up properly when closed AudioManager history no longer uses DateTime, clears on session reset
Fixed SuppliesCondition not working in Need fulfilment evaluation Settlement levels can have conditions Effects editor has refresh & create buttons Settlement leavers create their own group, Unit.Group is no longer null
Effects.CanApply returns false is the effect is not flagged as game valid
Sebastien Blomfield
Targeting module now checks if we have a player commanded target
Following combat target now picks a destination at the desired range instead of directly setting the destination at target and relying on the action to do the rest.
re-enabled testbox wolves
EntityConsumeValue now has a bool to check if the target is consumable by humans. All animal food AI now uses the basic ConsumeValue consideration.
removed hit from the base layer (even though it wasnt being used)
thunder sfx
14 May 2018
Sebastien Blomfield
Fixed various NREs related to people having a null group
Fixed ItemAction getting stuck when in bypass animation mode
Don't apply Effects to dead Units
Added missing return in GoToSmartObject. Warping added to Navigation logs.
Bill Lowe
Dont play unit audio in super sleep speed
Enum gen
Removed a bunch of happiness changes from effects (replaced with Mood in most cases)
Fixed Effect editor not displaying stat manipulations foldout
ECS semantics cleanup, summary on SensesSystem to explain the intent behind temporarily porting the API Removed Happiness stat
Data save (NRE fix)
Tutorial screens can use triggers, will only display once Merged TribeActivityTrigger and TribeMemberActivityTrigger into PlayerGroupActivity trigger type
another editor fix
Databrowser error fix
NRE fix in AIBehaviour.ClearSmartObjectSubscriptions
Remvoed bad return in ItemActikon.OnItemActionCallback
Animation bool callback clear method cleanup
AIAction.State set to active in Run before invoking the template's RunImplementation. Action implementation can assume that the state is active (fixes ItemAction's animation bypass mode callback returning early)
NRE fixes
Cleaned up behaviour smartObject subscription management
BehaviourChain.Break cancels smartobject subscriptions after breaking behaviours (hopefully fixes OOE issue with AIBehaviour event callbacks)
AI actions run/tick/simtick impls return execution state instead of void (no longer call action.End or .Break from within the impls) Renamed Behaviour to AIBehaviour to stop unity whining Renamed Animation to UniAnimation, also due to whining Fixed multiple activity notifications of the same type and from the same creator being suppressed (now optional on the def)
Subtract the subtract and use .updatePosition instead of toggling NMA enabled state
Added the missing return in GoToSmartObject from 16100
Subtracting 16100, 16099
Fixed need defs editor not showing the fulfilment conditions Fixed group needs not triggering
downed anim transitions
13 May 2018
Sebastien Blomfield
Added a method to disable navigation and warp to a position. Going to smart objects now warps to the interaction position and leaving them unwarps.
Fixed SuppliesConsideration and Condition not correctly getting the settlement. GoToUnit action is a bit more lenient.
12 May 2018
Bill Lowe
Fixed settlement housing and food needs missing their completion conditions Another attempt and cleaning up animation bool change callbacks
Item.PickUp no longer adds the item to the unit's group (pending issues that this make unearth, but we need a better solution)
Animation component tick/bool change callback runs every frame to avoid potential lingering fuckery Fixed NRE when CookCookable process finished
Settlement leader keyword name fix, include claiming group in activity data
Fixed buildingView NRE
Settlement levels, activity, keywords, enum gen
11 May 2018
Bill Lowe
NRE fix
Reworked group joining/leaving AI
Combat testbox settlement assignment TribeSpawner adds buildings to settlement
NRE fixes
Fixed various issues caused by people leaving the tribe
Deactivate unit detail view if they get destroyed
testbox splats
Fixed NRE in HumanPortraits.Update when someone leaves the tribe
Various hunting AI scoring improvements Re-enabled Human/Cook/CookCorpse/FindAndPutCorpseOnFire goal plan
Fixed NRE when someone leaves the tribe
ItemAction.OnItemActionCallback is static, no longer does stupid check for settings equality
Added LeaveGroup goal to the Human-GroupActions module, which is now installed by default and no longer managed by the GroupMember component. People will now leave the tribe using this AI module, and go find another group to join if possible. Added various group and settlement related conditions/actions.
Crafting failure activity uses goal failure activity generators again, does some special case stuff for tooltip text Fixed potential NRE in AIAction.Break (check state, shouldnt happen so I added a warning) Strangers will no longer sit around the fire after leaving Role assignment activity no longer pops notifications
Fixed role UI labels being highlighted by the build button (gg duplicating text objects with tween components)
fixed cliff around the quarry on testbox
Removed knock-out effect from hammer & rock weapon data
Removed packages we dont use
Fixed settlement info UI showing bad value text
SensesSystem init in bootstrap
Sebastien Blomfield
added despawn point on nospawns
CanFindBuildingForTarget now uses group entities instead of knowledge
Added checks for components to BuildingFilterSet. IsStockpile condition now checks for the component rather than the category. Selecting carried items for a container will now skip clothes unless we registered them to the container.
healing station
building anims
10 May 2018
Bill Lowe
Fixed senses not working after starting a new session (oops)
Fixed NRE in tribe creation when starting a new game after quitting a loaded save Quicksave overlay Added BudgetYield utility for iterating over collections and calling some function within an ms budget
Fixed load game button tweens targeting wrong objects
9 May 2018
Sebastien Blomfield
Woodcutter AI now uses similar logic to general stockpiling AI but only stockpiles logs. Same as above for Stonecutter. Added a quarry to testbox.
People should no longer hunt if they're carrying a unit. IsCarryingUnitCondition has a "Condition" mode.
More combat callback cleanup
Bill Lowe
Settlement radius/extension preview visualisation Cannot place buildings outside of settlement radius Buildings all require settlement by default, can optionally ignore this in data by setting MustPlaceInSettlement to false
Settlement claim functionality, AI action
Building placement checks for nearest settlement with extra padding (uses the settlement radius value for the building being placed) Added Conditions.SettlementBelongsToMyGroup Fixed tribe leaver unit selection not checking flags correctly Settlement claimable state
Wearables & attachments weight in debug view
Fixed log stockpile selector using the wrong condition
Fixed woodcutters chopping down trees when there's no stockpile to fill (StockpileCondition now checks if we can deposit a specific item type) Item pickup check no longer includes weight check from wearables
ProtoIgnore EntityId.cachedEntity
Campfires can now be added to existing settlements
Various console command cleanup and error safety checks (resolving a bunch of crap on Sentry) Combat no longer logs "trying to attack an invalid target" as an error, now under editor only combat logs
Combat targetting callback cleanup
Fixed potential NRE in VisualFX destruction
Made it impossible for people to own more than 1 building/home (for now) Ownable & Ownership cleanup EntityId caching
8 May 2018
Bill Lowe
More senses cleanup
NRE fix
SensesSystem init fix
Moved all Senses tick functionality to SensesSystem, Senses holds only data and some lookup API for that data
ItemAction callback cleanup, should fix invalid cast and pop errors if something is hooked up incorrectly Reset role assignment UI via Refresh override
5 May 2018
Bill Lowe
Fixed water edge shader Prevent duplicate activity notification spam Bigger tooltip for activity
Fixed potential NRE when destroying a unit with active visual FX
4 May 2018
Bill Lowe
More room for activities
Activity text held by data struct, removed from factory method arguments Settlement happiness set to 100% when all needs are satisfied ThreatPerceptionCondition checks that the target isnt dead or disabled (should fix people getting alert effect from seeing dead things)
Add to stockpile interaction command generator ignores worn items Moved various crafting order API to Unit.Crafter Unit.Crafter component handles activity generation for failure to find required items
3 May 2018
Bill Lowe
Selective AI module evaluation can be toggled via debug Cheat commands prefixed with cheat.
Settlement size/territory display while building (using highlighter system for now) Fixed terrain decals being badly aligned to terrain on some maps
Fixed NRE in progression/research widget
Fixed errors when quitting from tribe create Fixed tribe race choice not changing available hair colors Clamped camera parallax on menu scene
Name input fields on tribe create, unit customisation and settlement creation all use consistent validation/content types and do not allow empty strings
Effects component destruction no longer removes effects, just clears and resets the pool to deal Fixed NRE in UnitView when quitting from tribe create Disabled camera parallax while spinning unit view in tribe create
SettlementView draws disc meshes to represent its size/territory Settlements debug panel, global config Settlement leader API & persistence boilerplate
Fixed NRE in WearableSlot.Unit_OnSetView (broke gender select in tribe create https://gfycat.com/ImmenseSmartDiamondbackrattlesnake)
2 May 2018
Bill Lowe
Menu scene NRE fix
Enabled tribe creation
Settlement level requirement checks buildings
Unlocks settlement level support (unlock can be triggered by a settlement level change) Settlement levelling basics (check requirements on need satisfaction, event for unlocks etc) Research UI button state checks research requirements, including settlement level Unit needs drain parent settlement happiness relative to inhabitant count
Fixed bad need types, editor NRE
Removed cohesion events & cohesion component, now handled on a per settlement basis Settlement levels boilerplate Unlocks can define a required settlement level (must have at least 1 settlement of the given level in order to research) Removed Group need type, now always associated with a Settlement or Unit Fixed decals persisting between sessions Replaced a bunch of Enum.HasFlag usages with non-alloc HasFlagEntityType ext method Added ClearFog cheat (turns fog of war off)
Tribe leavers break all active behaviours and clear desired target. When a Unit changes group they will assign themselves a random settlement
Main menu UI fixes
Fixed gamespeed changing back to incorrect values after group sleep ends
Deer override dead anima assignment
Animal animator override isDead state
Fixed dropped units having fucked rotations
Fixed radial menu layout issues caused by CommandTrigger refactor (buttons were missing LayoutElement) Reset game speed and pause overlay UI states properly between sessions Added IsDead override state to the human animator
Settlement creation UI is shown before the entity itself is created (fixes entity name not getting set before other systems kick in, like GroupNeeds triggers)
This commit has been marked private, so it is hidden
Fixed activity UI hiding itself
Sebastien Blomfield
null check the group in the GroupMember OnGroupChanged callback
Fixed strangers being able to sleep in your buildings
Set Raid AI to always evaluate.
Set isDead or isDowned bools when dropping carried units
stone impact sfx
1 May 2018
Bill Lowe
Fixed units that have left the tribe being marked as player controlled
Don't show items that aren't flagged game valid in crafting window Don't show building upgrades or addons that aren't flagged game valid in respective UIs Activity and Needs have separate notification and tooltip text fields GroupNeeds can apply effects to the whole group or inhabitants of a settlement Fufilment of a Group Need will now give the group a happiness boost relative to how quickly it was fulfilled
Fixed activity UI NRE
Added Eums.HasFlagEntityType non alloc impl of Enum.HasFlag for the EntityTypes enum
When people leave the player's tribe they will join another if there are any available
Fixed bad vitals display in UnitInfoWidget Activity timeouts (defaulted all types to 10 seconds) Activity expiration uses condition groups Activity tooltip text
Fixed activity widget colors
UI value element separated tint options for label and value text components
Fixed world space UI canvas being hidden after quicksave Fixed settlement indicator/status UI elements not having color reset properly
Fixed settlement creation UI appearing after loading a game
Fixed GroupNeeds not unsubscribing from TimeManager.OnHour when destroyed (i.e. between sessions, causing NREs) TerrainDecals destroys any TerrainDecalObject instances in OnDestroy (for safety, this should be taken care of by scene unloading) Session.LoadScene calls SceneManager.SetActiveScene to make sure we spawn things in the correct scene for cleaner session management
Dont parent views to container transforms in standalone builds
Sebastien Blomfield
Fixed target filtering so that people can find hints and other entities with no SmartObject
Deleted old Seek Out Attacker GoalPlan
Reset _genericCommand in PlayerController to avoid weird commands with null fields
Building now has a HasActiveConstruction property to indicate that there's some sort of construction going on. Various bits of building AI now check this instead of IsFinished making it possible to build upgrades.
Stop navigating at end of FollowCombatTarget
Fixed Hostility check and tidied it up so we can see what's going on in there
Added buttons to Cohesion debug to trigger people joining and leaving the tribe