void IGimmickDecorator.OnActivate(Gimmick owner, Actor gimmickOwner) { var parent = gimmickOwner.TransformHolder.GetWeaponOrigin(gimmickOwner.StatusController.Direction); owner.transform.SetParent(parent); owner.transform.localPosition = Vector3.zero; }
public void Setup(Gimmick gimmick, AccessoryRecord dropData) { foreach (var i in gimmick.GetComponentsInChildren <IAddAccessory>()) { i.Setup(dropData); } }
public IHttpActionResult GetGimmickStats(int gimmickId) { if (gimmickId <= 0) { return(BadRequest("Gimmick ID is not valid!")); } try { using (var ctx = new BugghyDbContext()) { Gimmick gi = ctx.Gimmicks.SingleOrDefault(x => x.GimmickId == gimmickId); if (gi == null) { return(InternalServerError(new InvalidOperationException("Invalid Gimmick ID!"))); } var query = ctx.Issues.Where(x => x.GimmickId == gimmickId); return(Ok(Dto.Wrap(new Poco.Stats { Opened = query.Count(x => x.Status == IssueStatus.Opened), Working = query.Count(x => x.Status == IssueStatus.Evaluating || x.Status == IssueStatus.Working), Closed = query.Count(x => x.Status == IssueStatus.Resolved || x.Status == IssueStatus.Rejected || x.Status == IssueStatus.Closed) }))); } } catch (Exception ex) { return(InternalServerError(ex)); } }
public void SetModel(GimmickId id, Gimmick model) { Id = id; _model = model; UpdatePreviewAnimation(true); RaiseAllPropertiesChanged(); }
public void Setup(Gimmick gimmick, ImportantItemRecord dropData) { foreach (var i in gimmick.GetComponentsInChildren <IAddImportantItem>()) { i.Setup(dropData); } }
public void AccessorsSetCorrectValues() { Gimmick a = new Gimmick { Name = "Pillar of Fire", Image = 24, AttackType = TypeId.Dragon, DestroyType = TypeId.Ghost, State1Object = GimmickObjectId.CogWheel, State2Object = GimmickObjectId.DriftingIce, Effect = MoveEffectId.ChanceToParalyzeTarget, UnknownQuantity1 = 4, Animation1 = MoveAnimationId.BlackSplatter, Animation2 = MoveAnimationId.BlueYellowStars, Range = GimmickRangeId.RightBackCorner, }; a.Name.Should().Be("Pillar of Fire"); a.Image.Should().Be(24); a.AttackType.Should().Be(TypeId.Dragon); a.DestroyType.Should().Be(TypeId.Ghost); a.State1Object.Should().Be(GimmickObjectId.CogWheel); a.State2Object.Should().Be(GimmickObjectId.DriftingIce); a.Effect.Should().Be(MoveEffectId.ChanceToParalyzeTarget); a.UnknownQuantity1.Should().Be(4); a.Animation1.Should().Be(MoveAnimationId.BlackSplatter); a.Animation2.Should().Be(MoveAnimationId.BlueYellowStars); a.Range.Should().Be(GimmickRangeId.RightBackCorner); }
// Update is called once per frame void Update() { bool ositaka; ositaka = tutorialPlayer.Osita; if (ositaka) { if (gimmickButton != Gimmick.Normal) { gimmick = gimmickButton; tag = gimmickButton.ToString(); mat = matArray[(int)gimmickButton]; if (remaining[tmp] != 0) { selecting[tmp].GetComponentInChildren <Image>().color = new Color(255.0f / 255.0f, 255.0f / 255.0f, 255.0f / 255.0f, 255.0f / 255.0f); } tmp = (int)gimmickButton; if (remaining[(int)gimmickButton] != 0) { selecting[(int)gimmickButton].GetComponentInChildren <Image>().color = new Color(189.0f / 255.0f, 241.0f / 255.0f, 115.0f / 255.0f, 255.0f / 255.0f); } gimmickButton = Gimmick.Normal; } TouchJudg(); } }
public void AccessorsReturnCorrectValues() { Gimmick a = new Gimmick(new byte[] { 0x50, 0x69, 0x6C, 0x6C, 0x61, 0x72, 0x20, 0x6F, 0x66, 0x20, 0x46, 0x69, 0x72, 0x65, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x41, 0x48, 0xAC, 0x80, 0x00, 0xFF, 0xCA, 0x94, 0x41, 0x20, 0x2A, 0x00, 0xFF, 0x07, 0x01, 0x04, 0x4A, 0x69, 0x73, 0x03, }); a.Name.Should().Be("Pillar of Fire"); a.Image.Should().Be(10); a.AttackType.Should().Be(TypeId.Fire); a.DestroyType.Should().Be(TypeId.Water); a.State1Object.Should().Be(GimmickObjectId.PillarOfFire_State1); a.State2Object.Should().Be(GimmickObjectId.PillarOfFire_State2); a.Effect.Should().Be(MoveEffectId.NoEffect); a.UnknownQuantity1.Should().Be(0); a.Animation1.Should().Be(MoveAnimationId.Default); a.Animation2.Should().Be(MoveAnimationId.GreySmokeYellowStars); a.Range.Should().Be(GimmickRangeId.NoRange); }
public IHttpActionResult Delete(int gimmickId) { if (gimmickId <= 0) { return(BadRequest("Gimmick ID is not valid!")); } try { using (var ctx = new BugghyDbContext()) { Gimmick gi = ctx.Gimmicks.SingleOrDefault(x => x.GimmickId == gimmickId); if (gi == null) { return(InternalServerError(new InvalidOperationException("Invalid Gimmick ID!"))); } ctx.Gimmicks.Remove(gi); ctx.SaveChanges(); return(Ok()); } } catch (Exception ex) { return(InternalServerError(ex)); } }
public void Setup(Gimmick gimmick, WeaponRecord dropData) { foreach (var i in gimmick.GetComponentsInChildren <IAddWeapon>()) { i.Setup(dropData); } }
public void Setup(Gimmick gimmick, MaterialRecord dropData) { foreach (var i in gimmick.GetComponentsInChildren <IAddMaterial>()) { i.Setup(dropData); } }
private void GimmickList_ItemSelected(object sender, UIItemListSelectEventArgs e) { Gimmick gimmick = e.Item as Gimmick; var c = new GimmickViewController(); c.Arguments = new UIBundle(); c.Arguments.PutObject <Gimmick>("Gimmick", gimmick); this.NavigationController.PushViewController(c, true); }
void IGimmickDecorator.OnActivate(Gimmick owner, Actor gimmickOwner) { Observable.Timer(TimeSpan.FromSeconds(this.currentDelaySeconds)) .TakeUntilDisable(owner) .SubscribeWithState(owner, (_, _owner) => { _owner.Return(); }) .AddTo(owner); }
void IGimmickDecorator.OnActivate(Gimmick owner, Actor gimmickOwner) { var halfRandomAngle = randomAngle * 0.5f; var random = Random.Range(-halfRandomAngle, halfRandomAngle); var force = Random.Range(this.forceMin, this.forceMax); this.transform.rotation *= Quaternion.AngleAxis(this.offsetAngle, Vector3.forward); this.transform.rotation *= Quaternion.AngleAxis(random, Vector3.forward); this.controlledRigidbody2D.velocity = Vector2.zero; this.controlledRigidbody2D.AddForce(this.transform.right * force); }
void IGimmickDecorator.OnActivate(Gimmick owner, Actor gimmickOwner) { this.target.enabled = !this.isEnable; Observable.Timer(TimeSpan.FromSeconds(this.delaySeconds)) .TakeUntilDisable(owner) .SubscribeWithState(this, (_, _this) => { _this.target.enabled = _this.isEnable; }) .AddTo(owner); }
//初期化 public void Reset(Gimmick choiceGimmick) { okFlag = false; choiceNum = 0; activeFlag = true; gameTask.eventCount++; this.choiceGimmick = choiceGimmick; choiceMark.SetActive(true); choiceMark.transform.localScale = Vector3.one; MarkPos(0); UiAdd(); }
public void TouchJudg() { var phase = GodTouch.GetPhase(); var pos = GodTouch.GetPosition(); switch (phase) //if(Input.GetMouseButtonDown(0)) { case GodPhase.Began: // 押された RaycastHit hit; Ray ray = camera.ScreenPointToRay(Input.mousePosition); if (EventSystem.current.IsPointerOverGameObject()) { break; } if (Input.touchCount > 0 && EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId)) { // かぶさってるので処理キャンセル(タップver) break; } if (Physics.Raycast(ray, out hit, maxDistance)) { // レイに当たったオブジェクトに何かをする if (hit.transform.tag == "Test" && gimmick != Gimmick.Normal && remaining[(int)gimmick] != 0) { hit.transform.tag = tag; hit.collider.GetComponent <Renderer>().material = mat; remaining[(int)gimmick]--; text[(int)gimmick].text = remaining[(int)gimmick].ToString(); sound1.PlayOneShot(sound1.clip); if (remaining[(int)gimmick] == 0) { selecting[(int)gimmick].GetComponentInChildren <Image>().color = new Color(255.0f / 255.0f, 255.0f / 255.0f, 255.0f / 255.0f, 100.0f / 255.0f); } else { selecting[(int)gimmick].GetComponentInChildren <Image>().color = new Color(255.0f / 255.0f, 255.0f / 255.0f, 255.0f / 255.0f, 255.0f / 255.0f); } gimmick = Gimmick.Normal; tag = gimmick.ToString(); mat = matArray[(int)gimmick]; tutorialPlayer.StopReset(); } } break; } }
private void GimmickList_ItemSelected(object sender, ItemListSelectEventArgs e) { Gimmick gimmick = e.Item as Gimmick; var f = new GimmickFragment(); f.Arguments = new Bundle(); f.Arguments.PutObject <Gimmick>("Gimmick", gimmick); this.FragmentManager.BeginTransaction() .AddToBackStack("BeforeGimmickFragment") .Replace(Resource.Id.ContentLayout, f, "GimmickFragment") .Commit(); }
void IGimmickDecorator.OnActivate(Gimmick owner, Actor gimmickOwner) { Observable.Interval(TimeSpan.FromSeconds(this.interval)) .Take(this.limit) .TakeUntilDisable(owner) .SubscribeWithState(this, (_, _this) => { var effect = _this.prefab.Rent(); effect.transform.position = _this.syncTransform.position; effect.transform.rotation = _this.syncTransform.rotation; }) .AddTo(owner); }
public static void Render(this IConsole console, Gimmick gimmick, GimmickId id) { console.WriteTitle($"{id}"); console.WriteProperty("Name", gimmick.Name); console.WriteProperty("Attack Type", gimmick.AttackType); console.WriteProperty("Destroy Type", gimmick.DestroyType); console.WriteProperty("Animation 1", gimmick.Animation1); console.WriteProperty("Animation 2", gimmick.Animation2); console.WriteProperty("Range", gimmick.Range); console.WriteProperty("Image", gimmick.Image); console.WriteProperty("State-1 Sprite", gimmick.State1Object); console.WriteProperty("State-2 Sprite", gimmick.State2Object); console.WriteProperty("Effect", gimmick.Effect); }
private void strip_gimmick(object sender, EventArgs e, Gimmick gimmick) { //i had a slightly better idea of doing this but csc hated it // well this is a slightly better idea of doing this now ToolStripMenuItem gimmickItem = sender as ToolStripMenuItem; if (gimmickItem == null) { return; //wanted to add checks for tags too but i cant figure that out } gimmickItem.Checked = !gimmickItem.Checked; gimmick.enabled = gimmickItem.Checked; strip_update(null, null); }
public List <Gimmick> SelectGimmicks() { List <Gimmick> gimmicks = new List <Gimmick>(); ExecuteReader(SqlSelectGimmicks, reader => { while (reader.Read()) { Gimmick gimmick = ReadGimmick(reader); gimmicks.Add(gimmick); } }); return(gimmicks); }
public IHttpActionResult Update(Poco.Gimmick item) { if (item.GimmickId <= 0) { return(BadRequest("Gimmick ID is not valid!")); } if (String.IsNullOrWhiteSpace(item.Name)) { return(BadRequest("Name is not valid!")); } if (String.IsNullOrWhiteSpace(item.Owner)) { return(BadRequest("Owner is not valid!")); } try { using (var ctx = new BugghyDbContext()) { Gimmick gi = ctx.Gimmicks.SingleOrDefault(x => x.GimmickId == item.GimmickId); if (gi == null) { return(InternalServerError(new InvalidOperationException("Invalid Gimmick ID!"))); } gi.Name = item.Name; gi.Description = item.Description; gi.Owner = item.Owner; ctx.SaveChanges(); return(Ok(Dto.Wrap(new Poco.Gimmick { GimmickId = gi.GimmickId, Name = gi.Name, Description = gi.Description, Owner = gi.Owner, ImageUrl = gi.ImageUrl, CreationDate = gi.CreationDate }))); } } catch (Exception ex) { return(InternalServerError(ex)); } }
public List <Gimmick> SelectGimmicksByMapId(int mapId) { List <Gimmick> gimmicks = new List <Gimmick>(); ExecuteReader(SqlSelectGimmicksByMapId, command => { AddParameter(command, "@map_id", mapId); }, reader => { while (reader.Read()) { Gimmick gimmick = ReadGimmick(reader); gimmicks.Add(gimmick); } }); return(gimmicks); }
private Gimmick ReadGimmick(DbDataReader reader) { Gimmick gimmick = new Gimmick(); gimmick.Id = GetInt32(reader, "id"); gimmick.MapId = GetInt32(reader, "map_id"); gimmick.X = GetFloat(reader, "x"); gimmick.Y = GetFloat(reader, "y"); gimmick.Z = GetFloat(reader, "z"); gimmick.Heading = (byte)GetInt32(reader, "heading"); gimmick.ModelId = GetInt32(reader, "model_id"); gimmick.State = GetInt32(reader, "state"); gimmick.Created = GetDateTime(reader, "created"); gimmick.Updated = GetDateTime(reader, "updated"); return(gimmick); }
private Gimmick ReadGimmick(DbDataReader reader) { Gimmick gimmick = new Gimmick(); gimmick.id = GetInt32(reader, "id"); gimmick.mapId = GetInt32(reader, "map_id"); gimmick.x = GetFloat(reader, "x"); gimmick.y = GetFloat(reader, "y"); gimmick.z = GetFloat(reader, "z"); gimmick.heading = (byte)GetInt32(reader, "heading"); gimmick.modelId = GetInt32(reader, "model_id"); gimmick.state = GetInt32(reader, "state"); gimmick.created = GetDateTime(reader, "created"); gimmick.updated = GetDateTime(reader, "updated"); return(gimmick); }
/// <summary> /// 現在シーン上に配置されているオブジェクトをいくつかのタグごとで別のJson用オブジェクトにして、Jsonファイルに書き込む /// </summary> /// <param name="stagename">保存するステージの名前</param> /// <param name="limit">ステージの制限時間</param> /// <param name="slotcount">アイテムスロットの個数</param> /// <param name="region">ステージの(行動可能)範囲</param> public static void Save(string stagename, int limit, int slotcount, Region region) { Stage stage = new Stage(); stage.TimeLimit = limit; stage.SlotCount = slotcount; stage.StageRegion = region; foreach (var g in GameObject.FindGameObjectsWithTag("Player")) { Player player = new Player(g); stage.Players.Add(player); } foreach (var g in GameObject.FindGameObjectsWithTag("Terrain")) { Terrain terrain = new Terrain(g); stage.Terrains.Add(terrain); } foreach (var g in GameObject.FindGameObjectsWithTag("Gimmick")) { Gimmick gimmick = new Gimmick(g); stage.Gimmicks.Add(gimmick); } foreach (var g in GameObject.FindGameObjectsWithTag("Flag")) { Flag flag = new Flag(g); stage.Flags.Add(flag); } foreach (var g in GameObject.FindGameObjectsWithTag("Item")) { Item item = new Item(g); stage.Items.Add(item); } string jsontext = JsonMapper.ToJson(stage); StreamWriter writer = new StreamWriter(Application.dataPath + "/Resources/StageJson/" + stagename + ".json"); writer.Write(jsontext); writer.Close(); Debug.Log("ステージ作った(ステージ名:" + stagename + ")"); }
public GimmickViewModel(IExternalService externalService, IOverrideSpriteProvider overrideSpriteProvider, IJumpService jumpService) { _model = new Gimmick(); _externalService = externalService; _spriteProvider = overrideSpriteProvider; JumpToGimmickRangeCommand = new RelayCommand <GimmickRangeId>(id => jumpService.JumpTo(GimmickRangeSelectorEditorModule.Id, (int)id)); SetPreviewAnimationModeCommand = new RelayCommand <GimmickAnimationPreviewMode>(mode => { PreviewAnimationMode = mode; UpdatePreviewAnimation(false); }); UpdatePreviewAnimation(false); }
public bool UpdateGimmick(Gimmick gimmick) { int rowsAffected = ExecuteNonQuery(SqlUpdateGimmick, command => { AddParameter(command, "@id", gimmick.Id); AddParameter(command, "@map_id", gimmick.MapId); AddParameter(command, "@x", gimmick.X); AddParameter(command, "@y", gimmick.Y); AddParameter(command, "@z", gimmick.Z); AddParameter(command, "@heading", gimmick.Heading); AddParameter(command, "@model_id", gimmick.ModelId); AddParameter(command, "@state", gimmick.State); AddParameter(command, "@created", gimmick.Created); AddParameter(command, "@updated", gimmick.Updated); }); return(rowsAffected > NoRowsAffected); }
void IGimmickDecorator.OnActivate(Gimmick owner, Actor gimmickOwner) { this.duration = this.initialDuration; this.count = 0; owner.UpdateAsObservable() .TakeUntilDisable(owner) .Where(_ => this.count < this.limit) .SubscribeWithState2(this, gimmickOwner, (_, _this, _gimmickOwner) => { _this.duration += Time.deltaTime; if (_this.duration >= _this.interval) { _this.duration = 0.0f; _this.count++; _this.CreateOtherGimmick(_gimmickOwner); } }); }
/// <summary> /// 指定された名前のJsonファイルを読みに行って、その中身をステージ上に出す /// </summary> /// <param name="filename"></param> public static void Load(string filename) { TextAsset asset = Resources.Load("StageJson/" + filename) as TextAsset; if(asset == null) { Debug.Log("ステージ読み込めなかった(ステージ名:" + filename + ")"); return; } JsonNode json = JsonNode.Parse(asset.text); Transform parent; parent = GameObject.Find("/Terrains").transform; foreach(var item in json["Terrains"]) { GameObject g = new Terrain(item).Load(); if (g != null) g.transform.SetParent(parent); } parent = GameObject.Find("/Enemies").transform; foreach(var item in json["Enemies"]) { GameObject g = new Enemy(item).Load(); if (g != null) g.transform.SetParent(parent); } parent = GameObject.Find("/Gimmicks").transform; foreach (var item in json["Gimmicks"]) { GameObject g = new Gimmick(item).Load(); if (g != null) g.transform.SetParent(parent); } parent = GameObject.Find("/Items").transform; foreach (var item in json["Items"]) { GameObject g = new Item(item).Load(); if (g != null) g.transform.SetParent(parent); } }
/// <summary> /// 現在シーン上に配置されているオブジェクトをいくつかのタグごとで別のJson用オブジェクトにして、Jsonファイルに書き込む /// </summary> /// <param name="filename">保存するステージの名前</param> /// <param name="limit">ステージの制限時間</param> /// <param name="slotcount">アイテムスロットの個数</param> /// <param name="region">ステージの(行動可能)範囲</param> public static void Save(string filename) { Stage stage = new Stage(); foreach(var g in GameObject.FindGameObjectsWithTag("Terrain")) { if (g.transform.parent.name != "Terrains") continue; Terrain terrain = new Terrain(g); stage.Terrains.Add(terrain); } foreach(var g in GameObject.FindGameObjectsWithTag("Enemy")) { if (g.transform.parent.name != "Enemies") continue; Enemy enemy = new Enemy(g); stage.Enemies.Add(enemy); } foreach(var g in GameObject.FindGameObjectsWithTag("Gimmick")) { if (g.transform.parent.name != "Gimmicks") continue; Gimmick gimmick = new Gimmick(g); stage.Gimmicks.Add(gimmick); } foreach(var g in GameObject.FindGameObjectsWithTag("Item")) { if (g.transform.parent.name != "Items") continue; Item item = new Item(g); stage.Items.Add(item); } string jsontext = JsonMapper.ToJson(stage); StreamWriter writer = new StreamWriter(Application.dataPath + "/Resources/StageJson/" + filename + ".json"); writer.Write(jsontext); writer.Close(); Debug.Log("ステージ作った(ステージ名:" + filename + ")"); }
/// <summary> /// 現在シーン上に配置されているオブジェクトをいくつかのタグごとで別のJson用オブジェクトにして、Jsonファイルに書き込む /// </summary> /// <param name="stagename">保存するステージの名前</param> /// <param name="limit">ステージの制限時間</param> /// <param name="slotcount">アイテムスロットの個数</param> /// <param name="region">ステージの(行動可能)範囲</param> public static void Save(string stagename, int limit, int slotcount, Region region) { Stage stage = new Stage(); stage.TimeLimit = limit; stage.SlotCount = slotcount; stage.StageRegion = region; foreach(var g in GameObject.FindGameObjectsWithTag("Player")) { Player player = new Player(g); stage.Players.Add(player); } foreach(var g in GameObject.FindGameObjectsWithTag("Terrain")) { Terrain terrain = new Terrain(g); stage.Terrains.Add(terrain); } foreach(var g in GameObject.FindGameObjectsWithTag("Gimmick")) { Gimmick gimmick = new Gimmick(g); stage.Gimmicks.Add(gimmick); } foreach(var g in GameObject.FindGameObjectsWithTag("Flag")) { Flag flag = new Flag(g); stage.Flags.Add(flag); } foreach(var g in GameObject.FindGameObjectsWithTag("Item")) { Item item = new Item(g); stage.Items.Add(item); } string jsontext = JsonMapper.ToJson(stage); StreamWriter writer = new StreamWriter(Application.dataPath + "/Resources/StageJson/" + stagename + ".json"); writer.Write(jsontext); writer.Close(); Debug.Log("ステージ作った(ステージ名:" + stagename + ")"); }
/// <summary> /// 指定された名前のJsonファイルを読みに行って、その中身をステージ上に出す /// </summary> /// <param name="stagename"></param> public static void Load(string stagename) { TextAsset asset = Resources.Load("StageJson/" + GameSetting.PlayerCount + "P/" + stagename) as TextAsset; if(asset == null) { Debug.Log("ステージ読み込めなかった(ステージ名:" + stagename + ")"); return; } JsonNode json = JsonNode.Parse(asset.text); GameSetting.TimeLimit = (int)json["TimeLimit"].Get<long>(); GameSetting.SlotCount = (int)json["SlotCount"].Get<long>(); Transform parent; parent = (GameObject.Find("/Players") as GameObject).transform; //foreach (var item in json["Players"]) //{ // GameObject g = new Player(item).Load(); // if (g != null) // { // g.transform.SetParent(parent); // GameSetting.PlayerCount++; // } //} for(var i = 0;i < json["Players"].Count;i++) { string prefabname = GameSetting.Players[i].PrefabName; GameObject g = new Player(json["Players"][i]).Load(prefabname); if(g != null) { g.name = "Player" + (i + 1); g.transform.SetParent(parent); } } parent = (GameObject.Find("/Terrains") as GameObject).transform; foreach(var item in json["Terrains"]) { GameObject g = new Terrain(item).Load(); if (g != null) g.transform.SetParent(parent); } parent = (GameObject.Find("/Gimmicks") as GameObject).transform; foreach (var item in json["Gimmicks"]) { GameObject g = new Gimmick(item).Load(); if (g != null) g.transform.SetParent(parent); } GameSetting.FlagCount = 0; parent = (GameObject.Find("/Flags") as GameObject).transform; foreach (var item in json["Flags"]) { GameObject g = new Flag(item).Load(); if (g != null) { g.transform.SetParent(parent); GameSetting.FlagCount++; } } parent = (GameObject.Find("/Items") as GameObject).transform; foreach (var item in json["Items"]) { GameObject g = new Item(item).Load(); if (g != null) g.transform.SetParent(parent); } }
/// <summary> /// 指定された名前のJsonファイルを読みに行って、その中身をステージ上に出す /// </summary> /// <param name="stagename"></param> public static void Load(string stagename) { TextAsset asset = Resources.Load("StageJson/" + stagename) as TextAsset; if(asset == null) { Debug.Log("ステージ読み込めなかった(ステージ名:" + stagename + ")"); return; } JsonNode json = JsonNode.Parse(asset.text); GameSetting.TimeLimit = (int)json["TimeLimit"].Get<long>(); GameSetting.SlotCount = (int)json["SlotCount"].Get<long>(); GameSetting.StageName = stagename; Transform parent; parent = (GameObject.Find("/Players") as GameObject).transform; foreach (var item in json["Players"]) { GameObject g = new Player(item).Load(); if (g != null) g.transform.SetParent(parent); } parent = (GameObject.Find("/Terrains") as GameObject).transform; foreach(var item in json["Terrains"]) { GameObject g = new Terrain(item).Load(); if (g != null) g.transform.SetParent(parent); } parent = (GameObject.Find("/Gimmicks") as GameObject).transform; foreach (var item in json["Gimmicks"]) { GameObject g = new Gimmick(item).Load(); if (g != null) g.transform.SetParent(parent); } parent = (GameObject.Find("/Flags") as GameObject).transform; foreach (var item in json["Flags"]) { GameObject g = new Flag(item).Load(); if (g != null) g.transform.SetParent(parent); } parent = (GameObject.Find("/Items") as GameObject).transform; foreach (var item in json["Items"]) { GameObject g = new Item(item).Load(); if (g != null) g.transform.SetParent(parent); } }