コード例 #1
0
 // Start is called before the first frame update
 void Start()
 {
     playerRigidbody  = GetComponent <Rigidbody2D>();
     anim             = GetComponent <Animator>();
     spriteRenderer   = GetComponent <SpriteRenderer>();
     defaultMoveSpeed = moveSpeed;
     ic = GetComponent <ItemChecker>();
 }
コード例 #2
0
 void Start()
 {
     _ARTrackedImage = GetComponent <ARTrackedImage>();
     //CheckName(_ARTrackedImage.referenceImage.name);
     itemCheckerObject = GameObject.Find("ItemChecker");
     itemChecker       = itemCheckerObject.GetComponent <ItemChecker>();
     itemRestart       = itemCheckerObject.GetComponent <Restart>();
     CheckNamesOfItems();
 }
コード例 #3
0
ファイル: ItemMenu.cs プロジェクト: rokap0127/roguelike
 // Update is called once per frame
 void Update()
 {
     operation = GameObject.FindGameObjectWithTag("Operation");
     op        = operation.GetComponent <Operation>();
     iChecker  = GameObject.FindGameObjectWithTag("ItemChecker");
     ic        = iChecker.GetComponent <ItemChecker>();
     operation = GameObject.FindGameObjectWithTag("Operation");
     ItemDisplay();
 }
コード例 #4
0
ファイル: Mage.cs プロジェクト: rokap0127/roguelike
    // Update is called once per frame
    void Update()
    {
        iChecker = GameObject.FindGameObjectWithTag("ItemChecker");
        ic       = iChecker.GetComponent <ItemChecker>();
        if (Operation.mageFlag)
        {
            //当たり判定 オン
            collider2D.enabled = true;
            //マウスのほうへ向く
            //プレイヤーのスクリーン座標を計算する
            var screenPos = Camera.main.WorldToScreenPoint(transform.position);
            //プレイヤーから見たマウスカーソルの方向を計算する
            var direction = Input.mousePosition - screenPos;
            magicAngle = Utils.GetAngle(Vector3.zero, direction);
            var angles = transform.localEulerAngles;
            angles.z = magicAngle;
            //方向指定
            PlayerRote(magicAngle);

            attackCount += Time.deltaTime;
            //メニューが閉じているなら
            if (Time.timeScale > 0)
            {
                //攻撃カウントが足りているなら
                if (attackInterval <= attackCount)
                {
                    //攻撃する
                    Attack();
                }
            }

            //Teleport(teleportRange, slopeRange);

            if (!ic.SpeedFlag)
            {
                moveSpeed = defaultMoveSpeed;
            }
        }
        else
        {
            //Mp回復
            mpCount += Time.deltaTime;
            if (mpCount >= 1 && playerMaxMp > playerMp)
            {
                playerMp += 5;
                mpCount   = 0;
            }

            collider2D.enabled = false;
            var direction = Archer.instance.transform.position - transform.position;
            var angle     = Utils.GetAngle(Vector3.zero, direction);
            //向き指定
            PlayerRote(angle);
            Tracking();
        }
    }
コード例 #5
0
 void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
     else if (instance == this)
     {
         Destroy(this.gameObject);
     }
 }
コード例 #6
0
    //ダメージを与える
    public void Damage(int damage)
    {
        ic = GetComponent <ItemChecker>();
        if (ic.ArmorFlag)
        {
            playerHp -= damage / 4;
        }
        else if (!ic.ArmorFlag)
        {
            playerHp -= damage;
        }

        //HPがまだある場合、ここで処理を終える
        if (0 < playerHp)
        {
            return;
        }
        //gameObject.SetActive(false);
    }
コード例 #7
0
ファイル: ItemManager.cs プロジェクト: rokap0127/roguelike
 // Start is called before the first frame update
 void Start()
 {
     iChecker = GameObject.FindGameObjectWithTag("ItemChecker");
     ic       = iChecker.GetComponent <ItemChecker>();
 }
コード例 #8
0
    // Update is called once per frame
    void Update()
    {
        iChecker = GameObject.FindGameObjectWithTag("ItemChecker");
        ic       = iChecker.GetComponent <ItemChecker>();
        //操作モード
        if (Operation.knightFlag)
        {
            //当たり判定 オン
            collider2D.enabled = true;
            //マウスを向けた方向を向く
            //プレイヤーのスクリーン座標を計算する
            var screenPos = Camera.main.WorldToScreenPoint(transform.position);
            //プレイヤーから見たマウスカーソルの方向を計算する
            var direction = Input.mousePosition - screenPos;
            var angle     = Utils.GetAngle(Vector3.zero, direction);
            var angles    = transform.localEulerAngles;
            angles.z = angle;
            PlayerRote(angle);

            //Mpが足りているなら
            if (playerMp >= guardMp)
            {
                //ガードする
                Guard();
            }
            else
            {
                isGuard = false;
                //速さをもとに戻す
                moveSpeed = speed;
                //オブジェクトを削除する
                Destroy(guard_Prefab);
                //アニメーションオフ
                anim.SetBool("Guard@Down", false);
                anim.SetBool("Guard@DownRight", false);
                anim.SetBool("Guard@DownLeft", false);
                anim.SetBool("Guard@UpRight", false);
                anim.SetBool("Guard@UpLeft", false);
                anim.SetBool("Guard@Up", false);
                anim.SetBool("Guard@Right", false);
                anim.SetBool("Guard@Left", false);
            }

            attackCount += Time.deltaTime;
            //メニューが閉じているなら
            if (Time.timeScale > 0)
            {
                //ガードしていない時
                if (!isGuard)
                {
                    //Mpがあるなら
                    if (playerMp > shootMp)
                    {
                        //攻撃カウントが足りているなら
                        if (attackInterval <= attackCount)
                        {
                            //攻撃する
                            Attack();
                        }
                    }
                }
            }

            //ガード中なら
            if (isGuard)
            {
                //Mpカウントプラス
                guardMpCount += Time.deltaTime;
                if (guardMpCount > 0.5)
                {
                    //Mp消費
                    playerMp    -= guardMp;
                    guardMpCount = 0;
                }
            }

            //プレイヤーHpがMaxを超えたらMaxまで戻す
            if (playerHp >= playerMaxHp)
            {
                playerHp = playerMaxHp;
            }

            if (playerHp <= 0 && !ic.RevivalFlag)
            {
                gameObject.SetActive(false);
                Invoke("Death", 0.51f);
            }
            if (!ic.SpeedFlag)
            {
                moveSpeed = defaultMoveSpeed;
            }
        }
        //追尾モード
        else
        {
            //Mp回復
            mpCount += Time.deltaTime;
            if (mpCount >= 1 && playerMaxMp > playerMp)
            {
                playerMp += 10;
                mpCount   = 0;
            }

            //当たり判定オフ
            collider2D.enabled = false;

            //追尾モード
            Tracking();

            var direction = Mage.instance.transform.position - transform.position;
            var angle     = Utils.GetAngle(Vector3.zero, direction);
            //向き指定
            PlayerRote(angle);
        }
    }
