Exemple #1
0
	// Use this for initialization
	public void OnClick () {

		Message msg = new Message();
		Gaikou gaikou = new Gaikou ();
		CloseBoard closeScript = GameObject.Find ("close").GetComponent<CloseBoard> ();
		daimyoId = closeScript.daimyoId;

		if (hyourouOKflg) {
			if (moneyOKflg) {
				if (name == "DoMitsugiBtn") {
					reduceMoneyHyourou ();

					//Doumei
					bool doumeiFlg = closeScript.doumeiFlg;

					//Add Yukoudo
					// AddYukoudo = (Money/200)*chiryaku/100
					int addYukoudo = (paiedMoney / 200) * busyoChiryaku / 500;
					if (addYukoudo <= 0) {
						addYukoudo = 1;
					}


					if(doumeiFlg){
						addYukoudo = addYukoudo * 2;
					}

					string tempGaikou = "gaikou" + daimyoId;
					int nowYukoudo = 0;
					if (PlayerPrefs.HasKey (tempGaikou)) {
						nowYukoudo = PlayerPrefs.GetInt (tempGaikou);
					} else {
						nowYukoudo = 50;
					}
					int newYukoudo = nowYukoudo + addYukoudo;
					if (newYukoudo > 100) {
						newYukoudo = 100;
					}
					PlayerPrefs.SetInt (tempGaikou, newYukoudo);
					GameObject.Find ("YukouValue").GetComponent<Text> ().text = newYukoudo.ToString (); 

					//Change new yukoudo
					closeScript.yukoudo = newYukoudo;

					//Back
					GameObject.Find ("return").GetComponent<MenuReturn> ().OnClick ();

					//Message
					string OKtext = daimyoName + "に金" + paiedMoney + "の貢物をしました。\n友好度が" + addYukoudo + "上がりますぞ。";
					msg.makeMessage (OKtext);

					PlayerPrefs.Flush ();

				} else if (name == "DoDoumeiBtn") {
			
					reduceMoneyHyourou ();

					//Doumei
					float percent = Random.value;
					percent = percent * 100;
					
					if(percent <= doumeiRatio){
						//Doumei Success
						string doumei = PlayerPrefs.GetString("doumei");
						if(doumei == null || doumei == ""){
							doumei = daimyoId.ToString();
						}else{
							doumei = doumei + "," + daimyoId.ToString();
						}

						//Data
						int myDaimyo = PlayerPrefs.GetInt ("myDaimyo");
						string cpuDoumeiTemp = "doumei" + daimyoId.ToString();
						string cpuDoumei = PlayerPrefs.GetString(cpuDoumeiTemp);
						if(cpuDoumei != null & cpuDoumei !=""){
							cpuDoumei = cpuDoumei + "," + myDaimyo.ToString();
						}else{
							cpuDoumei = myDaimyo.ToString();
						}
						PlayerPrefs.SetString(cpuDoumeiTemp,cpuDoumei);
						PlayerPrefs.SetString("doumei",doumei);

						//Change Target Flg & Kuni Icon Color
						string seiryoku = PlayerPrefs.GetString ("seiryoku");
						char[] delimiterChars = {','};
						List<string> seiryokuList = new List<string> ();
						seiryokuList = new List<string> (seiryoku.Split (delimiterChars));
						GameObject KuniIconView = GameObject.Find ("KuniIconView").gameObject;

						Color doumeiColor = new Color (100f / 255f, 130f / 255f, 255f / 255f, 255f / 255f); //Blue
						for(int i=0;i<seiryokuList.Count;i++){
							int tempDaimyoId = int.Parse (seiryokuList [i]);

							if(tempDaimyoId == daimyoId){
								int kuniId = i + 1;
								GameObject kuniIcon = KuniIconView.transform.FindChild(kuniId.ToString()).gameObject;
								kuniIcon.GetComponent<Image>().color = doumeiColor;
								kuniIcon.GetComponent<SendParam>().doumeiFlg = true;
							}
						}

						//Msg
						string OKtext = "御目出度う存じまする。\n" + daimyoName + "殿と同盟致しました。\n戦略の幅が拡がりますな。";
						msg.makeMessage (OKtext);

						Destroy(GameObject.Find("smallBoard(Clone)"));
						Destroy(GameObject.Find("TouchBack(Clone)"));

					}else{
						//Doumie Failed
						int maxReduceValue = 3;
						int nowYukoudo = gaikou.getMyGaikou(daimyoId);
						int newYukoudo = gaikou.downMyGaikou(daimyoId,nowYukoudo,maxReduceValue);
						int reduceYukoudo = nowYukoudo - newYukoudo;
						closeScript.yukoudo = newYukoudo;

						GameObject.Find ("YukouValue").GetComponent<Text> ().text = newYukoudo.ToString (); 
						string NGtext = daimyoName + "に体よく断られ申した。\n友好度が" + reduceYukoudo + "下がりますぞ。";
						msg.makeMessage (NGtext);

						//Back
						GameObject.Find ("return").GetComponent<MenuReturn> ().OnClick ();
					}

					PlayerPrefs.Flush ();

					
				} else if (name == "DoKyoutouBtn") {

					reduceMoneyHyourou ();

					//Kyoutou Check
					float percent = Random.value;
					percent = percent * 100;
					if(percent <= kyoutouRatio){

						//Success
						string playerKyoutouList = PlayerPrefs.GetString("playerKyoutouList","");
						MainEventHandler kyoutou = new MainEventHandler();
						if(playerKyoutouList==null || playerKyoutouList == ""){
							playerKyoutouList = targetKuniId+ "-" + kyoutou.getEngunSts(daimyoId.ToString());
						}else{
							playerKyoutouList = playerKyoutouList + ":" +  targetKuniId+ "-" + kyoutou.getEngunSts(daimyoId.ToString());
						}
						Debug.Log (playerKyoutouList);
						PlayerPrefs.SetString("playerKyoutouList",playerKyoutouList);

						//Msg
						string OKtext = daimyoName + "殿が" + kuniName + "攻めに加勢してくれますぞ。\n百人力ですな。";
						msg.makeMessage (OKtext);


					}else{
						//Fail

						//Doumie Failed
						int maxReduceValue = 3;
						int nowYukoudo = gaikou.getMyGaikou(daimyoId);
						int newYukoudo = gaikou.downMyGaikou(daimyoId,nowYukoudo,maxReduceValue);
						int reduceYukoudo = nowYukoudo - newYukoudo;
						GameObject.Find ("YukouValue").GetComponent<Text> ().text = newYukoudo.ToString (); 	
						closeScript.yukoudo = newYukoudo;

						string NGtext = daimyoName + "に体よく断られ申した。\n友好度が" + reduceYukoudo + "下がりますぞ。";
						msg.makeMessage (NGtext);

					}

					PlayerPrefs.Flush ();
					
					//Back
					GameObject.Find ("return").GetComponent<MenuReturn> ().OnClick ();



				}else if (name == "DoDoukatsuBtn") {

					reduceMoneyHyourou ();

					float percent = Random.value;
					percent = percent * 100;
					
					if(percent <= doukatsuRatio){
						//Success
						int kuniQty = closeScript.kuniQty; 
						int getMoney =0;
						//Money or Item 0:money, 1:item
						int moneyOrItem = UnityEngine.Random.Range(0,2);
						//Kahou or Shizai 0:kahou, 1:shizai 
						int kahouOrShizai = UnityEngine.Random.Range(0,2);
						string kahouName = "";
						string shigenName = "";
						int addQty =0;
						int kahouRank = 0; //kahouRank S,A,B,C=1,2,3,4
						//shigen Type
						int shigenType = 0; //KB,YR,TP,YM=1,2,3,4
						
						if(moneyOrItem==0){
							//money
							int temGetMoney = UnityEngine.Random.Range(1000,1501);
							getMoney = temGetMoney * kuniQty;
							int nowMoney = PlayerPrefs.GetInt("money");
							nowMoney = nowMoney + getMoney;
							PlayerPrefs.SetInt("money",nowMoney);
							PlayerPrefs.Flush();
							
						}else{
							//item
							//Kahou or Shizai 0:kahou, 1:shizai 
							kahouOrShizai = UnityEngine.Random.Range(0,2);
							if(kahouOrShizai==0){
								//kahou
								Kahou kahou = new Kahou();
								////Bugu, Gusoku, Kabuto, Meiba, Heihousyo, Cyadougu, Chishikisyo(1,2,3,4,5,6)
								int kahouType = UnityEngine.Random.Range(1,7);
								
								float khPercent = Random.value;
								khPercent = khPercent * 100;
								if(5<=kuniQty){
									//(S,A,B  5,35,60%)
									if(khPercent<=5){
										//S
										kahouRank = 1;
										kahouName = kahou.getRamdomKahou(kahouType, kahouRank);
									}else if(5<khPercent && khPercent <=41){
										//A
										kahouRank = 2;
										kahouName = kahou.getRamdomKahou(kahouType, kahouRank);
									}else if(41<khPercent){
										//B
										kahouRank = 3;
										kahouName = kahou.getRamdomKahou(kahouType, kahouRank);
									}
									
								}else if(3<=kuniQty && kuniQty<5){
									//(S,A,B,C : 1,15,25,59%)
									if(khPercent<=1){
										//S
										kahouRank = 1;
										kahouName = kahou.getRamdomKahou(kahouType, kahouRank);
									}else if(1<khPercent && khPercent <=16){
										//A
										kahouRank = 2;
										kahouName = kahou.getRamdomKahou(kahouType, kahouRank);
									}else if(16<khPercent && khPercent <= 41){
										//B
										kahouRank = 3;
										kahouName = kahou.getRamdomKahou(kahouType, kahouRank);
									}else if(41<khPercent){
										//C
										kahouRank = 4;
										kahouName = kahou.getRamdomKahou(kahouType, kahouRank);
									}
									
								}else if(kuniQty<3){
									//(A,B,C : 5, 35, 60%)
									if(khPercent<=5){
										//A
										kahouRank = 2;
										kahouName = kahou.getRamdomKahou(kahouType, kahouRank);
									}else if(5<khPercent && khPercent <=41){
										//B
										kahouRank = 3;
										kahouName = kahou.getRamdomKahou(kahouType, kahouRank);
									}else if(41<khPercent){
										//C
										kahouRank = 3;
										kahouName = kahou.getRamdomKahou(kahouType, kahouRank);
									}
									
								}

								
							}else{
								
								//shizai
								shigenType = UnityEngine.Random.Range(1,5);
								float sgPercent = Random.value;
								sgPercent = sgPercent * 100;
								addQty = UnityEngine.Random.Range(1,6);
								Item item = new Item();
								int shigenRank = 0;//下、中、上=1,2,3
								
								if(5<=kuniQty){
									//(上,中,下  40,40, 20%)
									if(sgPercent<=40){
										shigenRank = 3;
									}else if(40<sgPercent && sgPercent <=81){
										shigenRank = 2;
									}else if(81<sgPercent){
										shigenRank = 1;
									}
									shigenName = item.getRandomShigen(shigenType,shigenRank,addQty);
									
								}else if(3<=kuniQty && kuniQty<5){
									//(上,中,下  20,50,30%)
									if(sgPercent<=20){
										shigenRank = 3;
									}else if(20<sgPercent && sgPercent <=51){
										shigenRank = 2;
									}else if(51<sgPercent){
										shigenRank = 1;
									}
									shigenName = item.getRandomShigen(shigenType,shigenRank,addQty);
									
								}else if(kuniQty<3){
									//(上,中,下  5,25,70%)
									if(sgPercent<=5){
										shigenRank = 3;
									}else if(5<sgPercent && sgPercent <=26){
										shigenRank = 2;
									}else if(26<sgPercent){
										shigenRank = 1;
									}
									shigenName = item.getRandomShigen(shigenType,shigenRank,addQty);
								}
							}
						}
						
						
						//Message
						string OKtext = "御屋形様、恫喝に成功しましたぞ。\n"+daimyoName + "が";
						string addText = "";
						if(moneyOrItem==0){
							addText = "金" + getMoney + "を送って参りました。\n";
						}else{
							if(kahouOrShizai==0){
								//kahou
								addText = "家宝、" + kahouName + "を送って参りました。\n";
							}else{
								//shizai+
								addText = shigenName + "を" + addQty + "個送って参りました。\n";
							}
						}

						int maxReduceValue = 5;
						int nowYukoudo = gaikou.getMyGaikou(daimyoId);
						int newYukoudo = gaikou.downMyGaikou(daimyoId,nowYukoudo,maxReduceValue);
						int reduceYukoudo = nowYukoudo - newYukoudo;
						GameObject.Find ("YukouValue").GetComponent<Text> ().text = newYukoudo.ToString ();
						closeScript.yukoudo = newYukoudo;

						string reducceText = "友好度が" + reduceYukoudo + "下がりますぞ。";

						OKtext = OKtext + addText + reducceText;
						msg.makeMessage (OKtext);
						
					}else{
						//Failed
						int maxReduceValue = 10;
						int nowYukoudo = gaikou.getMyGaikou(daimyoId);
						int newYukoudo = gaikou.downMyGaikou(daimyoId,nowYukoudo,maxReduceValue);
						int reduceYukoudo = nowYukoudo - newYukoudo;
						GameObject.Find ("YukouValue").GetComponent<Text> ().text = newYukoudo.ToString ();
						closeScript.yukoudo = newYukoudo;

						//Message
						string NGtext = daimyoName + "に体よく断られ申した。\n友好度が" + reduceYukoudo +  "下がりますぞ。";
						msg.makeMessage (NGtext);
					}
					
					PlayerPrefs.Flush();
					
					//Back
					GameObject.Find ("return").GetComponent<MenuReturn> ().OnClick ();

				}

			} else {
				//Message
				string NGtext = "御屋形様、金が不足しておりますぞ。";
				msg.makeMessage (NGtext);
			
			}
		} else {
			//Message
			string NGtext = "御屋形様、兵糧が不足しておりますぞ。";
			msg.makeMessage (NGtext);
		}
	}
