24 April 2017 - 28 April 2017

[Class Morale]

1.) Added the Skill "Class Level." I did this so that any place where we require a minimum skill we can also require a class level.

2.) Every tick (currently 1 game hour) colonist class level will increase by 2 if morale is at or above 75. Class level will decrease by 1 if morale is at or below 25.

 

 

[Free-Time]

1.) Added exercise machine and exercise as a free-time activity.

2.) Added tinker as a free-time activity.

3.) Added gardening as free-time activity.

4.) Added reading/studying as a free-time activity.

5.) Added playing in VR as a free-time activity.

 

[Misc]

1.) Added the three-way corner flip piece to the AdjacentObjectVisualRefresher

2.) Adjusted atmosphere flow so that objects can allow / not allow atmosphere to flow through a floor (used by vent objects.)

3.) Added bool "doesGoThroughWall" to WallObjects. If it goes through the wall then it will claim the opposite side of the wall (in addition to the current side.)

4.) Improved access floor positioning by associating access floors with a position. This allows multiple access positions on a single floor (unintended, but not inherently bad)

5.) Wall objects now have an access position for colonists.

6.) Added key to AdjacentObjectVisualRefresher, and also a "requires key." The key is a string. The match will be found regardless of tile type.

7.) Added default paint type to walls. This is the paint type that all of its sides will have when built.

8.) Jobs can now require different minimum morales in order for the colonists to perform them.

[Bug]

1.) Fixed a bug where four way two corner opposite piece wasn't deactivated

17 April 2017 - 21 April 2017

[Wall Objects]

1.) Implemented wall objects. They snap to one of the 4 wall sides. Press the rotate key to change the first tried wall side (this sounds more complicated than it is.)

2.) Walls can't be placed next to a wall that has a wall object on it.

3.) The UI isn't the best right now, but we'll overhaul the entire interface in the future.

4.) Wall objects can only be removed by deleting the wall that they're on.

 

[Wall Painting]

1.) Walls now have "FluxSide_GameObject" scripts that should be placed on the GameObjects that contain the mesh renderer for the individual wall pieces. The direction of the sides are automatically calculated based on the z rotation of the gameobject.

2.) Left = 0, Right = 180, Top = 90, Bottom = 270

3.) Press the "Paint Wall" button to open the paint menu

 

[Misc]

1.) Colonists now play walking animations when performing the action "GoStraightToVertex." This is a very specific case. 

2.) Adjusted atmosphere flow rate so that it's much better now. Specifically, only half of the difference between components can transfer in a tick (this is common sense, btw, if more than half the difference is transferred you would exceed the equilibrium--you'd be giving too much atmosphere to the destination tile.) This prevents 2 tiles from transferring their atmospheres back and forth forever.

3.) Placed the non-editable scripts from RequiredGameObjects into a child GameObject named "NonEditable Scripts"

4.) Displayed oxygen is now in percentage

5.) Temperature and oxygen in the UI are now rounded to 2 decimal places

6.) The oxygen machine will now only place up to 21% oxygen in a vent.

7.) Added maximum and minimum sprite scale variables to the Skybox. Also added the distance from the player station that the smallest sprite scale should use. Note: The sprites will currently overlap sometimes. Start the game with dev mode on and all of the Solar System Bodies will be discovered (and also added to the skyline.)

8.) Adjusted when the "CloseDoor Internally" is called in the close door animation.

9.) Walls no longer replace the gameobjects of other walls when created

10.) Doors now hide their floor and the adjacent walls.

11.) Adjusted render order of resources so that they don't disappear behind floors.

 

[Bug]

1.) Fixed a bug where multiple forwarded data with the same key in an AI state would incorrectly overwrite later forwarded data

2.) Nonpersistent meta-data is now actually changed when objects replace other objects (like when a floor overwrites an existing floor.)

03 April 2017 - 14 April 2017

[Misc]

1.) I exposed AnchorObject in AdjacentObjectVisualRefresher script. If you give it a value it won't create a new one (but all components will still be parented to that GameObject...no matter what.)

2.) I re-enabled the tile-by-tile atmosphere flow.

3.) Added screenshot mode. Press Shift-S, L, or go to "Tools > Screenshot Mode"

4.) Adjusted the Skyline camera so that it moves as the player camera is rotated, and it will "loop" around forever.

 

[Bug]

1.) Fixed a bug where placing multiple external floors over an existing external floor would cause an error.

2.) Fixed a bug where mechanics would travel "into" machines when maintaining them. It was caused because the mechanic was performing the appropriate animation, and the target node was in the center of each object.

27 March 2017 - 31 March 2017

 

[Trading]

1.) Faction's will send trade requests every faction tick (randomized for each faction) if the relationship with the player is above 75 (this is somewhat arbitrary.)

2.) The sell-to-faction price is ALWAYS lower than the buy-from-player price. A high buy price will always mean a high sell price, and vice-versa.