コード例 #9
0
ファイル: Create.cs プロジェクト: dusty3ntity/Log
            public async Task <Guid> Handle(Command request, CancellationToken cancellationToken)
            {
                var dictionary = await _context.Dictionaries.FindAsync(request.DictionaryId);

                if (dictionary == null)
                {
                    throw new RestException(HttpStatusCode.NotFound, ErrorType.DictionaryNotFound);
                }

                if (dictionary.WordsCount + dictionary.PhrasesCount == 8000)
                {
                    throw new RestException(HttpStatusCode.BadRequest, ErrorType.ItemsLimitReached);
                }

                var originalLower    = request.Original.ToLower();
                var translationLower = request.Translation.ToLower();

                if (ItemChecker.AreEqual(originalLower, translationLower))
                {
                    throw new RestException(HttpStatusCode.BadRequest,
                                            ErrorType.ItemOriginalOrTranslationContainEachOther);
                }

                if (request.Definition != null && ItemChecker.DoesDefinitionContainItem(request.Definition,
                                                                                        originalLower,
                                                                                        translationLower))
                {
                    throw new RestException(HttpStatusCode.BadRequest,
                                            ErrorType.ItemDefinitionContainsOriginalOrTranslation);
                }

                var item = new Item
                {
                    Dictionary = dictionary,

                    Original         = request.Original,
                    Translation      = request.Translation,
                    Definition       = request.Definition,
                    DefinitionOrigin = request.DefinitionOrigin,
                    Type             = request.Type,
                    CreationDate     = DateTime.Now,

                    IsStarred = request.IsStarred,

                    GoesForNextDay = request.IsStarred,
                };

                if (item.Type == ItemType.Word)
                {
                    dictionary.WordsCount++;
                }
                else
                {
                    dictionary.PhrasesCount++;
                }

                _context.Items.Add(item);

                var success = await _context.SaveChangesAsync() > 0;

                if (success)
                {
                    return(item.Id);
                }
                throw new RestException(HttpStatusCode.InternalServerError, ErrorType.SavingChangesError);
            }
コード例 #10
0
            public async Task <Unit> Handle(Command request, CancellationToken cancellationToken)
            {
                var dictionary = await _context.Dictionaries.FindAsync(request.DictionaryId);

                if (dictionary == null)
                {
                    throw new RestException(HttpStatusCode.NotFound, ErrorType.DictionaryNotFound);
                }

                var item = await _context.Items.FindAsync(request.ItemId);

                if (item == null)
                {
                    throw new RestException(HttpStatusCode.NotFound, ErrorType.ItemNotFound);
                }

                var originalLower    = request.Original.ToLower();
                var translationLower = request.Translation.ToLower();

                if (request.Definition != null && ItemChecker.DoesDefinitionContainItem(request.Definition,
                                                                                        originalLower,
                                                                                        translationLower))
                {
                    throw new RestException(HttpStatusCode.BadRequest,
                                            ErrorType.ItemDefinitionContainsOriginalOrTranslation);
                }

                if (!item.Original.ToLower().Equals(originalLower) ||
                    !item.Translation.ToLower().Equals(translationLower))
                {
                    if (ItemChecker.AreEqual(originalLower, translationLower))
                    {
                        throw new RestException(HttpStatusCode.BadRequest,
                                                ErrorType.ItemOriginalOrTranslationContainEachOther);
                    }

                    if (item.IsLearned)
                    {
                        if (item.Type == ItemType.Word)
                        {
                            dictionary.LearnedWordsCount--;
                        }
                        else
                        {
                            dictionary.LearnedPhrasesCount--;
                        }
                    }

                    item.IsLearned = false;
                    item.CorrectAnswersToCompletionCount = 0;
                    item.CreationDate = DateTime.Now;
                }

                item.Original         = request.Original;
                item.Translation      = request.Translation;
                item.Definition       = request.Definition;
                item.DefinitionOrigin = request.DefinitionOrigin;

                var success = await _context.SaveChangesAsync() > 0;

                if (success)
                {
                    return(Unit.Value);
                }
                throw new RestException(HttpStatusCode.InternalServerError, ErrorType.SavingChangesError);
            }