Android Open Source - dragon-wars Game Map






From Project

Back to project page dragon-wars.

License

The source code is released under:

GNU General Public License

If you think the Android project dragon-wars listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/* This file is part of Dragon Wars.
 *// w  ww. j a  v  a2  s .  c o  m
 * Dragon Wars is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Dragon Wars is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Dragon Wars.  If not, see <http://www.gnu.org/licenses/>.
 */

package com.group7.dragonwars.engine;


import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import android.graphics.Bitmap;

public final class GameMap implements Iterable<GameField> {

    private List<List<GameField>> fields;
    private List<Player> players;
    private Map<Character, Unit> units;
    private Map<Character, Building> buildings;
    private Map<Character, GameField> gameFields;
    private Bitmap ownImage;

    public GameMap(final List<List<GameField>> fields,
                   final Map<Character, Unit> units,
                   final Map<Character, Building> buildings,
                   final Map<Character, GameField> gameFields,
                   final List<Player> players) {
        this.fields = fields;
        this.units = units;
        this.buildings = buildings;
        this.gameFields = gameFields;
        this.players = players;

    }

    public Iterator<GameField> iterator() {
        /* This really isn't ideal as we will iterate twice. */
        List<GameField> flat = new ArrayList<GameField>();

        for (List<GameField> row : this.fields) {
            for (GameField gf : row) {
                flat.add(gf);
            }
        }

        return flat.iterator();
    }

    public Bitmap getImage() {
        return ownImage;
    }

    public void setImage(final Bitmap img) {
        ownImage = img;
    }

    public Boolean isInstantiated() {
        return fields != null;
    }

    public Integer getWidth() {
        return fields.get(0).size();
    }

    public Integer getHeight() {
        return fields.size();
    }

    public GameField getField(final Position position) {
        return getField(position.getX(), position.getY());
    }

    public GameField getField(final Integer x, final Integer y) {
        return fields.get(y).get(x);
    }

    public Boolean isValidField(final Position position) {
        return isValidField(position.getX(), position.getY());
    }

    public Boolean isValidField(final Integer x, final Integer y) {
        if (this.fields == null || this.fields.get(0) == null) {
            return false;
        }

        if (x < 0 || y < 0) {
            return false;
        }

        if (x >= this.getWidth() || y >= this.getHeight()) {
            return false;
        }

        return true;
    }

    public String toString() {
        String m = "";

        for (List<GameField> agf : this.fields) {
            for (GameField gf : agf) {
                m += gf.toString().charAt(0);
            }

            m += '\n';
        }

        return m;
    }

    public Map<Character, Unit> getUnitMap() {
        return this.units;
    }

    public Map<Character, Building> getBuildingMap() {
        return this.buildings;
    }

    public Map<Character, GameField> getGameFieldMap() {
        return this.gameFields;
    }

    public List<Player> getPlayers() {
        return this.players;
    }
}




Java Source Code List

com.group7.dragonwars.DrawingThread.java
com.group7.dragonwars.GameActivity.java
com.group7.dragonwars.GameView.java
com.group7.dragonwars.HelpActivity.java
com.group7.dragonwars.IsAiAdapter.java
com.group7.dragonwars.MainMenuActivity.java
com.group7.dragonwars.MapSelectActivity.java
com.group7.dragonwars.PlayerSelectActivity.java
com.group7.dragonwars.Results.java
com.group7.dragonwars.StatisticsActivity.java
com.group7.dragonwars.engine.BasicMapInfo.java
com.group7.dragonwars.engine.BitmapChanger.java
com.group7.dragonwars.engine.Building.java
com.group7.dragonwars.engine.DrawableMapObject.java
com.group7.dragonwars.engine.FloatPair.java
com.group7.dragonwars.engine.FuncEx.java
com.group7.dragonwars.engine.Func.java
com.group7.dragonwars.engine.GameField.java
com.group7.dragonwars.engine.GameFinishedException.java
com.group7.dragonwars.engine.GameMap.java
com.group7.dragonwars.engine.GameState.java
com.group7.dragonwars.engine.InformationState.java
com.group7.dragonwars.engine.Logic.java
com.group7.dragonwars.engine.MapReader.java
com.group7.dragonwars.engine.Pair.java
com.group7.dragonwars.engine.PlayerAI.java
com.group7.dragonwars.engine.Player.java
com.group7.dragonwars.engine.Position.java
com.group7.dragonwars.engine.RangedUnit.java
com.group7.dragonwars.engine.Statistics.java
com.group7.dragonwars.engine.Unit.java
com.group7.dragonwars.engine.Database.Database.java
com.group7.dragonwars.engine.GoalArbitration.AtomicAction.java
com.group7.dragonwars.engine.GoalArbitration.AttackAt.java
com.group7.dragonwars.engine.GoalArbitration.BuildUnit.java
com.group7.dragonwars.engine.GoalArbitration.MoveTo.java
com.group7.dragonwars.engine.GoalArbitration.Node.java
com.group7.dragonwars.engine.GoalArbitration.StateTree.java