Exemple #1
0
        public override void ApplyActionEffects(WorldModelDST worldModel)
        {
            worldModel.Cycle += this.Duration;
            worldModel.IncreaseHunger(2);

            worldModel.Walter.Position = worldModel.GetNextPosition(this.Target, "fire");
        }
Exemple #2
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");
                }
            }
        }
Exemple #3
0
        //Fazer Decompose

        public override void ApplyActionEffects(WorldModelDST worldModel)
        {
            worldModel.Cycle += this.Duration;

            //<OPTIMIZATION - Dict instead of chained if's>
            if (FoodIndex.ContainsKey(this.Target))
            {
                worldModel.RemoveFromPossessedItems(this.Target, 1);

                int[] foodValues = FoodIndex[this.Target];
                int   HungerVal  = foodValues[0];

                if (HungerVal > 0)
                {
                    worldModel.DecreaseHunger(foodValues[0]);
                }
                else if (HungerVal < 0)
                {
                    worldModel.IncreaseHunger(Math.Abs(foodValues[0]));
                }

                if (foodValues.Length > 1)
                {
                    int HPVal = foodValues[1];
                    if (HPVal > 0)
                    {
                        worldModel.IncreaseHP(foodValues[1]);
                    }
                    else if (HPVal < 0)
                    {
                        worldModel.DecreaseHP(Math.Abs(foodValues[1]));
                    }
                }

                if (!worldModel.Possesses(this.Target))
                {
                    worldModel.RemoveAction("Eat_" + this.Target);
                }
            }
        }
Exemple #4
0
 public override void ApplyActionEffects(WorldModelDST worldModel)
 {
     worldModel.Cycle += this.Duration;
     worldModel.IncreaseHunger(1);
 }
