private void setKindParam(Mst_slotitem mst_slot) { FighterInfo.FighterKinds kind = FighterInfo.GetKind(mst_slot); if (kind == FighterInfo.FighterKinds.FIGHTER) { this.Kind = kind; this.AttackShipPow = 0; return; } if (kind == FighterInfo.FighterKinds.BAKU) { this.Kind = kind; this.AttackShipPow = mst_slot.Baku; return; } if (kind == FighterInfo.FighterKinds.RAIG) { this.Kind = kind; this.AttackShipPow = mst_slot.Raig; return; } }
private BattleSupportKinds Init(ref bool[] undressing) { if (mst_support_data == null) { return(BattleSupportKinds.None); } if (E_Data.ShipData.FirstOrDefault((Mem_ship x) => x.Nowhp > 0) == null) { return(BattleSupportKinds.None); } if (supportDeck == null) { return(BattleSupportKinds.None); } supportShips = supportDeck.Ship.getMemShip(); Dictionary <int, int> dictionary = new Dictionary <int, int>(); Dictionary <int, int> dictionary2 = new Dictionary <int, int>(); foreach (IGrouping <int, int> mst_support_datum in mst_support_data) { int key = mst_support_datum.Key; dictionary.Add(key, 0); foreach (int item in mst_support_datum) { dictionary2.Add(item, key); } } int num = 0; int num2 = 0; List <int> list = new List <int>(); List <List <Mst_slotitem> > list2 = new List <List <Mst_slotitem> >(); foreach (var item2 in supportShips.Select((Mem_ship obj, int ship_idx) => new { obj, ship_idx })) { int num3 = dictionary2[item2.obj.Stype]; list.Add(item2.obj.Stype); Dictionary <int, int> dictionary3; Dictionary <int, int> dictionary4 = dictionary3 = dictionary; int key2; int key3 = key2 = num3; key2 = dictionary3[key2]; dictionary4[key3] = key2 + 1; if (item2.obj.Get_FatigueState() == FatigueState.Exaltation) { int num4 = (item2.ship_idx != 0) ? 5 : 15; num2 += num4; } if (item2.obj.Get_DamageState() >= DamageState.Tyuuha) { undressing[item2.ship_idx] = true; } List <Mst_slotitem> list3 = new List <Mst_slotitem>(); foreach (var item3 in item2.obj.Slot.Select((int rid, int idx) => new { rid, idx })) { if (item3.rid <= 0) { break; } Mst_slotitem value = null; if (!Mst_DataManager.Instance.Mst_Slotitem.TryGetValue(Comm_UserDatas.Instance.User_slot[item3.rid].Slotitem_id, out value)) { break; } list3.Add(value); if (item2.obj.Onslot[item3.idx] > 0) { FighterInfo.FighterKinds kind = FighterInfo.GetKind(value); if (kind == FighterInfo.FighterKinds.BAKU || kind == FighterInfo.FighterKinds.RAIG) { num++; } } } list2.Add(list3); } int num5 = (supportType != MissionType.SupportForward) ? (num2 + 85) : (50 + num2); if (num5 < randInstance.Next(100)) { return(BattleSupportKinds.None); } _f_Data = new BattleBaseData(supportDeck, supportShips, list, list2); _f_Data.Formation = BattleFormationKinds1.TanJuu; _f_Data.BattleFormation = E_Data.BattleFormation; List <Mem_ship> memShip = _f_Data.Deck.Ship.getMemShip(); _f_SubInfo = new Dictionary <int, BattleShipSubInfo>(); for (int i = 0; i < memShip.Count; i++) { BattleShipSubInfo value2 = new BattleShipSubInfo(i, memShip[i]); _f_SubInfo.Add(memShip[i].Rid, value2); } int num6 = dictionary[1]; int num7 = dictionary[2]; int num8 = dictionary[3]; int num9 = dictionary[4]; int num10 = dictionary[5]; int num11 = dictionary[6]; if (num6 >= 3 && num > 0) { return(BattleSupportKinds.AirAtack); } if (num7 >= 2) { return(BattleSupportKinds.Raigeki); } if (num8 + num9 >= 4) { return(BattleSupportKinds.Hougeki); } if (num10 + num11 >= 4) { return(BattleSupportKinds.Raigeki); } return(BattleSupportKinds.Hougeki); }
private BattleSupportKinds Init(ref bool[] undressing) { if (this.mst_support_data == null) { return(BattleSupportKinds.None); } if (Enumerable.FirstOrDefault <Mem_ship>(this.E_Data.ShipData, (Mem_ship x) => x.Nowhp > 0) == null) { return(BattleSupportKinds.None); } if (this.supportDeck == null) { return(BattleSupportKinds.None); } this.supportShips = this.supportDeck.Ship.getMemShip(); Dictionary <int, int> dictionary = new Dictionary <int, int>(); Dictionary <int, int> dictionary2 = new Dictionary <int, int>(); using (IEnumerator <IGrouping <int, int> > enumerator = this.mst_support_data.GetEnumerator()) { while (enumerator.MoveNext()) { IGrouping <int, int> current = enumerator.get_Current(); int key = current.get_Key(); dictionary.Add(key, 0); using (IEnumerator <int> enumerator2 = current.GetEnumerator()) { while (enumerator2.MoveNext()) { int current2 = enumerator2.get_Current(); dictionary2.Add(current2, key); } } } } int num = 0; int num2 = 0; List <int> list = new List <int>(); List <List <Mst_slotitem> > list2 = new List <List <Mst_slotitem> >(); using (var enumerator3 = Enumerable.Select(this.supportShips, (Mem_ship obj, int ship_idx) => new { obj, ship_idx }).GetEnumerator()) { while (enumerator3.MoveNext()) { var current3 = enumerator3.get_Current(); int num3 = dictionary2.get_Item(current3.obj.Stype); list.Add(current3.obj.Stype); Dictionary <int, int> dictionary3; Dictionary <int, int> expr_16B = dictionary3 = dictionary; int num4; int expr_170 = num4 = num3; num4 = dictionary3.get_Item(num4); expr_16B.set_Item(expr_170, num4 + 1); if (current3.obj.Get_FatigueState() == FatigueState.Exaltation) { int num5 = (current3.ship_idx != 0) ? 5 : 15; num2 += num5; } if (current3.obj.Get_DamageState() >= DamageState.Tyuuha) { undressing[current3.ship_idx] = true; } List <Mst_slotitem> list3 = new List <Mst_slotitem>(); using (var enumerator4 = Enumerable.Select(current3.obj.Slot, (int rid, int idx) => new { rid, idx }).GetEnumerator()) { while (enumerator4.MoveNext()) { var current4 = enumerator4.get_Current(); if (current4.rid <= 0) { break; } Mst_slotitem mst_slotitem = null; if (!Mst_DataManager.Instance.Mst_Slotitem.TryGetValue(Comm_UserDatas.Instance.User_slot.get_Item(current4.rid).Slotitem_id, ref mst_slotitem)) { break; } list3.Add(mst_slotitem); if (current3.obj.Onslot.get_Item(current4.idx) > 0) { FighterInfo.FighterKinds kind = FighterInfo.GetKind(mst_slotitem); if (kind == FighterInfo.FighterKinds.BAKU || kind == FighterInfo.FighterKinds.RAIG) { num++; } } } } list2.Add(list3); } } int num6; if (this.supportType == MissionType.SupportForward) { num6 = 50 + num2; } else { num6 = num2 + 85; } if (num6 < this.randInstance.Next(100)) { return(BattleSupportKinds.None); } this._f_Data = new BattleBaseData(this.supportDeck, this.supportShips, list, list2); this._f_Data.Formation = BattleFormationKinds1.TanJuu; this._f_Data.BattleFormation = this.E_Data.BattleFormation; List <Mem_ship> memShip = this._f_Data.Deck.Ship.getMemShip(); this._f_SubInfo = new Dictionary <int, BattleShipSubInfo>(); for (int i = 0; i < memShip.get_Count(); i++) { BattleShipSubInfo battleShipSubInfo = new BattleShipSubInfo(i, memShip.get_Item(i)); this._f_SubInfo.Add(memShip.get_Item(i).Rid, battleShipSubInfo); } int num7 = dictionary.get_Item(1); int num8 = dictionary.get_Item(2); int num9 = dictionary.get_Item(3); int num10 = dictionary.get_Item(4); int num11 = dictionary.get_Item(5); int num12 = dictionary.get_Item(6); if (num7 >= 3 && num > 0) { return(BattleSupportKinds.AirAtack); } if (num8 >= 2) { return(BattleSupportKinds.Raigeki); } if (num9 + num10 >= 4) { return(BattleSupportKinds.Hougeki); } if (num11 + num12 >= 4) { return(BattleSupportKinds.Raigeki); } return(BattleSupportKinds.Hougeki); }