Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void ConvertInto(GameEntity gameEntity,
- string cardname,
- bool createEphemeral = false, //ephemeral(temporary) не являются частью HeroGrid или DataPool
- //в прототипе у них слегка отличается цвет, так что игрок понимает, что они
- //здесь "временно", то есть не часть колоды игрока.
- bool replaceInDeck = false, //данная трансформация изменяет runState (меняет нод и на уровне, и в heroGrid)
- bool forceReveal = false, //после трансформации ревилит нод
- bool dontRefresh = false) //после трансформации нод остаётся высушенным
- {
- if (gameEntity.hasUIView) { //special ui only conversion
- ConvertIntoUI(gameEntity, cardname);
- return;
- }
- var convertInto = _contexts.refs.viewManager.value.GetCardAssetByID(cardname);
- CleanupCard(gameEntity);
- var convertedCard = gameEntity;
- var pos = gameEntity.position.value;
- if (replaceInDeck) {
- if (convertedCard.hasUILinkedEntity) {
- var uiLink = _contexts.game.GetEntityWithLookupIndex(convertedCard.uILinkedEntity.lookupIndex);
- uiLink?.ReplaceCard(convertInto.Create());
- uiLink?.ReplaceAspects(convertInto.GetAspectsList());
- uiLink?.ReplaceEffects(convertInto.GetEffectsMap());
- if (uiLink != null) {
- uiLink.isDamaged = false;
- }
- }
- else {
- new AddNodeToBenchEffect() {cardname = convertInto.name}.Process(gameEntity);
- }
- }
- if (gameEntity.card.obj.suit.Equals(_effProc.heroSuit) && !gameEntity.isEphemeral && !replaceInDeck) { //why !replaceInDeck???
- Debug.Log($"replacing hero card {gameEntity.card.obj}");
- SendToSafeHaven(gameEntity);
- convertedCard = CreateCard(convertInto.name);
- convertedCard.ReplacePosition(pos);
- convertedCard.isInstantMove = true;
- }
- else {
- convertedCard.ReplaceCard(convertInto.Create());
- convertedCard.ReplaceAspects(convertInto.GetAspectsList());
- convertedCard.ReplaceEffects(convertInto.GetEffectsMap());
- }
- convertedCard.isEphemeral = createEphemeral;
- convertedCard.isDamaged = false;
- if (!dontRefresh) {
- convertedCard.isExhausted = false;
- }
- InitializeCard(convertedCard);
- if (forceReveal) { //isRevealed is a bugfix for something
- convertedCard.isRevealed = false;
- RevealNode(convertedCard);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement