public void interact(InteractiveObject other, ApplicationModel a) { if (other == null) { if (name == "Sword" || name == "Shovel" || name == "Torch" || name == "Rope" || name == "Key") { a.msgManager.Feedback("You got the " + name + "!", 3); a.DestroyObject(this); a.Take(this); } else if (name == "Coal") { a.msgManager.Feedback("You got a chunk of coal!", 3); a.UseObject(this); a.Take(this); } else if (name == "Egg") { a.msgManager.Feedback("You found an ornate jeweled egg!", 5); a.DestroyObject(this); a.Take(this); } else if (name == "Scarab") { a.msgManager.Feedback("You found a scarab!", 5); a.DestroyObject(this); a.Take(this); } else if (name == "Pouch") { a.msgManager.Feedback("You got a pouch full of coins!", 5); a.DestroyObject(this); a.Take(this); } else if (name == "Painting") { a.msgManager.Feedback("You got a valuable painting!", 5); a.DestroyObject(this); a.Take(this); } else if (name == "Chest") { a.msgManager.Feedback("You found a treasure chest!", 5); a.DestroyObject(this); a.Take(this); } else if (name == "Trident") { a.msgManager.Feedback("You found a crystal trident!", 5); a.DestroyObject(this); a.Take(this); } else if (name == "Figurine") { a.msgManager.Feedback("You found an intricately carved figurine!", 5); a.DestroyObject(this); a.Take(this); } else if (name == "Platinum") { a.msgManager.Feedback("Wow! It's a solid bar of platinum!", 5); a.DestroyObject(this); a.Take(this); } else if (name == "Sceptor") { a.msgManager.Feedback("You found a sceptor!", 5); a.DestroyObject(this); a.Take(this); } else if (name == "Coffin") { a.msgManager.Feedback("You found a gold coffin!", 5); a.DestroyObject(this); a.Take(this); } else if (name == "TrapDoor") { a.msgManager.Feedback("It's locked! You will need a key...", 3); } else if (name == "Rug") { a.msgManager.Feedback("It's too heavy...", 3); } else if (name == "Tree") { GameDataManager.gameData.spawnPosition = new Vector3(-1.3f, -2.7f, 3.4f); GameDataManager.gameData.spawnDirection = new Vector3(37.7f, 195.4f, 0f); GameDataManager.gameData.loadState = GameData.LoadState.Portal; GameDataManager.gameData.level = "level7"; SceneManager.LoadScene("level7"); } else if (name == "Ice") { a.msgManager.Feedback("This ice is brittle...", 3); } else if (name == "Sign") { a.msgManager.Feedback("Welcome to the maze of twisty little passageways!", 3); } else if (name == "Bolt") { a.msgManager.Feedback("You cannot turn the bolt with your bare hands!", 1); } else if (name == "Water") { a.msgManager.Feedback("Actually, you can't swim.", 1); } else if (name == "Toolbox") { a.msgManager.Feedback("You found a wrench in the toolbox!", 3); a.UseObject(this); a.Take(GameDataManager.objects ["Wrench"]); } else if (name == "Sand") { a.msgManager.Feedback("You see a pile of soft sand here.", 1); } else if (name == "Machine") { a.msgManager.Feedback("The machine has an input slot and a label: 'Pressure-O-Matic 6000'", 3); } else if (name == "Handle") { a.msgManager.Feedback("It looks like you could tie something to this handle...", 3); } else if (name == "HangingRope") { GameDataManager.gameData.spawnPosition = new Vector3(-2.2f, -20.4f, -0.2f); GameDataManager.gameData.spawnDirection = new Vector3(287.5f, 83.8f, 0f); GameDataManager.gameData.loadState = GameData.LoadState.Portal; GameDataManager.gameData.level = "level21"; SceneManager.LoadScene("level21"); } else if (name == "Trophy Case") { if (GameDataManager.gameData.treasures.Count < 11) { a.msgManager.Feedback("You need " + (11 - GameDataManager.gameData.treasures.Count) + " more treasures.", 1); } else { a.Win(); } } } else if (other.name == "Torch" && name == "Rug") { a.msgManager.Feedback("The rug burns away, revealing a passageway underneath!", 3); a.DestroyObject(this); } else if (other.name == "Sword" && name == "Ice") { a.msgManager.Feedback("The ice breaks!", 3); a.DestroyObject(this); } else if (other.name == "Key" && name == "TrapDoor") { a.msgManager.Feedback("You unlock the trapdoor.", 3); a.DestroyObject(this); } else if (other.name == "Wrench" && name == "Bolt") { a.msgManager.Feedback("You turn the bolt!", 3); a.UseObject(this); a.DestroyObject("Water"); } else if (other.name == "Shovel" && name == "Sand") { a.msgManager.Feedback("You dig up a chest!", 3); a.UseObject(this); a.RevealObject(GameDataManager.objects ["Chest"]); } else if (other.name == "Coal" && name == "Machine") { a.msgManager.Feedback("You insert the coal and it comes out as diamond!", 5); a.Take(GameDataManager.objects ["Diamond"]); a.invManager.RemoveObject(other); } else if (other.name == "Rope" && name == "Handle") { a.msgManager.Feedback("You tie the rope to the handle. It looks like you can climb down now!", 3); a.invManager.RemoveObject(other); foreach (var o in GameObject.FindGameObjectsWithTag(name)) { o.GetComponent <MeshRenderer> ().enabled = true; o.tag = "HangingRope"; a.SetViewing("HangingRope", true); } } else if (other.name == "Sword") { a.msgManager.Feedback("Violence is not the answer here.", 1); } else { a.msgManager.Feedback("Using the " + other.name + " on the " + name + " seems to have no effect", 1); } }