private void UpdateStandCommand(StandCommand command, ScenarioResourceSettingModel settingModel)
 {
     if (settingModel.GetSettingEntity(command.StandName,
                                       EResourceType.Character) is CharacterSheetEntity entity)
     {
         command.UpdateParameter(entity);
     }
 }
Beispiel #2
0
 public Commands(GameViewModel viewModel)
 {
     DealCommand       = new DealCommand(viewModel);
     HitCommand        = new HitCommand(viewModel);
     StandCommand      = new StandCommand(viewModel);
     SplitCommand      = new SplitCommand(viewModel);
     RulesCommand      = new RulesCommand(viewModel);
     HitLeftCommand    = new HitLeftCommand(viewModel);
     StandLeftCommand  = new StandLeftCommand(viewModel);
     HitRightCommand   = new HitRightCommand(viewModel);
     StandRightCommand = new StandRightCommand(viewModel);
 }
        /// <summary>
        ///  立ち絵を表示する
        /// </summary>
        public async Task ShowStand(StandCommand command)
        {
            if (!EScenarioStandPositionExtension.IsContain(command.Position.ToLower()))
            {
                // displayWarningMessage('無効な立ち位置です。 "' + cmd.position + '"');
                return;
            }

            var position = EScenarioStandPositionExtension.GetEnum(command.Position.ToLower());

            // 同じ場所に同一人物が既に表示されている場合は、反転状態を反映するだけ
            // TODO: 表示順を最前面にする
            if (IsSameStandImageAtPosition(command.StandName, position))
            {
                _view.GetStandImageView(position).GetComponent <ImageView>().SetReverse(command.Reverse);
                return;
            }

            await RemoveStand(position, ClearCommand.DefaultFadeTimeMilliSecond / 2, true);

            var sprite = await GetStandImageSprite(command.FilePath);

            if (sprite)
            {
                var imageView = ImageView.Instantiate(command.StandName);
                imageView.SetSprite(sprite);
                imageView.SetAlpha(0);
                imageView.SetReverse(command.Reverse);

                _view.AddStand(imageView, position);
                AdjustStand(imageView.gameObject, position, command);

                await Fade(imageView.Image, imageView.Image.color,
                           command.FadeTimeMilliSecond, 1f, command.IsWait);

                _currentStandNames[position] = command.StandName;
            }
        }
        private void AdjustStand(GameObject standObj, EScenarioStandPosition position, StandCommand command)
        {
            var image = standObj.GetComponent <Image>();

            // サイズ調整
            image.SetNativeSize();

            var rect = standObj.GetComponent <RectTransform>();

            rect.SetScale(Vector3.one);

            // 座標調整
            var xCenter = 0;

            if (position == EScenarioStandPosition.Left)
            {
                xCenter -= StandSideOffset;
            }
            else if (position == EScenarioStandPosition.Right)
            {
                xCenter += StandSideOffset;
            }

            var pos = rect.anchoredPosition3D;

            pos.x = xCenter + command.OffsetX;
            pos.y = StandOffsetY + command.OffsetY;
            pos.z = 0;
            rect.anchoredPosition3D = pos;
        }