Beispiel #1
0
        public static bool IsAttrLarge(GirlMemberInfo girl1, GirlMemberInfo girl2, List <int> attrs)
        {
            int AFiltNum = 0;
            int BFiltNum = 0;
            int AValue   = 0;
            int BValue   = 0;

            foreach (int attr in attrs)
            {
                if (girl1.GetAttr(attr) > girl1.GetInverseAttr(attr))
                {
                    ++AFiltNum;
                }
                AValue += girl1.GetAttr(attr);

                if (girl2.GetAttr(attr) > girl2.GetInverseAttr(attr))
                {
                    ++BFiltNum;
                }
                BValue += girl2.GetAttr(attr);
            }

            if (AFiltNum == BFiltNum)
            {
                return(AValue > BValue);
            }

            return(AFiltNum > BFiltNum);
        }
Beispiel #2
0
        public static bool CanGirlSkillUse(GirlMemberInfo useSkillGirl, SkillInfoRecord skillInfo, List <GirlMemberInfo> fightGirls)
        {
            switch (skillInfo.ActTerm)
            {
            case SKILL_ACT_TERM.NEED_LARGE1:
                return(IsFightGirlLarge1(useSkillGirl, fightGirls));

            case SKILL_ACT_TERM.NEED_LARGE2:
                return(IsFightGirlLarge2(useSkillGirl, fightGirls));

            case SKILL_ACT_TERM.NEED_SMALL1:
                return(IsFightGirlSmall1(useSkillGirl, fightGirls));

            case SKILL_ACT_TERM.NEED_SMALL2:
                return(IsFightGirlSmall2(useSkillGirl, fightGirls));

            case SKILL_ACT_TERM.NEED_SAME1:
                return(IsFightGirlSame1(useSkillGirl, fightGirls));

            case SKILL_ACT_TERM.NEED_SAME2:
                return(IsFightGirlSame2(useSkillGirl, fightGirls));

            case SKILL_ACT_TERM.NEED_SERIES:
                return(IsFightGirlSeries(useSkillGirl, fightGirls));
            }

            return(false);
        }
Beispiel #3
0
        public bool TryCaptureGirl(GirlMemberInfo girlInfo, int gold, int luxury, int diamond)
        {
            if (!PlayerData.Instance.TryDecAll(new int[] { gold, luxury, diamond }))
            {
                ErrorManager.PushAndDisplayError("resource not enough");
                return(false);
            }

            int captureRate = CulCaptureGirlRate(girlInfo, gold, luxury, diamond);
            int randomRate  = Random.Range(0, 10001);

            Hashtable hash = new Hashtable();

            if (randomRate < captureRate)
            {
                GirlMemberPack.Instance.AddNewGirl(girlInfo);

                hash.Add("Sucess", true);
                GameCore.PushEvent(EVENT_TYPE.EVENT_LOGIC_CAPTURE_GIRL, hash);

                return(true);
            }
            else
            {
                hash.Add("Sucess", false);
                GameCore.PushEvent(EVENT_TYPE.EVENT_LOGIC_CAPTURE_GIRL, hash);

                return(false);
            }
        }
Beispiel #4
0
 public void Calculate(GirlMemberInfo girl, GuestInfoRecord guest, SkillInfoRecord skill, int orgAttract, int orgPoint, out int outAttract, out int outPoint)
 {
     outAttract = orgAttract;
     outPoint   = orgPoint;
     //foreach (var buff in skill.Buffs)
     {
         _BuffManager.Calculate(girl, guest, skill.Buffs[0], orgAttract, orgPoint, out outAttract, out outPoint);
     }
 }
Beispiel #5
0
        public bool SwapGroupGirl(GirlMemberInfo orgGirl, GirlMemberInfo newGirl)
        {
            if (_NormalFightGroup.Remove(orgGirl))
            {
                _NormalFightGroup.Add(newGirl);

                return(true);
            }

            return(false);
        }
Beispiel #6
0
        public override List <GirlMemberInfo> GetEnemyGirl()
        {
            var girls = GirlMemberPack.Instance.GetRandomGirlInStar(_ObjRecord.GirlStar, 1);

            GirlMemberInfo fightGirl = new GirlMemberInfo(girls[0].Id);

            List <GirlMemberInfo> fightgirls = new List <GirlMemberInfo>();

            fightgirls.Add(fightGirl);
            return(fightgirls);
        }
