FindRemovedMarker() private method

private FindRemovedMarker ( System.Guid lId, string name ) : Octgn.Play.Marker
lId System.Guid
name string
return Octgn.Play.Marker
Example #1
0
        public void TransferMarker(Player player, Card from, Card to, Guid id, string name, ushort count, ushort oldCount, bool isScriptChange)
        {
            var marker = from.FindMarker(id, name);

            if (player == null)
            {
                Program.GameMess.Warning("Inconsistent state. Cannot transfer marker to unknown player.");
                return;
            }
            if (player != Player.LocalPlayer)
            {
                if (marker == null)
                {
                    Program.GameMess.Warning("Inconsistent state. Marker not found on card.");
                    return;
                }
                if (marker.Count != oldCount)
                {
                    Program.GameMess.Warning("Inconsistent state. Missing markers to remove");
                }
            }
            var newMarker  = to.FindMarker(id, name);
            var toOldCount = 0;

            if (newMarker != null)
            {
                toOldCount = newMarker.Count - 1;
            }
            var fromNewCount = oldCount - count;
            var toNewCount   = toOldCount + count;

            if (player != Player.LocalPlayer)
            {
                from.RemoveMarker(marker, count);
                to.AddMarker(marker.Model, count);
            }
            Program.GameMess.PlayerEvent(player, "moves {0} {1} marker(s) from {2} to {3}", count, name, from, to);
            if (marker == null)
            {
                marker = from.FindRemovedMarker(id, name);
            }
            if (marker != null)
            {
                if (isScriptChange == false)
                {
                    Program.GameEngine.EventProxy.OnMarkerChanged_3_1_0_0(
                        from,
                        marker.Model.ModelString(),
                        oldCount,
                        fromNewCount,
                        isScriptChange);
                    Program.GameEngine.EventProxy.OnMarkerChanged_3_1_0_0(
                        to,
                        marker.Model.ModelString(),
                        toOldCount,
                        toNewCount,
                        isScriptChange);
                    Program.GameEngine.EventProxy.OnMarkerChanged_3_1_0_1(
                        from,
                        marker.Model.ModelString(),
                        oldCount,
                        fromNewCount,
                        isScriptChange);
                    Program.GameEngine.EventProxy.OnMarkerChanged_3_1_0_1(
                        to,
                        marker.Model.ModelString(),
                        toOldCount,
                        toNewCount,
                        isScriptChange);
                }
                Program.GameEngine.EventProxy.OnMarkerChanged_3_1_0_2(
                    from,
                    marker.Model.Name,
                    marker.Model.Id.ToString(),
                    oldCount,
                    isScriptChange);
                Program.GameEngine.EventProxy.OnMarkerChanged_3_1_0_2(
                    to,
                    marker.Model.Name,
                    marker.Model.Id.ToString(),
                    toOldCount,
                    isScriptChange);
            }
        }
Example #2
0
 public void TransferMarker(Player player, Card from, Card to, Guid id, string name, ushort count, ushort oldCount, bool isScriptChange)
 {
     Marker marker = from.FindMarker(id, name);
     if (player == null)
     {
         Program.GameMess.Warning("Inconsistent state. Cannot transfer marker to unknown player.");
         return;
     }
     if (player != Player.LocalPlayer)
     {
         if (marker == null)
         {
             Program.GameMess.Warning("Inconsistent state. Marker not found on card.");
             return;
         }
         if (marker.Count != oldCount)
             Program.GameMess.Warning("Inconsistent state. Missing markers to remove");
     }
     Marker newMarker = to.FindMarker(id, name);
     int toOldCount = 0;
     if (newMarker != null)
         toOldCount = newMarker.Count - 1;
     int fromNewCount = oldCount - count;
     int toNewCount = toOldCount + count;
     if (player != Player.LocalPlayer)
     {
         from.RemoveMarker(marker, count);
         to.AddMarker(marker.Model, count);
     }
     Program.GameMess.PlayerEvent(player, "moves {0} {1} marker(s) from {2} to {3}", count, name, from, to);
     if (marker == null)
     {
         marker = from.FindRemovedMarker(id, name);
     }
     if (marker != null)
     {
         if (isScriptChange == false)
         {
             Program.GameEngine.EventProxy.OnMarkerChanged_3_1_0_0(
                 from,
                 marker.Model.ModelString(),
                 oldCount,
                 fromNewCount,
                 isScriptChange);
             Program.GameEngine.EventProxy.OnMarkerChanged_3_1_0_0(
                 to,
                 marker.Model.ModelString(),
                 toOldCount,
                 toNewCount,
                 isScriptChange);
             Program.GameEngine.EventProxy.OnMarkerChanged_3_1_0_1(
                 from,
                 marker.Model.ModelString(),
                 oldCount,
                 fromNewCount,
                 isScriptChange);
             Program.GameEngine.EventProxy.OnMarkerChanged_3_1_0_1(
                 to,
                 marker.Model.ModelString(),
                 toOldCount,
                 toNewCount,
                 isScriptChange);
         }
         Program.GameEngine.EventProxy.OnMarkerChanged_3_1_0_2(
             from,
             marker.Model.Name,
             marker.Model.Id.ToString(),
             oldCount,
             isScriptChange);
         Program.GameEngine.EventProxy.OnMarkerChanged_3_1_0_2(
             to,
             marker.Model.Name,
             marker.Model.Id.ToString(),
             toOldCount,
             isScriptChange);
     }
 }