public void SkillSelected(string abilityName) { Ability ability = actingCombatant.Spellbook.All.Where(abl => abl.Name() == abilityName).FirstOrDefault(); BattleEventManager.Instance().ActionSelected(actingCombatant, ability); this.CloseAll(); }
public void AttackSelected() { Ability ability = actingCombatant.Spellbook.All.Where(abl => abl.Name().ToLower() == "attack").FirstOrDefault(); BattleEventManager.Instance().ActionSelected(actingCombatant, ability); this.gameObject.SetActive(false); }
public virtual void Awake() { // Disable the combatant, and listen for an event when the battle starts. enabled = false; BattleEventManager.Instance().onBattleStart += this.Enable; }
public TurnController(BattleManager manager, List <AbilitySelection> abilitySelections) { this.battleManager = manager; this.abilitySelections = abilitySelections; this.index = 0; BattleEventManager.Instance().onAbilityCompleted += BeginNextAction; }
void Awake() { this.animator = this.gameObject.GetComponent <Animator>(); BattleEventManager.Instance().onActionSelected += CheckIfTargetable; BattleEventManager.Instance().onTargetSelected += Disable; this.gameObject.SetActive(false); }
public void OnDestroy() { BattleEventManager.Instance().onBattleStart -= NextTurn; BattleEventManager.Instance().onActionSelected -= ActionSelected; BattleEventManager.Instance().onTargetSelected -= TargetSelected; BattleEventManager.Instance().onBeginPlayTurn -= ProcessTurn; BattleEventManager.Instance().onEndTurn -= EndTurn; BattleEventManager.Instance().onBattleEnd -= BattleEnd; }
private void Update() { if (UnityEngine.Input.GetMouseButtonDown(0)) { RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero); if (hit.collider != null) { List <Combatant> targets = new List <Combatant>(); if (this.ability.TargetingType() == TargetingType.OFFENSIVE_SINGLE || this.ability.TargetingType() == TargetingType.OFFENSIVE_ALL) { foreach (EnemyCombatant enemy in enemies) { if (hit.collider.gameObject == enemy.gameObject) { if (this.ability.TargetingType() == TargetingType.OFFENSIVE_SINGLE) { targets.Add(enemy); } else { targets.AddRange(enemies.Cast <Combatant>().ToList()); } BattleEventManager.Instance().TargetSelected(targets); Disable(); return; } } } else if (this.ability.TargetingType() == TargetingType.DEFENSIVE_SINGLE || this.ability.TargetingType() == TargetingType.DEFENSIVE_ALL) { foreach (PlayerCombatant player in players) { if (hit.collider.gameObject == player.gameObject) { if (this.ability.TargetingType() == TargetingType.DEFENSIVE_SINGLE) { targets.Add(player); } else { targets.AddRange(players.Cast <Combatant>().ToList()); } BattleEventManager.Instance().TargetSelected(targets); Disable(); return; } } } } } }
/// <summary> /// Subscribe to events that the BattleManager is concerned with. /// </summary> private void Awake() { this.id = Guid.NewGuid(); BattleEventManager.Instance().onBattleStart += NextTurn; BattleEventManager.Instance().onActionSelected += ActionSelected; BattleEventManager.Instance().onTargetSelected += TargetSelected; BattleEventManager.Instance().onBeginPlayTurn += ProcessTurn; BattleEventManager.Instance().onEndTurn += EndTurn; BattleEventManager.Instance().onBattleEnd += BattleEnd; this.abilitySelection = new List <AbilitySelection>(); }
private void NextCombatant() { if (this.turnQueue.Count > 0) { Combatant previous = this.actingCombatant; this.actingCombatant = this.turnQueue.Dequeue(); BattleEventManager.Instance().BeginActionSelection(this.actingCombatant, previous); } else { BattleEventManager.Instance().BeginPlayTurn(); } }
public void BeginNextAction(Combatant combatant, Ability ability) { // Cleanup any resources between the last action and this one. this.Cleanup(); // Check if the battle win condition was met in the last action. if (!IsBattleFinished()) { this.BeginNextAction(); } else { BattleEventManager.Instance().onAbilityCompleted -= BeginNextAction; BattleEventManager.Instance().BattleEnd(); } }
public void BeginNextAction() { // End the turn if we have processed all abilities if (index == abilitySelections.Count) { this.index = 0; this.abilitySelections = null; BattleEventManager.Instance().onAbilityCompleted -= BeginNextAction; BattleEventManager.Instance().EndTurn(); } // Process the ability else { abilitySelections[index].results = abilitySelections[index].ability.Process(abilitySelections[index].targets); abilitySelections[index].ability.AttachScripts(abilitySelections[index]); index++; } }
private void Start() { // Get the player party from the data repository. Party playerParty = DataRepository.Instance().Parties.GetByName("main"); List <GameObject> players = new List <GameObject>(); List <GameObject> enemies = new List <GameObject>(); foreach (string partyMember in playerParty.Members) { // We want to spawn a combatant for each player in the party. GameObject playerCombatant = Instantiate((GameObject)Resources.Load(string.Format("Prefabs/Battle/Characters/{0}", partyMember)), this.transform.parent); PlayerCombatant player = playerCombatant.GetComponent <PlayerCombatant>(); player.Character = DataRepository.Instance().Characters.GetByName(partyMember); players.Add(playerCombatant); } // Get the enemy party Party enemyParty = BattleTransitionContainer.EnemyParty; // If the enemy party is null, grab the test party. if (enemyParty == null) { enemyParty = (Party)DataRepository.Instance().Parties.GetByName("test1"); } foreach (string partyMember in enemyParty.Members) { // We want to spawn a combatant for each player in the party. GameObject enemyCombatant = Instantiate((GameObject)Resources.Load(string.Format("Prefabs/Battle/Characters/{0}", "Enemy")), this.transform.parent); EnemyCombatant enemy = enemyCombatant.GetComponent <EnemyCombatant>(); enemy.Enemy = (Enemy)DataRepository.Instance().Enemies.GetByName(partyMember).Clone(); enemies.Add(enemyCombatant); } UnitPlacement unitPlacement = this.GetComponentInChildren <UnitPlacement>(); unitPlacement.PlacePlayers(players); unitPlacement.PlaceEnemies(enemies); GameObject.Find("BattleManager").GetComponent <BattleManager>().StoreCombatants(players, enemies); BattleEventManager.Instance().BattleStart(); }
private void Awake() { BattleEventManager.Instance().onBeginActionSelection += SwitchPortrait; BattleEventManager.Instance().onTargetSelected += HidePortrait; }
private void Awake() { BattleEventManager.Instance().onTargetingCancelled += Enable; }
private void Awake() { BattleEventManager.Instance().onBeginActionSelection += SelectActionCamera; BattleEventManager.Instance().onActionSelected += SelectTargetCamera; BattleEventManager.Instance().onTargetSelected += ReturnToRest; }
public void OnDestroy() { BattleEventManager.Instance().onBeginActionSelection -= SelectActionCamera; BattleEventManager.Instance().onActionSelected -= SelectTargetCamera; BattleEventManager.Instance().onTargetSelected -= ReturnToRest; }
private void Start() { BattleEventManager.Instance().AbilityCompleted(this.combatant, this.abilitySelection.ability); this.complete = true; }
public void OnDestroy() { BattleEventManager.Instance().onActionSelected -= CheckIfTargetable; BattleEventManager.Instance().onTargetSelected -= Disable; }
void Awake() { BattleEventManager.Instance().onActionSelected += Enable; BattleEventManager.Instance().onTargetingCancelled += Disable; }
public void OnDestroy() { BattleEventManager.Instance().onBattleStart -= this.Enable; }
public void OnDestroy() { BattleEventManager.Instance().onActionSelected -= Enable; BattleEventManager.Instance().onTargetingCancelled -= Disable; }
public void OnDestroy() { BattleEventManager.Instance().onBeginActionSelection -= ShowMenu; }
public void OnDestroy() { BattleEventManager.Instance().onBeginActionSelection -= SwitchPortrait; BattleEventManager.Instance().onTargetSelected -= HidePortrait; }
private void Awake() { UIController.instance = this; BattleEventManager.Instance().onBeginActionSelection += ShowMenu; }