Beispiel #7
0
        public bool AddToNormalFightGroup(GirlMemberInfo girlInfo)
        {
            if (_NormalFightGroup.Contains(girlInfo))
            {
                ErrorManager.PushAndDisplayError("Girl already in group!");
                return(false);
            }

            _NormalFightGroup.Add(girlInfo);

            return(true);
        }
Beispiel #8
0
        public override List <GirlMemberInfo> GetEnemyGirl()
        {
            var randomIds = GameBase.GameRandom.GetIndependentRandoms(0, TableReader.GirlInfo.Records.Count, 3);


            List <GirlMemberInfo> fightgirls = new List <GirlMemberInfo>();

            foreach (var randomID in randomIds)
            {
                GirlMemberInfo fightGirl = new GirlMemberInfo(randomID.ToString());
                fightgirls.Add(fightGirl);
            }

            return(fightgirls);
        }
Beispiel #9
0
        public static bool IsFightGirlLarge1(GirlMemberInfo useSkillGirl, List <GirlMemberInfo> fightGirls)
        {
            int star           = useSkillGirl.GirlInfoRecord.Star;
            int conditionCount = 0;

            foreach (var girl in fightGirls)
            {
                if (girl == useSkillGirl)
                {
                    continue;
                }
                if (girl.GirlInfoRecord.Star > star)
                {
                    ++conditionCount;
                }
            }

            if (conditionCount >= 1)
            {
                return(true);
            }
            return(false);
        }
Beispiel #10
0
        public static bool IsFightGirlSeries(GirlMemberInfo useSkillGirl, List <GirlMemberInfo> fightGirls)
        {
            if (fightGirls.Count != 3)
            {
                return(false);
            }

            List <int> stars = new List <int>();

            foreach (var girl in fightGirls)
            {
                stars.Add(girl.GirlInfoRecord.Star);
            }

            stars.Sort();
            for (int i = 1; i < stars.Count; ++i)
            {
                if (stars[i] - stars[i - 1] > 1)
                {
                    return(false);
                }
            }
            return(true);
        }
Beispiel #11
0
 public bool IsGirlInSpecilFight(GirlMemberInfo girl)
 {
     return(FightingGirls.Contains(girl));
 }
Beispiel #12
0
 public bool AddGroupGirl(GirlMemberInfo orgGirl)
 {
     _NormalFightGroup.Add(orgGirl);
     return(true);
 }
Beispiel #13
0
 public void AddNewGirl(GirlMemberInfo girlInfo)
 {
     GirlList.Add(girlInfo);
     LogManager.Log("AddNewGirl:" + girlInfo.GirlInfoRecord.Id);
 }
