Ejemplo n.º 1
0
        void Step(NPC npc, int st)
        {
            int side;
            if (st == -1) side = r.Next(3);
            else side = st;
            int oldx = npc.getX();
            int oldy = npc.getY();
            int x = 0, y = 0;
            if (!((oldx == 0 && side == 0) || (oldx == MZ && side == 2) || (oldy == 0 && side == 1) || (oldy == MZ && side == 3)))
            {
                switch (side)
                {
                    case 0: { x = oldx - 1; y = oldy; } break;
                    case 3: { x = oldx; y = oldy + 1; } break;
                    case 2: { x = oldx + 1; y = oldy; } break;
                    case 1: { x = oldx; y = oldy - 1; } break;
                }
                if (maze[x,y] == 0)
                { npc.setPosition(x, y); maze[oldx,oldy] = 0; maze[x,y] = 2; }
                else
                    if (maze[x,y] == 3 || maze[x,y] == 4)
                    {
                        for (int i = 0; i < subj.Count; i++)
                            if (subj[i].getX() == x && subj[i].getY() == y)
                            {
                                if (subj[i].getAmount() == 12) npc.upAmmo(subj[i].getAmount());
                                else npc.heal(subj[i].getAmount());
                                break;
                            }
                        npc.setPosition(x, y);
                        maze[oldx,oldy] = 0;
                        maze[x,y] = 2;
                    }
                Combat(npc);
            }

        }
Ejemplo n.º 2
0
 void RaiseSubject(NPC npc, subject sub)//!
 {
     if (sub.getAmount() == 12)
         npc.upAmmo(sub.getAmount());
     else
         npc.heal(sub.getAmount());
     subj.Remove(sub);
 }