Beispiel #1
0
        /// <summary>
        /// Primary update method. Runs update method calls when needed.
        /// </summary>
        /// <seealso cref="CurrentGameState"/>
        public static void Update()
        {
            switch (CurrentGameState)
            {
            case GAMESTATE.ACTIVE:
                MenuHandler.CheckKeys();
                foreach (AnimatedSprite sprite in allCharacterSprites)
                {
                    sprite.Update();
                    sprite.Buffs.Update();
                    ObjectMapper.DeleteSpriteObject(sprite);
                    ObjectMapper.AddSpriteObject(sprite);
                }
                foreach (Projectile item in allProjectiles)
                {
                    item.Update();
                }
                foreach (MapInteractable i in selectedMap.InteractableLayer)
                {
                    i.MapAction?.Invoke();
                }
                foreach (TimerHelper t in TimerHelper.Timers)
                {
                    t.Update();
                }
                if (Game.PlayerManager.EquippedWeapon != null)
                {
                    Game.PlayerManager.EquippedWeapon.Sprite.Update();
                }
                if (purgeProjectiles.Count != 0)
                {
                    DeleteProjectiles();
                }
                if (purgeSprites.Count != 0)
                {
                    DeleteSprites();
                }
                PlayerInfoUI.Update();
                break;

            case GAMESTATE.MAINMENU:
                break;

            case GAMESTATE.PAUSED:
                MenuHandler.CheckKeys();
                if (DialogueHandler.ActiveDialogue != null)
                {
                    DialogueHandler.Update();
                }
                else
                {
                    MenuHandler.Update();
                }
                PlayerInfoUI.Update();
                break;

            default:
                throw new NotSupportedException("Game has entered an invalid gamestate: " + CurrentGameState);
            }
        }
    public void AddPlayerInfo(string name)
    {
        PlayerInfoUI playerInfo = Instantiate(playerInfoPrefab, Vector3.zero, Quaternion.identity).GetComponent <PlayerInfoUI>();

        playerInfo.player = FightManager.Instance.players[name];
        playerInfo.transform.SetParent(transform, false);
        playerInfos.Add(name, playerInfo);
    }
    public void OnPointerClick(PointerEventData eventData)
    {
        if (player.isLocalPlayer)
        {
            return;
        }
        PlayerInfoUI playerInfo = GameObject.FindObjectOfType <PlayerInfoUI>();

        playerInfo.loadInfo(player, isAIPlayer);
    }
Beispiel #4
0
    void Start()
    {
        gameStateMachine_Ref = GameStateMachine.GetInstance();
        gameStateMachine_Ref.inGameUIManager_Ref = this;

        playerOneInfo_Ref = gameStateMachine_Ref.playerInfoOne_Ref;
        playerTwoInfo_Ref = gameStateMachine_Ref.playerInfoTwo_Ref;

        playerOneIntroUIAnim_Ref = playerOneIntroTauntImage_Ref.GetComponent <PortraitAnimation>();
        playerTwoIntroUIAnim_Ref = playerTwoIntroTauntImage_Ref.GetComponent <PortraitAnimation>();

        Invoke("FirstUIUpdate", 0.11f);
    }
Beispiel #5
0
    public void Operating(bool bStatic)
    {
        if (PlayerInfoUI == null)
        {
            return;
        }

        Roleui uiInfo = PlayerInfoUI.GetComponent <Roleui>();

        if (uiInfo != null)
        {
            uiInfo.SetReady(bStatic);
        }
    }
