// ------------------------------------------------------------------ Member CreateNewMember(int iIndex) { bool bLight = false; foreach (Member ItorMember in DataPlayer.pthis.MemberParty) { DBFEquip Data = GameDBF.GetEquip(ItorMember.iEquip) as DBFEquip; if (Data != null && Data.Mode == (int)ENUM_ModeEquip.Light) { bLight = true; } } //for Member ptempMember = new Member(); // 角色外觀. ptempMember.iLooks = Rule.RandomMemberLooks(); // 裝備. ptempMember.iEquip = Rule.RandomEquipParty(bLight == false, 0); // 角色反應時間. ptempMember.fReactTime = Random.Range(0.00f, 0.20f); pObjRoleChild[iIndex] = P_AddMember.pthis.CreateRole(pObjRole[iIndex], ptempMember); return(ptempMember); }
public void SetInfo(int iID) { for (int i = 0; i < pFInfo.Length; i++) { pFInfo[i].SetInfo(i, iID); } if ((ENUM_Weapon)DataPlayer.pthis.MemberParty[iID].iEquip != ENUM_Weapon.Null) { ObjWeapon = UITool.pthis.CreateUI(S_Weapon, "Prefab/Weapon/" + (ENUM_Weapon)DataPlayer.pthis.MemberParty[iID].iEquip); ObjWeapon.transform.localPosition = new Vector3(-20, 0, 0); SpriteRenderer[] p2DS = ObjWeapon.GetComponentsInChildren <SpriteRenderer>(); foreach (SpriteRenderer pRender in p2DS) { ToolKit.ChangeTo2DSprite(pRender); } DBFEquip pDBFEquip = GameDBF.GetEquip(DataPlayer.pthis.MemberParty[iID].iEquip) as DBFEquip; ENUM_Resource emResource = (ENUM_Resource)pDBFEquip.Resource; if (System.Convert.ToInt32(pDBFEquip.GUID) == (int)ENUM_Weapon.LMG && Rule.GetWeaponLevel(ENUM_Weapon.LMG) > 0) { emResource = ENUM_Resource.Battery; } if (emResource != ENUM_Resource.Null) { ObjBullet = UITool.pthis.CreateUI(S_Bullet, "Prefab/Item/G_" + (ENUM_Resource)pDBFEquip.Resource); ObjBullet.GetComponent <Collider2D>().enabled = false; p2DS = ObjBullet.GetComponentsInChildren <SpriteRenderer>(); foreach (SpriteRenderer pRender in p2DS) { ToolKit.ChangeTo2DSprite(pRender); } } //if } if ((ENUM_Weapon)DataPlayer.pthis.MemberParty[iID].iEquip == ENUM_Weapon.Light || (ENUM_Weapon)DataPlayer.pthis.MemberParty[iID].iEquip == ENUM_Weapon.Null) { // 攻擊力. Lb_Value[0].text = "--"; // 射擊速度. Lb_Value[1].text = "--"; // 爆擊. Lb_Value[2].text = "--"; } else { DBFEquip pDBFEquip = GameDBF.GetEquip(DataPlayer.pthis.MemberParty[iID].iEquip) as DBFEquip; // 攻擊力 { int iEquip = pDBFEquip.Damage; int iAddon = DataPlayer.pthis.MemberParty[iID].iAddDamage; int iUpgrade = DataPlayer.pthis.MemberParty[iID].iLiveStage * GameDefine.iDamageUpgrade + DataPlayer.pthis.iDamageLv; string szResult = string.Format("[ffed00]{0}[-]", Mathf.Max(0, iEquip + iAddon + iUpgrade)); string szExtra = ""; if (iAddon != 0) { szExtra += iAddon > 0 ? string.Format("[546ef2]+{0}[-]", iAddon) : string.Format("[e92121]{0}[-]", iAddon); } if (iUpgrade != 0) { szExtra += iUpgrade > 0 ? string.Format("[00ff00]+{0}[-]", iUpgrade) : string.Format("[e92121]{0}[-]", iUpgrade); } if (szExtra.Length > 0) { szResult += string.Format("({0}{1})", iEquip, szExtra); } Lb_Value[0].text = szResult; } // 射擊速度 Lb_Value[1].text = string.Format("[ffed00]{0:0.0}[-] per sec", 1 / (System.Convert.ToInt32(pDBFEquip.GUID) == (int)ENUM_Weapon.Knife && Rule.GetWeaponLevel(ENUM_Weapon.Knife) > 0 ? Rule.UpgradeWeaponKnife() : pDBFEquip.FireRate)); // 爆擊 { int iEquip = (int)(pDBFEquip.CriticalStrike * 100); int iAddon = (int)(DataPlayer.pthis.MemberParty[iID].fCriticalStrike * 100); string szTemp = string.Format("[ffed00]{0}[-]", Mathf.Max(0, iEquip + iAddon)); if (iAddon != 0) { if (iAddon > 0) { szTemp += string.Format("({0}[546ef2]+{1}[-])", iEquip, iAddon); } else { szTemp += string.Format("({0}[e92121]{1}[-])", iEquip, iAddon); } } //if Lb_Value[2].text = szTemp + "%"; } } }
// 建立拾取 public void Create() { DataPickup.pthis.Data.Clear(); // 檢查隊伍裡是否沒有光源裝備 bool bLight = false; foreach (Member ItorMember in DataPlayer.pthis.MemberParty) { DBFEquip Data = GameDBF.GetEquip(ItorMember.iEquip) as DBFEquip; if (Data == null) { continue; } if (Data.Mode == (int)ENUM_ModeEquip.Light) { bLight = true; } } //for // 成員拾取 if (DataPlayer.pthis.MemberParty.Count < GameDefine.iMaxMemberParty) { if (bLight == false || Random.Range(0, 100) <= (GameDefine.iMaxMemberParty - DataPlayer.pthis.MemberParty.Count) * GameDefine.iPickupMember) { Pickup Data = new Pickup(); Data.Pos = NextPickup(); Data.iType = (int)ENUM_Pickup.Member; Data.iCount = 1; Data.iLooks = Rule.RandomMemberLooks(); Data.bPickup = false; DataPickup.pthis.Data.Add(Data); } //if } //if // 總物品拾取次數 int iPickupLightAmmo = (int)(GameDefine.iPickupItems * GameDefine.fPickupPartLightAmmo); int iPickupHeavyAmmo = (int)(GameDefine.iPickupItems * GameDefine.fPickupPartHeavyAmmo); int iPickupBattery = (int)(GameDefine.iPickupItems * GameDefine.fPickupPartBattery); int iPickupCurrency = GameDefine.iPickupItems - iPickupLightAmmo - iPickupHeavyAmmo - iPickupBattery; // 額外拾取價值 int iExteraValue = (int)(DataPlayer.pthis.iStage * GameDefine.fUpgradePickup); // 輕型彈藥拾取 for (int iCount = 0; iCount < iPickupLightAmmo; ++iCount) { Pickup Data = new Pickup(); Data.Pos = NextPickup(); Data.iType = (int)ENUM_Pickup.LightAmmo; Data.iCount = (GameDefine.iPickupValue + iExteraValue) / GameDefine.iPriceLightAmmo; Data.iLooks = 0; Data.bPickup = false; DataPickup.pthis.Data.Add(Data); } //for // 重型彈藥拾取 for (int iCount = 0; iCount < iPickupHeavyAmmo; ++iCount) { Pickup Data = new Pickup(); Data.Pos = NextPickup(); Data.iType = (int)ENUM_Pickup.HeavyAmmo; Data.iCount = (GameDefine.iPickupValue + iExteraValue) / GameDefine.iPriceHeavyAmmo; Data.iLooks = 0; Data.bPickup = false; DataPickup.pthis.Data.Add(Data); } //for // 電池拾取 for (int iCount = 0; iCount < iPickupBattery; ++iCount) { Pickup Data = new Pickup(); Data.Pos = NextPickup(); Data.iType = (int)ENUM_Pickup.Battery; Data.iCount = (GameDefine.iPickupValue + iExteraValue) / GameDefine.iPriceBattery; Data.iLooks = 0; Data.bPickup = false; DataPickup.pthis.Data.Add(Data); } //for // 通貨拾取 for (int iCount = 0; iCount < iPickupCurrency; ++iCount) { Pickup Data = new Pickup(); Data.Pos = NextPickup(); Data.iType = (int)ENUM_Pickup.Currency; Data.iCount = GameDefine.iPickupValue + iExteraValue; Data.iLooks = 0; Data.bPickup = false; DataPickup.pthis.Data.Add(Data); } //for // 絕招拾取 if (Random.Range(0, 100) <= GameDefine.iPickupProbBomb) { Pickup Data = new Pickup(); Data.Pos = NextPickup(); Data.iType = (int)ENUM_Pickup.Bomb; Data.iCount = 1; Data.iLooks = 0; Data.bPickup = false; DataPickup.pthis.Data.Add(Data); } //if // 水晶拾取 if (DataPlayer.pthis.iStage >= GameDefine.iCrystalStage) { Pickup Data = new Pickup(); Data.Pos = NextPickup(); Data.iType = (int)ENUM_Pickup.Crystal; Data.iCount = Rule.AppearBossStage() ? GameDefine.iCrystalBoss : GameDefine.iCrystalNormal; Data.iLooks = 0; Data.bPickup = false; DataPickup.pthis.Data.Add(Data); } //if }
// ------------------------------------------------------------------ public bool UseBullet(ENUM_Weapon pType) { DBFEquip DataEquip = GameDBF.GetEquip((int)pType) as DBFEquip; if (DataEquip == null) { return(false); } ENUM_Resource emResource = (ENUM_Resource)DataEquip.Resource; // 輕機槍升級後不再消耗子彈,改為消耗電力. if (pType == ENUM_Weapon.LMG && Rule.GetWeaponLevel(ENUM_Weapon.LMG) > 0) { emResource = ENUM_Resource.Battery; } bool bResult = false; switch (emResource) { case ENUM_Resource.Null: bResult = true; break; case ENUM_Resource.Battery: { if (Rule.BatteryChk(1)) { Rule.BatteryAdd(-1); bResult = true; } //if } break; case ENUM_Resource.LightAmmo: { if (Rule.LightAmmoChk(1)) { Rule.LightAmmoAdd(-1); bResult = true; } //if } break; case ENUM_Resource.HeavyAmmo: { if (Rule.HeavyAmmoChk(1)) { Rule.HeavyAmmoAdd(-1); bResult = true; } //if } break; default: break; } //switch if (bResult) { UpdateResource(); } return(bResult); }