13 Feb 2017 - 17 Feb 2017

[Pathfinding]

1.) Colonists will no longer walk away from and back towards their current object when trying to go to the same object.

 

[Misc]

1.) Removed canvas from each object, and construction cost gameobjects are now destroyed when construction is finished (this improved performance.)

2.) Objects can now have multiple access positions. Colonists will travel to the closest one. Colonists also now travel directly to access positions (so they can get a bit closer to objects now.)

3.) Added access positions to most objects.

4.) Changed pivot position of all resource sprites to center

5.) Implemented all of the animations.

6.) Colonists now have a 30 minute cooldown for interacting with the same colonists.

7.) Crates can now be parented to objects. This is nice for things like the morgue drawer.

8.) Added interface for ResourceStorageObject. It has a callback and a delay for colonists when picking up / dropping off resources.

9.) Added Build costs for all objects. Use dev mode to add and delete objects instantly.

10.) Foundation walls / floors will no longer replace existing floors and walls.

11.) Colonists can no longer sleep on unwalkable floors (so in objects and walls.)

12.) Increased thirst restored from drinking water from 1 per water to 10 per water.

 

[Bug]

1.) Fixed a bug where AnimationMaterialOffset script wouldn't locate the correct material when an object was placed by the player.

2.) Colonists will now drop their carried objects when eating at a floor.

30 Jan 2017 - 10 Feb 2017

[Things I dropped]

1.) Objects being placed directly on walls

2.) Objects having multiple access positions.

3.) Colonists drinking water (separate from drinking during meals.) I felt that it adds little value, because colonists can already survive, with no adverse affects, from meal water.

 

[Object Deletion]

1.) I mostly just copied everything from rooms. So objects remove themselves from resource input lookups when marked for deletion; deletion can be cancelled; all resources must be offloaded, etc

 

[Objects Turned On / Off]

1.) Objects can now be turned on / off. The behaviour is the same as it was for rooms.

 

[Object Selection]

1.) Added script named "Buildable Object Selection." (I'm welcome to a name change.) It automatically creates an appropriately sized collider at run-time. There's a drop-down for selection ranking. Maybe I'll change this so that the ranking is automatically assigned (ranking is used to determine which object to select when the cursor is over multiple objects.)

2.) Objects now use the room windows. Some of the window elements are now useless.

3.) Added notifications back.

 

[Status Modifiers]

1.) These should now be mostly converted

2.) Resource producers now have a status modifier record that you can fill out however you want I suppose.

3.) Heat is now generated by Machines (Machine_GameObject) rather than resource producers.

 

[Colonist Interactions]

1.) Colonists now "interact" with colonists that are in any adjacent floor (including corners.)

 

 

[Pathfinding]

1.) Colonists now walk on the right hand side of floors.

2.) Colonists can no longer walk through each other. They check if any colonists are currently walking to their own target vertex or if any colonists are within 2 units of the colonist's target vertex

 

[Misc]

1.) Colonists now slowly rotate when walking rather than instantly. 720 degrees per second right now.

2.) Improved hold and drag performance of foundation box creation (which includes all hold and drag creation.)

3.) Fixed a bug where cancelling build mode while the cursor was rotating would break things.

4.) Hidden vents/wires/pipes will no longer be placed if there is an existing infrastructure object.

5.) Removed many many room tests

 

[Colonists place objects]

1.) When placed, objects request their build cost. A hologram is displayed, like before.

2.) I also added build costs back.

[Doctor]

1.) Added medical beds and medical desk

2.) The doctor behaves a bit differently now: Doctors study at medical desks, this raises their medical skill. Sick colonists go to sleep in medical beds, regardless of the existence of a doctor (they'll still sleep in non-medical beds if none are available, preferring their own bed.) Doctors will cure bed-ridden colonists. When no doctor exists the colonists will lay in bed until healed (this will need some balancing, so that colonists don't lay in bed and starve.)

3.) Bed-ridden colonists will be cured from diseases at 4 times faster rates while sleeping in medical beds.

[Morgue]

1.) Implemented morgue incinerator and the dead body locker.

[Breakable Objects]

1.) Converted breakable objects. Fire should work again.

[Storage Shelf]

1.) Added storage shelf

[Tile Grid Size]

