Example #1
0
        protected override void OnChangeData(IItemData itemData, string itemType)
        {
            _model = itemData as GameUnitModel;
            if (_model == null)
            {
                gameObject.SetActive(false);
                return;
            }
            gameObject.SetActive(true);
            if (GameNameLabel != null)
            {
                GameNameLabel.Text(_model.GameName);
            }
            if (Background != null)
            {
                var gm    = GameListModel.Instance;
                var group = gm.GetGroup(gm.CurGroup);
                Background.spriteName = string.Format("{0}{1}", BackgroundNamePrefix, group.Type);
            }
            name = _model.GameKey;
            if (_itemView != null)
            {
                Destroy(_itemView.gameObject);
            }
            var assetname = string.Format("gamelist_{0}", name);

            if (!string.IsNullOrEmpty(itemType))
            {
                assetname = string.Format("{0}_{1}", assetname, itemType);
            }
            var bundlePrefix = string.Format("{0}_{1}", App.Skin.GameInfo, name);
            var bundleName   = string.Format("{0}/{1}", bundlePrefix, assetname);
            var go           = ResourceManager.LoadAsset(App.Skin.GameInfo, bundleName, assetname);//App.HallName

            if (go == null)
            {
                return;
            }
            go = Instantiate(go);
            var ts      = go.transform;
            var lcScale = ts.localScale;
            var lcPos   = ts.localPosition;
            var lcRot   = ts.localRotation;

            ts.parent        = transform;
            ts.localPosition = lcPos;
            ts.localRotation = lcRot;
            ts.localScale    = lcScale;
            _itemView        = go.GetComponent <GameListItemView>();
            if (_itemView != null)
            {
                _itemView.FreshBtnClickBound(_btn, DefaultBoxWidget, _model.GameState == GameState.Developing);
            }
            else
            {
                YxDebug.LogError("没有GameListItemView", "GameListItem");
            }
        }
Example #2
0
        protected override void OnChangeData(IItemData itemData)
        {
            _model = itemData as GameUnitModel;
            if (_model == null)
            {
                gameObject.SetActive(false);
                return;
            }
            gameObject.SetActive(true);
            if (GameNameLabel != null)
            {
                GameNameLabel.text = _model.GameName;
            }
            if (Background != null)
            {
                var gm    = GameListModel.Instance;
                var group = gm.GetGroup(gm.CurGroup);
                Background.spriteName = string.Format("{0}{1}", BackgroundNamePrefix, group.Type);
            }
            name = _model.GameKey;
            var namePrefix = string.Format("{0}_{1}", App.GameListPath, name);

            if (_itemView != null)
            {
                Destroy(_itemView.gameObject);
            }
            var go = ResourceManager.LoadAsset(App.GameListPath, namePrefix, namePrefix);//App.HallName

            if (go == null)
            {
                return;
            }
            go = Instantiate(go);
            var ts      = go.transform;
            var lcScale = ts.localScale;
            var lcPos   = ts.localPosition;
            var lcRot   = ts.localRotation;

            ts.parent        = transform;
            ts.localPosition = lcPos;
            ts.localRotation = lcRot;
            ts.localScale    = lcScale;
            _itemView        = go.GetComponent <GameListItemView>();
            _itemView.FreshBtnClickBound(_btn, _model.GameState == GameState.Developing);
        }
Example #3
0
        public ActionResult Index()
        {
            ApplicationUser user          = UserManager.FindByEmail(User.Identity.Name);
            GameContext     GC            = new GameContext();
            GameUnitModel   gameunitModel = new GameUnitModel();
            var             obj           = GC.Units.Where(q => (q.Land == user.Land && q.Reserve == false && q.Way < DateTime.Now) || (q.Visible == true)).GroupBy(a => new { a.coordinate, a.Type }, (key, group) => new {
                Coordinate = key.coordinate,
                Type       = key.Type,
                Count      = group.Count(),
                Land       = group.FirstOrDefault().Land
            }).ToList();

            gameunitModel.Map = obj.Select(o => new UnitMaps {
                Coordinate = o.Coordinate, Land = o.Land, Type = o.Type, Count = o.Count
            }).ToList();
            gameunitModel.MyUnits = GC.Units.Where(a => a.PlayerId == user.Email).OrderBy(s => s.Type).ToList();

            return(View(gameunitModel));
        }
Example #4
0
 public void OnGameClickWithModel(GameUnitModel gModel)
 {
     RoomListController.Instance.ShowRoomList(gModel);
 }
