public void MonsterDataReflect(IMonsterData monsterData, IMonsterData enemyMonsterData)
    {
        //技をTextに反映
        for (int i = 0; i < commandParts_.GetCommandWindowTextsCount(); ++i)
        {
            commandParts_.CommandWindowChoiceTextChange(i, " " + t13.Utility.StringFullSpaceBackTamp(monsterData.GetSkillDatas(i).skillName_, 7));
        }

        //文字の色の変更
        //for (int i = 0; i < commandParts_.GetCommandWindowTextsCount(); ++i) {
        //	int simillarResult = enemyMonsterData.ElementSimillarCheckerForValue(monsterData.GetSkillDatas(i).elementType_);
        //
        //	if (simillarResult == 0) commandParts_.GetCommandWindowTexts(i).color = new Color32(195, 195, 195, 255);
        //	else if (simillarResult == 1) commandParts_.GetCommandWindowTexts(i).color = new Color32(52, 130, 207, 255);
        //	else if (simillarResult == 2) commandParts_.GetCommandWindowTexts(i).color = new Color32(50, 50, 50, 255);
        //	else if (simillarResult == 3) commandParts_.GetCommandWindowTexts(i).color = new Color32(207, 52, 112, 255);
        //}
        //for (int i = 0; i < commandParts_.GetCommandWindowTextsCount(); ++i) {
        //	commandParts_.CommandWindowChoiceColorChange(i, monsterData.GetSkillDatas(i).elementType_.GetColor());
        //}

        //技のフレームの変更
        for (int i = 0; i < skillFrameSprites_.Count; ++i)
        {
            skillFrameSprites_[i].sprite = monsterData.GetSkillDatas(i).elementType_.GetSkillFrameSprite();
        }
    }
    public void MonsterDataReflect(IMonsterData referMonsterData)
    {
        string elementInfoString = "";

        if (referMonsterData.tribesData_.firstElement_.state_ != ElementType.None)
        {
            elementInfoString += referMonsterData.tribesData_.firstElement_.GetName();
        }
        if (referMonsterData.tribesData_.secondElement_.state_ != ElementType.None)
        {
            elementInfoString += " /" + referMonsterData.tribesData_.secondElement_.GetName();
        }

        monsterTypeInfoText_.text = "タイプ " + elementInfoString;

        monsterParameterBarsParts_[0].ParameterReflect(referMonsterData.RealHitPoint());
        monsterParameterBarsParts_[1].ParameterReflect(referMonsterData.RealAttack());
        monsterParameterBarsParts_[2].ParameterReflect(referMonsterData.RealDefense());
        monsterParameterBarsParts_[3].ParameterReflect(referMonsterData.RealSpeed());

        //モンスターの画像の反映
        if (referMonsterData.battleData_.HaveAbnormalType(AbnormalType.Hero))
        {
            monsterSprite_.sprite = referMonsterData.tribesData_.frontDreamTex_;
        }
        else
        {
            monsterSprite_.sprite = referMonsterData.tribesData_.frontTex_;
        }
    }
Exemplo n.º 3
0
    public void MonsterSwap(int changeNumber, int baseNumber)
    {
        IMonsterData temp = monsterDatas_[baseNumber];

        monsterDatas_[baseNumber]   = monsterDatas_[changeNumber];
        monsterDatas_[changeNumber] = temp;
    }
Exemplo n.º 4
0
    //Sleep
    static private string SleepAddAbnormalTypeExecute(AddAbnormalTypeState mine, IMonsterData monsterData)
    {
        if (monsterData.battleData_.firstAbnormalState_.state_ == AbnormalType.Hero)
        {
            return(monsterData.uniqueName_ + "には\n" +
                   "きかないようだ・・・");
        }

        if (monsterData.battleData_.firstAbnormalState_.state_ == AbnormalType.None)
        {
            monsterData.battleData_.firstAbnormalState_.state_ = AbnormalType.Sleep;
        }
        else if (monsterData.battleData_.secondAbnormalState_.state_ == AbnormalType.None &&
                 monsterData.battleData_.firstAbnormalState_.state_ != AbnormalType.Sleep)
        {
            monsterData.battleData_.secondAbnormalState_.state_ = AbnormalType.Sleep;
        }
        else
        {
            return(monsterData.uniqueName_ + "には\n" +
                   "きかないようだ・・・");
        }

        return(monsterData.uniqueName_ + "は\n" +
               "ねむりに おちた!");
    }
