public void Init() { _loadObjectsManager = GameClient.Get <ILoadObjectsManager>(); _gameplayManager = GameClient.Get <IGameplayManager>(); _tutorialManager = GameClient.Get <ITutorialManager>(); _uiManager = GameClient.Get <IUIManager>(); _timerManager = GameClient.Get <ITimerManager>(); _soundManager = GameClient.Get <ISoundManager>(); _vfxController = _gameplayManager.GetController <VfxController>(); _battleController = _gameplayManager.GetController <BattleController>(); _actionsQueueController = _gameplayManager.GetController <ActionsQueueController>(); _cardsController = _gameplayManager.GetController <CardsController>(); _gameplayManager.GameEnded += GameplayManagerGameEnded; }
public override void Action(object info = null) { base.Action(info); object caller = AbilityUnitOwner != null ? AbilityUnitOwner : (object)BoardSpell; switch (AffectObjectType) { case Enumerators.AffectObjectType.PLAYER: BattleController.HealPlayerByAbility(caller, AbilityData, TargetPlayer); break; case Enumerators.AffectObjectType.CHARACTER: BattleController.HealUnitByAbility(caller, AbilityData, TargetUnit); break; } }
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 Action() { object caller = AbilityUnitOwner != null ? AbilityUnitOwner : (object)BoardSpell; Player opponent = PlayerCallerOfAbility == GameplayManager.CurrentPlayer ? GameplayManager.OpponentPlayer : GameplayManager.CurrentPlayer; foreach (Enumerators.AbilityTargetType target in AbilityTargetTypes) { switch (target) { case Enumerators.AbilityTargetType.OPPONENT_ALL_CARDS: foreach (BoardUnit cardOpponent in opponent.BoardCards) { BattleController.AttackUnitByAbility(caller, AbilityData, cardOpponent); } CreateVfx(Vector3.up * 1.5f); break; case Enumerators.AbilityTargetType.PLAYER_ALL_CARDS: foreach (BoardUnit cardPlayer in PlayerCallerOfAbility.BoardCards) { BattleController.AttackUnitByAbility(caller, AbilityData, cardPlayer); CreateVfx(cardPlayer.Transform.position); } break; case Enumerators.AbilityTargetType.OPPONENT: BattleController.AttackPlayerByAbility(caller, AbilityData, opponent); break; case Enumerators.AbilityTargetType.PLAYER: BattleController.AttackPlayerByAbility(caller, AbilityData, PlayerCallerOfAbility); break; } } }
protected override void InputEndedHandler() { base.InputEndedHandler(); object caller = AbilityUnitOwner != null ? AbilityUnitOwner : (object)BoardSpell; if (IsAbilityResolved) { switch (AffectObjectType) { case Enumerators.AffectObjectType.CHARACTER: Action(TargetUnit); CreateAndMoveParticle( () => { BattleController.AttackUnitByAbility(caller, AbilityData, TargetUnit); }, TargetUnit.Transform.position); break; } } }
private void TakeDamageToUnit(BoardUnit unit) { BattleController.AttackUnitByAbility(AbilityUnitOwner, AbilityData, unit); CreateVfx(unit.Transform.position, true, 5f); }
public override void Action(object info = null) { base.Action(info); BoardUnit creature = info as BoardUnit; CreateVfx(creature.Transform.position); BoardUnit leftAdjustment = null, rightAdjastment = null; int targetIndex = -1; for (int i = 0; i < creature.OwnerPlayer.BoardCards.Count; i++) { if (creature.OwnerPlayer.BoardCards[i] == creature) { targetIndex = i; } } if (targetIndex > -1) { if (targetIndex - 1 > -1) { leftAdjustment = creature.OwnerPlayer.BoardCards[targetIndex - 1]; } if (targetIndex + 1 < creature.OwnerPlayer.BoardCards.Count) { rightAdjastment = creature.OwnerPlayer.BoardCards[targetIndex + 1]; } } if (leftAdjustment != null) { if (leftAdjustment.IsStun) { BattleController.AttackUnitByAbility(AbilityUnitOwner, AbilityData, leftAdjustment); } else { leftAdjustment.Stun(Enumerators.StunType.FREEZE, 1); } } if (rightAdjastment != null) { if (rightAdjastment.IsStun) { BattleController.AttackUnitByAbility(AbilityUnitOwner, AbilityData, rightAdjastment); } else { rightAdjastment.Stun(Enumerators.StunType.FREEZE, 1); } } if (creature.IsStun) { BattleController.AttackUnitByAbility(AbilityUnitOwner, AbilityData, creature); } else { creature.Stun(Enumerators.StunType.FREEZE, 1); } }