コード例 #1
0
ファイル: Formation.cs プロジェクト: JamesEdSmith/gamedev
        public virtual void addSoldier(Soldier soldier)
        {
            _addedSoldier = true;
            switch(soldier.getType())
            {
                case Soldier.TYPE_PIKE:
                    addSoldierToRow(soldier, _pikeRows);
                    break;
                case Soldier.TYPE_SWINGER:
                    addSoldierToRow(soldier, _supportRows);
                    break;
                case Soldier.TYPE_SHOT:
                    addSoldierToRow(soldier, _shotRows);
                    break;
                case Soldier.TYPE_CAVALRY:
                    addSoldierToRow(soldier, _cavRows);
                    break;
                case Soldier.TYPE_SUPPORT:
                    addSoldierToRow(soldier, _supportRows);
                    break;
                case Soldier.TYPE_MELEE:
                    addSoldierToRow(soldier, _meleeRows);
                    break;
                default:
                    addSoldierToRow(soldier, _supportRows);
                    break;
            }

            soldier.setSide(_side);
            if (_screen.getPlayerFormation() == this)
                soldier.inPlayerFormation = true;
            soldier.initCharge = false;
            soldier.setSpeed(0.15f);

            // determine speed
            avgSpeed = 0;

            foreach (Soldier s in _soldiers)
            {
                avgSpeed += s.getSpeed();
            }
            avgSpeed /= (float)_soldiers.Count;
            _speed = avgSpeed - 0.04f;            
            //_speed = avgSpeed - (0.002f * (float)_soldiers.Count);            
            soldier.myFormation = this;

            if (soldier.getType() == Soldier.TYPE_PIKE)
            {
                reiteratePikeCommand((Pikeman)soldier);
                numberOfPikes++;
            }
            else if (soldier is Dopple && _state == STATE_PIKE)
            {
                ((Dopple)soldier).charge();
            }
            else if (soldier.getType() == Soldier.TYPE_SHOT)
            {
                numberOfShots++;
            }
        }
コード例 #2
0
ファイル: Formation.cs プロジェクト: JamesEdSmith/gamedev
 public override void addSoldier(Soldier soldier)
 {
     base.addSoldier(soldier);
     if (soldier is Wolf)
     {
         ((Wolf)soldier).bossFormation = this;
         soldier.setSpeed(0.24f);
     }
     
 }