Exemple #2
0
    public void OnClick()
    {
        AudioSource[] audioSources = GameObject.Find("SEController").GetComponents <AudioSource> ();

        //Check
        if (GameObject.Find(key))
        {
            //OK

            int hyourou    = PlayerPrefs.GetInt("hyourou");
            int newHyourou = hyourou - 10;
            PlayerPrefs.SetInt("hyourou", newHyourou);
            GameObject.Find("HyourouCurrentValue").GetComponent <Text> ().text = newHyourou.ToString();

            //1.My Kuni is the biggiest ... 30%
            //2.My Yukoudo ... 50%
            //3.Other Yukoudo ... 20%
            float ratio = 0;

            //1
            bool myKuniQtyIsBiggestFlg = GameObject.Find("GameController").GetComponent <MainStageController> ().myKuniQtyIsBiggestFlg;
            if (myKuniQtyIsBiggestFlg)
            {
                ratio = 30;
            }

            //2
            Gaikou gaikou        = new Gaikou();
            int    myGaikouValue = gaikou.getMyGaikou(engunDaimyoId);
            ratio = ratio + (float)myGaikouValue / 2;

            //3
            int otherGaikouValue = gaikou.getOtherGaikouValue(engunDaimyoId, dfcDaimyoId);
            ratio = ratio + (float)otherGaikouValue / 5;

            float percent = UnityEngine.Random.value;
            percent = percent * 100;
            if (percent <= ratio)
            {
                //OK
                audioSources [3].Play();

                MainEventHandler mEvent   = new MainEventHandler();
                string           engunSts = engunDaimyoId + "-" + mEvent.getEngunSts(engunDaimyoId.ToString());
                int engunHei = mEvent.getEngunHei(engunSts);

                GameObject gunzei = GameObject.Find(key).gameObject;
                string     tmp    = gunzei.GetComponent <Gunzei>().dstEngunSts;

                //Set Param

                string        keyValue       = PlayerPrefs.GetString(key);
                List <string> keyValueList   = new List <string> ();
                char[]        delimiterChars = { ',' };
                if (keyValue.Contains(","))
                {
                    keyValueList = new List <string> (keyValue.Split(delimiterChars));
                }
                else
                {
                    keyValueList.Add(keyValue);
                }

                gunzei.GetComponent <Gunzei> ().dstEngunFlg = true;
                if (tmp != null && tmp != "")
                {
                    string newDstEngunSts = tmp + ":" + engunSts;
                    gunzei.GetComponent <Gunzei> ().dstEngunSts = newDstEngunSts;

                    string tmpEngunHei    = gunzei.GetComponent <Gunzei>().dstEngunHei;
                    string newDstEngunHei = tmpEngunHei + ":" + engunHei.ToString();
                    gunzei.GetComponent <Gunzei> ().dstEngunHei = newDstEngunHei;

                    string tmpDstEngunDaimyoId = gunzei.GetComponent <Gunzei>().dstEngunDaimyoId;
                    string newDstEngunDaimyoId = tmpDstEngunDaimyoId.ToString() + ":" + engunDaimyoId.ToString();
                    gunzei.GetComponent <Gunzei> ().dstEngunDaimyoId = newDstEngunDaimyoId;

                    //Set Data
                    keyValue = keyValueList[0] + "," + keyValueList[1] + "," + keyValueList[2] + "," + keyValueList[3] + "," + keyValueList[4] + "," + keyValueList[5] + "," + keyValueList[6] + "," + keyValueList[7] + "," + keyValueList[8] + "," + keyValueList[9] + "," + newDstEngunDaimyoId + "," + newDstEngunHei + "," + newDstEngunSts;
                }
                else
                {
                    gunzei.GetComponent <Gunzei> ().dstEngunSts      = engunSts;
                    gunzei.GetComponent <Gunzei> ().dstEngunHei      = engunHei.ToString();
                    gunzei.GetComponent <Gunzei> ().dstEngunDaimyoId = engunDaimyoId.ToString();

                    //Set Data
                    keyValue = keyValueList[0] + "," + keyValueList[1] + "," + keyValueList[2] + "," + keyValueList[3] + "," + keyValueList[4] + "," + keyValueList[5] + "," + keyValueList[6] + "," + keyValueList[7] + "," + keyValueList[8] + "," + true + "," + engunDaimyoId.ToString() + "," + engunHei.ToString() + "," + engunSts;
                }
                PlayerPrefs.SetString(key, keyValue);
                PlayerPrefs.Flush();


                //Return & Message
                GameObject.Find("bakuhuReturn").GetComponent <BakuhuMenuReturn>().OnClick();
                Message msg    = new Message();
                string  OKtext = "";
                if (Application.systemLanguage != SystemLanguage.Japanese)
                {
                    OKtext = engunDaimyoName + " sent " + engunHei.ToString() + " soldiers to \n" + kuniName + " to support.";
                }
                else
                {
                    OKtext = engunDaimyoName + "殿が" + engunHei.ToString() + "の兵を\n" + kuniName + "救援に差し向けましたぞ。";
                }
                msg.makeMessageOnBoard(OKtext);
            }
            else
            {
                //NG
                audioSources [4].Play();

                GameObject.Find("bakuhuReturn").GetComponent <BakuhuMenuReturn>().OnClick();
                int     newYukoudo   = gaikou.downMyGaikou(engunDaimyoId, myGaikouValue, 15);
                int     reducedValue = myGaikouValue - newYukoudo;
                Message msg          = new Message();
                string  NGtext       = "";
                if (Application.systemLanguage != SystemLanguage.Japanese)
                {
                    NGtext = engunDaimyoName + " declined our defence order. \n Friendship decreased " + reducedValue + " point.";
                }
                else
                {
                    NGtext = "援軍の儀、" + engunDaimyoName + "殿に断られ申した。\n当家との友好度が" + reducedValue + "下がります。";
                }
                DoGaikou doGaikou = new DoGaikou();
                doGaikou.downYukouOnIcon(engunDaimyoId, newYukoudo);
                msg.makeMessageOnBoard(NGtext);
            }
        }
        else
        {
            //NG
            audioSources [4].Play();
            GameObject.Find("bakuhuReturn").GetComponent <BakuhuMenuReturn>().OnClick();
            Message msg    = new Message();
            string  NGtext = "";
            if (Application.systemLanguage != SystemLanguage.Japanese)
            {
                NGtext = "My lord, it was too late. Battle already finished.";
            }
            else
            {
                NGtext = "御屋形様、既に勝敗は決してしまったようですぞ。";
            }
            msg.makeMessageOnBoard(NGtext);
            Destroy(slot.gameObject);
        }
    }
Exemple #3
0
	public void OnClick () {

		//Hyourou Check
		int nowHyourou = PlayerPrefs.GetInt ("hyourou");

		if(nowHyourou >=5 ){

			//Now on Kuni & Stage
			PlayerPrefs.SetInt("activeKuniId", activeKuniId);
			PlayerPrefs.SetInt("activeStageId", activeStageId);

			//What we can get
			PlayerPrefs.SetInt("activeStageMoney", activeStageMoney);
			PlayerPrefs.SetInt("activeStageExp", activeStageExp);
			PlayerPrefs.SetString("activeItemType", activeItemType);
			PlayerPrefs.SetInt("activeItemId", activeItemId);
			PlayerPrefs.SetFloat("activeItemRatio", activeItemRatio);
			PlayerPrefs.SetInt("activeItemQty", activeItemQty);

			//For Dramatic Enemy Creation
			PlayerPrefs.SetInt("activeDaimyoId", activeDaimyoId);
			PlayerPrefs.SetInt ("activeBusyoQty", activeBusyoQty);
			PlayerPrefs.SetInt ("activeBusyoLv", activeBusyoLv);
			PlayerPrefs.SetInt ("activeButaiQty", activeButaiQty);
			PlayerPrefs.SetInt ("activeButaiLv", activeButaiLv);

			//Hyourou
			int newHyourou = nowHyourou - 5;
			PlayerPrefs.SetInt("hyourou", newHyourou);

			//Gaikou
			int myDaimyo = PlayerPrefs.GetInt ("myDaimyo");
			Gaikou gaikou = new Gaikou ();
			gaikou.downGaikouByAttack (myDaimyo, activeDaimyoId);

			//Reverse Flag
			PlayerPrefs.DeleteKey ("isAttackedFlg");

			//Player Doumei Flg
			PlayerPrefs.DeleteKey("playerEngunList");

			//Enemy Doumei Handling
			string doumeiTemp = "doumei" + activeDaimyoId;
			string enemyDoumeiString = PlayerPrefs.GetString (doumeiTemp);
			char[] delimiterChars = {','};
			List<string> doumeiList = new List<string>();
			if(enemyDoumeiString != null && enemyDoumeiString !=""){
				if(enemyDoumeiString.Contains(",")){
					doumeiList = new List<string> (enemyDoumeiString.Split (delimiterChars));
				}else{
					doumeiList.Add(enemyDoumeiString);
				}
			}
			string seiryoku = PlayerPrefs.GetString ("seiryoku");
			List<string> seiryokuList = new List<string> ();
			seiryokuList = new List<string> (seiryoku.Split (delimiterChars));

			Doumei doumei = new Doumei();
			List<string> okDaimyoList = new List<string> ();
			List<string> checkedList = new List<string> ();
			string dstEngunDaimyoId = "";
			string dstEngunSts = ""; //BusyoId-BusyoLv-ButaiQty-ButaiLv:

			okDaimyoList = doumei.traceNeighborDaimyo(activeKuniId, activeDaimyoId, doumeiList, seiryokuList, checkedList, okDaimyoList);
			if(okDaimyoList.Count !=0){
				for(int k=0; k<okDaimyoList.Count; k++){
					string engunDaimyo = okDaimyoList[k];
					int yukoudo = gaikou.getExistGaikouValue(int.Parse(engunDaimyo), activeDaimyoId);
					
					//engun check
					MainEventHandler main = new MainEventHandler();
					bool dstEngunFlg = main.CheckByProbability (yukoudo);
					if(dstEngunFlg){
						//Engun OK
						dstEngunFlg = true;
						if(dstEngunDaimyoId !=null && dstEngunDaimyoId !=""){
							dstEngunDaimyoId = dstEngunDaimyoId + ":" + engunDaimyo;
							string tempEngunSts = main.getEngunSts(engunDaimyo);
							dstEngunSts = dstEngunSts + ":" + tempEngunSts;
							
						}else{
							dstEngunDaimyoId = engunDaimyo;
							string tempEngunSts = main.getEngunSts(engunDaimyo);
							dstEngunSts = tempEngunSts;
							
						}
					}
				}
				PlayerPrefs.SetString("enemyEngunList", dstEngunSts);

			}


			//Kyoutou Handling

			PlayerPrefs.DeleteKey("tempKyoutouList");
			string tempKyoutouList = "";

			char[] delimiterChars2 = {':'};
			char[] delimiterChars3 = {'-'};
			List<string> unitList = new List<string> ();
			string nextKyoutouList = "";
			string playerKyoutouList = PlayerPrefs.GetString("playerKyoutouList","");
			if(playerKyoutouList !=null && playerKyoutouList != ""){
				if(playerKyoutouList.Contains(":")){
					unitList = new List<string> (playerKyoutouList.Split (delimiterChars2));
				}else{
					unitList.Add(playerKyoutouList);
				}
				List<string> unit2List = new List<string> ();
				for(int i=0; i<unitList.Count; i++){
					string playerKyoutouList2 = unitList[i];
					unit2List = new List<string> (playerKyoutouList2.Split (delimiterChars3));

					string tempString = unit2List[1] + "-" + unit2List[2]+ "-" + unit2List[3]+ "-" + unit2List[4];
					if(unit2List[0] == activeKuniId.ToString()){
						if(tempKyoutouList != null && tempKyoutouList != ""){
							tempKyoutouList = tempKyoutouList + ":" + tempString;
						}else{
							tempKyoutouList = tempString;
						}
					}else{
						if(nextKyoutouList != "" && nextKyoutouList != null){
							nextKyoutouList = nextKyoutouList + ":" + tempString;
						}else{
							nextKyoutouList = tempString;
						}
					}
				}
			}

			PlayerPrefs.SetString("tempKyoutouList",tempKyoutouList);
			PlayerPrefs.SetString("playerKyoutouList",nextKyoutouList);

			PlayerPrefs.Flush();
			Application.LoadLevel("kassen");


		}else{

			//Error Message
			Message msg = new Message();
			string Text = "兵糧が不足しておりますぞ。";
			msg.makeMessageOnBoard(Text);

		}
	}
