private TaskState Pickup(Dwarf d, float dt, double dtd)
        {
            WorldObject obj = d.GetActionPasture().WithdrawWorldObject(d.GetActionWorldObject());
            d.CarryWorldObject(obj);

            return TaskState.Success;
        }
예제 #2
0
        private TaskState Harvest(Dwarf d, float dt, double dtd)
        {
            d.DidSomeFarming(dt);

            CropBase crop = (CropBase)d.GetActionWorldObject();
            d.CarryWorldObject(crop.TakeHarvest());

            return TaskState.Success;
        }
예제 #3
0
        private TaskState Pickup(Dwarf d, float dt, double dtd)
        {
            WorldObject me = d.GetActionWorldObject();

            //if ((int)d.Position.X != me.Position.X || (int)d.Position.Y != me.Position.Y)
            //    throw new Exception("Dwarf not in place");
            Console.WriteLine("Pickup: " + d.Id + " - " + d.GetActionWorldObject().Position.X + ", " + d.GetActionWorldObject().Position.Y);
            d.GetActionMapElement().RemoveFromMap();
            d.CarryWorldObject(d.GetActionWorldObject());
            return TaskState.Success;
        }
 private TaskState Pickup(Dwarf d, float dt, double dtd)
 {
     if (d.GetActionbuilding().GetCraftSlot() == null)
     {
         return TaskState.Absolete;
         throw new Exception("If this happes, it might be a bug. If it happens very rarely, just make the task fail. It might fail infinently.. That might be a problem");
     }
     WorldObject m = d.GetActionbuilding().TakeCraftSlot();
     d.CarryWorldObject(m);
     return TaskState.Success;
 }
예제 #5
0
        private TaskState Pickup(Dwarf d, float dt, double dtd)
        {
            WorldObject tool = d.GetActionWorldObject();

            d.GetActionbuilding().WithdrawWorldObject(tool);

            //if (WorldMap.Instance.GetDeposWithTool().Count == 0)
            //    return TaskState.PersonalFail;
            //else
            //    return TaskState.PersonalFailTryBehaviorAgain;

            d.CarryWorldObject(tool);

            return TaskState.Success;
        }
예제 #6
0
        private TaskState Pickup(Dwarf d, float dt, double dtd)
        {
            WorldObject food = d.GetActionWorldObject();

            d.GetActionbuilding().WithdrawWorldObject(food);

            //if (food == null)
            //{
            //    if (WorldMap.Instance.GetDeposWithFood().Count == 0)
            //        return TaskState.PersonalFail;
            //    return TaskState.PersonalFailTryBehaviorAgain;
            //}

            d.CarryWorldObject(food);

            return TaskState.Success;
        }
        private TaskState Pickup(Dwarf d, float dt, double dtd)
        {
            WorldObject m = d.GetActionbuilding().WithdrawWorldObject(d.GetActionMapElementType(), d.GetActionLevel());

            if (m == null)
                return TaskState.Fail;

            if (m.RegisteredForConsumption == true)
            {
                //throw new Exception("");
            }

            if (m.ElementType == MapElementType.Plank)
                DwarfDebugInfo.PlanksPickedUp++;

            d.CarryWorldObject(m);
            d.SetActionBuilding(d.GetPrevActionBuilding());
            return TaskState.Success;
        }