Ejemplo n.º 1
0
 public void HandleEvent(EntityEventData <ArticleTag> eventData)
 {
     //当FArticleTag实体发生修改,立即清空它在Redis中的缓存
     _cacheManager
     .GetCache(BlogCacheNames.CacheBlog)
     .Remove(BlogCacheNames.CacheArticleTag);
 }
Ejemplo n.º 2
0
        private void OnVisualEvent(GameEvent e)
        {
            // Check for which entity the event is for.
            EntityEventData entityEventData = e.EventData as EntityEventData;

            if (entityEventData != null)
            {
                this.DelegateVisualEvent(entityEventData.EntityId, e);
                return;
            }

            Entity2Data entity2EventData = e.EventData as Entity2Data;

            if (entity2EventData != null)
            {
                this.DelegateVisualEvent(entity2EventData.First, e);
                this.DelegateVisualEvent(entity2EventData.Second, e);
                return;
            }

            Debug.LogError(
                string.Format(
                    "Received event {0} for visual behaviour, but event data {1} wasn't derived from EntityEventData or Entity2Data to get entity id(s).",
                    e.EventType,
                    e.EventData.GetType()));
        }
Ejemplo n.º 3
0
        protected virtual void OnNotify(EntityEventData eventData)
        {
            var componentsMatched = ActionableComponents.Count(eventData.Entity.ContainsComponent);

            switch (eventData.EventType)
            {
            case EntityEventType.NewEntity:
                break;

            case EntityEventType.NewComponent:
                if (componentsMatched == ActionableComponents.Count && !ActionableEntities.Contains(eventData.Entity))
                {
                    ActionableEntities.Add(eventData.Entity);
                    Console.WriteLine("{0} Added {1} to actionable entities", GetType().FullName, eventData.Entity);
                }
                break;

            case EntityEventType.RemovedComponent:
                if (ActionableEntities.Contains(eventData.Entity) && componentsMatched != ActionableComponents.Count)
                {
                    ActionableEntities.Remove(eventData.Entity);
                    Console.WriteLine("{0} Removed {1} from actionable entities", GetType().FullName, eventData.Entity);
                }
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(eventData.EventType), eventData.EventType, null);
            }
        }
Ejemplo n.º 4
0
 public void HandleEvent(EntityEventData <ArticleComment> eventData)
 {
     //当有未审核的评论时需要通知
     if (eventData.Entity.ToExamine == ToExamine.Unaudited)
     {
         _cacheManager
         .GetCache(BlogCacheNames.CacheBlogAuditNotice)
         .Clear();
     }
 }
Ejemplo n.º 5
0
 public void HandleEvent(EntityEventData <FriendshipLink> eventData)
 {
     //当FriendshipLink实体发生修改,立即清空它在Redis中的缓存
     _cacheManager
     .GetCache(BlogCacheNames.CacheBlog)
     .Remove(BlogCacheNames.CacheFriendshipLink);
     if (eventData.Entity.ToExamine == ToExamine.Unaudited)
     {
         _cacheManager
         .GetCache(BlogCacheNames.CacheBlogAuditNotice)
         .Clear();
     }
 }
Ejemplo n.º 6
0
 void PointsCollected(EntityEventData entityData)
 {
     if (entityData.currentEntityType == EntityEventData.EntityType.bonus)
     {
         if (entityData.points > 0)
         {
             //particle system FX
             _pointsFX1.StartParticleEmission();
             _pointsFX2.StartParticleEmission();
             //_pointsFX1.StopParticleEmission();
             StartCoroutine(FXduration());
         }
     }
 }
Ejemplo n.º 7
0
        private object IOnSleeperStatsChange(SleeperServer sleeper, EntityEventData eventData, EntityEffectSourceData sourceData)
        {
            if (sourceData == null || !(eventData is IEventTypeEventData eventTypeEventData))
            {
                return(null);
            }

            if (eventTypeEventData.EventType == EEntityEventType.Damaged)
            {
                // TODO: Implement OnSleeperTakeDamage hook
                return(null);
            }
            else if (eventTypeEventData.EventType == EEntityEventType.Die)
            {
                if (sleeper._linkedPlayer != null)
                {
                    return(Interface.CallHook("OnSleeperDeath", sleeper._linkedPlayer, sourceData));
                }
            }

            return(null);
        }
