Ejemplo n.º 1
0
        /// <summary>
        ///     Initializes a new instance of the <see cref="GameClient" /> class.
        /// </summary>
        internal GameClient()
        {
#if (UNITY_EDITOR || USE_LOCAL_BACKEND) && !USE_PRODUCTION_BACKEND && !USE_STAGING_BACKEND
            const BackendPurpose backend = BackendPurpose.Local;
#elif USE_PRODUCTION_BACKEND
            const BackendPurpose backend = BackendPurpose.Production;
#else
            const BackendPurpose backend = BackendPurpose.Staging;
#endif

            BackendEndpointsContainer.BackendEndpoint backendEndpoint = BackendEndpointsContainer.Endpoints[backend];
            LoadObjectsManager loadObjectsManager = new LoadObjectsManager();
            loadObjectsManager.LoadAssetBundleFromFile(Constants.AssetBundleMain);

            AddService <ILoadObjectsManager>(loadObjectsManager);
            AddService <ITimerManager>(new TimerManager());
            AddService <IInputManager>(new InputManager());
            AddService <ILocalizationManager>(new LocalizationManager());
            AddService <IDataManager>(new DataManager());
            AddService <IScenesManager>(new ScenesManager());
            AddService <IAppStateManager>(new AppStateManager());
            AddService <ICameraManager>(new CameraManager());
            AddService <IPlayerManager>(new PlayerManager());
            AddService <ISoundManager>(new SoundManager());
            AddService <INavigationManager>(new NavigationManager());
            AddService <IGameplayManager>(new GameplayManager());
            AddService <IOverlordManager>(new OverlordManager());
            AddService <ITutorialManager>(new TutorialManager());
            AddService <IMatchManager>(new MatchManager());
            AddService <IUIManager>(new UIManager());
            AddService <BackendFacade>(new BackendFacade(backendEndpoint.AuthHost, backendEndpoint.ReaderHost, backendEndpoint.WriterHost));
            AddService <ActionLogCollectorUploader>(new ActionLogCollectorUploader());
            AddService <BackendDataControlMediator>(new BackendDataControlMediator());
            AddService <IAnalyticsManager>(new AnalyticsManager());
        }
Ejemplo n.º 2
0
        public override void SetInfo()
        {
            base.SetInfo();

            _callerPlayer    = GameAction.Parameters[0] as Player;
            _usedSkill       = GameAction.Parameters[1] as HeroSkill;
            _skillValue      = (int)GameAction.Parameters[2];
            _skillUsedOnUnit = GameAction.Parameters[3] as BoardUnit;

            PreviewImage.sprite = LoadObjectsManager.GetObjectByPath <Sprite>("Images/Heroes/CZB_2D_Hero_Portrait_" +
                                                                              _callerPlayer.SelfHero.HeroElement + "_EXP");

            AttackingPictureObject.SetActive(true);

            _attackedCreatureObj = CreateCardPreview(_skillUsedOnUnit.Card, Vector3.right * 6);
            _attackingPlayerObj  = CreatePlayerPreview(_callerPlayer, Vector3.zero);

            GameObject cardView = _attackedCreatureObj.transform.Find("AttackingHealth").gameObject;

            cardView.SetActive(true);
            TextMeshPro damageText = cardView.transform.Find("AttackText").GetComponent <TextMeshPro>();

            damageText.text = (-_skillValue).ToString();
            cardView.transform.localPosition = -Vector3.up * 3;
        }
Ejemplo n.º 3
0
        public override void Activate()
        {
            base.Activate();

            VfxObject = LoadObjectsManager.GetObjectByPath <GameObject>("Prefabs/VFX/GreenHealVFX");
            Action();
        }
Ejemplo n.º 4
0
        public override void Activate()
        {
            base.Activate();

            VfxObject = LoadObjectsManager.GetObjectByPath <GameObject>("Prefabs/VFX/Skills/HealingTouchVFX");
            Action();
        }
        protected override void CreateVfx(
            Vector3 pos, bool autoDestroy = false, float duration = 3f, bool justPosition = false)
        {
            int playerPos = PlayerCallerOfAbility.IsLocalPlayer ? 1 : -1;

            switch (AbilityEffectType)
            {
            case Enumerators.AbilityEffectType.MASSIVE_WATER_WAVE:
                VfxObject = LoadObjectsManager.GetObjectByPath <GameObject>("Prefabs/VFX/Spells/ToxicMassiveAllVFX");
                break;

            case Enumerators.AbilityEffectType.MASSIVE_FIRE:
                VfxObject = LoadObjectsManager.GetObjectByPath <GameObject>(
                    "Prefabs/VFX/Spells/SpellMassiveFireVFX");
                break;

            case Enumerators.AbilityEffectType.MASSIVE_LIGHTNING:
                VfxObject = LoadObjectsManager.GetObjectByPath <GameObject>("Prefabs/VFX/Spells/LightningVFX");
                pos       = Vector3.up * 0.5f;
                break;

            case Enumerators.AbilityEffectType.MASSIVE_TOXIC_ALL:
                VfxObject = LoadObjectsManager.GetObjectByPath <GameObject>("Prefabs/VFX/Spells/ToxicMassiveAllVFX");
                pos       = Vector3.zero;
                break;
            }

            pos = Utilites.CastVfxPosition(pos * playerPos);

            ClearParticles();

            base.CreateVfx(pos, true, 5f);
        }
