branchrust_reboot/main/apartment_complex_monument/prototypecancel
82 Commits over 31 Days - 0.11cph!
Make all furniture inside apartments immortal and remove all the groundwatch so it can't break due to "ground missing"
Evict players once they have rent due for >24hrs
- once you catch up on rent the timer resets
Don't run upkeep for non-rented apartments
Send daily rent to client in apartment room entity
Link apartment upkeep terminal -> apartment room on client
Switch loot panel for apartment upkeep terminal to new one
Add support for the TC loot panel to show the upkeep for the apartment rooms
- use the apartment room to get the daily scrap rent
update apartment_complex_monument/prototype
Take scrap from the apartment every 30m for rent payment
Remove TC prefab from medium apartment
Teleport players back into their rooms (if possible) instead of killing them after being disconnected for >20m in the apartment safezone
- will still show warning when logging out but worth giving them a chance since players will spend more time inside apartment safezone
- assign the apartment complex to the safezone during startup
Add teleport anchors to the apartment rooms
Fix upkeep calculations not being correct & persist reference to terminal across restarts
Remove 'if !CLIENT' region that caused the snapshot command to not work in the editor
Add collider for upkeep terminal
Print error if upkeep terminal isn't found when calculating rent so we don't get kicked in editor
Add upkeep terminals to all the apartment rooms
Add the "Rent Due" vital to `GameUI.Hud.Vitals` and shift all the existing vitals so you can see them all in the editor
Add new vital for "Rent Due" and show it when they don't have any upkeep time paid for
Reprocess apartment upkeep terminal prefab
Add protobuf reference from ApartmentRoom -> Upkeep terminal
Include the code we removed when splitting into files
Split apartment room code into multiple files and subscribe for inventory updates from all furniture so we can recalculate upkeep every time it changes
- same code as TC that debounces the updates to only recalculate 1x per second
- this shouldn't be too many updates: without industrial the only time upkeep will recalculate is when paying for upkeep or a player is actively in their room looting
Start making upkeep terminal entity for apartments
Add upkeep terminal to medium apartment so there is a place to store scrap for upkeep (rather than it magically taking it out of a chest) and see how much your daily upkeep (rent) is
Swap the small apartment from the loot crate prefab to a small wooden box so it has something to store items
Add safezone trigger to apartment complex and make the building blocked + safezone triggers a bit bigger
Calculate upkeep time per apartment based on amount of items inside storage
- only network to the players who own the apartment rooms
- cost is based on explosive items (as configured previously)
- payment is based on scrap that is inside your chests (may make a dedicated payment box later)
Show upkeep in bottom right when you are within the apartment complex
update apartment_complex_monument/prototype
update apartment_complex_monument/prototype
Fix finding unoccupied rooms not checking the size requested, only if they are free
Start of code to handle upgrading rooms
- transfer items from one apartment to another one
Flesh out apartment conversations a bit more
Prevent turning furnaces & campfires on & off if there is a lock attached
Fix spawning of furniture inside apartment room
Add support for PreProcess to fully remove GameObjects from a prefab instead of simply nominating them for deletion if they are empty
- allows us to remove all the child entities inside of the apartment room entity and only spawn them in when the room is rented
Add apartment lock to manifest
Don't store furniture as children of the apartment room because it causes issues with raycasts (and who knows what else)
Switch from using codelocks to an "apartment lock"
- new type of BaseLock that reads auth list from the apartment room instead of having to sync the list of guests from apartment room -> codelocks
- apply to all furniture & doors inside the apartment so we can protect all storage incase cheaters / players sneak into apartment rooms
Convert some of the apartments furniture into entities
Use flag to determine if room is rented so client doesn't need list of authed users
- modify furniture code to use the flag
Commands for `rentroom {room}` and `checkoutroom`
Print in chat when they get a room until we sort out conversation fully
Remove more junk from prototype room number prefab
Implement protobuf data for room numbers
Add digital sign prefab as a placeholder room number sign so you can see which room is which
- text will be set to the room number when loading on the client
Assign room numbers manually inside `apartment_complex_wing.prefab` so it has more control going forward
- small apartments 101 - 116
- medium apartments 201 - 608
- large apartments PH1 - PH6