internal void paint(Drawer drawer, Fishka selectedFishka) { foreach (Fishka fishka in mFishka) { fishka.paint(drawer, selectedFishka == fishka); } }
public bool clickLine(Line line) { if (mNet.mGameOver) { return(false); } if (line.mPair.mFirst.hasFishka()) { Fishka fishka = line.mPair.mFirst.getFishka(); if (fishka.mPlayer == this) { if (line.mPair.mSecond.hasFishka()) { if (line.mPair.mSecond.getFishka() == fishka) { } else { line.mPair.mSecond.getFishka().kill(); } } else { fishka.connectToNode(line.mPair.mSecond, 3); } line.mAlive = false; mNet.endTurn(); return(true); } } return(false); }
internal void paint(Drawer drawer, Vec pos, out Node selectedNode, out Fishka selectedFishka, out Line selectedLine) { drawer.fillScreen(new SolidBrush(Color.White), new Pen(mCurPlayer.mColor, 6)); selectedNode = findNode(pos); foreach (Line line in mLine) { line.calcPos(mPairCounter); } selectedLine = findLine(pos); Fishka fishka = mPlayer1.findFishka(pos); if (fishka == null) { fishka = mPlayer2.findFishka(pos); } selectedFishka = fishka; mPlayer1.paint(drawer, fishka); mPlayer2.paint(drawer, fishka); foreach (Node node in mNode) { node.paint(drawer, node == selectedNode); } foreach (Line line in mLine) { line.paint(drawer, line == selectedLine); } }
public MoveDragFishkaToNode(Player player, Fishka fishka, Node node, String log) : base(false) { mPlayer = player; mFishka = fishka; mNode = node; mLog = log; }
public bool dragFishkaToNode(Fishka fishka, Node node) { if (mNet.mGameOver) { return(false); } if (fishkaIsMine(fishka) && !fishka.hasNode() && !node.hasFishka()) { fishka.connectToNode(node, 1); mNet.endTurn(); return(true); } else { return(false); } }
public DragRezult getFishkaDragger(Fishka fishka, Vec mpos) { if (fishkaIsMine(fishka)) { Vec startPos = fishka.mPos.getValue(); Vec delta = startPos - mpos; return(new DragRezult( delegate(Vec pos) { fishka.mPos = new Moveable <Vec>(pos + delta); }, delegate(Vec end) { Node node = mNet.findNode(end + delta); if (node == null || !dragFishkaToNode(fishka, node)) { fishka.mPos.moveTo(Moveable <Vec> .constEnder(startPos), 1, Moveable <Vec> .trivFunc); } })); } return(null); }
private bool fishkaIsMine(Fishka f) { return(f.mPlayer == this && f.mAlive); }
public void paintForController(Drawer drawer, Vec pos, out Node selectedNode, out Fishka selectedFishka, out Line selectedLine) { mNet.paint(drawer, pos, out selectedNode, out selectedFishka, out selectedLine); }
internal void add(Fishka fishka) { mFishka.Add(fishka); }
Cont <Static.Move, Static.Move> dragFishkaToNodeMove(Fishka fishka, Node node, String log) { return(Cont <Static.Move, Static.Move> .ret(new Static.MoveDragFishkaToNode(mPlayer, fishka, node, log))); }