Exemple #1
0
        public void ParseMap(XmlDocument doc, ref ProgressBarDialog progressBarDialog)
        {
            XmlNodeList xmlnode;

            xmlnode = doc.GetElementsByTagName("level_name");
            GameEngine.levelName = xmlnode[0].InnerText;

            xmlnode = doc.GetElementsByTagName("object");

            progressBarDialog.updateProgressBar(xmlnode.Count, 0);

            for (int i = 0; i < xmlnode.Count; i++)
            {
                string name  = xmlnode[i].ChildNodes.Item(0).InnerText;
                int    xaxis = Convert.ToInt32(xmlnode[i].ChildNodes.Item(1).InnerText);
                int    yaxis = Convert.ToInt32(xmlnode[i].ChildNodes.Item(2).InnerText);
                string speed = xmlnode[i].ChildNodes.Item(3).InnerText;

                switch (name)
                {
                case "missilelauncher":
                    Missilelauncher missilelauncher = new Missilelauncher(xaxis, yaxis);
                    gameEngine.level.parsedList.Add(missilelauncher);
                    Console.WriteLine("Missilelauncher added to list.");
                    break;

                case "tree":
                    Tree tree = new Tree(xaxis, yaxis);
                    gameEngine.level.parsedList.Add(tree);
                    Console.WriteLine("Tree added to list.");
                    break;

                case "sandbag":
                    Sandbag sandbag = new Sandbag(xaxis, yaxis);
                    gameEngine.level.parsedList.Add(sandbag);
                    Console.WriteLine("Sandbag added to list.");
                    break;

                case "mine":
                    Mine mine = new Mine(xaxis, yaxis);
                    gameEngine.level.parsedList.Add(mine);
                    Console.WriteLine("Mine added to list.");
                    break;

                case "mud":
                    Mud mud = new Mud(xaxis, yaxis);
                    gameEngine.level.parsedList.Add(mud);
                    Console.WriteLine("Mud added to list.");
                    break;

                case "finish":
                    Finish finish = new Finish(xaxis, yaxis);
                    gameEngine.level.parsedList.Add(finish);
                    Console.WriteLine("Finish added to list.");
                    break;

                default:
                    break;
                }
                progressBarDialog.updateProgressBar(xmlnode.Count, i + 1);
            }
            progressBarDialog.Close();
            foreach (Obstacle obstacle in gameEngine.level.parsedList)
            {
                switch (obstacle.ToString())
                {
                case "WarGame.Model.Mine":
                    gameEngine.level.obstacleList.Add(new Mine(obstacle as Mine));
                    break;

                case "WarGame.Model.Mud":
                    gameEngine.level.obstacleList.Add(new Mud(obstacle as Mud));
                    break;

                case "WarGame.Model.Missilelauncher":
                    gameEngine.level.obstacleList.Add(new Missilelauncher(obstacle as Missilelauncher));
                    break;

                case "WarGame.Model.Tree":
                    gameEngine.level.obstacleList.Add(new Tree(obstacle as Tree));
                    break;

                case "WarGame.Model.Sandbag":
                    gameEngine.level.obstacleList.Add(new Sandbag(obstacle as Sandbag));
                    break;

                case "WarGame.Model.Finish":
                    gameEngine.level.obstacleList.Add(new Finish(obstacle as Finish));
                    break;
                }
            }
            gameEngine.LevelImported = true;
        }
