private void UpdateStandCommand(StandCommand command, ScenarioResourceSettingModel settingModel) { if (settingModel.GetSettingEntity(command.StandName, EResourceType.Character) is CharacterSheetEntity entity) { command.UpdateParameter(entity); } }
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; }