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); } }
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); } }
//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)); } }
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); } }
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)); } } }); }
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); } }
internal void AddMarker(DataNew.Entities.Marker model) { AddMarker(model, 1); }
public Marker(Card card, DataNew.Entities.Marker model, ushort count) : this(card, model) { _count = count; }
public Marker(Card card, DataNew.Entities.Marker model) { _card = card; _model = model; }