Beispiel #14
0
        public override void Calculate(GirlMemberInfo girl, GuestInfoRecord guest, BuffInfoRecord buff, int orgAttract, int orgPoint, out int outAttract, out int outPoint)
        {
            Impact_ModifyCulRecord impactRecord = TableReader.Impact_ModifyCul.GetRecord(buff.Impact.ID);

            int valueAttract = 0;
            int valuePoint   = 0;

            outAttract = orgAttract;
            outPoint   = orgPoint;
            switch (impactRecord.ActTarget)
            {
            case IMPACT_MODIFY_TARGET.ATTR1A:
                valueAttract = (int)(girl.Attr1A * ((impactRecord.ActPersent) * 0.0001f) * guest.Attr1AAttract);
                valuePoint   = (int)(girl.Attr1A * ((impactRecord.ActPersent) * 0.0001f) * guest.Attr1APoint);
                outAttract  += valueAttract;
                outPoint    += valuePoint;
                break;

            case IMPACT_MODIFY_TARGET.ATTR1B:
                valueAttract = (int)(girl.Attr1B * ((impactRecord.ActPersent) * 0.0001f) * guest.Attr1BAttract);
                valuePoint   = (int)(girl.Attr1B * ((impactRecord.ActPersent) * 0.0001f) * guest.Attr1BPoint);
                outAttract  += valueAttract;
                outPoint    += valuePoint;
                break;

            case IMPACT_MODIFY_TARGET.ATTR2A:
                valueAttract = (int)(girl.Attr2A * ((impactRecord.ActPersent) * 0.0001f) * guest.Attr2AAttract);
                valuePoint   = (int)(girl.Attr2A * ((impactRecord.ActPersent) * 0.0001f) * guest.Attr2APoint);
                outAttract  += valueAttract;
                outPoint    += valuePoint;
                break;

            case IMPACT_MODIFY_TARGET.ATTR2B:
                valueAttract = (int)(girl.Attr2B * ((impactRecord.ActPersent) * 0.0001f) * guest.Attr2BAttract);
                valuePoint   = (int)(girl.Attr2B * ((impactRecord.ActPersent) * 0.0001f) * guest.Attr2BPoint);
                outAttract  += valueAttract;
                outPoint    += valuePoint;
                break;

            case IMPACT_MODIFY_TARGET.ATTR3A:
                valueAttract = (int)(girl.Attr2A * ((impactRecord.ActPersent) * 0.0001f) * guest.Attr2AAttract);
                valuePoint   = (int)(girl.Attr2A * ((impactRecord.ActPersent) * 0.0001f) * guest.Attr2APoint);
                outAttract  += valueAttract;
                outPoint    += valuePoint;
                break;

            case IMPACT_MODIFY_TARGET.ATTR3B:
                valueAttract = (int)(girl.Attr3B * ((impactRecord.ActPersent) * 0.0001f) * guest.Attr3BAttract);
                valuePoint   = (int)(girl.Attr3B * ((impactRecord.ActPersent) * 0.0001f) * guest.Attr3BPoint);
                outAttract  += valueAttract;
                outPoint    += valuePoint;
                break;

            case IMPACT_MODIFY_TARGET.ATTRACK:
                valueAttract = (int)(orgAttract * ((impactRecord.ActPersent + 10000) * 0.0001f));
                outAttract   = valueAttract;
                break;

            case IMPACT_MODIFY_TARGET.POINT:
                valuePoint = (int)(orgPoint * ((impactRecord.ActPersent + 10000) * 0.0001f));
                outPoint   = valuePoint;
                break;
            }
        }
Beispiel #15
0
 public virtual void Calculate(GirlMemberInfo girl, GuestInfoRecord guest, BuffInfoRecord buff, int orgAttract, int orgPoint, out int outAttract, out int outPoint)
 {
     outAttract = orgAttract;
     outPoint   = orgPoint;
 }
Beispiel #16
0
 public bool IsGirlInWebcamFight(GirlMemberInfo girl)
 {
     return(WebcamGirls.Contains(girl));
 }
Beispiel #17
0
        public int CulCaptureGirlRate(GirlMemberInfo girlInfo, int gold, int luxury, int diamond)
        {
            int captureRate = 0;

            if (girlInfo.GirlInfoRecord.Star == 1)
            {
                captureRate += luxury * 50;
                captureRate += gold * 10;
                if (captureRate > 9999)
                {
                    captureRate = 9999;
                }

                captureRate += diamond * 1000;
            }
            else if (girlInfo.GirlInfoRecord.Star == 2)
            {
                captureRate += luxury * 50;
                captureRate += gold * 10;
                if (captureRate > 8888)
                {
                    captureRate = 8888;
                }

                captureRate += diamond * 500;
            }
            else if (girlInfo.GirlInfoRecord.Star == 3)
            {
                captureRate += luxury * 50;
                captureRate += gold * 10;
                if (captureRate > 5555)
                {
                    captureRate = 5555;
                }

                captureRate += diamond * 200;
            }
            else if (girlInfo.GirlInfoRecord.Star == 4)
            {
                captureRate += luxury * 50;
                captureRate += gold * 10;
                if (captureRate > 3333)
                {
                    captureRate = 3333;
                }

                captureRate += diamond * 150;
            }
            else if (girlInfo.GirlInfoRecord.Star == 5)
            {
                captureRate += luxury * 50;
                captureRate += gold * 10;
                if (captureRate > 1111)
                {
                    captureRate = 1111;
                }

                captureRate += diamond * 100;
            }

            return(captureRate);
        }
Beispiel #18
0
        public void Calculate(GirlMemberInfo girl, GuestInfoRecord guest, BuffInfoRecord buffRecord, int orgAttract, int orgPoint, out int outAttract, out int outPoint)
        {
            var buffBase = (BuffImpact_Base)System.Activator.CreateInstance(System.Type.GetType("GameLogic." + buffRecord.Impact.TableName));

            buffBase.Calculate(girl, guest, buffRecord, orgAttract, orgPoint, out outAttract, out outPoint);
        }