private int CalculateFit() { ShipFitClass shipClass = ShipFitClassUtil.FromShipInfo(this.Owner); if (shipClass == ShipFitClass.NA) { return(0); } var itemInfo = this.Item.Info; switch (itemInfo.Type) { case SlotItemType.大口径主砲: // 대구경주포 if (!ShipFitClassUtil.FitTable_Heavy.ContainsKey(itemInfo.Id)) { return(0); // 데이터 없음 } return(ShipFitClassUtil.FitTable_Heavy[itemInfo.Id] ?[shipClass] ?? 0); case SlotItemType.中口径主砲: // 중구경주포 if (!ShipFitClassUtil.FitTable_Medium.ContainsKey(itemInfo.Id)) { return(0); // 데이터 없음 } return(ShipFitClassUtil.FitTable_Medium[itemInfo.Id] ?[shipClass] ?? 0); } return(0); }
private int CalculateFit() => ShipFitClassUtil.GetFit(this.Owner.Id, this.Item.Info.Id);
static ShipFitClassUtil() { FitTable_Heavy = new Dictionary <int, Dictionary <ShipFitClass, int> >(); FitTable_Medium = new Dictionary <int, Dictionary <ShipFitClass, int> >(); #region 대구경주포 피트 테이블 /* Comment - 대구경주포 * * * * * * * * * * * * * * * * 381mm/50 삼연장포 : 전체 데이터 불명, 381mm/50 삼연장포改 데이터를 임시로 사용 * 38cm연장포 : 전체 데이터 불명, 38cm연장포改 데이터를 임시로 사용 * 35.6연장포(다즐미채) : 이세급 제외 데이터 불명, 35.6연장포 데이터를 임시로 사용 * 16inch삼연장포 Mk.7+GFCS : 전체 데이터 불명, 16inch삼연장포 Mk.7 데이터를 임시로 사용 * 38.1cm Mk.I연장포 : 콩고급, V.Veneto, 퀸 엘리자베스급 제외 데이터 불명 * 38.1cm Mk.I/N연장포改 : 전체 데이터 불명, 38.1cm Mk.I연장포 데이터를 임시로 사용 */ FitTable_Heavy.Add(128, ShipFitClassUtil.ParseHeavy(" 0, 0, , , , , , , ")); // 試製51cm連装砲 FitTable_Heavy.Add(9, ShipFitClassUtil.ParseHeavy(" 0,-1,-2,-2,-2,-2,-2,-2,-2")); // 46cm三連装砲 FitTable_Heavy.Add(117, ShipFitClassUtil.ParseHeavy(" 0,-1,-1,-1,-1,-1,-1,-1,-1")); // 試製46cm連装砲 FitTable_Heavy.Add(8, ShipFitClassUtil.ParseHeavy(" 0, 0, 0,+1,-1,-1,-1,-1, 0")); // 41cm連装砲 FitTable_Heavy.Add(105, ShipFitClassUtil.ParseHeavy(" 0, 0, 0,+1,-1,-1,-1,-1, 0")); // 試製41cm三連装砲 // FitTable_Heavy.Add(133, ShipFitClassUtil.ParseHeavy(" ?, ?, ?, ?, ?, ?, ?, ?, ?")); // 381mm/50 三連装砲 FitTable_Heavy.Add(133, ShipFitClassUtil.ParseHeavy(" 0,+1, 0,+1, 0, 0, 0, 0,-1")); // 381mm/50 三連装砲 FitTable_Heavy.Add(137, ShipFitClassUtil.ParseHeavy(" 0,+1, 0,+1, 0, 0, 0, 0,-1")); // 381mm/50 三連装砲改 // FitTable_Heavy.Add(76, ShipFitClassUtil.ParseHeavy(" ?, ?, ?, ?, ?, ?, ?, ?, ?")); // 38cm連装砲 FitTable_Heavy.Add(76, ShipFitClassUtil.ParseHeavy(" 0, 0,+1,+1,+1,+1,+2,+1,+1")); // 38cm連装砲 FitTable_Heavy.Add(114, ShipFitClassUtil.ParseHeavy(" 0, 0,+1,+1,+1,+1,+2,+1,+1")); // 38cm連装砲改 FitTable_Heavy.Add(7, ShipFitClassUtil.ParseHeavy(" 0, 0,+1,+1,+1,+1,+2, 0,+1")); // 35.6cm連装砲 FitTable_Heavy.Add(103, ShipFitClassUtil.ParseHeavy(" 0, 0,+1,+1,+1,+1,+2,+1,+1")); // 試製35.6cm三連装砲 // FitTable_Heavy.Add(104, ShipFitClassUtil.ParseHeavy(" 0, ?, ?, ?, ?, ?, ?, ?, ?")); // 35.6cm連装砲(ダズル迷彩) FitTable_Heavy.Add(104, ShipFitClassUtil.ParseHeavy(" 0, 0,+1,+1,+1,+1,+2, 0,+1")); // 35.6cm連装砲(ダズル迷彩) FitTable_Heavy.Add(161, ShipFitClassUtil.ParseHeavy(" 0, 0,-1, 0,-1,-1,-1, 0,-1")); // 16inch三連装砲 Mk.7 // FitTable_Heavy.Add(183, ShipFitClassUtil.ParseHeavy(" ?, ?, ?, ?, ?, ?, ?, ?, ?")); // 16inch三連装砲 Mk.7+GFCS FitTable_Heavy.Add(183, ShipFitClassUtil.ParseHeavy(" 0, 0,-1, 0,-1,-1,-1, 0,-1")); // 16inch三連装砲 Mk.7+GFCS FitTable_Heavy.Add(190, ShipFitClassUtil.ParseHeavy(" ?, ?, ?, ?, 0, ?,+1, ?, 0")); // 38.1cm Mk.I連装砲 // FitTable_Heavy.Add(192, ShipFitClassUtil.ParseHeavy(" ?, ?, ?, ?, ?, ?, ?, ?, ?")); // 38.1cm Mk.I/N連装砲改 FitTable_Heavy.Add(192, ShipFitClassUtil.ParseHeavy(" ?, ?, ?, ?, 0, ?,+1, ?, 0")); // 38.1cm Mk.I/N連装砲改 // FitTable_Heavy.Add(0, ShipFitClassUtil.ParseHeavy("- ,- ,- ,- ,- ,- ,- ,- ,- ")); // NAME #endregion #region 중구경주포/부포 피트 테이블 /* Comment - 중구경주포/부포 * * * * * * * * * * * * * * * * 중순양함은 함급 구분 없이 공통적으로 피트가 적용된다고 가정 * 아직까지는 20.3cm 연장포, 3호포만 피트 보정이 있다는 이야기 * 2호포 및 해외 20.3cm/203mm에 과적이 있다는 이야기는 없으므로 무보정으로 가정 * --------------------------------------------------------------------------------------- * 쿠마급은 쿠마, 타마만 선택, 중뇌장순양함은 개장 전의 키타카미, 오오이, 키소 전체 선택함 * 텐류급 및 나가라급이 없어서 평균 데이터인 유바리/오요도/아가노급/센다이급 데이터에 맞춤 * 20.3 시리즈가 일제 주포 20.3cm 인지, 해외 20.3cm/203mm 도 포함인지 모르지만 일단 포함 * 14cm단장포/연장포 및 15.2cm 부포도 피트에 포함된다는 일본 블로그 정보 - http://rankasan.hatenadiary.com/entry/2016/06/13/163132 * 15.2cm 주포 피트에 15.2cm 부포 피트이므로 (동구경이므로), 15.5cm 부포도 노패널티로 가정 * OTO 152mm가 해외 부포여서 보정이 없다고 가정하고, 15cm 연장부포 또한 무보정으로 가정 */ FitTable_Medium.Add(6, ShipFitClassUtil.ParseMedium("-1,0 ,-1,-1,-1,-1,-1,-1,+1")); // 20.3cm連装砲 FitTable_Medium.Add(90, ShipFitClassUtil.ParseMedium("-1,0 ,-1,-1,-1,-1,-1,-1, 0")); // 20.3cm(2号)連装砲 FitTable_Medium.Add(50, ShipFitClassUtil.ParseMedium("-1,0 ,-1,-1,-1,-1,-1,-1,+1")); // 20.3cm(3号)連装砲 FitTable_Medium.Add(123, ShipFitClassUtil.ParseMedium("-1,0 ,-1,-1,-1,-1,-1,-1, 0")); // SKC34 20.3cm連装砲 FitTable_Medium.Add(162, ShipFitClassUtil.ParseMedium("-1,0 ,-1,-1,-1,-1,-1,-1, 0")); // 203mm/53 連装砲 FitTable_Medium.Add(5, ShipFitClassUtil.ParseMedium(" 0, 0, 0, 0, 0, 0, 0, 0, 0")); // 15.5cm三連装砲 (主砲) FitTable_Medium.Add(12, ShipFitClassUtil.ParseMedium(" 0, 0, 0, 0, 0, 0, 0, 0, 0")); // 15.5cm三連装副砲 (副砲) FitTable_Medium.Add(4, ShipFitClassUtil.ParseMedium("+1,+1,+1,+1,+1,+1, 0,+1, 0")); // 14cm単装砲 FitTable_Medium.Add(119, ShipFitClassUtil.ParseMedium("+1,+1,+1,+1,+1,+1, 0,+1, 0")); // 14cm連装砲 FitTable_Medium.Add(11, ShipFitClassUtil.ParseMedium("+1,+1,+1,+1,+1,+1, 0,+1, 0")); // 15.2cm単装砲 (副砲) FitTable_Medium.Add(65, ShipFitClassUtil.ParseMedium("+1,+1,+1,+1,+1,+1, 0,+1, 0")); // 15.2cm連装砲 FitTable_Medium.Add(139, ShipFitClassUtil.ParseMedium("+1,+1,+1,+1,+1,+1, 0,+1, 0")); // 15.2cm連装砲改 FitTable_Medium.Add(77, ShipFitClassUtil.ParseMedium(" 0, 0, 0, 0, 0, 0, 0, 0, 0")); // 15cm連装副砲 FitTable_Medium.Add(134, ShipFitClassUtil.ParseMedium(" 0, 0, 0, 0, 0, 0, 0, 0, 0")); // OTO 152mm三連装速射砲 // FitTable_Medium.Add(0, ShipFitClassUtil.ParseMedium("- ,- ,- ,- ,- ,- ,- ,- ,- ,- ")); // NAME #endregion }