void HandleTurnStarted(object sender, EventProxyArgs args) { if (!model.matchRunning) { return; } // perform AI planning and execute it if the active unit is AI controled TurnStartedEvent e = args as TurnStartedEvent; if (e.unit.AIControled) { TurnPlan plan = e.unit.ai.DoPlanning(); // execute turn plan MoveUnit(e.unit, plan.movementTarget); // check again if this unit is dead (might have died from field effects) if (!e.unit.Alive) { EndTurn(); return; } AttackMapTile(e.unit, plan.attackTarget.mapTile, plan.attack); } }
void HandleRoundSetup(object sender, EventProxyArgs args) { RoundSetupEvent e = args as RoundSetupEvent; bInitativeList.UpdateList(e.sortedList); EventProxyManager.FireEvent(this, new EventDoneEvent()); }
public void FireEvent(object sender, EventProxyArgs e) { if (EventFired != null) { EventFired(sender, e); } }
void HandleUnitLoseHealth(object sender, EventProxyArgs eventArgs) { UnitLoseHealthEvent e = eventArgs as UnitLoseHealthEvent; BUnit bUnit = GetBUnit(e.unit); bUnit.unitUI.UpdateLifebar(e.damage); EventProxyManager.FireEvent(this, new EventDoneEvent()); }
void _FireEvent(object sender, EventProxyArgs args) { if (proxyDict.ContainsKey(args.name)) { proxyDict[args.name].FireEvent(sender, args); } // else // fire error event }
/// <summary> /// Count the duration down to 0; If duration == 0 remove this obstacle; /// If duration is < 0 this instance will stay forever /// </summary> private void HandleRoundSetup(object sender, EventProxyArgs args) { if (duration > 0) { duration--; } if (duration == 0) { Destroy(); // remove this topping } }
void HandleEvent(object sender, EventProxyArgs args) { if (args.name == EventName.TurnStarted) { TurnStartedEvent e = (TurnStartedEvent)args; Debug.Log("Round: " + e.round + " Turn: " + e.turn); } eventQueue.Enqueue(args); if (!performingEvent) { EventProxyManager.FireEvent(this, new EventDoneEvent()); } }
// static methods to fire/register events without need of any reference #region external public static void FireEvent(object sender, EventProxyArgs args) { Instance._FireEvent(sender, args); }
void HandleDebugLog(object sender, EventProxyArgs args) { DebugLogEvent e = args as DebugLogEvent; Debug.Log(e.debugLogString); }
void HandleEventDone(object sender, EventProxyArgs args) { // continue with next event from queue if (eventQueue.Count > 0) { EventProxyArgs eventArgs = eventQueue.Dequeue(); Debug.Log(eventArgs.name); performingEvent = true; // call handler for the next event in the queue switch (eventArgs.name) { case EventName.Initialized: HandleInitialized(sender, eventArgs); break; case EventName.UnitSpawned: HandleUnitSpawned(sender, eventArgs); break; case EventName.RoundSetup: HandleRoundSetup(sender, eventArgs); break; case EventName.UnitActivated: HandleUnitActivated(sender, eventArgs); break; case EventName.TurnStarted: HandleTurnStarted(sender, eventArgs); break; case EventName.BMapTileTapped: HandleBMapTileTapped(sender, eventArgs); break; case EventName.BUnitTapped: HandleBUnitTapped(sender, eventArgs); break; case EventName.UnitMoved: HandleUnitMoved(sender, eventArgs); break; case EventName.UnitAttacked: HandleUnitAttacked(sender, eventArgs); break; case EventName.UnitLoseHealth: HandleUnitLoseHealth(sender, eventArgs); break; case EventName.UnitDied: HandleUnitDied(sender, eventArgs); break; case EventName.ToppingSpawned: HandleToppingSpawned(sender, eventArgs); break; case EventName.ToppingDestroyed: HandleToppingDestroyed(sender, eventArgs); break; case EventName.Gameover: HandleGameover(sender, eventArgs); break; } } else { // we are done with event queue performingEvent = false; } }