Наследование: MonoBehaviour
Пример #1
0
 public Game()
 {
     House = new House();
     fOpponent = new Opponent(House.LivingRoom);
     NumMoves = 0;
     GameStatus = GameStatusEnum.InitialStatus;
 }
Пример #2
0
 public Form1()
 {
     InitializeComponent();
     CreateObjects();
     opponent = new Opponent(stairs);
     ResetGame(false);
 }
Пример #3
0
    // fonction d'initialisation
    void Start()
    {
        player   = gameObjectPlayer.GetComponent(typeof(Player)) as Player;
        opponent = gameObjectOpponent.GetComponent(typeof(Opponent)) as Opponent;

        keyboardInput = new Vector3();

        print("<start>");
    }
        public override double ShouldAccept()
        {
            // For debugging
            // VisualizeDeployPoints();

            // check if the base meets the user's requirements
            if (!Opponent.MeetsRequirements(BaseRequirements.All))
            {
                Log.Debug("[Red Line] Skipping this base because it doesn't meet the requirements");
                return(0);
            }
            return(0.7);
        }
Пример #5
0
        public override double ShouldAccept()
        {
            if (Opponent.MeetsRequirements(BaseRequirements.All))
            {
                if (!SmartAirDeployHelpers.AllAirDefensesFound(TownHall.Find() == null ? TownHallLimits.Limits.Length - 1 : TownHall.Find().Level))
                {
                    return(0);
                }

                return(1);
            }
            return(0);
        }
 void Start()
 {
     animationController = GetComponent <AnimationController>();
     opponent            = GameObject.FindGameObjectWithTag("Opponent");
     opponentScript      = opponent.GetComponent <Opponent>();
     oppAnimator         = opponent.GetComponent <Animator>();
     player            = GameObject.FindGameObjectWithTag("Player");
     playerScript      = player.GetComponent <Player>();
     playerAnimator    = player.GetComponent <Animator>();
     opponentRigidBody = opponent.gameObject.GetComponent <Rigidbody>();
     opponentCollider  = opponent.GetComponent <CapsuleCollider>();
     canPlay           = true;
 }
Пример #7
0
        public override void AttackFour()
        {
            bool move = Owner.Move(1);

            if (move)
            {
                bool hit = AAttackXY(1, 2);
                if (hit)
                {
                    Opponent.Hurt(Fighter.rangen.Next(3, 7));
                    Opponent.Move(3);
                }
            }
        }
Пример #8
0
        public override void AttackOne()
        {
            bool move = Owner.Move(1);

            if (move)
            {
                bool hit1 = AAttackXY(1, 2);
                bool hit2 = AAttackXY(2, 2);
                if (hit1 || hit2)
                {
                    Opponent.Hurt(Fighter.rangen.Next(3, 7));
                }
            }
        }
Пример #9
0
 //reseting and restarting game session variables
 private void NewGameInit()
 {
     timer.Interval = 1000;
     timer.Enabled  = true;
     timer.Tick    += new EventHandler(timer_Tick);
     seconds        = 0;
     game.Moves     = 0;
     roundOngoing   = true;
     game.LockUnlockCells(cells, true);
     HideShowControls(false);
     lblCongrats.Visible = false;
     currentPlayer       = Team.X;
     winner = Opponent.None;
 }
Пример #10
0
        public GameForm1(Language lang, Opponent player2)
        {
            InitializeComponent();
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
            playerType           = player2;
            music.MusicMaestro(2);
            this.lang = lang;

            if (lang == Language.swe)
            {
                Thread.CurrentThread.CurrentCulture   = new CultureInfo("sv-SE");
                Thread.CurrentThread.CurrentUICulture = new CultureInfo("sv-SE");
            }
        }
Пример #11
0
 private void SetUpNextOpponentSpawn()
 {
     _opponentSpawnDisposable?.Dispose();
     _opponentSpawnDisposable = _timingManager.Delay(
         TimeSpan.FromSeconds(Random.Range(GameRules.OpponentSpawnMinDuration,
                                           GameRules.OpponentSpawnMaxDuration)),
         () =>
     {
         var spawn    = GameRules.OpponentSpawns.GetRandom();
         var opponent = new Opponent(spawn.FlightDirection);
         _opponentBehaviour.Bind(opponent, _boundProvider.GetWorldPosition(spawn.NormalizedLocation));
         opponent.Death += OnOpponentDeath;
     });
 }
