/// <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()); }
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; }
public override void Activate() { base.Activate(); VfxObject = LoadObjectsManager.GetObjectByPath <GameObject>("Prefabs/VFX/GreenHealVFX"); Action(); }
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); }
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; } }
public override void Activate() { base.Activate(); if (AbilityCallType != Enumerators.AbilityCallType.ENTRY) { return; } VfxObject = LoadObjectsManager.GetObjectByPath <GameObject>("Prefabs/VFX/toxicDamageVFX"); Action(); }
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; } }
public override void Activate() { base.Activate(); if (AbilityCallType != Enumerators.AbilityCallType.ENTRY) { return; } VfxObject = LoadObjectsManager.GetObjectByPath <GameObject>("Prefabs/VFX/GreenHealVFX"); if (Value == -1) { DevourAllAllyZombies(); } }
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); } }
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(); }
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); } }
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; }
public override void Activate() { base.Activate(); VfxObject = LoadObjectsManager.GetObjectByPath <GameObject>("Prefabs/VFX/toxicDamageVFX"); }