Exemplo n.º 1
0
 public IEnumerator <YieldInstruction> LandedOnTile(Character character)
 {
     DungeonScene.EventEnqueueFunction <SingleCharEvent> function = (StablePriorityQueue <GameEventPriority, EventQueueElement <SingleCharEvent> > queue, Priority maxPriority, ref Priority nextPriority) =>
     {
         TileData entry = DataManager.Instance.GetTile(ID);
         AddEventsToQueue <SingleCharEvent>(queue, maxPriority, ref nextPriority, entry.LandedOnTiles, character);
     };
     foreach (EventQueueElement <SingleCharEvent> effect in DungeonScene.IterateEvents <SingleCharEvent>(function))
     {
         yield return(CoroutineManager.Instance.StartCoroutine(effect.Event.Apply(effect.Owner, effect.OwnerChar, character)));
     }
 }
Exemplo n.º 2
0
 public IEnumerator <YieldInstruction> InteractWithTile(Character character)
 {
     DungeonScene.EventEnqueueFunction <SingleCharEvent> function = (StablePriorityQueue <GameEventPriority, Tuple <GameEventOwner, Character, SingleCharEvent> > queue, Priority maxPriority, ref Priority nextPriority) =>
     {
         TileData entry = DataManager.Instance.GetTile(ID);
         AddEventsToQueue <SingleCharEvent>(queue, maxPriority, ref nextPriority, entry.InteractWithTiles);
     };
     foreach (Tuple <GameEventOwner, Character, SingleCharEvent> effect in DungeonScene.IterateEvents <SingleCharEvent>(function))
     {
         yield return(CoroutineManager.Instance.StartCoroutine(effect.Item3.Apply(effect.Item1, effect.Item2, character)));
     }
 }
Exemplo n.º 3
0
 public IEnumerator <YieldInstruction> Hit(BattleContext context)
 {
     DungeonScene.EventEnqueueFunction <BattleEvent> function = (StablePriorityQueue <GameEventPriority, Tuple <GameEventOwner, Character, BattleEvent> > queue, Priority maxPriority, ref Priority nextPriority) =>
     {
         //include the universal effect here
         DataManager.Instance.UniversalEvent.AddEventsToQueue(queue, maxPriority, ref nextPriority, DataManager.Instance.UniversalEvent.OnHits);
         AddEventsToQueue <BattleEvent>(queue, maxPriority, ref nextPriority, OnHits);
     };
     foreach (Tuple <GameEventOwner, Character, BattleEvent> effect in DungeonScene.IterateEvents <BattleEvent>(function))
     {
         yield return(CoroutineManager.Instance.StartCoroutine(effect.Item3.Apply(effect.Item1, effect.Item2, context)));
     }
 }
Exemplo n.º 4
0
 public IEnumerator <YieldInstruction> Hit(BattleContext context)
 {
     DungeonScene.EventEnqueueFunction <BattleEvent> function = (StablePriorityQueue <GameEventPriority, EventQueueElement <BattleEvent> > queue, Priority maxPriority, ref Priority nextPriority) =>
     {
         //include the universal effect here
         DataManager.Instance.UniversalEvent.AddEventsToQueue(queue, maxPriority, ref nextPriority, DataManager.Instance.UniversalEvent.OnHits, null);
         ZoneManager.Instance.CurrentMap.MapEffect.AddEventsToQueue(queue, maxPriority, ref nextPriority, ZoneManager.Instance.CurrentMap.MapEffect.OnHits, null);
         AddEventsToQueue <BattleEvent>(queue, maxPriority, ref nextPriority, OnHits, null);
     };
     foreach (EventQueueElement <BattleEvent> effect in DungeonScene.IterateEvents <BattleEvent>(function))
     {
         yield return(CoroutineManager.Instance.StartCoroutine(effect.Event.Apply(effect.Owner, effect.OwnerChar, context)));
     }
 }