private IEvent _Undo(bool countNonActionable = true) // TODO
        {
            IEvent e = allEvents.Pop();                      // Make method for this

            if (e is IActionableEvent)
            {
                IBaseCommand undoCommand = (e as IActionableEvent).NewUndoCommand();
                if (undoCommand is IEntityModifier)
                {
                    IEntityModifier m = (undoCommand as IEntityModifier);
                    Assert.IsTrue(m is IEventProducing);
                    (m as IEventProducing).DontRecordEvent = true;
                    EM.ApplyMod(m);
                }
                else if (undoCommand is IIndependentModifier)
                {
                    IIndependentModifier m = (undoCommand as IIndependentModifier);
                    Assert.IsTrue(m is IEventProducing);
                    (m as IEventProducing).DontRecordEvent = true;
                    EM.ApplyMod(m);
                }
                else if (undoCommand is Command)
                {
                    throw new NotImplementedException();
                }
                else
                {
                    throw new Exception("Cannot apply undo command: " + undoCommand.GetType().Name);
                }
            }

            return(e);
        }
 private void _Do(IEvent e)
 {
     if (e is IActionableEvent)
     {
         IBaseCommand doCommand = (e as IActionableEvent).NewDoCommand();
         if (doCommand is IEntityModifier)
         {
             IEntityModifier m = (doCommand as IEntityModifier);
             Assert.IsTrue(m is IEventProducing);
             EM.ApplyMod(m);
         }
         else if (doCommand is IIndependentModifier)
         {
             IIndependentModifier m = (doCommand as IIndependentModifier);
             Assert.IsTrue(m is IEventProducing);
             EM.ApplyMod(m);
         }
         else if (doCommand is Command)
         {
             throw new NotImplementedException();
         }
         else
         {
             throw new Exception();
         }
     }
 }
Ejemplo n.º 3
0
 public bool unregisterEntityModifier(IEntityModifier pEntityModifier)
 {
     if (this.mEntityModifiers == null)
     {
         return(false);
     }
     return(this.mEntityModifiers.Remove(pEntityModifier));
 }
 public void SendEntityMod(IEntityModifier m)
 {
     object[] args = new object[] {
         Serialisation.ToBinary(m.e), // Assume that the entity is not serialised with the modifier
         Serialisation.ToBinary(m)
     };
     View.RPC("DoEntityDependentMod", PhotonTargets.All, args);
 }
Ejemplo n.º 5
0
 public void registerEntityModifier(IEntityModifier pEntityModifier)
 {
     if (this.mEntityModifiers == null)
     {
         this.allocateEntityModifiers();
     }
     this.mEntityModifiers.Add(pEntityModifier);
 }
Ejemplo n.º 6
0
 public void Remove(TIdentifier identifier)
 {
     if (_entities.TryGetValue(identifier, out var entity))
     {
         IEntityModifier changer = entity;
         changer.MarkAsRemoved();
         _entities.Remove(identifier);
     }
 }
Ejemplo n.º 7
0
 public void RefreshEntityOnModifierUsingUID(IModifier m)
 {
     if (m is IEntityModifier)
     {
         IEntityModifier em = m as IEntityModifier;
         IEntityRegistry r  = GetRegistryByEntityType(em.IntendedEntityType);
         em.e = r.GetUncastEntityByUID(em.e.UID);
     }
 }
Ejemplo n.º 8
0
 public void Assign(IEntityModifier mod, CharacterNode target)
 {
     _target     = target;
     _watchedMod = mod;
     if (_watchedMod != null)
     {
         _iconImage.sprite = mod.Icon != null ? mod.Icon : _defaultIcon;
         UpdateCoolDown();
     }
 }
Ejemplo n.º 9
0
 private bool ContainsMod(IEntityModifier mod)
 {
     for (int i = 0; i < _active.Count; i++)
     {
         if (_active[i].Mod == mod)
         {
             return(true);
         }
     }
     return(false);
 }
Ejemplo n.º 10
0
 public void UnregisterModifier(IEntityModifier modifier)
 {
     if (modifier == null || modifiers == null)
     {
         return;
     }
     if (modifiers.Contains(modifier))
     {
         modifiers.Remove(modifier);
     }
 }
Ejemplo n.º 11
0
        public void RegisterModifier(IEntityModifier modifier)
        {
            if (modifiers == null)
            {
                modifiers = new EntityModifierList(this);
            }

            if (modifiers.Contains(modifier))
            {
                return;
            }
            modifiers.AddModifier(modifier);
        }
        public void SendEntityModAndConfirm(IEntityModifier m, Action finished)
        {
            int requestID = NetworkInteractionTracker.RecordMassPingRequestStarted();

            PhotonHelper.RequestFromPlayers(
                DependentRequest,
                r => ReturnModSentByRequestID.Add(requestID, r),
                _ => {
                Debug.Log("Mod sent to all players, should be done locally too");
                ReturnModSentByRequestID.Remove(requestID);
                if (finished != null)
                {
                    finished.Invoke();
                }
            },
                PhotonNetwork.player.ID, m, requestID
                );
        }
Ejemplo n.º 13
0
 public override int SaveChanges()
 {
     foreach (EntityEntry entry in ChangeTracker.Entries())
     {
         if (entry.Entity is IEntityCreator || entry.Entity is IEntityModifier)
         {
             if (entry.State == EntityState.Added)
             {
                 IEntityCreator entity = (IEntityCreator)entry.Entity;
                 entity.UserCreated = UserName;
                 entity.DateCreated = DateTime.Now;
             }
             if (entry.State == EntityState.Modified)
             {
                 IEntityModifier entity = (IEntityModifier)entry.Entity;
                 entity.UserModified = UserName;
                 entity.DateModified = DateTime.Now;
             }
         }
     }
     return(base.SaveChanges());
 }
Ejemplo n.º 14
0
 public OrderLineCollection(IEntityModifier root) : base(root)
 {
 }
Ejemplo n.º 15
0
 public static int TurnsLeft(this IEntityModifier mod)
 {
     return((mod.TurnStart + mod.TurnLength) - TurnBased.TurnNumber);
 }
Ejemplo n.º 16
0
 public static int TurnEnd(this IEntityModifier mod)
 {
     return(mod.TurnStart + mod.TurnLength);
 }
Ejemplo n.º 17
0
 public EntityCollection(IEntityModifier root)
 {
     _root = root;
 }
Ejemplo n.º 18
0
 public void AddBuildUI(IEntityModifier mod)
 {
     buildUIs.Add(mod);
 }
Ejemplo n.º 19
0
 public void OnPoolDespawned()
 {
     _watchedMod = null;
 }
Ejemplo n.º 20
0
 public void RemoveBuildUI(IEntityModifier mod)
 {
     buildUIs.Remove(mod);
 }
Ejemplo n.º 21
0
 public void AddBuildUI(IEntityModifier mod)
 {
     buildUIs.Add(mod);
 }
Ejemplo n.º 22
0
 public LoopEntityModifier(IEntityModifier entityModifier)
     : base(entityModifier)
 {
 }
Ejemplo n.º 23
0
 public LoopEntityModifier(IEntityModifier entityModifier, int loopCount)
     : base(entityModifier, loopCount)
 {
 }
Ejemplo n.º 24
0
 protected Entity(IEntityModifier root)
 {
     _root = root;
 }
Ejemplo n.º 25
0
 public void RemoveBuildUI(IEntityModifier mod)
 {
     buildUIs.Remove(mod);
 }