Exemple #1
0
        public override void OnEvent(Event evt)
        {
            switch (evt.Type)
            {
            case DestroyEntityEvent.DESTROY_ENTITY: {
                DestroyEntityEvent msg = (DestroyEntityEvent)evt;
                if (this.entity.ID == msg.EntityID && msg.DestroyedByEntityID > 0)
                {
                    int points = entity[Key_PointsAwarded];
                    if (points <= 0)
                    {
                        break;
                    }

                    Entity otherEntity;
                    game.World.Entities.TryGetValue(msg.DestroyedByEntityID, out otherEntity);
                    if (otherEntity == null || otherEntity.IsDead)
                    {
                        break;
                    }

                    AwardPointsEvent awardPointsEvent = AwardPointsEvent.Award(msg.DestroyedByEntityID, points,
                                                                               this.entity.ID);
                    eventManager.Queue(awardPointsEvent);
                }

                break;
            }
            }
        }
Exemple #2
0
        public override void OnEvent(Event evt)
        {
            switch (evt.Type)
            {
            case AwardPointsEvent.AWARD_POINTS: {
                AwardPointsEvent msg = (AwardPointsEvent)evt;

                int points = entity[Key_PointsCollected];
                points += msg.Points;
                entity[Key_PointsCollected] = points;

                HudEvent hudEvent = HudEvent.UpdateScore(points);
                eventManager.Queue(hudEvent);

                Console.WriteLine("[" + this.GetType().Name + "] " + entity + " collected " + msg.Points
                                  + " points for destroying " + msg.SourceEntityID + " (total points: " + points + " )");

                break;
            }
            }
        }