Exemplo n.º 1
0
        private GameObject CreateCard(TimelineSerializableData item)
        {
            GameObject turnCard;

            if (BattleDictionary.IsActor(item.uniqId))
            {
                turnCard = Object.Instantiate((GameObject)Resources.Load("Prefabs/Battle/TurnCard"),
                                              Vector3.zero, Quaternion.identity, GameObject.Find("Timeline/TurnCards").transform);
            }
            else
            {
                turnCard = Object.Instantiate((GameObject)Resources.Load("Prefabs/Battle/EnemyTurnCard"),
                                              Vector3.zero, Quaternion.identity, GameObject.Find("Timeline/TurnCards").transform);
            }
            GameObject          battlerImage = turnCard.transform.Find("Mask/BattlerImage").gameObject;
            string              monsterId    = BattlerDictionary.GetBattlerByUniqId(item.uniqId).monsterId;
            MonsterSerializable monster      = MonsterDicionary.GetMonsterData(monsterId);
            var sprite = Resources.Load <Sprite>(monster.imageData.spritePath);
            //Sprite sprite = AssetDatabase.LoadAssetAtPath<Sprite>(monster.imageData.spritePath);
            var image = battlerImage.GetComponent <Image>();

            image.sprite = sprite;
            battlerImage.GetComponent <RectTransform>().sizeDelta =
                new Vector3(sprite.rect.width, sprite.rect.height);
            battlerImage.GetComponent <RectTransform>().localPosition = new Vector3(monster.imageData.timelineCard.x,
                                                                                    monster.imageData.timelineCard.y, 0);
            battlerImage.GetComponent <RectTransform>().localScale =
                new Vector3(monster.imageData.timelineCard.scaleX, monster.imageData.timelineCard.scaleY, 0);
            _turnCards.Add(new TimelineViewStruct()
            {
                Card = turnCard,
                Id   = item.id
            });
            return(turnCard);
        }
Exemplo n.º 2
0
        public AsyncSubject <Unit> AddCard(TimelineSerializableData item)
        {
            AsyncSubject <Unit> subject = new AsyncSubject <Unit>();

            var turnCard = CreateCard(item);

            AddCardAnimation(turnCard.transform, _turnCards.Count).OnComplete(() =>
            {
                ActiveCardGrow();
                subject.OnNext(Unit.Default);
                subject.OnCompleted();
            });
            return(subject);
        }
Exemplo n.º 3
0
    /// <summary>
    /// ターン開始
    /// </summary>
    private void TurnStart()
    {
        _disposableContainer = new IDisposableContainer();
        TimelineSerializableData timelineData =
            BattleDictionary.GetTimelineById(BattleGuiManager.Instance.Timeline.TimelineData, BattleGuiManager.Instance.Timeline.TimelineSchedule[0]);

        TurnAwake(timelineData.uniqId).Play().Subscribe(_ =>
        {
            ObservableUtils.Timer(300).Subscribe(__ =>
            {
                //行動不能判定
                if (StatusLogic.TurnSkipCheck(timelineData.uniqId))
                {
                    TurnEnd();
                }
                else
                {
                    //行動開始 アクターなら選択処理 エネミー、ミニオンならAI
                    BattlePresenter.GetInstance().BattlerSpriteModel.GetData(timelineData.uniqId).Active.OnNext(true);
                }
            });
        });
    }