Пример #12
0
        private void AddclientTolatsuit_Click(object sender, EventArgs e)
        {
            if (dataGridView1.Rows.Count < 1 && AddNewOppnentInlistdataGridView.Rows.Count < 1)
            {
                MessageBox.Show("لا يوجد بيانات للاضافة", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            try
            {
                var curentLawsuit = context.lawsuits.Include(X => X.clients).FirstOrDefault(c => c.Id == curentlawsuit.Id);
                var alloppnent    = context.opponents.Where(o => o.LawsuitId == curentLawsuit.Id).ToList();
                foreach (var opp in oppnentlist)
                {
                    foreach (var item in alloppnent)
                    {
                        if (opp.Name == item.Name && opp.Notes == item.Notes)
                        {
                            MessageBox.Show("يوجد خصم/ خصوم موجود بالفعل فى هذة الدعوى", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            break;
                        }
                    }
                }
                foreach (var opp in oppnentlist)
                {
                    var newoppnent = new Opponent()
                    {
                        Name      = opp.Name,
                        Notes     = opp.Notes,
                        LawsuitId = curentLawsuit.Id
                    };
                    context.opponents.Add(newoppnent);
                    context.SaveChanges();
                }
                foreach (var item in clientlist)
                {
                    var client = context.clients.FirstOrDefault(c => c.Id == item.Id);

                    curentLawsuit.clients.Add(client);
                }
                context.SaveChanges();
                MessageBox.Show("تم الحفظ  بنجاح", "تم الحفظ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                dataGridView1.DataSource = null;
                AddNewOppnentInlistdataGridView.DataSource = null;
                loadMaingrid();
                return;
            }
            catch
            { }
        }
        private async Task <List <PlayerModel> > AddByePlayer(List <PlayerModel> playersModels)
        {
            PlayerModel byeModel = GetByePlayer();
            var         bye      = await _context.Players
                                   .Where(p => p.Name == byeModel.Name)
                                   .FirstOrDefaultAsync();

            if (bye == null)
            {
                _context.Players.Add(byeModel);
                try
                {
                    await _context.SaveChangesAsync();
                }
                catch (Exception) { }

                bye = await _context.Players
                      .Where(p => p.Name == byeModel.Name)
                      .FirstOrDefaultAsync();

                Opponent opponent = new Opponent()
                {
                    OpponentID = bye.GUID
                };
                _context.Opponents.Add(opponent);
                try
                {
                    await _context.SaveChangesAsync();
                }
                catch (Exception) { }
                bye = await _context.Players
                      .Where(p => p.Name == byeModel.Name)
                      .FirstOrDefaultAsync();

                bye.Opponents = new List <Opponent>()
                {
                    opponent
                };
                _context.Entry(bye).State = EntityState.Modified;
                await _context.SaveChangesAsync();
            }
            bye = await _context.Players
                  .Where(p => p.Name == byeModel.Name)
                  .Include(p => p.Opponents)
                  .FirstOrDefaultAsync();

            playersModels.Add(bye);
            return(playersModels);
        }
Пример #14
0
 // Check if one or both armies have been fully destroyed
 void AnnihilationCheck()
 {
     if (HasUnitsLeft() && !Opponent.HasUnitsLeft())
     {
         Server.OnGameEnd(Game, GameOutcomeType.Annihilation, this);
     }
     else if (HasUnitsLeft() && !Opponent.HasUnitsLeft())
     {
         Server.OnGameEnd(Game, GameOutcomeType.Annihilation, Opponent);
     }
     else
     {
         Server.OnGameEnd(Game, GameOutcomeType.MutualAnnihilation);
     }
 }
Пример #15
0
 private void Attack(Cell currentCell)
 {
     if (currentCell.CellType == CellType.Ship)
     {
         currentCell.CellType = CellType.DestroyedShip;
         CheckIfAnyShipIsDestroyed(Ships);
     }
     currentCell.IsClicked = true;
     UnclickedCells--;
     this.Invalidate();
     if (this.FieldType == FieldType.AIOpponent && currentCell.CellType != CellType.DestroyedShip)
     {
         Opponent.AIAttack();
     }
 }
Пример #16
0
    public Companion getClosestMeeple(Opponent _opp)
    {
        List <Companion> comps         = SceneHandler.getAllMeeplesFromType <Companion>();
        Companion        closestMeeple = comps[0];

        foreach (Companion comp in comps)
        {
            if (Map.distance(_opp.Pos, comp.Pos) < Map.distance(_opp.Pos, closestMeeple.Pos))
            {
                closestMeeple = comp;
            }
        }

        return(closestMeeple);
    }
Пример #17
0
    private void UpdateOpponent(string playerName, string prop, object value)
    {
        Opponent opp = opponentList[playerName];

        switch (prop)
        {
        case (GameConstants.OppCardCountProp):
            opp.deckSize = (int)value;
            break;

        default:
            Debug.LogError("Unknown Opponent Prop passed to UpdateOpponent");
            break;
        }
    }
Пример #18
0
 public void onPlayerRespawn(Client player)
 {
     if (IsRaceOngoing)
     {
         Opponent curOp = Opponents.FirstOrDefault(op => op.Client == player);
         if (curOp == null || curOp.HasFinished || !curOp.HasStarted || curOp.CheckpointsPassed == 0)
         {
             SetUpPlayerForRace(player, CurrentRace, false, 0);
         }
         else
         {
             RespawnPlayer(player, CurrentRace, curOp.CheckpointsPassed - 1);
         }
     }
 }
Пример #19
0
 public override double ShouldAccept()
 {
     if (!Opponent.MeetsRequirements(BaseRequirements.All))
     {
         return(0);
     }
     if (GetCurrentSetting("Set Exposed Collecotors & Mines") == 1)
     {
         if (!SmartFourFingersHelper.IsBaseMinCollectorsAndMinesOutside(GetCurrentSetting("Acceptable Target Range"), GetCurrentSetting("Minimum Exposed Colloctors"), GetCurrentSetting("Minimum Exposed Mines"), AttackName, GetCurrentSetting("Debug Mode")))
         {
             return(0);
         }
     }
     return(1);
 }
Пример #20
0
 public void Perform(Opponent origin, Opponent target)
 {
     if (origin.CurrentAttributes.Magic >= 10 &&
         origin.CurrentAttributes.Health <
         origin.BaseAttributes.Health)
     {
         origin.CurrentAttributes.Magic -= 10;
         origin.CurrentAttributes.Health += 30;
     }
     else
     {
         FSEGame.Singleton.BattleManager.AddToMessageQueue(String.Format(
             "It has no effect."));
     }
 }
Пример #21
0
        public UInt16 Score(Opponent origin, Opponent target)
        {
            UInt16 score = 0;

            if ((origin.CurrentAttributes.Health <
                target.CurrentAttributes.Health) &&
                (origin.CurrentAttributes.Magic >= 10) &&
                (origin.CurrentAttributes.Health <
                origin.BaseAttributes.Health / 2))
            {
                score = 10;
            }

            return score;
        }
Пример #22
0
    void Update()
    {
        //can be optimized
        Opponent[] opps    = GameObject.FindObjectsOfType <Opponent>();
        Opponent   nearest = null;

        float dist = Mathf.Infinity; // tower range for rotation

        foreach (Opponent o in opps)
        {
            float d = Vector3.Distance(this.transform.position, o.transform.position);
            if (nearest == null || d < dist)
            {
                nearest = o;
                dist    = d;
            }
        }
        if (nearest == null)
        {
            return;
        }                               //relook for opponents if none found

        //rotating tower / turret head
        Vector3    direct  = nearest.transform.position - this.transform.position;
        Quaternion lookRot = Quaternion.LookRotation(direct);

        towerTransform.rotation = Quaternion.Euler(0, lookRot.eulerAngles.y, 0);

        //fire cooldown on tower
        fireCDLeft -= Time.deltaTime; //only fire after set time
        if (fireCDLeft <= 0 && range >= direct.magnitude)
        {
            fireCDLeft = fireCD; //reset fire cd
            Shoot(nearest);
        }

        void Shoot(Opponent o1)
        {
            GameObject bulletClone = Instantiate(BulletPreFab, this.transform.position, this.transform.rotation);

            Bullet b = bulletClone.GetComponent <Bullet>();  //create bullet obj and turn on script / send info

            b.GetComponent <Bullet>().enabled = true;
            b.target = o1.transform;
            b.dmg    = damage;
            b.radius = rad;
        }
    }
Пример #23
0
 /* Generate board for play */
 void SetupBoard()
 {
     board    = new GameObject[ROWS, COLS];
     GameOver = false;
     WinText.GetComponent <WinTextBox>().ChangeText(3);
     for (int i = 0; i < ROWS; i++)
     {
         for (int j = 0; j < COLS; j++)
         {
             board[i, j] = Instantiate(PlayableSpacePrefab, new Vector2(i * SpacePadding, j * SpacePadding), Quaternion.identity);
             board[i, j].GetComponent <PlayableSpace>().Setup();
         }
     }
     turn  = 1;
     myOpp = new Opponent(board, gameObject, ROWS, COLS, turn);
 }
Пример #24
0
 private void SetOpponentPlayer()
 {
     _opponent = Opponent.Player;
     GameObject.Find("PlayerBackground").GetComponent <GenericMenuButtonBehavior> ().SetSpriteOn();
     GameObject.Find("AIBackground").GetComponent <GenericMenuButtonBehavior>().SetSpriteOff();
     GameObject.Find("EasyBackground").GetComponent <GenericMenuButtonBehavior> ().SetSpriteOff();
     GameObject.Find("NormalBackground").GetComponent <GenericMenuButtonBehavior> ().SetSpriteOff();
     GameObject.Find("HardBackground").GetComponent <GenericMenuButtonBehavior> ().SetSpriteOff();
     GameObject.Find("WallBackground").GetComponent <GenericMenuButtonBehavior> ().SetSpriteOff();
     GameObject.Find("NormalBouncesBackground").GetComponent <GenericMenuButtonBehavior> ().SetSpriteOff();
     GameObject.Find("RandomBouncesBackground").GetComponent <GenericMenuButtonBehavior> ().SetSpriteOff();
     if (_isTraining)
     {
         ActivateScoreSets(true);
     }
 }
 public bool Equals(BoardState boardState)
 {
     if (!Player?.Equals(boardState?.Player) ?? false)
     {
         return(false);
     }
     if (!Opponent?.Equals(boardState?.Opponent) ?? false)
     {
         return(false);
     }
     if (GameType != boardState.GameType)
     {
         return(false);
     }
     return(true);
 }
Пример #26
0
 void Start()
 {
     if (GetComponent <Player>() != null)
     {
         player      = GetComponent <Player>();
         foeOpponent = FindObjectOfType <Opponent>();
     }
     else if (GetComponent <Opponent>() != null)
     {
         opponent  = GetComponent <Opponent>();
         foePlayer = FindObjectOfType <Player>();
     }
     animator        = GetComponentInChildren <Animator>();
     character       = GetComponentInChildren <Character>();
     isKOSoundPlayed = false;
 }
Пример #27
0
    // Update is called once per frame
    void Update()
    { //Optimize if possible down the line
        Opponent[] enemies = GameObject.FindObjectsOfType <Opponent>();

        Opponent nearest = null;
        float    dist    = Mathf.Infinity; //tower range value

        foreach (Opponent e in enemies)    //iterate through enemies
        {
            float d = Vector3.Distance(this.transform.position, e.transform.position);
            if (nearest == null || d < dist)
            {
                nearest = e;
                dist    = d;
            }
        }

        if (nearest == null) //if no opponents gtfo
        {
            Debug.Log("No Enemies...");
            return;
        }

        //rotation of towerhead
        Vector3    dir     = nearest.transform.position - this.transform.position;
        Quaternion lookRot = Quaternion.LookRotation(dir);

        turretTransform.rotation = Quaternion.Euler(0, lookRot.eulerAngles.y, 0);

        fireCDLeft -= Time.deltaTime;
        if (fireCDLeft <= 0 && dir.magnitude <= range)
        {
            fireCDLeft = fireCD;
            Shoot(nearest);
        }

        void Shoot(Opponent e1) //this was changed from enemies e to Opponent e//
        {                       //TODO: Fix to Fire out tip of tower instead of object head
            GameObject BullGo = (GameObject)Instantiate(BulletObject, this.transform.position, this.transform.rotation);

            Bullet b = BullGo.GetComponent <Bullet>();

            b.target = e1.transform;
            b.dmg    = damage;
            b.radius = rad;
        }
    }
Пример #28
0
    public Opponent Attack(Opponent opponent)
    {
        double damageMax;
        double damageMin;

        WriteLine("Attacking " + opponent.name + "...");

        Random r = new Random();

        if (this.level >= 3)
        {
            damageMax = 0.6f;
            damageMin = 0.4f;

            double damage = r.NextDouble() * (damageMax - damageMin) + damageMin;
            opponent.lives -= (int)(opponent.lives * damage);
        }
        else if (this.level == 2)
        {
            damageMax = 0.4f;
            damageMin = 0.2f;

            double damage = r.NextDouble() * (damageMax - damageMin) + damageMin;
            opponent.lives -= (int)(opponent.lives * damage);
        }
        else if (this.level == 1)
        {
            damageMax = 0.2f;
            damageMin = 0.0f;

            double damage = r.NextDouble() * (damageMax - damageMin) + damageMin;
            opponent.lives -= (int)(opponent.lives * damage);
        }
        if (opponent.lives <= 0)
        {
            opponent.isAlive = false;
            WriteLine("You killed " + opponent.name);
        }
        WriteLine("Opponent's lives left: " + opponent.lives);
        if (this.lives > 0)
        {
            opponent.Attack(this);
        }

        return(opponent);
    }
        public override double ShouldAccept()
        {
            var avoidExposedAirDefense = 0;

            if (avoidExposedAirDefense == 1)
            {
                if (AllInOnePushHelper.IsAirDefenseExposed())
                {
                    return(0);
                }
            }
            if (Opponent.MeetsRequirements(BaseRequirements.All))
            {
                return(1);
            }
            return(0);
        }
Пример #30
0
 private void SearchGameAsync()
 {
     successfulSearchStart = model.SearchGame();
     if (successfulSearchStart)
     {
         Opponent opponent = model.GetFoundMatch();
         if (opponent == null)
         {
             navigator.CurrentViewModel = new HomeViewModel(connection, navigator, model.User);
         }
         navigator.CurrentViewModel = new MatchViewModel(connection, navigator, model.User, opponent);
     }
     else
     {
         navigator.CurrentViewModel = new HomeViewModel(connection, navigator, model.User);
     }
 }
Пример #31
0
        /// <summary>
        /// Performs the move.
        /// </summary>
        /// <param name="origin">The actor who is performing this move.</param>
        /// <param name="target">The target actor of this move.</param>
        public void Perform(Opponent origin, Opponent target)
        {
            Boolean isCrtical = false;
            UInt16 damage = this.CalculateDamage(origin, target, out isCrtical);

            // :: Perform the action by reducing the target's health points.
            if (target.CurrentAttributes.Health - damage < 0)
                target.CurrentAttributes.Health = 0;
            else
                target.CurrentAttributes.Health -= damage;

            if (isCrtical)
            {
                FSEGame.Singleton.BattleManager.AddToMessageQueue(
                    "It's a critical hit!");
            }
        }
Пример #32
0
        /// <summary>
        /// Performs the move.
        /// </summary>
        /// <param name="origin">The actor who is performing this move.</param>
        /// <param name="target">The target actor of this move.</param>
        public void Perform(Opponent origin, Opponent target)
        {
            if (origin.CurrentAttributes.Defence + 1
                <= origin.BaseAttributes.Defence + 5)
            {
                origin.CurrentAttributes.Defence++;
                origin.CurrentAttributes.Magic -= 10;

                FSEGame.Singleton.BattleManager.AddToMessageQueue(String.Format(
                    "{0}'s defence has increased!", origin.Name));
            }
            else
            {
                FSEGame.Singleton.BattleManager.AddToMessageQueue(String.Format(
                    "It has no effect."));
            }
        }
Пример #33
0
        public BattleController(MainCharacter player, Opponent enemy)
        {
            InitializeComponent();

            //_player = hero;
            // lblName.Text = _player.Name.ToString(); +Name??!?!
            // print player stats
            lblLevel.Text      = player.Level.ToString();
            lblHitPoints.Text  = player.Health.ToString();
            lblManaPoints.Text = player.Mana.ToString();
            lblExperience.Text = player.Experience.ToString();

            // print opponent stats
            lblNameOpponent.Text      = enemy.Level.ToString();
            lblLevelOpponent.Text     = enemy.Level.ToString();
            lblHitPointsOpponent.Text = enemy.Health.ToString();
        }
Пример #34
0
 public ActionResult CreateOpponent(Opponent opponent)
 {
     if (opponent.Level >= 1 && opponent.Level <= 20)
     {
         if (ModelState.IsValid)
         {
             List <Opponent> Names = db.Opponents.ToList();
             if (!Names.Contains(opponent))  // Checking so the name is not allready in use.
             {
                 db.Opponents.Add(opponent);
                 db.SaveChanges();
                 return(RedirectToAction("Index"));
             }
         }
     }
     return(View(opponent));
 }
Пример #35
0
 public void onPlayerRespawn(Client player)
 {
     if (IsRaceStarting)
     {
         SetUpPlayerForRace(player, CurrentRace, false, 0);
     }
     else if (IsRaceOngoing)
     {
         API.setPlayerToSpectator(player);
         Opponent curOp = Opponents.FirstOrDefault(op => op.Client == player);
         if (curOp == null)
         {
             return;
         }
         curOp.IsAlive = false;
     }
 }
Пример #36
0
        public void OpponentMovement()
        {
            int displacement = NetStream.ReadByte();

            Opponent.Translate(0, displacement);

            //Keep in screen bounds
            if (Opponent.Y < 0)
            {
                Opponent.Translate(0, -Opponent.Y);
            }

            else if (Opponent.Y > ScreenHeight - Opponent.Height)
            {
                Opponent.Translate(0, ScreenHeight - Opponent.Y - Opponent.Height);
            }
        }
Пример #37
0
        /// <summary>
        /// 敵の行動パターン
        /// </summary>
        /// <param name="opponent"></param>
        private void DoOpponentTurn(Opponent opponent)
        {
            if (opponent == null)
            {
                return;
            }

            var card = opponent.AvailableCard(this.m_field);

            if (card == null)
            {
                this.DoPassPlayer(opponent);
                return;
            }

            this.PutCard(opponent, card);
        }
Пример #38
0
        /// <summary>
        /// Calculates the damage.
        /// </summary>
        /// <param name="origin"></param>
        /// <param name="target"></param>
        /// <returns></returns>
        private UInt16 CalculateDamage(Opponent origin, Opponent target, out Boolean critical)
        {
            Random r = new Random();
            critical = r.Next(10) == 5;

            return (UInt16)(this.CalculateBaseDamage(origin, target) * (critical ? 2 : 1));
        }
Пример #39
0
 private void ResetGame()
 {
     MessageBox.Show("You found me in " + totalMoves + " moves!");
     IHidingPlace foundLocation = currentLocation as IHidingPlace;
     description.Text = "The opponent was hiding " + currentLocation.Name + " in " + totalMoves.ToString() + " moves. ";
     opponent = new Opponent(frontYard);
     hide.Visible = true;
     check.Visible = false;
     goHere.Visible = false;
     exits.Visible = false;
     goThroughTheDoor.Visible = false;
     totalMoves = 0;
 }
Пример #40
0
 /// <summary>
 /// Determines if Dracula is playing Trap against a Hunter at the start of a combat
 /// </summary>
 /// <param name="game">The GameState</param>
 /// <param name="huntersInvolved">The list of Hunters involved in the combat</param>
 /// <param name="opponent">The Opponent</param>
 /// <param name="logic">The artificial intelligence component</param>
 /// <returns>True if Dracula successfully plays Trap</returns>
 private static bool DraculaIsPlayingTrap(GameState game, List<HunterPlayer> huntersInvolved, Opponent opponent,
     DecisionMaker logic)
 {
     if (logic.ChooseToPlayTrap(game, huntersInvolved, opponent))
     {
         Console.WriteLine("Dracula is playing Trap");
         game.Dracula.DiscardEvent(Event.Trap, game.EventDiscard);
         if (HunterPlayingGoodLuckToCancelDraculaEvent(game, Event.Trap, Event.Trap, logic) > 0)
         {
             Console.WriteLine("Trap cancelled");
             return false;
         }
         return true;
     }
     return false;
 }
Пример #41
0
        /// <summary>
        /// Resolves a combat between a group of Hunters and an Opponent
        /// </summary>
        /// <param name="game">The GameState</param>
        /// <param name="huntersInvolved">A list of HunterPlayers involved in the combat</param>
        /// <param name="opponent">The Opponent type</param>
        /// <param name="logic">The artificial intelligence component</param>
        /// <returns>True if the Hunters can continue resolving Encounters</returns>
        private static bool ResolveCombat(GameState game, List<HunterPlayer> huntersInvolved, Opponent opponent,
            DecisionMaker logic)
        {
            var roundsWithoutEscaping = 0;
            var answer = -1;
            do
            {
                Console.WriteLine(
                    "Is anyone playing an Event at the start of this combat? 0= Nobody, {0}= {1}, {2}= {3}, {4}= {5}, {6}= {7}",
                    (int)Hunter.LordGodalming, Hunter.LordGodalming.Name(), (int)Hunter.DrSeward,
                    Hunter.DrSeward.Name(), (int)Hunter.VanHelsing, Hunter.VanHelsing.Name(), (int)Hunter.MinaHarker,
                    Hunter.MinaHarker.Name());
                while (answer == -1)
                {
                    if (int.TryParse(Console.ReadLine(), out answer))
                    {
                        if (answer < 0 || answer > 4)
                        {
                            answer = -1;
                        }
                    }
                }
                if (answer > 0)
                {
                    var line = "";
                    Console.WriteLine("What Event is {0} playing? (cancel to cancel)", ((Hunter)answer).Name());
                    var eventBeingPlayed = Event.None;
                    while (eventBeingPlayed != Event.AdvancePlanning && eventBeingPlayed != Event.EscapeRoute &&
                           eventBeingPlayed != Event.HeroicLeap && line.ToLower() != "cancel")
                    {
                        line = Console.ReadLine();
                        eventBeingPlayed = Enumerations.GetEventFromString(line);
                    }
                    if (line.ToLower() == "cancel")
                    {
                        answer = -1;
                    }
                    else
                    {
                        switch (eventBeingPlayed)
                        {
                            case Event.AdvancePlanning:
                                game.Hunters[answer].DiscardEvent(game, Event.AdvancePlanning);
                                if (!DraculaIsPlayingDevilishPowerToCancelEvent(game, Event.AdvancePlanning, Event.AdvancePlanning, logic, game.Hunters[answer]))
                                {
                                    Console.WriteLine("One participant of your choice has combat rolls at +1 for this combat");
                                    CheckForCardsRevealedForBeingBitten(game);
                                }
                                else
                                {
                                    Console.WriteLine("Advance Planning cancelled");
                                    CheckForCardsRevealedForBeingBitten(game);
                                }
                                break;
                            case Event.EscapeRoute:
                                game.Hunters[answer].DiscardEvent(game, Event.EscapeRoute);
                                if (!DraculaIsPlayingDevilishPowerToCancelEvent(game, Event.EscapeRoute, Event.EscapeRoute, logic, game.Hunters[answer]))
                                {
                                    Console.WriteLine("Combat cancelled", ((Hunter)answer).Name());
                                    CheckForCardsRevealedForBeingBitten(game);
                                    return false;
                                }
                                CheckForCardsRevealedForBeingBitten(game);
                                Console.WriteLine("Escape Route cancelled"); break;
                            case Event.HeroicLeap:
                                game.Hunters[answer].DiscardEvent(game, Event.HeroicLeap);
                                if (!DraculaIsPlayingDevilishPowerToCancelEvent(game, Event.HeroicLeap, Event.HeroicLeap, logic, game.Hunters[answer]))
                                {
                                    Console.WriteLine("Roll a die and enter the result");
                                    var dieRoll = 0;
                                    while (dieRoll == 0)
                                    {
                                        if (int.TryParse(Console.ReadLine(), out dieRoll))
                                        {
                                            if (dieRoll < 1 || dieRoll > 7)
                                            {
                                                dieRoll = 0;
                                            }
                                        }
                                    }
                                    game.Hunters[answer].AdjustHealth(-dieRoll);
                                    game.Dracula.AdjustBlood(-dieRoll);
                                    CheckForHunterDeath(game);
                                    CheckForCardsRevealedForBeingBitten(game);
                                    return false;
                                }
                                Console.WriteLine("Heroic Leap cancelled"); break;
                                CheckForCardsRevealedForBeingBitten(game);
                        }
                    }
                    answer = -1;
                }
            } while (answer != 0);
            answer = -1;
            if (opponent == Opponent.Dracula || opponent == Opponent.NewVampire)
            {
                Console.WriteLine("Is anyone playing Garlic at the start of this combat? 0= Nobody, {0}{1}{2}{3}", huntersInvolved.Find(h => h.Hunter == Hunter.LordGodalming) == null ? "" : "1= Lord Godalming", huntersInvolved.Find(h => h.Hunter == Hunter.DrSeward) == null ? "" : "2= Dr. Seward", huntersInvolved.Find(h => h.Hunter == Hunter.VanHelsing) == null ? "" : "3= Van Helsing", huntersInvolved.Find(h => h.Hunter == Hunter.MinaHarker) == null ? "" : "4= Mina Harker");

                while (answer == -1)
                {
                    if (int.TryParse(Console.ReadLine(), out answer))
                    {
                        if (answer < 0 || answer > 4)
                        {
                            answer = -1;
                        }
                        else if (answer != 0 && huntersInvolved.Find(h => (int)h.Hunter == answer) == null)
                        {
                            answer = -1;
                        }
                    }
                    else
                    {
                        answer = -1;
                    }
                }
                if (answer > 0)
                {
                    game.Hunters[answer].DiscardItem(game, Item.Garlic);
                    CheckForCardsRevealedForBeingBitten(game);
                    roundsWithoutEscaping = 3;
                }
            }
            if (DraculaIsPlayingTrap(game, huntersInvolved, opponent, logic))
            {
                Console.WriteLine("Dracula played Trap. All of his combat rolls are at +1 for this combat");
            }
            var rageTarget = DraculaIsPlayingRageAgainstHunter(game, huntersInvolved, logic);
            if (rageTarget != Hunter.Nobody)
            {
                Console.WriteLine("Dracula played Rage against {0} and must reveal all Items", rageTarget.Name());
                DraculaLooksAtAllHuntersItems(game, game.Hunters[(int)rageTarget]);
                var itemDiscarded = logic.ChooseItemToDiscardWithRage(game, rageTarget);
                game.Hunters[(int)rageTarget].DiscardItem(game, itemDiscarded);
                Console.WriteLine("Dracula discarded {0}", itemDiscarded.Name());
                roundsWithoutEscaping = 3;
            }
            var basicHunterCombatCards = new List<ItemCard>
            {
                new ItemCard(Item.Punch),
                new ItemCard(Item.Dodge),
                new ItemCard(Item.Escape)
            };
            var enemyCombatCards = new List<EnemyCombatCard>();
            switch (opponent)
            {
                case Opponent.MinionWithKnife:
                    enemyCombatCards.Add(EnemyCombatCard.Punch);
                    enemyCombatCards.Add(EnemyCombatCard.Dodge);
                    enemyCombatCards.Add(EnemyCombatCard.Knife); break;
                case Opponent.MinionWithKnifeAndPistol:
                    enemyCombatCards.Add(EnemyCombatCard.Punch);
                    enemyCombatCards.Add(EnemyCombatCard.Dodge);
                    enemyCombatCards.Add(EnemyCombatCard.Knife);
                    enemyCombatCards.Add(EnemyCombatCard.Pistol); break;
                case Opponent.MinionWithKnifeAndRifle:
                    enemyCombatCards.Add(EnemyCombatCard.Punch);
                    enemyCombatCards.Add(EnemyCombatCard.Dodge);
                    enemyCombatCards.Add(EnemyCombatCard.Knife);
                    enemyCombatCards.Add(EnemyCombatCard.Rifle); break;
                case Opponent.Assassin:
                    enemyCombatCards.Add(EnemyCombatCard.Punch);
                    enemyCombatCards.Add(EnemyCombatCard.Dodge);
                    enemyCombatCards.Add(EnemyCombatCard.Knife);
                    enemyCombatCards.Add(EnemyCombatCard.Pistol);
                    enemyCombatCards.Add(EnemyCombatCard.Rifle); break;
                case Opponent.Dracula:
                    enemyCombatCards.Add(EnemyCombatCard.Claws);
                    enemyCombatCards.Add(EnemyCombatCard.Dodge);
                    enemyCombatCards.Add(EnemyCombatCard.EscapeMan);
                    switch (game.TimeOfDay)
                    {
                        case TimeOfDay.Twilight:
                        case TimeOfDay.Midnight:
                        case TimeOfDay.SmallHours:
                            enemyCombatCards.Add(EnemyCombatCard.EscapeBat);
                            enemyCombatCards.Add(EnemyCombatCard.EscapeMist);
                            enemyCombatCards.Add(EnemyCombatCard.Fangs);
                            enemyCombatCards.Add(EnemyCombatCard.Mesmerize);
                            enemyCombatCards.Add(EnemyCombatCard.Strength);
                            break;
                    }
                    break;
                case Opponent.NewVampire:
                    enemyCombatCards.Add(EnemyCombatCard.Claws);
                    enemyCombatCards.Add(EnemyCombatCard.Dodge);
                    switch (game.TimeOfDay)
                    {
                        case TimeOfDay.Twilight:
                        case TimeOfDay.Midnight:
                        case TimeOfDay.SmallHours:
                            enemyCombatCards.Add(EnemyCombatCard.Fangs);
                            enemyCombatCards.Add(EnemyCombatCard.Mesmerize);
                            enemyCombatCards.Add(EnemyCombatCard.Strength);
                            break;
                    }
                    break;
            }
            var firstRound = true;
            var repelled = false;
            var continueCombat = true;
            var sisterAgathaInEffect = (opponent == Opponent.Dracula && game.HunterAlly != null && game.HunterAlly.Event == Event.SisterAgatha);
            var enemyCombatCardChosen = EnemyCombatCard.None;
            var enemyTarget = Hunter.Nobody;
            while (continueCombat)
            {
                foreach (var h in huntersInvolved)
                {
                    var itemUsedByHunterLastRound = h.LastCombatCardChosen;
                    do
                    {
                        Console.WriteLine("Which combat card is {0} using this round?", h.Hunter.Name());
                        h.LastCombatCardChosen = Enumerations.GetItemFromString(Console.ReadLine());
                    } while (h.LastCombatCardChosen == Item.None);

                    if (basicHunterCombatCards.Find(card => card.Item == h.LastCombatCardChosen) == null &&
                        h.ItemsKnownToDracula.Find(item => item.Item == h.LastCombatCardChosen) == null)
                    {
                        var itemDraculaNowKnowsAbout = game.ItemDeck.Find(card => card.Item == h.LastCombatCardChosen);
                        h.ItemsKnownToDracula.Add(itemDraculaNowKnowsAbout);
                        game.ItemDeck.Remove(itemDraculaNowKnowsAbout);
                    }
                    else if (itemUsedByHunterLastRound == h.LastCombatCardChosen && basicHunterCombatCards.Find(card => card.Item == h.LastCombatCardChosen) == null)
                    {
                        var itemDraculaAlreadyKnewAbout =
                            h.ItemsKnownToDracula.Find(card => card.Item == itemUsedByHunterLastRound);
                        if (itemDraculaAlreadyKnewAbout != null)
                        {
                            h.ItemsKnownToDracula.Remove(itemDraculaAlreadyKnewAbout);
                        }
                        if (h.ItemsKnownToDracula.Find(card => card.Item == itemUsedByHunterLastRound) == null)
                        {
                            var itemDraculaNowKnowsAbout =
                                game.ItemDeck.Find(card => card.Item == h.LastCombatCardChosen);
                            h.ItemsKnownToDracula.Add(itemDraculaNowKnowsAbout);
                            game.ItemDeck.Remove(itemDraculaNowKnowsAbout);
                        }
                        h.ItemsKnownToDracula.Add(itemDraculaAlreadyKnewAbout);
                    }
                }
                enemyCombatCardChosen = logic.ChooseCombatCardAndTarget(game, huntersInvolved, enemyCombatCards,
                    firstRound, out enemyTarget, enemyCombatCardChosen, repelled, sisterAgathaInEffect,
                    roundsWithoutEscaping);
                roundsWithoutEscaping--;
                var bloodCost = false;
                if (sisterAgathaInEffect &&
                    (enemyCombatCardChosen == EnemyCombatCard.Fangs ||
                     enemyCombatCardChosen == EnemyCombatCard.EscapeBat ||
                     enemyCombatCardChosen == EnemyCombatCard.EscapeMan ||
                     enemyCombatCardChosen == EnemyCombatCard.EscapeMist))
                {
                    game.Dracula.AdjustBlood(-2);
                    bloodCost = true;
                }
                Console.WriteLine("{0} used {1} against {2}{3}", opponent.Name(), enemyCombatCardChosen.Name(),
                    enemyTarget.Name(), bloodCost ? " at a cost of 2 blood" : "");
                var line = "";
                var index = 0;
                do
                {
                    Console.WriteLine("What was the outcome? 1= Continue 2= Repel 3= Item destroyed or Event discarded 4= End");
                    line = Console.ReadLine();
                    if (int.TryParse(line, out index))
                    {
                        if (index < 1 || index > 4)
                        {
                            index = 0;
                        }
                    }
                } while (index == 0);
                switch (index)
                {
                    case 1: break;
                    case 2:
                        repelled = true; break;
                    case 3:
                        HunterPlayer hunterToDiscardCard = null;
                        if (huntersInvolved.Count == 1)
                        {
                            hunterToDiscardCard = huntersInvolved.First();
                        }
                        else
                        {
                            var hunterIndex = 0;
                            do
                            {
                                Console.Write("Whose card is being discarded? ");
                                foreach (var h in huntersInvolved)
                                {
                                    Console.Write("{0}= {1} ", (int)h.Hunter, h.Hunter.Name());
                                }
                                line = Console.ReadLine();
                                if (int.TryParse(line, out hunterIndex))
                                {
                                    foreach (var h in huntersInvolved)
                                    {
                                        if ((int)h.Hunter == hunterIndex)
                                        {
                                            hunterToDiscardCard = h;
                                            break;
                                        }
                                    }
                                }
                            } while (hunterToDiscardCard == null);
                        }
                        var itemDestroyed = Item.None;
                        var eventDiscarded = Event.None;
                        while (itemDestroyed == Item.None && eventDiscarded == Event.None)
                        {
                            Console.WriteLine("What card was discarded?");
                            line = Console.ReadLine();
                            itemDestroyed = Enumerations.GetItemFromString(line);
                            eventDiscarded = Enumerations.GetEventFromString(line);
                        }
                        if (itemDestroyed != Item.None)
                        {
                            hunterToDiscardCard.DiscardItem(game, itemDestroyed);
                        }
                        else if (eventDiscarded != Event.None)
                        {
                            hunterToDiscardCard.DiscardEvent(game, eventDiscarded);
                        }
                        break;
                    case 4:
                        continueCombat = false; break;
                }
                firstRound = false;
            }
            var health = -1;
            foreach (var h in huntersInvolved)
            {
                Console.WriteLine("How much health does {0} have now?", h.Hunter.Name());
                do
                {
                    if (int.TryParse(Console.ReadLine(), out health))
                    {
                        health = Math.Max(0, Math.Min(h.MaxHealth, health));
                        Console.WriteLine(health);
                    }
                } while (health == -1);
                h.AdjustHealth(health - h.Health);
            }
            if (opponent == Opponent.Dracula)
            {
                Console.WriteLine("How much blood does Dracula have now?");
                do
                {
                    if (int.TryParse(Console.ReadLine(), out health))
                    {
                        health = Math.Max(0, Math.Min(15, health));
                        Console.WriteLine(health);
                    }
                } while (health == -1);
                game.Dracula.AdjustBlood(health - game.Dracula.Blood);
            }
            Console.WriteLine("Did {0} win? (An end result is a no)", huntersInvolved.Count() > 1 ? "the Hunters" : huntersInvolved.First().Hunter.Name());
            string input;
            do
            {
                input = Console.ReadLine();
            } while (!"yes".StartsWith(input.ToLower()) && !"no".StartsWith(input.ToLower()));
            if ("yes".StartsWith(input.ToLower()))
            {
                if (opponent == Opponent.NewVampire)
                {
                    game.AdjustVampires(-1);
                }
                Console.WriteLine("Don't forget to register any cards discarded, such as Great Strength used to prevent health loss, Events due to enemy Knife wounds, Items consumed, etc.");
                return true;
            }
            if (opponent == Opponent.Dracula)
            {
                switch (enemyCombatCardChosen)
                {
                    case EnemyCombatCard.Mesmerize:
                        Console.WriteLine("{0} is bitten and must discard all Items!", enemyTarget.Name());
                        if (!HunterPlayingGreatStrengthToCancelBite(game, enemyTarget, logic))
                        {
                            game.Hunters[(int)enemyTarget].AdjustBites(1);
                        }
                        while (game.Hunters[(int)enemyTarget].ItemCount > 0)
                        {
                            var line = "";
                            var itemDiscarded = Item.None;
                            do
                            {
                                Console.WriteLine("What is the name of the Item being discarded?");
                                line = Console.ReadLine();
                                itemDiscarded = Enumerations.GetItemFromString(line);
                            } while (itemDiscarded == Item.None);
                            game.Hunters[(int)enemyTarget].DiscardItem(game, itemDiscarded);
                        }
                        CheckForHunterDeath(game); break;
                    case EnemyCombatCard.Fangs:
                        Console.WriteLine("{0} is bitten!", enemyTarget.Name());
                        if (!HunterPlayingGreatStrengthToCancelBite(game, enemyTarget, logic))
                        {
                            game.Hunters[(int)enemyTarget].AdjustBites(1);
                        }
                        CheckForHunterDeath(game);
                        goto case EnemyCombatCard.EscapeBat;
                    case EnemyCombatCard.EscapeBat:
                        Console.WriteLine("Dracula escaped in the form of a bat");
                        Location destination = logic.ChooseEscapeAsBatDestination(game);
                        game.Dracula.EscapeAsBat(game, destination);
                        logic.AddEscapeAsBatCardToAllTrails(game);
                        int position = -1;
                        if (game.HuntersAt(destination).Any() || destination == Location.CastleDracula)
                        {
                            position = game.Dracula.RevealCardInTrailWithLocation(destination);
                            logic.EliminateTrailsThatDoNotContainLocationAtPosition(game, destination, position);
                        }
                        else
                        {
                            logic.EliminateTrailsThatHaveHuntersAtPosition(game, game.Dracula.CurrentLocationPosition);
                        }
                        break;
                }
            }
            Console.WriteLine("Don't forget to register any cards discarded, such as Great Strength used to prevent health loss or Items due to enemy Knife wounds");
            foreach (HunterPlayer h in huntersInvolved)
            {
                h.LastCombatCardChosen = Item.None;
            }
            return false;
        }
 public Form1()
 {
     InitializeComponent();
     CreateObject();
     opponent = new Opponent(frontYard);
 }
Пример #43
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="origin"></param>
 /// <param name="target"></param>
 public void PrePerform(Opponent origin, Opponent target)
 {
     FSEGame.Singleton.BattleManager.AddToMessageQueue(String.Format(
         "{0} uses its tentacles to suffocate {1}!", origin.Name, target.Name));
 }
Пример #44
0
 public static void DrawRibbon(Opponent op)
 {
     for (int i = 0; i < Form1.Cycles.Count; i++)
     {
         switch (op)
         {
             case Opponent.Computer:
                 Form1.RibbonsCOM[Form1.RibbonsCOM.Count - 1].X2 = Form1.Cycles[i].X;
                 Form1.RibbonsCOM[Form1.RibbonsCOM.Count - 1].Y2 = Form1.Cycles[i].Y;
                 Form1.RibbonsCOM.Add(new RibbonCOM { X1 = Form1.Cycles[i].X, Y1 = Form1.Cycles[i].Y });
                 break;
             case Opponent.Human:
                 Form1.RibbonsHU[Form1.RibbonsHU.Count - 1].X2 = Form1.Cycles[i].X;
                 Form1.RibbonsHU[Form1.RibbonsHU.Count - 1].Y2 = Form1.Cycles[i].Y;
                 Form1.RibbonsHU.Add(new RibbonHU { X1 = Form1.Cycles[i].X, Y1 = Form1.Cycles[i].Y });
                 break;
         }
     }
 }
Пример #45
0
 public void PrePerform(Opponent origin, Opponent target)
 {
     FSEGame.Singleton.BattleManager.AddToMessageQueue(String.Format(
         "{0} heals himself and restores some health!", origin.Name));
 }
Пример #46
0
        /// <summary>
        /// Evaluates the current game state and returns a score for this
        /// move.
        /// </summary>
        /// <param name="origin">
        /// The actor who is trying to evaluate this move.
        /// </param>
        /// <param name="target">
        /// The target of this move.
        /// </param>
        /// <returns>
        /// Returns a score for this move based on the current state of the
        /// battle. A score of 0 means that the move cannot be performed. The
        /// higher the score the better.
        /// </returns>
        public UInt16 Score(Opponent origin, Opponent target)
        {
            UInt16 score = 5;

            if (origin.CurrentAttributes.Defence + 1 >
                origin.BaseAttributes.Defence + 5)
            {
                score = 0;
            }
            else if (origin.CurrentAttributes.Magic < 10)
            {
                score = 0;
            }
            else if (origin.CurrentAttributes.Health <
                target.CurrentAttributes.Health)
            {
                score -= 2;
            }

            return score;
        }
Пример #47
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="origin"></param>
 /// <param name="target"></param>
 public void PrePerform(Opponent origin, Opponent target)
 {
     FSEGame.Singleton.BattleManager.AddToMessageQueue(String.Format(
         "{0} attacks {1}!", origin.Name, target.Name));
 }
Пример #48
0
 public bool ChooseToPlayTrap(GameState game, List<HunterPlayer> huntersInvolved, Opponent opponent)
 {
     if (game.Dracula.EventHand.Find(card => card.Event == Event.Trap) != null)
     {
         if (opponent == Opponent.Dracula)
         {
             return true;
         }
         if (new Random().Next(0, 2) == 0)
         {
             return true;
         }
     }
     return false;
 }
Пример #49
0
        public UInt16 Score(Opponent origin, Opponent target)
        {
            // :: The base score for this move is 1. This move is not very
            // :: powerful, but a good fallback with few conditions.
            UInt16 score = 1;

            // :: If this move deals enough damage to kill the opponent,
            // :: then this move is slightly more favourable.
            if (this.CalculateBaseDamage(origin, target)
                >= target.CurrentAttributes.Health)
            {
                score += 5;
            }

            return score;
        }
Пример #50
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="origin"></param>
        /// <param name="target"></param>
        /// <returns></returns>
        private UInt16 CalculateBaseDamage(Opponent origin, Opponent target)
        {
            // :: The base damage inflicted by this move is the performing
            // :: actor's current strength minus the target's defence value.
            Int32 damage = origin.CurrentAttributes.Strength -
                target.CurrentAttributes.Defence;

            // :: But always at least 1 health point.
            if (damage < 1)
                damage = 1;

            return (UInt16)damage;
        }
Пример #51
0
 public Battle(Player player, Opponent opponent)
 {
     CurrentPlayer = player;
     CurrentOpponent = opponent;
     _combatEngine = new CombatEngine();
 }
Пример #52
0
        /// <summary>
        /// Calculates the damage.
        /// </summary>
        /// <param name="origin"></param>
        /// <param name="target"></param>
        /// <returns></returns>
        private UInt16 CalculateDamage(Opponent origin, Opponent target, out Boolean critical, out Boolean miss)
        {
            Random r = new Random();
            critical = r.Next(10) == 5;
            miss = r.Next(20) == 10;

            if (miss)
            {
                return 0;
            }
            else
            {
                return (UInt16)(this.CalculateBaseDamage(origin, target) * (critical ? 2 : 1));
            }
        }
Пример #53
0
 public bool ChooseToPlayRelentlessMinion(GameState game, List<Hunter> huntersInvolved, Opponent opponent)
 {
     if (game.Dracula.EventHand.Find(card => card.Event == Event.RelentlessMinion) != null &&
         new Random().Next(0, 2) == 0)
     {
         return true;
     }
     return false;
 }
Пример #54
0
        public void GiveCard(Opponent WhoTakeCard)
        {
            int isCard = randomCard.Next (0, CardsPack.Count);

            if (WhoTakeCard == Opponent.Player) {
                PlayerPack.Add (CardsPack [isCard]);
                CardsPack.RemoveAt(isCard);
            } else {
                ComputerPack.Add(CardsPack[isCard]);
                CardsPack.RemoveAt(isCard);
            }
        }
Пример #55
0
 public void PrePerform(Opponent origin, Opponent target)
 {
     FSEGame.Singleton.BattleManager.AddToMessageQueue(String.Format(
         "{0} surrounds the bridge with shadows!", origin.Name));
 }
Пример #56
0
 public void MoneyToWinner(Opponent Winner)
 {
     if (Winner == Opponent.Player) {
         PlayerBalance += Bank;
     } else if (Winner == Opponent.Computer) {
         ComputerBalance += Bank;
     } else if (Winner == Opponent.Nobody) {
         ComputerBalance += Bet;
         PlayerBalance += Bet;
     }
 }
Пример #57
0
 public void PrintWinner(Opponent Winner)
 {
     Console.WriteLine("\n\nОчки компьютера: {0}\t\tВаши очки: {1}",Game.ComputerScore, Game.PlayerScore);
     if (Winner == Opponent.Computer)
         Console.WriteLine ("\nВы ПРОИГРАЛИ!");
     else if (Winner == Opponent.Player)
         Console.WriteLine ("\nВы ВЫИГРАЛИ!");
     else
         Console.WriteLine ("\nНИЧЬЯ!");
 }
Пример #58
0
 public void ShowCards(Opponent WhosePack)
 {
     if (WhosePack == Opponent.Player) {
         Console.WriteLine ("\nВаши карты:");
         for (int i = 0; i < PlayerPack.Count; i++) {
             Console.Write ("\t{0} ", PlayerPack[i].view);
             if (PlayerPack [i].CardColor == Color.Clubs)
                 Console.Write ("♣");
             if (PlayerPack [i].CardColor == Color.Spades)
                 Console.Write ("♠");
             if (PlayerPack [i].CardColor == Color.Hearts)
                 Console.Write ("♥");
             if (PlayerPack [i].CardColor == Color.Diamonds)
                 Console.Write ("♦");
         }
     }
     if (WhosePack == Opponent.Computer) {
         Console.WriteLine ("\nКарты компьютера:");
         for (int i = 0; i < ComputerPack.Count; i++) {
             Console.Write ("\t{0} ", ComputerPack [i].view);
             if (ComputerPack [i].CardColor == Color.Clubs)
                 Console.Write ("♣");
             if (ComputerPack [i].CardColor == Color.Spades)
                 Console.Write ("♠");
             if (ComputerPack [i].CardColor == Color.Hearts)
                 Console.Write ("♥");
             if (ComputerPack [i].CardColor == Color.Diamonds)
                 Console.Write ("♦");
         }
     }
 }
Пример #59
0
 void Awake()
 {
     S = this;
 }
Пример #60
0
 private void hide_Click(object sender, EventArgs e)
 {
     opponent = new Opponent(frontYard);
     for (int i = 0; i < 10; i++)
     {
         int theCount = i + 1;
         description.Text += theCount.ToString() + "... ";
         Application.DoEvents();
         System.Threading.Thread.Sleep(200);
         opponent.Move();
     }
     description.Text += "Ready or not, here I come! ";
     Application.DoEvents();
     System.Threading.Thread.Sleep(500);
     RedrawForm();
 }