Beispiel #1
0
    void boom()
    {
        boomEffect();
        if (!PhotonNetwork.isMasterClient)
        {
            return;
        }
        // MasterClient进行爆炸判断
        Collider[]    others       = Physics.OverlapSphere(gameObject.transform.position, damageRadius);
        List <string> damagedTanks = new List <string>();

        if (others.Length == 0)
        {
            return;
        }
        for (int i = 0; i < others.Length; i++)
        {
            //Debug.Log (others[i].gameObject.name);
            TankModel tankModel = others[i].gameObject.GetComponentInParent <TankModel>();

            if (others [i].gameObject.tag == "TankPart" && !damagedTanks.Contains(tankModel.gameObject.name))
            {
                damagedTanks.Add(tankModel.gameObject.name);
                tankModel.TakeDamage(damage, owner);
            }
        }
    }
    private TankController CreateNewTank()
    {
        TankModel      model = new TankModel(TankType.None, 5, 100f);
        TankController tank  = new TankController(model, tankView);

        return(tank);
    }
Beispiel #3
0
    void CreateTank(Vector3 transform)
    {
        TankModel tankModel = new TankModel(10, 100f);

        tankView.GetComponent <Transform>().position = transform;
        TankController tank = new TankController(tankModel, tankView);
    }
Beispiel #4
0
        /// <summary>
        /// Tank constructor.
        /// </summary>
        /// <param name="x">X coordinate of tank.</param>
        /// <param name="y">Y coordinate of tank.</param>
        /// <param name="heading">Heading of tank, rad.</param>
        public Tank(double x, double y, double heading)
        {
            Position = new PointD(x, y);
            Heading  = TurretHeading = heading;

            _model = new TankModel(this);
        }
Beispiel #5
0
        public void AddTankModel(Vector3 position, TankStatusMode tankStatus)
        {
            TankModel newDModel = new TankModel(tankStatus, tankModel, Matrix.CreateScale(0.08f) * Matrix.CreateTranslation(position.X, position.Y, position.Z), new Vector3(0, 1, 0), sceneManager.GetCity().GetCityMap());

            octreeRoot.Add(newDModel);
            tank = newDModel;
        }
Beispiel #6
0
    void CreateModel()
    {
        // upon start up ... instantiate the model
        var modelGo = (GameObject)GameObject.Instantiate(
            modelPrefab,
            transform.position,
            Quaternion.identity,
            this.transform
            );

        model = modelGo.GetComponent <TankModel>();
        spawnOrder++;
        gameObject.name = "TankSpawn" + spawnOrder;
        // add two child network transforms
        gameObject.SetActive(false);

        var netChild = gameObject.AddComponent <NetworkTransformChild>();

        netChild.target = modelGo.transform;

        netChild        = gameObject.AddComponent <NetworkTransformChild>();
        netChild.target = model.turret.transform;

        gameObject.SetActive(true);

        // manually set center of mass for tank
        rb.centerOfMass = model.centerOfMass.position;
    }
Beispiel #7
0
 // Use this for initialization
 void Start()
 {
     tank = GetComponent <TankModel>();
     bar  = GameObject.Find("ShooterCanvas/Scrollbar Vertical").GetComponent <Scrollbar>();
     GameObject.Find("ShooterCanvas/ShootButton").GetComponent <Button>().onClick.AddListener(delegate {
         tank.Shoot();
     });
 }
Beispiel #8
0
    public TankController CreateTank(TankScriptableObject tankScriptableObject)
    {
        randomSpawnPos = new Vector3(Random.Range(-42, 43), 2, Random.Range(39, -43));
        TankModel      tankModel      = new TankModel(tankScriptableObject);
        TankController tankController = new TankController(TankView, tankModel, randomSpawnPos, Quaternion.identity);

        return(tankController);
    }
        public TankController(TankModel tankModel, TankView tankView)

        {
            TankModel      = tankModel;
            TankView       = tankView;
            BulletVariants = tankModel.BulletVariants;
            TankView.Initialize(this);
            TankView.RandomSpawning();
        }
