//Fazer Decompose public override void ApplyActionEffects(WorldModelDST worldModel) { worldModel.Cycle += this.Duration; if (worldModel.Cycle > Convert.ToSingle(15 - (worldModel.CycleInfo[2] + worldModel.CycleInfo[1])) && worldModel.Possesses("torch")) { ActionDST action = new Equip("torch"); worldModel.AddAction(action); } if (this.Target == "berries") { worldModel.RemoveFromPossessedItems("berries", 1); worldModel.DecreaseHunger(9); if (!worldModel.Possesses("berries")) { worldModel.RemoveAction("Eat_berries"); } } else if (this.Target == "carrot") { worldModel.RemoveFromPossessedItems("carrot", 1); worldModel.DecreaseHunger(13); worldModel.IncreaseHP(1); if (!worldModel.Possesses("carrot")) { worldModel.RemoveAction("Eat_carrot"); } } }
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"); } } }
//Fazer Decompose public override void ApplyActionEffects(WorldModelDST worldModel) { worldModel.Cycle += this.Duration; worldModel.RemoveFromPossessedItems(this.InvObject, 1); if (!worldModel.Possesses(this.InvObject)) { worldModel.RemoveAction("Drop_" + this.InvObject); } worldModel.AddToWorld(this.InvObject, this.Quantity, this.Position.Item1, this.Position.Item2); }
public override void ApplyActionEffects(WorldModelDST worldModel) { worldModel.Cycle += this.Duration; if (FoodConverter.ContainsKey(this.InvObject)) { worldModel.RemoveFromPossessedItems(this.InvObject, 1); worldModel.AddToPossessedItems(FoodConverter[this.InvObject], 1); if (!worldModel.Possesses(this.InvObject)) { worldModel.RemoveAction(string.Concat("Cook_", this.InvObject)); } } }
public override void ApplyActionEffects(WorldModelDST worldModel) { worldModel.Cycle += this.Duration; if (this.Target == "torch") { worldModel.RemoveFromPossessedItems("torch", 1); worldModel.AddToEquipped("torch"); ActionDST action = new Unequip("torch"); worldModel.AddAction(action); if (!worldModel.Possesses("torch")) { worldModel.RemoveAction("Equip_torch"); } } }
//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); } } }
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); } }
public override void ApplyActionEffects(WorldModelDST worldModel) { worldModel.Cycle += this.Duration; if (this.Target == "torch") { worldModel.RemoveFromPossessedItems("twigs", 2); worldModel.RemoveFromPossessedItems("cutgrass", 2); worldModel.AddToPossessedItems("torch", 1); if (!worldModel.Possesses("twigs", 2)) { worldModel.RemoveAction("Build_pickaxe"); } if (!worldModel.Possesses("twigs", 1)) { worldModel.RemoveAction("Build_axe"); } if (!worldModel.Possesses("twigs", 2) || !worldModel.Possesses("cutgrass", 2)) { worldModel.RemoveAction("Build_torch"); } if (worldModel.EquippedItems.Count == 0) { ActionDST action = new Unequip("torch"); worldModel.AddAction(action); } } else if (this.Target == "pickaxe") { worldModel.RemoveFromPossessedItems("twigs", 2); worldModel.RemoveFromPossessedItems("flint", 2); worldModel.AddToPossessedItems("pickaxe", 1); if (!worldModel.Possesses("twigs", 2) || !worldModel.Possesses("flint", 2)) { worldModel.RemoveAction("Build_pickaxe"); } if (!worldModel.Possesses("twigs", 1) || !worldModel.Possesses("flint", 1)) { worldModel.RemoveAction("Build_axe"); } if (!worldModel.Possesses("twigs", 2)) { worldModel.RemoveAction("Build_torch"); } } else if (this.Target == "axe") { worldModel.RemoveFromPossessedItems("twigs", 1); worldModel.RemoveFromPossessedItems("flint", 1); worldModel.AddToPossessedItems("axe", 1); if (!worldModel.Possesses("twigs", 2) || !worldModel.Possesses("flint", 2)) { worldModel.RemoveAction("Build_pickaxe"); } if (!worldModel.Possesses("twigs", 1) || !worldModel.Possesses("flint", 1)) { worldModel.RemoveAction("Build_axe"); } if (!worldModel.Possesses("twigs", 2)) { worldModel.RemoveAction("Build_torch"); } } else if (this.Target == "campfire") { worldModel.RemoveFromPossessedItems("log", 2); worldModel.RemoveFromPossessedItems("cutgrass", 3); worldModel.AddToWorld("campfire", 1, worldModel.Walter.Position.Item1, worldModel.Walter.Position.Item2); worldModel.AddToFire("campfire", worldModel.Walter.Position.Item1, worldModel.Walter.Position.Item2); if (!worldModel.Possesses("log", 2)) { worldModel.RemoveAction("Build_firepit"); } if (!worldModel.Possesses("log", 2) || !worldModel.Possesses("cutgrass", 3)) { worldModel.RemoveAction("Build_campfire"); } if (!worldModel.Possesses("cutgrass", 2)) { worldModel.RemoveAction("Build_torch"); } } else if (this.Target == "firepit") { worldModel.RemoveFromPossessedItems("log", 2); worldModel.RemoveFromPossessedItems("rocks", 12); worldModel.AddToWorld("firepit", 1, worldModel.Walter.Position.Item1, worldModel.Walter.Position.Item2); worldModel.AddToFire("firepit", worldModel.Walter.Position.Item1, worldModel.Walter.Position.Item2); if (!worldModel.Possesses("log", 2) || !worldModel.Possesses("rocks", 12)) { worldModel.RemoveAction("Build_firepit"); } if (!worldModel.Possesses("log", 2)) { worldModel.RemoveAction("Build_campfire"); } } }