Exemple #4
0
    public void OnClick()
    {
        AudioSource[] audioSources = GameObject.Find("SEController").GetComponents <AudioSource> ();
        Message       msg          = new Message();

        if (!checkJinkeiAvailable())
        {
            audioSources[4].Play();
            msg.makeUpperMessageOnBoard(msg.getMessage(133));
        }
        else
        {
            //Hyourou Check
            int nowHyourou = PlayerPrefs.GetInt("hyourou");

            if (nowHyourou >= 5)
            {
                audioSources [5].Play();

                //Now on Kuni & Stage
                PlayerPrefs.SetInt("activeKuniId", activeKuniId);
                PlayerPrefs.SetInt("activeStageId", activeStageId);
                PlayerPrefs.SetString("activeStageName", activeStageName);

                //What we can get
                PlayerPrefs.SetInt("activeStageMoney", activeStageMoney);
                PlayerPrefs.SetInt("activeStageExp", activeStageExp);
                PlayerPrefs.SetString("activeItemGrp", activeItemGrp);
                PlayerPrefs.SetString("activeItemType", activeItemType);
                PlayerPrefs.SetInt("activeItemId", activeItemId);
                PlayerPrefs.SetInt("activeItemQty", activeItemQty);

                //For Dramatic Enemy Creation
                PlayerPrefs.SetInt("activeDaimyoId", activeDaimyoId);
                PlayerPrefs.SetInt("activeBusyoQty", activeBusyoQty);
                PlayerPrefs.SetInt("activeBusyoLv", activeBusyoLv);
                PlayerPrefs.SetInt("activeButaiQty", activeButaiQty);
                PlayerPrefs.SetInt("activeButaiLv", activeButaiLv);

                //Gaikou
                int    myDaimyo = PlayerPrefs.GetInt("myDaimyo");
                Gaikou gaikou   = new Gaikou();
                gaikou.downGaikouByAttack(myDaimyo, activeDaimyoId);

                //Reverse Flag
                PlayerPrefs.DeleteKey("isAttackedFlg");
                PlayerPrefs.DeleteKey("isKessenFlg");

                //Player Doumei Flg
                PlayerPrefs.DeleteKey("playerEngunList");

                //Enemy Doumei Handling
                PlayerPrefs.DeleteKey("enemyEngunList");
                string        doumeiTemp        = "doumei" + activeDaimyoId;
                string        enemyDoumeiString = PlayerPrefs.GetString(doumeiTemp);
                char[]        delimiterChars    = { ',' };
                List <string> doumeiList        = new List <string>();
                if (enemyDoumeiString != null && enemyDoumeiString != "")
                {
                    if (enemyDoumeiString.Contains(","))
                    {
                        doumeiList = new List <string> (enemyDoumeiString.Split(delimiterChars));
                    }
                    else
                    {
                        doumeiList.Add(enemyDoumeiString);
                    }
                }
                string        seiryoku     = PlayerPrefs.GetString("seiryoku");
                List <string> seiryokuList = new List <string> ();
                seiryokuList = new List <string> (seiryoku.Split(delimiterChars));

                Doumei        doumei           = new Doumei();
                List <string> okDaimyoList     = new List <string> ();
                List <string> checkedList      = new List <string> ();
                string        dstEngunDaimyoId = "";
                string        dstEngunSts      = ""; //BusyoId-BusyoLv-ButaiQty-ButaiLv:

                okDaimyoList = doumei.traceNeighborDaimyo(activeKuniId, activeDaimyoId, doumeiList, seiryokuList, checkedList, okDaimyoList);

                if (okDaimyoList.Count != 0)
                {
                    for (int k = 0; k < okDaimyoList.Count; k++)
                    {
                        string engunDaimyo = okDaimyoList[k];
                        int    yukoudo     = gaikou.getExistGaikouValue(int.Parse(engunDaimyo), activeDaimyoId);

                        //mydaimyo doumei check
                        bool myDoumeiFlg = false;
                        myDoumeiFlg = doumei.myDoumeiExistCheck(int.Parse(engunDaimyo));
                        if (myDoumeiFlg)
                        {
                            yukoudo = yukoudo / 2;
                        }

                        //engun check
                        MainEventHandler main        = new MainEventHandler();
                        bool             dstEngunFlg = main.CheckByProbability(yukoudo);
                        if (dstEngunFlg)
                        {
                            //Engun OK
                            dstEngunFlg = true;
                            if (dstEngunDaimyoId != null && dstEngunDaimyoId != "")
                            {
                                dstEngunDaimyoId = dstEngunDaimyoId + ":" + engunDaimyo;
                                string tempEngunSts = main.getEngunSts(engunDaimyo);
                                dstEngunSts = dstEngunSts + ":" + engunDaimyo + "-" + tempEngunSts;
                            }
                            else
                            {
                                dstEngunDaimyoId = engunDaimyo;
                                string tempEngunSts = main.getEngunSts(engunDaimyo);
                                dstEngunSts = engunDaimyo + "-" + tempEngunSts;
                            }
                        }
                    }
                    PlayerPrefs.SetString("enemyEngunList", dstEngunSts);
                }


                //Kyoutou Handling

                PlayerPrefs.DeleteKey("tempKyoutouList");
                string tempKyoutouList = "";

                char[]        delimiterChars2   = { ':' };
                char[]        delimiterChars3   = { '-' };
                List <string> unitList          = new List <string> ();
                string        nextKyoutouList   = "";
                string        playerKyoutouList = PlayerPrefs.GetString("playerKyoutouList", "");
                if (playerKyoutouList != null && playerKyoutouList != "")
                {
                    if (playerKyoutouList.Contains(":"))
                    {
                        unitList = new List <string> (playerKyoutouList.Split(delimiterChars2));
                    }
                    else
                    {
                        unitList.Add(playerKyoutouList);
                    }
                    List <string> unit2List = new List <string> ();
                    for (int i = 0; i < unitList.Count; i++)
                    {
                        string playerKyoutouList2 = unitList[i];
                        unit2List = new List <string> (playerKyoutouList2.Split(delimiterChars3));

                        string tempString = unit2List[0] + "-" + unit2List[1] + "-" + unit2List[2] + "-" + unit2List[3] + "-" + unit2List[4];
                        if (unit2List[0] == activeKuniId.ToString())
                        {
                            if (tempKyoutouList != null && tempKyoutouList != "")
                            {
                                tempKyoutouList = tempKyoutouList + ":" + tempString;
                            }
                            else
                            {
                                tempKyoutouList = tempString;
                            }
                        }
                        else
                        {
                            if (nextKyoutouList != "" && nextKyoutouList != null)
                            {
                                nextKyoutouList = nextKyoutouList + ":" + tempString;
                            }
                            else
                            {
                                nextKyoutouList = tempString;
                            }
                        }
                    }
                }

                PlayerPrefs.SetString("tempKyoutouList", tempKyoutouList);
                PlayerPrefs.SetString("playerKyoutouList", nextKyoutouList);


                //Power Keisu
                PlayerPrefs.DeleteKey("activeLink");
                PlayerPrefs.DeleteKey("activePowerType");
                PlayerPrefs.SetInt("activeLink", linkNo);

                //Power Type Config
                if (powerType == 1)
                {
                    int rdm = UnityEngine.Random.Range(0, 3); //1:happen, 0,2:not happen
                    if (rdm == 1)
                    {
                        powerType = 2;
                    }
                }
                else if (powerType == 2)
                {
                    int rdm = UnityEngine.Random.Range(0, 3); //1:happen, 0,2:not happen
                    if (rdm == 1)
                    {
                        powerType = 3;
                    }
                }



                PlayerPrefs.SetInt("activePowerType", powerType);

                PlayerPrefs.Flush();
                //Stop BGM
                GameObject.Find("BGMController").GetComponent <DontDestroySoundOnLoad> ().DestoryFlg = true;

                Stage stage      = new Stage();
                int   stageMapId = stage.getStageMap(activeKuniId, activeStageId);

                if (stageMapId != 4)
                {
                    Application.LoadLevel("preKassen");
                }
                else
                {
                    Application.LoadLevel("preKaisen");
                }
            }
            else
            {
                //Error Message
                audioSources [4].Play();

                msg.hyourouMovieMessage();
            }
        }
    }
