public AsteroidController(AsteroidModel model, AsteroidView view) { _view = view; // Bind Model model.Velocity.Subscribe(v => _view.SetVelocity(v)); // Bind View >>> view.TriggerEnterEvents.Subscribe(col => { switch (col.gameObject.layer) { case Layers.AsteroidsTriggers: LevelController.ChangeAsteroidsOnScreenCount(1); break; default: Destroy(); break; } }); view.TriggerExitEvents.Subscribe(col => { switch (col.gameObject.layer) { case Layers.AsteroidsTriggers: LevelController.ChangeAsteroidsOnScreenCount(-1); break; } }); }
public EnumAsteroidType Predict(AsteroidModel asteroidModel) { var converted = ConvertToFeatures(asteroidModel); var multi = IndexToEnum(_algo.Predict(converted)); return(multi); }
public void SpawnAsteroid(AsteroidModel prev) { if (prev) { _asteroids.Remove(prev); } // pick a random spawner position int index = Random.Range(0, _spawnPositions.Count); Vector3 position = _spawnPositions[index]; GameObject asteroid = Instantiate(asteroidPrefab); asteroid.transform.parent = asteroidContainer; asteroid.transform.position = position; // get a random direction and force Vector3 dir = new Vector3( Random.Range(-1.0f, 1.0f), Random.Range(-1.0f, 1.0f), 0.0f ); float force = Random.Range(forceMin, forceMax); Rigidbody rb = asteroid.GetComponent <Rigidbody>(); rb.AddForce(dir.normalized * force); AsteroidView view = asteroid.GetComponent <AsteroidView>(); AsteroidModel model = asteroid.GetComponent <AsteroidModel>(); _asteroids.Add(model); view.controller = this; numAsteroids++; }
// Parses the JSON received from the NeoWs API and returns a List<> with each asteroid and its relevant properties returned by the query. private static List <AsteroidModel> PopulateAsteroids(HttpResponseMessage queryResult) { var asteroidList = new List <AsteroidModel>(); if (queryResult.IsSuccessStatusCode) { var responseResult = queryResult.Content.ReadAsStringAsync().Result; dynamic json = JValue.Parse(responseResult); foreach (dynamic day in json.near_earth_objects) { foreach (dynamic occurence in day) { foreach (dynamic nearEarthObject in occurence) { var newAsteroid = new AsteroidModel(); newAsteroid.Id = nearEarthObject.id; newAsteroid.PotentiallyHazardous = nearEarthObject.is_potentially_hazardous_asteroid; newAsteroid.Name = nearEarthObject.name; newAsteroid.EstimatedMinimumDiameter = nearEarthObject.estimated_diameter.miles.estimated_diameter_min; newAsteroid.EstimatedMaximumDiameter = nearEarthObject.estimated_diameter.miles.estimated_diameter_max; asteroidList.Add(newAsteroid); } } } } return(asteroidList); }
public void DeathTrigger(AsteroidModel model, GameObject obj) { countAsterDeath++; lvlDataModel.currentAsteroid.Value = countAsterDeath; tmpAster = obj; gameModel.delAsterCollection(model); LvlLog(); }
public void Init(AsteroidModel asteroidModel, Vector2 movePosition, DestructionAsteroidView destructionAsteroidView, AsteroidsType asteroidsType, Action <Transform, AsteroidsType> spawnSmallAsteroid) { _speed = UnityEngine.Random.Range(-asteroidModel.ForceRange, asteroidModel.ForceRange) + asteroidModel.MiddleForce; _movePosition = movePosition; _destructionAsteroidView = destructionAsteroidView; _asteroidType = asteroidsType; _spawnSmallAsteroid = spawnSmallAsteroid; }
void Awake() { asteroidController = GetComponentInChildren <AsteroidController>(); asteroidModel = new AsteroidModel(); asteroidController.asteroidModel = asteroidModel; asteroidView = GetComponentInChildren <AsteroidView>(); asteroidController.asteroidView = asteroidView; asteroidView.asteroidModel = asteroidModel; }
public AsteroidSpawner(SpawnerModel spawnerModel, AsteroidModel asteroidModel, Dictionary <AsteroidsType, AsteroidView> asteroidsView, DestructionAsteroidView destructionAsteroidView) { _asteroidModel = asteroidModel; _asteroidsView = asteroidsView; _destructionAsteroidView = destructionAsteroidView; _spawnerModel = spawnerModel; _camera = Camera.main; InitSpawnZonesPosition(); }
public void setModel(AsteroidModel model) { asteroidModel = model; print("bud` zdorov"); asteroidModel.Position .ObserveEveryValueChanged(x => x.Value) .Subscribe(xs => { transform.position = xs; }).AddTo(disposables); }
public ActionResult Classify(AsteroidModel asteroid) { var ac = new AsteroidsClassification(); ac.LoadMachine(false); asteroid.Classification = ""; ViewBag.result = ac.Predict(asteroid); return(View(asteroid)); }
private IEnumerator AsteroidsSpawn() { for (int i = 0; i < lvlStructSource.asteroidsCount; i++) { AsteroidModel asteroid = new AsteroidModel(lvlStructSource.asteroidsHP, RandomPositionSpawnAseter(), lvlStructSource.asteroidsSpeed); gameModel.setAsterCollection(asteroid); yield return(new WaitForSeconds(lvlStructSource.CoroutineRate)); } }
public AsteroidFactory(Vector3 position) { View = GameObject.Instantiate( Refs.Instance.AsteroidViewPrefab, position, Quaternion.identity, Refs.Instance.Gameplay ); Model = new AsteroidModel(); Controller = new AsteroidController(Model, View); }
public AsteroidsPool(AsteroidModel asteroidModel, List <AsteroidView> asteroidsView, Transform poolsParent, SpawnerModel spawnerModel, DestructionAsteroidView destructionAsteroidView) { PoolManager.SetRoot(poolsParent); foreach (var asterod in asteroidsView) { PoolManager.WarmPool(asterod.gameObject, asteroidModel.AsteroidsCountInPool); } PoolManager.WarmPool(destructionAsteroidView.gameObject, 5); _spawner = new AsteroidSpawner(spawnerModel, asteroidModel, GetAsteroidsByType(asteroidsView), destructionAsteroidView); }
public void SaveGame(IRepository <IPlayer> players, IRepository <IEnemy> enemies, IRepository <IAsteroid> asteroids, UsersRepository users) { var game = new GameModel(); foreach (var user in users.GetAll()) { game.Users.Add(this.context.Users.FirstOrDefault(u => u.Username == user)); } foreach (var player in players.GetAll()) { var playerModel = new PlayerModel() { Armor = player.Armor, BulletDamage = player.BulletDamage, BulletDelay = player.BulletDelay, BulletSpeed = player.BulletSpeed, IsAlive = player.IsAlive, Level = player.Level, MaxHealth = player.MaxHealth, PlayerIdentity = player.Id, PositionX = player.Position.X, PositionY = player.Position.Y, Score = player.Score, Speed = player.Speed, Health = player.Health }; game.Players.Add(playerModel); } foreach (var enemy in enemies.GetAll()) { var enemyModel = new EnemyModel() { PositionX = enemy.Position.X, PositionY = enemy.Position.Y }; game.Enemies.Add(enemyModel); } foreach (var asteroid in asteroids.GetAll()) { var asteroidModel = new AsteroidModel() { PositionX = asteroid.Position.X, PositionY = asteroid.Position.Y }; game.Asteroids.Add(asteroidModel); } context.Games.Add(game); context.SaveChanges(); }
//тригеры для астероида public void TriggerDeathZ(Collider other, AsteroidModel model, GameObject obj) { if (other.CompareTag("DeathZone")) { DeathTrigger(model, obj); } if (other.CompareTag("Bullet")) { model.CurrentHp.Value--; if (model.CurrentHp.Value == 0) { DeathTrigger(model, obj); } } }
public void init(EnemyManager owner) { hp = 20; fireRate = 0; speed = 3; this.owner = owner; col = gameObject.AddComponent<CircleCollider2D> (); body = gameObject.AddComponent<Rigidbody2D> (); body.isKinematic = true; transform.eulerAngles = new Vector3(0,0,180); var modelObject = GameObject.CreatePrimitive (PrimitiveType.Quad); model = modelObject.AddComponent<AsteroidModel>(); gameObject.name = "Asteroid"; this.tag = "asteroid"; model.init(this); }
public override IView <AsteroidModel> CreateAsteroid(AsteroidModel model) { var gameObject = _context.ViewMode == ViewMode.Polygonal ? Object.Instantiate(_context.AsteroidDataSetter.polygonalPrefab) : Object.Instantiate(_context.AsteroidDataSetter.spritePrefab); gameObject.name = "Asteroid" + _context.ViewMode; var view = gameObject.AddComponent <AsteroidView>(); view.ViewMode = _context.ViewMode; view.Context = _context; view.Model = model; return(view); }
private void Start() { asModel = new AsteroidModel(type, position); asView = CreateAsteroidView(type, position); disposables = new CompositeDisposable(); Observable.EveryUpdate() .Subscribe(_ => { asModel.UpdatePosition(-1 * Time.deltaTime); }) .AddTo(disposables); asModel.position .ObserveEveryValueChanged(position => position.Value) .Subscribe(posValue => { asView.UpdatePosition(posValue); }) .AddTo(disposables); asView.isCollided .ObserveEveryValueChanged(position => position.Value) .Subscribe(posValue => { asModel.LoseHp(); asView.CloseFlag(); }) .AddTo(disposables); MessageBroker.Default .Receive <DeathNotice>() .Where(msg => msg.sender == asModel && msg.objectType == SpaceObjectType.asteroid) .Subscribe(_ => { SelfDestruct(); }) .AddTo(disposables); MessageBroker.Default .Receive <GameOverNotice>() .Subscribe(msg => { disposables.Dispose(); }) .AddTo(this); }
private AsteroidController CreateAsteroid(AsteroidModelIniter initer) { var model = new AsteroidModel { id = ++_id, damage = 10, hp = 10, radius = initer.radius, speed = initer.speed, x = initer.x, y = initer.y, z = 1, score = 100 }; var asteroidController = new AsteroidController(model); var asteroid = PoolManager.GetObject(PoolsEnum.ASTEROID); asteroid.GetComponent <Asteroid>().SetController(asteroidController, transform.rotation); return(asteroidController); }
private AsteroidModel ConvertLineToModel(string line) { try { var model = new AsteroidModel(); model.Des = line.Substring(0, 6).Trim(); model.H = Double.Parse(line.Substring(8, 5).Trim(), cu); model.G = Double.Parse(line.Substring(14, 5).Trim(), cu); model.Epoch = line.Substring(20, 5); model.M = Double.Parse(line.Substring(26, 9).Trim(), cu); model.Peri = Double.Parse(line.Substring(37, 9).Trim(), cu); model.Node = Double.Parse(line.Substring(48, 9).Trim(), cu); model.Incl = Double.Parse(line.Substring(59, 9).Trim(), cu); model.e = Double.Parse(line.Substring(70, 9).Trim(), cu); model.n = Double.Parse(line.Substring(80, 11).Trim(), cu); model.a = Double.Parse(line.Substring(92, 11).Trim(), cu); model.Reference = line.Substring(107, 11); model.Obs = Double.Parse(line.Substring(117, 4).Trim(), cu); model.Opp = Double.Parse(line.Substring(123, 3).Trim(), cu); //model.Arc = line.Substring(); model.rms = Double.Parse(line.Substring(137, 4).Trim(), cu); //model.Perts = line.Substring(); model.Computer = line.Substring(150, 10).Trim(); model.Classification = line.Substring(161, 4).Trim(); model.Name = line.Substring(175, 10).Trim(); return(model); } catch (Exception) { return(null); } }
//тригеры для астероида public void TriggerDeathZ(Collider other, AsteroidModel model, GameObject obj) { if (other.CompareTag("DeathZone")) { Debug.Log("death zone"); countAsterDeath++; tmp = obj; app.model.delAsterCollection(model); LvlLog(); } if (other.CompareTag("Bullet")) { Debug.Log("death zone"); model.CurrentHp.Value--; if (model.CurrentHp.Value == 0) { countAsterDeath++; tmp = obj; app.model.delAsterCollection(model); LvlLog(); } } }
public void setAsterCollection(AsteroidModel asteroidModel) { asteroidsCollection.Add(asteroidModel); }
public AsteroidController(AsteroidModel model) { _model = model; _suicide = false; _hp = _model.hp; }
private double[] ConvertToFeatures(AsteroidModel asteroid) { var doubles = new double[] { asteroid.G, asteroid.H, asteroid.M, asteroid.Perts, asteroid.Incl, asteroid.Node, asteroid.Obs, asteroid.Opp, asteroid.a, asteroid.n, asteroid.e }; return(doubles); }
public void delAsterCollection(AsteroidModel asteroidModel) { asteroidsCollection.Remove(asteroidModel); }
public abstract IView <AsteroidModel> CreateAsteroid(AsteroidModel model);