Exemple #5
0
        public override void ApplyActionEffects(WorldModelDST worldModel)
        {
            worldModel.Cycle += this.Duration;
            worldModel.IncreaseHunger(1);

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

            if (this.Target == "tree")
            {
                worldModel.RemoveFromWorld("tree", 1);
                worldModel.AddToPossessedItems("log", 1);
                worldModel.AddToFuel("log", 1);

                ActionDST action;
                if (worldModel.Possesses("rocks", 12))
                {
                    action = new Build("firepit");
                    worldModel.AddAction(action);
                }
                if (worldModel.Possesses("cutgrass", 3))
                {
                    action = new Build("campfire");
                    worldModel.AddAction(action);
                }
            }
            else if (this.Target == "boulder")
            {
                worldModel.RemoveFromWorld("boulder", 1);
                worldModel.AddToPossessedItems("rocks", 2);
                worldModel.AddToPossessedItems("flint", 1);

                ActionDST action;
                if (worldModel.Possesses("log", 2) && worldModel.Possesses("rocks", 12))
                {
                    action = new Build("firepit");
                    worldModel.AddAction(action);
                }
                if (worldModel.Possesses("twigs", 1))
                {
                    action = new Build("axe");
                    worldModel.AddAction(action);
                }
                if (worldModel.Possesses("twigs", 2) && worldModel.Possesses("flint", 2))
                {
                    action = new Build("pickaxe");
                    worldModel.AddAction(action);
                }
            }
            else if (this.Target == "log")
            {
                worldModel.RemoveFromWorld("log", 1);
                worldModel.AddToPossessedItems("log", 1);
                worldModel.AddToFuel("log", 1);

                ActionDST action;
                if (worldModel.Possesses("log", 2) && worldModel.Possesses("cutgrass", 2))
                {
                    action = new Build("campfire");
                    worldModel.AddAction(action);
                }
                if (worldModel.Possesses("log", 2) && worldModel.Possesses("rocks", 12))
                {
                    action = new Build("firepit");
                    worldModel.AddAction(action);
                }
            }
            else if (this.Target == "twigs")
            {
                worldModel.RemoveFromWorld("twigs", 1);
                worldModel.AddToPossessedItems("twigs", 1);
                worldModel.AddToFuel("twigs", 1);

                ActionDST action;
                if (worldModel.Possesses("flint", 1))
                {
                    action = new Build("axe");
                    worldModel.AddAction(action);
                }
                if (worldModel.Possesses("flint", 2) && worldModel.Possesses("twigs", 2))
                {
                    action = new Build("pickaxe");
                    worldModel.AddAction(action);
                }
            }
            else if (this.Target == "sapling")
            {
                worldModel.RemoveFromWorld("sapling", 1);
                worldModel.AddToPossessedItems("twigs", 1);
                worldModel.AddToFuel("twigs", 1);

                ActionDST action;
                if (worldModel.Possesses("flint", 1))
                {
                    action = new Build("axe");
                    worldModel.AddAction(action);
                }
                if (worldModel.Possesses("flint", 2) && worldModel.Possesses("twigs", 2))
                {
                    action = new Build("pickaxe");
                    worldModel.AddAction(action);
                }
            }
            else if (this.Target == "flint")
            {
                worldModel.RemoveFromWorld("flint", 1);
                worldModel.AddToPossessedItems("flint", 1);

                ActionDST action;
                if (worldModel.Possesses("twigs", 1))
                {
                    action = new Build("axe");
                    worldModel.AddAction(action);
                }
                if (worldModel.Possesses("twigs", 2) && worldModel.Possesses("flint", 2))
                {
                    action = new Build("pickaxe");
                    worldModel.AddAction(action);
                }
            }
            else if (this.Target == "cutgrass")
            {
                worldModel.RemoveFromWorld("cutgrass", 1);
                worldModel.AddToPossessedItems("cutgrass", 1);
                worldModel.AddToFuel("cutgrass", 1);

                ActionDST action;
                if (worldModel.Possesses("cutgrass", 3) && worldModel.Possesses("log", 2))
                {
                    action = new Build("campfire");
                    worldModel.AddAction(action);
                }
                if (worldModel.Possesses("cutgrass", 2) && worldModel.Possesses("twigs", 2))
                {
                    action = new Build("torch");
                    worldModel.AddAction(action);
                }
            }
            else if (this.Target == "grass")
            {
                worldModel.RemoveFromWorld("grass", 1);
                worldModel.AddToPossessedItems("cutgrass", 1);
                worldModel.AddToFuel("cutgrass", 1);

                ActionDST action;
                if (worldModel.Possesses("cutgrass", 3) && worldModel.Possesses("log", 2))
                {
                    action = new Build("campfire");
                    worldModel.AddAction(action);
                }
                if (worldModel.Possesses("cutgrass", 2) && worldModel.Possesses("twigs", 2))
                {
                    action = new Build("torch");
                    worldModel.AddAction(action);
                }
            }
            else if (this.Target == "rocks")
            {
                worldModel.RemoveFromWorld("rocks", 1);
                worldModel.AddToPossessedItems("rocks", 1);

                ActionDST action;
                if (worldModel.Possesses("log", 2) && worldModel.Possesses("rocks", 12))
                {
                    action = new Build("firepit");
                    worldModel.AddAction(action);
                }
            }
            else if (this.Target == "berrybush")
            {
                worldModel.RemoveFromWorld("berrybush", 1);
                worldModel.AddToPossessedItems("berries", 2);

                ActionDST action = new Eat("berries");
                worldModel.AddAction(action);
            }
            else if (this.Target == "carrot" || this.Target == "carrot_planted")
            {
                worldModel.RemoveFromWorld("carrot", 1);
                worldModel.AddToPossessedItems("carrot", 1);

                ActionDST action = new Eat("carrot");
                worldModel.AddAction(action);
            }
            else if (this.Target == "berries")
            {
                worldModel.RemoveFromWorld("berries", 1);
                worldModel.AddToPossessedItems("berries", 1);

                ActionDST action = new Eat("berries");
                worldModel.AddAction(action);
            }
        }