class Game_Battler
 
  #== ◆ 属性修正 ============================================
  def elements_correct(element_set)
    if element_set == []
      return 100 # 没有任何属性对应,就 100%
    end
    a = []
    b = 1.0
    for i in element_set
      e_r = self.element_rate(i) # [200,150,100,50,0,-100]
      a.push(e_r)
    end
 
    n = a.collect{|x|(x +200)*2}
    # 简单转换[800 u, 700 s, 600普, 500 t, 400 w, 200 v]
    s = n.to_s.count"7" # 几个强
    s == 0 ? sn = 1 : sn = 1.5**s
    t = n.to_s.count"5" # 几个弱,没有就用 1,有就乘几次
    t == 0 ? tn = 1 : tn = 0.5**t
 
    u = n.to_s.count"8" # 数出有几个克制
    v = n.to_s.count"2" # 数出有几个吸收
    w = n.to_s.count"4" # 数出有几个免疫
    #p u.to_s+"克" + v.to_s+"吸" +w.to_s+"免" +s.to_s+"强" +t.to_s+"弱"
 
    if (u - v) < 0 # 吸收 比 克制多,几倍吸收,绝对优先
      b = u - v
    elsif ((u - v)- w) < 0 # 抵消吸收后,剩下的无法抵消免疫
      b = 0
    elsif (u -v -w) > 0 # 克很多,抵消吸收后还能抵消免疫,剩余几个克
      b = 2**(u -v -w) *sn *tn # 一个弱 会抵掉一个剩余的 克
    elsif (u -v -w) == 0 # 完全抵消。
      b = sn *tn
    else # 还会有这种情况吗?
      p "???"
    end
    #p b
    return (b *100).to_i
  end
end