Exemplo n.º 5
0
    //HitRate
    static private string HitRateAddParameterExecute(AddParameterRankState mine, IMonsterData monsterData)
    {
        monsterData.battleData_.HitRateParameterRankAdd(mine.addParameterRank_);

        return(monsterData.uniqueName_ + "の\n"
               + "めいちゅうりつが " + RankStringGenerate(mine.addParameterRank_));
    }
Exemplo n.º 6
0
        public void DoesMatchCombo_ReturnsAsExpected(List <int> i_comboAttempt, bool i_expectedMatch)
        {
            IMonsterData mockMonsterData = Substitute.For <IMonsterData>();

            mockMonsterData.GetAttackCombo().Returns(new List <int>()
            {
                1, 2, 3
            });

            List <IGamePiece> comboAttempt = new List <IGamePiece>();

            if (i_comboAttempt != null)
            {
                foreach (int pieceType in i_comboAttempt)
                {
                    IGamePiece mockPiece = Substitute.For <IGamePiece>();
                    mockPiece.PieceType.Returns(pieceType);
                    comboAttempt.Add(mockPiece);
                }
            }

            GameMonster systemUnderTest = new GameMonster(mockMonsterData);

            bool doesMatch = systemUnderTest.DoesMatchCombo(comboAttempt);

            Assert.AreEqual(i_expectedMatch, doesMatch);
        }
Exemplo n.º 7
0
        public void WhenCreating_StatsSetToDataValues()
        {
            List <int> mockAttackCombo = new List <int>()
            {
                1, 2, 3
            };

            IMonsterData mockData = Substitute.For <IMonsterData>();

            mockData.GetDefense().Returns(10);
            mockData.GetDefenseType().Returns(2);
            mockData.GetAttackRate().Returns(1500);
            mockData.GetDamage().Returns(1000);
            mockData.GetDamageType().Returns(30);
            mockData.GetAttackCombo().Returns(mockAttackCombo);
            mockData.GetId().Returns("Blob");

            GameMonster systemUnderTest = new GameMonster(mockData);

            Assert.AreEqual(10, systemUnderTest.Defense);
            Assert.AreEqual(2, systemUnderTest.DefenseType);
            Assert.AreEqual(1500, systemUnderTest.AttackRate);
            Assert.AreEqual(1000, systemUnderTest.AttackPower);
            Assert.AreEqual(30, systemUnderTest.AttackType);
            Assert.AreEqual(mockAttackCombo, systemUnderTest.AttackCombo);
            Assert.AreEqual("Blob", systemUnderTest.Id);
        }
Exemplo n.º 8
0
    //Defense
    static private string DefenseAddParameterExecute(AddParameterRankState mine, IMonsterData monsterData)
    {
        monsterData.battleData_.DefenseParameterRankAdd(mine.addParameterRank_);

        return(monsterData.uniqueName_ + "の\n"
               + "ぼうぎょが " + RankStringGenerate(mine.addParameterRank_));
    }
Exemplo n.º 9
0
    //Speed
    static private string SpeedAddParameterExecute(AddParameterRankState mine, IMonsterData monsterData)
    {
        monsterData.battleData_.SpeedParameterRankAdd(mine.addParameterRank_);

        return(monsterData.uniqueName_ + "の\n"
               + "すばやさが " + RankStringGenerate(mine.addParameterRank_));
    }
    public void MonsterStatusInfoSetEventSet(IMonsterData monsterData)
    {
        //名前をTextに反映
        string monsterViewName = t13.Utility.StringFullSpaceBackTamp(monsterData.uniqueName_, 6);

        AllEventManager.GetInstance().EventTextSet(baseParts_.GetInfoNameEventText(), monsterViewName);
        AllEventManager.GetInstance().EventTextsUpdateExecuteSet(EventTextEventManagerExecute.CharaUpdate);
        AllEventManager.GetInstance().AllUpdateEventExecute();

        //HPをTextに反映
        //HPゲージの調整
        float hpGaugeFillAmount = t13.Utility.ValueForPercentage(monsterData.RealHitPoint(), monsterData.nowHitPoint_, 1);

        AllEventManager.GetInstance().HpGaugePartsSet(frameParts_.GetHpGaugeParts(), hpGaugeFillAmount, monsterData);
        AllEventManager.GetInstance().HpGaugePartsUpdateExecuteSet(HpGaugePartsEventManagerExecute.GaugeUpdate);
        AllEventManager.GetInstance().AllUpdateEventExecute();

        //状態異常の反映
        monsterData.battleData_.AbnormalSetStatusInfoPartsEventSet(this);


        //タイプの反映
        firstElementInfoParts_.ElementReflectEventSet(monsterData.tribesData_.firstElement_);
        secondElementInfoParts_.ElementReflectEventSet(monsterData.tribesData_.secondElement_);
    }
