Closed plasticware closed 7 years ago
when placing objects, can place more only based on current stockpile inventory, not taking into account materials consumed by other placements - for example, with the starting 8 iron, build an anvil. while first one is being built and 4 iron remain in stockpile, can assign many more build orders
Not sure this is a bug, more just a confusing feature. You're supposed to be able to queue up construction tasks. I think the real bug is that any building can be "disabled" because of lack of resources at all.
rounding error: fire two dwarves so you have 3, then build a stockpile, awarding $20. you actually get $20.01.
Lol each dwarf gets $6.66, but that should come out to $19.98. I think what's really going on is the money is getting cast to a float, redivided and then cast to an int again.
increase water evaporation rate - rain kills the framerate and basically never recovers
Actually evaporation was disabled entirely. Re-enabled on my branch; probably needs tweaks.
super nitpicky, but loading screen doesn't seem to be exactly 2x scale - take a screenshot and zoom in. pixels are 2x2, 2x3, 3x3.
The loading screen minigame is a pile of garbage. I hacked it together one evening while in the hospital (no joke). Going to rewrite or remove it.
don't make 'paused' text block mouse? i feel like i should be able to click on things behind it. same for stockpile inventory at top of screen, possibly other gui widgets as well - anything that doesn't have a solid tray should not block clicks
This is actually trickier than it appears as making them transparent to clicks is at odds with having them show tooltips on mouse hover. Could possibly alphamask them but that is expensive. Might need a new type of behavior that lets clicks through but still shows tooltips, but that could be equally strange.
Alternatively we can move the "Paused" display elsewhere or draw it not as a widget.
craftsdwarf autonomously queues up many craft tasks, sometimes prioritized over player-assigned tasks - make them only queue up one at a time at most
Believe I got this one. The tasks are queued when the dwarf has no active task - prevented them from being added when the dwarf has assigned incomplete tasks.
Got a bunch more this weekend on my branch. More to come later.
I'm working on the gui click through this week.
@Blecki I have fixed that already with a hack. Just set the size to (0, 0)
Do tooltips still work for the resources?
loading crash in deserialize: fileutils.cs line 153, "Error converting value "{Min:{X:727.25 Y:21 Z:783.25} Max:{X:729.75 Y:23.75 Z:785.75}}" to type 'System.Nullable`1[Microsoft.Xna.Framework.BoundingBox]'. Path
Okay, this is caused by wrangling. I will convert that from type Nullable to a boundingbox + bool struct.
grammar: "will wrangle this a bird"
The GUI is just Italian. I don't see a problem here.
building blocks count in tray icons: new double counting issue, since blocks are subtracted when designated with tool and then again when materials are taken out of the stockpile
Problem is caused by not counting dwarf inventory as part of resources. Very difficult to solve correctly...
Fixed the wrangling grammar and deserialize crash
Almost all of these done now. Snow melting -- that would require a heat system, something I would love to implement but would take a lot of time. Another hack might be to create entities which melt new snow generated by snowflakes.
Object placement -- still not sure if I want to do this. Maybe I will actually mirror the block placement system instead and just show the number that can be built with the current resources rather than disallowing placement.
Could put an automatic melting that is ~= to the rate snow falls in that area. That would provide a reason for the extra complication of snow melt runoff and creating rivers flowing down to the low areas and lakes. :)
Seasons would allow for snow across a wider range of the map but would also bring in the complications of growing seasons.
craftsdwarf keeps trying to craft things when there aren't enough resources - task should be cancelled after assigning crafter multiple items (e.g. craft 10 trinkets), the crafter will autonomously craft 10 when idle - should only craft 1x
Fixed in my branch.
can no longer click-drag for planting - one dwarf will plant one thing, then stop. while planting, all other plant orders are ignored.
It looks like it takes a few seconds for dwarves to release the farm times. Still trying to understand why this is the case.
Didn't know if this should be a new thread or lumped with this one. It goes to one that is checked, sooo been fixed?
bring back old system of having global pool of tasks, rather than assigning tasks to dwarves immediately, or at least consider dwarves' existing assigned tasks?
New game, selected everyone so they would stay bussy abit. Ordered some trees cut down, an area to be mined and an are to till. Axe guy should have gone to trees and then helped with tilling when done. Miners should have started digging, then helped with tilling if work left to do. Instead, everyone that can cut trees ran off to the trees, then started tilling while the axedrawf stood around. Then the craftdrawf stood around waiting for stone while the miners went to mine. Then 2 trade groups came but I had nothing to sell because which jobs they picked.
We've been discussing switching back to the 'pool of tasks' model but it's not going to happen before the next release.
I don't know if it would help much in this situation - when you issue the first chop command, there's not mine commands to take preference for the miners, so even using a task pool they are going to go chop down the tree first. We would have to allow new tasks to preempt active tasks, which brings a whole new set of issues with it. It would, however, mean that after chopping, the miners go to mine instead of till.
I set up all the orders in pause, so no one started anything until all orders were given. Another issue with the current system is hiring another dwarf, they won't start helping with current task until you go through and repeat the orders for them.
Also, When all the dwarfs went to tilling I selected 1 and cancelled some of the tilling to get him to go start mining, but it cancelled for everyone. So it's kind of a hodge podge mix of pool orders and direct orders now kinda messed up for ether.
Some things (tilling, mining, planting, chopping) are pooled. Others (crafting) are not. We definitely should think about this system. Even when the game is paused all orders get assigned immediately, so that's why all the dwarves did things in that order. I will make a new issue for this.
I'll be working on the task input interface once the pool model is restored. I'll likely work on the task assignment algorithm as well.
When Dwarfs have nothing to do, they seen to just stand around where ever the last job was or at the storage area after dropping off stuff. So you have to hunt them down to see what they are upto and they can be hard to see when hiding in the crates. Most DF type games have some area that can be set as an idle point. A place to go when they have nothing to do.
Dwarves currently will go to places where there are chairs to gather. Could also make them gather in other places.
Fixed the farming issue @plasticware
@plasticware fixed the crafting issue and notify users that dwarf can't craft it. Fixing the building issue will require a little more finesse but I think I can do it (basically the build task should always be retried until explicitly cancelled)
placed more beds than i could build, then chopped down tree to gather more wood, but craftsdwarf does not retry task. i think in this case, craftsdwarf should reattempt, since construction pile does not go away.
I can't seem to reproduce this. Looking at the code, the dwarf should be retrying (and does). I wonder if something else causes the task to get deleted.
Ah, I CAN reproduce it! It's caused by the dwarf thinking that there are available reasources because they are in another dwarf's inventory. This is tricky. I think I will remove the counting resources from within dwarf inventory because it appears to cause more trouble than its worth.
@plasticware okay this fixes the crafting object bug https://github.com/CompletelyFairGames/dwarfcorp/commit/307d1b3edef7ef3409cc5ff9ff96dfc80b667273
@plasticware I believe this fixes the farming bug https://github.com/CompletelyFairGames/dwarfcorp/commit/b2590f8439e93f42104aa442a82ff9118bc218b4
@plasticware
multi-tile planting does not immediately reserve all tiles, allowing more than one thing to be planted on tiles. with starting four workers, plant on 3x3 area - only four tiles are reserved, and can keep issuing more plant orders on the other assigned tiles. - not fixed in 7d6092a
While it appears like you're assigning plant orders, they immediately get rejected. The dwarf doesn't attempt to plant there because it is invalid. The tiles don't get reserved until a dwarf is moving toward the tile to farm it. I guess I could reserve them when the task gets assigned but there's no mechanism for doing something on task assignment atm.
purple screen on dwarfrunner screen, then black screen, then crash Minimap.cs line 184 cameraToTarget.Normalize(); {"Begin cannot be called again until End has been successfully called."}
Duplicate of the purple screen of death bug. It's tricky because somewhere, somehow the spritebatch is getting used in a thread which will randomly cause this error in random parts of the code.
@plasticware fixed crafting bug with this commit https://github.com/CompletelyFairGames/dwarfcorp/commit/aa86761e50de029675ed93d0278d2afba02864f2
dwarves hanging onto side of stockpiles fixed by this https://github.com/CompletelyFairGames/dwarfcorp/commit/8d00ca28bd59ce2d6f2386b45b7160af595ca4b4
Fixed the craft rotations being misleading but this:
ladders can be rotated in tile adjacent to wall so that they float in midair - after placing a ladder this way, subsequent ladders will not automatically rotate to face walls.
Is a "wontfix" because its a feature, not a bug. Once you rotate an object, subsequent placements will have the same rotation. This is to allow you to quickly line up rows of objects. If you want a ladder floating in midair, why not? It's still technically attached to the wall.
Fixed some of the other issues here. Thanks so much for all this comprehensive testing.
Multi-tile planting fixed. Can't reproduce wrangle bug.
another crash, after a few in-game days. just before this crash occurred, i also lost the ability to select objects (couldn't gather eggs or harvest plants), but that's probably a separate issue.
System.NullReferenceException was unhandled _HResult=-2147467261 _message=Object reference not set to an instance of an object. HResult=-2147467261 IsTransient=false Message=Object reference not set to an instance of an object. Source=DwarfCorp StackTrace: at DwarfCorp.GeometricPrimitive.Render(GraphicsDevice device) in c:\Users\W\Desktop\dwarfcorp\DwarfCorp\DwarfCorpXNA\Graphics\Primitives\GeometricPrimitive.cs:line 132 at DwarfCorp.WaterRenderer.DrawWaterFlat(GraphicsDevice device, Matrix view, Matrix projection, Shader effect, ChunkManager chunks) in c:\Users\W\Desktop\dwarfcorp\DwarfCorp\DwarfCorpXNA\Graphics\Effects\WaterRenderer.cs:line 213 at DwarfCorp.Gui.Widgets.MinimapRenderer.PreRender(DwarfTime time, SpriteBatch sprites) in c:\Users\W\Desktop\dwarfcorp\DwarfCorp\DwarfCorpXNA\Gui\Widgets\Minimap.cs:line 184 at DwarfCorp.GameStates.PlayState.Render(DwarfTime gameTime) in c:\Users\W\Desktop\dwarfcorp\DwarfCorp\DwarfCorpXNA\GameStates\PlayState.cs:line 354 at DwarfCorp.GameStates.GameStateManager.Render(DwarfTime time) in c:\Users\W\Desktop\dwarfcorp\DwarfCorp\DwarfCorpXNA\GameStates\GameStateManager.cs:line 149 at DwarfCorp.DwarfGame.Draw(GameTime time) in c:\Users\W\Desktop\dwarfcorp\DwarfCorp\DwarfCorpXNA\DwarfGame.cs:line 339 at Microsoft.Xna.Framework.Game.DrawFrame() at Microsoft.Xna.Framework.Game.Tick() at Microsoft.Xna.Framework.Game.HostIdle(Object sender, EventArgs e) at Microsoft.Xna.Framework.GameHost.OnIdle() at Microsoft.Xna.Framework.WindowsGameHost.RunOneFrame() at Microsoft.Xna.Framework.WindowsGameHost.ApplicationIdle(Object sender, EventArgs e) at System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FDoIdle(Int32 grfidlef) at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.Run(Form mainForm) at Microsoft.Xna.Framework.WindowsGameHost.Run() at Microsoft.Xna.Framework.Game.RunGame(Boolean useBlockingRun) at DwarfCorp.Program.Main(String[] args) in c:\Users\W\Desktop\dwarfcorp\DwarfCorp\DwarfCorpXNA\Program.cs:line 71 InnerException:
I think I got this crash; but just in case, I also made the water renderer eat all exceptions. Worse case, the water doesn't show up in the minimap for a frame or two - much better than crashing.
I thought I fixed that one :(
@Blecki that VertexLock
is protecting the vertex buffer from being changed by an outside thread (for example by the chunks rebuilding or water rebuilding)
I already fixed it. The chunk rebuild no longer requires it, see my addition to liquid primitive. It's the only primitive that gets rebuilt in place so it's the only one that needs to be locked.
bugs:
when placing objects, can place more only based on current stockpile inventory, not taking into account materials consumed by other placements - for example, with the starting 8 iron, build an anvil. while first one is being built and 4 iron remain in stockpile, can assign many more build ordersworking as intended7abdc1e in mklingen_dev:
cc30142 in master:
[x] tried crafting more trinkets than i had resources for: craftsdwarf retries task and continues crafting indefinitely when more resources are provided. also, the trinkets created do not show up in stockpile inventory at top of screen - in fact, the counts for crafts can randomly go up and down. to reproduce: new game, build anvil, craft 5 iron trinkets. after crafting the first one, craftsdwarf stands around in stockpile because there's only 1 iron left. spawn more with god tool, gather, and watch inventory at top of screen. maybe just cancel craft orders when there aren't enough resources, and give a notification for the player?
[x] placed more beds than i could build, then chopped down tree to gather more wood, but craftsdwarf does not retry task. i think in this case, craftsdwarf should reattempt, since construction pile does not go away.
[x] dwarves will reserve tilled tiles and try to plant things in other dwarves' inventories, causing the task to never be finished. mining the tile and replacing it does not free it.
[x] also, mining tilled soil does not drop anything
[x] entering/exiting god mode tool should revert cursor
[x] only happens sometimes, hard to reproduce - have two animal pens, wrangle two of one kind of animal, then one of another, before any animals are put into pens. the second animal type will say you need more pens, meaning the first two wrangles are each reserving one of the pens, though they're both the same animal.
[x] multi-tile planting does not immediately reserve all tiles, allowing more than one thing to be planted on tiles. with starting four workers, plant on 3x3 area - only four tiles are reserved, and can keep issuing more plant orders on other tiles - not fixed in 7d6092a.
7d6092a: new crash:
bugs:
ladders can be rotated in tile adjacent to wall so that they float in midair - after placing a ladder this way, subsequent ladders will not automatically rotate to face walls.working as intendedfirst steam release:
moved to #359: ~~-some music transition issues - for example, trade envoy arriving at night means night music->faction music->day music. sometimes, music stops altogether. -should probably get rid of god-mode generic items, like spawn "trinket" or "gem-encrusted trinket" or "meal", and have "rand bone" or rand meat" instead of generics. -craftsdwarves like to hang on the edges of blocks to use anvils. possibly other items, too (cooking table, brewing still, etc.). edit: actually, hanging on edges can happen for anything dwarves need to stay still for, including building objects. obviously hanging on walls is needed in some cases (building ladders, for example), but dwarves should prefer to stand on flat ground when possible. -clicking 'continue' from the dialog that pops up on pressing escape always unpauses the game, even if it was paused before pressing escape - game should remember original state when exiting dialog, and maybe change button text to 'back to game'. -can use unpause key while 'escape' dialog is active - unpausing should close the dialog. -apples and berries should probably not stack together in stockpile inventory. -start a new game, pause, then disable and close the tutorial. when unpausing, another tutorial window will open. -possible improvement: since chair's facing is not easy to tell when building, and it does have the minor visual effect of determining which direction dwarves eat food from, add something like an arrow on the ground to show orientation when rendering chair 'blueprints'? -option to cook food with whatever is available, in addition to current system of using specific ingredients? -option to select crafts to encrust by material (wood, stone, iron, etc.) in addition to current system of specific individual trinkets?~~