Exemple #5
0
    // Use this for initialization
    public void OnClick()
    {
        Message    msg         = new Message();
        Gaikou     gaikou      = new Gaikou();
        CloseBoard closeScript = GameObject.Find("close").GetComponent <CloseBoard> ();

        daimyoId = closeScript.daimyoId;

        if (hyourouOKflg)
        {
            if (moneyOKflg)
            {
                //Track
                int TrackGaikouNo = PlayerPrefs.GetInt("TrackGaikouNo", 0);
                TrackGaikouNo = TrackGaikouNo + 1;
                PlayerPrefs.SetInt("TrackGaikouNo", TrackGaikouNo);


                if (name == "DoMitsugiBtn")
                {
                    string tempGaikou = "gaikou" + daimyoId;
                    int    nowYukoudo = 0;
                    if (PlayerPrefs.HasKey(tempGaikou))
                    {
                        nowYukoudo = PlayerPrefs.GetInt(tempGaikou);
                    }
                    else
                    {
                        nowYukoudo = 50;
                    }

                    float percent = UnityEngine.Random.value;
                    percent = percent * 100;
                    float tmpYukoudo = (float)nowYukoudo;
                    if (tmpYukoudo < 5)
                    {
                        tmpYukoudo = 5;
                    }

                    if (percent <= tmpYukoudo * 2)
                    {
                        //Success
                        audioSources[3].Play();
                        reduceMoneyHyourou();
                        addUsedBusyo(busyoId);

                        //Doumei
                        bool doumeiFlg = closeScript.doumeiFlg;

                        //Add Yukoudo
                        // AddYukoudo = (Money/200)*chiryaku/500
                        int addYukoudo = (paiedMoney / 200) + (busyoChiryaku / 100);
                        if (addYukoudo <= 0)
                        {
                            addYukoudo = 1;
                        }


                        if (doumeiFlg)
                        {
                            addYukoudo = addYukoudo * 2;
                        }


                        int newYukoudo = nowYukoudo + addYukoudo;
                        if (newYukoudo > 100)
                        {
                            newYukoudo = 100;
                        }
                        PlayerPrefs.SetInt(tempGaikou, newYukoudo);
                        GameObject.Find("YukouValue").GetComponent <Text> ().text = newYukoudo.ToString();

                        //Change new yukoudo
                        closeScript.yukoudo = newYukoudo;

                        //Message
                        string OKtext = "";
                        if (Application.systemLanguage != SystemLanguage.Japanese)
                        {
                            OKtext = "Gave money " + paiedMoney + " to " + daimyoName + ".\n Friendship increased " + addYukoudo + " point";
                        }
                        else
                        {
                            OKtext = daimyoName + "に金" + paiedMoney + "の貢物をしました。\n友好度が" + addYukoudo + "上がりますぞ。";
                        }
                        msg.makeMessage(OKtext);
                        PlayerPrefs.SetBool("questDailyFlg28", true);

                        PlayerPrefs.Flush();

                        //Extension Mark Handling
                        MainStageController main = new MainStageController();
                        main.questExtension();

                        upYukouOnIcon(daimyoId, newYukoudo);
                    }
                    else
                    {
                        //Fail
                        audioSources[4].Play();
                        paiedMoney = 0;
                        reduceMoneyHyourou();

                        //Message
                        string NGtext = "";
                        if (Application.systemLanguage != SystemLanguage.Japanese)
                        {
                            NGtext = daimyoName + " declined our money.\n He doesn't want to build a good relationship with us";
                        }
                        else
                        {
                            NGtext = daimyoName + "に貢物を体よく断られ申した。\n当家と関係を修復する気はないようですな。";
                        }
                        msg.makeMessage(NGtext);
                    }
                    //Back
                    GameObject.Find("return").GetComponent <MenuReturn> ().OnClick();
                }
                else if (name == "DoDoumeiBtn")
                {
                    reduceMoneyHyourou();

                    //Doumei
                    float percent = Random.value;
                    percent = percent * 100;

                    if (percent <= doumeiRatio)
                    {
                        //Doumei Success
                        audioSources [3].Play();

                        //Track
                        int TrackDoumeiNo = PlayerPrefs.GetInt("TrackDoumeiNo", 0);
                        TrackDoumeiNo = TrackDoumeiNo + 1;
                        PlayerPrefs.SetInt("TrackDoumeiNo", TrackDoumeiNo);


                        addUsedBusyo(busyoId);

                        string doumei = PlayerPrefs.GetString("doumei");
                        if (doumei == null || doumei == "")
                        {
                            doumei = daimyoId.ToString();
                        }
                        else
                        {
                            doumei = doumei + "," + daimyoId.ToString();
                        }

                        //Data
                        int    myDaimyo      = PlayerPrefs.GetInt("myDaimyo");
                        string cpuDoumeiTemp = "doumei" + daimyoId.ToString();
                        string cpuDoumei     = PlayerPrefs.GetString(cpuDoumeiTemp);
                        if (cpuDoumei != null & cpuDoumei != "")
                        {
                            cpuDoumei = cpuDoumei + "," + myDaimyo.ToString();
                        }
                        else
                        {
                            cpuDoumei = myDaimyo.ToString();
                        }
                        PlayerPrefs.SetString(cpuDoumeiTemp, cpuDoumei);
                        PlayerPrefs.SetString("doumei", doumei);

                        //Change Target Flg & Kuni Icon Color
                        string        seiryoku       = PlayerPrefs.GetString("seiryoku");
                        char[]        delimiterChars = { ',' };
                        List <string> seiryokuList   = new List <string> ();
                        seiryokuList = new List <string> (seiryoku.Split(delimiterChars));
                        GameObject KuniIconView = GameObject.Find("KuniIconView").gameObject;

                        Color doumeiColor = new Color(100f / 255f, 130f / 255f, 255f / 255f, 255f / 255f);                          //Blue
                        for (int i = 0; i < seiryokuList.Count; i++)
                        {
                            int tempDaimyoId = int.Parse(seiryokuList [i]);

                            if (tempDaimyoId == daimyoId)
                            {
                                int        kuniId   = i + 1;
                                GameObject kuniIcon = KuniIconView.transform.FindChild(kuniId.ToString()).gameObject;
                                kuniIcon.GetComponent <Image> ().color         = doumeiColor;
                                kuniIcon.GetComponent <SendParam> ().doumeiFlg = true;
                            }
                        }

                        PlayerPrefs.SetBool("questSpecialFlg2", true);
                        //Extension Mark Handling
                        MainStageController main = new MainStageController();
                        main.questExtension();

                        //Msg
                        string OKtext = "";
                        if (Application.systemLanguage != SystemLanguage.Japanese)
                        {
                            OKtext = "Congratulations.\n" + "We concluded an alliance with" + daimyoName + ".\n" + "we got some of strategic options.";
                        }
                        else
                        {
                            OKtext = "教悦至極にございます。" + daimyoName + "と同盟を結びましたぞ。\n" + "戦略の幅が広がりますな。";
                        }
                        msg.makeMessage(OKtext);

                        //If Gunzei Exist
                        foreach (GameObject obs in  GameObject.FindGameObjectsWithTag("Gunzei"))
                        {
                            int srcDaimyoId = obs.GetComponent <Gunzei>().srcDaimyoId;
                            int dstDaimyoId = obs.GetComponent <Gunzei>().dstDaimyoId;
                            if (srcDaimyoId == daimyoId && dstDaimyoId == myDaimyo)
                            {
                                Gunzei gunzeiScript = new Gunzei();
                                gunzeiScript.deleteGunzei(obs);
                            }
                        }


                        Destroy(GameObject.Find("smallBoard(Clone)"));
                        Destroy(GameObject.Find("TouchBack(Clone)"));
                    }
                    else
                    {
                        //Doumie Failed
                        audioSources [4].Play();

                        int maxReduceValue = 3;
                        int nowYukoudo     = gaikou.getMyGaikou(daimyoId);
                        int newYukoudo     = gaikou.downMyGaikou(daimyoId, nowYukoudo, maxReduceValue);
                        int reduceYukoudo  = nowYukoudo - newYukoudo;
                        closeScript.yukoudo = newYukoudo;

                        GameObject.Find("YukouValue").GetComponent <Text> ().text = newYukoudo.ToString();
                        string NGtext = "";
                        if (Application.systemLanguage != SystemLanguage.Japanese)
                        {
                            NGtext = daimyoName + " declined our proposal. \n" + "Friendship decreased " + reduceYukoudo + " point";
                        }
                        else
                        {
                            NGtext = daimyoName + "に体よく断られ申した。\n友好度が" + reduceYukoudo + "下がりますぞ。";
                        }
                        msg.makeMessage(NGtext);

                        downYukouOnIcon(daimyoId, newYukoudo);

                        //Back
                        GameObject.Find("return").GetComponent <MenuReturn> ().OnClick();
                    }

                    PlayerPrefs.Flush();
                }
                else if (name == "DoKyoutouBtn")
                {
                    reduceMoneyHyourou();

                    //Kyoutou Check
                    float percent = Random.value;
                    percent = percent * 100;
                    if (percent <= kyoutouRatio)
                    {
                        audioSources [3].Play();

                        //Success
                        addUsedBusyo(busyoId);

                        string           playerKyoutouList = PlayerPrefs.GetString("playerKyoutouList", "");
                        MainEventHandler kyoutou           = new MainEventHandler();
                        if (playerKyoutouList == null || playerKyoutouList == "")
                        {
                            playerKyoutouList = targetKuniId + "-" + kyoutou.getEngunSts(daimyoId.ToString());
                        }
                        else
                        {
                            playerKyoutouList = playerKyoutouList + ":" + +targetKuniId + "-" + kyoutou.getEngunSts(daimyoId.ToString());
                        }
                        PlayerPrefs.SetString("playerKyoutouList", playerKyoutouList);

                        //Msg
                        string OKtext = "";
                        if (Application.systemLanguage != SystemLanguage.Japanese)
                        {
                            OKtext = "Good. " + daimyoName + "will support our party in " + kuniName + " attack";
                        }
                        else
                        {
                            OKtext = daimyoName + "殿が" + kuniName + "攻めに\n加勢してくれますぞ。百人力ですな。";
                        }
                        msg.makeMessage(OKtext);
                    }
                    else
                    {
                        //Fail
                        audioSources [4].Play();

                        //Doumie Failed
                        int maxReduceValue = 3;
                        int nowYukoudo     = gaikou.getMyGaikou(daimyoId);
                        int newYukoudo     = gaikou.downMyGaikou(daimyoId, nowYukoudo, maxReduceValue);
                        int reduceYukoudo  = nowYukoudo - newYukoudo;
                        GameObject.Find("YukouValue").GetComponent <Text> ().text = newYukoudo.ToString();
                        closeScript.yukoudo = newYukoudo;

                        string NGtext = "";
                        if (Application.systemLanguage != SystemLanguage.Japanese)
                        {
                            NGtext = daimyoName + " declined our proposal. \n" + "Friendship decreased " + reduceYukoudo + " point";
                        }
                        else
                        {
                            NGtext = daimyoName + "に体よく断られ申した。\n友好度が" + reduceYukoudo + "下がりますぞ。";
                        }
                        msg.makeMessage(NGtext);

                        downYukouOnIcon(daimyoId, newYukoudo);
                    }

                    PlayerPrefs.Flush();

                    //Back
                    GameObject.Find("return").GetComponent <MenuReturn> ().OnClick();
                }
                else if (name == "DoDoukatsuBtn")
                {
                    reduceMoneyHyourou();

                    float percent = Random.value;
                    percent = percent * 100;

                    if (percent <= doukatsuRatio)
                    {
                        //Success
                        audioSources [3].Play();
                        addUsedBusyo(busyoId);

                        int kuniQty  = closeScript.kuniQty;
                        int getMoney = 0;
                        //Money or Item 0:money, 1:item
                        int moneyOrItem = UnityEngine.Random.Range(0, 2);
                        //Kahou or Shizai 0:kahou, 1:shizai
                        int    kahouOrShizai = UnityEngine.Random.Range(0, 2);
                        string kahouName     = "";
                        string shigenName    = "";
                        int    addQty        = 0;
                        int    kahouRank     = 0;                  //kahouRank S,A,B,C=1,2,3,4
                        //shigen Type
                        int shigenType = 0;                        //KB,YR,TP,YM=1,2,3,4

                        if (moneyOrItem == 0)
                        {
                            //money
                            int temGetMoney = UnityEngine.Random.Range(1000, 1501);
                            getMoney = temGetMoney * kuniQty;
                            int nowMoney = PlayerPrefs.GetInt("money");
                            nowMoney = nowMoney + getMoney;
                            if (nowMoney < 0)
                            {
                                nowMoney = int.MaxValue;
                            }
                            PlayerPrefs.SetInt("money", nowMoney);
                            PlayerPrefs.Flush();
                        }
                        else
                        {
                            //item
                            //Kahou or Shizai 0:kahou, 1:shizai
                            kahouOrShizai = UnityEngine.Random.Range(0, 2);
                            if (kahouOrShizai == 0)
                            {
                                //kahou
                                Kahou kahou = new Kahou();
                                ////Bugu, Gusoku, Kabuto, Meiba, Heihousyo, Cyadougu, Chishikisyo(1,2,3,4,5,6)
                                int kahouType = UnityEngine.Random.Range(1, 7);

                                float khPercent = Random.value;
                                khPercent = khPercent * 100;
                                if (5 <= kuniQty)
                                {
                                    if (khPercent <= 1)
                                    {
                                        //S
                                        kahouRank = 1;
                                        kahouName = kahou.getRamdomKahou(kahouType, kahouRank);
                                    }
                                    else if (1 < khPercent && khPercent <= 30)
                                    {
                                        //A
                                        kahouRank = 2;
                                        kahouName = kahou.getRamdomKahou(kahouType, kahouRank);
                                    }
                                    else if (30 < khPercent)
                                    {
                                        //B
                                        kahouRank = 3;
                                        kahouName = kahou.getRamdomKahou(kahouType, kahouRank);
                                    }
                                }
                                else if (3 <= kuniQty && kuniQty < 5)
                                {
                                    if (khPercent <= 0.5f)
                                    {
                                        //S
                                        kahouRank = 1;
                                        kahouName = kahou.getRamdomKahou(kahouType, kahouRank);
                                    }
                                    else if (0.5f < khPercent && khPercent <= 10)
                                    {
                                        //A
                                        kahouRank = 2;
                                        kahouName = kahou.getRamdomKahou(kahouType, kahouRank);
                                    }
                                    else if (10 < khPercent && khPercent <= 40)
                                    {
                                        //B
                                        kahouRank = 3;
                                        kahouName = kahou.getRamdomKahou(kahouType, kahouRank);
                                    }
                                    else if (40 < khPercent)
                                    {
                                        //C
                                        kahouRank = 4;
                                        kahouName = kahou.getRamdomKahou(kahouType, kahouRank);
                                    }
                                }
                                else if (kuniQty < 3)
                                {
                                    //(A,B,C : 5, 35, 60%)
                                    if (khPercent <= 3)
                                    {
                                        //A
                                        kahouRank = 2;
                                        kahouName = kahou.getRamdomKahou(kahouType, kahouRank);
                                    }
                                    else if (3 < khPercent && khPercent <= 31)
                                    {
                                        //B
                                        kahouRank = 3;
                                        kahouName = kahou.getRamdomKahou(kahouType, kahouRank);
                                    }
                                    else if (31 < khPercent)
                                    {
                                        //C
                                        kahouRank = 3;
                                        kahouName = kahou.getRamdomKahou(kahouType, kahouRank);
                                    }
                                }
                            }
                            else
                            {
                                //shizai
                                shigenType = UnityEngine.Random.Range(1, 5);
                                float sgPercent = Random.value;
                                sgPercent = sgPercent * 100;
                                addQty    = UnityEngine.Random.Range(1, 6);
                                Item item       = new Item();
                                int  shigenRank = 0;                               //下、中、上=1,2,3

                                if (5 <= kuniQty)
                                {
                                    //(上,中,下  40,40, 20%)
                                    if (sgPercent <= 40)
                                    {
                                        shigenRank = 3;
                                    }
                                    else if (40 < sgPercent && sgPercent <= 81)
                                    {
                                        shigenRank = 2;
                                    }
                                    else if (81 < sgPercent)
                                    {
                                        shigenRank = 1;
                                    }
                                    shigenName = item.getRandomShigen(shigenType, shigenRank, addQty);
                                }
                                else if (3 <= kuniQty && kuniQty < 5)
                                {
                                    //(上,中,下  20,50,30%)
                                    if (sgPercent <= 20)
                                    {
                                        shigenRank = 3;
                                    }
                                    else if (20 < sgPercent && sgPercent <= 51)
                                    {
                                        shigenRank = 2;
                                    }
                                    else if (51 < sgPercent)
                                    {
                                        shigenRank = 1;
                                    }
                                    shigenName = item.getRandomShigen(shigenType, shigenRank, addQty);
                                }
                                else if (kuniQty < 3)
                                {
                                    //(上,中,下  5,25,70%)
                                    if (sgPercent <= 5)
                                    {
                                        shigenRank = 3;
                                    }
                                    else if (5 < sgPercent && sgPercent <= 26)
                                    {
                                        shigenRank = 2;
                                    }
                                    else if (26 < sgPercent)
                                    {
                                        shigenRank = 1;
                                    }
                                    shigenName = item.getRandomShigen(shigenType, shigenRank, addQty);
                                }
                            }
                        }


                        //Message
                        PlayerPrefs.SetBool("questDailyFlg29", true);
                        //Extension Mark Handling
                        MainStageController main = new MainStageController();
                        main.questExtension();
                        string OKtext = "";
                        if (Application.systemLanguage != SystemLanguage.Japanese)
                        {
                            OKtext = "My lord, successed to threat " + daimyoName;
                        }
                        else
                        {
                            OKtext = "御屋形様、恫喝に成功しましたぞ。\n" + daimyoName + "が";
                        }
                        string addText = "";
                        if (moneyOrItem == 0)
                        {
                            if (Application.systemLanguage != SystemLanguage.Japanese)
                            {
                                addText = " gave money " + getMoney + "to us.\n";
                            }
                            else
                            {
                                addText = "金" + getMoney + "を送って参りました。\n";
                            }
                        }
                        else
                        {
                            if (kahouOrShizai == 0)
                            {
                                //kahou
                                if (Application.systemLanguage != SystemLanguage.Japanese)
                                {
                                    addText = " gave treasure " + kahouName + "to us.\n";
                                }
                                else
                                {
                                    addText = "家宝、" + kahouName + "を送って参りました。\n";
                                }
                            }
                            else
                            {
                                //shizai+
                                if (Application.systemLanguage != SystemLanguage.Japanese)
                                {
                                    addText = " gave " + addQty + " " + shigenName + " to us.\n";
                                }
                                else
                                {
                                    addText = shigenName + "を" + addQty + "個送って参りました。\n";
                                }
                            }
                        }

                        int maxReduceValue = 5;
                        int nowYukoudo     = gaikou.getMyGaikou(daimyoId);
                        int newYukoudo     = gaikou.downMyGaikou(daimyoId, nowYukoudo, maxReduceValue);
                        int reduceYukoudo  = nowYukoudo - newYukoudo;
                        GameObject.Find("YukouValue").GetComponent <Text> ().text = newYukoudo.ToString();
                        closeScript.yukoudo = newYukoudo;
                        string reducceText = "";
                        if (Application.systemLanguage != SystemLanguage.Japanese)
                        {
                            reducceText = "Friendship decreased " + reduceYukoudo + " point";
                        }
                        else
                        {
                            reducceText = "友好度が" + reduceYukoudo + "下がりますぞ。";
                        }


                        OKtext = OKtext + addText + reducceText;
                        msg.makeMessage(OKtext);

                        downYukouOnIcon(daimyoId, newYukoudo);
                    }
                    else
                    {
                        //Failed
                        audioSources [4].Play();

                        int maxReduceValue = 10;
                        int nowYukoudo     = gaikou.getMyGaikou(daimyoId);
                        int newYukoudo     = gaikou.downMyGaikou(daimyoId, nowYukoudo, maxReduceValue);
                        int reduceYukoudo  = nowYukoudo - newYukoudo;
                        GameObject.Find("YukouValue").GetComponent <Text> ().text = newYukoudo.ToString();
                        closeScript.yukoudo = newYukoudo;

                        //Message
                        string NGtext = "";
                        if (Application.systemLanguage != SystemLanguage.Japanese)
                        {
                            NGtext = daimyoName + " declined our proposal. \n" + "Friendship decreased " + reduceYukoudo + " point";
                        }
                        else
                        {
                            NGtext = daimyoName + "に体よく断られ申した。\n友好度が" + reduceYukoudo + "下がりますぞ。";
                        }
                        msg.makeMessage(NGtext);

                        downYukouOnIcon(daimyoId, newYukoudo);
                    }

                    PlayerPrefs.Flush();

                    //Back
                    GameObject.Find("return").GetComponent <MenuReturn> ().OnClick();
                }
                else if (name == "DoSyuppeiBtn")
                {
                    reduceMoneyHyourou();

                    //Syuppei Check
                    float percent = Random.value;
                    percent = percent * 100;
                    if (percent <= kyoutouRatio)
                    {
                        audioSources [3].Play();

                        //Success
                        //Track
                        int TrackSyuppeiNo = PlayerPrefs.GetInt("TrackSyuppeiNo", 0);
                        TrackSyuppeiNo = TrackSyuppeiNo + 1;
                        PlayerPrefs.SetInt("TrackSyuppeiNo", TrackSyuppeiNo);


                        //Success
                        addUsedBusyo(busyoId);

                        //Process
                        string     path   = "Prefabs/Map/Gunzei";
                        GameObject Gunzei = Instantiate(Resources.Load(path)) as GameObject;
                        Gunzei.transform.SetParent(GameObject.Find("Panel").transform);
                        Gunzei.transform.localScale = new Vector2(1, 1);

                        //Location
                        KuniInfo kuni      = new KuniInfo();
                        int      srcX      = kuni.getKuniLocationX(srcKuniId);
                        int      srcY      = kuni.getKuniLocationY(srcKuniId);
                        int      dstX      = kuni.getKuniLocationX(targetKuniId);
                        int      dstY      = kuni.getKuniLocationY(targetKuniId);
                        string   direction = "";
                        Gunzei   gunzei    = new Gunzei();

                        if (srcX < dstX)
                        {
                            Gunzei.transform.localScale = new Vector2(1, 1);
                            direction = "right";
                        }
                        else
                        {
                            Gunzei.transform.localScale = new Vector2(-1, 1);
                            direction = "left";
                            Gunzei.GetComponent <Gunzei> ().leftFlg = true;
                        }

                        int           aveX            = (srcX + dstX) / 2;
                        int           aveY            = (srcY + dstY) / 2;
                        RectTransform GunzeiTransform = Gunzei.GetComponent <RectTransform> ();
                        GunzeiTransform.anchoredPosition = new Vector3(aveX, aveY, 0);

                        string key = srcKuniId.ToString() + "-" + targetKuniId.ToString();
                        Gunzei.GetComponent <Gunzei> ().key           = key;
                        Gunzei.GetComponent <Gunzei> ().srcKuni       = srcKuniId;
                        Gunzei.GetComponent <Gunzei> ().srcDaimyoId   = srcDaimyoId;
                        Gunzei.GetComponent <Gunzei> ().srcDaimyoName = srcDaimyoName;
                        Gunzei.GetComponent <Gunzei> ().dstKuni       = targetKuniId;
                        Gunzei.GetComponent <Gunzei> ().dstDaimyoId   = targetDaimyoId;
                        Gunzei.GetComponent <Gunzei> ().dstDaimyoName = targetDaimyoName;
                        int myHei = gunzei.heiryokuCalc(srcKuniId);

                        //random myHei from -50%-myHeis
                        List <float> randomPercent = new List <float> {
                            0.8f, 0.9f, 1.0f
                        };
                        int   rmd = UnityEngine.Random.Range(0, randomPercent.Count);
                        float per = randomPercent [rmd];
                        myHei = Mathf.CeilToInt(myHei * per);

                        Gunzei.GetComponent <Gunzei> ().myHei = myHei;
                        Gunzei.name = key;

                        //Engun from Doumei
                        Doumei        doumei           = new Doumei();
                        List <string> doumeiDaimyoList = doumei.doumeiExistCheck(targetDaimyoId, srcDaimyoId.ToString());
                        bool          dstEngunFlg      = false;
                        string        dstEngunDaimyoId = "";             //2:3:5
                        string        dstEngunHei      = "";
                        string        dstEngunSts      = "";             //BusyoId-BusyoLv-ButaiQty-ButaiLv:
                        int           totalEngunHei    = 0;

                        string        seiryoku       = PlayerPrefs.GetString("seiryoku");
                        char[]        delimiterChars = { ',' };
                        List <string> seiryokuList   = new List <string>();
                        seiryokuList = new List <string> (seiryoku.Split(delimiterChars));


                        //Trace Check
                        List <string> okDaimyoList = new List <string> ();
                        List <string> checkList    = new List <string> ();
                        okDaimyoList = doumei.traceNeighborDaimyo(targetKuniId, targetDaimyoId, doumeiDaimyoList, seiryokuList, checkList, okDaimyoList);

                        if (okDaimyoList.Count != 0)
                        {
                            //Doumei & Neghbor Daimyo Exist

                            for (int k = 0; k < okDaimyoList.Count; k++)
                            {
                                string engunDaimyo = okDaimyoList[k];
                                int    yukoudo     = gaikou.getExistGaikouValue(int.Parse(engunDaimyo), targetDaimyoId);

                                //engun check
                                MainEventHandler mainEvent = new MainEventHandler();
                                dstEngunFlg = mainEvent.CheckByProbability(yukoudo);

                                if (dstEngunFlg)
                                {
                                    //Engun OK
                                    dstEngunFlg = true;
                                    if (dstEngunDaimyoId != null && dstEngunDaimyoId != "")
                                    {
                                        dstEngunDaimyoId = dstEngunDaimyoId + ":" + engunDaimyo;
                                        string tempEngunSts = engunDaimyo + "-" + mainEvent.getEngunSts(engunDaimyo);
                                        int    tempEngunHei = mainEvent.getEngunHei(tempEngunSts);
                                        dstEngunHei   = dstEngunHei + ":" + tempEngunHei.ToString();
                                        totalEngunHei = totalEngunHei + tempEngunHei;
                                        dstEngunSts   = dstEngunSts + ":" + tempEngunSts;
                                    }
                                    else
                                    {
                                        dstEngunDaimyoId = engunDaimyo;
                                        string tempEngunSts = engunDaimyo + "-" + mainEvent.getEngunSts(engunDaimyo);
                                        int    tempEngunHei = mainEvent.getEngunHei(tempEngunSts);
                                        dstEngunHei   = tempEngunHei.ToString();
                                        totalEngunHei = tempEngunHei;
                                        dstEngunSts   = tempEngunSts;
                                    }
                                }
                            }
                            Gunzei.GetComponent <Gunzei> ().dstEngunFlg      = dstEngunFlg;
                            Gunzei.GetComponent <Gunzei> ().dstEngunDaimyoId = dstEngunDaimyoId;
                            Gunzei.GetComponent <Gunzei> ().dstEngunHei      = dstEngunHei;
                            Gunzei.GetComponent <Gunzei> ().dstEngunSts      = dstEngunSts;
                        }

                        //Set Value
                        //CreateTime,srcDaimyoId,dstDaimyoId,srcDaimyoName,dstDaimyoName, srcHei,locationX,locationY,left or right, engunFlg, engunDaimyoId(A:B:C), dstEngunHei(1000:2000:3000), dstEngunSts
                        string keyValue   = "";
                        string createTime = System.DateTime.Now.ToString();
                        keyValue = createTime + "," + srcDaimyoId + "," + targetDaimyoId + "," + srcDaimyoName + "," + targetDaimyoName + "," + myHei + "," + aveX + "," + aveY + "," + direction + "," + dstEngunFlg + "," + dstEngunDaimyoId + "," + dstEngunHei + "," + dstEngunSts;
                        PlayerPrefs.SetString(key, keyValue);
                        string keyHistory = PlayerPrefs.GetString("keyHistory");
                        if (keyHistory == null || keyHistory == "")
                        {
                            keyHistory = key;
                        }
                        else
                        {
                            keyHistory = keyHistory + "," + key;
                        }
                        PlayerPrefs.SetString("keyHistory", keyHistory);


                        //Msg
                        string OKtext = "";
                        if (Application.systemLanguage != SystemLanguage.Japanese)
                        {
                            OKtext = "Lord " + daimyoName + " is sending " + myHei + " soldiers to " + kuniName;
                        }
                        else
                        {
                            OKtext = daimyoName + "殿が" + kuniName + "攻めのため、\n" + myHei + "人の兵を起こしましたぞ。";
                        }

                        string AddText = "";
                        if (totalEngunHei != 0)
                        {
                            if (Application.systemLanguage != SystemLanguage.Japanese)
                            {
                                AddText = targetDaimyoName + " has a support army " + totalEngunHei + " soldiers";
                            }
                            else
                            {
                                AddText = targetDaimyoName + "に" + totalEngunHei + "の援軍がいるようです。";
                            }

                            OKtext = OKtext + "\n" + AddText;
                        }
                        msg.makeMessage(OKtext);
                    }
                    else
                    {
                        //Fail
                        audioSources [4].Play();

                        int maxReduceValue = 3;
                        int nowYukoudo     = gaikou.getMyGaikou(daimyoId);
                        int newYukoudo     = gaikou.downMyGaikou(daimyoId, nowYukoudo, maxReduceValue);
                        int reduceYukoudo  = nowYukoudo - newYukoudo;
                        GameObject.Find("YukouValue").GetComponent <Text> ().text = newYukoudo.ToString();
                        closeScript.yukoudo = newYukoudo;

                        string NGtext = "";
                        if (Application.systemLanguage != SystemLanguage.Japanese)
                        {
                            NGtext = daimyoName + " declined our proposal. \n" + "Friendship decreased " + reduceYukoudo + " point";
                        }
                        else
                        {
                            NGtext = daimyoName + "に体よく断られ申した。\n友好度が" + reduceYukoudo + "下がりますぞ。";
                        }
                        msg.makeMessage(NGtext);

                        downYukouOnIcon(daimyoId, newYukoudo);
                    }

                    PlayerPrefs.Flush();

                    //Back
                    GameObject.Find("return").GetComponent <MenuReturn> ().OnClick();
                }
            }
            else
            {
                //Message
                audioSources [4].Play();

                string NGtext = msg.getMessage(6);
                msg.makeMessage(NGtext);
            }
        }
        else
        {
            //Message
            audioSources [4].Play();

            //string NGtext = msg.getMessage(7);
            //msg.makeMessage (NGtext);
            msg.hyourouMovieMessage();
        }
    }
