public int MarkerGetCount(int cardId, string markerName, string markerId) { Card card = Card.Find(cardId); Marker marker = card.FindMarker(markerId, markerName); return(marker == null ? 0 : marker.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); model.Name = markerName; 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)); } } }); }
internal void RemoveMarker(Marker marker) { _markers.Remove(marker); }
internal int RemoveMarker(Marker marker, ushort count) { if (!_markers.Contains(marker)) return 0; if (marker.Count <= count) { int realCount = marker.Count; _markers.Remove(marker); return realCount; } marker.SetCount((ushort) (marker.Count - count)); return count; }