Beispiel #1
0
        void IGimmickDecorator.OnActivate(Gimmick owner, Actor gimmickOwner)
        {
            var parent = gimmickOwner.TransformHolder.GetWeaponOrigin(gimmickOwner.StatusController.Direction);

            owner.transform.SetParent(parent);
            owner.transform.localPosition = Vector3.zero;
        }
Beispiel #2
0
 public void Setup(Gimmick gimmick, AccessoryRecord dropData)
 {
     foreach (var i in gimmick.GetComponentsInChildren <IAddAccessory>())
     {
         i.Setup(dropData);
     }
 }
Beispiel #3
0
        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);
     }
 }
Beispiel #6
0
    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);
    }
Beispiel #7
0
    // 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();
        }
    }
Beispiel #8
0
    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);
    }
Beispiel #9
0
        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));
            }
        }
Beispiel #10
0
 public void Setup(Gimmick gimmick, WeaponRecord dropData)
 {
     foreach (var i in gimmick.GetComponentsInChildren <IAddWeapon>())
     {
         i.Setup(dropData);
     }
 }
Beispiel #11
0
 public void Setup(Gimmick gimmick, MaterialRecord dropData)
 {
     foreach (var i in gimmick.GetComponentsInChildren <IAddMaterial>())
     {
         i.Setup(dropData);
     }
 }
Beispiel #12
0
        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);
 }
Beispiel #14
0
        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);
        }
Beispiel #15
0
 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);
 }
Beispiel #16
0
 //初期化
 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();
 }
Beispiel #17
0
    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;
        }
    }
Beispiel #18
0
        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);
 }
Beispiel #21
0
    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);
    }
Beispiel #22
0
        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);
        }
Beispiel #23
0
        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));
            }
        }
Beispiel #24
0
        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);
        }
Beispiel #25
0
        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);
        }
Beispiel #27
0
        /// <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 + ")");
        }
Beispiel #28
0
    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);
    }
Beispiel #29
0
        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);
         }
     });
 }
Beispiel #31
0
        /// <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);
            }
        }
Beispiel #32
0
        /// <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 + ")");
        }
Beispiel #33
0
        /// <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 + ")");
        }
Beispiel #34
0
        /// <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);
            }
        }
Beispiel #35
0
        /// <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);
            }
        }