Ejemplo n.º 6
0
        public override void Activate()
        {
            switch (AbilityEffectType)
            {
            case Enumerators.AbilityEffectType.STUN_OR_DAMAGE_FREEZES:
                VfxObject = LoadObjectsManager.GetObjectByPath <GameObject>("Prefabs/VFX/FrozenVFX");
                break;

            default:
                VfxObject = LoadObjectsManager.GetObjectByPath <GameObject>("Prefabs/VFX/FrozenVFX");
                break;
            }
        }
Ejemplo n.º 7
0
        public override void Activate()
        {
            base.Activate();

            if (AbilityCallType != Enumerators.AbilityCallType.ENTRY)
            {
                return;
            }

            VfxObject = LoadObjectsManager.GetObjectByPath <GameObject>("Prefabs/VFX/toxicDamageVFX");

            Action();
        }
Ejemplo n.º 8
0
        public override void Activate()
        {
            base.Activate();

            switch (AbilityEffectType)
            {
            case Enumerators.AbilityEffectType.TARGET_ADJUSTMENTS_AIR:
                VfxObject = LoadObjectsManager.GetObjectByPath <GameObject>("Prefabs/VFX/WhirlwindVFX");
                break;

            default:
                VfxObject = LoadObjectsManager.GetObjectByPath <GameObject>(
                    "Prefabs/VFX/Spells/SpellTargetToxicAttack");
                break;
            }
        }
Ejemplo n.º 9
0
        public override void Activate()
        {
            base.Activate();

            if (AbilityCallType != Enumerators.AbilityCallType.ENTRY)
            {
                return;
            }

            VfxObject = LoadObjectsManager.GetObjectByPath <GameObject>("Prefabs/VFX/GreenHealVFX");

            if (Value == -1)
            {
                DevourAllAllyZombies();
            }
        }
Ejemplo n.º 10
0
        private void ActionCompleted()
        {
            object caller = AbilityUnitOwner != null ? AbilityUnitOwner : (object)BoardSpell;

            switch (AffectObjectType)
            {
            case Enumerators.AffectObjectType.PLAYER:
                BattleController.AttackPlayerByAbility(caller, AbilityData, TargetPlayer);
                break;

            case Enumerators.AffectObjectType.CHARACTER:
                BattleController.AttackUnitByAbility(caller, AbilityData, TargetUnit);
                break;
            }

            Vector3 targetPosition = VfxObject.transform.position;

            ClearParticles();

            switch (AbilityEffectType)
            {
            case Enumerators.AbilityEffectType.TARGET_ROCK:
                VfxObject = LoadObjectsManager.GetObjectByPath <GameObject>("Prefabs/VFX/toxicDamageVFX");
                break;

            case Enumerators.AbilityEffectType.TARGET_FIRE:
                VfxObject = LoadObjectsManager.GetObjectByPath <GameObject>("Prefabs/VFX/toxicDamageVFX");
                break;

            case Enumerators.AbilityEffectType.TARGET_LIFE:
                VfxObject = LoadObjectsManager.GetObjectByPath <GameObject>("Prefabs/VFX/toxicDamageVFX");
                break;

            case Enumerators.AbilityEffectType.TARGET_TOXIC:
                VfxObject = LoadObjectsManager.GetObjectByPath <GameObject>("Prefabs/VFX/toxicDamageVFX");
                break;
            }

            if (VfxObject != null)
            {
                VfxObject = Object.Instantiate(VfxObject);
                VfxObject.transform.position = targetPosition;
                ParticlesController.RegisterParticleSystem(VfxObject, true);
            }
        }
