48 lines
1.3 KiB
C#
48 lines
1.3 KiB
C#
using GameModel;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Reflection;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace GameHandler.Extensions
|
|
{
|
|
public static class PinThrowExtension
|
|
{
|
|
public static ExpenseTrigger[] GetExpenseTriggers(this PinThrow pinThrow, BoardState boardState)
|
|
{
|
|
var res = new List<ExpenseTrigger>();
|
|
if (pinThrow.IsSink)
|
|
{
|
|
if (boardState.PinPicture.AllUp && boardState.ThrowMode == ThrowMode.Decrease)
|
|
{
|
|
res.Add(ExpenseTrigger.FullSink);
|
|
}
|
|
else
|
|
{
|
|
res.Add(ExpenseTrigger.Sink);
|
|
}
|
|
}
|
|
if (pinThrow.IsNoWood)
|
|
{
|
|
res.Add(ExpenseTrigger.NoWood);
|
|
}
|
|
if (pinThrow.IsBell)
|
|
{
|
|
res.Add(ExpenseTrigger.Bell);
|
|
}
|
|
if (pinThrow.IsCircle)
|
|
{
|
|
res.Add(ExpenseTrigger.Circle);
|
|
}
|
|
if (pinThrow.IsNinePins)
|
|
{
|
|
res.Add(ExpenseTrigger.NinePins);
|
|
}
|
|
return res.ToArray();
|
|
}
|
|
}
|
|
}
|