本文整理汇总了C#中Octgn.Play.Card.FindMarker方法的典型用法代码示例。如果您正苦于以下问题:C# Card.FindMarker方法的具体用法?C# Card.FindMarker怎么用?C# Card.FindMarker使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Octgn.Play.Card
的用法示例。
在下文中一共展示了Card.FindMarker方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AddMarker
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);
DefaultMarkerModel defaultMarkerModel = model as DefaultMarkerModel;
if (defaultMarkerModel != null)
(defaultMarkerModel).SetName(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);
}
}
}
示例2: TransferMarker
public void TransferMarker(Player player, Card from, Card to, Guid id, string name, ushort count)
{
// Ignore markers moved by oneself (already moved for responsiveness issues)
if (player != Player.LocalPlayer)
{
Marker marker = from.FindMarker(id, name);
if (marker == null)
{
Program.Trace.TraceEvent(TraceEventType.Warning, EventIds.NonGame, "Inconsistent state. Marker not found on card.");
return;
}
if (marker.Count < count)
Program.Trace.TraceEvent(TraceEventType.Warning, EventIds.NonGame, "Inconsistent state. Missing markers to remove");
from.RemoveMarker(marker, count);
to.AddMarker(marker.Model, count);
}
Program.Trace.TraceEvent(TraceEventType.Information, EventIds.Event | EventIds.PlayerFlag(player), "{0} moves {1} {2} marker(s) from {3} to {4}", player, count, name, from, to);
}
示例3: TransferMarker
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);
}
}
示例4: RemoveMarker
public void RemoveMarker(Player player, Card card, Guid id, string name, ushort count, ushort oldCount, bool isScriptChange)
{
Marker marker = card.FindMarker(id, name);
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");
}
if (count != 0)
{
int newCount = oldCount - count;
if (player != Player.LocalPlayer)
{
card.RemoveMarker(marker, count);
}
Program.GameMess.PlayerEvent(player, "removes {0} {1} marker(s) from {2}", count, name, card);
if (player == Player.LocalPlayer && marker == null)
{
StringBuilder markerString = new StringBuilder();
markerString.AppendFormat("('{0}','{1}')", name, id);
if (isScriptChange == false)
{
Program.GameEngine.EventProxy.OnMarkerChanged_3_1_0_0(card, markerString.ToString(), oldCount, newCount, isScriptChange);
Program.GameEngine.EventProxy.OnMarkerChanged_3_1_0_1(card, markerString.ToString(), oldCount, newCount, isScriptChange);
}
Program.GameEngine.EventProxy.OnMarkerChanged_3_1_0_2(card, name, id.ToString(), oldCount, isScriptChange);
}
else
{
if (isScriptChange == false)
{
Program.GameEngine.EventProxy.OnMarkerChanged_3_1_0_0(card, marker.Model.ModelString(), oldCount, newCount, isScriptChange);
Program.GameEngine.EventProxy.OnMarkerChanged_3_1_0_1(card, marker.Model.ModelString(), oldCount, newCount, isScriptChange);
}
Program.GameEngine.EventProxy.OnMarkerChanged_3_1_0_2(card, name, id.ToString(), oldCount, isScriptChange);
}
}
}