/// <summary> /// Allows the game to perform any initialization it needs to before starting to run. /// This is where it can query for any required services and load any non-graphic /// related content. Calling base.Initialize will enumerate through any components /// and initialize them as well. /// </summary> protected override void Initialize() { // TODO: Add your initialization logic here this.manager = new ComponentManager(this.Content); colsys = new CollisionSystem(); consys = new ControlSystem(); projsys = new ProjectileSystem(); pathsys = new PathingSystem(); anisys = new AnimatedSpriteSystem(); paused = false; mainMenu = true; //start with main menu open dead = false; realDead = false; victory = false; //Create stages this.stages = new List <Stage>(); Stage stage1 = new Stage("stage1.tmx", this.manager); this.stages.Add(stage1); Stage stage2 = new Stage("stage2.tmx", this.manager); this.stages.Add(stage2); Stage stage3 = new Stage("stage3.tmx", this.manager); this.stages.Add(stage3); Stage stage4 = new Stage("stage4.tmx", this.manager); this.stages.Add(stage4); Stage stage5 = new Stage("stage5.tmx", this.manager); this.stages.Add(stage5); Stage stage6 = new Stage("stage6.tmx", this.manager); this.stages.Add(stage6); Stage stage7 = new Stage("stage7.tmx", this.manager); this.stages.Add(stage7); Stage stage8 = new Stage("stage8.tmx", this.manager); this.stages.Add(stage8); Stage stage9 = new Stage("stage9.tmx", this.manager); this.stages.Add(stage9); Stage stage10 = new Stage("stage10.tmx", this.manager); this.stages.Add(stage10); Stage stage11 = new Stage("stage11.tmx", this.manager); this.stages.Add(stage11); Stage stage12 = new Stage("stage12.tmx", this.manager); this.stages.Add(stage12); this.manager.numStages = this.stages.ToArray().Length; this.screenBox = new Rectangle(0, 0, 800, 480); base.Initialize(); }
protected override void OnUpdate() { if (m_PlayerData.Player.Length < 0 || m_PlayerData.Player[0].CurrencyAmount <= 0) { for (int i = 0; i < m_Inputs.InputEntities.Length; i++) { var data = m_Inputs.InputEntities[i]; PostUpdateCommands.DestroyEntity(data); } for (int i = 0; i < m_InputChildren.InputEntities.Length; i++) { var data = m_InputChildren.InputEntities[i]; PostUpdateCommands.DestroyEntity(data); } return; } if (m_Inputs.Length > 0) { RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit)) { var gridIndex = Grid.ConvertToGridIndex(hit.point); var gridWorldPos = Grid.ConvertToWorldPosition(gridIndex); if (Input.GetMouseButtonDown(0)) { if (hit.collider.tag.Equals("Floor") && PathingSystem.TryFindPathWithBlocker(gridIndex)) { for (int i = 0; i < m_PlayerData.Player.Length; i++) { var playerData = m_PlayerData.Player[i]; playerData.CurrencyAmount--; m_PlayerData.Player[i] = playerData; } InstanceTurret(gridWorldPos); } } else if (Input.GetMouseButtonDown(1)) { for (int i = 0; i < m_Inputs.InputEntities.Length; i++) { var data = m_Inputs.InputEntities[i]; PostUpdateCommands.DestroyEntity(data); } for (int i = 0; i < m_InputChildren.InputEntities.Length; i++) { var data = m_InputChildren.InputEntities[i]; PostUpdateCommands.DestroyEntity(data); } } else { for (int i = 0; i < m_Inputs.TurretPosition.Length; i++) { var data = m_Inputs.TurretPosition[i]; data = new Position(gridWorldPos); m_Inputs.TurretPosition[i] = data; } } } } }