Changeset 41c11dd in advance-wars


Ignore:
Timestamp:
Aug 27, 2011, 1:56:46 AM (13 years ago)
Author:
dportnoy <devnull@…>
Branches:
master
Children:
331d180
Parents:
511177b
Message:

Added cities to the game, moved the map to a new static class, and added incomplete support for capturing cities with soldiers.

Location:
src/com/medievaltech
Files:
1 added
11 edited
1 moved

Legend:

Unmodified
Added
Removed
  • src/com/medievaltech/advancewars/Game.java

    r511177b r41c11dd  
    5151                try {
    5252                        PrintWriter p = new PrintWriter(new FileWriter(android.os.Environment.getExternalStorageDirectory()+"/save.txt"));
    53                         mThread.mMap.save(p);
     53                        Static.map.save(p);
    5454                        p.close();
    5555                }catch(IOException ioe) {
  • src/com/medievaltech/advancewars/GameView.java

    r511177b r41c11dd  
    2222       
    2323        //maybe make this private and make an accessor for it
    24         public Map mMap;
     24        //public Map mMap;
    2525       
    2626        public Tile grassTile, oceanTile;
     
    8383            mSelectionPaint.setAntiAlias(true);
    8484            mSelectionPaint.setARGB(255, 255, 127, 0);
     85           
     86            Player.neutralColor = new Paint();
     87            Player.neutralColor.setAntiAlias(true);
     88            Player.neutralColor.setARGB(255, 127, 127, 127);
    8589           
    8690            wndMainMenu = new com.medievaltech.gui.Window(0, 0, 320, 450);;
     
    9498            oceanTile = new Tile(mTilePaint2, TerrainType.SEA);
    9599           
    96             mMap = new Map(grassTile, 6, 8, new Point(10, 25));
     100            Static.map = new Map(grassTile, 6, 8, new Point(10, 25));
    97101           
    98102            boolean land = true;
    99103           
    100             for(int x=0; x<mMap.getWidth(); x++) {
    101                         for(int y=0; y<mMap.getHeight(); y++) {
     104            for(int x=0; x<Static.map.getWidth(); x++) {
     105                        for(int y=0; y<Static.map.getHeight(); y++) {
    102106                                if(land)
    103                                         mMap.setTile(x, y, new Tile(grassTile, new Point(x, y)));
     107                                        Static.map.setTile(x, y, new Tile(grassTile, new Point(x, y)));
    104108                                else
    105                                         mMap.setTile(x, y, new Tile(oceanTile, new Point(x, y)));
     109                                        Static.map.setTile(x, y, new Tile(oceanTile, new Point(x, y)));
    106110                                land = !land;
    107111                        }
     
    112116            enemy = new Player("Comp", mUnitPaint2);
    113117           
    114             mMap.getTile(0, 0).addUnit(new Soldier(enemy));
    115             mMap.getTile(2, 3).addUnit(new Soldier(humanPlayer));
    116             mMap.getTile(5, 6).addUnit(new Soldier(humanPlayer));
     118            Static.map.getTile(0, 0).addUnit(new Soldier(enemy));
     119            Static.map.getTile(2, 3).addUnit(new Soldier(humanPlayer));
     120            Static.map.getTile(5, 6).addUnit(new Soldier(humanPlayer));
     121           
     122            Static.map.getTile(4, 4).addBuilding(new City());
    117123           
    118124            mTurn = Turn.YOUR_TURN;
     
    201207                       
    202208                        //any unit that's in the way is removed (needs to be changed eventuallyy)
    203                         thread.mMap.getTile(x, y).removeUnit();
    204                                 thread.mMap.getTile(x, y+1).addUnit(cur);
     209                        Static.map.getTile(x, y).removeUnit();
     210                        Static.map.getTile(x, y+1).addUnit(cur);
    205211                        }
    206212                        Log.i("AdvanceWars", "finished moving enemy units");
     
    226232                        mTextPaint.setTextSize(12);
    227233               
    228                 mMap.draw(canvas);
     234                        Static.map.draw(canvas);
    229235               
    230236                if(selectedUnit != null) {
     
    234240                }
    235241               
    236                 mMap.drawUnits(canvas);
     242                Static.map.drawBuildings(canvas);
     243                Static.map.drawUnits(canvas);
    237244               
    238245                        break;
     
    291298                                int offsetY = Integer.parseInt(offset.substring(offset.indexOf("x")+1));
    292299                               
    293                                 thread.mMap = new Map(thread.grassTile, width, height, new Point(offsetX, offsetY));
     300                                Static.map = new Map(thread.grassTile, width, height, new Point(offsetX, offsetY));
    294301                               
    295302                                Log.i("GameSave", "Created the map");
     
    302309                                                TerrainType type = TerrainType.values()[Integer.parseInt(arr[y])];
    303310                                                if(type.equals(TerrainType.LAND))
    304                                                         thread.mMap.setTile(x, y, new Tile(thread.grassTile, new Point(10, 25)));
     311                                                        Static.map.setTile(x, y, new Tile(thread.grassTile, new Point(10, 25)));
    305312                                                else
    306                                                         thread.mMap.setTile(x, y, new Tile(thread.oceanTile, new Point(10, 25)));
     313                                                        Static.map.setTile(x, y, new Tile(thread.oceanTile, new Point(10, 25)));
    307314                                        }
    308315                                }
     
    316323                                        Player humanPlayer = new Player("Human", mGame.mThread.mUnitPaint1);
    317324                                       
    318                                         mGame.mThread.mMap.getTile(x, y).addUnit(new Soldier(humanPlayer));
     325                                        Static.map.getTile(x, y).addUnit(new Soldier(humanPlayer));
    319326                                }
    320327                               
     
    331338                        Log.i("AdvanceWars", "Touch event detected on battle map");
    332339                       
    333                         if(event.getX() >= thread.mMap.offset.x && event.getY() >= thread.mMap.offset.y) {
    334                                 int x = ((int)event.getX() - thread.mMap.offset.x) / 50;
    335                                 int y = ((int)event.getY() - thread.mMap.offset.y) / 50;
     340                        if(event.getX() >= Static.map.offset.x && event.getY() >= Static.map.offset.y) {
     341                                int x = ((int)event.getX() - Static.map.offset.x) / 50;
     342                                int y = ((int)event.getY() - Static.map.offset.y) / 50;
    336343                               
    337                                 Unit target = thread.mMap.getTile(x, y).currentUnit;
     344                                Unit target = Static.map.getTile(x, y).currentUnit;
    338345                               
    339346                                if(thread.selectedUnit != null && thread.selectedUnit.getMovementRange().contains(new Point(x, y))) {
    340347                                        if(target == null || target == thread.selectedUnit) {
    341                                                         thread.mMap.getTile(thread.selectedUnit.location.x, thread.selectedUnit.location.y).removeUnit();
    342                                                         thread.mMap.getTile(x, y).addUnit(thread.selectedUnit);
     348                                                        Static.map.getTile(thread.selectedUnit.location.x, thread.selectedUnit.location.y).removeUnit();
     349                                                        Static.map.getTile(x, y).addUnit(thread.selectedUnit);
    343350                                        }else {
    344351                                                // the target contains another unit. If the unit is enemy-controlled, attack it
  • src/com/medievaltech/advancewars/Map.java

    r511177b r41c11dd  
    8080                                grid[x][y].drawUnit(c, offset.x+50*x, offset.y+50*y);
    8181        }
     82       
     83        public void drawBuildings(Canvas c) {
     84                for(int x=0; x<getWidth(); x++)
     85                        for(int y=0; y<getHeight(); y++)
     86                                grid[x][y].drawBuilding(c, offset.x+50*x, offset.y+50*y);
     87        }
    8288}
  • src/com/medievaltech/advancewars/Player.java

    r511177b r41c11dd  
    1 package com.medievaltech.unit;
     1package com.medievaltech.advancewars;
    22
    33import java.util.*;
     4
     5import com.medievaltech.unit.Unit;
    46
    57import android.graphics.Paint;
     
    911        private Paint color;
    1012        private ArrayList<Unit> units;
     13        public static Paint neutralColor;
    1114       
    1215        public Player(String name, Paint color) {
  • src/com/medievaltech/advancewars/Tile.java

    r511177b r41c11dd  
    1212        public double moveCoefficent;
    1313        public Unit currentUnit;
     14        public City currentBuilding;
    1415        public Point point;
    1516        private Paint p;
     
    1920                this.type = type;
    2021                this.currentUnit = null;
     22                this.currentBuilding = null;
    2123        }
    2224       
     
    4042        }
    4143       
     44        public void addBuilding(City c) {
     45                currentBuilding = c;
     46                c.location = point;
     47        }
     48       
    4249        public void draw(Canvas c, int x, int y) {
    4350                c.drawRect(x, y, x+50, y+50, p);
     
    4855                        currentUnit.draw(c, x+25, y+25);
    4956        }
     57       
     58        public void drawBuilding(Canvas c, int x, int y) {
     59                if(currentBuilding != null)
     60                        currentBuilding.draw(c, x+25, y+25);
     61        }
    5062}
  • src/com/medievaltech/unit/Artillery.java

    r511177b r41c11dd  
    55import android.graphics.Point;
    66
     7import com.medievaltech.advancewars.Player;
    78import com.medievaltech.advancewars.Enum.*;
    89
  • src/com/medievaltech/unit/Mech.java

    r511177b r41c11dd  
    55import android.graphics.Point;
    66
     7import com.medievaltech.advancewars.Player;
    78import com.medievaltech.advancewars.Enum.*;
    89
  • src/com/medievaltech/unit/Recon.java

    r511177b r41c11dd  
    55import android.graphics.Point;
    66
     7import com.medievaltech.advancewars.Player;
    78import com.medievaltech.advancewars.Enum.*;
    89
  • src/com/medievaltech/unit/SmTank.java

    r511177b r41c11dd  
    55import android.graphics.Point;
    66
     7import com.medievaltech.advancewars.Player;
    78import com.medievaltech.advancewars.Enum.*;
    89
  • src/com/medievaltech/unit/Soldier.java

    r511177b r41c11dd  
    55import android.graphics.Point;
    66
     7import com.medievaltech.advancewars.Player;
     8import com.medievaltech.advancewars.Static;
     9import com.medievaltech.advancewars.Tile;
    710import com.medievaltech.advancewars.Enum.*;
    811
     
    2730        @Override
    2831        public void attack(Point point) {
    29                 // TODO Auto-generated method stub
    30        
     32                Tile t = Static.map.getTile(point);
     33               
     34                if(t.currentUnit == null && t.currentBuilding != null) {
     35                        t.currentBuilding.currentHealth -= this.currentHealth;
     36                       
     37                        if(t.currentBuilding.currentHealth <= 0) {
     38                                t.currentBuilding.owner = this.owner;
     39                                t.currentBuilding.currentHealth = t.currentBuilding.maxHealth;
     40                        }
     41                }
    3142        }
    3243
  • src/com/medievaltech/unit/Transport.java

    r511177b r41c11dd  
    11package com.medievaltech.unit;
     2
     3import com.medievaltech.advancewars.Player;
    24
    35public abstract class Transport extends Unit {
  • src/com/medievaltech/unit/Unit.java

    r511177b r41c11dd  
    55import android.graphics.*;
    66
     7import com.medievaltech.advancewars.Player;
    78import com.medievaltech.advancewars.Enum.*;
    89
Note: See TracChangeset for help on using the changeset viewer.