Beispiel #10
0
    public TankController(TankModel model, TankView prefab)
    {
        tankModel = model;
        tankView  = GameObject.Instantiate <TankView>(prefab);

        //X location where new tank is spawned
        Debug.Log("Tank type -" + model.tankType);
        tankView.Init(this);
        //tankView.SetTankPos(4);
    }
Beispiel #11
0
 public TankController(TankModel tankModel, TankView tankPrefab)
 {
     TankView  = GameObject.Instantiate <TankView>(tankPrefab);
     TankModel = tankModel;
     TankView.InitTankController(this);
     //Debug.Log("Tank Type"+TankType.);
     //TankView.Speed = tankModel.Speed;
     //TankView.Health = tankModel.Health;
     //TankView.Type = tankModel.Type;
 }
    public TankController(TankModel tankModel, TankView tankPrefab)
    {
        TankModel = tankModel;

        //    GameObject go = GameObject.Instantiate(tankPrefab);
        //    TankView = go.GetComponent<TankView>();

        TankView = GameObject.Instantiate <TankView>(tankPrefab);
        Debug.Log("Tank view controller created", TankView);
    }
Beispiel #13
0
    private TankController SpawnTank()
    {
        TankScriptableObjects tankScriptableObject = tankConfigs[1];
        TankModel             TankModel            = new TankModel(tankScriptableObject);

        // TankModel TankModel = new TankModel(TankType.None, 0.1f, 100f, 4);
        tankController = new TankController(TankModel, tankPrefab);

        return(tankController);
    }
    void FindTankModel()
    {
        GameObject modelGo = GameObject.Find("ModelPosition");

        if (modelGo != null)
        {
            var playerSetupGo = modelGo.transform.Find("TankModel");
            // Debug.Log("found tankModel: " + playerSetupGo);
            tankModel = playerSetupGo.GetComponent <TankModel>();
        }
    }
Beispiel #15
0
    public void SetTankDetails(TankModel model)
    {
        mvtSpeed      = model.mvtSpeed;
        rotatingSpeed = model.rotatingSpeed;
        maxHealth     = model.health;
        Color color = model.TankColor;

        //Debug.Log("color :" + color);
        tankController.SetTankColor(color, renderers);
        shootDelay = model.reloadTime;
    }
Beispiel #16
0
 public void SetEnemyDetails(TankModel model)
 {
     mvtSpeed      = model.mvtSpeed;
     rotatingSpeed = model.rotatingSpeed;
     maxHealth     = model.health;
     //Color color = model.TankColor;
     for (int i = 0; i < renderers.Length; i++)
     {
         renderers[i].material.color = Color.red;
     }
 }
Beispiel #17
0
    void Start()
    {
        cam.setPlayer(this.transform);
        rigidBody = GetComponent <Rigidbody2D> ();
        model     = GetComponent <TankModel> ();

        if (guns.Length == 0 || guns.Length != bullets.Length)
        {
            throw new UnityException("no weapons on Player or bullets does not match!");
        }
        gunIndex = 0;
    }
        public void Draw()
        {
            Bitmap   flag         = new Bitmap(fieldSize, fieldSize);
            Graphics flagGraphics = Graphics.FromImage(flag);

            BallView.DrawBall(BallModel.GetBall(), flagGraphics);
            BlocksView.DrawBlocks(BlockModel.GetBlocks(), flagGraphics);
            TankView.DrawTanks(TankModel.GetTanks(), flagGraphics);
            AppleView.DrawApples(AppleModel.GetApples(), flagGraphics);

            pictureBox.Image = flag;
        }
        private void CreateNewObject(TankScriptableObject tankScriptableObject)

        {
            TankView  tankView;
            TankModel tankModel = new TankModel(tankScriptableObject.health,
                                                tankScriptableObject.force,
                                                tankScriptableObject.torque, tankScriptableObject.bulletVariants);

            tankView = GameObject.Instantiate <TankView>(tankViewPrefab);
            tankView.ColorSelector(tankScriptableObject.tankColor);
            TankController tankController = new TankController(tankModel, tankView);
        }