Exemple #6
0
    public void OnClick()
    {
        audioSources = GameObject.Find("SEController").GetComponents <AudioSource> ();
        audioSources [5].Play();

        //Hyourou
        int hyourou    = PlayerPrefs.GetInt("hyourou");
        int newHyourou = hyourou - 10;

        PlayerPrefs.SetInt("hyourou", newHyourou);
        GameObject.Find("HyourouCurrentValue").GetComponent <Text> ().text = newHyourou.ToString();

        //Track
        int TrackToubatsuNo = PlayerPrefs.GetInt("TrackToubatsuNo", 0);

        TrackToubatsuNo = TrackToubatsuNo + 1;
        PlayerPrefs.SetInt("TrackToubatsuNo", TrackToubatsuNo);

        MainStageController script = GameObject.Find("GameController").GetComponent <MainStageController> ();

        myKuniQty             = script.myKuniQty;
        myDaimyo              = script.myDaimyo;
        myKuniQtyIsBiggestFlg = GameObject.Find("bakuhuReturn").GetComponent <BakuhuMenuReturn> ().myKuniQtyIsBiggestFlg;
        List <string> messageList = new List <string> ();

        //reduce yukoudo
        Gaikou   gaikou   = new Gaikou();
        DoGaikou doGaikou = new DoGaikou();
        int      myGaikouValueWithTarget = gaikou.getMyGaikou(targetDaimyoId);
        int      newYukoudoWithTarget    = gaikou.downMyGaikou(targetDaimyoId, myGaikouValueWithTarget, 50);
        int      reducedValueWithTarget  = myGaikouValueWithTarget - newYukoudoWithTarget;
        string   firstKassenText         = "";

        if (Application.systemLanguage != SystemLanguage.Japanese)
        {
            firstKassenText = "Declared " + targetDaimyoName + " attack order. \n Friendship reduced " + reducedValueWithTarget + " point.";
        }
        else
        {
            firstKassenText = targetDaimyoName + "討伐を宣言しました。\n当家との友好度が" + reducedValueWithTarget + "下がります。";
        }
        doGaikou.downYukouOnIcon(targetDaimyoId, newYukoudoWithTarget);
        messageList.Add(firstKassenText);

        //doumei check
        Doumei   doumei         = new Doumei();
        KuniInfo kuni           = new KuniInfo();
        bool     doumeiExistFlg = doumei.myDoumeiExistCheck(targetDaimyoId);

        if (doumeiExistFlg)
        {
            doumei.deleteDoumei(myDaimyo.ToString(), targetDaimyoId.ToString());

            //Change Map & Yukoudo
            kuni.deleteDoumeiKuniIcon(targetDaimyoId);
        }
        PlayerPrefs.Flush();


        //Listup Target kuni Id
        string        seiryoku     = PlayerPrefs.GetString("seiryoku");
        List <string> seiryokuList = new List <string> ();

        char[] delimiterChars = { ',' };
        seiryokuList = new List <string> (seiryoku.Split(delimiterChars));
        List <int> targetKuniList = new List <int> ();

        for (int i = 0; i < seiryokuList.Count; i++)
        {
            if (int.Parse(seiryokuList [i]) == targetDaimyoId)
            {
                int kuniId = i + 1;
                targetKuniList.Add(kuniId);
            }
        }

        //Listup Available Open kuni
        List <string>           srcDstKuniList = new List <string> ();
        Entity_kuni_mapping_mst kuniMapMst     = Resources.Load("Data/kuni_mapping_mst") as Entity_kuni_mapping_mst;

        for (int j = 0; j < targetKuniList.Count; j++)
        {
            int tmpTargetKuniId = targetKuniList [j];

            for (int i = 0; i < kuniMapMst.param.Count; i++)
            {
                int temClearedKuniId = kuniMapMst.param[i].Souce;
                if (temClearedKuniId == tmpTargetKuniId)
                {
                    int openKuniId = kuniMapMst.param [i].Open;

                    if (int.Parse(seiryokuList [openKuniId - 1]) != targetDaimyoId &&
                        int.Parse(seiryokuList [openKuniId - 1]) != myDaimyo)
                    {
                        srcDstKuniList.Add(openKuniId.ToString() + "-" + tmpTargetKuniId.ToString());
                    }
                }
            }
        }

        //Shuffule
        for (int i = 0; i < srcDstKuniList.Count; i++)
        {
            string temp        = srcDstKuniList[i];
            int    randomIndex = Random.Range(i, srcDstKuniList.Count);
            srcDstKuniList[i]           = srcDstKuniList[randomIndex];
            srcDstKuniList[randomIndex] = temp;
        }

        /*Condition of succesful*/
        //1. number of own kuni is more thab twice as number as target ... 20%
        //2. number of own kuni is the largest ... 30%
        //3. relathionship btwn my party and src kuni is 100% ... 20%
        //4. relathionship btwn the other countiries each other is 0% ... 20%
        //5. attacker keep kuni number more than country receiving attack ... 10%

        //1.
        if (myKuniQty > 2 * kuniQty)
        {
            baseRatio = 20;
        }

        //2.
        if (myKuniQtyIsBiggestFlg)
        {
            baseRatio = baseRatio + 30;
        }

        //Make Gunzei
        char[]           delimiterChars2    = { '-' };
        GameObject       BakuhuKuniIconView = GameObject.Find("BakuhuKuniIconView").gameObject;
        string           path              = "Prefabs/Map/Gunzei";
        string           visualizePath     = "Prefabs/Bakuhu/ToubatsuSrcBusyo";
        GameObject       panel             = GameObject.Find("Panel").gameObject;
        Gunzei           gunzei            = new Gunzei();
        Daimyo           daimyo            = new Daimyo();
        MainEventHandler mEvent            = new MainEventHandler();
        List <int>       doneSrcDaimyoList = new List <int> ();

        for (int k = 0; k < srcDstKuniList.Count; k++)
        {
            float indvRatio = 0;

            string        key        = srcDstKuniList[k];
            List <string> srcDstList = new List <string> ();
            srcDstList = new List <string> (key.Split(delimiterChars2));

            //3
            int srcKuniId = int.Parse(srcDstList[0]);
            int srcDaimyo = int.Parse(seiryokuList[srcKuniId - 1]);

            if (!doneSrcDaimyoList.Contains(srcDaimyo))
            {
                doneSrcDaimyoList.Add(srcDaimyo);
                bool ExistFlg = false;
                foreach (GameObject obs in  GameObject.FindGameObjectsWithTag("Gunzei"))
                {
                    int gunzeiSrcDaimyoId = obs.GetComponent <Gunzei>().srcDaimyoId;

                    if (srcDaimyo == gunzeiSrcDaimyoId)
                    {
                        ExistFlg = true;
                    }
                }

                if (!ExistFlg)
                {
                    int myGaikouValue = gaikou.getMyGaikou(srcDaimyo);
                    indvRatio = baseRatio + (float)myGaikouValue / 5;

                    //4.
                    int dstKuniId        = int.Parse(srcDstList [1]);
                    int dstDaimyo        = int.Parse(seiryokuList [dstKuniId - 1]);
                    int otherGaikouValue = gaikou.getOtherGaikouValue(srcDaimyo, dstDaimyo);
                    indvRatio = indvRatio + (float)((100 - otherGaikouValue) / 5);

                    //5.
                    int   srcKuniQty = BakuhuKuniIconView.transform.FindChild(srcDstList [0]).GetComponent <SendParam> ().kuniQty;
                    float addRatio   = 0;
                    if (srcKuniQty >= kuniQty)
                    {
                        addRatio  = 10;
                        indvRatio = indvRatio + addRatio;
                    }

                    //Success Check
                    float percent = UnityEngine.Random.value;
                    percent = percent * 100;
                    if (percent <= indvRatio)
                    {
                        //OK
                        toubatsuFlg = true;
                        GameObject Gunzei = Instantiate(Resources.Load(path)) as GameObject;
                        Gunzei.transform.SetParent(panel.transform);
                        Gunzei.transform.localScale = new Vector2(1, 1);

                        GameObject minGunzei = Instantiate(Resources.Load(visualizePath)) as GameObject;
                        minGunzei.transform.SetParent(BakuhuKuniIconView.transform);
                        int    daimyoBusyoId = daimyo.getDaimyoBusyoId(srcDaimyo);
                        string daimyoPath    = "Prefabs/Player/Sprite/unit" + daimyoBusyoId.ToString();
                        minGunzei.GetComponent <SpriteRenderer> ().sprite =
                            Resources.Load(daimyoPath, typeof(Sprite)) as Sprite;

                        //Location
                        int    srcX      = kuni.getKuniLocationX(srcKuniId);
                        int    srcY      = kuni.getKuniLocationY(srcKuniId);
                        int    dstX      = kuni.getKuniLocationX(dstKuniId);
                        int    dstY      = kuni.getKuniLocationY(dstKuniId);
                        string direction = "";

                        if (srcX < dstX)
                        {
                            Gunzei.transform.localScale    = new Vector2(1, 1);
                            minGunzei.transform.localScale = new Vector2(60, 72);
                            direction = "right";
                        }
                        else
                        {
                            Gunzei.transform.localScale    = new Vector2(-1, 1);
                            minGunzei.transform.localScale = new Vector2(-60, 72);
                            direction = "left";
                            Gunzei.GetComponent <Gunzei> ().leftFlg = true;
                        }

                        int           aveX            = (srcX + dstX) / 2;
                        int           aveY            = (srcY + dstY) / 2;
                        RectTransform GunzeiTransform = Gunzei.GetComponent <RectTransform> ();
                        GunzeiTransform.anchoredPosition = new Vector3(aveX, aveY, 0);

                        RectTransform minGunzeiTransform = minGunzei.GetComponent <RectTransform> ();
                        float         minAveX            = (float)aveX * 0.8f;
                        float         minAveY            = (float)aveY * 0.65f;
                        minGunzeiTransform.anchoredPosition = new Vector3((int)minAveX, (int)minAveY, 0);


                        Gunzei.GetComponent <Gunzei> ().key         = key;
                        Gunzei.GetComponent <Gunzei> ().srcKuni     = srcKuniId;
                        Gunzei.GetComponent <Gunzei> ().srcDaimyoId = srcDaimyo;
                        string srcDaimyoName = daimyo.getName(srcDaimyo);
                        Gunzei.GetComponent <Gunzei> ().srcDaimyoName = srcDaimyoName;
                        Gunzei.GetComponent <Gunzei> ().dstKuni       = dstKuniId;
                        Gunzei.GetComponent <Gunzei> ().dstDaimyoId   = dstDaimyo;
                        string dstDaimyoName = daimyo.getName(dstDaimyo);
                        Gunzei.GetComponent <Gunzei> ().dstDaimyoName = dstDaimyoName;
                        int myHei = gunzei.heiryokuCalc(srcKuniId);

                        //random myHei from -50%-myHei
                        List <float> randomPercent = new List <float> {
                            0.8f, 0.9f, 1.0f
                        };
                        int   rmd = UnityEngine.Random.Range(0, randomPercent.Count);
                        float per = randomPercent [rmd];
                        myHei = Mathf.CeilToInt(myHei * per);

                        Gunzei.GetComponent <Gunzei> ().myHei = myHei;
                        Gunzei.name = key;

                        //Engun from Doumei
                        List <string> doumeiDaimyoList = new List <string> ();
                        bool          dstEngunFlg      = false;
                        string        dstEngunDaimyoId = "";             //2:3:5
                        string        dstEngunHei      = "";
                        string        dstEngunSts      = "";             //BusyoId-BusyoLv-ButaiQty-ButaiLv:
                        int           totalEngunHei    = 0;

                        //Doumei Check
                        doumeiDaimyoList = doumei.doumeiExistCheck(dstDaimyo, srcDaimyo.ToString());
                        string doumeiCheck = "doumei" + srcDaimyo;
                        if (PlayerPrefs.HasKey(doumeiCheck))
                        {
                            string        cDoumei     = PlayerPrefs.GetString(doumeiCheck);
                            List <string> cDoumeiList = new List <string>();
                            if (cDoumei.Contains(","))
                            {
                                cDoumeiList = new List <string> (cDoumei.Split(delimiterChars));
                            }
                            else
                            {
                                cDoumeiList.Add(cDoumei);
                            }

                            //If Doumei Daimyo -> Delete
                            if (cDoumeiList.Contains(dstDaimyo.ToString()))
                            {
                                doumei.deleteDoumei(srcDaimyo.ToString(), dstDaimyo.ToString());
                            }
                        }

                        if (doumeiDaimyoList.Count != 0)
                        {
                            //Doumei Exist

                            //Trace Check
                            List <string> okDaimyoList = new List <string> ();
                            List <string> checkList    = new List <string> ();
                            okDaimyoList = doumei.traceNeighborDaimyo(dstKuniId, dstDaimyo, doumeiDaimyoList, seiryokuList, checkList, okDaimyoList);

                            if (okDaimyoList.Count != 0)
                            {
                                //Doumei & Neghbor Daimyo Exist

                                for (int h = 0; h < okDaimyoList.Count; h++)
                                {
                                    string engunDaimyo = okDaimyoList[h];
                                    int    yukoudo     = gaikou.getExistGaikouValue(int.Parse(engunDaimyo), dstDaimyo);

                                    //engun check

                                    dstEngunFlg = mEvent.CheckByProbability(yukoudo);
                                    if (dstEngunFlg)
                                    {
                                        //Engun OK
                                        dstEngunFlg = true;
                                        if (dstEngunDaimyoId != null && dstEngunDaimyoId != "")
                                        {
                                            dstEngunDaimyoId = dstEngunDaimyoId + ":" + engunDaimyo;
                                            string tempEngunSts = engunDaimyo + "-" + mEvent.getEngunSts(engunDaimyo);
                                            int    tempEngunHei = mEvent.getEngunHei(tempEngunSts);
                                            dstEngunHei   = dstEngunHei + ":" + tempEngunHei.ToString();
                                            totalEngunHei = totalEngunHei + tempEngunHei;
                                            dstEngunSts   = dstEngunSts + ":" + tempEngunSts;
                                        }
                                        else
                                        {
                                            dstEngunDaimyoId = engunDaimyo;
                                            string tempEngunSts = engunDaimyo + "-" + mEvent.getEngunSts(engunDaimyo);
                                            int    tempEngunHei = mEvent.getEngunHei(tempEngunSts);
                                            dstEngunHei   = tempEngunHei.ToString();
                                            totalEngunHei = tempEngunHei;
                                            dstEngunSts   = tempEngunSts;
                                        }
                                    }
                                }
                                Gunzei.GetComponent <Gunzei> ().dstEngunFlg      = dstEngunFlg;
                                Gunzei.GetComponent <Gunzei> ().dstEngunDaimyoId = dstEngunDaimyoId;
                                Gunzei.GetComponent <Gunzei> ().dstEngunHei      = dstEngunHei;
                                Gunzei.GetComponent <Gunzei> ().dstEngunSts      = dstEngunSts;
                            }
                        }

                        //Set Value
                        //CreateTime,srcDaimyoId,dstDaimyoId,srcDaimyoName,dstDaimyoName, srcHei,locationX,locationY,left or right, engunFlg, engunDaimyoId(A:B:C), dstEngunHei(1000:2000:3000), dstEngunSts
                        string keyValue   = "";
                        string createTime = System.DateTime.Now.ToString();
                        keyValue = createTime + "," + srcDaimyo + "," + dstDaimyo + "," + srcDaimyoName + "," + dstDaimyoName + "," + myHei + "," + aveX + "," + aveY + "," + direction + "," + dstEngunFlg + "," + dstEngunDaimyoId + "," + dstEngunHei + "," + dstEngunSts;
                        PlayerPrefs.SetString(key, keyValue);
                        string keyHistory = PlayerPrefs.GetString("keyHistory");
                        if (keyHistory == null || keyHistory == "")
                        {
                            keyHistory = key;
                        }
                        else
                        {
                            keyHistory = keyHistory + "," + key;
                        }
                        PlayerPrefs.SetString("keyHistory", keyHistory);
                        PlayerPrefs.SetInt("bakuhuTobatsuDaimyoId", dstDaimyo);
                        PlayerPrefs.Flush();

                        string kassenText = "";
                        if (Application.systemLanguage != SystemLanguage.Japanese)
                        {
                            if (!dstEngunFlg)
                            {
                                kassenText = srcDaimyoName + " is attacking " + dstDaimyoName + " with " + myHei + " soldiers.";
                            }
                            else
                            {
                                kassenText = srcDaimyoName + " is attacking " + dstDaimyoName + " with " + myHei + " soldiers.\n Defender's allianced country sent " + totalEngunHei + " soldiers.";
                            }
                        }
                        else
                        {
                            if (!dstEngunFlg)
                            {
                                kassenText = srcDaimyoName + "が" + dstDaimyoName + "討伐の兵" + myHei + "人を起こしました。";
                            }
                            else
                            {
                                kassenText = srcDaimyoName + "が" + dstDaimyoName + "討伐の兵" + myHei + "人を起こしました。\n防衛側の同盟国が援軍" + totalEngunHei + "人を派兵しました。";
                            }
                        }
                        messageList.Add(kassenText);
                    }
                    else
                    {
                        //NG
                        string kassenText    = "";
                        string srcDaimyoName = daimyo.getName(srcDaimyo);
                        int    newYukoudo    = gaikou.downMyGaikou(srcDaimyo, myGaikouValue, 15);
                        int    reducedValue  = myGaikouValue - newYukoudo;
                        if (Application.systemLanguage != SystemLanguage.Japanese)
                        {
                            kassenText = srcDaimyoName + " rejected our attack order. Friendship reduced " + reducedValue + " point.";
                        }
                        else
                        {
                            kassenText = srcDaimyoName + "が討伐令を黙殺しました。当家との友好度が" + reducedValue + "下がります。";
                        }
                        doGaikou.downYukouOnIcon(srcDaimyo, newYukoudo);
                        messageList.Add(kassenText);
                    }
                }
            }
        }


        //Disabled
        foreach (Transform obj in BakuhuKuniIconView.transform)
        {
            if (obj.GetComponent <Button> ())
            {
                obj.GetComponent <Button> ().enabled = false;
            }
        }

        GameObject toubatsuSelect = GameObject.Find("ToubatsuSelect").gameObject;

        toubatsuSelect.transform.FindChild("ToubatsuBtn").gameObject.SetActive(false);
        if (toubatsuFlg)
        {
            audioSources [3].Play();
            if (Application.systemLanguage != SystemLanguage.Japanese)
            {
                toubatsuSelect.transform.FindChild("Exp").GetComponent <Text> ().text = "Declared " + targetDaimyoName + " attack order. Other family responded to it.";
            }
            else
            {
                toubatsuSelect.transform.FindChild("Exp").GetComponent <Text>().text = targetDaimyoName + "の討伐令を出しました。諸大名が呼応したようです。";
            }
        }
        else
        {
            audioSources [4].Play();
            if (srcDstKuniList.Count == 0)
            {
                if (Application.systemLanguage != SystemLanguage.Japanese)
                {
                    toubatsuSelect.transform.FindChild("Exp").GetComponent <Text> ().text = "There is no family who can respond to " + targetDaimyoName + " attack order.";
                }
                else
                {
                    toubatsuSelect.transform.FindChild("Exp").GetComponent <Text>().text = "現在" + targetDaimyoName + "の討伐に呼応可能な大名はおりません。";
                }
            }
            else
            {
                if (Application.systemLanguage != SystemLanguage.Japanese)
                {
                    toubatsuSelect.transform.FindChild("Exp").GetComponent <Text> ().text = "No family responded to our attack order because of fear for " + targetDaimyoName + ".";
                }
                else
                {
                    toubatsuSelect.transform.FindChild("Exp").GetComponent <Text>().text = targetDaimyoName + "を恐れてか、討伐令にどの大名も呼応しませんでした。";
                }
            }
        }

        Message msg = new Message();

        msg.makeSlotMessage(messageList);
    }
