public TitleChildSceneOptionEdit(User[] op) { opts = op; osi = new int[opts.Length]; oii = new OptionInitializationInformation[opts.Length]; sum = new StringSprite(CommonObjects.FontSystemMedium, CommonObjects.Colors.Black) { Value = "オプション装備編集", X = 230, Y = 8 }; type = new StringSprite(CommonObjects.FontSystemMedium, CommonObjects.Colors.Blue) { Value = "装備タイプ", X = 160, Y = 32 + 8 }; dirc = new StringSprite(CommonObjects.FontSystemMedium, CommonObjects.Colors.Green) { Value = "装備方向", X = 160, Y = 64 + 8 }; mode = new StringSprite(CommonObjects.FontSystemMedium, CommonObjects.Colors.Green) { Value = "モード", X = 160, Y = 96 + 8 }; uvdesc = new List<StringSprite>() { new StringSprite(CommonObjects.FontSystemMedium, CommonObjects.Colors.Red) { Value = "装備固有オプション1", X = 160, Y = 128 + 8 }, new StringSprite(CommonObjects.FontSystemMedium, CommonObjects.Colors.Red) { Value = "装備固有オプション2", X = 160, Y = 160 + 8 }, new StringSprite(CommonObjects.FontSystemMedium, CommonObjects.Colors.Red) { Value = "装備固有オプション3", X = 160, Y = 192 + 8 }, }; seltype = new StringSprite(CommonObjects.FontSystemMedium, CommonObjects.Colors.Black) { Value = "", X = 360, Y = 32 + 8 }; seldirc = new StringSprite(CommonObjects.FontSystemMedium, CommonObjects.Colors.Black) { Value = "", X = 360, Y = 64 + 8 }; selmode = new StringSprite(CommonObjects.FontSystemMedium, CommonObjects.Colors.Black) { Value = "", X = 360, Y = 96 + 8 }; ipuvdesc = new List<StringSprite>() { new StringSprite(CommonObjects.FontSystemMedium, CommonObjects.Colors.Black) { Value = "", X = 360, Y = 128 + 8 }, new StringSprite(CommonObjects.FontSystemMedium, CommonObjects.Colors.Black) { Value = "", X = 360, Y = 160 + 8 }, new StringSprite(CommonObjects.FontSystemMedium, CommonObjects.Colors.Black) { Value = "", X = 360, Y = 192 + 8 }, }; uvs = new List<StringSprite>(); uvs.Add(type); uvs.Add(dirc); uvs.Add(mode); uvs.AddRange(uvdesc); seluvs = new List<StringSprite>(); seluvs.Add(seltype); seluvs.Add(seldirc); seluvs.Add(selmode); seluvs.AddRange(ipuvdesc); uvsmal = new List<MenuAllocationInformation> { new MenuAllocationInformation{ X = 144, Y = 48 }, new MenuAllocationInformation{ X = 144, Y = 80 }, new MenuAllocationInformation{ X = 144, Y = 112 }, new MenuAllocationInformation{ X = 144, Y = 144 }, new MenuAllocationInformation{ X = 144, Y = 176 }, new MenuAllocationInformation{ X = 144, Y = 208 }, }; for (int i = 0; i < uvsmal.Count; i++) { int ci = i; uvsmal[i].Upper = uvsmal[(i + uvsmal.Count - 1) % uvsmal.Count]; uvsmal[i].Lower = uvsmal[(i + 1) % uvsmal.Count]; uvsmal[i].AvailableChangingAction = (p, v) => { uvs[ci].Alpha = seluvs[ci].Alpha = v ? 1.0 : 0.5; }; if (i >= 1) uvsmal[i].IsAvailable = false; } udc = new[] { new MultiAdditionalCoroutineSprite(){HomeX=64,HomeY=64,ScaleX=0.8,ScaleY=0.4,Image=CommonObjects.ImageCursor128[2],X=64,Y=48}, new MultiAdditionalCoroutineSprite(){HomeX=64,HomeY=64,ScaleX=0.8,ScaleY=0.4,Image=CommonObjects.ImageCursor128[3],X=64,Y=208}, }; selopts = new List<MultiAdditionalCoroutineSprite>(); foreach (var i in opts) { if (i == null) continue; selopts.Add(new MultiAdditionalCoroutineSprite() { HomeX = 48, HomeY = 48, X = 64, Y = 128, Image = BigUserImageManager.GetUserImage(i), Alpha = 0 }); } avu = selopts.Count; for (int i = 0; i < avu; i++) { osi[i] = 0; oii[i] = new OptionInitializationInformation(); } selopts.Add(new MultiAdditionalCoroutineSprite() { HomeX = 48, HomeY = 48, X = 64, Y = 128, Image = CommonObjects.ImageOptionEditEnd, Alpha = 0 }); selopts[usel].Alpha = 1; mc = new MultiAdditionalCoroutineSprite() { Image = CommonObjects.ImageCursor128[1], HomeX = 64, HomeY = 64, ScaleX = 0.25, ScaleY = 0.25 }; mc.X = uvsmal[smsel].X; mc.Y = uvsmal[smsel].Y; }
public TitleChildSceneOptionUserSelect(AccountInformation ainfo, int idx, bool back, User[] us) { b = back; ai = ainfo; uinfo = new UserInformation(ai.Users[idx]); index = idx; mvf = (ta, aid, max) => (mai, val) => { if (max > aid) ta[aid].Alpha = val ? 1.0 : 0.5; }; users = us; opod = new List<StringSprite> { new StringSprite(CommonObjects.FontSystemMedium, CommonObjects.Colors.Black) { X = 64, Y = 64 - 8, Value = "1st" }, new StringSprite(CommonObjects.FontSystemMedium, CommonObjects.Colors.Black) { X = 64, Y = 96 - 8, Value = "2nd" }, new StringSprite(CommonObjects.FontSystemMedium, CommonObjects.Colors.Black) { X = 64, Y = 128 - 8, Value = "3rd" }, new StringSprite(CommonObjects.FontSystemMedium, CommonObjects.Colors.Black) { X = 64, Y = 160 - 8, Value = "4th" }, new StringSprite(CommonObjects.FontSystemMedium, CommonObjects.Colors.Black) { X = 64, Y = 192 - 8, Value = "5th" } }; next = new StringSprite(CommonObjects.FontSystemMedium, CommonObjects.Colors.Blue) { X = 64, Y = nextpos - 8, Value = "決定" }; opsn = new List<StringSprite> { new StringSprite(CommonObjects.FontSystemMedium, CommonObjects.Colors.Black) { X = 128, Y = 64 - 8, Value = "" }, new StringSprite(CommonObjects.FontSystemMedium, CommonObjects.Colors.Black) { X = 128, Y = 96 - 8, Value = "" }, new StringSprite(CommonObjects.FontSystemMedium, CommonObjects.Colors.Black) { X = 128, Y = 128 - 8, Value = "" }, new StringSprite(CommonObjects.FontSystemMedium, CommonObjects.Colors.Black) { X = 128, Y = 160 - 8, Value = "" }, new StringSprite(CommonObjects.FontSystemMedium, CommonObjects.Colors.Black) { X = 128, Y = 192 - 8, Value = "" } }; mal = new List<MenuAllocationInformation> { new MenuAllocationInformation(){ X = 32, Y = 64 }, new MenuAllocationInformation(){ X = 32, Y = 96 }, new MenuAllocationInformation(){ X = 32, Y = 128 }, new MenuAllocationInformation(){ X = 32, Y = 160 }, new MenuAllocationInformation(){ X = 32, Y = 192 }, new MenuAllocationInformation(){ X = 32, Y = 224 }, }; opop = new StringSprite(CommonObjects.FontSystemMedium, CommonObjects.Colors.Black) { X = 64, Y = 224 - 8, Value = "編集 削除" }; opopmal = new List<MenuAllocationInformation> { new MenuAllocationInformation(){X=40,Y=224}, new MenuAllocationInformation(){X=136,Y=224}, }; okcancel = new List<StringSprite> { new StringSprite(CommonObjects.FontSystemMedium, CommonObjects.Colors.Black) { Value = "OK", X = 528, Y = 180 , Alpha = 0}, new StringSprite(CommonObjects.FontSystemMedium, CommonObjects.Colors.Black) { Value = "キャンセル", X = 528, Y = 204, Alpha = 0 } }; ocmal = new List<MenuAllocationInformation> { new MenuAllocationInformation(){X=512,Y=180+8,IsAvailable=false}, new MenuAllocationInformation(){X=512,Y=204+8}, }; ouip = new OptionUserInformationPanel(ai.Tokens[index], ai.Users[index]) { ChangingAction = (p) => { //タイムラグ対策 if (cs != 2) return; if (p && users.Where(q => q != null).All(q => q.Id != ouip.SourceUser.Id)) { valid.Value = "オプションOK"; valid.Color = CommonObjects.Colors.Blue; ocmal[0].IsAvailable = true; } else { valid.Value = "オプションNG"; valid.Color = CommonObjects.Colors.Red; ocmsel = 1; ocmal[0].IsAvailable = false; mc.AddSubOperation(SpritePatterns.VerticalMove(10, ocmal[ocmsel].Y, Easing.OutQuad)); } } }; for (int i = 0; i < opopmal.Count; i++) { opopmal[i].Lefter = opopmal[(i + opopmal.Count - 1) % opopmal.Count]; opopmal[i].Righter = opopmal[(i + 1) % opopmal.Count]; } for (int i = 0; i < ocmal.Count; i++) { ocmal[i].Upper = ocmal[(i + ocmal.Count - 1) % ocmal.Count]; ocmal[i].Lower = ocmal[(i + 1) % ocmal.Count]; ocmal[i].AvailableChangingAction = mvf(okcancel, i, okcancel.Count); } for (int i = 0; i < mal.Count; i++) { mal[i].Upper = mal[(i + mal.Count - 1) % mal.Count]; mal[i].Lower = mal[(i + 1) % mal.Count]; mal[i].AvailableChangingAction = mvf(opod, i, opod.Count); mal[i].IsAvailable = (i < users.Length && users[i] != null) || i == mal.Count - 1 || (users.Count(p => p != null) == i); } for (int i = 0; i < opsn.Count; i++) { if (users[i] != null) opsn[i].Value = users[i].ScreenName; } valid = new StringSprite(CommonObjects.FontSystemMedium, CommonObjects.Colors.Black) { X = 320, Y = 216, Value = "オプションOK/NG" }; mc = new MultiAdditionalCoroutineSprite() { Image = CommonObjects.ImageCursor128[1], HomeX = 64, HomeY = 64, ScaleX = 0.25, ScaleY = 0.25 }; cs = 0; ki = null; msel = 0; ocmsel = 0; }