Beispiel #20
0
    private TankController CreateNewTank(int index)
    {
        TankScriptableObject tankScriptableObject = tankList.tanks[index];

        Debug.Log("Creating Tank with type: " + tankScriptableObject.TankName);

        TankModel model = new TankModel(tankScriptableObject);
        //TankController tank = new TankController(model, tankView);
        TankController tank = servicePoolTank.GetTank(model, tankView);

        tank.Enable();
        return(tank);
    }
Beispiel #21
0
        private TankController CreateTank(int index)
        {
            //TankScriptableObject tankScriptableObject = tankConfigurations[2];

            TankScriptableObject tankScriptableObject = tankList.tanks[index];

            Debug.Log("Tank Type" + tankScriptableObject.tankName);

            TankModel      model = new TankModel(tankScriptableObject);
            TankController tank  = new TankController(model, tankView);

            return(tank);
        }
Beispiel #22
0
        /// <inheritdoc />
        public override void Draw(GameTime gameTime)
        {
            Game.Background = Color.CornflowerBlue;
            GraphicsDevice.DepthStencilState = DepthStencilState.Default;


            // Calculate the camera matrices.
            var time = Convert.ToSingle(gameTime.TotalGameTime.TotalSeconds);

            // Draw the tank model.
            TankModel.Draw(TankWorld * Matrix.CreateRotationY(time * 0.1f), Camera.View, Camera.Projection);

            base.Draw(gameTime);
        }
Beispiel #23
0
        public ObservableCollection <Model.TankModel> getTankList(long stationid)
        {
            DataTable table = BusinessHelper.ListAllTank(stationid);
            ObservableCollection <Model.TankModel> _FuelTanks = new ObservableCollection <Model.TankModel>();

            try
            {
                if (table.Rows.Count != 0)
                {
                    foreach (DataRow _datarow in table.Rows)
                    {
                        TankModel _tm = new TankModel();

                        _tm.TankId            = Convert.ToInt64(_datarow["tankid"]);
                        _tm.Name              = _datarow["tankname"].ToString();
                        _tm.Description       = _datarow["tankdesc"].ToString();
                        _tm.StationId         = (UInt64)stationid;
                        _tm.StationName       = _datarow["stationname"].ToString();
                        _tm.MaxCapacity       = Convert.ToDouble(_datarow["capacity"]);
                        _tm.OffsetLevel       = Convert.ToDouble(_datarow["offset"]);
                        _tm.FuelId            = Convert.ToInt64(_datarow["fuelid"]);
                        _tm.Capacity          = 0;
                        _tm.FuelLevel         = 0;
                        _tm.WaterLevel        = 0;
                        _tm.Thermometer       = 25.00;
                        _tm.WaterCapacity     = 0;
                        _tm.IsImportFinished  = true;
                        _tm.HasData           = false;
                        _tm.SavedDataCommand  = this.SaveDataCommand;
                        _tm.DetailCommand     = this.DetailCommand;
                        _tm.FuelImportCommand = this.FuelImportCommand;
                        _tm.FinishCommand     = this.FinishCommand;
                        _FuelTanks.Add(_tm);
                    }
                }
                else
                {
                    MessageBox.Show("Declare Param First!!!");
                    return(null);
                }
                return(_FuelTanks);
            }

            catch (Exception ex)
            {
                App.Log.LogException(ex);
                return(null);
            }
        }
        public async Task <GameDataModel> SimulateAsync(string gameId, TankModel tank1, TankModel tank2, GameMapModel map)
        {
            var gameData = await _resultsApiClient.GetScoreAsync(gameId);

            GameSimulator simulator = new GameSimulator(gameData.Id, Environment.GetEnvironmentVariable("WEATHER_API_URL"), map);

            simulator.GameFinished += OnGameFinished;

            gameData.Status = GameStatus.InProgress;
            await _resultsApiClient.UpdateAsync(gameData);

            simulator.Start(tank1, tank2);

            return(gameData);
        }
        public TankController(TankModel tankModel, TankView tankPrefab)
        //public TanController(TankModel tankModel, GameObject tankPrefab)
        {
            TankModel = tankModel;

            //GameObject go = GameObject.Instantiate(tankPrefab);
            //TankView = go.GetComponent<TankView>();

            TankView = GameObject.Instantiate <TankView>(tankPrefab);
            TankView.SetController(this);
            TankModel.SetTankController(this);
            TankView.SetSpeed(TankModel.Speed);
            TankView.SetTurn(TankModel.Turn);
            TankView.Sethealth(TankModel.Health);
        }
