| 赞 | 1 |
| VIP | |
| 好人卡 | |
| 积分 | 14 |
| 经验 | |
| 最后登录 | 2021-9-28 |
| 在线时间 | 343 小时 |
- 梦石
- 0
- 星屑
- 1388
- 在线时间
- 343 小时
- 注册时间
- 2016-7-17
- 回帖
- 82
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
本帖最后由 b200077 于 2020-5-8 22:06 编辑
有没有办法使用输入值当做方法去引用呢?引用的类会分别使用不同名子的方法,主要如下,或者有没有更简单的写法
[pre lang="ruby"] def equips_effict(ability)
n = {}
case ability
when "death"
#獲取敵方死亡發動的能力
equip_slots.size.times do |i|
if @equips != nil
value = @equips.death
if n.has_key?(value[0])
n[value[0]] += value[1]
else
n[value[0]] = value[1]
end
end
add_ability(n)
end
when "install_cost"
#獲取敵方死亡發動的能力
equip_slots.size.times do |i|
if @equips != nil
value = @equips.install_cost
puts "value為#{value}"
if value != nil
if n.has_key?(value[0])
n[value[0]] += value[1]
else
n[value[0]] = value[1]
end
end
end
puts "install_cost為#{n}"
add_ability(n)
end
when "atk_settle"
#獲取敵方死亡發動的能力
equip_slots.size.times do |i|
if @equips != nil
value = @equips.atk_settle
if value != nil
if n.has_key?(value[0])
n[value[0]] += value[1]
else
n[value[0]] = value[1]
end
end
end
end
puts "atk_settle為#{n}"
#增加能力
add_ability(n)
end
end[/pre]
这三个判断只差在@equips.方法名上,能不能写成一个就好 |
|