月: 2015年5月

Android:デバイスIDの取得

取り敢えずnexus9で起動したアプリを見てあることに気づいた。というか思い出した。
確かLolipopだとdeviceIdをLogCatから見つけられないから、testDviceに追加する
方法がわからなかったんだった。まあどうせ1000回表示したとしても1円だし、年に一回、
最低振込金額に到達すれば良い方なので余り気にしなくてもいいような気がしないでも
ないが、余計な事で怒られるのも嫌なので改めてぐぐる。

android - How can I get device ID for Admobにあった、md5()メソッドを利用する方法で
nexus9のdeviceIdを取得出来たみたいだったので、早速addTestDevice()にidを追加する。
テスト用のバナーになった。ひゃっほいヽ( ・∀・)ノ ←歓喜する俺氏。

返す刀で、

String deviceId = md5(android_id).toUpperCase();
        mAdRequest.addTestDevice(deviceId);

みたいに前もって取得したidをaddTestDevice()するのではなく動的にdeviceIdを
取得してaddTestDevice()してみる。テスト用のバナーになった。
ひゅーひゅーだよ ひゅーひゅーかきーん(・∀・)
↑歓喜の余りよくわからないことを言い出す俺氏。年齢がかなりいってることが分かる。

sol25で試す。
 
 
 
 
 
あれ(´・ω・`)?
テスト用バナーが表示されず、実際の広告が…
キャッシュとかされてるのだろうかと何度か試したが、事態は変わらず。
nexus9で再び試すとテスト用バナーが(・∀・)
sol25で再び試すと実際の広告が(´・ω・`)

ここで4.0.xを載せているnovo7でも試す。
 
 
 
 
 
やっぱり実際の広告が…_| ̄|○

もしかしてサンプルコードのmd5算出部分が間違えてるんじゃないの(・∀・)?と
失礼な疑念を抱き、色々とぐぐる。いくつかのサイトを眺めてみたが
 
 
 
 
 
よくわからない(・∀・)


仕方がないので取り敢えず、算出されたdeviceIdをコピペしてみる。

84D38FF70AB5889E8FB12E44734AFE08

特におかしなところも見当たらない

LogCatで取得済みのidは

84D38FF7AB5889E8FB12E44734AFE8

なので同一か…
 
 
 
 
 
いや、ちょっと待て(;・´ω・`)

84D38FF70AB5889E8FB12E44734AFE08
84D38FF7AB5889E8FB12E44734AFE8

並べてみて気づいたが、ちょっと長いぞ。なんか0が2つ多い。
なんかの法則で0が2つついておかしくなるに違いない(`・ω・´)
↑実はこの時、大きい勘違いをしてる俺氏。0付加されているのが正しい値で、
LogCatから取得した値。無い方がmd5()メソッドで取得した値。
色々調べてるうちに2つの値を取り違えたみたい(ノ∀`)

名探偵俺氏、その確証を得る為にnovo7のdeviceIdを取得して比較。

2F5820181984FD634C5344329B170C1
2f58201819840fd634c5344329b170c1

あれ、0が一つ多いだけだね(´・ω・`)


まあ何にしてもおかしいのでぐぐり再開。
取り敢えずmd5変換に種類があるのだろうかとぐぐったがそんなことはない模様。
php等でmd5変換をしてくれるページなどで試してみたが、md5()で算出される値と同じ。

Android4系以前とlolipop以降の差なんだろうかとも考えたがlolipop搭載端末は一台しか
持っていないのでその説を検証するすべがない。うーんと思いながら値を眺めたり、
md5変換のコードが載っているページを読んでいて、ふとある部分に目が行く。