Exemplo n.º 11
0
    //Hero
    static private string HeroAddAbnormalTypeExecute(AddAbnormalTypeState mine, IMonsterData monsterData)
    {
        monsterData.battleData_.firstAbnormalState_.state_  = AbnormalType.Hero;
        monsterData.battleData_.secondAbnormalState_.state_ = AbnormalType.None;

        return(monsterData.uniqueName_ + "は\n" +
               "ゆめで みたされた!");
    }
Exemplo n.º 12
0
    //None
    static private string NoneAddParameterExecute(AddParameterRankState mine, IMonsterData monsterData)
    {
        string rankString = "";

        rankString = "ーー";

        return(rankString);
    }
Exemplo n.º 13
0
    public void ProcessStateGaugeUpdateExecute(float timeRegulation, t13.TimeFluctProcess timeFluctProcess, IMonsterData referMonsterData, float endFillAmount)
    {
        timeRegulation_   = timeRegulation;
        referMonsterData_ = referMonsterData;
        endFillAmount_    = endFillAmount;
        timeFluct_.GetProcessState().state_ = timeFluctProcess;

        processState_.state_ = HpGaugePartsProcess.GaugeUpdate;
    }
    /// <summary>
    ///メイン計算式
    /// </summary>
    static public int BattleDamageCalculate(IMonsterData attackMonster, IMonsterData defenseMonster, ISkillData attackSkill)
    {
        //乱数の値
        float[] randomValue = new float[16] {
            0.85f, 0.86f, 0.87f, 0.88f, 0.89f,
            0.90f, 0.91f, 0.92f, 0.93f, 0.94f, 0.95f, 0.96f, 0.97f, 0.98f, 0.99f,
            1.00f,
        };

        //乱数
        float randomResult = randomValue[AllSceneManager.GetInstance().GetRandom().Next(0, 16)];

        //モンスターのタイプと技のタイプの一致か否か
        float typeMatch = 1;

        if (attackMonster.tribesData_.firstElement_.state_ == attackSkill.elementType_.state_ ||
            attackMonster.tribesData_.secondElement_.state_ == attackSkill.elementType_.state_)
        {
            typeMatch = 1.5f;
        }

        //敵モンスターと技のタイプ相性
        float typeSimillar = defenseMonster.ElementSimillarChecker(attackSkill.elementType_);

        //補正値の初期値 4096
        //技の最終威力
        int realSkillPower = (int)(attackSkill.effectValue_ * (4096 / 4096));

        //物理か特殊か
        //EffectAttackTypeState ea = attackSkill.effectValueType_.GetEffectAttackTypeState();

        //モンスターの最終攻撃力
        int realMonsterAttack = 0;
        {
            //if (ea.state_ == EffectAttackType.Normal) {
            //	realMonsterAttack = (int)(attackMonster.RealAttack() * attackMonster.battleData_.RealAttackParameterRank() * (4096 / 4096));
            //}
            realMonsterAttack = (int)(attackMonster.RealAttack() * attackMonster.battleData_.RealAttackParameterRank() * (4096 / 4096));
        }

        //敵モンスターの最終防御力
        int realMonsterDefense = 0;
        {
            //if (ea.state_ == EffectAttackType.Normal) {
            //	realMonsterDefense = (int)(defenseMonster.RealDefense() * defenseMonster.battleData_.RealDefenseParameterRank() * (4096 / 4096));
            //}
            realMonsterDefense = (int)(defenseMonster.RealDefense() * defenseMonster.battleData_.RealDefenseParameterRank() * (4096 / 4096));
        }

        //(((レベル×2/5+2)×威力×A/D)/50+2)
        //最終ダメージ
        int realDamage = (int)((((attackMonster.level_ * 2 / 5 + 2) * realSkillPower * realMonsterAttack / realMonsterDefense) / 50)
                               * randomResult * typeMatch * typeSimillar);

        return(realDamage);
    }
Exemplo n.º 15
0
        public void WhenCreating_RemainingHP_EqualsMaxHP()
        {
            IMonsterData mockData = Substitute.For <IMonsterData>();

            mockData.GetMaxHP().Returns(101);

            GameMonster systemUnderTest = new GameMonster(mockData);

            Assert.AreEqual(101, systemUnderTest.RemainingHP);
        }
    public void MonsterAdd(IMonsterData addMonster)
    {
        if (haveMonsterSize_ == MONSTER_MAX_SIZE)
        {
            return;
        }

        monsterDatas_[haveMonsterSize_] = addMonster;
        haveMonsterSize_ += 1;
    }