Ejemplo n.º 8
0
 protected bool Equals(EntityEventData other)
 {
     return(this.EntityId == other.EntityId);
 }
 protected TIndexer GetDocument(EntityEventData <TContent> eventData)
 {
     return(eventData.Entity.MapTo <TIndexer>());
 }
Ejemplo n.º 10
0
 protected bool Equals(EntityEventData other)
 {
     return this.EntityId == other.EntityId;
 }
Ejemplo n.º 11
0
        public void Method_BaseEvent_BaseArg(EntityEventData<Person> data)
        {

        }
Ejemplo n.º 12
0
 public void MethodBaseEventBaseArg(EntityEventData <Person> data)
 {
 }
Ejemplo n.º 13
0
 internal void Method_BaseEvent_BaseArg(EntityEventData <Person> data)
 {
 }
Ejemplo n.º 14
0
 public void HandleEvent(EntityEventData <BlogProposal> eventData)
 {
     //throw new NotImplementedException();
 }
Ejemplo n.º 15
0
 public void HandleEvent(EntityEventData <Article> eventData)
 {
     //throw new NotImplementedException();
 }
Ejemplo n.º 16
0
        public void Method_BaseEvent_DerivedArg(EntityEventData<Student> data)
        {

        }
Ejemplo n.º 17
0
 void BonusHit(EntityEventData entityData)
 {
     Points += entityData.points;
 }
Ejemplo n.º 18
0
 internal void Method_BaseEvent_DerivedArg(EntityEventData <Student> data)
 {
 }
Ejemplo n.º 19
0
 public void MethodBaseEventDerivedArg(EntityEventData <Student> data)
 {
 }
Ejemplo n.º 20
0
    void ReceiveBonusMalus(EntityEventData entityData)
    {
        switch (entityData.currentEntityType)
        {
        case EntityEventData.EntityType.bonus:
            TotalLives += entityData.lives;
            Credits    += entityData.credits;

            if (entityData.health >= DeltaHealth)
            {
                CurrentHealth = MaxHealth;
            }
            if (entityData.health < DeltaHealth)
            {
                CurrentHealth += entityData.health;
            }
            if (CurrentHealth > 50)
            {
                WildUfoEvents.boolHit.Invoke(new BoolEventData(false, BoolEventData.BoolEvent.enemyZone));
            }

            break;

        case EntityEventData.EntityType.malus:
            TotalLives -= entityData.lives;
            Credits    -= entityData.credits;
            Debug.Log("Il danno è " + entityData.health.ToString());
            if (entityData.health <= CurrentShield)
            {
                CurrentShield -= entityData.health;
            }
            else if (entityData.health > CurrentShield)
            {
                float deltaShield = entityData.health - CurrentShield;
                CurrentShield = 0;
                WildUfoEvents.boolHit.Invoke(new BoolEventData(false, BoolEventData.BoolEvent.shieldActivated));
                if (deltaShield < CurrentHealth)
                {
                    CurrentHealth -= deltaShield;
                    // va bene per le bombe ma non con le trappole a contatto continuo perchp questo metodo viene chiamato ripetutamente
                    WildUfoEvents.boolHit.Invoke(new BoolEventData(true, BoolEventData.BoolEvent.debris));
                }
                else if (deltaShield >= CurrentHealth)
                {
                    CurrentHealth = 0;
                    PlayerDead    = true;
                }
            }
            if (CurrentHealth < 60)
            {
                WildUfoEvents.boolHit.Invoke(new BoolEventData(true, BoolEventData.BoolEvent.enemyZone));
            }
            if (CurrentHealth == 0)
            {
                if (!GameManager.GameIsOver)
                {
                    WildUfoEvents.boolHit.Invoke(new BoolEventData(true, BoolEventData.BoolEvent.gameIsOver));
                }
            }

            break;

        default:
            //Debug.LogError("Errore nessun caso di statistica giocatore gestita");
            break;
        }
    }