Exemplo n.º 1
0
        public override void ApplyActionEffects(WorldModelDST worldModel)
        {
            worldModel.Cycle += this.Duration;
            worldModel.IncreaseHunger(1);
            string usedfuel = worldModel.Fuel[0].Item1;

            worldModel.RemoveFromPossessedItems(usedfuel, 1);
            worldModel.RemoveFromFuel(usedfuel);

            worldModel.Walter.Position = worldModel.GetNextPosition(this.Target, "fire");

            ActionDST action;

            if (usedfuel == "twigs")
            {
                if (!worldModel.Possesses("twigs", 2))
                {
                    worldModel.RemoveAction("Build_torch");
                    worldModel.RemoveAction("Build_pickaxe");
                }
                if (!worldModel.Possesses("twigs", 1))
                {
                    worldModel.RemoveAction("Build_axe");
                }
            }
            else if (usedfuel == "log")
            {
                if (!worldModel.Possesses("log", 2))
                {
                    worldModel.RemoveAction("Build_firepit");
                    worldModel.RemoveAction("Build_campfire");
                }
            }
            else if (usedfuel == "cutgrass")
            {
                if (!worldModel.Possesses("cutgrass", 3))
                {
                    worldModel.RemoveAction("Build_campfire");
                }
                if (!worldModel.Possesses("cutgrass", 2))
                {
                    action = new Build("torch");
                    worldModel.RemoveAction("Build_torch");
                }
            }
        }