1.) I halved the size of the tile grid so that objects can now be placed on half floors. Floors, walls, and infrastructure objects are restricted to "floor grid" placement. Infrastructure objects are visually weird if you place a powered object on a half floor, but they 100% work. They look weird because there's a half floor gap, but they still connect

[Misc]

1.) Converted some things with floors, so that they now check if any of the objects on themselves aren't walkable, so that now walls are considered to be objects and aren't checked separately.

2.) Colonists can now walk to tiles that are blocked, if it's their target tile. Colonists can also leave their current tile if it's not walkable.

3.) Angles in colonist animations are now adjusted by parent object's rotation.

23 Jan 2017 - 27 Jan 2017

[Needs]

1.) Converted Need Oxygen to tile based.

2.) Toilets are now tile based.

3.) Colonists will once again be subjected to the temperature of rooms

 

[Beds]

1.) Converted beds to use the tile system.

2.) Colonists should now sleep at a random floor within 30 tiles of their current position when they don't have a bed.

 

 

[Farms]

1.) There are now Crop Spots and Crop DropOffs.

2.) Farmers perform actions with this priority: Harvest > Tend Existing > Plant New

3.) Farmers look for the closest node, and something like 10 units away will default to being considered close

4.) Crop spots require piped water.

[Kitchen]

1.) Fridges request resources.

2.) Counters are used to prepare food

3.) Ovens are used to cook food

4.) Food drop offs are used to place cooked dishes (and are picked up by eaters)

5.) The chef should only start working if a fridge is completely valid (has powered oven, food drop-off space, food counter, and the fridge is stocked). I'm not sure if I should have put this off, because it technically only adds benefit to a player that messes up. So it's sort of a waste of time when our focus should be on making the game dev log ready.

6.) Also. The chef won't start the job until all of the required objects are within 20 tiles of the fridge, but the actual chef state doesn't have a maximum distance restriction. This should rarely be an issue, but it could be an issue if the player deletes an oven while the chef is in the middle of cooking something.

7.) The food drop-off will need the resource locations to be added.

[Cafeteria]

1.) Colonists will look for a food pickup that meets the following criteria: Has Chair > Has Table > Has Food 

2.) Chairs have the food slot data, not tables. This data will need to be created for the chairs.

3.) Colonists can eat standing up. If this is the case then they'll just look for a random tile to eat at.

[Misc]

1.) Objects can now be placed in the scene before the game starts. It's your responsibility to position them properly

2.) Colonists now rotate towards the target object when they arrive at their destination. This could potentially cause incorrect rotations if an object was really really big, because the object's center position is rotated towards.

3.) Implemented a class for finding and caching objects of specific within range of a buildableObject. It's refreshed every time any object is added or removed.

4.) Added tables and chairs. Chairs are added to adjacent tables. Specifically the chair is added only to the table that is in its front facing direction, which is determined based off of a gameobject that is dragged and dropped.

[Bug]

1.) Fixed a bug where the urinate need was using the values of the thirst need.

2.) Colonists will now visually drop objects when another object is placed in their carry slot

16 Jan 2017 - 20 Jan 2017

[Water Pipes]

1.) Added water pipes. These are used for both clean and dirty water.

2.) Converted wires, pipes, and air vents into the prefabs that Victor created.

 

[Converted Jobs]

1.) Resource Mover

 

[Resource Crates]

1.) Floors now generate 4 crate positions automatically. I think that existing crate positions will be used instead of the generated positions, but I'm not sure. We also don't really need to manually create crate positions, because all floor tiles are the same size.

 

 

[Resource Producer]

1.) Infrastructure Input Objects now have ResourceSources and all grids now have Resource Pipes.

2.) This was incredibly tedious and slow going, but now that it's done my work should go much faster.

 

[Misc]

1.) Buildable objects now have a text field for interface name. It's displayed when the object is built.

 

[Bug]

- Fixed a bug where walls weren't properly readded to the TileGrid when they replaced existing walls.

- Fixed a bug where floors couldn't be built with a single mouse click if the last mouse click wasn't on a floor.

- Fixed a bug where hold and drag creation boxes (which is how floors are built) wouldn't refresh it's selection if it was reactivated at the same tile that it was deactivated.

- Btw, you can't replace the first floor that exists. This is because there are no adjacent floors to it. I'm probably not going to fix this, because there will never be a station that has only a single floor.

05 Dec 2016 - 09 Dec 2016

 

