コード例 #1
0
        /// <summary>
        /// Spawns the player on the 'ground' at 'startPoint'
        /// returns a reference to the Player so one can more easily take care of references.
        /// </summary>

        /*
         * public Creature SpawnPlayer(Coords startPoint)
         * {
         *  //Player player = new Player(this, startPoint, this.IssueCreatureID());
         *  //this.PlayerReference = player;
         *  return null;
         * }
         */
        public Creature CreateCreature(Coords startPoint, Team team, CreatureGenerator generator, Brain creatureBrain, DrawerBattle myDrawer, InterfaceBattle myInterface)
        {
            Creature newguy = new Creature(this, startPoint, (UInt16)this.IssueCreatureID(), team, generator, creatureBrain);

            team.MemberRegister(newguy);
            for (int i = 0; i < generator.SpellEndowment.Length; ++i)
            {
                CreateSpellForCreature(newguy, generator.SpellEndowment[i], myDrawer, myInterface);
            }
            return(newguy);
        }
コード例 #2
0
        public Creature(MapBattle currentMap, Coords startPos, UInt16 ID, Team team, CreatureGenerator generator, Brain creatureBrain)
            : base(currentMap, startPos, ID, team, creatureBrain)
        {
            this._name = generator.name;


            this._myInventoryBackpack = new Inventory(this, Constants.InventorySize);
            this._myInventoryEquipped = new Inventory(this, (sbyte)InventoryType.COUNT);
            this._myBitmap            = generator.creatureBitmaps;

            this._inhabitedMap = currentMap;
            this._inhabitedMap.MenagerieAddCreatureTo(ID, this);

            this._myVisibilityTracker = _inhabitedMap.MyVisibilityTracker;
            //this._myPathfinder = _inhabitedMap.MyPathfinder;

            this._creatureBrain       = creatureBrain;
            _creatureBrain.MyCreature = this;

            this._fieldOfView = new BitArray[currentMap.BoundX];
            for (int i = 0; i < currentMap.BoundX; ++i)
            {
                _fieldOfView[i] = new BitArray(currentMap.BoundY);
            }

            GenerateStats(generator.MainStatsMeans, generator.MainStatsDeviations);

            _APMoveCosts   = generator.APMoveCosts;
            _APActionCosts = generator.APActionCosts;

            this._positionTile = startPos;
            this._inhabitedMap.TenancyMap[startPos.X, startPos.Y] = this;
            _myVisibilityTracker.VisibilityResidentAdd(startPos, this);
            //this._inhabitedMap.VacancyMap[startPos.X][startPos.Y] = false;

            this._myMoveRangeCalculator = new MoveRangeCalculator(this);
            _myMoveRangeCalculator.Update();
            this.FieldOfViewUpdate();
            //this._inhabitedMap.MyCollider.RegisterCreature(this);
        }