Ejemplo n.º 1
0
    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);
        }
    }
Ejemplo n.º 2
0
    void HandleRoundSetup(object sender, EventProxyArgs args)
    {
        RoundSetupEvent e = args as RoundSetupEvent;

        bInitativeList.UpdateList(e.sortedList);
        EventProxyManager.FireEvent(this, new EventDoneEvent());
    }
Ejemplo n.º 3
0
 public void FireEvent(object sender, EventProxyArgs e)
 {
     if (EventFired != null)
     {
         EventFired(sender, e);
     }
 }
Ejemplo n.º 4
0
    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
 }
Ejemplo n.º 6
0
 /// <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
     }
 }
Ejemplo n.º 7
0
 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);
 }
Ejemplo n.º 9
0
    void HandleDebugLog(object sender, EventProxyArgs args)
    {
        DebugLogEvent e = args as DebugLogEvent;

        Debug.Log(e.debugLogString);
    }
Ejemplo n.º 10
0
    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;
        }
    }