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"); } }
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); }
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)); }
public void OnGameClickWithModel(GameUnitModel gModel) { RoomListController.Instance.ShowRoomList(gModel); }
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); } }
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 }