Example #5
0
        public void Initialize()
        {
            // Log.Info($"Создание игровой комнаты с номером {matchModel.MatchId}");
            Dictionary <int, ushort> playerInfos = new Dictionary <int, ushort>(matchModel.GameUnits.Count());

            var zoneEntity = FlameCircle.CreateEntity(gameContext, Vector2.zero, 0f);

            gameContext.SetZone(zoneEntity.id.value);

            var step     = 360f / matchModel.GameUnits.Count();
            var halfStep = step * 0.5f;

            GameUnitsFactory     factory   = new GameUnitsFactory();
            List <GameUnitModel> gameUnits = factory.Create(matchModel);

            for (int gameUnitIndex = 0; gameUnitIndex < gameUnits.Count; gameUnitIndex++)
            {
                GameUnitModel gameUnit     = gameUnits[gameUnitIndex];
                float         angle        = gameUnitIndex * step + halfStep;
                Vector2       position     = CoordinatesExtensions.GetRotatedUnitVector2(angle) * 40f;
                GameEntity    playerEntity = PlayerPrototypes[gameUnit.WarshipName.ToLower()]
                                             .CreateEntity(gameContext, position, 180f + angle, (byte)(gameUnitIndex + 1));

                if (playerEntity.hasDrop)
                {
                    playerEntity.drop.objects.Add(UpgradeBonus);
                }
                else
                {
                    playerEntity.AddDrop(new List <EntityCreatorObject> {
                        UpgradeBonus
                    });
                }

                playerEntity.AddPlayer(gameUnit.TemporaryId);
                playerEntity.AddAccount(gameUnit.AccountId);
                playerInfos.Add(playerEntity.account.id, playerEntity.id.value);

                if (gameUnit.IsBot())
                {
                    Match.MakeBot(playerEntity);
                }
                if (Skins.TryGetValue(gameUnit.SkinName, out var skin))
                {
                    skin.AddSkin(playerEntity, gameContext);
                }

                var powerLevel = gameUnit.WarshipPowerLevel - 1;
                if (powerLevel > 0)
                {
                    var newHp             = playerEntity.maxHealthPoints.value * (1f + powerLevel * WarshipImprovementConstants.HealthPointsCoefficient);
                    var newSpeed          = playerEntity.maxVelocity.value * (1f + powerLevel * WarshipImprovementConstants.LinearVelocityCoefficient);
                    var newRotation       = playerEntity.maxAngularVelocity.value * (1f + powerLevel * WarshipImprovementConstants.AngularVelocityCoefficient);
                    var attackCoefficient = 1f + powerLevel * WarshipImprovementConstants.AttackCoefficient;
                    playerEntity.ReplaceMaxHealthPoints(newHp);
                    playerEntity.ReplaceHealthPoints(newHp);
                    playerEntity.ReplaceMaxVelocity(newSpeed);
                    playerEntity.ReplaceMaxAngularVelocity(newRotation);
                    foreach (var child in playerEntity.GetAllChildrenGameEntities(gameContext))
                    {
                        child.AddAttackIncreasing(attackCoefficient);
                    }
                }

                var wallAngle     = angle + halfStep;
                var wallDirection = CoordinatesExtensions.GetRotatedUnitVector2(wallAngle);

                for (var r = 11; r < 50; r += 25)
                {
                    for (var j = r; j < r + 10; j++)
                    {
                        RandomAsteroid.CreateEntity(gameContext, wallDirection * j, (float)random.NextDouble() * 360f);
                    }
                }

                SpaceStation.CreateEntity(gameContext, wallDirection * 10f, wallAngle, 0);
                SpaceStation.CreateEntity(gameContext, wallDirection * 25f, wallAngle, 0);
                SpaceStation.CreateEntity(gameContext, wallDirection * 35f, 180f + wallAngle, 0);

                RandomBonus.CreateEntity(gameContext, wallDirection * 30f, 0);
            }

            Boss.CreateEntity(gameContext, Vector2.zero, (float)random.NextDouble() * 360f, 0);

            foreach (var playerInfo in matchModel.GameUnits.Players)
            {
                udpSendUtils.SendPlayerInfo(matchModel.MatchId, playerInfo.TemporaryId, playerInfos);
            }
        }
Example #6
0
        protected override void FreshData()
        {
            if (Data is string)
            {
                Model = GameListModel.Instance.GameUnitModels[Data.ToString()];
            }
            else
            {
                Model = Data as GameUnitModel;
            }
            if (Model == null)
            {
                gameObject.SetActive(false);
                return;
            }
            gameObject.SetActive(true);
            if (Background != null)
            {
                var gm           = GameListModel.Instance;
                var group        = gm.GetGroup(gm.CurGroup);
                var index        = group == null || KeepStyle ? Model.Index % BackgroundCount :group.Type % BackgroundCount;
                var normalSprite = string.Format("{0}{1}", BackgroundNamePrefix, index);
                Background.spriteName = normalSprite;
                _btn.normalSprite     = normalSprite;
            }
            if (GameNameLabel != null)
            {
                GameNameLabel.SetActive(KeepStyle);
                GameNameLabel.Text(Model.GameName);
            }
            name = Model.GameKey;
            if (_itemView != null)
            {
                Destroy(_itemView.gameObject);
            }
            if (KeepStyle)
            {
                return;
            }
            var assetname = string.Format("gamelist_{0}", name);

            if (!string.IsNullOrEmpty(ViewType))
            {
                assetname = string.Format("{0}_{1}", assetname, ViewType);
            }
            var bundlePrefix = string.Format("{0}_{1}", App.Skin.GameInfo, name);

            _bundleName = string.Format("{0}/{1}", bundlePrefix, assetname);

            var asInfo = new AssetBundleInfo
            {
                Name      = _bundleName,
                Attach    = App.Skin.GameInfo,
                AssetName = assetname
            };

            if (KeepStyle)
            {
            }
            else
            {
                ResourceManager.LoadAssesAsync <GameObject>(asInfo, false, CreateItem);
            }
            #region 注释 同步加载
            //            var go = ResourceManager.LoadAsset(App.Skin.GameInfo, bundleName, assetname);//App.HallName
            //            if (go == null) return;
            //            go = Instantiate(go);
            //            var ts = go.transform;
            //            var lcScale = ts.localScale;
            //            var lcPos = ts.localPosition;
            //            var lcRot = ts.localRotation;
            //            ts.parent = transform;
            //            ts.localPosition = lcPos;
            //            ts.localRotation = lcRot;
            //            ts.localScale = lcScale;
            //            _itemView = go.GetComponent<GameListItemView>();
            //            if (_itemView!=null)
            //            {
            //                _itemView.FreshBtnClickBound(_btn, DefaultBoxWidget, Model.GameState == GameState.Developing);
            //            }
            //            else
            //            {
            //                YxDebug.LogError("没有GameListItemView","GameListItem");
            //            }
            #endregion
        }