//MD5 ハッシュ関数  
    private static String hashByte2MD5(byte []hash) {  
        StringBuffer hexString = new StringBuffer();  
        for (int i = 0; i < hash.length; i++) {  
            if ((0xff & hash[i]) < 0x10) {  
                hexString.append("0" + Integer.toHexString((0xFF & hash[i])));  
            } else {  
                hexString.append(Integer.toHexString(0xFF & hash[i]));  
            }  
        }  
          
        return hexString.toString();  
    }  

 if ((0xff & hash[i]) < 0x10) {  
                hexString.append("0" + Integer.toHexString((0xFF & hash[i])));  

の部分だ。

そう言えば余分な文字は”0”だヽ(`Д´)ノ!
つまり10以下の値の時は結果が二桁になるように”0”を付加してるんじゃないか( ・´ω・`)?
↑”0x”がついてるので正確には15以下です。しかもそう思うにしても10じゃなくて9以下です。

よっしゃと思いmessageDigestの値を見る。
-124, -45, -113, -9, 10, -75, -120, -98, -113, -79, 46, 68, 115, 74, -2, 8

ビンゴや(・∀・)


勢いに乗ってnovo7のmessageDigestの値を見る。
47, 88, 32, 24, 25, -124, 15, -42, 52, -59, 52, 67, 41, -79, 112, -63

あるぇー(・3・)? 10以下がないお(´・ω・`)

予想が外れたことに意気消沈するも、

0が付加されるのは”15”…
元の値は”f”……
判定式は”0x10”………
 
 
 
16進数やないかΣ(゚∀゚;)

とようやく自分の初歩的な勘違いに気づいた(ノ∀`)

何はともあれAndroidのdeviceIdはF以下の値には0付加しないという規則があるのか
という結論に到達したが、これが勘違いによる正反対の結論であることに気がつくのは数時間後のお話…(ヽ'ω`)


取り敢えず、カッコ悪いがmd5()メソッドを

String tempString = "";
for (int i=0; i<messageDigest.length; i++){
     tempString = Integer.toHexString(0xFF & messageDigest[i]);

     if(tempString.length()<2){
        hexString.append("0" + tempString);
     }else{
        hexString.append(tempString);
     }
}

みたいに改変。StringBufferを使ってるコードでStringを使う俺氏、鬼畜(・∀・)
とか思って参考にしたコードの上の回答を見てみたら

String h = Integer.toHexString(0xFF & messageDigest[i]);
  while (h.length() < 2)
    h = "0" + h;
hexString.append(h);

みたいな感じで0付加するコードが載ってた…_| ̄|○
まあでも最初の段階でこのコードを読んでもわけが分からなかっただろうし、
同じようなコーディングだからいいか(・∀・)

AdRequestの方もちょっと修正。直にaddTestDevice()の中でgetDeviceId()を
呼んでもいいけど今の所はLogに書き込みたいのでこれでいい。

String tempString = getDeviceId();
Log.d(TAG, tempString);
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)       //エミュレータ
.addTestDevice(tempString)
.build();
adView.loadAd(adRequest);
private String getDeviceId(){
  String android_id = Settings.Secure.getString(this.getContentResolver(), Settings.Secure.ANDROID_ID);
  String deviceId = md5(android_id).toUpperCase(Locale.ENGLISH);

  return deviceId;
}

取り敢えずはこれでsol25とnexus9でテスト用バナーを確認。

だがしかしnovo7では表示されず(´・ω・`)
よくよく考えみたら、novo7上でこのコードではテスト用バナーも実際の広告も
表示されているところを見たことがなかったので他の問題か。でもゲームベースでは
表示されたしなと思って文字列で静的指定をするとテスト用バナーが表示された…
わけがわからないのでもう一度デバッグで動的指定を試すとテスト用バナーが表示された…
本当にわけがわからない…(ヽ'ω`)

まあ一応動的指定は出来るようになったようだ…


で、まあいつものパターンで日本語でぐぐったら、日本語の答えがあったりする…(ヽ'ω`)
AdMob テストで使う、デバイスIDを取得

ここのページのリンクを辿ってJavaDocを読んだけど、ANDROID_IDって

A 64-bit number (as a hex string) that is randomly generated when the user first sets up the device and should remain constant for the lifetime of the user's device. The value may change if a factory reset is performed on the device.

Note: When a device has multiple users (available on certain devices running Android 4.2 or higher), each user appears as a completely separate device, so the ANDROID_ID value is unique to each user.

Constant Value: "android_id"
Settings.Secure | Android Developers

デバイスをファクトリーリセットすると変わる可能性があるんだねぇ。
加えて複数ユーザー機能を使ってる場合、ユーザー毎にANDROID_IDは一意的なんだねぇ。
ANDROID_IDから取得出来るStringの内容を見てないから断言出来ないけど、複数
ユーザー機能を使用しているデバイスからは複数のデバイスIDが取得出来るのかな?
それともANDROID_IDから取得出来るStringは同一なんだろうか。謎だ…(ヽ'ω`)

アクワイアの作った、アクションADVゲーム?
ぼちぼち面白かった(・∀・)
と言えるほどやりこんでないが(ノ∀`)


3~4回くらいやって坪内八郎に勝てたのは一回、勝った後に知床に敗けた(ヽ'ω`)
仕方がないのでやさしいモードでやったら最後まで行けた。エンディングNo3という
非常に無難というか適当にやっていたら行き着くエンディングになってしまった(ノ∀`)

黒生屋敷にドナドナを助けに行った時に、普通にドナドナが居たから
「こいつ、実は黒生家の回し者だったか、たたっ斬ってやるヽ(`Д´)ノ」と思ったが違ったw
この時坪内八郎と再会したので止めを刺してやった(`・ω・´)
クリア後に攻略サイトを見たら、トルゥーエンディングの為には坪内八郎は倒しちゃ
駄目な事が判明w でもまあ奪い取った一発丸の女突(変則牙突?)がなければやさしい
モードでもクリアは難しかったであろうからしょうがない。

忍者たちから奪い取った忍者刀もなかったら政府軍雑魚を一掃することも難しかったろうな。
忍者走り斬りみたいな技とジャンプ斬りが強かった。

堂島軍二の時は残って雑魚を倒したが何も起きる感じがしなかったのでドナドナの時は
先を急いだw 本当は残らないと駄目なのか。

玉川上水はやさしいモードでも意外と強くて負けを覚悟したが、女突等々で強気で攻めて
いったらなんとか勝てた。

実は俺氏が苦戦したのは"さばく"を使えず、"押す"一辺倒であったから(ノ∀`)


赤玉党は中に入ろうとして戦闘になり、殺されそうになったが、途中でこの辺で
勘弁してやると自動終了。逆恨みした俺氏、その後も一人で歩いている赤玉党員を
無差別に背後から襲いかかる凶行に及ぶもゲームそのものの進行には関係なかった模様。

クリア後に黒生家に雇われてみたが、赤ん坊護衛イベントで死んだのでやめたw
あれは赤ん坊を拾っても斬られる度に落っことすので逃げるのが難しい。

ドナドナが出て来なかったり、玉川上水の牛裂き趣味とかがない、正統派の感じだったら
もうちょっとはまれたかもしれない。いまいち世界設定がこなれてないように思えてしまった。

はまれなかった理由の原因の一つに"侍"の目的がよくわかってなかったのがある。
チュートリアルはきちんとこなしたのだが、先生が最後に目的を語るシーンで目を離してしまい、
そのまんまわからずじまい(ノ∀`) チュートリアルの他の要素は聞き直しが出来たので
目的を語る部分も聞き直せると油断したのがいけなかったw

説明書は開き方が悪くて、1,2,3,6ページしか見てなかったw その状態で裏返すと
スタッフリストとメディアの扱い方しか見えないので「随分と情報の少ない説明書だな」と
思い込んでいたが、クリア後によくよく見てみたら、舞台説明やキャラ説明があったΣ(゚∀゚;)


なんやかんや言いつつ、ゲームシステムや発想は良かったな(・∀・)
ADVゲームみたいに複数の結末があるゲームが好きな人には面白いだろう。
続編があるらしいからいつか108円で買えることがあったらやってみようかな。

xmlファイルを使わずにFragmentを生成する方法(´・ω・`)?

xmlを使わずにFragmentを生成する方法をぐぐっていて、ヒットした
android - How to programmatically create the layout for a Fragment?
android - How do I add a Fragment to an Activity with a programmatically created content view
を参考にコードをでっち上げたが、果たしてこれで正しいのかどうかよくわからないw

そもそもなんでそんなことをしようしたのかというと、前のエントリを確認している時に
LongClickを拾えなくなった時に「前に試したコードはListFragmentだったから、それと
一緒にしないと再現できないのか…( ;・´ω・`)ゴクリッ?」という勘違いをして、かつ、
「サンプルコードはワンストップならぬワンコピペで完結すべき(`・ω・´)」という
謎の思想から、xmlファイルによるレイアウト指定を無しにしたいと思ったから(ノ∀`)

一応これで出来てるみたいだけれども、実際にプログラムの一部として使うには
もっと何かをしないといけないのかもしれないが、その辺はよくわからないw

取り敢えずワンコピペで試せるFragmentを使用するサンプルを作るのには
利用出来るので、これはこれでいいかな。

なぜかLongClickでToastが表示出来ないのは謎(´・ω・`)
Log.dには出力されているのに。まあタッチイベント関連はこのサンプルの
本質とは全く関係ないのだけれどw

import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.GestureDetector;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity {

	private GestureDetector mGestureDetector;
	private View.OnTouchListener mGestureListener;
	private static final int CONTENT_VIEW_ID = 10101010;
	private static final String[] CONFECTIONERY = {
		"Apple Pie", "Banana Bread", "Cupcake", "Donut", "Eclair", "Froyo",
		"Gingerbread", "Honeycomb", "Ice Cream Sandwich", "Jelly Bean",
		"KitKat", "Lollipop"
	};

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		LinearLayout layout=new LinearLayout(this);
		layout.setBackgroundColor(Color.WHITE);
		layout.setOrientation(LinearLayout.VERTICAL);
		layout.setId(CONTENT_VIEW_ID);

		setContentView(layout, new LayoutParams(
				LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));

		Bundle bundle = new Bundle();
		bundle.putStringArray("confectionery", CONFECTIONERY);

		if (savedInstanceState == null) {
			Fragment newFragment = new MyFragment();
			FragmentTransaction ft = getFragmentManager().beginTransaction();
			ft.add(CONTENT_VIEW_ID, newFragment).commit();
		}
	}

	private void myOnItemClick(int position) {
		Log.d("myOnItemClick", "itemClick: " + position);
		Toast.makeText(MainActivity.this, "myOnItemClick itemClick" + position, Toast.LENGTH_LONG).show();
	}

	public class MyFragment extends Fragment {

		public MyFragment() {}

		View rootView;
		ListView listView;
		@Override
		public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
			LinearLayout layout=new LinearLayout(getActivity());
			Log.d("MyFragment", "onCreateView");
			layout.setOrientation(LinearLayout.VERTICAL);

			listView = new ListView(getActivity());

			listView.setLayoutParams(new LinearLayout.LayoutParams(
					LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
			listView.setAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1,
					CONFECTIONERY));

			layout.addView(listView);

			rootView = layout;
			rootView.setBackgroundColor(Color.WHITE);
			return rootView;
		}

		@Override
		public void onActivityCreated(Bundle savedInstanceState) {
			super.onActivityCreated(savedInstanceState);

			mGestureDetector = new GestureDetector(getActivity(),new MyGestureDetector());
			mGestureListener = new View.OnTouchListener() {
				@Override
				public boolean onTouch(View v, MotionEvent event) {
					return mGestureDetector.onTouchEvent(event);
				}
			};

			listView.setOnTouchListener(mGestureListener);
			listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
				@Override
				public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
					Log.d("onItemLongClick", "LongClick");
					Toast.makeText(MainActivity.this, "onItemLongClick LongClick", Toast.LENGTH_LONG).show();
					return true;
				}
			});
		}

		class MyGestureDetector extends SimpleOnGestureListener {
			private static final int SWIPE_MIN_DISTANCE = 120;
			private static final int SWIPE_MAX_OFF_PATH = 250;
			private static final int SWIPE_THRESHOLD_VELOCITY = 200;

			@Override
			public boolean onSingleTapUp(MotionEvent e) {
				int pos = listView.pointToPosition((int)e.getX(), (int)e.getY());
				myOnItemClick(pos);
				return false;
			}

			@Override
			public boolean onFling(MotionEvent e1, MotionEvent e2,
					float velocityX, float velocityY) {
				if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) {
					return false;
				}

				boolean isDoCancel = false;

				if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
					Log.d("onFling", "FlingLeft");
					Toast.makeText(MainActivity.this, "onFling FlingLeft", Toast.LENGTH_LONG).show();

					isDoCancel = true;

				} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
					Log.d("onFling", "FlingRight");
					Toast.makeText(MainActivity.this, "onFling FlingRight", Toast.LENGTH_LONG).show();

					isDoCancel = true;
				}

				if(isDoCancel){
					MotionEvent cancelEvent = MotionEvent.obtain(e2);
					cancelEvent.setAction(MotionEvent.ACTION_UP);
					listView.onTouchEvent(cancelEvent);
					return true;
				}else{
					return false;
				}

			}
		}
	}
}

