// public List<Classes.Enamy> EnamyList = new List<Classes.Enamy>(); // Use this for initialization void Start() { clas = FindObjectOfType <Classes>(); battleEvent = FindObjectOfType <BattleEvent>(); // temp area = Areas.area1; }
public void OnEventRaised(BattleEvent value) { if (value == BattleEvent.LostBattle) { gameObject.SetActive(false); } }
public override IEnumerator ExecuteCellsRoutine(List <Vector2Int> locations) { yield return(battler.SyncPlayAnim(skill.castAnim)); foreach (Vector2Int location in locations) { BattleEvent target = map.GetEventAt <BattleEvent>(location); if (target == null) { continue; } BattleUnit other = target.unit; battler.GetComponent <CharaEvent>().FaceToward(other.battler.GetComponent <MapEvent>()); EightDir dir = battler.GetComponent <MapEvent>().DirectionTo(other.battler.GetComponent <MapEvent>()); int power = Mathf.RoundToInt(Random.Range(knockbackMin, knockbackMax)); other.battler.Knockback(dir, power); yield return(CoUtils.Wait(0.2f)); if (actor.Get(StatTag.ATTACKS) < 0.5) { actor.isRecovering = true; } if (damageHigh > 0) { int dmg = Mathf.RoundToInt(Random.Range(damageLow, damageHigh)); battle.Log(other + " took " + dmg + " damage."); other.TakeDamage(dmg, damageAnimation); } } }
public void HandleBattleEvent(BattleEvent type) { switch (type) { case BattleEvent.TurnChange: if (CurrentScene == 28) { // when FF's HP starts getting low... if (bc.EnemyCombatants[1].HitPoints / (float)bc.EnemyCombatants[1].MaxHitPoints < 0.2f) { bc.PauseBattle(); ff.GetComponent <FlanaganCombatant>().WakeUp(); nextScene(); } } else if (CurrentScene == 31) { //did FF die? if (bc.EnemyCombatants[1].HitPoints == 0) { bc.PauseBattle(); mp.PlayMusic(VictoryMusic, false); startTimer(); nextScene(); } } break; } }
public void HandleBattleEvent(BattleEvent type) { if (type == BattleEvent.Finished) { nextScene(); } }
private IEnumerator messageProcessor() { while (true) { if (battleEventQueue.Count > 0 && battleControlsComponent.isReady) { battleControlsComponent.isReady = false; BattleEvent battleEvent = battleEventQueue.Dequeue(); if (battleEvent.GetType() == typeof(PlayerMustWaitEvent)) { battleControlsComponent.blockPlayer(); } else if (battleEvent.GetType() == typeof(TextMessageEvent)) { battleControlsComponent.displayMessage(((TextMessageEvent)battleEvent).textMessage); } else if (battleEvent.GetType() == typeof(MoveEvent)) { battleControlsComponent.slowlyReduceHp(((MoveEvent)battleEvent).pokemon); } else if (battleEvent.GetType() == typeof(FaintEvent)) { //StartCoroutine(pokemonManager.faintPokemon(((FaintEvent)battleEvent).faintTarget)); } } yield return(new WaitForSeconds(0.5f)); } }
public ForNumberOfTurns(Effect effect, int duration, bool isDebuff) { _effect = effect; _remainingDuration = duration; _isDebuff = isDebuff; BattleEvent.Subscribe <TurnEnd>((turnEnd) => AdvanceTurn(), this); }
private IEnumerator ScanRoutine() { narrator.Clear(); Cursor cursor = unit.battle.SpawnCursor(unit.location, true); Result <Vector2Int> result = new Result <Vector2Int>(); yield return(cursor.AwaitSelectionRoutine(result, _ => true, ScanAtRoutine)); if (!result.canceled) { BattleEvent ev = unit.battle.map.GetEventAt <BattleEvent>(result.value); if (ev != null) { BattleUnit unit = ev.unit; yield return(PrepareTalkRoutine(unit)); pc.GetComponent <CharaEvent>().FaceToward(unit.battler.GetComponent <MapEvent>()); unit.battler.GetComponent <CharaEvent>().FaceToward(pc.GetComponent <MapEvent>()); LuaScript script = new LuaScript(GetComponent <LuaContext>(), unit.unit.luaOnExamine); GetComponent <LuaContext>().SetGlobal("name", unit.ToString()); yield return(script.RunRoutine()); narrator.Log(unit.StatusString(), true); } } rightDisplayEnabled = false; unit.battle.DespawnCursor(); executeResult.Cancel(); }
private void ResolveUnconscious(MemberUnconscious m) { if (!m.Member.TeamType.Equals(TeamType.Enemies)) { return; } var enemy = state.GetEnemyById(m.Member.Id); if (!string.IsNullOrWhiteSpace(enemy.DeathEffect)) { BattleEvent.Publish(new BattleEffectAnimationRequested { EffectName = enemy.DeathEffect, Scope = Scope.One, Target = new Single(m.Member), Group = Group.Self, PerformerId = m.Member.Id }); } var t = state.GetTransform(m.Member.Id); t.gameObject.SetActive(false); }
public void HandleBattleEvent(BattleEvent type) { switch (type) { case BattleEvent.TurnChange: // don't count the FB's turn if (bc.currentTurn != 2) { if (CurrentScene == 1 || CurrentScene == 4 || CurrentScene == 7 || CurrentScene == 10 || CurrentScene == 12 || CurrentScene == 15 || CurrentScene == 17 || CurrentScene == 21) { bc.PauseBattle(); nextScene(); } } break; case BattleEvent.Finished: mus.StopMusic(1.0f); nextScene(); break; } }
public void Enqueue(BattleEvent @event, EventPriority priority) { lock (_queues) { _queues[(int)priority].Enqueue(@event); } }
public void AddAmount(MonsterType monsterType) { int value = dictionary[monsterType]; bool IfRemove = false; value++; dictionary[monsterType] = value; foreach (QuestEventBase questEvent in currentQuests.GetEvents()) { if (questEvent.eventType == EventType.Combat) { BattleEvent battle = (BattleEvent)questEvent; if (battle.monsterType == monsterType) { battle.FinishedNumber++; if (battle.Number <= battle.FinishedNumber) { IfRemove = true; events = battle; } } } } if (IfRemove) { currentQuests.RemoveQuestEvent(events); } }
public IEnumerator OnVisibleRoutine(PCEvent pc) { while (IsAnimating()) { yield return(null); } BattleEvent ev = GetComponent <BattleEvent>(); if (ev != null) { BattleUnit unit = ev.unit; var ui = FindObjectOfType <RogueUI>(); yield return(ui.PrepareTalkRoutine(unit)); ui.face2.Populate(unit); pc.GetComponent <CharaEvent>().FaceToward(unit.battler.GetComponent <MapEvent>()); unit.battler.GetComponent <CharaEvent>().FaceToward(pc.GetComponent <MapEvent>()); LuaScript script = new LuaScript(ui.GetComponent <LuaContext>(), luaVisible); ui.GetComponent <LuaContext>().SetGlobal("name", unit.ToString()); ui.rightDisplayEnabled = true; yield return(script.RunRoutine()); ui.rightDisplayEnabled = false; } else { yield return(luaObject.RunRoutine(PropertyVisible)); } }
public void Perform() { for (var index = 0; index < _card.Actions.Length; index++) { var action = _card.Actions[index]; if (!string.IsNullOrWhiteSpace(action.CharacterAnimation)) { BattleEvent.Publish(new CharacterAnimationRequested(_performer.Id, action.CharacterAnimation)); } if (!string.IsNullOrWhiteSpace(action.EffectAnimation)) { BattleEvent.Publish(new BattleEffectAnimationRequested { PerformerId = _performer.Id, EffectName = action.EffectAnimation, Group = action.Group, Scope = action.Scope, Target = _targets[index] }); } if (_targets.Length <= index) { Debug.LogError($"Invalid Targets for {_card.Name}. Action {index}"); } action.Apply(_performer, _targets[index]); } }
public StatusEvent(BattleEvent eventInfo, Status baseStatus, StatusInstance currentStatus, BattleAgent target) { Event = eventInfo; Base = baseStatus; Status = currentStatus; Target = target; }
public void HandleBattleEvent(BattleEvent type) { switch (type) { case BattleEvent.TurnChange: if (CurrentScene == 0) { bc.PauseBattle(); nextScene(); } else if (CurrentScene == 2) { // did the bball die? if (bc.EnemyCombatants[0].HitPoints == 0) { bc.PauseBattle(); mus.StopMusic(3.0f); startTimer(); nextScene(); } } break; case BattleEvent.Finished: mus.StopMusic(1.0f); nextScene(); break; } }
public void HandleBattleEvent(BattleEvent type) { switch(type) { case BattleEvent.Finished: nextScene(); break; } }
/** * @todo #361:30min We sdhould be able to chain effects conditionally, as in MarkOfSalvation paladin card. */ public static void Apply(EffectData effectData, Member source, Target target) { var effect = Create(effectData); BattleLog.Write($"Applying Effect of {effectData.EffectType} to {target.Members} members"); effect.Apply(source, target); target.Members.ForEach(m => BattleEvent.Publish(new MemberStateChanged(m))); }
public void SetValues(string itemName, string itemCaption, int itemCount, ItemType itemType, BattleEvent itemEvent) { _itemName = itemName; _itemCaption = itemCaption; _itemCount = itemCount; _itemType = itemType; _itemEvent = itemEvent; }
private void Button_Click(object sender, RoutedEventArgs e) { BattleEventWindow.SetBattleEventSetterAction((page) => { this.BattleEvent = page; }); BattleEventWindow.ShowWindow(this.BattleEvent); }
public BattleUnit AddUnitFromMap(BattleEvent battler) { BattleUnit unit = new BattleUnit(Instantiate(battler.unitSerialized), this); battler.unit = unit; units.Add(unit); battlers[battler.unit] = battler; return(unit); }
public void UseItem(BattleEvent battleEvent) { _state = BattleState.Act; _uiManager._mainUI.UpdateMainUI(PokemonBattleMainUI.UIState.Battle); _uiManager._bottomUI.UpdateDialog(); StartCoroutine(ActPhase(battleEvent, NextEnemySkill()._battleEvent)); }
private void AdvanceTurn() { if (_remainingDuration < 0) { BattleEvent.Unsubscribe(this); return; } _remainingDuration--; }
protected override void Execute() => state.Members.Values.ToList() .Except(_unconscious) .Where(m => !m.State.IsConscious) .ForEach(m => { _unconscious.Add(m); BattleEvent.Publish(new MemberUnconscious(m)); });
/// <summary> /// Update any status effects that may respond to an event /// </summary> /// <param name="eventInfo">The event in question</param> public void OnTrigger(BattleEvent eventInfo) { List <Status> statusEffects = new List <Status>(StatusEffects.Keys); foreach (Status statusEffect in statusEffects) { statusEffect.OnTrigger(new StatusEvent(eventInfo, statusEffect, StatusEffects[statusEffect], this)); } }
private void Awake() { items = FindObjectOfType <Items>(); player = FindObjectOfType <Player>(); inventory = FindObjectOfType <Inventory>(); move = FindObjectOfType <Movement>(); battleM = FindObjectOfType <BattleEvent>(); clas = FindObjectOfType <Classes>(); craft = FindObjectOfType <CraftItems>(); }
public IEnumerator AwaitSelectionRoutine(BattleEvent actor, Result <EightDir> result) { this.actor = actor; awaitingSelect = result; while (!awaitingSelect.finished) { yield return(null); } awaitingSelect = null; }
public void HandleBattleEvent(BattleEvent type) { switch (type) { case BattleEvent.Finished: nextScene(); break; } }
internal SortieNodeInfo(MapInfo rpMap, RawMapExploration rpData) { ID = rpData.Node; var rDifficulty = rpMap.Difficulty; if (!rDifficulty.HasValue) { InternalID = ID; } else { var rDifficultyCount = Enum.GetNames(typeof(EventMapDifficulty)).Length - 1; InternalID = ID * rDifficultyCount + (int)rDifficulty.Value - 3; } WikiID = MapService.Instance.GetNodeWikiID(rpMap.ID, ID); EventType = rpData.NodeEventType; EventSubType = rpData.NodeEventSubType; switch (EventType) { case SortieEventType.Reward: Event = new RewardEvent(rpData); break; case SortieEventType.Whirlpool: Event = new WhirlpoolEvent(rpData); break; case SortieEventType.NormalBattle: case SortieEventType.BossBattle: Event = new BattleEvent(rpMap, rpData, WikiID); break; case SortieEventType.NothingHappened: Event = new NothingHappenedEvent(rpMap, rpData); break; case SortieEventType.AviationReconnaissance: Event = new AviationReconnaissanceEvent(rpData); break; case SortieEventType.EscortSuccess: Event = new EscortSuccessEvent(rpData); break; case SortieEventType.Landing: Event = new LandingEvent(rpData); break; } IsDeadEnd = rpData.NextRouteCount == 0; }
public static void Initialize() { battleEvent = new BattleEvent(); sharpEvent = new SharpEvent(); battleManager = new Manager.BattleManager(); charactersManager = new Manager.BattleCharactersManager(); mapSearch = new TileMap(); aStar = new AStar(); AppManager = new AppManager(); SUser = new SUser(); }
BattleEvent PopTopEvent() { BattleEvent next = null; if (eventQueue.Count > 0) { next = eventQueue[0]; eventQueue.RemoveAt(0); } return(next); }
public void HandleBattleEvent(BattleEvent type) { switch(type) { case BattleEvent.TurnChange: if(CurrentScene == 11) { // after daria's first laser strike bc.PauseBattle(); nextScene(); } break; case BattleEvent.Finished: mus.StopMusic(1.0f); nextScene(); break; } }
public void EnqueueAction(BattleEvent e) { EnqueueAction(e, EventPriority.Normal); }
public void EnqueueCounterAction(BattleEvent e) { EnqueueAction(e, EventPriority.Counter); }
public void EnqueueLimit(BattleEvent e) { EnqueueAction(e, EventPriority.Limit); }
public void HandleBattleEvent(BattleEvent type) { if(type == BattleEvent.Finished) { nextScene(); } }
public void HandleBattleEvent(BattleEvent type) { switch(type) { case BattleEvent.TurnChange: // don't count the FB's turn if(bc.currentTurn != 2) { if(CurrentScene == 1 || CurrentScene == 4 || CurrentScene == 7 || CurrentScene == 10 || CurrentScene == 12 || CurrentScene == 15 || CurrentScene == 17 || CurrentScene == 21) { bc.PauseBattle(); nextScene(); } } break; case BattleEvent.Finished: mus.StopMusic(1.0f); nextScene(); break; } }
public void HandleBattleEvent(BattleEvent type) { switch(type) { case BattleEvent.TurnChange: if(CurrentScene == 28) { // when FF's HP starts getting low... if(bc.EnemyCombatants[1].HitPoints / (float)bc.EnemyCombatants[1].MaxHitPoints < 0.2f) { bc.PauseBattle(); ff.GetComponent<FlanaganCombatant>().WakeUp(); nextScene(); } } else if(CurrentScene == 31) { //did FF die? if(bc.EnemyCombatants[1].HitPoints == 0) { bc.PauseBattle(); mp.PlayMusic(VictoryMusic, false); startTimer(); nextScene(); } } break; } }
public void HandleBattleEvent(BattleEvent type) { switch(type) { case BattleEvent.TurnChange: break; case BattleEvent.Finished: mus.StopMusic(1.0f); nextScene(); break; } }
private void EnqueueAction(BattleEvent a, EventPriority priority) { lock (EventQueue) { EventQueue.Enqueue(a, priority); #if DEBUG Console.WriteLine(); Console.WriteLine(" An event has been added to the queue!"); Console.WriteLine(); Console.WriteLine(EventQueue.ToString()); #endif } }
protected override void InternalInit() { ScreenState state = new ScreenState { Width = Seven.Configuration.WindowWidth, Height = Seven.Configuration.WindowHeight }; _victoryEvent = new EndOfBattleEvent("Victory!"); _lossEvent = new EndOfBattleEvent("Annihilated!"); Screen = new BattleScreen(this, state); SpeedValue = (32768 / (120 + (Seven.Party.BattleSpeed * 15 / 8))); GlobalClock = new BattleClock(SpeedValue); Allies = new Ally[Party.PARTY_SIZE]; int[] e = _formation.GetAllyTurnTimersElapsed(Party); for (int i = 0; i < Party.PARTY_SIZE; i++) { if (Party[i] != null) { Allies[i] = new Ally(this, i, e[i]); Allies[i].InitMenu(state); } } if (Allies.All(a => a == null)) { throw new GameDataException("Must have at least one ally in battle."); } EnemyList = _formation.GetEnemyList(this); foreach (Ally ally in Allies) { if (ally != null) { CombatantClocks.Add(ally.TurnTimer); CombatantClocks.Add(ally.V_Timer); CombatantClocks.Add(ally.C_Timer); ally.TurnTimer.Unpause(); } } foreach (Enemy enemy in EnemyList) { CombatantClocks.Add(enemy.TurnTimer); CombatantClocks.Add(enemy.V_Timer); CombatantClocks.Add(enemy.C_Timer); enemy.EnterBattle(); } foreach (Enemy enemy in EnemyList) { enemy.TurnTimer.Unpause(); } }
public void HandleBattleEvent(BattleEvent type) { switch(type) { case BattleEvent.TurnChange: if(CurrentScene == 0) { bc.PauseBattle(); nextScene(); } else if(CurrentScene == 2) { // did the bball die? if(bc.EnemyCombatants[0].HitPoints == 0) { bc.PauseBattle(); mus.StopMusic(3.0f); startTimer(); nextScene(); } } break; case BattleEvent.Finished: mus.StopMusic(1.0f); nextScene(); break; } }