Пример #1
0
        internal void SetMarker(Player player, Guid lId, string name, int count)
        {
            int    oldCount = 0;
            Marker marker   = FindMarker(lId, name);

            if (marker != null)
            {
                oldCount = marker.Count;
                marker.SetCount((ushort)count);
            }
            else if (count > 0)
            {
                DataNew.Entities.Marker model = Program.GameEngine.GetMarkerModel(lId);
                var defaultMarkerModel        = model as DefaultMarkerModel;
                if (defaultMarkerModel != null)
                {
                    (defaultMarkerModel).SetName(name);
                }
                AddMarker(model, (ushort)count);
            }
            if (count != oldCount)
            {
                Program.TracePlayerEvent(player, "{0} sets {1} ({2}) markers {3} on {4}.",
                                         player, count, (count - oldCount).ToString("+#;-#"),
                                         marker != null ? marker.Model.Name : name, this);
            }
        }
Пример #2
0
        public void AddMarker(Player player, Card card, Guid id, string name, ushort count, ushort oldCount, bool isScriptChange)
        {
            DataNew.Entities.Marker model = Program.GameEngine.GetMarkerModel(id);
            model.Name = name;
            Marker marker = card.FindMarker(id, name);

            if (player != Player.LocalPlayer)
            {
                if (marker == null && oldCount != 0)
                {
                    Program.GameMess.Warning("Inconsistent state. Cannot create a marker when that marker already exists.");
                    return;
                }
                if (marker != null && oldCount != marker.Count)
                {
                    Program.GameMess.Warning("Inconsistent state.  Marker count invalid.");
                    return;
                }
                card.AddMarker(model, count);
            }
            if (count != 0)
            {
                int newCount = oldCount + count;
                Program.GameMess.PlayerEvent(player, "adds {0} {1} marker(s) on {2}", count, model.Name, card);
                if (isScriptChange == false)
                {
                    Program.GameEngine.EventProxy.OnMarkerChanged_3_1_0_0(card, model.ModelString(), oldCount, newCount, isScriptChange);
                    Program.GameEngine.EventProxy.OnMarkerChanged_3_1_0_1(card, model.ModelString(), oldCount, newCount, isScriptChange);
                }
                Program.GameEngine.EventProxy.OnMarkerChanged_3_1_0_2(card, model.Name, model.Id.ToString(), oldCount, isScriptChange);
            }
        }
Пример #3
0
        //public Dictionary<Tuple<string,string>,int> MarkersDict
        //{
        //    get
        //    {
        //        Dictionary<Tuple<string, string>, int> markertuple = new Dictionary<Tuple<string,string>,int>();
        //        if (_markers.Count > 0)
        //        {
        //            foreach (Marker m in _markers)
        //            {
        //                Tuple<string, string> key = Tuple.Create<string, string>(m.Model.Name, m.Model.Id.ToString());
        //                markertuple.Add(key, m.Count);
        //            }
        //        }
        //        return markertuple;
        //    }
        //}
        internal void AddMarker(DataNew.Entities.Marker model, ushort count)
        {
            Marker marker = _markers.FirstOrDefault(m => m.Model.Equals(model));

            if (marker != null)
            {
                marker.SetCount((ushort)(marker.Count + count));
            }
            else if (count > 0)
            {
                _markers.Add(new Marker(this, model, count));
            }
        }
Пример #4
0
        internal void SetMarker(Player player, Guid lId, string name, int count, bool notify = true)
        {
            int    oldCount = 0;
            Marker marker   = FindMarker(lId, name);

            if (marker != null)
            {
                oldCount = marker.Count;
                marker.SetCount((ushort)count);
            }
            else if (count > 0)
            {
                DataNew.Entities.Marker model = Program.GameEngine.GetMarkerModel(lId);
                model.Name = name;
                AddMarker(model, (ushort)count);
            }
        }
Пример #5
0
        public void MarkerSetCount(int cardId, int count, string markerName, string markerId)
        {
            if (count < 0)
            {
                count = 0;
            }
            Card   card      = Card.Find(cardId);
            Guid   guid      = Guid.Parse(markerId);
            Marker marker    = card.FindMarker(guid, markerName);
            int    origCount = 0;

            /*if (card.Controller != Player.LocalPlayer)
             *  Program.GameMess.Warning(String.Format("{0} Can't set markers on {1} because they don't control it.", Player.LocalPlayer.Name, card.Name));
             */
            // Will add in checks or controls to handle/allow this. -- DS
            QueueAction(() =>
            {
                if (marker == null)
                {
                    DataNew.Entities.Marker model         = Program.GameEngine.GetMarkerModel(guid);
                    DefaultMarkerModel defaultMarkerModel = model as DefaultMarkerModel;
                    if (defaultMarkerModel != null)
                    {
                        (defaultMarkerModel).SetName(markerName);
                    }
                    //card.SetMarker(Player.LocalPlayer, guid, markerName, count);
                    Program.Client.Rpc.AddMarkerReq(card, guid, markerName, (ushort)count, (ushort)origCount, true);
                    card.AddMarker(model, (ushort)count);
                }
                else
                {
                    origCount = marker.Count;
                    if (origCount < count)
                    {
                        Program.Client.Rpc.AddMarkerReq(card, guid, markerName, (ushort)(count - origCount), (ushort)origCount, true);
                        card.AddMarker(marker.Model, (ushort)(count - origCount));
                    }
                    else if (origCount > count)
                    {
                        Program.Client.Rpc.RemoveMarkerReq(card, guid, markerName, (ushort)(origCount - count), (ushort)origCount, true);
                        card.RemoveMarker(marker, (ushort)(origCount - count));
                    }
                }
            });
        }
Пример #6
0
        public void AddMarker(Player player, Card card, Guid id, string name, ushort count)
        {
            DataNew.Entities.Marker model = Program.GameEngine.GetMarkerModel(id);
            DefaultMarkerModel      defaultMarkerModel = model as DefaultMarkerModel;

            if (defaultMarkerModel != null)
            {
                (defaultMarkerModel).SetName(name);
            }
            // Ignore markers created by oneself (already created for responsiveness issues)
            if (player != Player.LocalPlayer)
            {
                card.AddMarker(model, count);
            }
            if (count != 0)
            {
                Program.Trace.TraceEvent(TraceEventType.Information, EventIds.Event | EventIds.PlayerFlag(player),
                                         "{0} adds {1} {2} marker(s) on {3}", player, count, model, card);
            }
        }
Пример #7
0
 internal void AddMarker(DataNew.Entities.Marker model)
 {
     AddMarker(model, 1);
 }
Пример #8
0
 public Marker(Card card, DataNew.Entities.Marker model, ushort count)
     : this(card, model)
 {
     _count = count;
 }
Пример #9
0
 public Marker(Card card, DataNew.Entities.Marker model)
 {
     _card  = card;
     _model = model;
 }
Пример #10
0
 public Marker(Card card, DataNew.Entities.Marker model)
 {
     _card = card;
     _model = model;
 }