Exemple #7
0
	// Use this for initialization
	public void OnClick () {

		Message msg = new Message();
		if (hyourouOKflg) {
			if (moneyOKflg) {
				if (name == "DoMitsugiBtn") {

					reduceMoneyHyourou ();

					//Doumei
					bool doumeiFlg = GameObject.Find ("close").GetComponent<CloseBoard>().doumeiFlg;

					//Add Yukoudo
					// AddYukoudo = (Money/200)*chiryaku/100
					int addYukoudo = (paiedMoney / 200) * busyoChiryaku / 500;

					if(doumeiFlg){
						addYukoudo = addYukoudo * 2;
					}

					string tempGaikou = "gaikou" + GameObject.Find ("close").GetComponent<CloseBoard> ().daimyoId;
					int nowYukoudo = 0;
					if (PlayerPrefs.HasKey (tempGaikou)) {
						nowYukoudo = PlayerPrefs.GetInt (tempGaikou);
					} else {
						nowYukoudo = 50;
					}
					int newYukoudo = nowYukoudo + addYukoudo;
					if (newYukoudo > 100) {
						newYukoudo = 100;
					}
					PlayerPrefs.SetInt (tempGaikou, newYukoudo);
					GameObject.Find ("YukouValue").GetComponent<Text> ().text = newYukoudo.ToString (); 

					//Back
					GameObject.Find ("return").GetComponent<MenuReturn> ().OnClick ();

					//Message
					string OKtext = daimyoName + "に金" + paiedMoney + "の貢物をしました。\t友好度が" + addYukoudo + "上がりますぞ。";
					msg.makeMessage (OKtext);

					PlayerPrefs.Flush ();

				} else if (name == "DoDoumeiBtn") {
			
					reduceMoneyHyourou ();

					//Doumei
					daimyoId = GameObject.Find ("close").GetComponent<CloseBoard> ().daimyoId;
					float percent = Random.value;
					percent = percent * 100;
					
					if(percent <= doumeiRatio){
						//Doumei Success
						string doumei = PlayerPrefs.GetString("doumei");
						if(doumei == null || doumei == ""){
							doumei = daimyoId.ToString();
						}else{
							doumei = doumei + "," + daimyoId.ToString();
						}

						//Data
						int myDaimyo = PlayerPrefs.GetInt ("myDaimyo");
						string cpuDoumeiTemp = "doumei" + daimyoId.ToString();
						string cpuDoumei = PlayerPrefs.GetString(cpuDoumeiTemp);
						if(cpuDoumei != null & cpuDoumei !=""){
							cpuDoumei = cpuDoumei + "," + myDaimyo.ToString();
						}else{
							cpuDoumei = myDaimyo.ToString();
						}
						PlayerPrefs.SetString(cpuDoumeiTemp,cpuDoumei);
						PlayerPrefs.SetString("doumei",doumei);

						//Change Target Flg & Kuni Icon Color
						string seiryoku = PlayerPrefs.GetString ("seiryoku");
						char[] delimiterChars = {','};
						List<string> seiryokuList = new List<string> ();
						seiryokuList = new List<string> (seiryoku.Split (delimiterChars));
						GameObject KuniIconView = GameObject.Find ("KuniIconView").gameObject;

						Color doumeiColor = new Color (100f / 255f, 130f / 255f, 255f / 255f, 255f / 255f); //Blue
						for(int i=0;i<seiryokuList.Count;i++){
							int tempDaimyoId = int.Parse (seiryokuList [i]);

							if(tempDaimyoId == daimyoId){
								int kuniId = i + 1;
								GameObject kuniIcon = KuniIconView.transform.FindChild(kuniId.ToString()).gameObject;
								kuniIcon.GetComponent<Image>().color = doumeiColor;
								kuniIcon.GetComponent<SendParam>().doumeiFlg = true;
							}
						}

						//Msg
						string OKtext = "御目出度う存じまする。\t" + daimyoName + "殿と同盟致しました。\t戦略の幅が拡がりますな。";
						msg.makeMessage (OKtext);
						
					}else{
						//Doumie Failed
						int reduceYukoudo = UnityEngine.Random.Range(1,3);
						string tempGaikou = "gaikou" + daimyoId;
						int nowYukoudo = 0;
						if (PlayerPrefs.HasKey (tempGaikou)) {
							nowYukoudo = PlayerPrefs.GetInt (tempGaikou);
						} else {
							nowYukoudo = 50;
						}
						int newYukoudo = nowYukoudo - reduceYukoudo;
						PlayerPrefs.SetInt (tempGaikou, newYukoudo);
						GameObject.Find ("YukouValue").GetComponent<Text> ().text = newYukoudo.ToString (); 


						string NGtext = daimyoName + "に体よく断られ申した。\t友好度が" + reduceYukoudo + "下がりますぞ。";
						msg.makeMessage (NGtext);
					}

					PlayerPrefs.Flush ();

					//Back
					GameObject.Find ("return").GetComponent<MenuReturn> ().OnClick ();



					
				} else if (name == "DoKyoutouBtn") {

					reduceMoneyHyourou ();
					daimyoId = GameObject.Find ("close").GetComponent<CloseBoard> ().daimyoId;

					//Kyoutou Check
					float percent = Random.value;
					percent = percent * 100;
					if(percent <= kyoutouRatio){

						//Success
						string playerKyoutouList = PlayerPrefs.GetString("playerKyoutouList","");
						MainEventHandler kyoutou = new MainEventHandler();
						if(playerKyoutouList==null || playerKyoutouList == ""){
							playerKyoutouList = targetKuniId+ "-" + kyoutou.getEngunSts(daimyoId.ToString());
						}else{
							playerKyoutouList = playerKyoutouList + ":" +  targetKuniId+ "-" + kyoutou.getEngunSts(daimyoId.ToString());
						}
						Debug.Log (playerKyoutouList);
						PlayerPrefs.SetString("playerKyoutouList",playerKyoutouList);

						//Msg
						string OKtext = daimyoName + "殿が" + kuniName + "攻めに加勢してくれますぞ。\t百人力ですな。";
						msg.makeMessage (OKtext);


					}else{
						//Fail

						//Doumie Failed
						int reduceYukoudo = UnityEngine.Random.Range(1,3);
						string tempGaikou = "gaikou" + daimyoId.ToString();
						int newYukoudo = myYukoudo - reduceYukoudo;
						PlayerPrefs.SetInt (tempGaikou, newYukoudo);
						GameObject.Find ("YukouValue").GetComponent<Text> ().text = newYukoudo.ToString (); 	

						string NGtext = daimyoName + "に体よく断られ申した。\t友好度が" + reduceYukoudo + "下がりますぞ。";
						msg.makeMessage (NGtext);

					}

					PlayerPrefs.Flush ();
					
					//Back
					GameObject.Find ("return").GetComponent<MenuReturn> ().OnClick ();

				}



			} else {
				//Message
				string NGtext = "御屋形様、金が不足しておりますぞ。";
				msg.makeMessage (NGtext);
			
			}
		} else {
			//Message
			string NGtext = "御屋形様、兵糧が不足しておりますぞ。";
			msg.makeMessage (NGtext);
		}
	}