Beispiel #6
0
    public void PopValueChange(int Value, PropertyType chgType, int hpMax, int mpMax, InvokePkg.CallBack callback = null, bool isCritical = false)
    {
        if (Value == 0)
        {
            if (callback != null)
            {
                callback();
            }
            return;
        }
        if (null == PlayerInfoUI)
        {
            return;
        }
        Roleui roleinfoUI = PlayerInfoUI.GetComponent <Roleui>();

        if (null == roleinfoUI)
        {
            return;
        }
        roleinfoUI.ValueChange(chgType, Value, hpMax, mpMax, true, false);
        if (isCritical)
        {
            EffectAPI.Play((EFFECT_ID)GlobalValue.EFFECT_Critical, ActorObj.transform.position + ActorObj.transform.forward, null, null, null, (EffectInst inst, ParamData pData) =>
            {
                inst.gameObject.SetActive(true);
                //Battle.BattleOver -= inst.GetComponent<EffectInst>().DestorySelf;
            });
        }
        if (PlayerID == GamePlayer.Instance.InstId)
        {
            AttaclPanel.Instance.ChangeValue(chgType, Value, hpMax, mpMax);
        }
        if (Battle.Instance.SelfActorBattleBaby != null)
        {
            if (PlayerID == Battle.Instance.SelfActorBattleBaby.InstId)
            {
                AttaclPanel.Instance.ChangeValueBaby(chgType, Value, hpMax, mpMax);
            }
        }
        if (callback != null)
        {
            GlobalInstanceFunction.Instance.Invoke(callback, 1f);
        }
    }
Beispiel #7
0
    /// <summary>
    /// 슬롯 눌렀을 경우 처리
    /// </summary>
    public void Clicked()
    {
        // 없는 아이템 중단
        if (item == null)
        {
            return;
        }

        if (count <= 0)
        {
            return;
        }

        // 퀵등록
        ItemManager im = GameMaster.script.itemManager;

        // UI 셋팅
        im.selected = this;
        Debug.LogWarning("아이템 :: 상세보기 => " + GameData.gameMaster.itemManager.selected.item.index);
        im.nameText.text = item.name;
        im.infoText.text = item.info;

        // UI 호출
        im.CallItemUseBox();

        // 사용 버튼 비활성
        im.btnUse.interactable = false;

        // 소유권 없을 시 사용 버튼 비활성
        if (transform.parent.name == "item") // 플레이어 정보 UI 오브젝트일 경우
        {
            PlayerInfoUI piui = transform.parent.parent.parent.parent.GetComponent <PlayerInfoUI>();

            if (piui.owner == Player.me)   // 사용자가 아이템 소유권자일 경우
            {
                if (Turn.now == Player.me) // 사용자가 턴 진행중일 경우
                {
                    // 사용 버튼 활성
                    GameData.gameMaster.itemManager.btnUse.interactable = true;
                }
            }
        }
    }
Beispiel #8
0
    public override void Init()
    {
        if (isInit == false)
        {
            playerInfo = transform.Find("Info").GetComponent <PlayerInfoUI>();
            tehai      = transform.Find("Tehai").GetComponent <TehaiUI>();
            yama       = transform.Find("Yama").GetComponent <YamaUI>();
            hou        = transform.Find("Hou").GetComponent <HouUI>();
            fuuro      = transform.Find("Fuuro").GetComponent <FuuroUI>();

            tehai.Init();
            yama.Init();
            hou.Init();
            fuuro.Init();
            playerInfo.Init();

            isInit = true;
        }
    }
Beispiel #9
0
        /// <summary>
        /// Changes the game state. Primarily used to change the map.
        /// </summary>
        /// <param name="newMap">The map to be changed to</param>
        /// <param name="player">The player information to be handed in</param>
        /// <param name="newX">The new player position</param>
        /// <param name="newY">The new player position</param>
        public static void InitiateChange(BaseMap newMap, PlayerController player, Point pos, List <AnimatedSprite> newSprites = null)
        {
            Game.PlayerCharacter = player;
            Game.PlayerManager   = (PlayerManager)Game.PlayerCharacter.Manager;

            allCharacterSprites.Clear();
            allProjectiles.Clear();

            selectedMap = newMap;
            ObjectMapper.MapObjects(selectedMap);
            if (newSprites != null)
            {
                allCharacterSprites.AddRange(newSprites);
            }
            else if (selectedMap.sprites != null)
            {
                allCharacterSprites.AddRange(selectedMap.sprites);
            }
            if (!allCharacterSprites.Contains(player))
            {
                allCharacterSprites.Add(player);
            }


            LoadGameTextures();
            PlayerInfoUI.Initialize();
            if (Game.PlayerManager.Inventory == null)
            {
                Game.PlayerManager.Inventory = new InventoryManager();
            }
            if (Game.PlayerManager.EquippedWeapon != null)
            {
                Game.PlayerManager.Inventory.Items[0] = Game.PlayerManager.EquippedWeapon;
            }
            Game.PlayerManager.Inventory.LoadItems();
            MenuHandler.AllPopUps.RemoveAll((x) => x is InventoryManager);
            MenuHandler.AllPopUps.Add(Game.PlayerManager.Inventory);

            Game.PlayerCharacter.SpriteRectangle.Location = pos;
        }
