プロジェクト

全般

プロフィール

操作

ホーム - DQX

鍛冶 ダメージ範囲

#!r6rs
#!chezscheme

(import (chezscheme))

(define (make-sequence n1 n2 inc)
  (let loop ([current n2]
             [lis '()])
    (if (< current n1)
      lis
      (loop (- current inc) (cons current lis)))))

(define base-normal (make-sequence 12 18 1))
(define temperature-list (make-sequence 50 2000 50))
(define temperature-list-neppu (make-sequence 150 2000 50))

(define (make-2bai n) (* n 2))
(define base-2bai (map make-2bai base-normal))

(define (make-3bai n) (* n 3))
(define base-3bai (map make-3bai base-normal))

(define (make-1.2 n) (exact (floor (+ (* n 1.2) 1))))
(define base-1.2 (map make-1.2 base-normal))

(define (make-tekagen n) (exact (ceiling (* n 0.5))))
(define base-tekagen (map make-tekagen base-normal))

(define (make-midare n) (exact (floor (+ (* n 0.8) 1))))
(define base-midare (map make-midare base-normal))

(define (make-neppu n) (exact (ceiling (* n 2.5))))
(define base-neppu (map make-neppu base-normal))

(define (make-damage-list temperature base-list)
  (map
    (lambda (n)
      (exact (ceiling (* n (+ 1 (* (- temperature 1000) 0.0005))))))
    base-list))

(define (make-damage-table temperature-list base-list)
  (let loop ([temperature-list temperature-list]
             [lis '()])
    (if (null? temperature-list)
      lis
      (let ([current-temperature (car temperature-list)])
        (loop
          (cdr temperature-list)
          (cons
            (list
              current-temperature
              (make-damage-list current-temperature base-list))
            lis))))))

(define normal-table (make-damage-table temperature-list base-normal))
(define 2bai-table (make-damage-table temperature-list base-2bai))
(define 3bai-table (make-damage-table temperature-list base-3bai))
(define 1.2-table (make-damage-table temperature-list base-1.2))
(define tekagen-table (make-damage-table temperature-list base-tekagen))
(define midare-table (make-damage-table temperature-list base-midare))
(define neppu-table (make-damage-table temperature-list-neppu base-neppu))

(define (make-damage-range damage-table)
  (let loop ([damage-table damage-table]
             [table '()])
    (if (null? damage-table)
      (reverse table)
      (let ([current-line (car damage-table)])
        (let ([current-damage-list (cadr current-line)])
          (loop
            (cdr damage-table)
            (cons
              (list
                (car current-line)
                (list
                  (apply min current-damage-list)
                  (apply max current-damage-list)))
              table)))))))

(define normal-range (make-damage-range normal-table))
(define 2bai-range (make-damage-range 2bai-table))
(define 3bai-range (make-damage-range 3bai-table))
(define 1.2-range (make-damage-range 1.2-table))
(define tekagen-range (make-damage-range tekagen-table))
(define midare-range (make-damage-range midare-table))
(define neppu-range (make-damage-range neppu-table))

(define (display-range title range)
  (display title)
  (newline)
  (display "----------------------------------------\n")
  (let loop ([range range])
    (cond
      [(null? range)
       (display "----------------------------------------\n")
       (newline)]
      [else
        (let ([line (car range)])
          (display (car line))
          (display "℃")
          (display " : ")
          (let ([current-range-list (cadr line)])
            (display (car current-range-list))
            (display " ~ ")
            (display (cadr current-range-list))
            (newline)
            (loop (cdr range))))])))

(display-range "たたく、ねらい打ち" normal-range)
(display-range "2倍打ち、超4連打ち" 2bai-range)
(display-range "3倍打ち" 3bai-range)
(display-range "上下打ち、4連打ち、ななめ打ち" 1.2-range)
(display-range "てかげん打ち" tekagen-range)
(display-range "みだれ打ち" midare-range)
(display-range "熱風おろし" neppu-range)

実行結果:

たたく、ねらい打ち
----------------------------------------
2000℃ : 18 ~ 27
1950℃ : 18 ~ 27
1900℃ : 18 ~ 27
1850℃ : 18 ~ 26
1800℃ : 17 ~ 26
1750℃ : 17 ~ 25
1700℃ : 17 ~ 25
1650℃ : 16 ~ 24
1600℃ : 16 ~ 24
1550℃ : 16 ~ 23
1500℃ : 15 ~ 23
1450℃ : 15 ~ 23
1400℃ : 15 ~ 22
1350℃ : 15 ~ 22
1300℃ : 14 ~ 21
1250℃ : 14 ~ 21
1200℃ : 14 ~ 20
1150℃ : 13 ~ 20
1100℃ : 13 ~ 19
1050℃ : 13 ~ 19
1000℃ : 12 ~ 18
950℃ : 12 ~ 18
900℃ : 12 ~ 18
850℃ : 12 ~ 17
800℃ : 11 ~ 17
750℃ : 11 ~ 16
700℃ : 11 ~ 16
650℃ : 10 ~ 15
600℃ : 10 ~ 15
550℃ : 10 ~ 14
500℃ : 9 ~ 14
450℃ : 9 ~ 14
400℃ : 9 ~ 13
350℃ : 9 ~ 13
300℃ : 8 ~ 12
250℃ : 8 ~ 12
200℃ : 8 ~ 11
150℃ : 7 ~ 11
100℃ : 7 ~ 10
50℃ : 7 ~ 10
----------------------------------------

2倍打ち、超4連打ち
----------------------------------------
2000℃ : 36 ~ 54
1950℃ : 36 ~ 54
1900℃ : 35 ~ 53
1850℃ : 35 ~ 52
1800℃ : 34 ~ 51
1750℃ : 33 ~ 50
1700℃ : 33 ~ 49
1650℃ : 32 ~ 48
1600℃ : 32 ~ 47
1550℃ : 31 ~ 46
1500℃ : 30 ~ 45
1450℃ : 30 ~ 45
1400℃ : 29 ~ 44
1350℃ : 29 ~ 43
1300℃ : 28 ~ 42
1250℃ : 27 ~ 41
1200℃ : 27 ~ 40
1150℃ : 26 ~ 39
1100℃ : 26 ~ 38
1050℃ : 25 ~ 37
1000℃ : 24 ~ 36
950℃ : 24 ~ 36
900℃ : 23 ~ 35
850℃ : 23 ~ 34
800℃ : 22 ~ 33
750℃ : 21 ~ 32
700℃ : 21 ~ 31
650℃ : 20 ~ 30
600℃ : 20 ~ 29
550℃ : 19 ~ 28
500℃ : 18 ~ 27
450℃ : 18 ~ 27
400℃ : 17 ~ 26
350℃ : 17 ~ 25
300℃ : 16 ~ 24
250℃ : 15 ~ 23
200℃ : 15 ~ 22
150℃ : 14 ~ 21
100℃ : 14 ~ 20
50℃ : 13 ~ 19
----------------------------------------

3倍打ち
----------------------------------------
2000℃ : 54 ~ 81
1950℃ : 54 ~ 80
1900℃ : 53 ~ 79
1850℃ : 52 ~ 77
1800℃ : 51 ~ 76
1750℃ : 50 ~ 75
1700℃ : 49 ~ 73
1650℃ : 48 ~ 72
1600℃ : 47 ~ 71
1550℃ : 46 ~ 69
1500℃ : 45 ~ 68
1450℃ : 45 ~ 67
1400℃ : 44 ~ 65
1350℃ : 43 ~ 64
1300℃ : 42 ~ 63
1250℃ : 41 ~ 61
1200℃ : 40 ~ 60
1150℃ : 39 ~ 59
1100℃ : 38 ~ 57
1050℃ : 37 ~ 56
1000℃ : 36 ~ 54
950℃ : 36 ~ 53
900℃ : 35 ~ 52
850℃ : 34 ~ 50
800℃ : 33 ~ 49
750℃ : 32 ~ 48
700℃ : 31 ~ 46
650℃ : 30 ~ 45
600℃ : 29 ~ 44
550℃ : 28 ~ 42
500℃ : 27 ~ 41
450℃ : 27 ~ 40
400℃ : 26 ~ 38
350℃ : 25 ~ 37
300℃ : 24 ~ 36
250℃ : 23 ~ 34
200℃ : 22 ~ 33
150℃ : 21 ~ 32
100℃ : 20 ~ 30
50℃ : 19 ~ 29
----------------------------------------

上下打ち、4連打ち、ななめ打ち
----------------------------------------
2000℃ : 23 ~ 33
1950℃ : 23 ~ 33
1900℃ : 22 ~ 32
1850℃ : 22 ~ 32
1800℃ : 21 ~ 31
1750℃ : 21 ~ 31
1700℃ : 21 ~ 30
1650℃ : 20 ~ 30
1600℃ : 20 ~ 29
1550℃ : 20 ~ 29
1500℃ : 19 ~ 28
1450℃ : 19 ~ 27
1400℃ : 18 ~ 27
1350℃ : 18 ~ 26
1300℃ : 18 ~ 26
1250℃ : 17 ~ 25
1200℃ : 17 ~ 25
1150℃ : 17 ~ 24
1100℃ : 16 ~ 24
1050℃ : 16 ~ 23
1000℃ : 15 ~ 22
950℃ : 15 ~ 22
900℃ : 15 ~ 21
850℃ : 14 ~ 21
800℃ : 14 ~ 20
750℃ : 14 ~ 20
700℃ : 13 ~ 19
650℃ : 13 ~ 19
600℃ : 12 ~ 18
550℃ : 12 ~ 18
500℃ : 12 ~ 17
450℃ : 11 ~ 16
400℃ : 11 ~ 16
350℃ : 11 ~ 15
300℃ : 10 ~ 15
250℃ : 10 ~ 14
200℃ : 9 ~ 14
150℃ : 9 ~ 13
100℃ : 9 ~ 13
50℃ : 8 ~ 12
----------------------------------------

てかげん打ち
----------------------------------------
2000℃ : 9 ~ 14
1950℃ : 9 ~ 14
1900℃ : 9 ~ 14
1850℃ : 9 ~ 13
1800℃ : 9 ~ 13
1750℃ : 9 ~ 13
1700℃ : 9 ~ 13
1650℃ : 8 ~ 12
1600℃ : 8 ~ 12
1550℃ : 8 ~ 12
1500℃ : 8 ~ 12
1450℃ : 8 ~ 12
1400℃ : 8 ~ 11
1350℃ : 8 ~ 11
1300℃ : 7 ~ 11
1250℃ : 7 ~ 11
1200℃ : 7 ~ 10
1150℃ : 7 ~ 10
1100℃ : 7 ~ 10
1050℃ : 7 ~ 10
1000℃ : 6 ~ 9
950℃ : 6 ~ 9
900℃ : 6 ~ 9
850℃ : 6 ~ 9
800℃ : 6 ~ 9
750℃ : 6 ~ 8
700℃ : 6 ~ 8
650℃ : 5 ~ 8
600℃ : 5 ~ 8
550℃ : 5 ~ 7
500℃ : 5 ~ 7
450℃ : 5 ~ 7
400℃ : 5 ~ 7
350℃ : 5 ~ 7
300℃ : 4 ~ 6
250℃ : 4 ~ 6
200℃ : 4 ~ 6
150℃ : 4 ~ 6
100℃ : 4 ~ 5
50℃ : 4 ~ 5
----------------------------------------

みだれ打ち
----------------------------------------
2000℃ : 15 ~ 23
1950℃ : 15 ~ 23
1900℃ : 15 ~ 22
1850℃ : 15 ~ 22
1800℃ : 14 ~ 21
1750℃ : 14 ~ 21
1700℃ : 14 ~ 21
1650℃ : 14 ~ 20
1600℃ : 13 ~ 20
1550℃ : 13 ~ 20
1500℃ : 13 ~ 19
1450℃ : 13 ~ 19
1400℃ : 12 ~ 18
1350℃ : 12 ~ 18
1300℃ : 12 ~ 18
1250℃ : 12 ~ 17
1200℃ : 11 ~ 17
1150℃ : 11 ~ 17
1100℃ : 11 ~ 16
1050℃ : 11 ~ 16
1000℃ : 10 ~ 15
950℃ : 10 ~ 15
900℃ : 10 ~ 15
850℃ : 10 ~ 14
800℃ : 9 ~ 14
750℃ : 9 ~ 14
700℃ : 9 ~ 13
650℃ : 9 ~ 13
600℃ : 8 ~ 12
550℃ : 8 ~ 12
500℃ : 8 ~ 12
450℃ : 8 ~ 11
400℃ : 7 ~ 11
350℃ : 7 ~ 11
300℃ : 7 ~ 10
250℃ : 7 ~ 10
200℃ : 6 ~ 9
150℃ : 6 ~ 9
100℃ : 6 ~ 9
50℃ : 6 ~ 8
----------------------------------------

熱風おろし
----------------------------------------
2000℃ : 45 ~ 68
1950℃ : 45 ~ 67
1900℃ : 44 ~ 66
1850℃ : 43 ~ 65
1800℃ : 42 ~ 63
1750℃ : 42 ~ 62
1700℃ : 41 ~ 61
1650℃ : 40 ~ 60
1600℃ : 39 ~ 59
1550℃ : 39 ~ 58
1500℃ : 38 ~ 57
1450℃ : 37 ~ 56
1400℃ : 36 ~ 54
1350℃ : 36 ~ 53
1300℃ : 35 ~ 52
1250℃ : 34 ~ 51
1200℃ : 33 ~ 50
1150℃ : 33 ~ 49
1100℃ : 32 ~ 48
1050℃ : 31 ~ 47
1000℃ : 30 ~ 45
950℃ : 30 ~ 44
900℃ : 29 ~ 43
850℃ : 28 ~ 42
800℃ : 27 ~ 41
750℃ : 27 ~ 40
700℃ : 26 ~ 39
650℃ : 25 ~ 38
600℃ : 24 ~ 36
550℃ : 24 ~ 35
500℃ : 23 ~ 34
450℃ : 22 ~ 33
400℃ : 21 ~ 32
350℃ : 21 ~ 31
300℃ : 20 ~ 30
250℃ : 19 ~ 29
200℃ : 18 ~ 27
150℃ : 18 ~ 26
----------------------------------------

Noppi2023/12/18に更新 · 2件の履歴