コード例 #1
0
    public override ushort GetDamage(LightMonsterStatus attacker, LightMonsterStatus defender)
    {
        var   moveInfo = GetMonsterMoveCalculationInfo();
        float a        = attacker.Level;
        float b        = moveInfo.MoveCategory == MonsterMoveCategory.PHYSICAL ? attacker.Attack : attacker.Special;
        float c        = moveInfo.Power;
        float d        = moveInfo.MoveCategory == MonsterMoveCategory.PHYSICAL ? defender.Defense : defender.Special;
        float x        = moveInfo.MoveType == attacker.PrimaryType || moveInfo.MoveType == attacker.SecondaryType ? 1.5f : 1f;
        float y        = MonsterBattleMatchup.GetTypeMatchupDamage(moveInfo.MoveType, defender.PrimaryType, defender.SecondaryType);
        float z        = UnityEngine.Random.Range(217, 256);
        var   damage   = (((2f * a / 5f + 2f) * c * (b / d)) / 50f + 2f) * x * y * (z / 255f);

        return((ushort)damage);
    }
コード例 #2
0
    public void UpdateDetailedStatus(Sprite monsterSprite, string trainer, string mName, LightMonsterStatus monsterStatus)
    {
        UpdateMonsterStatus(mName, monsterStatus.Level, monsterStatus.CurrentHP, monsterStatus.HP);
        monsterImage.sprite = monsterSprite;
        ot.text             = trainer;
        attackStat.text     = monsterStatus.Attack.ToString();
        defenseStat.text    = monsterStatus.Defense.ToString();
        specialStat.text    = monsterStatus.Special.ToString();
        speedStat.text      = monsterStatus.Speed.ToString();

        type1.text = monsterStatus.PrimaryType.ToString();
        type2.text = monsterStatus.SecondaryType.ToString();

        type2.gameObject.SetActive(monsterStatus.SecondaryType != MonsterType.NONE);
        type2Label.gameObject.SetActive(monsterStatus.SecondaryType != MonsterType.NONE);

        idNumber.text      = monsterStatus.IdNumber.ToString();
        ot.text            = trainer;
        monsterNumber.text = monsterStatus.MonsterNumber.ToString();

        //TODO HIDE FOR NOW. FIGURE OUT HOW STATUSES ARE DONE LATER.
        statusLabel.gameObject.SetActive(false);
        status.gameObject.SetActive(false);
    }
コード例 #3
0
 public virtual ushort GetDamage(LightMonsterStatus attacker, LightMonsterStatus defender)
 {
     return(0);
 }