Ejemplo n.º 11
0
        private void CreateAndMoveParticle(Action callback, Vector3 targetPosition)
        {
            Vector3 startPosition = CardKind == Enumerators.CardKind.CREATURE ?
                                    AbilityUnitOwner.Transform.position :
                                    SelectedPlayer.Transform.position;

            if (AbilityCallType != Enumerators.AbilityCallType.ATTACK)
            {
                GameObject particleMain = Object.Instantiate(VfxObject);
                particleMain.transform.position = Utilites.CastVfxPosition(startPosition + Vector3.forward);
                particleMain.transform.DOMove(Utilites.CastVfxPosition(targetPosition), 0.5f).OnComplete(
                    () =>
                {
                    callback();
                    if (AbilityEffectType == Enumerators.AbilityEffectType.TARGET_ADJUSTMENTS_BOMB)
                    {
                        DestroyParticle(particleMain, true);
                        GameObject prefab =
                            LoadObjectsManager.GetObjectByPath <GameObject>("Prefabs/VFX/toxicDamageVFX");
                        GameObject particle         = Object.Instantiate(prefab);
                        particle.transform.position = Utilites.CastVfxPosition(targetPosition + Vector3.forward);
                        ParticlesController.RegisterParticleSystem(particle, true);

                        SoundManager.PlaySound(Enumerators.SoundType.SPELLS, "NailBomb",
                                               Constants.SpellAbilitySoundVolume, Enumerators.CardSoundType.NONE);
                    }
                    else if (AbilityEffectType == Enumerators.AbilityEffectType.TARGET_ADJUSTMENTS_AIR)
                    {
                        // one particle
                        ParticleSystem.MainModule main = VfxObject.GetComponent <ParticleSystem>().main;
                        main.loop = false;
                    }
                });
            }
            else
            {
                CreateVfx(Utilites.CastVfxPosition(TargetUnit.Transform.position));
                callback();
            }

            GameClient.Get <IGameplayManager>().RearrangeHands();
        }
        public override void Activate()
        {
            base.Activate();

            switch (StatType)
            {
            case Enumerators.StatType.HEALTH:
            case Enumerators.StatType.DAMAGE:
            default:
                VfxObject = LoadObjectsManager.GetObjectByPath <GameObject>("Prefabs/VFX/GreenHealVFX");
                break;
            }

            if (AbilityCallType != Enumerators.AbilityCallType.PERMANENT)
            {
                return;
            }

            Action();
        }
Ejemplo n.º 13
0
        public override void SetInfo()
        {
            base.SetInfo();

            _callerPlayer = GameAction.Parameters[0] as Player;

            if (GameAction.Parameters.Length > 1)
            {
                _playedCard = GameAction.Parameters[1] as BoardCard;

                string rarity = Enum.GetName(typeof(Enumerators.CardRank),
                                             _playedCard.WorkingCard.LibraryCard.CardRank);
                string cardSetName = CardsController.GetSetOfCard(_playedCard.WorkingCard.LibraryCard);
                PreviewImage.sprite = LoadObjectsManager.GetObjectByPath <Sprite>(
                    string.Format("Images/Cards/Illustrations/{0}_{1}_{2}", cardSetName.ToLower(), rarity.ToLower(),
                                  _playedCard.WorkingCard.LibraryCard.Picture.ToLower()));

                _playedCardPreviewObject = CreateCardPreview(_playedCard.WorkingCard, Vector3.zero);
            }
        }