Exemple #8
0
    public void OnClick()
    {
        AudioSource[] audioSources = GameObject.Find("SEController").GetComponents <AudioSource> ();

        if (name == "YesButton")
        {
            audioSources [0].Play();

            GameObject kuniView = GameObject.Find("KuniIconView");
            SendParam  param    = kuniView.transform.FindChild(kuniId.ToString()).GetComponent <SendParam>();

            //adjust
            int busyoQty       = param.busyoQty;
            int jinkeiBusyoQty = PlayerPrefs.GetInt("jinkeiBusyoQty");
            if (busyoQty < jinkeiBusyoQty)
            {
                busyoQty = jinkeiBusyoQty;
            }

            int busyoLv = param.busyoLv;

            //adjsut
            int butaiQty       = param.butaiQty;
            int jinkeiAveChQty = PlayerPrefs.GetInt("jinkeiAveChQty");
            if (butaiQty < jinkeiAveChQty)
            {
                butaiQty = jinkeiAveChQty;
            }
            int butaiLv = param.butaiLv;

            //Dummy
            PlayerPrefs.SetInt("activeStageId", 0);
            PlayerPrefs.SetInt("activeStageMoney", busyoQty * busyoLv * 100);
            PlayerPrefs.SetInt("activeStageExp", busyoQty * busyoLv * 10);
            PlayerPrefs.SetString("activeItemType", "");
            PlayerPrefs.SetInt("activeItemId", 0);
            PlayerPrefs.SetFloat("activeItemRatio", 0);
            PlayerPrefs.SetInt("activeItemQty", 0);
            PlayerPrefs.SetString("activeItemGrp", "no");

            //Actual
            KuniInfo kuni       = new KuniInfo();
            string   kassenName = "";
            if (Application.systemLanguage != SystemLanguage.Japanese)
            {
                kassenName = " Final Battle with " + daimyoName;
            }
            else
            {
                kassenName = daimyoName + "決戦";
            }
            PlayerPrefs.SetString("activeStageName", kassenName);

            PlayerPrefs.SetInt("activeDaimyoId", daimyoId);
            PlayerPrefs.SetInt("activeBusyoQty", busyoQty);
            PlayerPrefs.SetInt("activeBusyoLv", busyoLv);
            PlayerPrefs.SetInt("activeButaiQty", butaiQty);
            PlayerPrefs.SetInt("activeButaiLv", butaiLv);


            //Flag
            PlayerPrefs.DeleteKey("isAttackedFlg");
            PlayerPrefs.SetBool("isKessenFlg", true);
            PlayerPrefs.SetInt("kessenHyourou", needHyourouNo);

            //Player Doumei Flg
            PlayerPrefs.DeleteKey("playerEngunList");

            //Enemy Doumei Handling
            PlayerPrefs.DeleteKey("enemyEngunList");
            string        doumeiTemp        = "doumei" + daimyoId;
            string        enemyDoumeiString = PlayerPrefs.GetString(doumeiTemp);
            char[]        delimiterChars    = { ',' };
            List <string> doumeiList        = new List <string>();
            if (enemyDoumeiString != null && enemyDoumeiString != "")
            {
                if (enemyDoumeiString.Contains(","))
                {
                    doumeiList = new List <string> (enemyDoumeiString.Split(delimiterChars));
                }
                else
                {
                    doumeiList.Add(enemyDoumeiString);
                }
            }
            string        seiryoku     = PlayerPrefs.GetString("seiryoku");
            List <string> seiryokuList = new List <string> ();
            seiryokuList = new List <string> (seiryoku.Split(delimiterChars));

            Doumei        doumei           = new Doumei();
            Gaikou        gaikou           = new Gaikou();
            List <string> okDaimyoList     = new List <string> ();
            List <string> checkedList      = new List <string> ();
            string        dstEngunDaimyoId = "";
            string        dstEngunSts      = ""; //BusyoId-BusyoLv-ButaiQty-ButaiLv:

            okDaimyoList = doumei.traceNeighborDaimyo(kuniId, daimyoId, doumeiList, seiryokuList, checkedList, okDaimyoList);
            if (okDaimyoList.Count != 0)
            {
                for (int k = 0; k < okDaimyoList.Count; k++)
                {
                    string engunDaimyo = okDaimyoList [k];
                    int    yukoudo     = gaikou.getExistGaikouValue(int.Parse(engunDaimyo), daimyoId);

                    //engun check
                    MainEventHandler main        = new MainEventHandler();
                    bool             dstEngunFlg = main.CheckByProbability(yukoudo);
                    if (dstEngunFlg)
                    {
                        //Engun OK
                        dstEngunFlg = true;
                        if (dstEngunDaimyoId != null && dstEngunDaimyoId != "")
                        {
                            dstEngunDaimyoId = dstEngunDaimyoId + ":" + engunDaimyo;
                            string tempEngunSts = main.getEngunSts(engunDaimyo);
                            dstEngunSts = dstEngunSts + ":" + engunDaimyo + "-" + tempEngunSts;
                        }
                        else
                        {
                            dstEngunDaimyoId = engunDaimyo;
                            string tempEngunSts = main.getEngunSts(engunDaimyo);
                            dstEngunSts = engunDaimyo + "-" + tempEngunSts;
                        }
                    }
                }
                PlayerPrefs.SetString("enemyEngunList", dstEngunSts);
            }

            //Delete "Start Kassen Flg"
            PlayerPrefs.DeleteKey("activeLink");
            PlayerPrefs.SetInt("activePowerType", 3);

            PlayerPrefs.Flush();
            Application.LoadLevel("preKassen");
        }
        else
        {
            audioSources [1].Play();
            Destroy(confirm.gameObject);
            Destroy(back.gameObject);
        }
    }