[Doctor]

Doctors cure all diseases

[Medical Beds]

Unconscious colonists are taken to a medical bed, and a doctor is queued to treat them

[Coma]

Death has a chance of inflicting comas on colonists. This makes the colonist go unconscious

 

[Fire]

Breakable objects now have a list of fires to start, and a chance to start fire when they break. So a random fire object is started, but objects don't have to start fires every time that they break.

Fire consumes oxygen and destroys it (it's not converted into carbon dioxide.) I want fire to be destructive, so I think it would be too forgiving if the player could simply convert all of the consumed oxygen back into breathable oxygen. Ideally we'd do something more realistic, where rooms are permanently damaged instead, but for now this is fine.

Fire increases the temperature in its room up to a max temperature (which is 150 degrees right now)

Fire slowly destroys the resources in room.

[Show Floor Scene]

Implemented show floor scene

 

[Misc]

- The build mode buttons are now text rather than images

- Changing the atmosphere of a corridor now changes the atmosphere off all connected corridors. It's just a quality of life improvement.

- Fixed a bug where elevator platform vertices weren't correctly copied.

21 Nov 2016 - 02 Dec 2016

[Morgue]

I implemented the morgue incineration animations. I also added the ability to specify a static number for specific resource limits in a room and I changed the max resource count of dead bodies in the morgue to 1. So only 1 body at a time can be delivered to the morgue. Once a body is incinerated another body can be delivered.

 

[Sprite Palette]

I added a script called "GenerateSpritePalette_GameObject" it changes its palette texture automatically to one that was generated by "SpritePaletteLookup_GameObject" You'll still have to manually assign the Palette Material

The lookup has variables for unused rows, number of hair rows, number of skin rows, and number of eye rows. These are all 4 in the texture file, but they could technically be any valid value.

 

The lookup accepts a source Texture2D. It evaluates each block of colors in the source image for unique colors. The height of the block is derived from the "number of X rows," that way the script knows how many colors are associated with hair/skin/eyes. Duplicate colors are ignored. This allows the artist (Victor) to combine multiple color types in the same image. So you could have 3 eye colors and 7 hair colors, and the script wouldn't think that there were 7 eye colors.

 

It then creates a new Texture2D with every possible combination from the source texture.

The specific possibilities can easily be retrieved if you know the hair/skin/eye index that you want, because the generated palette is assembled in a very specific order.

The source Texture2D NEEDS TO be have "Read/Write enabled" set to true in the import settings. The image will need to be changed to texture type "advanced" in order for this value to be exposed.

 

[Body Outfits]

- Bodies now use palettes. To achieve this I added a "Sprite Palette Index" variable to the outfits in ColonistBodyPartChest. Colonist jobs can also change the index on their own.

 

[Misc]

- Readded Multiple Room selection. It has a .25 seconds delay before it works. This prevents accidentally selecting rooms while selecting colonists.

- Colonists should now more appropriately generate routes when picking up dead bodies. The biggest change is that now a vertex will be considered "matching" if it's within 3 units of another vertex. Colonists also now use the pathfinding data from their target colonist to generate the correct route.

- Added a sync action for colonist's AI. It freezes a colonist until enough matching sync actions are started. A patient syncs up with the doctor, for example, so that they both perform the appropriate actions at the same time.

 

[Bugs]

- Changed material of generators in the Generator Room so that it stopped causing a crash in the AnimationMaterialOffset script.

- Adjusted threshold for when low oxygen warning is displayed so that it's now more appropriate (the amount of oxygen was multiplied by 1000 in order to accommodate the percentage system)

- Fixed a bug where rooms at higher depths would occasionally block mouse overs for rooms at lower depths.

- Fixed a bug where the amount of oxygen in a room would become NAN. I think it was from the average oxygen calculation when there were too many rooms. It would cause an overflow.

- Colonists now spawn with 4 times of their base daily nutritional requirement.

- Fixed a bug where resource crates weren't placed in a position that used the rotation of their room.

- Fixed a pathfinding bug where returned vertices weren't copies, so colonists were inadvertently changing the source / original vertices.

- Fixed a bug where dead colonists unclaimed their current vertex instead of their target vertex.

14 Nov 2016 - 18 Nov 2016

[Body Parts]

Colonists now have 3 body parts: Head, Arms, and Legs.

Damaging the head causes an increase in the sleep need and prevents them from being able to work.

Damaging the arm reduces the speed at which farming, cooking, and mechanic-stuff is performed. Actions can now require a minimum number of working hands (but none do right now)

Damaging the legs reduces movement speed. Damaging both legs causes a significant movement penalty.

 

 

I wanted to make the body parts actually do something, so now colonists have a small chance of breaking bones when doing various actions. The break chance goes up if they're malnourished or when they have low morale.

 

If they actually break a body part then they have a 50% chance of breaking an arm. 40% chance of leg, and 10% of head.

 

It's a bit silly that a colonist could be a farmer and somehow break their head, but my head-canon is that they trip and fall.

[Dead Body]

Dead bodies are now ClaimableObjects, so Colonists will appropriately unclaim dead bodies if they die or fail when going to a dead body. Dead bodies are now considered abandoned resources so colonists that die in the morgue will be disposed of properly.

I changed the dead body resource crate so that it's a body bag now.

[Disease]

When I say "can" it means that the disease feature is optional.

Diseases are composed entirely of symptoms. A symptom could be almost anything so diseases are quite flexible.

Diseases can be "stackable." This means that a colonist could be infected by multiple instances of the same disease at the same time (if it's a stackable disease.) Colonists can't be infected with multiple non-stackable diseases of the same type. It wouldn't make sense for the colonist to catch the flu while it already has the flu, but it would make sense for the colonist to "catch" multiple food poisonings.

Diseases can be cured naturally over time. Once doctors are added I'll allow doctors to manually cure diseases and to reduce the natural cure time of specific diseases (or maybe all diseases)

Diseases can be transmitted to other colonists whenever 2 colonists are in the same room. Each contagious disease has a random chance of infecting another colonists. Malnourished colonists have a greater chance to become infected.

After being cured colonists become immune to the disease for whatever immunity duration the specific disease has. This is to simulate the antibodies that colonists develop for diseases. It also (for gameplay) makes it possible to heal an entire colony (otherwise curing an entire colony would be difficult, because colonists would keep reinfecting each other.) We could also have diseases that colonists are forever immune to, like chicken pox.

One last thing. It would be possible to create "carrier" diseases, where certain colonists are infected with a disease but receive no symptoms. These colonists would still spread the disease to other colonists without themselves feeling sick. I would like to do something with inherit genetic resistance to certain diseases eventually.

 

[Common Cold]

I added the common cold. It increases thirst and sleep rate of colonists. It also gives them a small morale penalty. It can be spread to other colonists. Immigrants have a 5% chance of spawning with some sort of disease. So if there were 20 immigrants 1 of them would have a disease. They also have a small (3%) chance to have a broken body part.

I'm not sure if I want colonists to randomly get diseases. I don't like the idea that diseases can just come from nothing. I also like the gameplay implications of not trusting outsiders.

 

[Misc]

1.) Removed Unique Tag from ObjectPoolObjects in the editor. It's now automatically generated from the HashCode of the object. The UniqueTag member still exists, but now it's NonSerialized.

2.) You can now press left alt to reset the camera rotation. This is nice for testing out sprite positions.

3.) If there's an idle elevator platform the ElevatorRoom that the requesting colonist is at it will be used instead of a platform at another ElevatorRoom.

4.) Colonists on missions have a small chance to break body parts and contract diseases.

 

[Bugs]

1.) Water and cup of water now actually restore water when being drank.

2.) Fixed a bug where abandoned resource crates couldn't be delivered to the room that they were abandoned in (like if a crate was abandoned in a storage room, it would never be able to go to that storage room)

3.) Fixed a bug where colonists would get stuck on elevator platforms

7 Nov 2016 - 11 Nov 2016

[Food Recycling Room]

The food recycling room will now request food that is equal to or LOWER than the displayed value. It used to use the same system as the Kitchen, which was equal to or GREATER than the displayed value.

 

[Bug]

1.) Changed the resource requesting so that resources wait 1 frame to start requesting. This prevents some crashes when rooms are present at start.

2.) Colonist needs were wrong because I accidentally overwrote them with the crop value. It's fixed now.

 

 

[Misc]

1.) Created a program that fixes common issues with .csv files. It needs to be in the same directory as the .csv files for the Fix All button to work. You can also load individual .csv files and fix them.

2.) Rooms present at game start now default to a liveable temperature