Exemplo n.º 17
0
 private void SetStats(IMonsterData i_data)
 {
     RemainingHP = i_data.GetMaxHP();
     Defense     = i_data.GetDefense();
     DefenseType = i_data.GetDefenseType();
     AttackPower = i_data.GetDamage();
     AttackType  = i_data.GetDamageType();
     AttackRate  = i_data.GetAttackRate();
     AttackCombo = i_data.GetAttackCombo();
     Id          = i_data.GetId();
 }
    public override void MonsterAdd(IMonsterData addMonster)
    {
        if (haveMonsterSize_ == MONSTER_MAX_SIZE)
        {
            return;
        }

        monsterDatas_[haveMonsterSize_] = addMonster;
        haveMonsterSize_         += 1;
        battleActiveMonsterSize_ += 1;
    }
Exemplo n.º 19
0
        public void AfterTick_AttackCycleResetsToZero_WhenTickEqualsRate()
        {
            IMonsterData mockMonsterData = Substitute.For <IMonsterData>();

            mockMonsterData.GetAttackRate().Returns(1000);

            GameMonster systemUnderTest = new GameMonster(mockMonsterData);

            systemUnderTest.Tick(1000);

            Assert.AreEqual(0, systemUnderTest.AttackCycle);
        }
Exemplo n.º 20
0
        public void AfterTick_IfLappingCycle_ValueIsAsExpected()
        {
            IMonsterData mockMonsterData = Substitute.For <IMonsterData>();

            mockMonsterData.GetAttackRate().Returns(1000);

            GameMonster systemUnderTest = new GameMonster(mockMonsterData);

            systemUnderTest.Tick(2254);

            Assert.AreEqual(254, systemUnderTest.AttackCycle);
        }
Exemplo n.º 21
0
        public void GetAttackProgress_ReturnsAsExpected(long i_curAttackCycle, long i_attackRate, float i_expected)
        {
            IMonsterData mockMonsterData = Substitute.For <IMonsterData>();

            mockMonsterData.GetAttackRate().Returns(i_attackRate);

            GameMonster systemUnderTest = new GameMonster(mockMonsterData);

            systemUnderTest.Tick(i_curAttackCycle);

            Assert.AreEqual(i_expected, systemUnderTest.GetAttackProgress());
        }
Exemplo n.º 22
0
        public void AfterTick_IfLappingCycle_CorrectNumberOfAttacksSent(long i_tick, int i_expectedAttacks)
        {
            IMonsterData mockMonsterData = Substitute.For <IMonsterData>();

            mockMonsterData.GetAttackRate().Returns(1000);

            GameMonster systemUnderTest = new GameMonster(mockMonsterData);

            systemUnderTest.Tick(i_tick);

            MyMessenger.Instance.Received(i_expectedAttacks).Send <IGameMonster>(GameMessages.MONSTER_ATTACK, systemUnderTest);
        }
Exemplo n.º 23
0
        public void NegativeTicks_DoNotChangeAttackCycle()
        {
            IMonsterData mockMonsterData = Substitute.For <IMonsterData>();

            mockMonsterData.GetAttackRate().Returns(1000);

            GameMonster systemUnderTest = new GameMonster(mockMonsterData);

            systemUnderTest.Tick(-1000);

            Assert.AreEqual(0, systemUnderTest.AttackCycle);
        }
