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); }
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); }
/// <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); } }); }); }