cards/CardSpider.cs
using Sandbox;
using System.Threading.Tasks;
public class CardSpider : Card
{
public override bool IsAlive => true;
public override bool ValidateStartingGridPos()
{
if ( Manager.Instance.IsGridPosCorner( GridPos ) )
return true;
IntVector2 newGridPos;
int rand = Game.Random.Int( 0, 3 );
switch(rand)
{
case 0: default:
newGridPos = new IntVector2( 0, 0 );
break;
case 1:
newGridPos = new IntVector2( 0, Manager.Instance.GridHeight - 1 );
break;
case 2:
newGridPos = new IntVector2( Manager.Instance.GridWidth - 1, 0 );
break;
case 3:
newGridPos = new IntVector2( Manager.Instance.GridWidth - 1, Manager.Instance.GridHeight - 1 );
break;
}
Manager.Instance.SwapCardPositionsNonAsync(this, Manager.Instance.GetCardAtGridPos(newGridPos));
return false;
}
}