Beispiel #26
0
        public Tank(string name, TankModel model)
        {
            try
            {
                this.name      = name;
                this.TankModel = model;

                this.health   = rnd.Next(0, 100);
                this.strength = rnd.Next(0, 100);
                this.agility  = rnd.Next(0, 100);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
Beispiel #27
0
        public void Start(
            TankModel tank1,
            TankModel tank2)
        {
            var tankEntity1 = BuildTank(tank1);
            var tankEntity2 = BuildTank(tank2);

            tankEntity1.Enemy = tankEntity2;
            tankEntity2.Enemy = tankEntity1;

            _tanks.Add(tankEntity1);
            _tanks.Add(tankEntity2);

            Logger.Log("Starting the simulation...");
            _gameThread = new Thread(() => Run());
            _gameThread.Start();
        }
Beispiel #28
0
    public void BindPlayer2Tank()
    {
        foreach (GameObject tankOBJ in GameObject.FindGameObjectsWithTag("Player"))
        {
            tank_list.Add(tankOBJ);
            foreach (PhotonPlayer p in PhotonNetwork.playerList)
            {
                print((int)p.CustomProperties["ID"] + " :" + tankOBJ.GetPhotonView().viewID);
                if ((int)p.CustomProperties["ID"] == tankOBJ.GetPhotonView().viewID)
                {
                    tankOBJ.name = p.CustomProperties["Team"].ToString();
                    break;
                }
            }
            if ((int)PhotonNetwork.player.CustomProperties["ID"] == tankOBJ.GetPhotonView().viewID)
            {
                localTank = tankOBJ;
                tankModel = localTank.GetComponent <TankModel>();
                if (PhotonNetwork.player.CustomProperties["Character"].ToString() == "driver")
                {
                    UICtrl.EnableDriverCanvas();
                    UICtrl.DisableShooterCanvas();

                    tankModel.driverCamera.SetActive(true);
                    localTank.GetComponent <DriverController>().enabled  = true;
                    localTank.GetComponent <ShooterController>().enabled = false;
                }
                else if (PhotonNetwork.player.CustomProperties["Character"].ToString() == "shooter")
                {
                    UICtrl.DisableDriverCanvas();
                    UICtrl.EnableShooterCanvas();

                    localTank.GetComponent <DriverController>().enabled  = false;
                    localTank.GetComponent <ShooterController>().enabled = true;
                    tankModel.shooterCamera.SetActive(true);
                }
                UICtrl.EnableHPSlider();
                UICtrl.SetMaxHP(tankModel.maxHealth);
                UICtrl.SetMinHP(0);
                UICtrl.SetHP(tankModel.health);
            }
        }

        photonView.RPC("ConfirmReady", PhotonTargets.All);
    }
Beispiel #29
0
        public Tank(
            string id,
            TankModel model,
            Vector2i position,
            GameMap gameMap)
            : base(gameMap)
        {
            TankId = id;

            Name     = model.Name;
            Position = position;

            Barrel    = new TankBarrel(model.Barrel);
            MainBody  = new TankMainBody();
            RoadWheel = new TankRoadWheels();

            _remainingLandmines = 2; // initialize number of landmines
        }
Beispiel #30
0
        private Tank BuildTank(TankModel tankModel)
        {
            var position = new Vector2i()
            {
                X = _random.Next(_map.Size),
                Y = _random.Next(_map.Size)
            };

            while (_map.GetTile(position).Solid) // finding an available tile
            {
                position = new Vector2i()
                {
                    X = _random.Next(_map.Size),
                    Y = _random.Next(_map.Size)
                };
            }
            Logger.Log($"Placing {tankModel.Name} at ({position.X}, {position.Y}).");
            return(new Tank(tankModel.Id, tankModel, position, _map));
        }