Beispiel #10
0
        /// <summary>
        /// Primary Draw method. Calls all draw methods required for game
        /// </summary>
        /// <param name="sp">The <c>SpriteBatch</c> given from the Game class.</param>
        public static void Draw(SpriteBatch sp)
        {
            int xMove = 0;
            int yMove = 0;

            switch (CurrentGameState)
            {
            case GAMESTATE.ACTIVE:
                ScreenOffset.X = (Game.PlayerCharacter.SpriteRectangle.X) - XOffset;
                ScreenOffset.Y = (Game.PlayerCharacter.SpriteRectangle.Y) - YOffset;
                FindOffset(out xMove, out yMove);
                sp.Begin(SpriteSortMode.Deferred, transformMatrix: Matrix.CreateTranslation(xMove, yMove, 0));
                selectedMap.DrawMap(sp, (spr) => {
                    foreach (MapObject i in extras)
                    {
                        i.Draw(spr);
                    }
                    foreach (AnimatedSprite item in allCharacterSprites)
                    {
                        item.Draw(spr);
                    }
                    foreach (Projectile item in allProjectiles)
                    {
                        item.Draw(spr);
                    }
                    if (Game.PlayerManager.EquippedWeapon != null)
                    {
                        Game.PlayerManager.EquippedWeapon.Sprite.Draw(spr);
                    }
                });
                PlayerInfoUI.Draw(sp);
                break;

            case GAMESTATE.MAINMENU:
                sp.Begin(SpriteSortMode.Deferred);
                if (MenuHandler.ActiveFullScreenMenu != null)
                {
                    MenuHandler.DrawFullScreenMenu(sp);
                }
                break;

            case GAMESTATE.PAUSED:
                ScreenOffset.X = (Game.PlayerCharacter.SpriteRectangle.X) - XOffset;
                ScreenOffset.Y = (Game.PlayerCharacter.SpriteRectangle.Y) - YOffset;
                FindOffset(out xMove, out yMove);
                sp.Begin(SpriteSortMode.Deferred, transformMatrix: Matrix.CreateTranslation(xMove, yMove, 0));
                selectedMap.DrawMap(sp, (spr) => {
                    foreach (MapObject i in extras)
                    {
                        i.Draw(spr);
                    }
                    foreach (AnimatedSprite item in allCharacterSprites)
                    {
                        item.Draw(spr);
                    }
                    foreach (Projectile item in allProjectiles)
                    {
                        item.Draw(spr);
                    }
                    if (Game.PlayerManager.EquippedWeapon != null)
                    {
                        Game.PlayerManager.EquippedWeapon.Sprite.Draw(spr);
                    }
                });
                if (DialogueHandler.ActiveDialogue != null)
                {
                    DialogueHandler.Draw(sp);
                }
                if (MenuHandler.ActivePopUp != null)
                {
                    MenuHandler.DrawPopUpMenu(sp);
                }
                PlayerInfoUI.Draw(sp);
                break;

            default:
                throw new NotSupportedException("Game has entered an invalid gamestate: " + CurrentGameState);
            }
            sp.End();
        }