コード例 #1
0
ファイル: Player.cs プロジェクト: kurodakazumichi/Nekopon
        /// <summary>
        /// ステータスなどを仮表示
        /// </summary>
        public void OnGUI()
        {
            float unit    = Screen.width / 20f;
            float centerX = Screen.width / 2f;
            float biasX   = (Type == Define.App.Player.P1)
        ? -2.3f * unit
        : 0.7f * unit;

            this.__font.fontSize = 27;

            GUI.Label(new Rect(centerX + biasX, unit * 0.4f, 100, 100), ((int)this.status.Hp).ToString(), this.__font);

            GUI.Label(new Rect(centerX + biasX, unit * 1.1f, 100, 100), ((int)this.status.Ap).ToString(), this.__font);

            int i = 0;

            MyEnum.ForEach <Define.App.Attribute>((a) => {
                GUI.Label(
                    new Rect(
                        centerX + biasX,
                        unit * 2.9f + unit * i * 0.77f,
                        100,
                        100
                        ),
                    ((int)this.status.GetMp(a)).ToString(),
                    this.__font
                    );
                i++;
            });
        }
コード例 #2
0
        public static void Unload()
        {
            var rm = ResourceSystem.Instance;

            MyEnum.ForEach <Type>((type) => { rm.Unload($"Logo.{type}.sprite"); });
            Sprites.Clear();
        }
コード例 #3
0
        public static void Load(System.Action pre, System.Action done)
        {
            var rm = ResourceSystem.Instance;

            MyEnum.ForEach <Type>((type) => {
                rm.Load <Sprite>($"Logo.{type}.sprite", pre, done, (res) => { Sprites[type] = res; });
            });
        }
コード例 #4
0
        public static void Unload()
        {
            var rm = ResourceSystem.Instance;

            MyEnum.ForEach <Define.App.Cat>((type) => {
                rm.Unload($"CutIn.{type}.sprite");
            });
        }
コード例 #5
0
ファイル: ChainInfo.cs プロジェクト: kurodakazumichi/Nekopon
            /// <summary>
            /// リセット
            /// </summary>
            public void Reset()
            {
                // 連鎖、消失に関する情報をリセット
                ChainCount = 0;

                // 消滅した肉球の数
                MyEnum.ForEach <Define.App.Attribute>((attribute) => {
                    this.vanishCounts[(int)attribute] = 0;
                });
            }
コード例 #6
0
        public static void Load(System.Action pre, System.Action done)
        {
            var rm = ResourceSystem.Instance;

            MyEnum.ForEach <Define.App.Cat>((type) => {
                rm.Load <Sprite>($"CutIn.{type}.sprite", pre, done, (res) => {
                    Sprites.Add((int)type, res);
                });
            });
        }
コード例 #7
0
ファイル: ChainInfo.cs プロジェクト: kurodakazumichi/Nekopon
            //-------------------------------------------------------------------------
            // デバッグ
            public void OnDebug()
            {
                using (new GUILayout.VerticalScope(GUI.skin.box)) {
                    GUILayout.Label($"連鎖数:{ChainCount}");

                    using (new GUILayout.HorizontalScope()) {
                        MyEnum.ForEach <Define.App.Attribute>((attribute) => {
                            GUILayout.Label($"{attribute}:{this.vanishCounts[(int)attribute]}");
                        });
                    }

                    GUILayout.Label($"総数:{TotalVanishCount}");
                }
            }
コード例 #8
0
        //-------------------------------------------------------------------------
        // ライフサイクル

        protected override void MyAwake()
        {
            MyEnum.ForEach <Type>((type) => {
                this.guides[type] = CreateGameObject(type);
            });

            this.state.Add(State.Idle, OnIdleEnter);
            this.state.Add(State.Ready, OnReadyEnter, OnReadyUpdate);
            this.state.Add(State.ReadyWait, OnReadyWaitEnter, OnReadyWaitUpdate);
            this.state.Add(State.Go, OnGoEnter, OnGoUpdate);
            this.state.Add(State.GoWait, OnGoWaitEnter, OnGoWaitUpdate);
            this.state.Add(State.GoBack, OnGoBackEnter, OnGoBackUpdate);
            this.state.Add(State.Result, OnResultEnter, OnResultUpdate);
            this.state.Add(State.ResultWait, OnResultWaitEnter);
            this.state.Add(State.Retry, OnRetryEnter, OnRetryUpdate);
            this.state.Add(State.RetryWait, OnRetryWaitEnter);
            this.state.Add(State.Finished, OnFinisedEnter);
            this.state.SetState(State.Idle);
        }