Exemple #2
0
 public override void Initialize()
 {
     if (this.m_actualVisualizationNode && this.m_gridVisualizationNode)
     {
         this.m_gridVisualizationNode.SetActive(false);
         this.m_actualVisualizationNode.SetActive(true);
     }
     this.m_connectedPart = base.contraption.FindPartAt(this.m_coordX, this.m_coordY + 1);
     if (this.m_connectedPart && !this.m_connectedPart.IsPartOfChassis() && this.m_connectedPart.m_partType != BasePart.PartType.Pig)
     {
         this.m_connectedPart = null;
     }
     if (this.m_connectedPart)
     {
         this.m_dropped = false;
         base.contraption.ChangeOneShotPartAmount(BasePart.BaseType(this.m_partType), this.EffectDirection(), 1);
     }
     else
     {
         this.m_dropped        = true;
         base.gameObject.layer = LayerMask.NameToLayer("DroppedSandbag");
     }
     this.m_partType = BasePart.PartType.Sandbag;
     if (this.m_numberOfBalloons > 1)
     {
         GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(base.gameObject);
         gameObject.transform.position = base.transform.position;
         Sandbag component = gameObject.GetComponent <Sandbag>();
         component.m_numberOfBalloons = this.m_numberOfBalloons - 1;
         base.contraption.AddRuntimePart(component);
         gameObject.transform.parent = base.contraption.transform;
     }
     if (!base.gameObject.GetComponent <SphereCollider>())
     {
         SphereCollider sphereCollider = base.gameObject.AddComponent <SphereCollider>();
         sphereCollider.radius = 0.13f;
         sphereCollider.center = new Vector3(0f, -0.1f, 0f);
     }
     if (!base.rigidbody)
     {
         base.rigidbody = base.gameObject.AddComponent <Rigidbody>();
     }
     base.rigidbody.mass        = this.m_mass;
     base.rigidbody.drag        = 1f;
     base.rigidbody.angularDrag = 10f;
     base.rigidbody.constraints = (RigidbodyConstraints)56;
     if (this.m_connectedPart)
     {
         Vector3 position = base.transform.position;
         base.transform.position = this.m_connectedPart.transform.position - Vector3.up * 0.5f;
         SpringJoint springJoint = base.gameObject.AddComponent <SpringJoint>();
         springJoint.connectedBody = this.m_connectedPart.rigidbody;
         this.m_connectedLocalPos  = this.m_connectedPart.transform.InverseTransformPoint(base.transform.position);
         int     numberOfBalloons = this.m_numberOfBalloons;
         Vector3 b;
         float   maxDistance;
         if (numberOfBalloons != 1)
         {
             if (numberOfBalloons != 2)
             {
                 b           = new Vector3(0f, -0.35f, -0.03f);
                 maxDistance = 0.65f;
             }
             else
             {
                 b           = new Vector3(0.35f, -0.3f, -0.02f);
                 maxDistance = 0.55f;
             }
         }
         else
         {
             b           = new Vector3(-0.15f, -0.15f, -0.01f);
             maxDistance = 0.5f;
         }
         springJoint.minDistance = 0f;
         springJoint.maxDistance = maxDistance;
         springJoint.anchor      = Vector3.up * 0.5f;
         springJoint.spring      = 100f;
         springJoint.damper      = 10f;
         base.transform.position = position + b;
         LineRenderer lineRenderer = base.gameObject.AddComponent <LineRenderer>();
         lineRenderer.material = this.m_stringMaterial;
         lineRenderer.SetVertexCount(2);
         lineRenderer.SetWidth(0.05f, 0.05f);
         lineRenderer.SetColors(Color.black, Color.black);
     }
     else
     {
         int     numberOfBalloons2 = this.m_numberOfBalloons;
         Vector3 b2;
         if (numberOfBalloons2 != 1)
         {
             if (numberOfBalloons2 != 2)
             {
                 b2 = new Vector3(0f, -0.35f, -0.03f);
             }
             else
             {
                 b2 = new Vector3(0.35f, -0.3f, -0.02f);
             }
         }
         else
         {
             b2 = new Vector3(-0.15f, -0.15f, -0.01f);
         }
         base.transform.position += b2;
     }
 }
        //opening the dialogs for choosing an existing level
        private void loadLevel()
        {
            OpenFileDialog BrowseFile = new OpenFileDialog();

            BrowseFile.Filter      = "XML Files (*.xml)|*.xml";
            BrowseFile.FilterIndex = 0;
            BrowseFile.DefaultExt  = "xml";
            if (BrowseFile.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                ObstacleList.Clear();
                doc = new XmlDocument();
                try
                {
                    doc.Load(BrowseFile.FileName);
                }
                catch (Exception e)
                {
                    MessageBox.Show("Level Could't be read please check your file. Error: " + e, "Information", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                XmlNodeList xmlnode;
                xmlnode = doc.GetElementsByTagName("object");
                for (int i = 0; i < xmlnode.Count; i++)
                {
                    string name  = xmlnode[i].ChildNodes.Item(0).InnerText;
                    int    xaxis = Convert.ToInt32(xmlnode[i].ChildNodes.Item(1).InnerText);
                    int    yaxis = Convert.ToInt32(xmlnode[i].ChildNodes.Item(2).InnerText);
                    string speed = xmlnode[i].ChildNodes.Item(3).InnerText;
                    //adding the objects to the object list
                    switch (name)
                    {
                    case "tree":
                        Tree tree = new Tree(xaxis, yaxis);
                        ObstacleList.Add(tree);
                        Console.WriteLine("Tree added to list.");
                        break;

                    case "sandbag":
                        Sandbag sandbag = new Sandbag(xaxis, yaxis);
                        ObstacleList.Add(sandbag);
                        Console.WriteLine("Tree added to list.");
                        break;

                    case "mine":
                        Mine mine = new Mine(xaxis, yaxis);
                        ObstacleList.Add(mine);
                        Console.WriteLine("Tree added to list.");
                        break;

                    case "mud":
                        Mud mud = new Mud(xaxis, yaxis);
                        ObstacleList.Add(mud);
                        Console.WriteLine("Tree added to list.");
                        break;

                    case "finish":
                        Finish finish = new Finish(xaxis, yaxis);
                        ObstacleList.Add(finish);
                        Console.WriteLine("Tree added to list.");
                        break;

                    case "missilelauncher":
                        ObstacleList.Add(new Missilelauncher(xaxis, yaxis));
                        Console.WriteLine("Missilelauncher added to list.");
                        break;

                    default:
                        break;
                    }
                }
            }
        }