Exemplo n.º 24
0
        public void AfterTick_WhenAttackIsNotCycled_ValueIsAsExpected()
        {
            IMonsterData mockMonsterData = Substitute.For <IMonsterData>();

            mockMonsterData.GetAttackRate().Returns(1000);

            GameMonster systemUnderTest = new GameMonster(mockMonsterData);

            systemUnderTest.Tick(100);

            Assert.AreEqual(100, systemUnderTest.AttackCycle);
        }
    /// <summary>
    ///乱数平均、急所なし、計算式
    /// </summary>
    static public int TestDamageCalculate(IMonsterData attackMonster, IMonsterData defenseMonster, ISkillData attackSkill)
    {
        //乱数
        float randomResult = 9.5f;

        //モンスターのタイプと技のタイプの一致か否か
        float typeMatch = 1;

        if (attackMonster.tribesData_.firstElement_.state_ == attackSkill.elementType_.state_ ||
            attackMonster.tribesData_.secondElement_.state_ == attackSkill.elementType_.state_)
        {
            typeMatch = 1.5f;
        }

        //敵モンスターと技のタイプ相性
        float typeSimillar = defenseMonster.ElementSimillarChecker(attackSkill.elementType_);

        //補正値の初期値 4096
        //技の最終威力
        int realSkillPower = (int)(attackSkill.effectValue_ * (4096 / 4096));

        //物理か特殊か
        //EffectAttackTypeState ea = attackSkill.effectValueType_.GetEffectAttackTypeState();

        //モンスターの最終攻撃力
        int realMonsterAttack = 0;
        {
            //if (ea.state_ == EffectAttackType.Normal) {
            //	realMonsterAttack = (int)(attackMonster.RealAttack() * attackMonster.battleData_.RealAttackParameterRank() * (4096 / 4096));
            //}
            realMonsterAttack = (int)(attackMonster.RealAttack() * attackMonster.battleData_.RealAttackParameterRank() * (4096 / 4096));
        }

        //敵モンスターの最終防御力
        int realMonsterDefense = 0;
        {
            //if (ea.state_ == EffectAttackType.Normal) {
            //	realMonsterDefense = (int)(defenseMonster.RealDefense() * defenseMonster.battleData_.RealDefenseParameterRank() * (4096 / 4096));
            //}
            realMonsterDefense = (int)(defenseMonster.RealDefense() * defenseMonster.battleData_.RealDefenseParameterRank() * (4096 / 4096));
        }

        //(((レベル×2/5+2)×威力×A/D)/50+2)
        //最終ダメージ
        int realDamage = (int)((((attackMonster.level_ * 2 / 5 + 2) * realSkillPower * realMonsterAttack / realMonsterDefense) / 50)
                               * randomResult * typeMatch * typeSimillar);

        return(realDamage);
    }
 private void SetMonsters()
 {
     Monsters = new List <IMonsterWaveData>();
     if (Data.GetMonsters() != null)
     {
         for (int i = 0; i < mData.GetNumWaves(); ++i)
         {
             IMonsterWaveData wave = new MonsterWaveData();
             foreach (string monsterId in Data.GetMonsters())
             {
                 IMonsterData monsterData = mMonsterDataManager.GetData(monsterId);
                 IGameMonster monster     = new GameMonster(monsterData);
                 wave.AddMonster(monster);
             }
             Monsters.Add(wave);
         }
     }
 }
Exemplo n.º 27
0
        public void WhenAttackedByPlayer_ExpectedDamageRemovedFromRemainingHP(int i_playerAttackPower, int i_monsterDefense, int i_expectedDamage)
        {
            IGamePlayer mockPlayer = Substitute.For <IGamePlayer>();

            mockPlayer.GetAttackPowerForType(Arg.Any <int>()).Returns(i_playerAttackPower);

            IMonsterData mockMonsterData = Substitute.For <IMonsterData>();

            mockMonsterData.GetMaxHP().Returns(100);
            mockMonsterData.GetDefense().Returns(i_monsterDefense);

            GameMonster systemUnderTest = new GameMonster(mockMonsterData);

            systemUnderTest.AttackedByPlayer(mockPlayer);

            int expectedHP = 100 - i_expectedDamage;

            Assert.AreEqual(expectedHP, systemUnderTest.RemainingHP);
        }
    public void MonsterStatusInfoSet(IMonsterData monsterData)
    {
        //名前をTextに反映
        string monsterViewName = t13.Utility.StringFullSpaceBackTamp(monsterData.uniqueName_, 6);

        baseParts_.GetInfoNameEventText().GetText().text = monsterViewName;

        //HPをTextに反映
        //HPゲージの調整
        float hpGaugeFillAmount = t13.Utility.ValueForPercentage(monsterData.RealHitPoint(), monsterData.nowHitPoint_, 1);

        frameParts_.GetHpGaugeParts().ProcessStateGaugeUpdateExecute(0, t13.TimeFluctProcess.Liner, monsterData, hpGaugeFillAmount);

        //状態異常の反映
        monsterData.battleData_.AbnormalSetStatusInfoParts(this);

        //タイプの反映
        firstElementInfoParts_.ElementReflect(monsterData.tribesData_.firstElement_);
        secondElementInfoParts_.ElementReflect(monsterData.tribesData_.secondElement_);
    }
Exemplo n.º 29
0
 public BeastController(IMonsterData monsterData)
 {
     _monsterData = monsterData;
 }
 public void HpGaugePartsSet(HpGaugeParts hpGaugeParts, IMonsterData monsterData, float endFillAmount)
 {
     hpGaugesParts_.Add(hpGaugeParts);
     referMonsterDatas_.Add(monsterData);
     endFillAmounts_.Add(endFillAmount);
 }