示例#1
0
        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);
        }
示例#2
0
 private int CalculateFit()
 => ShipFitClassUtil.GetFit(this.Owner.Id, this.Item.Info.Id);
示例#3
0
        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
        }