Пример #1
0
 internal void paint(Drawer drawer, Fishka selectedFishka)
 {
     foreach (Fishka fishka in mFishka)
     {
         fishka.paint(drawer, selectedFishka == fishka);
     }
 }
Пример #2
0
        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);
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
 public MoveDragFishkaToNode(Player player, Fishka fishka, Node node, String log)
     : base(false)
 {
     mPlayer = player;
     mFishka = fishka;
     mNode   = node;
     mLog    = log;
 }
Пример #5
0
        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);
            }
        }
Пример #6
0
        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);
        }
Пример #7
0
 private bool fishkaIsMine(Fishka f)
 {
     return(f.mPlayer == this && f.mAlive);
 }
Пример #8
0
 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);
 }
Пример #9
0
 internal void add(Fishka fishka)
 {
     mFishka.Add(fishka);
 }
Пример #10
0
 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)));
 }