Example #1
0
            protected override IEnumerable <Task> GetTasks()
            {
                string desc = $"Deconstructing {building.def.name}.";

                yield return(new TaskGoTo(game, desc, PathCfg.Adjacent(building.bounds)));

                yield return(new TaskTimedLambda(
                                 game, desc, MinionAnim.Slash, Tool.Hammer, 2,
                                 TaskTimed.FaceArea(building.bounds),
                                 _ => 1,
                                 null, // TODO: track deconstruct amt
                                 (task) =>
                {
                    BB.Assert(building.tile.building == building);
                    building.jobHandles.Remove(this);
                    game.RemoveBuilding(building);
                    game.DropItems(building.tile, buildable.GetBuildMaterials());
                }));
            }