Ejemplo n.º 14
0
        protected override void CreateVfx(
            Vector3 pos, bool autoDestroy = false, float duration = 3f, bool justPosition = false)
        {
            switch (AbilityEffectType)
            {
            case Enumerators.AbilityEffectType.TARGET_ROCK:
                VfxObject = LoadObjectsManager.GetObjectByPath <GameObject>(
                    "Prefabs/VFX/Spells/SpellTargetFireAttack");
                break;

            case Enumerators.AbilityEffectType.TARGET_FIRE:
                VfxObject = LoadObjectsManager.GetObjectByPath <GameObject>(
                    "Prefabs/VFX/Spells/SpellTargetFireAttack");
                break;

            case Enumerators.AbilityEffectType.TARGET_LIFE:
                VfxObject = LoadObjectsManager.GetObjectByPath <GameObject>(
                    "Prefabs/VFX/Spells/SpellTargetLifeAttack");
                break;

            case Enumerators.AbilityEffectType.TARGET_TOXIC:
                VfxObject = LoadObjectsManager.GetObjectByPath <GameObject>(
                    "Prefabs/VFX/Spells/SpellTargetToxicAttack");
                break;
            }

            Vector3 targetPosition = AffectObjectType == Enumerators.AffectObjectType.CHARACTER ?
                                     TargetUnit.Transform.position :
                                     TargetPlayer.AvatarObject.transform.position;

            VfxObject = Object.Instantiate(VfxObject);
            VfxObject.transform.position = Utilites.CastVfxPosition(AbilityUnitOwner.Transform.position);
            targetPosition = Utilites.CastVfxPosition(targetPosition);
            VfxObject.transform.DOMove(targetPosition, 0.5f).OnComplete(ActionCompleted);
            ulong id = ParticlesController.RegisterParticleSystem(VfxObject, autoDestroy, duration);

            if (!autoDestroy)
            {
                ParticleIds.Add(id);
            }
        }
        public override void SetInfo()
        {
            base.SetInfo();
            _abilityOwner        = GameAction.Parameters[0];
            _usedAbility         = GameAction.Parameters[1] as AbilityData;
            _abilityValue        = (int)GameAction.Parameters[2];
            _abilityUsedOnPlayer = GameAction.Parameters[3] as Player;

            switch (_abilityOwner)
            {
            case BoardUnit unit:
                PreviewImage.sprite = unit.Sprite;
                _healCreatureObj    = CreateCardPreview(unit.Card, Vector3.zero);
                break;

            case BoardSpell spell:
            {
                string rarity      = Enum.GetName(typeof(Enumerators.CardRank), spell.Card.LibraryCard.CardRank);
                string cardSetName = CardsController.GetSetOfCard(spell.Card.LibraryCard);
                PreviewImage.sprite = LoadObjectsManager.GetObjectByPath <Sprite>(
                    string.Format("Images/Cards/Illustrations/{0}_{1}_{2}", cardSetName.ToLower(), rarity.ToLower(),
                                  spell.Card.LibraryCard.Picture.ToLower()));
                _healCreatureObj = CreateCardPreview(spell.Card, Vector3.zero);
                break;
            }
            }

            HealPictureObject.SetActive(true);

            _healedPlayerObj = CreatePlayerPreview(_abilityUsedOnPlayer, Vector3.right * 6);

            GameObject attackViewPlayer = _healedPlayerObj.transform.Find("AttackingHealth").gameObject;

            attackViewPlayer.SetActive(true);
            TextMeshPro damageText = attackViewPlayer.transform.Find("AttackText").GetComponent <TextMeshPro>();

            damageText.text = _abilityValue.ToString();
            attackViewPlayer.transform.localPosition = Vector3.up * -0.86f;
        }
        public override void SetInfo()
        {
            base.SetInfo();

            _abilityOwner        = GameAction.Parameters[0];
            _usedAbility         = GameAction.Parameters[1] as AbilityData;
            _abilityValue        = (int)GameAction.Parameters[2];
            _abilityUsedOnPlayer = GameAction.Parameters[3] as Player;

            if (_abilityOwner is BoardUnit)
            {
                PreviewImage.sprite       = (_abilityOwner as BoardUnit).Sprite;
                _attackingAbilityOwnerObj = CreateCardPreview((_abilityOwner as BoardUnit).Card, Vector3.zero);
            }
            else
            {
                string rarity = Enum.GetName(typeof(Enumerators.CardRank),
                                             (_abilityOwner as BoardSpell).Card.LibraryCard.CardRank);
                string cardSetName = CardsController.GetSetOfCard((_abilityOwner as BoardSpell).Card.LibraryCard);
                PreviewImage.sprite = LoadObjectsManager.GetObjectByPath <Sprite>(
                    string.Format("Images/Cards/Illustrations/{0}_{1}_{2}", cardSetName.ToLower(), rarity.ToLower(),
                                  (_abilityOwner as BoardSpell).Card.LibraryCard.Picture.ToLower()));
                _attackingAbilityOwnerObj = CreateCardPreview((_abilityOwner as BoardSpell).Card, Vector3.zero);
            }

            AttackingPictureObject.SetActive(true);

            _attackedPlayerObj = CreatePlayerPreview(_abilityUsedOnPlayer, Vector3.right * 6);

            GameObject cardView = _attackedPlayerObj.transform.Find("AttackingHealth").gameObject;

            cardView.SetActive(true);
            TextMeshPro damageText = cardView.transform.Find("AttackText").GetComponent <TextMeshPro>();

            damageText.text = (-_abilityValue).ToString();
            cardView.transform.localPosition = -Vector3.up;
        }
Ejemplo n.º 17
0
        public override void Activate()
        {
            base.Activate();

            VfxObject = LoadObjectsManager.GetObjectByPath <GameObject>("Prefabs/VFX/toxicDamageVFX");
        }