3.) The faction's desire influences the price of goods: if they desire a resource and don't produce it then the price is high. If they desire a resource and do produce then the price is low.

4.) The player's relationship with the faction will reduce the difference between buy and sell price by 1 percent for every 1 relationship point.

5.) Any crate-able resource can be traded.

[Trade-Object]

1.) This is where the colonists will drop-off and pick-up resources for trading.

2.) Multiple types of these objects can exist. The player can change the input/output resources of the trade object to control which objects receive resources (I think the user can change it from the resource menu by clicking on the object.) The closest trading object is supposed to be used (so a trade-object next to an ore storage room will be used for all ore input.) The output trade-object, however, just uses the first object in the list of valid trade-objects. If no trade-objects can be found for buying / selling than the first one placed will be used.

 

[Misc]

1.) The global resource count will now only include resources added to TileInventories. So this removes resources from ships and factions (among other things.)

2.) Windows will now consistently have the correct scale.

3.) Objects must now be placed under floors.

4.) Adjusted position of resource crates so that their pivot remains consistent with the player.

5.) Finished Dish Counters (and fridges) are now powered objects. If they're powered then their atmosphere will be chilled (preventing food from spoiling.)

[Bug]

1.) Fixed a bug where colonist thought bubbles were displayed on colonists that had boarded a ship

2.) Infrastructure Objects are now visually refreshed when their construction is complete.

3.) Fixed a bug where removing InfrastructureObjects wouldn't refresh the grid of their parent floor (so the floor thought that there was still a wire on it.)

4.) Fixed a bug where placing multiple infrastructure objects at one time would cause an exception in AnimationMaterialOffset (it's because their gameobject was disabled.) I also set the material index, I don't know if that would also have fixed the issue

20 March 2017 - 24 March 2017

[Solar System]

1.) Added some names for every single solar system body type. Gas Giants are roman gods. Rocky planets are greek gods. Moons are minor roman deities. Stations are mythological places.

 

 

[Factions]

1.) Factions are now generated when the scene starts.

2.) There can be "forced" factions that are always present (like forcing a pirate faction or merchant faction to always be present.)

3.) Faction relationships are in the range 0 to 100.

4.) Factions will claim one (and only one) station when they spawn.

5.) Added a message system. There's a button on the screen now that opens a window that displays all messages.

6.) Missions now have a 75% of being assigned to a faction when started. Failing / Succeeding the mission will affect the player's relationship with the faction.

 

 

[Misc]

1.) The scene validator will work again...so use it.

2.) Added ResourceObjects, which can be added to any inventory for persistent object storage (this will be used by cosmetic items so that the same cosmetic item can be stored and retrieved.) It could also be used so that a colonist could store an apple in their inventory and it would continue to rot, I guess.

3.) Salvage missions can now only be performed at stations without an owning faction.

06 March 2017 - 17 March 2017

[Missions]

1.) Missions are now loaded from files into Unity

2.) Missions now have stats (and the Mission Editor allows stats now.) The stats are shared by missions, ships, and colonists. So this means that colonists technically have a HullDurability stat...maybe good for homosexuals?

3.) Cargo space needed for missions is automatically calculated based on the resources required and the loot produced (the larger of the 2 is used.)

4.) Here is how missions work:

a.) Ships are given missions, when ships are given missions the ships request food and fuel

b.) Missions are "performed" when the player presses the "confirm" button. When this happens the missions automatically distribute the required resources across all ships so that each ship is filled before any resources are given to the next ship.

5.) Ships will always fly away and return to the exact same hangar (because I don't want to implement a UI area for requesting a docking pad right now)

6.) For every required level not met the chance of success drops by deficit^2 * 3

7.) If the fail chance less than 0% it will fallback to .5% (The values were balanced around level 10 being a very high level stat.)

9.) The player can now create mining, exploration, diplomatic, and salvage missions, but they don't really do anything yet (once I implement the solar system things I'll improve the created missions.)

10.) Missions at undiscovered locations will cause that location to become discovered (because some person is sending out the coordinates of where to go.)

11.) The player can now create mining missions and salvage missions. Stations can't be mined, and only stations can be salvaged.

[Mission Window]

1.) My goal was to make it functional--not pretty (I added a mission button to the screen.)

2.) The player can add multiple ships to a mission, but they can't assign extra colonists to each ship (because I ran out of time.)

3.) Ships are BuildableObjects so they have "nameInInterface" and "InterfaceSprite" variables.

[Credits]

1.) Added credits as a resource. It's globally stored, but behaves exactly like a resource, so you can add it wherever you find resources (as created, required, build cost, etc.)

 

 

[Hangar]

1.) You can change the selected ship by purchasing a new one with credits, but there's not much error checking for it. So you could change a ship while it's on a mission, and all the colonists inside will be trapped forever.

2.) The old ship is sold for half the credit cost.

3.) The hangar hides the visual component of all floors beneath it.

 

[Solar System Generation]

1.) Rocky, Gas Giants, Asteroids, Moons, and Stations are now spawned. All of the spawn data is stored in "Constants/solarSystemStats.csv"

2.) The spawn data is: Min spawn, Max spawn, distance from star min/max, names, and descriptions.

3.) Moons spawn at rocky and gas giants (but this is also controlled in the external file.) The global position of the moon is centered around the parent body, rather than the sun.

4.) Names of bodies can never be re-used.

5.) Bodies now have sprites that are randomly selected. These can be re-used.

6.) Added radar dish. It has a .1% chance of discovering a solar system body every tick (when powered.)

7.) Solar system bodies now have resources

27 Feb 2017 - 03 March 2017

[Mission Editor]

1.) Created standalone application for mission editing. Each mission is stored in its own file.

2.) Any c# files within a unity project are considered part of the project, so unity tries to compile them. This means that all of the source files for the application can't be in the unity project. So I'm saving them in the parent folder of the repository, rather than the starmancer folder of the repo.

 

[Misc]

1.) External files can now be formatted with records and subrecords. Records are labeled "[RecordName]" and they end with "[/RecordName]".

20 Feb 2017 - 24 Feb 2017

[Infrastructure UI]

1.) All connective infrastructure objects now have a variable for "Visual Component" that GameObject is enabled / disabled to show and hide the object visually. This was required so that things like animators aren't disabled.

2.) Wires now have an animator variable "hasPower" for when the grid has power.

3.) Airducts now have an animator variable "isLackingOxygen" for when there isn't enough oxygen in the grid.

    4.) Water pipes now have an animator variable "hasCleanWater" and "hasDirtyWater" for whenever there's water in the grid

 

 

[Animations]

1.) Added sleepingPosition (it's a gameoject to beds.) This is where colonists go when sleeping. The colonist rotation will be set to the z rotation of the object.

2.) Colonists now visually sleep in beds.

3.) Added SeatedObject_GameObject to standardize when colonists are placed on objects (like beds, toilets, chairs.) All objects deriving from this will have a "seated position" gameobject that can be put where-ever. And colonist rotation will be set to the Y rotation of the object (actually it will be set to -yRotation - 90)

4.) Added position offset to the Automatic sorting order script so that objects can easily render behind other objects (like a chair rendering behind a colonist)

5.) Adjusted position of cafeteria chair so that colonists will now visually sit at them.

6.) The death animation is now played when colonists die, but it's not positioned properly yet.

7.) Mechanics will play the kneeling animation when maintaining and repairing objects (there's also the manual animations on all breakable objects that we can use to play whatever we want.)

8.) The pivot positions of some objects will need to be adjusted. Specifically the toilet, (maybe the chair), and bed. So that the colonists don't visually move when the camera is panned around (not rotated, just moved)

9.) You can now toggle animations in the ShowFloor scene. If you press an animation button, and then press another other, the first button will think that it's still on, so you'll have to press it twice.

 

 

[Misc]

1.) Resized colonists from 75,75,75 to 85,85,85.

2.) Added a Custom Property Drawer for sprites, so that there's now a preview image displayed for Hybrid Sprites

3.) Floors can now be built without being connected to other floors.

4.) Improved some resource transfer ticket things (that I had forgotten to reimplement)

A.) Resource transfer tickets are now refreshed every time a new object is built.

B.) Colonists can no longer accept resource transfer tickets if they can't travel to them.

5.) Added build grid back.

6.) Colonist states are now automatically requeued upon fail after a certain delay (if they're supposed to be requeued.) This standardizes the process and should prevent instances of colonists repeating the same failing state over and over again.

7.) Colonists are now required to replace an existing floor with something new. I tried doing this with walls, but I'm not sure how to handle travelling to corner pieces (actually I just don't feel like adjusting the pathfinding right now.) So I'll put it on the bucket list.

8.) Added access positions to the bed so that only 1 tile of the bed needs to be exposed to an empty tile.

9.) Showfloor colonists will now automatically change their scale to match the scale of the actual colonist prefab

10.) Adjusted positions of all carryable objects.

[Bug]

1.) Colonists will no longer refresh their interactions with other colonists when they're dead.

2.) Fixed a bug where body bags weren't assigned a colonist when a colonist abandoned them, this caused colonists to see dead colonists long after they were incinerated.

3.) Colonists now remove all vertices in their current floor that aren't between their current position and the next floor (so colonists should be able to walk to doors appropriately when colonists stop at a floor with a door.)

4.) Objects can no longer be selected if any TileCursors are active (which would be building, deleting, etc.)

5.) The build cost of the Refinery wasn't being delivered because the max resource in the refinery's meta data was 100. So I changed the default max resource of all objects to 10,000 (this won't affect existing objects.)

6.) Fixed a bug where objects didn't calculate their parent floors until construction was complete, which would cause a null reference exception when delivering build costs.

7.) You can delete objects under construction instantly now (once all the construction cost resources are offloaded.)

8.) Fixed a bug where AI states didn't call "OnStateFinished" when they started as actions.