ギレンの野望 ジオン独立戦争記

105円くらいで買った機動戦士ガンダム ギレンの野望 ジオン独立戦争記をやった。

ぼちぼち楽しみながらジオン編と連邦編の両方をクリアした(・∀・)
シリーズの中では賛否両論あるらしいけれど、これしかやってないので
他のシリーズ作品のことはよくわからない。

説明書をある程度読んでから始めたがいまいちやり方がわからずw
まず大気圏突入の概念を理解していなくて何故突入出来る軍団と出来ない軍団が
いるのかわからず悩んだ。全てをHLVに搭載してないと駄目なのか(ヽ'ω`)
今改めて説明書を眺めてみたら、一番最後の"実際のゲームの進め方"という
セクションでそのことについて書いてあった(ノ∀`)

このゲームをやる前に三国志7をやっていたが、PC版に比べてPS2版はややもっさりで
あったことから、ほとんどの戦争を自分で指揮しないという暴挙によって全国統一を
果たした。その流れからこのゲームも全部AI任せにして戦術系ゲームではなく、
戦略系ゲームとしてクリアしてやる(`・ω・´)と固く心に誓った。
 
 
 
 
 
50ターン以上経過してもニューヤークを落とすことが出来ず断念…_| ̄|○

仕方なく自分で操作して戦うことに。戦闘のアニメシーン等で時間がかかると
嫌だなぁと思っていたが、完全にOFFにすることが出来た。そういえば説明書にも
OFFに出来ると書いてあったような…(ノ∀`)

実際に操作して、「これで勝つる(`・ω・´)」と思ったが、何故か敵軍に
ガンキャノンやガンダム(正確にはプロトタイプガンダム?)が複数居る…
余りにもターンを浪費し過ぎた為に連邦のモビルスーツが開発されてしまったのか…?

※二周目で35ターンくらいで攻め込んでも既に居たのでもしかしたら最初からいるのか、30ターン以上辺りで開発済ということなのかも。ビッグトレーも居たな

結局、最初からやり直すことにしたが、その後も深いことを考えずに適当に
やっていたので、色々と苦労した。


ランバ・ラル隊にドムの使用許可を与えたらホワイトベース隊を撃破しててワラタw
ホワイトベースとガンダムとガンキャノンが手に入ったんだったかな?
そう言えばそれの絡みでランバ・ラルが最後まで生き残ってたなw

マ・クベの野郎がオデッサ作戦の時に核を使いやがったヽ(`Д´)ノ
怒ったのでドズルの意見に従ってマ・クベを謹慎?させたが、それ以降、
反乱イベント以外では復活しなかった(ノ∀`) そう言えば、ガルマが死んだ後に
謹慎したシャアも出て来なくなったな。マ・クベの謹慎と関係あるんだろうか。
ドズルはビグザム完成前にソロモンイベントで散った……

ジャブロー以外の地球拠点を占領して、ルナツーを攻略するかという辺りで
レビル将軍との会見を史実通りにソーラーレイで焼き払ったのち、キシリアを
逮捕するかと聞かれたので特に考えもなしに承諾してゲームを進めていたら、
数ターン後に反乱イベントが発生してグラナダを占拠されたヽ(`Д´)ノ

グラナダ占拠くらいならどうでも良かったが15人くらい部下が離反した…(ヽ'ω`)
この時はまだ気づいていなかったが、暴動が起きると部下の忠誠度が
落ちていたんだな…_| ̄|○ 鎮圧の為に一軍団が行動不能になるだけと思って
放置していたから、低くなっていたのか… そら離反するわ…(ヽ'ω`)

まあいいや反乱軍の戦力なんてたかが知れてるだろうと思って攻め込んだら、
自分と同じ技術レベルの兵器ばっかりが100ユニット以上…__◯_
 
 
 
 
 
数ターン前のセーブデータをロードした…


よーし、妹よ、今度はお兄ちゃん、逮捕したりなんかしないから、
反乱なんてやめろよ(・∀・)?と逮捕しない選択肢を選んだ。
そして数ターン後…
 
 
 
 
 
頭ぶち抜かれて特別敗北だよΣ(゚∀゚;)
そうだよ、そういうストーリーだったよ(ノ∀`)

でもよくよく考えてみるとギレンが殺されて終わってしまうということはこのゲームの
ジオン公国編の主体はタイトル通りにギレンということになるが、だとしたらなんで
ギレンに忠誠度があるんだろうか?オリジナル編を見越してというか、ギレンや
レビルの忠誠度部分だけをマスクするのが面倒だったからだろうか?未確認ながら
ギレンが反乱イベントを起こすという噂もあるが本当だろうかw

何はともあれ更に数ターン前のセーブデータをロードして連邦軍のみを撃った。
取り敢えず、キシリア逮捕ダイアログは出なかったが、今度はパパンが勝手に
和平を発表してジオン軍に動揺が走った。このイベントに関係してか、それとも
元々だったのかわからないが、部下たちの忠誠度が軒並み40以下だった(ノ∀`)

まあでも、最早ルナツーとジャブローを残すだけだったので、そのまま突っ切った。
ジオングやパーフェクト・ジオングの活躍する機会がなかった。エルメスと
ビグロぐらいか。ブラウ・ブロも少しは使ったかな。アプラサス系も使う機会が
なかった。

最後のエリア攻略であろうとギリギリの勝利は嫌なので、MSの生産等をしっかり
していたためになんやかんやでクリアするのに140ターンくらいかかった(ノ∀`)

ジャブロー制圧後にギレンが独立国家になった(`・ω・´)とか言ってたけど、
ここまで完全に制圧してるなら地球そのものをジオン公国にしろよと思った。

何にしてもジオン公国編は適当にやってると部下がどんどん減っていくので
そこがちょっとつらいというかいまいちだったかな。


地球での戦いで途中から海岸がある、つまりは潜水系ユニットが使える
エリア(ほとんどのエリアがそうか?)であんまりユニットを失わずに
勝てるパターンがあることに気づく。マッドアングラー、グラブロ、水中系MSで
組んだ軍団を一つ参加させて、攻略初期に水中戦が出来るアクアジム、水中型ガンダム、
ガンダム、プロトタイプガンダムと潜水艦、デプロックやドン・エスカルゴ、
フライマンタを殲滅し、後はマッドアングラーとグラブロの対地攻撃で砲台や
沿岸に居るその他のユニットをちまちまと倒して行き、後から来た主力部隊で
残りを一掃するというちょっと気の長い方法だけどw

政策はボーナスのつく対外のみを気にしていて国内の方をおろそかにしていたので
色々と大変な目にあった(´・ω・`) 途中でいきなりLAST 10とかになって、
「何これ、このゲーム、そんなに総ターンが短いのかΣ(゚∀゚;)」
と焦って攻略サイトを見に行ったら、議会勢力が和平派寄りになるとそうなると
いうことを初めて知ったw ちなみに国民支持は税率に関係してくるらしい。
そう言えば国民支持が下がると税率がオレンジ表示になっていて、よくわからないが
なんだか怖いので税率を白くなるまで落としていた。占領地域の従属は反戦活動の
暴動発生の確率を下げるか抑止するのかな?

連邦編をやっている時に気づいたが、これって単純に、ある要素を上げると
その下の要素がマイナス(反戦活動のみプラス)になるだけなんだな。だから
上から順に100%にしていって上の3つが100%になったら、反戦活動の取り締まりや
弾圧をして、また同じことを繰り返せばいいだけの話なんだな。

中立都市と軍需産業はお好み次第かなぁ。とここまで書いていて、資金と資源の
違いについてわかってなかったことを思い出してぐぐる。よく分からない(´・ω・`)
説明書を眺める……( ゚Д゚)ハッ
 
兵器の生産に消費されるのが資源で、資金はその量(x税率)によって各分野で使用
出来るコスト上限を上げる為のものだったのかΣ(゚∀゚;)
何故かずっと資金で兵器を生産してると思っていた…
画面表示で資源と表示されているのに、数十時間もその画面を見ているはずなのに
全く認識していない自分にちょっと驚きを隠せない(ノ∀`)


連邦編も基本は一緒でM型潜水艦、アクアジム、デプロック、ドン・エスカルゴ、
フライマンタ等々でジオンの水中系や対潜攻撃が出来るユニットを殲滅する流れで
何とかなった。相手がジオンだとアッザムがちょっとだけ面倒なのでTINコッドやら
フライマンタやらで早めに叩くようにした。

ハワイ攻略は61式戦車をたらふく積んだミディアとU型潜水艦で攻め込んでミデアを
盾にして敵のザクを集中砲火で減らしつつ、ミデアが危なくなったら退避させる感じの
戦い方で何とかなった。61式戦車が弱いので、何度かに分けて攻め続けるつもりだったが。

のんびりとやっていたのでオデッサ作戦を後回しにしていたら、ホワイトベース隊が
参加できなくなった(ノ∀`) それの絡みなのかわからないがマチルダさんが死なずに
生き残ったな。ジオン公国編でマ・クベがちょっとしたら核攻撃をすることを知って
いたので、
「先に61式戦車を一杯積んだ軍団を行かせて、それを贄とするか(・∀・)フフフ」
と邪悪な企みを持って戦いに臨んだが、敵軍のザクやグフのマジモードの攻撃を
受けてすぐに全滅した…_| ̄|○ オデッササクセンシッパイ…

後から到着した軍団は或る程度のガンキャノンやジムキャノン等が居たので
幾らか敵戦力を削ったものの、多勢に無勢、ペガサス級とホワイトベースを
残して全滅…(ヽ'ω`)

だがしかし補充はさせんと画面の左下と下の島のようなところに戦艦を逃がす。
ゾックやズゴックが襲って来るかとドキドキしたが奴らは来なかった(・∀・)
そうして補充や配備をさせずに数ターンを過ごし、新規に到着した軍団で
敵の主力を叩く(`・ω・´)

余裕をぶちこいていたら核攻撃が今ごろになってΣ(゚∀゚;)
まあでもこちらの優勢は変わらず、オデッサを占領出来たけれどもw
なんかこの時だったか、その前に誰かが裏切ったとか言っていたような…


味方の時はそれほど強いと思ってなかったが、敵に回すとグフは脅威だったw
グフ重装型が強いのはなんとなく知っていたけど。ゲルググMだかギャンクリーガー?とか
いうのもかなり強くてなめてかかるとFAガンダムやヘビーガンダムやアレックス、
サラミス艦・マゼラン艦を簡単に屠られてしまうので恐ろしかったw
グワジンやドロスも敵に回すとやっかいだった。ジッコやパブリクを使っていれば
もう少し楽に攻略出来たのだろうか?あれでビーム兵器の攻撃を無効に出来るのかな?

そう言えば連邦の陸上戦艦ビッグトレーは強かったな。ジオン公国編では中々殲滅出来ずに
困ったし、連邦編では射程の長さから砲台潰しに役立った。まあでもM型潜水艦に比べると
活躍の機会は少なかったな。

ジオン公国編ではザンジバルを大量生産したけど、連邦編ではペガサス級と
ホワイトベースを大量生産、何隻も作りすぎたせいか部下に反対されっぱなしだったが、
キニシナイ( ゚ 3゚)と作りまくった。今調べたら反対を押し切ると忠誠度が5も減るのかw

ア・バオア・クー攻略時に3艦隊で攻め込み、30%のダメージを食らって、リセットしたのは
内緒(*´・ω・) ロードし直してレビル隊をパプワ艦に載せた1ユニットだけの軍団を先行させ
イベントを発生させ、すぐに帰還して改めて3艦隊で攻め込んだ卑怯者であることも内緒w
正直ダメージを受けたままの3軍団でも余裕で勝てたとは思うけど。

グラナダ攻略戦でキシリア閣下等がHLVに乗っていて、涙を誘った。・゚・(ノД`)・゚・。
容赦なく撃ち落としたw

サイド3での同イベントはそのまま続行した。サイド3のイベントはア・バオア・クールートの
軍団にしかダメージを与えてないようだったがア・バオア・クー攻略時もそうだったんだろうか。

そう言えば第13艦隊ことホワイトベース隊が弱くてワラタw
ゲームジャンルとしては全く違うが、連邦vsジオンに出て来るアムロを期待していたのだが、
あっという間に撃墜されていて、「なんもいえねぇ…(´・ω・`)」って気分になった。

100ターン目くらいで地球上の拠点は全部制圧したので、早く終わりそうと思っていたが、
また完全勝利を目論んでFAガンダム等を貯めていたら、結局クリアには140ターンくらいまで
かかったというオチに(ノ∀`)


オリジナル編をやろうと思ったらifポイントが部下を大人買い出来るほどではなかったので
もう一度ジオン公国編をやることにした。今度はハードモードにするかと思ってそれで
始めたが、オデッサにいきなり攻め込んだら、援軍というか、たまたまその時の移動で
オデッサに到着したレビル軍団の中にビッグトレーが居たので何ターンかやってやめたw

一応ビッグトレーはなんとか倒せそうだったがその後がきついし、わしゃあifポイントが
簡単に欲しいだけなんじゃヽ(`Д´)ノという心の叫びに従った結果だ。でももしかすると
ハードモードだと獲得出来るifポイントって増加するんだろうか。

果たして最後までやるかどうか疑問だが、取り敢えずノーマルモードで2周目ヽ( ・∀・)ノ
ちなみにアニメは基本的に全飛ばしにしているのであんまり話の流れは未だにそんなには
理解していない(ノ∀`)

つーか長すぎだな、このエントリ…(ヽ'ω`)