コード例 #9
0
ファイル: Player.cs プロジェクト: kurodakazumichi/Nekopon
        //-------------------------------------------------------------------------
        // パズル系

        /// <summary>
        /// 肉球消滅時に呼ばれるコールバック
        /// </summary>
        private void OnVanished(Puzzle.ChainInfo score)
        {
            // 攻撃ユニットがなければ生成
            if (this.attack == null)
            {
                this.attack = SkillManager.Instance.Create(this.folder);
                this.attack.ToUsual(this.Location.AttackBase);
            }

            // 消えた肉球の数だけMPを回復
            MyEnum.ForEach <Define.App.Attribute>((attribute) => {
                this.status.AddMp(attribute, score.GetVanishCount(attribute));
            });

            // 攻撃力計算:連鎖数 * 合計消滅数 / 2
            this.status.AddPower(score.ChainCount * score.TotalVanishCount / 2);

            // 攻撃の大きさを設定する
            this.attack.SetIntensity(this.status.PowerRate);
        }
コード例 #10
0
ファイル: Status.cs プロジェクト: kurodakazumichi/Nekopon
            /// <summary>
            /// 設定を元にStatusを構築
            /// </summary>
            public Status Init(IPlayerConfig config)
            {
                // HP
                this.hp.Init(config.MaxHp, config.MaxHp);

                // MP
                MyEnum.ForEach <Define.App.Attribute>((attribute) =>
                {
                    this.mp[attribute].Init(0, config.GetMaxMp(attribute));
                });

                // DP
                this.dp.Init(0, config.MaxHp);

                // AP
                this.ap.Init(0, config.MaxAp);

                // 攻撃とダメージ
                this.power.Init(0, Define.Versus.MAX_DAMAGE);
                this.damage.Init(0, Define.Versus.MAX_DAMAGE);

                return(this);
            }
コード例 #11
0
        //-------------------------------------------------------------------------
        // デバッグ

        public void OnDebug()
        {
            ChainScore.OnDebug();

            var paw = this.paws[IndexBy(this.cursorCoord)];

            paw.OnDebug();

            using (new GUILayout.VerticalScope(GUI.skin.box))
            {
                GUILayout.Label("[Find Paw]");
                using (new GUILayout.HorizontalScope()) {
                    MyEnum.ForEach <Define.App.Attribute>((attribute) =>
                    {
                        if (GUILayout.Button($"{attribute}"))
                        {
                            var pos   = Vector2Int.zero;
                            var found = FindNearPawCoord(attribute, ref pos);
                            Debug.Logger.Log($"{found}:{pos}");
                        }
                    });
                }
            }
        }
コード例 #12
0
ファイル: Status.cs プロジェクト: kurodakazumichi/Nekopon
            //-------------------------------------------------------------------------
            // メソッド

            /// <summary>
            /// コンストラクタ
            /// </summary>
            public Status()
            {
                MyEnum.ForEach <Define.App.Attribute>((attribute) => {
                    this.mp.Add(attribute, new LimitedFloat());
                });
            }
コード例 #13
0
ファイル: ChainInfo.cs プロジェクト: kurodakazumichi/Nekopon
            //-------------------------------------------------------------------------
            // publicメソッド

            /// <summary>
            /// コンストラクタ
            /// </summary>
            public ChainInfo()
            {
                MyEnum.ForEach <Define.App.Attribute>((attribute) => {
                    this.vanishCounts.Add(0);
                });
            }